# MONITOR CONFIG
monitor=,preferred,auto,1,transform, 0
# monitor=,addreserved, 0, 0, 0, 0 # Custom reserved area

# HDMI port: mirror display. To see device name, use `hyprctl monitors`
# monitor=HDMI-A-1,1920x1080@60,1920x0,1,mirror,eDP-1

gestures {
    workspace_swipe = true
    workspace_swipe_distance = 700
    workspace_swipe_fingers = 3
    workspace_swipe_min_fingers = true
    workspace_swipe_cancel_ratio = 0.2
    workspace_swipe_min_speed_to_force = 5
    workspace_swipe_direction_lock = true
    workspace_swipe_direction_lock_threshold = 10
    workspace_swipe_create_new = true
}

general {
    # Gaps and border
    gaps_in = 4
    gaps_out = 5
    gaps_workspaces = 50
    
    border_size = 1
    col.active_border = rgba(0DB7D4FF)
    col.inactive_border = rgba(31313600)
    resize_on_border = true

    no_focus_fallback = true
    
    allow_tearing = true # This just allows the `immediate` window rule to work
    
    snap {
    	enabled = true
    }
}

dwindle {
    preserve_split = true
    smart_split = false
    smart_resizing = false
}

decoration {
    rounding = 18
    
    blur {
        enabled = true
        xray = true
        special = false
        new_optimizations = true
        size = 14
        passes = 3
        brightness = 1
        noise = 0.01
        contrast = 1
        popups = true
        popups_ignorealpha = 0.6
    }
    
    shadow {
        enabled = true
        ignore_window = true
        range = 70
        offset = 0 4
        render_power = 2
        color = rgba(00000008)
    }
    
    # Dim
    dim_inactive = true
    dim_strength = 0.025
    dim_special = 0.07
}

animations {
    enabled = true
    # Curves
    bezier = md3_decel, 0.05, 0.7, 0.1, 1
    bezier = md3_accel, 0.3, 0, 0.8, 0.15
    bezier = md2_decel, 0, 0, 0, 1
    bezier = menu_decel, 0.1, 1, 0, 1
    bezier = menu_accel, 0.52, 0.03, 0.72, 0.08
    # Configs
    # windows
    animation = windowsIn, 1, 3, md3_decel, popin 80%
    animation = windowsOut, 1, 2, md3_decel, popin 90%
    animation = windowsMove, 1, 3, md3_decel, slide
    animation = border, 1, 10, md3_decel
    # layers
    animation = layersIn, 1, 2.7, md3_decel, popin 93%
    animation = layersOut, 1, 1.8, menu_accel, popin 94%
    # fade
    animation = fadeLayersIn, 1, 0.5, menu_decel
    animation = fadeLayersOut, 1, 2, menu_accel
    # workspaces
    animation = workspaces, 1, 7, menu_decel, slide
    ## specialWorkspace
    animation = specialWorkspaceIn, 1, 2.8, md3_decel, slidevert
    animation = specialWorkspaceOut, 1, 1.2, md3_accel, slidevert
}

input {
    kb_layout = us
    numlock_by_default = true
    repeat_delay = 250
    repeat_rate = 35
    
    follow_mouse = 1

    touchpad {
        natural_scroll = yes
        disable_while_typing = true
        clickfinger_behavior = true
        scroll_factor = 0.5
    }
}

misc {
    disable_hyprland_logo = true
    disable_splash_rendering = true
    vfr = 1
    vrr = 1
    mouse_move_enables_dpms = true
    key_press_enables_dpms = true
    animate_manual_resizes = false
    animate_mouse_windowdragging = false
    enable_swallow = true
    swallow_regex = (foot|kitty|allacritty|Alacritty)
    new_window_takes_over_fullscreen = 2
    allow_session_lock_restore = true
    initial_workspace_tracking = false
    focus_on_activate = true
}

binds {
    scroll_event_delay = 0
    hide_special_on_workspace_change = true
}

cursor {
    zoom_factor = 1
    zoom_rigid = false
}

# Overview
plugin {
    hyprexpo {
        columns = 3
        gap_size = 5
        bg_col = rgb(000000)
        workspace_method = first 1 # [center/first] [workspace] e.g. first 1 or center m+1

        enable_gesture = false # laptop touchpad, 4 fingers
        gesture_distance = 300 # how far is the "max"
        gesture_positive = false
    }
}
