# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf


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

# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto


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

# See https://wiki.hyprland.org/Configuring/Keywords/

# Set programs that you use
$terminal = alacritty
$fileManager = dolphin
$toggle_menu_cmd = pgrep wofi >/dev/null 2>&1 && killall wofi || wofi --show drun

#          ╭──────────────────────────────────────────────────────────╮
#          │                        AUTOSTART                         │
#          ╰──────────────────────────────────────────────────────────╯

source = ./conf/autostart.conf

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

# See https://wiki.hyprland.org/Configuring/Environment-variables/

env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24


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

# Refer to https://wiki.hyprland.org/Configuring/Variables/

# https://wiki.hyprland.org/Configuring/Variables/#general
general { 
    gaps_in = 2
    gaps_out = 4

    border_size = 2

    # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
    col.active_border = rgba(aaaaaa77)
    col.inactive_border = rgba(000000aa)

    # Set to true enable resizing windows by clicking and dragging on borders and gaps
    resize_on_border = true

    # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
    allow_tearing = false

    layout = dwindle
}

# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
    rounding = 2

    # Change transparency of focused and unfocused windows
    active_opacity = 1.0
    inactive_opacity = 0.9
    fullscreen_opacity = 1.0

    drop_shadow = true
    shadow_range = 4
    shadow_render_power = 3
    col.shadow = rgba(1a1a1aee)

    # https://wiki.hyprland.org/Configuring/Variables/#blur
    blur {
        enabled = true
        size = 3
        passes = 1
        vibrancy = 0.1696
    }
}


# XDG Desktop Portal
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_TYPE,wayland
env = XDG_SESSION_DESKTOP,Hyprland

# QT
env = QT_QPA_PLATFORM,wayland;xcb
env = QT_QPA_PLATFORMTHEME,qt6ct
env = QT_QPA_PLATFORMTHEME,qt5ct
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env = QT_AUTO_SCREEN_SCALE_FACTOR,1

# GDK
env = GDK_SCALE,1

# Toolkit Backend
env = GDK_BACKEND,wayland,x11,*
env = CLUTTER_BACKEND,wayland

# Mozilla
env = MOZ_ENABLE_WAYLAND,1

# Set the cursor size for xcursor
env = XCURSOR_SIZE,24

# Disable appimage launcher by default
env = APPIMAGELAUNCHER_DISABLE,1

# OZONE
env = OZONE_PLATFORM,wayland

#          ╭──────────────────────────────────────────────────────────╮
#          │                        Animations                        │
#          ╰──────────────────────────────────────────────────────────╯

source = conf/animations.conf

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

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

# https://wiki.hyprland.org/Configuring/Variables/#misc
misc { 
    force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
    disable_hyprland_logo = true # If true disables the random hyprland logo / anime girl background. :(
}


#          ╭──────────────────────────────────────────────────────────╮
#          │                          Input                           │
#          ╰──────────────────────────────────────────────────────────╯

source = ./conf/input.conf

#          ╭──────────────────────────────────────────────────────────╮
#          │                       Keybindings                        │
#          ╰──────────────────────────────────────────────────────────╯

source = ./conf/keybindings.conf

##############################
### WINDOWS AND WORKSPACES ###
##############################

# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules

# Example windowrule v1
# windowrule = float, ^(kitty)$
windowrule = size 300 400,(copyq)


# Browser Picture in Picture
windowrulev2 = float, title:^(Picture-in-Picture)$
windowrulev2 = pin, title:^(Picture-in-Picture)$
windowrulev2 = move 69.5% 4%, title:^(Picture-in-Picture)$


windowrule = maxsize 400 300, (blueman)
windowrule = float, (copyq|pavucontrol|blueman-manager|wofi|rofi)
windowrule = pin, (copyq|pavucontrol|blueman-manager|wofi|rofi)
windowrule = stayfocused, (copyq|pavucontrol|blueman-manager|wofi|rofi)
windowrule = center, (wofi)
windowrule = workspace 3, title:^(.*)(Telegram)(.*)$
windowrule = workspace 1, title:^(.*)(Firefox)(.*)$
windowrule = workspace special:music, title:(.*)((M|m)usic|(М|м)узыка)(.*)
windowrule = float, title:(.*)((M|m)usic|(М|м)узыка)(.*)
windowrule = size 600 500, title:(.*)((M|m)usic|(М|м)узыка)(.*)
windowrule = move onscreen cursor,(copyq|pavucontrol|blueman-manager)
# Example windowrule v2
windowrulev2 = float,class:^(cursor-float)$
windowrulev2 = move onscreen cursor,class:^(cursor-float)$

windowrulev2 = float,class:^(dmenu)$
windowrulev2 = pin,class:^(dmenu)$
windowrulev2 = stayfocused,class:^(dmenu)$
# windowrulev2 = move onscreen cursor,class:^(dmenu)$


windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.


workspace = special:music, opacity:0.5
workspace = opacity 0.5, onworkspace:name:special:music
workspace = special:music, gapsout:100