8.4 KiB
Hyprland Desktop Environment
The Hyprland setup is the primary desktop environment — a Wayland compositor with a full ecosystem of bars, launchers, notification daemons, and theming tools.
Overview
| Component | Role |
|---|---|
| Hyprland | Wayland tiling compositor (dwindle layout) |
| Kitty | Primary terminal emulator |
| EWW | Status bar (three device variants) |
| Waybar | Alternative status bar |
| Wofi | App launcher (keyboard-driven) |
| Walker | Fast CLI launcher |
| uLauncher | GUI app launcher |
| Dunst | Notification daemon |
| Hyprlock | Screen locker |
| Hyprpaper | Wallpaper daemon |
| Hypridle | Idle management (sleep, lock) |
| nwg-dock | Application dock |
| nwg-drawer | Application drawer |
| nwg-panel | Desktop menu |
| Vicinae | Gesture-triggered context launcher |
| ly | TUI login manager |
Config File Map
desktopenvs/hyprland/
├── hypr/
│ ├── hyprland.conf # Root config — imports all below
│ ├── hyprtoolkit.conf # Toolkit utilities
│ ├── hyprlock.conf # Lock screen
│ ├── hypridle.conf # Idle timeouts
│ └── hyprpaper.conf # Wallpaper
├── hypr-usr/ # Per-user override layer
│ ├── binds.conf # All keybindings
│ ├── input.conf # Keyboard/mouse settings
│ ├── monitors.conf # Display layout
│ ├── windowrules.conf # Per-app behaviour rules
│ └── autostart.conf # Startup programs
├── kitty/
│ ├── kitty.conf # Terminal config
│ ├── current-theme.conf # Active palette (CyberQueer)
│ └── themes/cyberqueer.conf # Theme definition
├── waybar/
│ ├── config # Module layout and data sources
│ └── style.css # CyberQueer styling
├── wofi/style.css # Launcher styling
├── walker/themes/ # Walker theme (cyberqueer.css)
├── dunst/ # Notification styling
├── eww/ # EWW bar (PC — no battery)
├── eww-nobattery/ # EWW bar alias
├── eww-touch/ # EWW bar (tablet / touchscreen)
├── spicetify/ # Spotify CyberQueer themes
├── Vencord/ # Discord CyberQueer themes
├── btop/ # System monitor + cyberqueer.theme
├── scripts/ # 20+ utility scripts
└── config-updater/ # Config synchronisation tool
Keybindings
All bindings live in hypr-usr/binds.conf.
Applications
| Binding | Action |
|---|---|
Super + T |
Kitty terminal |
Super + Shift + T |
Cool Retro Term (CRT profile) |
Super + M |
Micro editor |
Super + E |
Thunar file manager |
Super + X |
Wofi app launcher |
Super + F |
File search (wofi) |
Super + Shift + F |
Folder search (wofi) |
Window Management
| Binding | Action |
|---|---|
Super + Q |
Close focused window |
Super + V |
Toggle floating |
Super + Shift + V |
Centre floating window |
Super + P |
Toggle pseudo-tiling |
Super + J |
Toggle split direction |
Super + Arrow / hjkl |
Focus window by direction |
Super + Shift + Arrow / hjkl |
Move window by direction |
Super + [0-9] |
Switch workspace |
Super + Shift + [0-9] |
Move window to workspace |
Super + mouse drag |
Move/resize floating window |
System
| Binding | Action |
|---|---|
Super + O |
Lock screen (hyprlock) |
Super + Alt + O |
Power menu |
Super + Ctrl + O |
Shutdown immediately |
Super + Z |
Toggle EWW bar |
Super + Ctrl + P |
Start screen recording |
Touchpad Gestures
| Gesture | Action |
|---|---|
| 3-finger swipe left/right | Switch workspace |
| 3-finger swipe up/down | Move window to workspace |
| 3-finger pinch | Toggle overview |
| 4-finger tap | Open launcher |
Status Bar (EWW)
EWW (Elkowar's Wayland Window Manager) is compiled from source during Hyprland install and comes in three variants:
| Variant | Device | Battery Widget |
|---|---|---|
eww/ |
Desktop PC | No |
eww-nobattery/ |
Desktop PC | No |
eww-touch/ |
Laptop / tablet | Yes |
During install the EWW installer asks which variant to use.
Waybar
An alternative to EWW — always installed. The bar layout:
- Left: clock, disk usage, RAM, CPU, temperature
- Centre: workspace switcher, active window title
- Right: network speed, IP address, system tray, audio volume, battery (if present)
Launchers
Wofi
Keyboard-driven app/file launcher. Activated with Super + X.
Config: wofi/style.css — themed with CyberQueer colours.
Walker
Fast CLI launcher (walker). Pre-configured with walker/config.toml and the cyberqueer.css / cyberqueer.toml theme files.
uLauncher
GUI launcher with plugin support. Theme: ulauncher/user-themes/cyberqueer/.
Colours in the theme are colour-substitution targets (updated by apply-theme.sh).
Notification Daemon (Dunst)
Lightweight notification daemon. Config in dunst/dunstrc.
Notifications appear top-right with CyberQueer styling.
Lock Screen (Hyprlock)
hyprlock is the Wayland screen locker. Config at hypr/hyprlock.conf.
Activated by Super + O or automatically via hypridle after idle timeout.
Scripts Reference
All scripts live in desktopenvs/hyprland/scripts/ and are deployed to ~/.config/scripts/.
| Script | Purpose |
|---|---|
caffeine.sh |
Toggle hypridle (prevent sleep) |
ewwstart.sh |
Launch EWW bar on startup |
ewwstart-niri.sh |
EWW for niri compositor variant |
togglebar.sh |
Show/hide EWW bar (monitor-aware) |
helpmenu.sh |
Display keybindings from binds.conf |
screenshot.sh |
Region/full screenshot via grim + slurp |
screenrec.sh |
Screen recording |
screenrotationacw.sh |
Rotate screen anti-clockwise (tablet) |
screenrotationwcw.sh |
Rotate screen clockwise (tablet) |
unified-rotate.sh |
Unified rotation handler |
hyprland-toggle-touchpad.sh |
Enable/disable touchpad |
wofi-file-search.sh |
File search via wofi |
foldersearch.sh |
Folder search via wofi |
pwr-dmenu.sh |
Power menu (shutdown/reboot/suspend) |
caffeine.sh |
Toggle idle inhibitor |
getispeed.sh |
Internet speed test display |
journal.sh |
Quick journal entry |
date.sh / time.sh |
Date/time waybar helpers |
uptime.sh |
Uptime display |
dysk-phydisks.sh |
Physical disk info (dysk) |
drawer.sh |
Open nwg-drawer |
menu.sh |
Application menu |
onscreenkb.sh |
On-screen keyboard (wvkbd) |
bluetooth-applet.sh |
Bluetooth UI wrapper |
togglewinbars.sh |
Toggle window title bars |
toggle-layout.sh |
Switch tiling layout |
playpause.sh |
Media play/pause |
calender-fix.sh |
Calendar waybar widget fix |
Application Theming
Spotify (Spicetify)
Two CyberQueer Spicetify themes are available:
| Theme | Style |
|---|---|
cli-cyberqueer |
CLI-inspired, minimal |
matte-cyberqueer |
Matte finish variant |
Applied automatically when the spotify module is installed.
Discord (Vencord)
Two Discord themes:
| Theme | Location |
|---|---|
cyberqueer.theme.css |
Standalone CyberQueer theme |
system24/…/cyberqueer.theme.css |
system24 framework with CyberQueer colours |
Terminal (Kitty)
The kitty/themes/cyberqueer.conf file defines the full 16-colour palette mapped to CyberQueer values. It is sourced by current-theme.conf which is imported in kitty.conf.
Login Manager (ly)
ly is a TUI display manager configured via etc-ly-config.ini (deployed to /etc/ly/config.ini). Its colours are tracked by apply-theme.sh (system file, applied via sudo).
Installing Hyprland
# Via the TUI installer
bash ~/Dotfiles/setup/tui-install.sh
# → Select "shell" and "Hyprland" in the dialogs
# On an existing system
bash ~/Dotfiles/setup/install-modules.sh
# → Not available; Hyprland is a base DE, use the full installer
# Direct script
bash ~/Dotfiles/setup/modules/Desktop-Environments/hyprland.sh
The install script compiles EWW from source (requires Rust), copies all configs, installs the GTK and cursor themes, enables ly@tty1, and configures greetd.