Skip to content
SamuelIVXPublic

About

Hyprland dotfiles for Fedora KDE

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Samuel's Hyprland dotfiles

Hyprland desktop setup on Fedora Linux, styled with Catppuccin Mocha. Built for an AMD Ryzen 5 7600X and Radeon RX 6750 XT driving a 144Hz 1440p display.

The Lua migration targets Hyprland 0.56.2 and a pinned user-local Waybar build. It is staged and must pass the build, review, and desktop checks before activation. See Lua migration, Waybar build, and rollback.

Note

Configured for Fedora, but works on any modern Wayland distribution with minor path adjustments. Update wallpaper paths in ~/.config/hypr/scripts/wallpaper.sh to match your local files.

Repository structure

~/dotfiles/
├── .config/
│   ├── btop/
│   │   ├── btop.conf             # Resource monitor config
│   │   └── themes/
│   │       └── catppuccin_mocha.theme # Catppuccin Mocha theme
│   ├── fastfetch/
│   │   ├── config.jsonc          # System info display
│   │   └── my-logo.txt           # Custom ASCII logo
│   ├── hypr/
│   │   ├── conf/                 # Ten Lua modules; original .conf files retained
│   │   │   ├── animations.lua    # Smooth slidefade transitions
│   │   │   ├── autostart.lua     # Background daemons & polkit agent
│   │   │   ├── env.lua           # Wayland and toolkit variables
│   │   │   ├── input.lua         # Keyboard, mouse, and focus
│   │   │   ├── keybinds.lua      # Hotkeys and layout bindings
│   │   │   ├── layouts.lua       # Dwindle layout settings
│   │   │   ├── look_and_feel.lua # Gaps, borders, shadows, and blur
│   │   │   ├── monitors.lua      # Resolution, refresh rate, and scale
│   │   │   ├── programs.lua      # Default terminal, file manager, and launcher
│   │   │   └── windowrules.lua   # Floating and window placement
│   │   ├── hypridle.conf         # Screen dimming and sleep triggers
│   │   ├── hyprland.lua          # Maintained entry point (requires conf/*.lua)
│   │   ├── hyprland.conf         # Frozen legacy entry point for rollback
│   │   ├── hyprlock.conf         # Lock screen with frosted blur
│   │   └── scripts/
│   │       ├── reload.sh         # Reload compositor, bar, and notifications
│   │       └── wallpaper.sh      # Per-workspace wallpaper listener
│   ├── kitty/
│   │   └── kitty.conf            # GPU terminal with configured redraw delays
│   ├── rofi/
│   │   ├── config.rasi           # Application launcher
│   │   ├── scripts/
│   │   │   ├── bluetooth.sh      # Bluetooth picker
│   │   │   ├── clipboard_history.sh # Clipboard history (cliphist)
│   │   │   ├── powermenu.sh      # Lock, logout, reboot, and shutdown
│   │   │   ├── wallpaper.sh      # Wallpaper browser
│   │   │   └── wifi.sh           # Network selector
│   │   └── themes/
│   │       ├── clipboard.rasi    # Catppuccin Mocha clipboard theme
│   │       └── current.rasi      # Catppuccin Mocha menu theme
│   ├── starship.toml             # Catppuccin Mocha shell prompt
│   ├── swaync/
│   │   ├── config.json           # Notification daemon and control center
│   │   └── style.css             # Notification panel styles
│   └── waybar/
│       ├── config.jsonc          # Three-island floating status bar
│       ├── style.css             # Floating pill styles
│       └── scripts/
│           └── launch.sh         # Reload status bar
├── assets/                       # Screenshots and demo media
├── scripts/
│   ├── apply-system-optimizations.sh # DNF, tuned profile, and service tweaks
│   ├── build-waybar.sh           # Build/test/select the pinned local Waybar
│   └── install-symlinks.sh       # Idempotent symlink installer for ~/.config
└── README.md
preview.mp4
Screenshots

Workspace 1
Workspace 1

Workspace 2
Workspace 2

Workspace 3
Workspace 3

Workspace 4
Workspace 4

Workspace 5
Workspace 5

Rofi launcher
Rofi

SwayNC panel
SwayNC

Waybar layout
Waybar

Core components

Tool Role
Hyprland Wayland tiling compositor
Waybar Floating status bar with workspace indicators
awww Wallpaper daemon with transitions configured at 144 FPS
SwayNC Notification center and quick settings
hyprlock Screen locker with screenshot blur
hypridle Idle listener and sleep controller
Kitty Terminal emulator with 6ms repaint and 1ms input delay settings
Rofi App launcher, power menu, and picker scripts
Fastfetch System information summary

