DEV Community

Cover image for Void Linux + GNOME = 🤎 ️ ️
Karen Sargsyan
Karen Sargsyan

Posted on • Updated on

Void Linux + GNOME = 🤎 ️ ️

Quick Links



Void Linux installation was done following the official guide.


Network configuration - Part 1 (wpa_supplicant)

  1. Check the name of our interface:

    ip a

    In my case, “wlp3s0” is the name of the Wi-Fi interface.

  2. Create a configuration file to connect to Wi-Fi:

    sudo vi /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf

    Write these lines into the file and then save it:

  3. Add the information about your wireless network to the file:

    wpa_passphrase SSID PASSWORD >> /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf
  4. Enable dhcpd and wpa_supplicant

    sudo ln -s /etc/sv/dhcpcd /var/service
    sudo ln -s /etc/sv/wpa_supplicant /var/service
    sudo sv up dhcpcd
    sudo sv up wpa_supplicant
  5. Run this last command:

    wpa_supplicant -B -i wlp1s0 -c /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf
  6. To check your connection run:

Enter fullscreen mode Exit fullscreen mode

Update the System

sudo xbps-install -Suv
Enter fullscreen mode Exit fullscreen mode

Add non-free repository

sudo xbps-install -Rs void-repo-nonfree 
Enter fullscreen mode Exit fullscreen mode

Install recommended packages

sudo xbps-install curl wget git xz unzip zip nano vim gptfdisk xtools mtools mlocate ntfs-3g fuse-exfat bash-completion linux-headers gtksourceview4 ffmpeg mesa-vdpau mesa-vaapi htop
Enter fullscreen mode Exit fullscreen mode

Install development packages

sudo xbps-install autoconf automake bison m4 make libtool flex meson ninja optipng sassc
Enter fullscreen mode Exit fullscreen mode

Desktop environment (GNOME)

  1. Install the X Window System:

    sudo xbps-install xorg
  2. Install desktop environment:

    sudo xbps-install gnome
  3. Install display manager

    sudo xbps-install gdm

    Enable gdm service:

    sudo ln -s /etc/sv/gdm /var/service
  4. Install xdg utilites:

    sudo xbps-install -Rs xdg-desktop-portal xdg-desktop-portal-gtk xdg-user-dirs xdg-user-dirs-gtk xdg-utils
  5. Install gnome-browser-connector (prevously known as chrome-gnome-shell):

    sudo xbps-install gnome-browser-connector

Enable required services

  1. Install dbus:

    sudo xbps-install -y dbus

    Enable dbus service:

    sudo ln -s /etc/sv/dbus /var/service
  2. Install elogind:

    sudo xbps-install -y elogind

    Enable elogind service:

    sudo ln -s /etc/sv/elogind /var/service

Network configuration - Part 2 (Network Manager)

  1. Install Network Manager:

    sudo xbps-install NetworkManager NetworkManager-openvpn NetworkManager-openconnect NetworkManager-vpnc NetworkManager-l2tp
  2. Enable Network Manager service:

    sudo ln -sv /etc/sv/NetworkManager /var/service

    Before enabling the NetworkManager daemon, disable any other network management services, such as dhcpcd, wpa_supplicant.

Audio configuration

  • Install PulseAudio:

    sudo xbps-install pulseaudio pulseaudio-utils pulsemixer alsa-plugins-pulseaudio

    Had some issues with pipewire, maybe will give a try in the future...

Bluetooth configuration

  1. Install BlueZ:

    sudo xbps-install bluez
  2. Enable Bluetooth service:

    sudo ln -sv /etc/sv/bluetoothd /var/service
  3. Add user to the group:

    sudo useradd -G bluetooth ${USER}

Printing support configuration

  1. Install CUPS:

    sudo xbps-install cups cups-pk-helper cups-filters foomatic-db foomatic-db-engine
  2. Enable CUPS service:

    sudo ln -sv /etc/sv/cupsd /var/service
  3. Optional:

  • Epson Printer:

      sudo xbps-install -Rs epson-inkjet-printer-escpr imagescan iscan-data
  • HP Printer:

      sudo xbps-install -Rs hplip-gui
  • Canon Printer:

      sudo xbps-install -Rs cnijfilter2
  • Brother Printer:

      sudo xbps-install -Rs brother-brlaser
      # SANE scanner driver for brscan3-compatible Brother scanners
      sudo xbps-install brother-brscan3
      # SANE scanner driver for brscan4-compatible printers 
      sudo xbps-install brother-brscan4 
      # CUPS wrapper driver for the brother DCP-197C printer/scanner
      sudo xbps-install brother-dcp197c-cupswrapper 
      # LPR driver for the brother DCP-197C printer/scanner 
      sudo xbps-install brother-dcp197c-lpr 

