Documentation Index
Fetch the complete documentation index at: https://mintlify.com/shawal-mbalire/dotfiles/llms.txt
Use this file to discover all available pages before exploring further.
Initial Setup
Clone the repository and set up your dotfiles on Fedora.
Clone and set up repository
gh repo clone shawal-mbalire/dotfiles
cp -r dotfiles/.git/ .git/
git pull
rm -rf dotfiles
Core Package Installation
Install essential packages for Hyprland and development tools.
sudo dnf install lua lua-devel luarocks go lua5.1
sudo dnf install hyprland hyprland-devel hyprlock hypridle hyprpolkitagent hyprpaper
sudo dnf install fish kitty rofi blueman pavucontrol waybar gh google-chrome nm-applet flatpak
sudo dnf install exa gammastep
Switching to Hyprland
The following commands will remove GNOME desktop environment. Make sure you have a backup and understand this is a destructive operation.
Install Hyprland and SDDM
sudo dnf install hyprland sddm
Remove GNOME shell
sudo dnf remove gnome-shell --setopt protected_packages=
Set Fish as default shell
echo /usr/local/bin/fish | sudo tee -a /etc/shells
chsh -s /usr/bin/fish
Remove remaining desktop environments
This removes all GNOME, Plasma, and KDE packages from your system.
sudo dnf remove gnome-** plasma-** kde-**
sudo dnf install nautilus
Hyprland Polkit Authentication Agent
Set up the authentication agent for graphical password prompts.
Enable COPR repository
sudo dnf copr enable solopasha/hypr
Install hyprpolkitagent
sudo dnf install hyprpolkitagent
Enable systemd service
Do NOT use sudo with this command. User services must be managed as your regular user.
systemctl --user enable --now hyprpolkitagent.service
Understanding User vs System Services
- User Services: The
--user flag manages services for your specific user account, not the entire system
- Why
sudo Breaks Things: Running sudo systemctl --user operates as root, looking for root’s services instead of yours
- Always run
systemctl --user as your regular user without sudo
COPR Repositories
Enable additional COPR repositories for extra software.
sudo dnf copr enable alxhr0/Obsidian
Nerd Fonts via COPR
sudo dnf copr enable zawertun/hack-fonts
sudo dnf install hack-fonts
Upgrading to Rawhide
Rawhide provides a rolling release experience with the latest fixes and patches.
Disable RPM Fusion repositories
sudo dnf config-manager setopt rpmfusion-free.enabled=0
sudo dnf config-manager setopt rpmfusion-free-updates.enabled=0
sudo dnf config-manager setopt rpmfusion-free-updates-debuginfo.enabled=0
sudo dnf config-manager setopt rpmfusion-free-updates-source.enabled=0
sudo dnf config-manager setopt rpmfusion-free-updates-testing.enabled=0
sudo dnf config-manager setopt rpmfusion-nonfree-updates-testing.enabled=0
Clean package cache
sudo dnf autoremove
sudo dnf clean all
Download and upgrade to Rawhide
sudo dnf system-upgrade download --releasever=rawhide
Google Chrome Setup
Add Google Chrome repository
echo " [google-chrome]
1 name=google-chrome
2 baseurl=https://dl.google.com/linux/chrome/rpm/stable/x86_64
3 enabled=1
4 gpgcheck=1
5 gpgkey=https://dl.google.com/linux/linux_signing_key.pub " >> /etc/yum.repos.d/google-chrome.repo
Install Chrome and remove Firefox
sudo dnf install google-chrome
sudo dnf remove firefox**
VSCodium Setup
sudo rpmkeys --import https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/-/raw/master/pub.gpg
printf "[gitlab.com_paulcarroty_vscodium_repo]\nname=download.vscodium.com\nbaseurl=https://download.vscodium.com/rpms/\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://gitlab.com/paulcarroty/vscodium-repo/-/raw/master/pub.gpg\nmetadata_expire=1h" | sudo tee -a /etc/yum.repos.d/vscodium.repo
Repository Management
List repositories
Disable a repository
sudo dnf config-manager setopt repository.enabled=0
Package Groups
List groups
Remove a group
sudo dnf group remove libreoffice
Neovim Dependencies
Install required packages for Neovim configuration.
sudo dnf install lua lua-devel luarocks go lua5.1
Installing Luarocks
wget https://luarocks.org/releases/luarocks-3.11.1.tar.gz
tar zxpf luarocks-3.11.1.tar.gz
cd luarocks-3.11.1
./configure && make && sudo make install
sudo luarocks install luasocket
lua