# Monitor
monitor=,1920x1080,auto,1

# Input
$mainMod = SUPER
input {
    kb_layout = de
    kb_variant =
    kb_model =
    kb_options = caps:swapescape
    kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = yes
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}

# Exec / Startup
# exec-once = protonmail-bridge
exec-once = waybar
exec-once = hyprpaper
exec-once = nm-applet --indicator
exec-once = blueman-applet
exec-once = sleep 2 && nextcloud
exec-once = ~/.config/hypr/xdg_portal.sh
exec-once = lxpolkit

# General
general {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    gaps_in = 3
    gaps_out = 10
    border_size = 2
    col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
    col.inactive_border = rgba(595959aa)

    layout = dwindle
}

# Decoration
decoration {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more

    rounding = 10

    blur {
        enabled = true
        size = 3
        passes = 1
    }

#    drop_shadow = yes
#    shadow_range = 4
#    shadow_render_power = 3
#    col.shadow = rgba(1a1a1aee)
}

# Animation
animations {
    enabled = yes

    # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more

    bezier = myBezier, 0.05, 0.9, 0.1, 1.05

    animation = windows, 1, 7, myBezier
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = borderangle, 1, 8, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

# Misc
# misc {
#     hide_cursor_on_touch = true
# }

dwindle {
    # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
    pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
    preserve_split = yes # you probably want this
}

master {
    # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
    # new_is_master = true
}

#gestures {
    # See https://wiki.hyprland.org/Configuring/Variables/ for more
#    workspace_swipe = on
#}

# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more

# Gestures
group {
    focus_removed_window = true

    groupbar {
        font_family = SpaceMono Nerd Font Mono
    }
}

# Layouts

# Window rules

# Binds
binds {
    pass_mouse_when_bound = true
}

# Hyprcursor
#env = HYPRCURSOR_THEME, "Future-Cyan-Hyprcursor_Theme"
#env = HYPRCURSOR_SIZE,44
#env = XCURSOR_THEME,Future-Cyan-Hyprcursor_Theme
#env = XCURSOR_SIZE,44
#exec-once = gsettings set org.gnome.desktop.interface cursor-theme Future-Cyan-Hyprcursor_Theme

# Keybindings
bind = $mainMod, Q, exec, kitty
bind = $mainMod, C, killactive,
bind = $mainMod, E, exec, nemo
bind = $mainMod, R, exec, wofi --show drun
bind = $mainMod SHIFT, P, exec, firefox --private-window # pseudo, # dwindle
bind = $mainMod SHIFT, F, exec, firefox
bind = $mainMod, S, exec, hyprshot -m window -m active -z -o ~/Pictures/screenshots -f $(date +"sc_%Y-%m-%d_%H-%M-%s").png
bind = $mainMod SHIFT, S, exec, hyprshot --clipboard-only -m window -m active -z -o ~/Pictures/screenshots -f $(date +"sc_%Y-%m-%d_%H-%M-%s").png
bind = $mainMod ALT, S, exec, hyprshot -m region -z -o ~/Pictures/screenshots -f $(date +"sc_%Y-%m-%d_%H-%M-%s").png
bind = $mainMod SHIFT ALT, S, exec, hyprshot --clipboard-only -m region -z -o ~/Pictures/screenshots -f $(date +"sc_%Y-%m-%d_%H-%M-%s").png
bind = $mainMod, O, togglesplit, # dwindle
bind = $mainMod, T, togglefloating,
bind = $mainMod, F, fullscreen
bind = $mainMod, P, pin
bind = $mainMod SHIFT, Q, exec, hyprctl dispatch exit
binde = $mainMod, right, exec, hyprctl switchxkblayout at-translated-set-2-keyboard prev

# Keybindings special keys
bind = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
bind = , XF86AudioLowerVolume, exec, pamixer -d 4
bind = , XF86AudioRaiseVolume, exec, pamixer -i 4
bind = , XF86AudioMute, exec, pamixer -t
bind = , XF86AudioMicMute, exec, pamixer --default-source -t
bind = $mainMod, XF86AudioLowerVolume, exec, --default-source pamixer -d 4
bind = $mainMod, XF86AudioRaiseVolume, exec, --default-source pamixer -i 4
bind = $mainMod, N, exec, swaylock -c 000000 -e -i ~/.config/hypr/wallpaper/resting_background.jpg

# Window Management
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
bindm = $mainMod SHIFT, mouse:272, resizewindow

# Move focus with mainMod + vim navigation
bind = $mainMod, h, movefocus, l
bind = $mainMod, l, movefocus, r
bind = $mainMod, k, movefocus, u
bind = $mainMod, j, movefocus, d

bind = $mainMod SHIFT, h, movewindow, l
bind = $mainMod SHIFT, l, movewindow, r
bind = $mainMod SHIFT, k, movewindow, u
bind = $mainMod SHIFT, j, movewindow, d

# Workspace Management
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
bind = $mainMod, 0, workspace, 10

bind = CONTROL ALT, h, workspace, -1
bind = CONTROL ALT, l, workspace, +1
bind = CONTROL ALT, left, workspace, -1
bind = CONTROL ALT, right, workspace, +1

bind = CONTROL ALT SHIFT, h, movetoworkspace, -1
bind = CONTROL ALT SHIFT, l, movetoworkspace, +1
bind = CONTROL ALT SHIFT, left, movetoworkspace, -1
bind = CONTROL ALT SHIFT, right, movetoworkspace, +1

bind = $mainMod CONTROL SHIFT, h, movetoworkspacesilent, -1
bind = $mainMod CONTROL SHIFT, l, movetoworkspacesilent, +1
bind = $mainMod CONTROL SHIFT, left, movetoworkspacesilent, -1
bind = $mainMod CONTROL SHIFT, right, movetoworkspacesilent, +1

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
bind = $mainMod SHIFT, 0, movetoworkspace, 10

bind = $mainMod ALT, 1, movetoworkspacesilent, 1
bind = $mainMod ALT, 2, movetoworkspacesilent, 2
bind = $mainMod ALT, 3, movetoworkspacesilent, 3
bind = $mainMod ALT, 4, movetoworkspacesilent, 4
bind = $mainMod ALT, 5, movetoworkspacesilent, 5
bind = $mainMod ALT, 6, movetoworkspacesilent, 6
bind = $mainMod ALT, 7, movetoworkspacesilent, 7
bind = $mainMod ALT, 8, movetoworkspacesilent, 8
bind = $mainMod ALT, 9, movetoworkspacesilent, 9
bind = $mainMod ALT, 0, movetoworkspacesilent, 10
