Installing on Void Linux - MorgenWM

Installing MorgenWM on Void Linux

Deutsche Version

This guide walks through a complete Void Linux installation: from a base system to a running MorgenWM desktop.

Prerequisites

A Void Linux base system with xbps working. If you installed the base image, make sure the system is up to date first. Note that xbps itself must be updated before the rest of the system:

sudo xbps-install -u xbps
sudo xbps-install -Su

Step 1: Install MorgenWM

MorgenWM is available in the Void Community Repository (oco), which ships prebuilt binaries including a compatible river:

# Add the community repository
echo 'repository=https://repo.osowoso.org/x86_64' | sudo tee /etc/xbps.d/00-VUR.conf

# Update and install (xbps will ask to import the repository key, confirm it)
sudo xbps-install -S
sudo xbps-install morgenwm

The package installs the binaries (morgenwm, launch_morgenwm, morgenwm_msg, morgenwm_keys, morgenwm_setup), the desktop session entry and the example assets under /usr/share/morgenwm.

Step 2: Run the setup wizard

The wizard writes a preset config and installs docs, templates and helper scripts:

morgenwm setup

You will be asked to pick a preset:

  • minimal: bare window manager, no extras
  • full: panel, wallpaper, launcher, idle-lock, auth agent, screen temperature, screenshots, emoji picker

The wizard reads its example assets from /usr/share/morgenwm. The full preset additionally downloads wallpapers, helper scripts and themes from the dotfiles repo.

Step 3: Install the extras (full preset only)

The wizard does not install runtime tools. For the full preset, install them with xbps:

sudo xbps-install vibepanel wbg fuzzel swayidle waylock mate-polkit \
  wlsunset grim slurp wl-clipboard wtype xdg-user-dirs foot firefox glow \
  zellij fish-shell git emptty noto-fonts-emoji

What each package is for:

PackagePurpose
vibepanelStatus bar / panel with notifications
wbgWallpaper daemon
fuzzelApplication launcher (Mod+d)
swayidleIdle daemon (auto-locks via waylock)
waylockScreen locker
mate-polkitAuthentication agent (sudo/polkit prompts)
wlsunsetDay/night screen temperature
grim + slurpScreenshots (region + full screen)
wl-clipboardClipboard utilities (wl-copy/wl-paste)
wtypeTyping synthetic input (used by the emoji picker)
xdg-user-dirsLocalized ~/Pictures etc. for screenshot saving
footTerminal (Mod+Return)
firefoxBrowser (Mod+b)
glowMarkdown browser for the docs menu entry
zellijTerminal multiplexer (used by the dotfiles preset)
fish-shellShell (used by the dotfiles preset; package name on Void)
gitVersion control (setup clones the dotfiles repo and bemoji)
empttyCLI display manager (optional, for graphical login)
noto-fonts-emojiEmoji glyphs (without it fuzzel shows blank boxes)

If you picked the minimal preset, skip this step entirely.

Step 4: Enable the session

Now you need a session manager and a seat manager. seatd provides seat access for wlroots compositors like River, and turnstile sets up XDG_RUNTIME_DIR (without it, Wayland sessions do not work). Install both and enable their services:

sudo xbps-install seatd turnstile
sudo ln -s /etc/sv/seatd /var/service/
sudo ln -s /etc/sv/turnstiled /var/service/
sudo sv start seatd turnstiled

Add your user to the _seatd group so non-root sessions can access the seat:

sudo usermod -aG _seatd $(whoami)

Then log out and back in (so the group membership and XDG_RUNTIME_DIR take effect).

emptty is a dead simple CLI display manager that runs on a TTY. The dotfiles preset ships a user config at ~/.config/emptty that starts MorgenWM directly. Enable the service:

sudo ln -s /etc/sv/emptty /var/service/
sudo sv start emptty

On the next boot you get a login prompt on a TTY. Log in and MorgenWM starts automatically.

Option B: manual TTY login

Log in on a TTY and run:

launch_morgenwm

launch_morgenwm reads your config to set the keyboard layout, then execs into River with MorgenWM as the init executable.

Step 5: Verify

Once in the session:

  • Mod+Return opens a terminal
  • Mod+d opens the launcher
  • Mod+o toggles the window overview
  • Mod+r lists all keybindings inside the launcher

To check your config parses:

morgenwm validate

Updating

sudo xbps-install -u xbps
sudo xbps-install -Su

Troubleshooting

  • Black screen after login: check that river is installed and that seatd and turnstiled are running (sudo sv status seatd turnstiled). MorgenWM needs a working seat session and XDG_RUNTIME_DIR.
  • `XDG_RUNTIME_DIR` not set: make sure turnstile is installed and the turnstiled service is enabled, then log out and back in. You can verify with echo $XDG_RUNTIME_DIR. It should point to a directory like /run/user/1000.
  • Keyboard layout wrong: set keyboard_layout in ~/.config/morgenwm/config.toml (e.g. "de"), then re-run launch_morgenwm.
  • No emoji in the launcher: install noto-fonts-emoji and restart the session.
  • wlsunset tint off: the config ships with a Berlin placeholder (wlsunset -l 52.52 -L 13.41). Replace it with your city's latitude and longitude in ~/.config/morgenwm/config.toml.