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