parkouss / Webmacs
Programming Languages
Labels
Projects that are alternatives of or similar to Webmacs
- webmacs
webmacs is yet another browser for keyboard-based web navigation.
It mainly target emacs-like navigation, and started as a clone (in terms of features) of [[http://conkeror.org/][conkeror]].
See the documentation manual: https://webmacs.readthedocs.io/en/latest/
webmacs is based on qt webengine and written mainly in Python (version 3).
#+html:
- Features
Short list of features:
- keyboard navigation everywhere (including basic emacs movements in editable web content)
- Integrated, fast ad-blocker
- [[https://webmacs.readthedocs.io/en/latest/basic_usage.html#live-documentation][live documentation]]
- [[https://webmacs.readthedocs.io/en/latest/user_configuration.html][highly customizable using Python]]
- Installation (... and development)
There are two recommended ways of installing webmacs:
- Nix
- pip/virtualenv
** Nix
Currently, the easiest way to install webmacs is via the [[https://nixos.org/nix/][Nix package manager]]:
#+BEGIN_SRC bash nix-env -i webmacs #+END_SRC
*** Need more help with nix?
Nix is available for Linux, macOS and other Unix-like systems. Rest assured that removing Nix (along with any packages installed using Nix) is as easy as =rm /nix -rf=.
If you do not have Nix, install it. For details see https://nixos.org/nix/manual/#chap-installation, but this step approximates to
#+BEGIN_SRC bash bash <(curl https://nixos.org/nix/install) #+END_SRC
and will require you to provide a sudo password.
Look out for, and follow the instructions which will appear once nix is installed, and which will look something like this:
#+BEGIN_SRC text Installation finished! To ensure that the necessary environment variables are set, either log in again, or type
. /home/yourusername/.nix-profile/etc/profile.d/nix.sh
in your shell. #+END_SRC
If you don't spot this, the installation will appear to have failed.
Now you can use =nix-env= to install webmacs:
#+BEGIN_SRC bash nix-env -i webmacs #+END_SRC
For further details, see https://nixos.org/nix/manual/#chap-quick-start.
*** working on webmacs with nix
The command
#+BEGIN_SRC bash nix-shell -p webmacs #+END_SRC
will drop you into a shell which makes available all the compilers and libraries required to build and run webmacs, thus =nix-shell= plays the role of =virtualenv= in the pip/virtualenv approach described below. Unfortunately, some of the libraries required to run the tests, are not yet available in this shell.
** pip/virtualenv
If you do not want to or cannot use nix, then use pip/virtualenv - be prepared to have a working c and c++ compiler with python development library. Note I only have tested on linux.
You will also need the PyQt5 library, as I believe it can't be installed through pip. It's easy to install using any package manager though.
Then you have to check out the repository (do not forget the recursive flag):
#+BEGIN_SRC bash git clone --recursive https://github.com/parkouss/webmacs #+END_SRC
To test it, or work on it, I recommend virtualenv:
#+BEGIN_SRC bash virtualenv --system-site-packages -p python3 venv
activate the virtualenv
source venv/bin/activate
install webmacs in there
pip install -e <path_to_webmacs_sources>
and now to run webmacs
python -m webmacs.main #+END_SRC
Then you can create a system alias to run it: #+BEGIN_SRC bash sudo ln -s <path_to_venv>/bin/webmacs /usr/local/bin/webmacs
now you can use the webmacs command on your system, given that
/usr/local/bin is in your PATH.
#+END_SRC
- Running tests
To run the tests, you will need a few more dependencies (the virtualenv needs to be activated):
#+BEGIN_SRC bash
install test dependencies
pip install -r <path_to_webmacs_sources>/test-requirements.txt
also install the herbstluftwm window manager, using your package manager.
Example on fedora:
sudo dnf install herbstluftwm #+END_SRC
Then you can run the tests (the virtualenv needs to be activated): #+BEGIN_SRC bash py.test <path_to_webmacs_sources>/tests
you can run them with the windows visible:
py.test <path_to_webmacs_sources>/tests --no-xvfb #+END_SRC
- Qt versions support
Every stable Qt version from (and including) 5.7 should work with webmacs.
Note that there are some known limitations:
- spell checking only works with Qt >= 5.8
- support for iframes is broken with Qt < 5.10 (webcontent-edit mode is unreachable)
- dev tools only works with Qt >= 5.11
- Contributions
Contributions are much welcome! Writing this browser is exciting and I love that, though I don't have many time to spend on it, having a family life and a job; And anyway the more we are to work on it and use the tool, the better!