Skip to content

Instantly share code, notes, and snippets.

@nerdyslacker
Last active October 21, 2024 10:48
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:

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