Notes »

Void Install notes, Sway

Notes from a long time Archer doing a Void/Sway install

Prepare for Sway installation, and more!

Stop the annoying PC beep

sudo vim /etc/modprobe.d/blacklist.conf

and add the line blacklist pcspkr

Basic software opinions (and sway dependencies)


chrony (ntp, time daemon replacement)
neovim (a less bloaty vim)
plocate (supplies locate and updatedb commands)
bind-utils (I wanted dig)
curl (xbps-fetch works like a wget replacement, but curl is needed for some install scripts)
mako (notification daemon)
qt6-wayland (OBS needed this)
mesa-dri (needed for sway on AMD, the next two are only for video acceleration)
xdg-utils (so you can set browser, open links, etc)
xdg-desktop-portal-wlr (I think there's a bug fix upstream in this that will fix OBS...)
foot (Wayland compatible terminal)
xterm (This works fine too, I think I'll uninstall foot and config xterm)
xorg-fonts (have to install fonts, so many choices)
noto-fonts-ttf (fills in unicode blocks that the other fonts don't fill)
noto-fonts-cjk (Fonts for asian glyphs)
polkit (policy kit...)
gvfs (not sure if I need this)
base-devel (for building)
gdb (for debugging)
xtools (I have these installed, but I don't know)

†Void doesn't come with a syslogger installed by default, and they suggest socklog (created by the runit author), I like to add my main non-root user to the socklog group to make digging through logs easier. Sway requires a "seat management" daemon, the Void handbook suggests either elogind or seatd. I used elogind with my NVIDIA attempt, but even that seemed a bit bloaty (it's from the systemd project, what a surprise) so I gave seatd a shot instead. nak is my user account, replace it with your own, and I don't know if you can even do multiple groups at a time with usermod, I'm just listing them here:

sudo usermod -a -G socklog _seatd nak

... and enable the services (I still haven't memorized the runit service directory format for enabling, might want to make an alias/bash function for enable/disabling services soon). Replace <SERVICE> with the service that needs enabled:

sudo ln -s /etc/sv/<SERVICE>/ /var/service


quick cheat sheet for sv:

  1. sv up <services>
  2. sv down <services>
  3. sv restart <services>
  4. sv status <services>

Configuration and starting sway

You'll have to create the ~/.config/sway/ directory and copy /etc/sway/config into it. I edited a bunch of the defaults to match what I'm used to from awesomewm. I like sway better and would probably check out i3 if I had to leave wayland (I don't see why I would have to do that... yet). I just login with tty1 and run a shell script to start sway:

#! /bin/bash
export SDL_VIDEODRIVER=wayland
#export QT_QPA_PLATFORM=wayland
exec dbus-run-session sway

I had to comment out the QT_QPA_PLATFORM line because it broke signet, although those variables were suggested by flameshot, I haven't been able to get that software to work yet.

Set caps lock to escape key

add this block of code to sway conf under "Input configuration" (imho)

input "type:keyboard" {

    #Caps lock to Esc
    xkb_options caps:escape


More software opinions


ncdu (I wanted a lite 'filelight' and this is PERFECT!)
neofetch (of course, I use linux btw)
firefox (to be replaced by LibreWolf flatpak)
evolution (experimenting with an alternative to Thunderbird, works okay so far)
element-desktop (Matrix desktop client)
pcmanfm (gui file manager)
grim (screenshot program, set this GRIM_DEFAULT_DIR=/home/$USER/screenshots)
flatpak (actually liking this for installing Discord, Zoom, etc)
encfs (a simple way to encrypt folders)
zbar (for decoding QR, barcodes)


libreoffice (of course)
evince (PDF viewer)
speedcrunch (unique calculator)


feh (image viewer)
mpv (video player)
yt-dlp (the working version of youtube-dl)


kdenlive (through flatpak, I didn't want all those dependencies.)

Software that isn't working yet:

obs (the pipewire screen isn't working, probably the same bug as flameshot)
flameshot (there's a patch working it's way to me in a dependency, fingers crossed, also had to manually install slurp)
cheese (I can't seem to get the picamera to get images across, I see the device name, but no image)
cups (It looks like getting printing working is going to be a bit of a project)


I tried pulseaudio and it worked out of the box, but installed pipewire with some difficulty:



Turned out we have to set some ?RLIMITS?niceness? manually, I found this solution on this pipewire tuning page

create /etc/security/limits.d/95-pipewire.conf with these contents:

@pipewire - rtprio 95
@pipewire - nice -19
@pipewire - memlock 4194304

create pipewire group: sudo groupadd pipewire and and your user to it: sudo usermod -a -G pipewire nak

Some places say you shouldn't be in the audio group, for me on Void, I needed to be or else the audio cards won't show up.

Don't follow the Void Linux Handbook page on PipeWire, symlinking the .desktop file to autostart pipewire if you're using Sway... sway doesn't respect /xdg/autostart

at the bottom of the ~/.config/sway/config file, I changed the include directive to:

include config.d/*

and created the config.d directory alongside the config file in .config/sway, then created a file called "startup" in config.d:

$ cat .config/sway/config.d/startup
exec pipewire
exec pipewire-pulse

I also have these packages installed:



Add these lines to .bashrc and you'll search your bash history instead of just going off the last command when you press the up/down arrows:

# History search
bind '"\e[A": history-search-backward'
bind '"\e[B": history-search-forward'


Ignore case for tab completion

$include /etc/inputrc
set completion-ignore-case on


This is similar to the vimrc file, here's what I have so far:

set shiftwidth=4
set expandtab
set smarttab

Just makes tabs 4 spaces etc.

Installing IPFS

  1. xbps-install go-ipfs
  2. ln -s /etc/sv/ipfs /var/service
  3. Local Web UI should be enabled after the symlink and the daemon starts
  4. Installed the IPFS Companion extension for Firefox
  5. $ ipfs init

Switching to i3


dunst (notification daemon)


mkdir /run/user/$(id -u)
chown $USER:$USER /run/user/$(id -u)
chmod 700 /run/user/$(id -u)


export XDG_RUNTIME_DIR=/run/user/$(id -u)
pipewire &
pipeware-pulse &
exec i3

Copied the sway config over and have to comment out a few things

Brother Printer and Scanner (HL2280DW)

I haven't been able to get the printer or scanner to work.

For the scanner I've installed:

void-repo-nonfree (needed for the brother driver)
simple-scan (scanning front end)

Auto mounting USB drives with unprivileged user in wheel group


// See the polkit(8) man page for more information // about configuring polkit.

// Allow udisks2 to mount devices without authentication // for users in the "wheel" group. polkit.addRule(function(action, subject) {

    if (( == "org.freedesktop.udisks2.filesystem-mount-system" || == "org.freedesktop.udisks2.filesystem-mount") &&
        subject.isInGroup("wheel")) {
        return polkit.Result.YES;


edit SideBar

Page last modified on December 31, 2022, at 01:02 am