Keybindings

The main modifier key is SUPER.

Keybind Action
SUPER + Return Open terminal (Kitty)
SUPER + Q Close active window
SUPER + D Open application launcher (Rofi)
SUPER + M or SUPER + Escape Open power menu (lock, logout, reboot, power off)
SUPER + F Open file manager (Dolphin)
SUPER + SHIFT + F Toggle fullscreen
SUPER + V or SUPER + Space Toggle floating / tiling window mode
SUPER + P Toggle pseudotile
SUPER + J Toggle split direction
SUPER + W Launch Firefox
SUPER + C Launch VS Code
SUPER + G Open Git client (Lazygit, floating)
SUPER + SHIFT + Escape Open system monitor (Btop, floating)
SUPER + L Lock screen (hyprlock)
SUPER + N Open notification panel (SwayNC)
SUPER + SHIFT + S Area screenshot to clipboard and disk (grimblast)
SUPER + SHIFT + R Reload Hyprland, Waybar, and SwayNC
SUPER + R Reload Waybar
SUPER + A Trigger workspace wallpaper refresh
SUPER + SHIFT + A Open wallpaper selector menu
SUPER + SHIFT + V Open clipboard history
SUPER + SHIFT + W Open Wi-Fi network selector
SUPER + SHIFT + B Open Bluetooth device manager
SUPER + 1-9, 0 Switch to workspace 1 to 10
SUPER + SHIFT + 1-9, 0 Move active window to workspace 1 to 10
SUPER + Left / Right / Up / Down Move window focus
SUPER + Left Click + Drag Move floating window
SUPER + Right Click + Drag Resize window

Installation & setup

The installer requires python3 and Git 2.30 or later (git config --fixed-value). The option is documented in Git 2.30's configuration reference. delta is needed only for the installed Git presentation settings, not to run the installer. Symlinked .bashrc and .gitconfig files require manual integration; do not replace those links to run this installer.

To link all configuration directories (hypr, waybar, kitty, rofi, swaync, fastfetch, btop, starship.toml) to ~/.config/:

For the Lua migration, first follow the staged verification and activation procedure in the migration guide. The general installer immediately links this checkout and is not a preview operation.

./scripts/install-symlinks.sh

Existing conflicting files, directories, and symlinks are preserved in unique backup directories before replacement.

System optimizations

The default script changes only the developer file-watch limit:

sudo ./scripts/apply-system-optimizations.sh

It preserves unrelated sysctl settings and higher watch limits, backs up changed files, verifies the kernel value, and restores the previous setting if application fails. It does not install packages, alter power profiles, or disable services. See optional system steps for individually verified changes and rollback. Previously applied system settings are left in place.

Verification

Run bash tests/run.sh for shell syntax and isolated regression checks (requires Python 3, LuaJIT, jq, and Bash). Tests use mock commands and temporary homes; they do not alter the running desktop.

Lua preservation checks cover all 63 bindings and configuration values. Validate the actual API separately with Hyprland --verify-config --config "$PWD/.config/hypr/hyprland.lua". The migration guide includes the Waybar build, CodeRabbit review gate, and required fresh-login acceptance checks.

The workspace wallpaper listener has one owner per Hyprland session. SUPER+A runs wallpaper.sh --once to refresh without creating another listener. Workspaces 6–10 retain the last wallpaper. Missing images and daemon failures go to stderr.

Rofi Wi-Fi selection opens Kitty with NetworkManager's nmcli --ask prompt; saved credentials and authentication remain NetworkManager's responsibility. Clipboard history supports Enter to copy, Delete to delete the selected entry, and Ctrl+Delete to clear history after confirmation. Escape leaves the clipboard and history alone. Wallpaper selection displays relative paths and handles punctuation and duplicate filenames without regex matching.

Portable Bash and Git settings

The installer links shell/dotfiles.sh into ~/.bashrc.d/ and includes git/developer.gitconfig from local Git configuration. Shell tools are initialized only in interactive shells, and missing optional tools are skipped. Local Git identity, credentials, signing, and differing presentation overrides are preserved.

Migration removes only the exact recognized legacy Bash block and matching Git presentation settings. It backs up changed startup files and replaces .bashrc atomically, preserving its mode. Symlink conflicts are saved as BACKUP/original. Restore the printed backups to undo installation.

The Bash loader check matches literal text without executing .bashrc. If that text exists only in an unreachable block, manually source the fragment from an active part of .bashrc. Locally edited legacy blocks may also need manual integration to avoid duplicate initialization.

About

Hyprland dotfiles for Fedora KDE

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages