Skip to main content

System requirements

This dotfiles configuration is designed for Linux systems running Wayland compositors, specifically Hyprland.

Supported distributions

Fedora

Fully tested and documented with DNF package installation

Arch Linux

Supported with AUR packages via yay
Other distributions may work but require manual dependency resolution.

System prerequisites

  • Display server: Wayland (required for Hyprland)
  • Shell: Bash (for installation scripts) and Fish (runtime)
  • Git: For cloning the repository
  • Disk space: Approximately 500MB for all dependencies
  • Internet connection: Required for initial setup and package installation

Core dependencies

These packages are essential for the dotfiles to function properly.

Hyprland ecosystem

The window manager and its companion tools:
sudo dnf install hyprland hyprland-devel hyprlock hypridle hyprpaper hyprpolkitagent
PackagePurpose
hyprlandDynamic tiling Wayland compositor
hyprlockScreen locker for Hyprland
hypridleIdle daemon (auto-lock, screen off)
hyprpaperWallpaper utility
hyprpolkitagentPolkit authentication agent

Shell and terminal

sudo dnf install fish kitty
PackagePurpose
fishFriendly interactive shell with VI keybindings
kittyGPU-accelerated terminal emulator

Status bar and system tray

sudo dnf install waybar nm-applet blueman pavucontrol
PackagePurpose
waybarHighly customizable Wayland status bar
nm-appletNetworkManager system tray applet
bluemanBluetooth manager with tray applet
pavucontrolPulseAudio volume control

Application launcher and utilities

sudo dnf install rofi mako gammastep
PackagePurpose
rofiApplication launcher and dmenu replacement
makoLightweight Wayland notification daemon
gammastepScreen color temperature adjustment (Redshift for Wayland)

Clipboard management

sudo dnf install wl-clipboard cliphist
PackagePurpose
wl-clipboardCommand-line Wayland clipboard utilities
cliphistClipboard history manager

Text editor

sudo dnf install neovim lua lua-devel luarocks go lua5.1
PackagePurpose
neovimHyperextensible Vim-based text editor
lua, lua-develLua runtime and development files for Neovim plugins
luarocksLua package manager
goRequired for some Neovim LSP servers
The Neovim configuration uses LazyVim, which will auto-install plugins on first launch.

Optional dependencies

These packages enhance functionality but aren’t strictly required.

Screenshots and screen recording

sudo dnf install grimblast
PackagePurpose
grimblastScreenshot utility for Hyprland

Media control

sudo dnf install playerctl brightnessctl
PackagePurpose
playerctlMedia player control (MPRIS)
brightnessctlBacklight control for laptops

File management

sudo dnf install nautilus exa
PackagePurpose
nautilusGNOME file manager
exaModern replacement for ls (used in Fish config)

Font packages

Nerd Fonts are required for proper icon display in Waybar and terminal:
sudo dnf copr enable zawertun/hack-fonts
sudo dnf install hack-fonts
Without Nerd Fonts, Waybar icons will not display correctly.

Development tools

sudo dnf install gh flatpak
PackagePurpose
ghGitHub CLI for repository management
flatpakApplication sandboxing and distribution

Shell enhancements

Optional tools that enhance the Fish shell experience:
# Install via their respective methods
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh)
PackagePurpose
zoxideSmarter cd command (autojump)
atuinMagical shell history with sync
The Fish configuration auto-detects and initializes these tools if installed.

Installation tools

For managing the dotfiles installation:
sudo dnf install stow
GNU Stow creates symlinks for dotfile management, making updates easier.

Rsync (alternative)

Most distributions include rsync by default. If not:
sudo dnf install rsync

Quick dependency installation

Install all core dependencies with a single command:
sudo dnf install -y \
  hyprland hyprland-devel hyprlock hypridle hyprpaper hyprpolkitagent \
  fish kitty waybar nm-applet blueman pavucontrol \
  rofi mako gammastep wl-clipboard cliphist \
  neovim lua lua-devel luarocks go lua5.1 \
  nautilus exa playerctl brightnessctl \
  gh flatpak stow

Verification

After installing dependencies, verify core tools are available:
# Check Hyprland
hyprland --version

# Check Fish
fish --version

# Check Neovim
nvim --version

# Check Waybar
waybar --version

# Check Stow
stow --version
All commands should return version information without errors.

Platform-specific notes

Fedora rawhide

For a more rolling-release experience on Fedora:
# Upgrade to Rawhide (optional)
sudo dnf system-upgrade download --releasever=rawhide
sudo dnf system-upgrade reboot
Rawhide is Fedora’s development branch. It’s cutting-edge but may be unstable.

Fedora COPR repositories

Some packages require enabling COPR repositories:
# Hyprland ecosystem
sudo dnf copr enable solopasha/hypr

# Hack Nerd Fonts
sudo dnf copr enable zawertun/hack-fonts

# Obsidian (optional)
sudo dnf copr enable alxhr0/Obsidian

Arch AUR access

Ensure you have an AUR helper installed:
# Install yay if not already installed
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Hardware considerations

Graphics drivers

Hyprland requires proper graphics drivers for Wayland:
  • NVIDIA: Use nvidia-open or nvidia proprietary drivers (515+)
  • AMD: Mesa drivers (included in most distributions)
  • Intel: Mesa drivers (included in most distributions)

Laptop-specific

For laptop users, these additional packages are recommended:
# Fedora
sudo dnf install power-profiles-daemon brightnessctl

# Arch
pacman -S power-profiles-daemon brightnessctl
The configuration includes a laptop variant (hyprland-laptop.conf) with appropriate display settings.

Next steps

Once you’ve verified all requirements are met:

Installation guide

Proceed with installing the dotfiles

Introduction

Learn more about the project

Build docs developers (and LLMs) love