Skip to content

Instantly share code, notes, and snippets.

@nerdyslacker
Last active August 20, 2025 17:03
Show Gist options
  • Save nerdyslacker/398671398915888f977b8bddb33ab1f1 to your computer and use it in GitHub Desktop.
Save nerdyslacker/398671398915888f977b8bddb33ab1f1 to your computer and use it in GitHub Desktop.
[Void Linux + GNOME] void linux configuration from scrath with gnome de #linux #void #gnome

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

Update the System

  • sudo xbps-install -Suv

Add non-free repository

  • sudo xbps-install -Rs void-repo-nonfree 

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

Install development packages

  • sudo xbps-install autoconf automake bison m4 make libtool flex meson ninja optipng sassc

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:

@SpaceCheeseWizard
Copy link

I hope you don't mind me asking, but does xorg need to be installed if I intend to use a wayland only system? Would there be any issues I would run into otherwise?

@raw-bin
Copy link

raw-bin commented Jun 25, 2025

@SpaceCheeseWizard: In case it helps: I did not install xorg for my wayland void setup that followed most of the above for setting up a gnome desktop. Works well so far.

@SpaceCheeseWizard
Copy link

@raw-bin Perfect. That's percisely what I wanted to know. Thank you.

@thehackersbrain
Copy link

Man you really did a great job. Thanks for that!

And though I'm a bit too late, no you don't need xorg for wayland.

you can do either or both at the same time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment