######################################################################################
### FRUMPELS HYPRLAND CONFIG (ROAD TO LINUX 2026)
### ----------------------------------------------------------------------------------
### WICHTIG VOR DEM START:
### 1. Prüft eure Monitor-Einstellungen (Zeile 16)
### 2. Ändert das Tastatur-Layout auf 'us', falls ihr kein Deutsch nutzt (Zeile 123)
### 3. Passt den Wallpaper-Pfad an (Zeile 34)
### 4. Passt den Screensho-Pfad an (Zeile 192)
######################################################################################

################
### MONITORS ###
################

# Automatische Erkennung (Am besten so lassen, wenn man unsicher ist)
monitor=,preferred,auto,auto


###################
### MY PROGRAMS ###
###################

# Meine Standard-Apps (Könnt ihr ändern zu kitty, foot, nautilus etc.)
$terminal = alacritty
$fileManager = dolphin
$menu = ulauncher-toggle # Mein Spotlight/PowerToys Ersatz


#################
### AUTOSTART ###
#################

# Wallpaper Engine (WICHTIG: Pfad zu EUREM Bild ändern!)
exec-once = swaybg -i /usr/share/wallpapers/Metal/contents/images/3840x2160.png

# System-Dienste für Notification, Passwort-Abfragen & Clipboard
exec-once = mako
exec-once = /usr/lib/polkit-kde-authentication-agent-1
exec-once = wl-paste --watch cliphist store

# Die Statusleiste & App-Launcher starten
exec-once = waybar
exec-once = ulauncher --hide-window


#############################
### ENVIRONMENT VARIABLES ###
#############################

# Damit die Maus und QT-Apps gut aussehen
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = XDG_MENU_PREFIX,plasma-
env = XDG_CURRENT_DESKTOP,Hyprland


#####################
### LOOK AND FEEL ###
#####################

general {
    # Abstände zwischen den Fenstern (Gaps)
    gaps_in = 5
    gaps_out = 20
    border_size = 2

    # MEIN STYLE: Neon Verlauf (Cyan zu Pink)
    col.active_border = rgba(33ccffee) rgba(ff00ffee) 45deg
    col.inactive_border = rgba(595959aa)

    # Layout-Verhalten
    resize_on_border = false
    allow_tearing = false
    layout = dwindle # Das Standard-Tiling-Verhalten
}

decoration {
    rounding = 10 # Abgerundete Ecken

    # Transparenz (1.0 = Undurchsichtig, 0.9 = Leicht transparent)
    active_opacity = 1.0
    inactive_opacity = 1.0

    shadow {
        enabled = true
        range = 4
        render_power = 3
        color = rgba(1a1a1aee)
    }

    # Der "Milchglas"-Effekt (Blur)
    blur {
        enabled = true
        size = 6        # Wie stark verschwommen?
        passes = 2      # Qualität (höher = mehr GPU Last)
        vibrancy = 0.1696
    }
}

animations {
    enabled = yes

    # Meine "Snappy" Animationen (Popin Effekt)
    bezier = myCurve, 0.05, 0.9, 0.1, 1.05
    animation = windows, 1, 7, myCurve
    animation = windowsOut, 1, 7, default, popin 80%
    animation = border, 1, 10, default
    animation = fade, 1, 7, default
    animation = workspaces, 1, 6, default
}

dwindle {
    pseudotile = true
    preserve_split = true
}


#############
### INPUT ###
#############

input {
    kb_layout = de      # WICHTIG: Auf 'us' ändern, wenn ihr keine DE-Tastatur habt!
    kb_variant =
    kb_model =
    kb_options =
    kb_rules =

    follow_mouse = 1
    sensitivity = 0

    touchpad {
        natural_scroll = false
    }
}


###################
### KEYBINDINGS ###
###################

$mainMod = SUPER # Die "Windows"-Taste

# --- MEIN FAVORIT: ALT + SPACE startet Apps (wie am Mac/Windows) ---
bind = ALT, SPACE, exec, $menu

# Fenster-Management
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, C, killactive,       # Schließen
bind = $mainMod, M, exit,             # Ausloggen (Vorsicht!)
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, F, togglefloating,   # Schwebe-Modus
bind = $mainMod, P, pseudo,
bind = $mainMod, J, togglesplit,
bind = $mainMod, G, fullscreen        # Vollbild

# Fokus wechseln (Pfeiltasten)
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d

# Workspaces wechseln (1-0)
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

# Fenster auf anderen Workspace werfen (SHIFT + Zahl)
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
# ... (Rest der Zahlen hier denken) ...
bind = $mainMod SHIFT, 0, movetoworkspace, 10

# Maussteuerung (Fenster ziehen mit Super + Linksklick)
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Multimedia-Tasten (Lautstärke/Helligkeit)
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle

# Screenshots (Speichert in ~/Bilder/Bildschirmfotos)
bind = , Print, exec, grim -g "$(slurp)" - | tee /home/pulle/Bilder/Bildschirmfotos/Screenshot_$(date +'%Y-%m-%d_%H-%M-%S').png | wl-copy
