DEV Community

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

Posted on • Edited on

Void Linux + GNOME = 🤎 ️ ️

Quick Links

Optional

Installation

Void Linux installation was done following the official guide.

Void_GNOME

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:

    ctrl_interface=DIR=/run/wpa_supplicant
    update_config=1
    
  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:

   ping google.com
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 https://github.com/void-linux/void-packages
    cd void-packages
    ./xbps-src binary-bootstrap
    echo "XBPS_ALLOW_RESTRICTED=yes" >> etc/conf
    

    Installation:

    ./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 https://github.com/madand/runit-services
    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;
    fi
    
  5. In the end:

    source ~/.bashrc
    

Optional

Void_Tilix

Tilix

  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
    

Fzf

  • A command-line fuzzy finder

    git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
    ~/.fzf/install
    

Zoxide

  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)"
    

Bat

  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'
    

Ripgrep

  1. Grep alternative:

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

    alias grep='rg'
    

Exa

  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'
    

Dust

  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'
    

Lazygit

  • 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 https://github.com/AstroNvim/AstroNvim ~/.config/nvim
    nvim +PackerSync
    

OctoXBPS

  • XBPS front end

    sudo xbps-install -S octoxbps
    

VSV

  • Manage and view runit services:

    sudo xbps-install vsv 
    

Docker

  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
    

Flatpak

  1. Install Flatpak:

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

    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    
  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 https://nixos.org/channels/nixpkgs-unstable unstable
    # NixOS 22.05
    nix-channel --add https://nixos.org/channels/nixos-22.05 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
    

Syncthing

  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

Void_Nautilus

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

Extensions:

Top comments (6)

Collapse
 
adomasbeepboopmaggots profile image
ADe

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

Collapse
 
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.

Collapse
 
nerdyslacker 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.

Collapse
 
greentip profile image
greentip • Edited

Joined just to thank you for this effort. Works like a charm. Void + Gnome = Woohoo

Edit: for anybody wanting this to work on a Raspberry Pi (mine is an rpi 4b) and using only the mesa drivers (for wayland), uncomment/add dtoverlay=vc4-kms-v3d in /boot/config.txt

It runs every bit as well as the native RPi OS and is Void + Gnome!

Collapse
 
ddebajyati profile image
Debajyati Dey

Thank you so much for this guide!
I also love void linux!
But I prefer xfce.
WhatEver, Ton of InForMation, Thank you and a bigg thumbs up!

Collapse
 
makimask profile image
Sasha

This post is essential to all people installing Gnome on Void Linux. Super easy to follow and perfectly divided per sections