
# Variables
# -----------------------------------------

# monitors
$mainMonitor=DP-2
$secondMonitor=HDMI-A-1

# colors
$color_border = rgb(1a1c2d)
$color_active_border = $color_border
$color_inactive_border = $color_border

# Set programs that you use
$terminal = alacritty
$menu = rofi -show drun
$run_prog = rofi -show run
$screenshot = grim -g "$(slurp)" - | wl-copy
$focusOrStart = .config/hypr/scripts/focus-or-start.sh

# Settings
# -----------------------------------------

# Some default env vars.
env = XCURSOR_THEME,Qogir
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
env = WLR_NO_HARDWARE_CURSORS,1

## Nvidia stuff
env = LIBVA_DRIVER_NAME,nvidia
env = __GLX_VENDOR_LIBRARY_NAME,nvidia

general {
    gaps_in = 0,0,-1,-1
    gaps_out = -1
    border_size = 1
    col.active_border = $color_active_border
    col.inactive_border = $color_inactive_border
    layout = dwindle
    allow_tearing = false
    resize_on_border = false
}

input {
    kb_layout = pnx-us-se
    # kb_variant =
    # kb_model =
    # kb_options =
    # kb_rules =

    follow_mouse = 1
    accel_profile = flat
    force_no_accel = true
}

cursor {
    no_hardware_cursors = true
    enable_hyprcursor = true

    # Dont hide my cursor!
    hide_on_key_press = false
}

decoration {
    rounding = 0
    active_opacity = 1.0
    inactive_opacity = 1.0
    dim_inactive = false
    dim_strength = 0.1

    blur {
        enabled = true
        size = 4
        passes = 2
        popups = true
        ignore_opacity = false
    }

    shadow {
        enabled = false
    }
}

animations {
    enabled = yes
    animation = windows, 1, 2, default
    animation = border, 0
    animation = borderangle, 0
    animation = fade, 1, 1, default
    animation = workspaces, 1, 2, default
}

dwindle {
    pseudotile = no # master switch for pseudotiling.
    preserve_split = false
}

misc {
    # disable the anime mascot wallpapers
    force_default_wallpaper = 0
    # Disable hyperland logo and splash
    disable_hyprland_logo = true
    disable_splash_rendering = true
    # Set background color instead.
    background_color = 0x000000
    # Disable autoreload as i can reload myself.
    disable_autoreload = true
}

debug {
    overlay = false
    disable_logs = false
}

ecosystem {
    no_update_news = true
    no_donation_nag = true
}

# Monitors
# -----------------------------------------

# See https://wiki.hyprland.org/Configuring/Monitors/
#monitor=,preferred,auto,auto
monitor=$mainMonitor,preferred,0x0,1
monitor=$secondMonitor,1920x1080@60,760x-1080,1

# Workspaces and windows
# -----------------------------------------

workspace = 1,monitor:$mainMonitor,default:true
workspace = 2,monitor:$mainMonitor,default:true
workspace = 3,monitor:$mainMonitor,default:true
workspace = 4,monitor:$mainMonitor,default:true
workspace = 5,monitor:$secondMonitor,persistent:true,default:true

windowrule = match:float 1, opacity 0.9  
windowrule = match:class firefox, workspace 2
windowrule = match:class class:org.telegram.desktop.*, workspace 5

layerrule = match:namespace ^rofi$, no_anim 1

# Keybinds
# -----------------------------------------

$mainMod = SUPER

# programs
bind = $mainMod, D, exec, $menu
bind = $mainMod, P, exec, $run_prog
bind = $mainMod, Return, exec, $terminal
bind = $mainMod, T, exec, $focusOrStart "telegram" "org.telegram"
bind = $mainMod, G, exec, $focusOrStart "vivaldi-stable" "vivaldi-stable"
bind = $mainMod, S, exec, $screenshot

# Windows
bind = $mainMod, X, killactive,
bind = $mainMod, F, togglefloating,
bind = $mainMod, V, togglesplit, # dwindle

# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, H, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, L, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, K, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, J, movefocus, d

# Switch workspaces with mainMod + [0-9]
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

# Move active window to a workspace with mainMod + SHIFT + [0-9]
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

# Example special workspace (scratchpad)
#bind = $mainMod, S, togglespecialworkspace, magic
#bind = $mainMod SHIFT, S, movetoworkspace, special:magic

# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

# Autostart
# -------------

# Hyprland apps
exec-once = hypridle

# set wallpaper
exec-once=hyprpaper

# Bar
exec-once=waybar

# Programs
exec-once=nm-applet
exec-once=nextcloud
exec-once=telegram
