2025 Nov 11 – Sway on Void Linux
None of my hardware is terribly new, but the newest-to-me is a 2018 ThinkPad T480s that has run Alpine Linux, Arch Linux, Debian Sid, EndeavourOS and now Void Linux. I think it's a great place to land after initially flirting with OpenRC. I don't have particular beef with systemd and obviously run Debian with it quite happily, but I like to see what's out there.
While the Void Linux Handbook is very good, it lacks instructions for installation with Wayland and Sway, so this post is plain installation notes for anyone else lost. I did this about three weeks ago, so I might be forgetting something, but in general I tend to log out or reboot when I'm messing with services.
elogind and seatd
I don't bother with display managers because sometimes I like to rawdog computing by writing prose or code straight in the TTY, and I launch my tiling window manager just with the sway command. This worked fine on Alpine with OpenRC, evidently because elogind is part of the setup-desktop script. elogind extracts systemd's logind to a standalone package, while seatd is similar for session management. After cloning and stowing my dotfiles and setting up zsh, my first taste of runit's UI sv was enabling these two services. Without them, running sway gives you something like $XDG_RUNTIME_DIR is not set in environment. Instead of setting that variable, I ran
sudo ln -s /etc/sv/elogind /var/service/
sudo ln -s /etc/sv/seatd /var/service/
PipeWire
I followed the instructions from this two-year-old blog post which in turn came from the PipeWire GitLab wiki, so the process was actually a little bit smoother than they describe. I didn't have to create /etc/security/limitd.d/95-pipewire.conf; there was already a /etc/security/limits.d/25-pw-rlimits.conf.
Per the Void Linux Handbook, I installed pipewire and pipewire-pulse and configured PipeWire per-user by symlinking /usr/share/examples/pipewire/20-pipewire-pulse.conf to ~/.config/pipewire/pipewire.conf.d/. All I actually had to do after this was create a pipewire group and add myself to it:
sudo usermod -aG pipewire $USER