Home     News     Download     Contact     Donate

Customizing the Raven Window Manager


Raven is a dynamic tiling window manager forked from Suckless' dwm[1], therefore it is customized in the same way: by editing config.h and recompiling the software.

While this may change in the future, it is currently the only way. The process is very simple, however, and takes about as much time as customizing any other window manager. This guide will simply outline the basic steps to configure Raven to suit your needs.

Prerequisite


Ragnarok uses clang as the default compiler, with extra hardening flags, so first ensure that the ragnarok-devel metapackage is installed. If not:


# apt-get install -y ragnarok-devel

Untar the source


The raven package provides the source code as a tarball located in /usr/src. Create a working directory readable/writable by your user, untar the source, then cd into it.


$ mkdir -p .local/src
$ tar xzvf /usr/src/raven-${VERSION}.tgz -C ~/.local/src/
$ cd ~/.local/src/raven-${VERSION}

Replace ${VERSION} with the current version.

Configure


First, run make


$ make

Afterwards, you can edit config.h to your liking.

The developer's own customized config.h is provided as config.devel.h[2]. This version sets Monocle as the default layout, changes the tags keys from Super+1-9 to Alt+1-9 and uses a unicode font for tag names. If you wish to use this config file as a base, copy it to config.h:


$ cp config.devel.h config.h

In order to use the unicode font for tag names, you will have to download Font Awesome 6 or above (which is not available in Debian/Ragnarok) from their official website[3] and unzip it to ~/.local/share/fonts/.

In order to ensure that your custom version does not conflict with the default, you should edit config.mk to change the PREFIX variable from /usr to /usr/local.

After you are satisfied with your modifications, decide whether you simply want to install it directly, or build a custom .deb package.

Install directly:


$ make clean
$ doas make install

To build a custom package, first edit config.mk to set a custom name for your package. For example:


PKG     = raven-custom_${VERSION}_amd64

Then create the package:


$ make deb

Afterwards, you can install it with apt:


$ doas apt-get install ./raven-custom_${VERSION}_amd64.deb

Statusbar


Being a fork of dwm, raven can use either slstatus or dwmblocks, or custom scripts using xsetroot.

A custom status bar script is available in /usr/share/doc/raven/examples/. Much like config.devel.h, this script uses FontAwesome 6, so you will need to install the font if you wish to use it unmodified.

External Links


[1] Suckless' dwm — https://dwm.suckless.org
[2] config.devel.h — https://raw.githubusercontent.com/RagnarokOS/raven/refs/heads/master/config.devel.h
[3] FontAwesome — https://fontawesome.com/