website

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

dwl.md (2080B)


      1 ---
      2 title: dwl, ultra minimal tiling window manager
      3 author: "Linus Behrens"
      4 date: 2025-06-16T14:00:00+02:00
      5 tags: ['tech', 'wm', 'suckless']
      6 header: "/header/linux.jpg"
      7 ---
      8 
      9 My first rather serious linux system should be built on a Thinkpad x61s in 2023. 
     10 Due to a lack in performence I thought about installing only the most minimal software on it.
     11 
     12 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)
     13 When trying to find the most minimal and fast window manager found the perfect fit: `dwm`.
     14 
     15 `dwm` became my wm that just worked.
     16 
     17 ---
     18 
     19 However as I continued to gain understanding of how Xorg works and as I understood the bloat in `X`, I found it hard to swich.
     20 On YouTube I came across `dwl` a project about translating `dwl` to work with `wlroots`.
     21 
     22 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.
     23 
     24 ```bash
     25 sudo dnf install \
     26   libinput libinput-devel \
     27   wayland wayland-devel \
     28   wlroots wlroots-devel \
     29   xkbcommon xkbcommon-devel \
     30   wayland-protocols \
     31   pkgconf-pkg-config
     32 ```
     33 
     34 ```bash
     35 git clone https://codeberg.org/dwl/dwl.git
     36 cd dwl
     37 git checkout v0.7
     38 make
     39 sudo make install
     40 ```
     41 
     42 ```bash
     43 sudo dnf install \
     44   libinput libinput-devel \
     45   wayland wayland-devel \
     46   wlroots wlroots-devel \
     47   xkbcommon xkbcommon-devel \
     48   wayland-protocols-devel \
     49   pkgconf-pkg-config \
     50   meson ninja-build \
     51   gcc
     52 ```
     53 ```bash
     54 git clone https://github.com/waycrate/wmenu.git
     55 cd wmenu
     56 meson setup build
     57 ninja -C build
     58 sudo ninja -C build install
     59 ```
     60 
     61 ---
     62 
     63 Edits to `sources/dwl/config.h`:
     64 
     65 ```c
     66 static const char *termcmd[] = { "ghostty", NULL };
     67 ```
     68 
     69 ```c
     70 static const MonitorRule monrules[] = {
     71     /* macbook m1 14" */
     72     { "eDP-1",    0.5f,  1,      2,    &layouts[0], WL_OUTPUT_TRANSFORM_NORMAL,   -1,  -1 },
     73 };
     74 ```
     75 
     76 ```c
     77 static const struct xkb_rule_names xkb_rules = {
     78     /* default:
     79     .options = NULL,
     80     */
     81     .layout = "de",
     82     .variant = "latin1",
     83 };
     84 ```
     85 
     86 
     87