Files
mw-pfeddersheim-workstation/ansible/roles/hyprland/templates/hyprland.conf.j2
T
ja 1fcb467c04 feat: uwsm integration and hyprland worktime saver keybinds
- Replace SDDM with greetd+tuigreet (VT1) using uwsm-managed Hyprland
- Remove legacy exec-once from hyprland.conf
- Create 6 systemd user services: hyprpaper, waybar, dunst, hypridle,
  hyprlauncher, cliphist (all WantedBy=graphical-session.target)
- Add worktime saver keybinds: fullscreen, float, cycle windows,
  scratchpad, reload config, browser, keybind menu
- Home row navigation: HJKL for focus, move, resize (SUPER+ALT)
- Replace wofi with hyprlauncher (first-party, uwsm app prefix)
- Add hyprlauncher config with finders: desktop, math, unicode, font
- New ansible role templates: systemd/user services
- Documentation: hyprland-uwsm.md, cheatsheet.txt

KDE Wallet -> Bitwarden migration deferred (extract script prepared)
2026-05-20 16:02:53 +02:00

146 lines
4.1 KiB
Django/Jinja

# hyprland.conf - managed by Ansible
# Monitor layout (left to right):
# 1. DP-1 TERRA 3280W 2560x1440@144 (0x0)
# 2. DVI-D-1 BenQ BL2405 1920x1080@60 (rotated 90° CW, effective width 1080)
# 3. HDMI-A-1 TERRA 3280W 2560x1440@144 (3640x0)
monitor=DP-1,2560x1440@144,0x0,1
monitor=DVI-D-1,1920x1080@60,2560x0,1,transform,1
monitor=HDMI-A-1,2560x1440@144,3640x0,1
# Session services: hyprpaper, waybar, dunst, hypridle, hyprlauncher, cliphist
# Managed by systemd user units under ~/.config/systemd/user/
# All WantedBy=graphical-session.target for uwsm integration
# Environment variables for NVIDIA
env = LIBVA_DRIVER_NAME,nvidia
env = XDG_SESSION_TYPE,wayland
env = GBM_BACKEND,nvidia-drm
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
env = WLR_NO_HARDWARE_CURSORS,1
env = NVD_BACKEND,direct
# Input
input {
kb_layout = de
follow_mouse = 1
sensitivity = 0
}
device {
name = pixart-usb-optical-mouse
left_handed = 1
}
general {
gaps_in = 5
gaps_out = 10
border_size = 2
col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
}
# Decoration
decoration {
rounding = 10
blur {
enabled = true
size = 3
passes = 1
}
}
# Animations
animations {
enabled = yes
}
# Dwindle layout
dwindle {
preserve_split = yes
}
# Keybindings
$mainMod = SUPER
bind = $mainMod, Q, exec, kitty
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, dolphin
bind = $mainMod, V, togglefloating,
bind = $mainMod, D, exec, hyprlauncher
bind = $mainMod, P, pseudo
bind = $mainMod, J, layoutmsg, togglesplit
# Worktime safers
bind = $mainMod, F, fullscreen, 0 # Toggle fullscreen
bind = $mainMod, SPACE, togglefloating # Toggle float (popup window)
bind = $mainMod, TAB, cyclenext # Cycle through windows
bind = $mainMod SHIFT, TAB, cyclenext, prev # Cycle backwards
bind = $mainMod, GRAVE, togglespecialworkspace # Scratchpad (toggle)
bind = $mainMod SHIFT, GRAVE, movetoworkspace, special # Send to scratchpad
bind = $mainMod CTRL, K, exec, grep -E '^bind\s*=.*#' ~/.config/hypr/hyprland.conf | sed 's/^bind\s*=\s*\$mainMod/SUPER/;s/\s*#/#/' | fuzzel -d
# Home row navigation aliases (keep arrows too)
bind = $mainMod, H, movefocus, l
bind = $mainMod, L, movefocus, r
# HJKL + SHIFT = move window in direction (home row)
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, L, movewindow, r
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, J, movewindow, d
# Window resize via home row (SUPER+ALT)
bind = $mainMod ALT, H, resizeactive, -40 0
bind = $mainMod ALT, L, resizeactive, 40 0
bind = $mainMod ALT, K, resizeactive, 0 -40
bind = $mainMod ALT, J, resizeactive, 0 40
# Lock screen
bind = $mainMod CTRL, L, exec, hyprlock
# Focus
bind = $mainMod, left, movefocus, l
# Workspace to monitor pinning
workspace = 1, monitor:DP-1, default:true
workspace = 2, monitor:DVI-D-1, default:true
workspace = 3, monitor:HDMI-A-1, default:true
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Move window to adjacent tile/monitor
bind = $mainMod SHIFT, left, movewindow, l
bind = $mainMod SHIFT, right, movewindow, r
bind = $mainMod SHIFT, up, movewindow, u
bind = $mainMod SHIFT, down, movewindow, d
# Apps
bind = $mainMod, B, exec, chromium
# Workspaces
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
# Move to workspace
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9