# Hyprland Configuration
# https://wiki.hypr.land/Configuring/

# ==================
# MONITOR CONFIG
# ==================
# monitor = eDP-2, 2560x1600@239.998993, 2560x0, 1, vrr, 1
monitor = , preferred,auto,auto

# ==================
# STARTUP APPS
# ==================
exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user start hyprland-session.target

# ==================
# INPUT CONFIG
# ==================
input {
    kb_layout = de
    numlock_by_default = true
}

# ==================
# GENERAL LAYOUT
# ==================
general {
    gaps_in = 5
    gaps_out = 5
    border_size = 2

    layout = dwindle
}

# ==================
# DECORATION
# ==================
decoration {
    rounding = 12

    active_opacity = 1.0
    inactive_opacity = 1.0

    shadow {
        enabled = true
        range = 30
        render_power = 5
        offset = 0 5
        color = rgba(00000070)
    }
}

# ==================
# ANIMATIONS
# ==================
animations {
    enabled = true

    animation = windowsIn, 1, 3, default
    animation = windowsOut, 1, 3, default
    animation = workspaces, 1, 5, default
    animation = windowsMove, 1, 4, default
    animation = fade, 1, 3, default
    animation = border, 1, 3, default
}

# ==================
# LAYOUTS
# ==================
dwindle {
    preserve_split = true
}

master {
    mfact = 0.5
}

# ==================
# MISC
# ==================
misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    vrr = 1
}

# ==================
# WINDOW RULES
# ==================
windowrule = tile on, match:class ^(org\.wezfurlong\.wezterm)$

windowrule = rounding 12, match:class ^(org\.gnome\.)

windowrule = tile on, match:class ^(gnome-control-center)$
windowrule = tile on, match:class ^(pavucontrol)$
windowrule = tile on, match:class ^(nm-connection-editor)$

windowrule = float on, match:class ^(gnome-calculator)$
windowrule = float on, match:class ^(galculator)$
windowrule = float on, match:class ^(blueman-manager)$
windowrule = float on, match:class ^(org\.gnome\.Nautilus)$
windowrule = float on, match:class ^(steam)$
windowrule = float on, match:class ^(xdg-desktop-portal)$

windowrule = float on, match:class ^(firefox)$, match:title ^(Picture-in-Picture)$
windowrule = float on, match:class ^(zoom)$

# DMS windows floating by default
# ! Hyprland doesn't size these windows correctly so disabling by default here
# windowrule = float on, match:class ^(org.quickshell)$

layerrule = no_anim on, match:namespace ^(quickshell)$

source = ./dms/colors.conf
source = ./dms/outputs.conf
source = ./dms/layout.conf
source = ./dms/cursor.conf
source = ./dms/binds.conf
