Files
mw-pfeddersheim-workstation/ansible/roles/hyprland/templates/hyprland.conf.j2
T
ja 5173fdd5e0 Enable NumLock on boot via tuigreet and Hyprland
- Install numlockx
- Add --numlock flag to tuigreet greeter
- Add exec-once = numlockx on to Hyprland config
2026-05-28 08:32:40 +02:00

156 lines
4.4 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@60,0x0,1
monitor=DVI-D-1,1920x1080@60,2560x0,1,transform,1
monitor=HDMI-A-1,2560x1440@60,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
}
# NumLock
exec-once = numlockx on
# Keybindings
$mainMod = SUPER
bind = $mainMod, Q, killactive,
bind = $mainMod, T, exec, kitty
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, kitty -e yazi
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, R, exec, hyprctl reload # Reload Hyprland config
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
# Screenshots
bind = , Print, exec, grimblast copysave area
bind = $mainMod, Print, exec, grimblast copysave active
bind = $mainMod SHIFT, Print, exec, grimblast copysave output
bind = $mainMod ALT, Print, exec, grim -g "$(slurp)" - | satty -f -
# 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, google-chrome-stable
# 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