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 conkeror.
See the documentation manual: https://webmacs.readthedocs.io/en/latest/
webmacs is based on qt webengine and written mainly in Python (version 3).
Short list of features:
- keyboard navigation everywhere (including basic emacs movements in editable web content)
- Integrated, fast ad-blocker
- live documentation
- highly customizable using Python
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):
git clone --recursive https://github.com/parkouss/webmacs
To test it, or work on it, I recommend virtualenv:
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
Then you can create a system alias to run it:
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.
To run the tests, you will need a few more dependencies (the virtualenv needs to be activated):
# 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
Then you can run the tests (the virtualenv needs to be activated):
py.test <path_to_webmacs_sources>/tests # you can run them with the windows visible: py.test <path_to_webmacs_sources>/tests --no-xvfb
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 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!