dwl config

Last modification:


My first rather serious linux system should be built on a Thinkpad x61s in 2023. Due to a lack in performence I thought about installing only the most minimal software on it.

So I came to see the famouse Thinkpad Arch combination. (I know and knew that it was not the most minimal os possible, but I was convinced) When trying to find the most minimal and fast window manager found the perfect fit: dwm.

dwm became my wm that just worked.


However as I continued to gain understanding of how Xorg works and as I understood the bloat in the X Window System , I found it hard to swich. On YouTube I came across dwl a project about translating dwl to work with wlroots.

Even though being familiar with the rather difficult to install dwm, I wasn’t able to even compile dwl. Now I understand and give you - the reader - a path to follow.

```bash
git clone https://codeberg.org/dwl/dwl.git
cd dwl
git checkout v0.7
make
sudo make install
```

```bash
sudo dnf install \
libinput libinput-devel \
wayland wayland-devel \
wlroots wlroots-devel \
xkbcommon xkbcommon-devel \
wayland-protocols-devel \
pkgconf-pkg-config \
meson ninja-build \
gcc
```

```bash
git clone https://github.com/waycrate/wmenu.git
cd wmenu
meson setup build
ninja -C build
sudo ninja -C build install
```


Edits in dwl source

Edits to sources/dwl/config.h:

```c
static const char *termcmd[] = { "ghostty", NULL };
```

```c
static const MonitorRule monrules[] = {
/* macbook m1 14" */
{ "eDP-1", 0.5f, 1, 2, &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL, -1, -1 },
};
```

```c
static const struct xkb_rule_names xkb_rules = {
/* default:
.options = NULL,
*/
.layout = "de",
.variant = "latin1",
};
```