$mod = SUPER
$terminal = alacritty
$fallback_terminal = st
$menu = rofi -show drun -theme ~/.config/rofi/config.rasi
$powermenu = ~/.local/bin/powermenu
$locker = ~/.local/bin/lock-session
$screenshot = ~/.local/bin/screenshot-wayland

exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = dex --autostart --environment Hyprland
exec-once = gnome-keyring-daemon --start --components=secrets
exec-once = ~/.local/bin/setup-gtk-theme
exec-once = hyprpaper
exec-once = waybar
exec-once = hypridle
exec-once = dunst
exec-once = pipewire
exec-once = pipewire-pulse
exec-once = wireplumber
exec-once = /usr/libexec/xfce-polkit
exec-once = nm-applet
exec-once = blueman-applet
exec-once = udiskie --tray --automount

env = XCURSOR_THEME,Yaru
env = XCURSOR_SIZE,24
env = GTK_THEME,Yaru-blue-dark

source = ~/.config/hypr/host.conf

monitor = ,preferred,auto,1

input {
    kb_layout = us
    kb_variant = intl
    follow_mouse = 1
    sensitivity = 0

    touchpad {
        natural_scroll = true
    }
}

general {
    layout = dwindle
    gaps_in = 0
    gaps_out = 0
    border_size = 2
    col.active_border = rgb(4a90d9)
    col.inactive_border = rgb(3a3a46)
    allow_tearing = false
}

dwindle {
    preserve_split = yes
}

decoration {
    rounding = 0

    blur {
        enabled = false
    }
}

animations {
    enabled = no
}

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
}

windowrulev2 = float,class:^(Rofi)$
windowrulev2 = float,class:^(org.pulseaudio.pavucontrol)$
windowrulev2 = float,class:^(nm-connection-editor)$
windowrulev2 = float,class:^(blueman-manager)$

bind = $mod, Return, exec, $terminal
bind = $mod SHIFT, Return, exec, $fallback_terminal
bind = $mod, D, exec, $menu
bind = $mod SHIFT, V, exec, pavucontrol
bind = $mod SHIFT, F, exec, thunar
bind = $mod SHIFT, X, exec, $locker
bind = $mod SHIFT, Q, killactive
bind = $mod, F, fullscreen, 1
bind = $mod, SPACE, togglefloating
bind = $mod SHIFT, SPACE, togglefloating
bind = $mod, V, togglesplit
bind = $mod, B, togglesplit
bind = $mod, minus, togglespecialworkspace, scratchpad
bind = $mod SHIFT, minus, movetoworkspace, special:scratchpad

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

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

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 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

bind = $mod SHIFT, C, exec, hyprctl reload
bind = $mod SHIFT, R, exec, hyprctl reload
bind = $mod SHIFT, BackSpace, exit
bind = $mod SHIFT, Escape, exec, $powermenu

bind = , Print, exec, $screenshot full
bind = SHIFT, Print, exec, $screenshot region
bind = ALT, Print, exec, $screenshot output

bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bind = , XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle
bind = , XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle
bind = , XF86MonBrightnessUp, exec, brightnessctl set +10%
bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%-
bind = , XF86AudioPlay, exec, playerctl play-pause
bind = , XF86AudioNext, exec, playerctl next
bind = , XF86AudioPrev, exec, playerctl previous

bind = $mod, R, submap, resize

submap = resize
bind = , H, resizeactive, -40 0
bind = , J, resizeactive, 0 40
bind = , K, resizeactive, 0 -40
bind = , L, resizeactive, 40 0
bind = , left, resizeactive, -40 0
bind = , down, resizeactive, 0 40
bind = , up, resizeactive, 0 -40
bind = , right, resizeactive, 40 0
bind = , escape, submap, reset
bind = , Return, submap, reset
bind = $mod, R, submap, reset
submap = reset

bindm = $mod, mouse:272, movewindow
bindm = $mod, mouse:273, resizewindow
