Mahogany Mahogany is a tiling window manager for Wayland modeled after StumpWM. While it is not a drop-in replacement for stumpwm, stumpwm users should be very comfortable with Mahogany. Its planned features are:
This branch contains a version of Mahogany using a backend written in C. The old version written entirely in Common Lisp can be found in the [[https://github.com/stumpwm/mahogany/tree/full-cl-old][full-cl-old]] branch.
** Building There are two parts to Mahogany: a backend library implemented in C, and the Common Lisp front end. Thus, you will need the following tools:
Meson
Several dependencies are shipped with Mahogany as git submodules. To download them, run the following git command:
git submodule update --init
*** Backend Library Dependencies The backend library requires wlroots 0.17.x. This version is included as a git submodule and is used by default. It requires the following development dependencies to build:
You will need the development packages for these libraries, which are usually named with the packages' normal name with the =-devel= suffix. For example, the Wayland protocols development package is probably named =wayland-protocols-devel= in your package repository.
While it is possible to use a prebuilt version of wlroots installed by other means, it is currently not supported by directly invoking =make= like these instructions suggest.
*** Common Lisp Dependencies You will need a Common Lisp implementation. While it should run on any version that the CFFI library supports, sbcl is recommended.
The recommended way to install the dependencies is using Quicklisp. Follow the instructions at https://www.quicklisp.org/ to install it.
Once downloaded, install the dependencies:
(ql:quickload '("alexandria" "cl-ansi-text" "terminfo" "snakes" "iterate" "cffi" "cffi-grovel" "closer-mop"))
*** Building And Running At this point, all of the dependencies should be installed. You can now run =make= in the root directory of the project to build the C backend and the mahogany executable.
make
make run
LD_LIBRARY_PATH=build/lib64:build/lib ./build/mahogany
If you want to build mahogany (or execute any of the other build commands) with CCL, you can do so by specifying CCL when invoking make:
make LISP=ccl
It is possible to run mahogany in an X11 or Wayland session, and is the recommended method of testing at this time. If you do choose to run the program in a TTY, press the =ESC= key to exit.
** Contributing / Hacking
See [[CONTRIBUTING.md][CONTRIBUTING.md]]