← Index

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:


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.