Cron configuration

  1. Install cronie:

    sudo xbps-install -y cronie
  2. Enable cronie service:

    sudo ln -sv /etc/sv/cronie /var/service

Notebook Power Saving configuration

  1. Install TLP and PowerTop:

    sudo xbps-install tlp tlp-rdw powertop
  2. Enable TLP service:

    sudo ln -sv /etc/sv/tlp /var/service

Fonts installation

  1. Install Noto fonts:

    sudo xbps-install -Rs noto-fonts-emoji noto-fonts-ttf noto-fonts-ttf-extra
  2. Install microsoft fonts:

    git clone
    cd void-packages
    ./xbps-src binary-bootstrap
    echo "XBPS_ALLOW_RESTRICTED=yes" >> etc/conf


    ./xbps-src pkg -f msttcorefonts
    xi msttcorefonts

Office suite

  • Install LibreOffice:

    sudo xbps-install libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-draw libreoffice-math libreoffice-base libreoffice-gnome libreoffice-i18n-en-US

Internet browser installation

  1. Install Firefox:

    sudo xbps-install firefox firefox-i18n-en-US
  2. Set better font for firefox:

    sudo ln -s /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf /etc/fonts/conf.d/
    sudo xbps-reconfigure -f fontconfig

Media player

  • Install VLC Media Player:

    sudo xbps-install vlc

Backup software

  • Install Timeshift:

    sudo xbps-install timeshift

Logging Daemon activation

  • By default, Void comes with no logging daemon:

    sudo xbps-install -Rs socklog-void
    sudo ln -s /etc/sv/socklog-unix /var/service/
    sudo ln -s /etc/sv/nanoklogd /var/service/

