stumpwm / mahogany

A stumpwm like Wayland compositor
GNU General Public License v2.0
220 stars 12 forks source link

** 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:

*** 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:

+BEGIN_SRC lisp

(ql:quickload '("alexandria" "cl-ansi-text" "terminfo" "snakes" "iterate" "cffi" "cffi-grovel" "closer-mop"))

+END_SRC

*** 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.

+BEGIN_SRC sh

make

if success, run the program!

make run

Can also do:

LD_LIBRARY_PATH=build/lib64:build/lib ./build/mahogany

+END_SRC

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:

+BEGIN_SRC sh

make LISP=ccl

+END_SRC

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]]