nixos/nate-work/linked-dotfiles/hypr/hyprland.conf

197 lines
5.7 KiB
Plaintext

# Hyprland Configuration
# Converted from Nix settings for nate-work
# Variables
$mod = Super
$terminal = ghostty
$fileManager = nautilus
$menu = nwg-drawer
# Autostart applications
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = blueman-applet
exec-once = hypridle
exec-once = kanshi
exec-once = lxqt-policykit-agent
exec-once = nm-applet --indicator
exec-once = sleep 5 && syncthingtray --wait
exec-once = swaybg -i ~/.config/hypr/va_background.png
exec-once = swaylock -C ~/.config/swaylock/boot-config
exec-once = swaync
exec-once = waybar
exec-once = firefox --new-tab https://vasion.okta.com --new-tab https://github.com/PrinterLogic --new-tab https://claude.ai
exec-once = flatpak run org.signal.Signal
exec-once = flatpak run com.slack.Slack
exec-once = ghostty
exec-once = keepassxc
# Input configuration
input {
repeat_rate = 50
repeat_delay = 350
follow_mouse = 0
float_switch_override_focus = 0
touchpad {
natural_scroll = true
}
}
# Animations
bezier = easeout, 0, 0.55, 0.45, 1
animation = workspaces, 1, 1, easeout
# Gestures
gesture = 3, horizontal, workspace
# General layout
general {
gaps_in = 3
gaps_out = 5
border_size = 3
col.active_border = rgba(7e5fddff) rgba(ff5100ff) 60deg
}
# Decoration
decoration {
rounding = 12
inactive_opacity = 0.9
dim_inactive = true
dim_strength = 0.1
blur {
enabled = true
passes = 1
size = 10
}
shadow {
enabled = false
}
}
# Cursor
cursor {
no_hardware_cursors = true
}
# Misc
misc {
vfr = 0
force_default_wallpaper = 0
disable_hyprland_logo = true
}
# Render
render {
direct_scanout = 0
}
# Debug (remove when nvidia damage tracking works)
debug {
damage_tracking = 0
}
# OpenGL
opengl {
nvidia_anti_flicker = 0
}
# Monitor configuration handled by kanshi
# Window rules
windowrulev2 = float, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = workspace special:scratch silent, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = workspace special:scratch silent, class:^(org.signal.Signal)$
windowrulev2 = workspace 2 silent, class:^(firefox)$
windowrulev2 = workspace 3 silent, class:^(com.slack.Slack)$
windowrulev2 = workspace 4 silent, class:^(zoom)$
windowrulev2 = fullscreen, class:^(zoom)$, title:^(Meeting)$
windowrulev2 = float, class:^(zoom)$, title:!^(Meeting)$
# Key bindings
bind = $mod, Q, killactive
bind = $mod Shift, Q, exit
bind = $mod, W, exec, firefox
bind = $mod, D, exec, $menu
bind = $mod, T, exec, $fileManager
bind = $mod, code:36, exec, $terminal
bind = $mod, Space, togglefloating
bind = $mod Shift, Space, exec, hyprctl dispatch focuswindow $(if [[ $(hyprctl activewindow -j | jq ."floating") == "true" ]]; then echo "tiled"; else echo "floating"; fi;)
bind = $mod, F, fullscreen, 0
bind = $mod, Tab, cyclenext
bind = $mod Shift, Tab, swapnext
# Movement - Arrow keys
bind = $mod, left, movefocus, l
bind = $mod, right, movefocus, r
bind = $mod, up, movefocus, u
bind = $mod, down, movefocus, d
bind = $mod Shift, left, movewindow, l
bind = $mod Shift, right, movewindow, r
bind = $mod Shift, up, movewindow, u
bind = $mod Shift, down, movewindow, d
# Movement - Colemak-DH
bind = $mod, N, movefocus, l
bind = $mod, O, movefocus, r
bind = $mod, E, movefocus, u
bind = $mod, I, movefocus, d
bind = $mod Shift, N, movewindow, l
bind = $mod Shift, O, movewindow, r
bind = $mod Shift, E, movewindow, u
bind = $mod Shift, I, movewindow, d
# Special actions
bind = $mod SHIFT, K, exec, hyprctl keyword 'device[at-translated-set-2-keyboard]:enabled' 'false' && notify-send 'Laptop keyboard disabled' -i nix-snowflake
bind = $mod SHIFT, R, exec, hyprctl reload && notify-send 'Hypr Config Reloaded' -i nix-snowflake
# Workspaces
bind = $mod, minus, togglespecialworkspace, scratch
bind = $mod SHIFT, minus, movetoworkspacesilent, special:scratch
bind = $mod, M, togglespecialworkspace, music
bind = $mod Shift, M, exec, ~/.config/hypr/scripts/music_setup.sh
# Screenshots
bind = $mod, P, exec, ~/.config/hypr/scripts/screenshot.sh clipboard
bind = $mod SHIFT, P, exec, ~/.config/hypr/scripts/screenshot.sh
# Color picker
bind = $mod, C, exec, color=$(hyprpicker) && echo $color | wl-copy && notify-send "Copied $color to clipboard"
# Notification drawer
bind = $mod CONTROL, N, exec, swaync-client -t -sw
# Workspace bindings (1-9)
bind = $mod, code:10, workspace, 1
bind = $mod SHIFT, code:10, movetoworkspacesilent, 1
bind = $mod, code:11, workspace, 2
bind = $mod SHIFT, code:11, movetoworkspacesilent, 2
bind = $mod, code:12, workspace, 3
bind = $mod SHIFT, code:12, movetoworkspacesilent, 3
bind = $mod, code:13, workspace, 4
bind = $mod SHIFT, code:13, movetoworkspacesilent, 4
bind = $mod, code:14, workspace, 5
bind = $mod SHIFT, code:14, movetoworkspacesilent, 5
bind = $mod, code:15, workspace, 6
bind = $mod SHIFT, code:15, movetoworkspacesilent, 6
bind = $mod, code:16, workspace, 7
bind = $mod SHIFT, code:16, movetoworkspacesilent, 7
bind = $mod, code:17, workspace, 8
bind = $mod SHIFT, code:17, movetoworkspacesilent, 8
bind = $mod, code:18, workspace, 9
bind = $mod SHIFT, code:18, movetoworkspacesilent, 9
# Mouse bindings
bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow
# Brightness and Volume controls
bindel = , XF86MonBrightnessDown, exec, brightnessctl s 10%-
bindel = , XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = , XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle