Hyprland Power User & macOS Workflow Guide (Deprecated)

Status: Decommissioned & Archived (2026-09-14)

Hyprland has been completely pruned and uninstalled from the Fedora workstation in favor of Niri + DankMaterialShell (DMS).

  • Reason: Continuous config deprecation churn (.conf vs .lua), complex multi-daemon stitching (waybar, mako, cliphist, hyprpaper), and superior ergonomics in Niri’s infinite horizontal ribbon.
  • Backup Archive: All configurations and scripts were preserved in ~/.archive/hyprland-backup-20260914_213036.tar.gz.
  • Fallback Strategy: Stock GNOME Wayland is retained as the emergency rescue desktop environment.

This guide is preserved for archival reference only.


A definitive architectural guide to configuring Hyprland on Linux (Wayland) with a blended macOS ergonomics + Vim efficiency + Rectangle tiling setup, resilient background services, and zero-sleep AFK capabilities.


1. Ergonomic Philosophy & Navigation Hierarchy

The configuration blends three ergonomic paradigms:

  1. macOS Muscle Memory: ⌘ Space for Spotlight (Wofi), ⌘ Tab window cycling, ⌘ ↩ / ⌘ T for Ghostty terminal, ⌘ ⇧ 3/4/5 for Grim/Slurp screenshots, and ⌘ Q / ⌘ W to close windows.
  2. Vim Home-Row Navigation: Zero wrist movement from typing position using Super + H/J/K/L for spatial focus and Super + Shift + H/J/K/L for window swapping.
  3. Rectangle Window Management: ⌘ ⌥ + Arrow Keys or Ctrl ⌥ + Arrow Keys to snap windows into halves, corners, center, and maximized states.

2. Full Keybinding Matrix

⚡ Navigation & Spatial Movement

KeybindingActionDescription
⌘ H / ⌘ LFocus Left / RightHome-row horizontal window focus
⌘ K / ⌘ JFocus Up / DownHome-row vertical window focus
⌘ ⇧ H / ⌘ ⇧ LSwap Left / RightSwap window positions horizontally
⌘ ⇧ K / ⌘ ⇧ JSwap Up / DownSwap window positions vertically
⌘ ⇧ Arrow KeysDirectional FocusArrow-key spatial window focus

📑 Tabbed Window Groups (Hyprland Tabs)

KeybindingActionDescription
⌘ GToggle GroupTurn focused window into a tabbed frame
⌘ [Previous TabCycle to previous tab in active group
⌘ ]Next TabCycle to next tab in active group
⌘ ⇧ GExtract WindowPop active tab out of the group into a tile

🎛️ Modal Resize Mode (Vim Submap)

KeybindingActionDescription
⌘ REnter Resize ModeEnters submap for rapid layout adjustment
H / J / K / LAdjust ProportionsShrink / expand active window dimensions
Enter / EscExit Resize ModeLock window geometry and return to normal mode

📐 Rectangle Window Snapping

Shortcut (macOS / Classic)Window Position
⌘ ⌥ ← / ⌃ ⌥ ←Left Half
⌘ ⌥ → / ⌃ ⌥ →Right Half
⌘ ⌥ ↑ / ⌃ ⌥ ↑Top Half
⌘ ⌥ ↓ / ⌃ ⌥ ↓Bottom Half
⌘ ⌥ U / ⌃ ⌥ UTop-Left Corner
⌘ ⌥ I / ⌃ ⌥ ITop-Right Corner
⌘ ⌥ J / ⌃ ⌥ JBottom-Left Corner
⌘ ⌥ K / ⌃ ⌥ KBottom-Right Corner
⌘ ⌥ ↩ / ⌃ ⌥ ↩Maximize (Retain Bar)
⌘ ⌥ F / ⌃ ⌥ FFullscreen Mode
⌘ ⌥ C / ⌃ ⌥ CCenter Window on Screen
⌘ ⌥ ⌫ / ⌃ ⌥ ⌫Toggle Floating / Tiled

🚀 Launchers, Spaces & Scratchpads

ShortcutActionDescription
⌘ SpaceSpotlight LauncherFuzzy application search via Wofi
`⌘ “ (Grave/Tilde)Dropdown TerminalInstant Quake-style dropdown scratchpad terminal
⌘ M / ⌘ ⇧ MMinimize / RestoreSend window to scratchpad / Restore scratchpad
⌘ ⇧ Space / ⌘ ⇧ VClipboard HistoryCliphist clipboard picker with auto-paste
⌘ 1 .. 9Switch SpaceJump directly to Workspace 1..9
⌘ ⌃ 1 .. 9Move to SpaceMove focused window to Workspace 1..9
⌃ ← / ⌃ →Relative SpacesCycle to previous / next workspace
3-Finger Swipe ↔Trackpad SwipeFluid touchpad gesture workspace switching
⌘ ⇧ 3 / 4 / 5ScreenshotFullscreen / Region selection / Focused window
⌃ ⌘ Q / ⌃ ⌘ LLock ScreenNative macOS lock screen (hyprlock)

3. Input & Trackpad Configuration

Optimized for high-precision trackpads with zero-lag response:

input {
    kb_layout = us
    kb_options = caps:escape
    repeat_rate = 35
    repeat_delay = 250
    follow_mouse = 1
    sensitivity = 0
 
    touchpad {
        natural_scroll = true
        disable_while_typing = false
        tap-to-click = true
        clickfinger_behavior = false
        middle_button_emulation = true
        tap-and-drag = true
        scroll_factor = 1.0
    }
}
 
# ── Trackpad Gestures (macOS Spaces) ──
gesture = 3, horizontal, workspace
gesture = 4, up, workspace, e-1
gesture = 4, down, workspace, e+1

4. 24/7 Always-On AFK & Daemon Hardening

To ensure background daemons (e.g. Hermes Agent, Tailscale, SSH servers) stay online indefinitely without sleep or network drops:

  1. Mask System Sleep Targets:
    sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
  2. Ignore Laptop Lid Close: /etc/systemd/logind.conf.d/dont-suspend.conf:
    [Login]
    HandleLidSwitch=ignore
    HandleLidSwitchExternalPower=ignore
    HandleLidSwitchDocked=ignore
  3. Disable Wi-Fi Power Savings: /etc/NetworkManager/conf.d/disable-wifi-powersave.conf:
    [connection]
    wifi.powersave = 2
  4. Hypridle Configuration: Keep session locking (hyprlock) and display blanking (dpms off), but avoid calling systemctl suspend.

5. Lua Configuration & hyprconf2lua Migration (v0.55+)

Hyprland v0.55+ natively supports complete Lua scripting via ~/.config/hypr/hyprland.lua, superseding legacy .conf hyprlang files with programmatic flexibility, typed module helpers (hl.*), and dynamic submaps.

Migration Tooling:

Use hyprconf2lua for automated AST conversion:

uv run --project /tmp/hyprconf2lua hyprconf2lua ~/.config/hypr/hyprland.conf -o ~/.config/hypr/hyprland.lua

Compiler Verification:

Always verify config syntax before launching:

Hyprland --verify-config

Output:

DEBUG ]: [cfg] Using lua config found at ~/.config/hypr/hyprland.lua
======== Config parsing result:
config ok