#!      ░▒▒▒░░░▓▓           ___________
#!    ░░▒▒▒░░░░░▓▓        //___________/
#!   ░░▒▒▒░░░░░▓▓     _   _ _    _ _____
#!   ░░▒▒░░░░░▓▓▓▓▓▓ | | | | |  | |  __/
#!    ░▒▒░░░░▓▓   ▓▓ | |_| | |_/ /| |___
#!     ░▒▒░░▓▓   ▓▓   \__  |____/ |____/
#!       ░▒▓▓   ▓▓  //____/

#?  HyDE's Hyprland Configuration 
# First, let's understand the structure of the configuration file
# It is divided into 3 sections: Boilerplate, Overrides, and Users
#*   1. Boilerplate
#      - This section is for the default configuration of HyDE
#      - It is recommended to not change this section
#      - Filepath: $XDG_DATA_HOME/share/hyde/hyprland.conf
#*   2. Overrides
#      - This section is for overriding the default configuration of HyDE
#      - Change this section if you intended to:
#                                               - Change the startup and env variables
#                                               - Stop a app/service from starting
#                                               - Override HyDE specific variables
#      - Filepath: $XDG_CONFIG_HOME/hypr/hyde.conf
#*   3. Users
#      - This section is for user configuration
#      - It is recommended to change this section to your liking
#      - Filepath: ./keybindings.conf, ./windowrules.conf, ./monitors.conf, ./userprefs.conf



#?  Boilerplate 
source = ~/.local/share/hyde/hyprland.conf


#?  Overrides 
# Overriding startup and env variables
# To avoid breaking and conflicts, HyDE will use variables to store the env and startup variables
#   See ~/.config/hypr/hyde.conf for overriding the default env and startup variables
#* startup:
#     - The startup variables are the variables that are set when the shell starts
#     - $start.BAR=waybar       will launch waybar on startup (default waybar)
#     - $start.BAR=             will unset the variable
#     - $start.BAR=other_bar    will launch other_bar on startup, overriding the default (waybar)
#* env:
#     - The env variables are the variables that are set when the shell starts
#     - $env.QT_QPA_PLATFORMTHEME=      will unset the variable
#     - $env.QT_QPA_PLATFORMTHEME=qt6ct  will set the variable to qt6ct
# for  updated configuration, see the https://github.com/HyDE-Project/HyDE/blob/master/Configs/.config/hypr/hyde.conf


#?   Users 
# These files are for user configuration
# Edit the files to your liking
# Refer to https://wiki.hyprland.org
source = ./keybindings.conf # Keyboard shortcuts
source = ./windowrules.conf # Window rules
source = ./monitors.conf # Monitor configuration
source = ./userprefs.conf # Personal hyprland configuration



#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄

#? █▀█ █▀▀ █▀▀ █▀▀ █▀█ █▀▀ █▄░█ █▀▀ █▀▀
#? █▀▄ ██▄ █▀░ ██▄ █▀▄ ██▄ █░▀█ █▄▄ ██▄

#!▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄ ▄▄


#?  Reference 
# Configurations below are for reference ONLY
# They are not essential for HyDE to work but can be used to enhance QOL
# Copy the config line and paste it in the Users section to use it
# This is to prevent bloating users configuration files when not needed

# // █▀▀ █▄░█ █░█
# // ██▄ █░▀█ ▀▄▀

# env = MANGOHUD,1
# env = MANGOHUD_DLSYM,1


# // █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
# // █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█

# bind = Ctrl+Alt+Shift, R, pass, ^(com\.obsproject\.Studio)$ # toggle obs screen recording // install obs flatpak
# bind = $mainMod+Shift, G, exec, pkill -x rofi || $scrPath/gamelauncher.sh # launch steam game launcher // install steam
# bind = $mainMod, Period, exec, emote # launch emoji selector // install emote
# bind = $mainMod+Alt, XF86MonBrightnessDown, exec, hyprshade on blue-light-filter # enable blue light filter // install hyprshade
# bind = $mainMod+Alt, XF86MonBrightnessUp, exec, hyprshade off # disable blue light filter // install hyprshade


# // █░░ ▄▀█ █░█ █▄░█ █▀▀ █░█
# // █▄▄ █▀█ █▄█ █░▀█ █▄▄ █▀█

# exec-once = swayidle -w timeout 600 'swaylock' timeout 900 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' # lock after 10 mins, sleep after 15 mins // install swayidle
# exec-once = swayidle -w timeout 1200 'swaylock; hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' timeout 1800 'systemctl suspend' # lock and sleep after 20 mins, suspend after 30 mins // install swayidle

# exec-once = libinput-gestures // install libinput-gestures

# exec-once = swayosd-server # enable swayosd service
# exec-once = `pkexec swayosd-libinput-backend` # swayosd service for keyboard input (requires to be run in a subshell)

# // █░█░█ █ █▄░█ █▀▄ █▀█ █░█░█   █▀█ █░█ █░░ █▀▀ █▀
# // ▀▄▀▄▀ █ █░▀█ █▄▀ █▄█ ▀▄▀▄▀   █▀▄ █▄█ █▄▄ ██▄ ▄█

# windowrulev2 = opacity 0.60 0.60,class:^(Steam)$
# windowrulev2 = opacity 0.60 0.60,class:^(steam)$
# windowrulev2 = opacity 0.60 0.60,class:^(steamwebhelper)$
# windowrulev2 = opacity 0.60 0.60,class:^(Spotify)$


# // █░█ █▀▄▀█
# // ▀▄▀ █░▀░█

# bind = Ctrl+Alt_L, V, submap, passthrough
# submap = passthrough
# bind = Ctrl+Alt_L, V, submap, reset
# submap = reset