- Install numlockx - Add --numlock flag to tuigreet greeter - Add exec-once = numlockx on to Hyprland config
156 lines
4.4 KiB
Django/Jinja
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
|