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/