mirror of
https://github.com/fscotto/infra.git
synced 2026-07-29 16:20:01 +00:00
227 lines
6.8 KiB
Plaintext
227 lines
6.8 KiB
Plaintext
# Hyprland config, aligned with the Sway desktop profile.
|
|
|
|
$mod = SUPER
|
|
$terminal = alacritty
|
|
$browser = firefox
|
|
|
|
monitor = ,preferred,auto,1
|
|
|
|
env = XCURSOR_THEME,Yaru
|
|
env = XCURSOR_SIZE,24
|
|
|
|
input {
|
|
kb_layout = us
|
|
kb_variant = intl
|
|
follow_mouse = 0
|
|
}
|
|
|
|
cursor {
|
|
no_hardware_cursors = false
|
|
}
|
|
|
|
general {
|
|
gaps_in = 5
|
|
gaps_out = 20
|
|
border_size = 3
|
|
col.active_border = rgba(54d6ffff) rgba(1478ffff) 180deg
|
|
col.inactive_border = rgba(f5e6b899) rgba(8a8f9acc) 180deg
|
|
layout = master
|
|
}
|
|
|
|
decoration {
|
|
rounding = 8
|
|
|
|
blur {
|
|
enabled = true
|
|
size = 5
|
|
passes = 1
|
|
}
|
|
|
|
shadow {
|
|
enabled = true
|
|
}
|
|
|
|
dim_inactive = true
|
|
dim_strength = 0.1
|
|
}
|
|
|
|
animations {
|
|
enabled = true
|
|
bezier = easeOutQuint,0.23,1,0.32,1
|
|
animation = windows,1,2,easeOutQuint,popin 85%
|
|
animation = border,1,2,easeOutQuint
|
|
animation = fade,1,2,easeOutQuint
|
|
animation = workspaces,1,2,easeOutQuint,slidevert
|
|
animation = layers,1,2,easeOutQuint,fade
|
|
}
|
|
|
|
master {
|
|
new_status = slave
|
|
orientation = left
|
|
}
|
|
|
|
misc {
|
|
disable_hyprland_logo = true
|
|
disable_splash_rendering = true
|
|
force_default_wallpaper = 0
|
|
focus_on_activate = false
|
|
}
|
|
|
|
xwayland {
|
|
enabled = true
|
|
}
|
|
|
|
# Per-host overrides (terminal wrapper, env, monitors, workspace rules, etc.).
|
|
source = ~/.config/hypr/host.conf
|
|
|
|
# Window rules
|
|
windowrule = float on, match:class (?i)(polkit)
|
|
windowrule = float on, match:title ^Authentication Required$
|
|
windowrule = float on, match:title ^Open File$
|
|
windowrule = float on, match:title ^Save File$
|
|
windowrule = float on, match:class (?i)(blueman-manager)
|
|
windowrule = float on, match:class (?i)(nm-connection-editor)
|
|
windowrule = float on, match:class (?i)(pinentry)
|
|
windowrule = float on, match:class (?i)(firefox), match:title ^Library$
|
|
windowrule = float on, match:class (?i)(firefox), match:title ^About Mozilla Firefox$
|
|
windowrule = float on, match:class org.freedesktop.impl.portal.desktop.gtk
|
|
windowrule = idle_inhibit fullscreen, match:fullscreen true
|
|
windowrule = idle_inhibit focus, match:content 2
|
|
|
|
# Autostart — XDG and session services
|
|
exec-once = dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY HYPRLAND_INSTANCE_SIGNATURE XDG_CURRENT_DESKTOP XDG_SESSION_TYPE XDG_SESSION_DESKTOP
|
|
exec-once = dex --autostart --environment Hyprland
|
|
exec-once = gnome-keyring-daemon --start --components=secrets
|
|
exec-once = ~/.local/bin/setup-gtk-theme
|
|
exec-once = /usr/libexec/xdg-desktop-portal
|
|
exec-once = /usr/libexec/xdg-desktop-portal-hyprland
|
|
exec-once = /usr/libexec/xdg-desktop-portal-gtk
|
|
|
|
# Audio/session services
|
|
exec-once = pipewire
|
|
exec-once = pipewire-pulse
|
|
exec-once = wireplumber
|
|
|
|
# Desktop services
|
|
exec-once = hyprctl setcursor Yaru 24
|
|
exec-once = hyprpaper
|
|
exec-once = waybar -c ~/.config/waybar/hyprland.jsonc -s ~/.config/waybar/hyprland-style.css
|
|
exec-once = swayosd-server
|
|
exec-once = dunst
|
|
exec-once = /usr/libexec/xfce-polkit
|
|
exec-once = nm-applet
|
|
exec-once = blueman-applet
|
|
exec-once = udiskie
|
|
exec-once = hypridle
|
|
|
|
# Clipboard manager
|
|
exec-once = wl-paste --type text --watch cliphist store
|
|
exec-once = wl-paste --type image --watch cliphist store
|
|
|
|
# Applications
|
|
bind = $mod, Return, exec, $terminal
|
|
bind = $mod SHIFT, Return, exec, foot
|
|
bind = $mod SHIFT, E, exec, emacsclient -c -n
|
|
bind = $mod, D, exec, rofi -show drun -theme ~/.config/rofi/config.rasi
|
|
bind = $mod, C, exec, cliphist list | rofi -dmenu -theme ~/.config/rofi/config.rasi | cliphist decode | wl-copy
|
|
bind = $mod SHIFT, V, exec, pavucontrol
|
|
bind = $mod SHIFT, F, exec, thunar
|
|
bind = $mod SHIFT, D, exec, dunstctl set-paused toggle
|
|
bind = $mod SHIFT, X, exec, hyprlock
|
|
bind = $mod SHIFT, Q, killactive
|
|
|
|
# Screenshots (Hyprland-native: grim/slurp/wl-copy; Flameshot is unstable here)
|
|
bind = , Print, exec, ~/.config/hypr/scripts/screenshot region
|
|
bind = SHIFT, Print, exec, ~/.config/hypr/scripts/screenshot full
|
|
bind = ALT, Print, exec, ~/.config/hypr/scripts/screenshot output
|
|
|
|
# Focus
|
|
bind = $mod, H, movefocus, l
|
|
bind = $mod, J, movefocus, d
|
|
bind = $mod, K, movefocus, u
|
|
bind = $mod, L, movefocus, r
|
|
bind = $mod, left, movefocus, l
|
|
bind = $mod, down, movefocus, d
|
|
bind = $mod, up, movefocus, u
|
|
bind = $mod, right, movefocus, r
|
|
|
|
# Move windows
|
|
bind = $mod SHIFT, H, movewindow, l
|
|
bind = $mod SHIFT, J, movewindow, d
|
|
bind = $mod SHIFT, K, movewindow, u
|
|
bind = $mod SHIFT, L, movewindow, r
|
|
bind = $mod SHIFT, left, movewindow, l
|
|
bind = $mod SHIFT, down, movewindow, d
|
|
bind = $mod SHIFT, up, movewindow, u
|
|
bind = $mod SHIFT, right, movewindow, r
|
|
|
|
# Layouts / floating
|
|
bind = $mod, F, fullscreen
|
|
bind = $mod SHIFT, Space, togglefloating
|
|
bind = $mod, Space, cyclenext
|
|
bind = $mod, A, layoutmsg, swapwithmaster
|
|
bindm = $mod, mouse:272, movewindow
|
|
bindm = $mod, mouse:273, resizewindow
|
|
|
|
# Scratchpad-like special workspace
|
|
bind = $mod SHIFT, minus, movetoworkspace, special
|
|
bind = $mod, minus, togglespecialworkspace
|
|
|
|
# Volume / brightness / media
|
|
bind = , XF86AudioRaiseVolume, exec, swayosd-client --output-volume raise
|
|
bind = , XF86AudioLowerVolume, exec, swayosd-client --output-volume lower
|
|
bind = , XF86AudioMute, exec, swayosd-client --output-volume mute-toggle
|
|
bind = , XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle
|
|
bind = , XF86MonBrightnessUp, exec, swayosd-client --brightness raise
|
|
bind = , XF86MonBrightnessDown, exec, swayosd-client --brightness lower
|
|
bind = , XF86AudioPlay, exec, playerctl play-pause
|
|
bind = , XF86AudioNext, exec, playerctl next
|
|
bind = , XF86AudioPrev, exec, playerctl previous
|
|
|
|
# Workspaces
|
|
bind = $mod, 1, workspace, 1
|
|
bind = $mod, 2, workspace, 2
|
|
bind = $mod, 3, workspace, 3
|
|
bind = $mod, 4, workspace, 4
|
|
bind = $mod, 5, workspace, 5
|
|
bind = $mod, 6, workspace, 6
|
|
bind = $mod, 7, workspace, 7
|
|
bind = $mod, 8, workspace, 8
|
|
bind = $mod, 9, workspace, 9
|
|
bind = $mod, 0, workspace, 10
|
|
bind = $mod, comma, exec, ~/.config/hypr/scripts/workspace-cycle prev
|
|
bind = $mod, period, exec, ~/.config/hypr/scripts/workspace-cycle next
|
|
|
|
bind = $mod SHIFT, 1, movetoworkspace, 1
|
|
bind = $mod SHIFT, 2, movetoworkspace, 2
|
|
bind = $mod SHIFT, 3, movetoworkspace, 3
|
|
bind = $mod SHIFT, 4, movetoworkspace, 4
|
|
bind = $mod SHIFT, 5, movetoworkspace, 5
|
|
bind = $mod SHIFT, 6, movetoworkspace, 6
|
|
bind = $mod SHIFT, 7, movetoworkspace, 7
|
|
bind = $mod SHIFT, 8, movetoworkspace, 8
|
|
bind = $mod SHIFT, 9, movetoworkspace, 9
|
|
bind = $mod SHIFT, 0, movetoworkspace, 10
|
|
|
|
# Reload / exit
|
|
bind = $mod SHIFT, C, exec, hyprctl reload
|
|
bind = $mod SHIFT, R, exec, hyprctl reload
|
|
bind = $mod SHIFT, BackSpace, exit
|
|
bind = $mod SHIFT, Escape, exec, ~/.config/hypr/scripts/powermenu.sh
|
|
|
|
# Resize submap
|
|
bind = $mod, R, submap, resize
|
|
submap = resize
|
|
bind = , H, resizeactive, -10 0
|
|
bind = , J, resizeactive, 0 10
|
|
bind = , K, resizeactive, 0 -10
|
|
bind = , L, resizeactive, 10 0
|
|
bind = , left, resizeactive, -10 0
|
|
bind = , down, resizeactive, 0 10
|
|
bind = , up, resizeactive, 0 -10
|
|
bind = , right, resizeactive, 10 0
|
|
bind = , Return, submap, reset
|
|
bind = , Escape, submap, reset
|
|
bind = $mod, R, submap, reset
|
|
submap = reset
|