Stable Void Linux Setup Guide
7 min, 1297 words
Kenneth Dodrill published on
Stable Void Linux Setup Guide
In pursuit of a stable Linux setup on my favorite distro so far.
Table of Contents
- Installation notes
- Post Installation
I won't bore you with the basics. You're here because you don't want to be running Ubuntu. Void is like Arch in the way of having total customization over your packages, with a start-from-scratch mentality. You don't mind spending 4 hours setting up your system because you want it to be your system.
I am assuming that you have a basic install of Void ready to go. If not, feel free to tag along with a VM, or you can just continue to read. That being said, I do have a couple of notes on the install process that some may not know about.
What this guide is
Initially, I wanted this to be more general and less personalized. However, as I was going through a re-installation of Void Linux I realized that the Void Linux documentation is just so good that much of what I was going to say started to make less sense. This guide will be fairly personalized, but I believe that a decent amount of people will get certain things from it that could improve their system or make them think about all that they have installed.
Before you run the installer, start up
dhcpcd. Then, link
wpa_supplicant and start that, too. Go through
wpa_supplicant to get connected to the internet. Once that's done, run the installer and fill out all the fields. In my experience, trying to connect to the internet without starting both services resulted in an error if I tried to update my system. Running just
wpa_supplicant is also not enough because your DNS settings will not copy over from installation. I have tried re-connecting but for some reason running
dhcpcd first was the only way to get things to really 'work'.
Initial internet and repository setup
Absolutely your first step should be to link and start
wpa_supplicant. Verify your connection (it should work fine if you followed the steps above), then update the system.
xbps-install void-repo-nonfree void-repo-multilib void-repo-multilib-nonfree
Change mirrors (seriously helps with download speeds, see a list of mirrors here):
mkdir -p /etc/xbps.d cp /usr/share/xbps.d/*-repository-*.conf /etc/xbps.d/ sed -i 's|https://alpha.de.repo.voidlinux.org|<repository>|g' /etc/xbps.d/*-repository-*.conf xbps-install -S
Install any basic packages that you might want, here are my personal preferences:
xbps-install neovim, exa, zsh, curl, git
Install dbus, enable it and reboot (logging in/out might cause issues, a reboot will ensure that dbus is started properly):
xbps-install dbus ln -s /etc/sv/dbus /var/service/dbus reboot
Install elogind, log in / out (you do not need to enable this service):
Graphical drivers, Xorg, and DE / DM
Install graphics drivers. I am using an AMD graphics card, and I game quite regularly, so I always download extra packages:
xbps-install mesa-dri mesa-dri-32bit vulkan-loader vulkan-loader-32bit mesa-vulkan-radeon mesa-vulkan-radeon-32bit Vulkan-Tools
Install Xorg and all xdg related packages (swap out
xdg-desktop-portal-kde if you're using the KDE desktop environment):
xbps-install xorg xdg-desktop-portal xdg-user-dirs xdg-utils xdg-desktop-portal-gtk
Install DE / DM of choice, then enable your DM if it has a service in
/etc/sv (warning: your DM may start immediately - make sure you reboot before trying to log in!):
xbps-install xfce4 lxdm ln -s /etc/sv/lxdm /var/service/lxdm reboot
Audio, internet, and firewall
I tried a few different setups for audio, but eventually I caved with the generic
pulseaudio package combination.
xbps-install alsa-utils pulseaudio ln -s /etc/sv/alsa /var/service/alsa
Now it's time to set up
iwd, a package that aims to replace wpa_supplicant.
xbps-install iwd unlink /var/service/wpa_supplicant ln -s /etc/sv/iwd /var/service/iwd sv start iwd iwctl # ...go through setup here to scan and connect to a network.
For a firewall, I just roll with a basic install of
xbps-install ufw ufw enable
This is an odd one. It can be a little tricky to set up proper font rendering in Void - luckily I found an excellent guide. Unfortunately, it is in French. It's fairly easy to understand when following along, but I've listed out the steps here in English as well.
First, make sure
freetype is installed. Then, do the following:
xbps-install freefont-ttf # Do the following to make text look sharper and to disable bitmaps. ln -s /usr/share/fontconfig/conf.avail/10-hinting-slight.conf /etc/fonts/conf.d/ ln -s /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d/ ln -s /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d/ ln -s /usr/share/fontconfig/conf.avail/50-user.conf /etc/fonts/conf.d/ ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/
Add this to
~/.config/fontconfig/fonts.conf (you may have to create the file).
<?xml version='1.0'?> <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'> <fontconfig> <match target="font"> <edit mode="assign" name="antialias"> <bool>true</bool> </edit> <edit mode="assign" name="hinting"> <bool>true</bool> </edit> <edit mode="assign" name="autohint"> <bool>false</bool> </edit> <edit mode="assign" name="hintstyle"> <const>hintslight</const> </edit> <edit mode="assign" name="rgba"> <const>rgb</const> </edit> <edit mode="assign" name="lcdfilter"> <const>lcddefault</const> </edit> <edit mode="assign" name="embeddedbitmap"> <bool>false</bool> </edit> </match> </fontconfig>
Finally, add this to
~/.Xresources (you may have to create this file).
Xft.antialias: 1 Xft.hinting: 1 Xft.autohint: 0 Xft.hintstyle: hintslight Xft.rgba: rgb Xft.lcdfilter: lcddefault
If you are using Firefox, you may want to set
gfx.font_rendering.fontconfig.max_generic_substitutions = 127 in your
Date & Time
Fairly simple stuff here, just install
ntp and one of the implementations of it. Personally, I lean towards
ln -s /etc/sv/ntpd /var/service/ntpd. You can also link your timezone (recommended) to the system by doing
ln -sf /usr/share/zoneinfo/<timezone> /etc/localtime.
I would recommend making sure the
xdg- packages are all installed correctly before moving on.
I would also recommend that you install the
firejail package, as some applications can use it.
Now you can install the
flatpak package. Once installed, reboot. Do NOT add a remote yet, because you WILL have issues. Once rebooted, add the remote and begin installing applications.
Extra AMD GPU Setting
I always enable the
TearFree option in my
amdgpu config file to get a buttery-smooth experience.
Create (or edit)
/etc/X11/xorg.conf.d/20-amdgpu.conf and paste the following:
Section "Device" Identifier "AMD" Driver "amdgpu" Option "TearFree" "true" EndSection
I hope you have enjoyed this guide. I wrote this all down mostly for myself, so I can remember all the steps taken and save some time in-case I have to reinstall Void in the future. I also decided to write this because I see a lot of similar questions in r/voidlinux, and I hope this can help.