Profile Sync Daemon (PSD)

  • PSD is a service that symlinks & syncs browser profile directories to RAM, thus reducing HDD/SSD calls & speeding up browsers. You can get it from here. This helps Firefox & Chromium reduce ram usage.

    git clone
    cd runit-services
    sudo mv psd /etc/sv/
    sudo ln -s /etc/sv/psd /var/service/
    sudo chmod +x etc/sv/psd/*

Bash aliases

  1. Create bash aliases:

    sudo nano ~/.bash_aliases
  2. Add this script:

    alias xu='sudo xbps-install xbps && sudo xbps-install -Suv'
    alias xin='sudo xbps-install'
    alias xr='sudo xbps-remove -Rcon'
    alias xl='xbps-query -l'
    alias xf='xl | grep'
    alias xs='xbps-query -Rs'
    alias xd='xbps-query -x'
    alias clrk='sudo vkpurge rm all && sudo rm -rf /var/cache/xbps/*'
    alias halt='sudo halt'
    alias poweroff='sudo poweroff'
    alias reboot='sudo reboot'
    alias shutdown='sudo shutdown'
  3. Open bash config file:

    sudo nano ~/.bashrc
  4. Add this line:

    if [ -f ~/.bash_aliases ]; then 
        . ~/.bash_aliases;
  5. In the end:

    source ~/.bashrc




  1. Tiling terminal emulator

    sudo xbps-install tilix
  2. To use in quake mode (wayland not supported), create custom shortcut and add this command:

    tilix --quake


  • A command-line fuzzy finder

    git clone --depth 1 ~/.fzf


  1. zoxide is a smarter cd command, inspired by z and autojump:

    sudo xbps-install -S zoxide
  2. Add this to your configuration (usually ~/.bashrc):

    eval "$(zoxide init bash)"


  1. A cat(1) clone with wings:

    sudo xbps-install -Su bat
  2. Add alias to the previously create bash_aliases file:

    alias cat='bat'


  1. Grep alternative:

    sudo xbps-install -Su ripgrep
  2. Add alias to the previously create bash_aliases file:

    alias grep='rg'


  1. A modern replacement for ‘ls’:

    sudo xbps-install -Su exa
  2. Add alias to the previously create bash_aliases file:

    alias ls='exa --icons'


  1. A more intuitive version of du in rust:

    sudo xbps-install -Su dust
  2. Add alias to the previously create bash_aliases file:

    alias du='dust'


  • Simple terminal UI for git commands:

    sudo xbps-install -Su lazygit

Neovim + AstroNvim

  1. Install Neovim:

    sudo xbps-install -Su neovim
  2. Install AstroNvim:

    git clone ~/.config/nvim
    nvim +PackerSync


  • XBPS front end

    sudo xbps-install -S octoxbps


  • Manage and view runit services:

    sudo xbps-install vsv 


  1. Install docker:

    sudo xbps-install -Su docker
  2. Enable required services:

    sudo ln -s /etc/sv/containerd /var/service
    sudo ln -s /etc/sv/docker /var/service
  3. Add user to group:

    sudo groupadd docker
    sudo usermod -aG docker ${USER}
  4. Set respective permissions:

    sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
    sudo chmod g+rwx "$HOME/.docker" -R


  1. Install Flatpak:

    sudo xbps-install -S flatpak
  2. Add the Flathub repository:

    flatpak remote-add --if-not-exists flathub
  3. Restart.

Nix package manager

  1. Install Nix:

    sudo xbps-install -Sy nix
  2. Activate Nix Daemon:

    sudo ln -s /etc/sv/nix-daemon /var/service/
    source /etc/profile
  3. Add channels:

    # Unstable 
    nix-channel --add unstable
    # NixOS 22.05
    nix-channel --add nixpkgs
    # Update channels 
    nix-channel --update
    # List channels
    nix-channel --list 
  4. To see installed applications in the launcher create a symlink to Nix applications directory:

    sudo ln -s "$HOME/.nix-profile/share/applications" "$HOME/.local/share/applications/nix-env"

Alternative Browser (Brave)

  • Install Brave browser using nix:

    nix-env -iA nixpkgs.brave

Dconf Editor

  • Applications internal settings viewer and editor:

    sudo xbps-install dconf-editor

Nautilus embedded terminal

  1. Install dependencies:

    sudo xbps-install python3 python3-pip python3-psutil
  2. Install Nautilus Terminal:

    sudo xbps-install nautilus-python
  3. Check that the extension is properly installed:

    nautilus-terminal --check
    python3 -m nautilus_terminal --check
  4. If everything is OK, the output should be:

    Nautilus Python: Installed
    Nautilus Terminal Extension: Installed
  5. To edit extension configs run:

    dconf-editor /org/flozz/nautilus-terminal


  1. Install Syncthing:

    sudo xbps-install -Rs syncthing 
  2. Starting Syncthing automatically when system starts:

    sudo cp /usr/share/applications/syncthing-start.desktop ~/.config/autostart/

Gnome Sushi

  1. File previewer for the GNOME desktop (macOS Quick Look):

    sudo xbps-install -Rs sushi 

Intel's Microcode

  1. Install Intel's Microcode:

    sudo xbps-install -Rs intel-ucode 
  2. Reconfigure your kernel, according your kernel name:

    sudo xbps-reconfigure -f linux<kernel_version>

    To find your Linux kernel version, you can use

    sudo xbps-query -l | grep linux

Fonts, Theme, Icons, Cursor, Extensions, Wallpaper


System Fonts:

Terminal Font: ShureTechMono Nerd Font Mono Regular

Prompt Theme Engine: Oh My Posh

Theme: Fluent GTK Theme (use --icon void flag to replace Activities with Void icon)

Icons: Fluent Icon Theme (color Grey)

Cursor: Borealis Cursors

Wallpaper: VOID LINUX


Top comments (3)

adomasbeepboopmaggots profile image

Created account just to like this. Thank you for this guide!

lexlohr profile image
Alex Lohr

I love VoidLinux, but prefer xfce. One thing that for me worth mentioning is the void-packages repository on GitHub that allows you to comfortably create your own packages in a secure, simple and repeatable way. This makes VoidLinux as hackable as Gentoo, without breaking the comfort of binary packages and the freshness of a rolling releases distro.

Also, you might find some of the packages in pull requests of that repo that are otherwise unavailable. I myself have a PR for lapce open, a fast rust-based IDE in early development, though mostly usable.

karyan40024 profile image
Karen Sargsyan

I also prefer xfce as de just was curious how void will go with gnome.
Maybe I will add void-packages part later to the article thanks for the suggestion.