DEV Community

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

Posted on • Updated 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:

Latest comments (5)

Collapse
 
greentip profile image
Tom

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

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

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

Collapse
 
adomasbeepboopmaggots profile image
ADe

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