aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/hypr/UserConfigs/ENVariables.conf69
-rw-r--r--config/hypr/UserConfigs/Laptops.conf26
-rw-r--r--config/hypr/UserConfigs/Startup_Apps.conf3
-rw-r--r--config/hypr/UserConfigs/UserKeybinds.conf69
-rw-r--r--config/hypr/UserConfigs/UserSettings.conf116
-rw-r--r--config/hypr/UserConfigs/WindowRules-old.conf206
-rw-r--r--config/hypr/UserConfigs/WindowRules-v3.conf216
-rw-r--r--config/hypr/UserConfigs/WindowRules.conf233
-rw-r--r--config/hypr/UserConfigs/WorkSpaceRules.conf (renamed from config/hypr/UserConfigs/WorkSpaceRules)0
-rw-r--r--config/hypr/configs/ENVariables.conf92
-rw-r--r--config/hypr/configs/Keybinds.conf66
-rw-r--r--config/hypr/configs/Laptops.conf33
-rw-r--r--config/hypr/configs/Startup_Apps.conf18
-rw-r--r--config/hypr/configs/SystemSettings.conf120
-rw-r--r--config/hypr/hyprland.conf25
-rwxr-xr-xconfig/hypr/scripts/UserConfigsSwitcher.sh56
-rwxr-xr-xcopy.sh180
17 files changed, 515 insertions, 1013 deletions
diff --git a/config/hypr/UserConfigs/ENVariables.conf b/config/hypr/UserConfigs/ENVariables.conf
index 4e736dc3..41d9b2d4 100644
--- a/config/hypr/UserConfigs/ENVariables.conf
+++ b/config/hypr/UserConfigs/ENVariables.conf
@@ -3,54 +3,20 @@
# Set your defaults editor through ENV in ~/.config/hypr/UserConfigs/01-UserDefaults.conf
-# environment-variables
-# Current Version of JakooLit Dotfiles:
-env = DOTS_VERSION,2.3.18
+### QT Variables ###
+# env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+# env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+# env = QT_QPA_PLATFORMTHEME,qt5ct
+# env = QT_QPA_PLATFORMTHEME,qt6ct
-# Toolkit Backend Variables
-env = GDK_BACKEND,wayland,x11,*
-env = QT_QPA_PLATFORM,wayland;xcb
-env = CLUTTER_BACKEND,wayland
-
-#Run SDL2 applications on Wayland.
-#Remove or set to x11 if games that provide older versions of SDL cause compatibility issues
-#env = SDL_VIDEODRIVER,wayland
-
-# xdg Specifications
-env = XDG_CURRENT_DESKTOP,Hyprland
-env = XDG_SESSION_DESKTOP,Hyprland
-env = XDG_SESSION_TYPE,wayland
-
-# QT Variables
-env = QT_AUTO_SCREEN_SCALE_FACTOR,1
-env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
-env = QT_QPA_PLATFORMTHEME,qt5ct
-env = QT_QPA_PLATFORMTHEME,qt6ct
-
-# hyprland-qt-support
-env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style
-
-# xwayland apps scale fix (useful if you are use monitor scaling).
+### xwayland apps scale fix (useful if you are use monitor scaling). ###
# Set same value if you use scaling in Monitors.conf
# 1 is 100% 1.5 is 150%
# see https://wiki.hyprland.org/Configuring/XWayland/
-env = GDK_SCALE,1
-env = QT_SCALE_FACTOR,1
+# env = GDK_SCALE,1
+# env = QT_SCALE_FACTOR,1
-# Bibata-Modern-Ice-Cursor
-# NOTE! You must have the hyprcursor version to activate this.
-# https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/
-#env = HYPRCURSOR_THEME,Bibata-Modern-Ice
-#env = HYPRCURSOR_SIZE,24
-
-# firefox
-env = MOZ_ENABLE_WAYLAND,1
-
-# electron >28 apps (may help) ##
-# https://www.electronjs.org/docs/latest/api/environment-variables
-env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11 otherwise
-
-# NVIDIA
+### NVIDIA ###
# This is from Hyprland Wiki. Below will be activated nvidia gpu detected
# See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables
@@ -59,34 +25,27 @@ env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11
#env = NVD_BACKEND,direct
#env = GSK_RENDERER,ngl
-# additional ENV's for nvidia. Caution, activate with care
+### additional ENV's for nvidia. Caution, activate with care ###
#env = GBM_BACKEND,nvidia-drm
-
#env = __GL_GSYNC_ALLOWED,1 #adaptive Vsync
#env = __NV_PRIME_RENDER_OFFLOAD,1
#env = __VK_LAYER_NV_optimus,NVIDIA_only
#env = WLR_DRM_NO_ATOMIC,1
-# FOR VM and POSSIBLY NVIDIA
+### FOR VM and POSSIBLY NVIDIA ###
# LIBGL_ALWAYS_SOFTWARE software mesa rendering
#env = LIBGL_ALWAYS_SOFTWARE,1 # Warning. May cause hyprland to crash
#env = WLR_RENDERER_ALLOW_SOFTWARE,1
-# nvidia firefox (for hardware acceleration on FF)?
+### nvidia firefox ###
# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration
#env = MOZ_DISABLE_RDD_SANDBOX,1
#env = EGL_PLATFORM,wayland
-#### Aquamarine Environment Variables #### ( Hyprland > 0.45 )
-# https://wiki.hyprland.org/Configuring/Environment-variables/#aquamarine-environment-variables----ref-httpsgithubcomhyprwmaquamarineblobmaindocsenvmd---
+### Aquamarine Environment Variables (Hyprland > 0.45) ###
+# https://wiki.hyprland.org/Configuring/Environment-variables/#aquamarine-environment-variables
# env = AQ_TRACE,1 # Enables more verbose logging.
# env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 # Set an explicit list of DRM devices (GPUs) to use. It’s a colon-separated list of paths, with the first being the primary. E.g. /dev/dri/card1:/dev/dri/card0
# env = AQ_MGPU_NO_EXPLICIT,1 # Disables explicit syncing on mgpu buffers
# env = AQ_NO_MODIFIERS,1 # Disables modifiers for DRM buffers
-#### Hyprland Environment Variables ####
-# https://wiki.hyprland.org/Configuring/Environment-variables/#hyprland-environment-variables
-# env = HYPRLAND_TRACE,1 # Enables more verbose logging.
-# env = HYPRLAND_NO_RT,1 # Disables realtime priority setting by Hyprland.
-# env = HYPRLAND_NO_SD_NOTIFY,1 # If systemd, disables the 'sd_notify' calls.
-# env = HYPRLAND_NO_SD_VARS,1 # Disables management of variables in systemd and dbus activation environments.
diff --git a/config/hypr/UserConfigs/Laptops.conf b/config/hypr/UserConfigs/Laptops.conf
index edb68463..af5cb583 100644
--- a/config/hypr/UserConfigs/Laptops.conf
+++ b/config/hypr/UserConfigs/Laptops.conf
@@ -1,5 +1,4 @@
# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
-
# See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings
# These configs are mostly for laptops. This is addemdum to Keybinds.conf
@@ -7,30 +6,6 @@ $mainMod = SUPER
$scriptsDir = $HOME/.config/hypr/scripts
$UserConfigs = $HOME/.config/hypr/UserConfigs
-# for disabling Touchpad. hyprctl devices to get device name.
-$Touchpad_Device=asue1209:00-04f3:319f-touchpad
-
-binde = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec # decrease keyboard brightness
-binde = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc # increase keyboard brightness
-bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button
-bind = , xf86Launch3, exec, asusctl led-mode -n # FN+F4 Switch keyboard RGB profile
-bind = , xf86Launch4, exec, asusctl profile -n # FN+F5 change of fan profiles (Quite, Balance, Performance)
-binde = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec # decrease monitor brightness
-binde = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc # increase monitor brightness
-bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh # disable touchpad
-
-# Screenshot keybindings using F6 (no PrinSrc button)
-bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # screenshot
-bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area)
-bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # # screenshot (5 secs delay)
-bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay)
-bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only)
-
-$TOUCHPAD_ENABLED = true
-device {
- name = $Touchpad_Device
- enabled = $TOUCHPAD_ENABLED
-}
# Below are useful when you are connecting your laptop in external display
# Suggest you edit below for your laptop display
# From WIKI This is to disable laptop monitor when lid is closed.
@@ -52,4 +27,3 @@ device {
# for laptop-lid action (to erase the last entry)
#exec-once = echo "monitor = eDP-1, preferred, auto, 1" > $HOME/.config/hypr/UserConfigs/LaptopDisplay.conf
-#
diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf
new file mode 100644
index 00000000..f00acf90
--- /dev/null
+++ b/config/hypr/UserConfigs/Startup_Apps.conf
@@ -0,0 +1,3 @@
+# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
+# Commands and Apps to be executed at launch
+
diff --git a/config/hypr/UserConfigs/UserKeybinds.conf b/config/hypr/UserConfigs/UserKeybinds.conf
index 17711559..02381716 100644
--- a/config/hypr/UserConfigs/UserKeybinds.conf
+++ b/config/hypr/UserConfigs/UserKeybinds.conf
@@ -11,75 +11,6 @@ $scriptsDir = $HOME/.config/hypr/scripts
$UserScripts = $HOME/.config/hypr/UserScripts
$UserConfigs = $HOME/.config/hypr/UserConfigs
-# settings for User defaults apps - set your default terminal and file manager on this file
-source= $UserConfigs/01-UserDefaults.conf
-
-# common shortcuts
-#bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu
-bindd = $mainMod, D, app launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window
-bindd = $mainMod, B, open default browser, exec, xdg-open "https://"
-bindd = $mainMod, A, desktop overview, exec, $scriptsDir/OverviewToggle.sh # toggles quickshell or ags overview (tries QS first, falls back to AGS)
-#bindd = $mainMod, A, ags overview, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed)
-#bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed)
-bindd = $mainMod, Return, Open terminal, exec, $term
-bindd = $mainMod, E, file manager, exec, $files
-
-
-# FEATURES / EXTRAS
-bindd = $mainMod, H, help / cheat sheet, exec, $scriptsDir/KeyHints.sh
-bindd = $mainMod ALT, R, refresh bar and menus, exec, $scriptsDir/Refresh.sh
-bindd = $mainMod ALT, E, emoji menu, exec, $scriptsDir/RofiEmoji.sh
-bindd = $mainMod, S, web search, exec, $scriptsDir/RofiSearch.sh
-bindd = $mainMod CTRL, S, window switcher, exec, rofi -show window
-bindd = $mainMod ALT, O, toggle blur, exec, $scriptsDir/ChangeBlur.sh
-bindd = $mainMod SHIFT, G, toggle game mode, exec, $scriptsDir/GameMode.sh
-bindd = $mainMod ALT, L, toggle master/dwindle layout, exec, $scriptsDir/ChangeLayout.sh
-bindd = $mainMod ALT, V, clipboard manager, exec, $scriptsDir/ClipManager.sh
-bindd = $mainMod CTRL, R, rofi theme selector, exec, $scriptsDir/RofiThemeSelector.sh
-bindd = $mainMod CTRL SHIFT, R, rofi theme selector (modified), exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh
-
-bindd = $mainMod SHIFT, F, fullscreen, fullscreen
-bindd = $mainMod CTRL, F, maximize window, fullscreen, 1
-bindd = $mainMod, SPACE, Float current window, togglefloating,
-bindd = $mainMod ALT, SPACE, Float all windows, exec, hyprctl dispatch workspaceopt allfloat
-bindd = $mainMod SHIFT, Return, DropDown terminal, exec, $scriptsDir/Dropterminal.sh $term
-
-# Desktop zooming or magnifier
-bindd = $mainMod ALT, mouse_down, zoom in, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')"
-bindd = $mainMod ALT, mouse_up, zoom out, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')"
-
-## NOTES for ja (Hyprland version 0.39 (Ubuntu 24.04))
-#bind = $mainMod ALT, mouse_down, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')"
-#bind = $mainMod ALT, mouse_up, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')"
-
-# Waybar / Bar related
-bindd = $mainMod CTRL ALT, B, toggle waybar on/off, exec, pkill -SIGUSR1 waybar
-bindd = $mainMod CTRL, B, waybar styles menu, exec, $scriptsDir/WaybarStyles.sh
-bindd = $mainMod ALT, B, waybar layout menu, exec, $scriptsDir/WaybarLayout.sh
-
-# Night light toggle (Hyprsunset)
-bindd = $mainMod, N, toggle night light, exec, $scriptsDir/Hyprsunset.sh toggle
-
-# FEATURES / EXTRAS (UserScripts)
-bindd = $mainMod SHIFT, M, online music, exec, $UserScripts/RofiBeats.sh
-bindd = $mainMod, W, select wallpaper, exec, $UserScripts/WallpaperSelect.sh
-bindd = $mainMod SHIFT, W, wallpaper effects, exec, $UserScripts/WallpaperEffects.sh
-bindd = CTRL ALT, W, random wallpaper, exec, $UserScripts/WallpaperRandom.sh
-bindd = $mainMod CTRL, O, toggle active window opacity, exec, hyprctl setprop active opaque toggle
-bindd = $mainMod SHIFT, K, search keybinds, exec, $scriptsDir/KeyBinds.sh
-bindd = $mainMod SHIFT, A, animations menu, exec, $scriptsDir/Animations.sh
-bindd = $mainMod SHIFT, O, change oh-my-zsh theme, exec, $UserScripts/ZshChangeTheme.sh
-bindlnd = ALT_L, SHIFT_L, switch keyboard layout globally, exec, $scriptsDir/SwitchKeyboardLayout.sh
-bindlnd = SHIFT_L, ALT_L, switch keyboard layout per-window, exec, $scriptsDir/Tak0-Per-Window-Switch.sh
-bindd = $mainMod ALT, C, calculator, exec, $UserScripts/RofiCalc.sh
-
-# Move current workspaces to monitors (left right up or down)
-bindd = $mainMod CTRL, F9, move workspace to left monitor, movecurrentworkspacetomonitor, l
-bindd = $mainMod CTRL, F10, move workspace to right monitor, movecurrentworkspacetomonitor, r
-bindd = $mainMod CTRL, F11, move workspace to up monitor, movecurrentworkspacetomonitor, u
-bindd = $mainMod CTRL, F12, move workspace to down monitor, movecurrentworkspacetomonitor, d
-
-
# For passthrough keyboard into a VM
# bind = $mainMod ALT, P, submap, passthru
#submap = passthru
diff --git a/config/hypr/UserConfigs/UserSettings.conf b/config/hypr/UserConfigs/UserSettings.conf
index 4802e79a..df68b396 100644
--- a/config/hypr/UserConfigs/UserSettings.conf
+++ b/config/hypr/UserConfigs/UserSettings.conf
@@ -4,119 +4,7 @@
# if the upgrade.sh is used.
# refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/
-
# NOTE: some settings are in ~/.config/hypr/UserConfigs/UserDecorAnimations.conf
+#
+# Look on ~/.config/hypr/configs/SystemSettings.conf to know how to modify this
-dwindle {
- pseudotile = true
- preserve_split = true
- #smart_split = true
- special_scale_factor = 0.8
-}
-
-master {
- new_status = master
- new_on_top = 1
- mfact = 0.5
-}
-
-general {
- resize_on_border = true
-
- layout = dwindle
-}
-
-input {
- kb_layout = us
- kb_variant =
- kb_model =
- kb_options =
- kb_rules =
- repeat_rate = 50
- repeat_delay = 300
-
- sensitivity = 0 #mouse sensitivity
- #accel_profile = # flat or adaptive or blank or EMPTY means libinput’s default mode
- numlock_by_default = true
- left_handed = false
- follow_mouse = 1
- float_switch_override_focus = false
-
- touchpad {
- disable_while_typing = true
- natural_scroll = true
- clickfinger_behavior = false
- middle_button_emulation = false
- tap-to-click = true
- drag_lock = false
- }
-
- # below for devices with touchdevice ie. touchscreen
- touchdevice {
- enabled = true
- }
-
- # below is for table see link above for proper variables
- tablet {
- transform = 0
- left_handed = 0
- }
-}
-
-
-gestures {
- gesture = 3, horizontal, workspace
- workspace_swipe_distance = 500
- workspace_swipe_invert = true
- workspace_swipe_min_speed_to_force = 30
- workspace_swipe_cancel_ratio = 0.5
- workspace_swipe_create_new = true
- workspace_swipe_forever = true
- #workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right
- gesture = 3, up, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 1.5}')"
- gesture = 3, down, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 1.5}')"
-}
-
-misc {
- disable_hyprland_logo = true
- disable_splash_rendering = true
- vfr = true
- vrr = 2
- mouse_move_enables_dpms = true
- enable_swallow = off
- swallow_regex = ^(kitty)$
- focus_on_activate = false
- initial_workspace_tracking = 0
- middle_click_paste = false
- enable_anr_dialog = true # Application not Responding (ANR)
- anr_missed_pings = 15 # ANR Threshold default 1 is too low
- allow_session_lock_restore = true # Prevent lockscreen crash when resume from suspend
-}
-
-#opengl {
-# nvidia_anti_flicker = true
-#}
-
-binds {
- workspace_back_and_forth = true
- allow_workspace_cycles = true
- pass_mouse_when_bound = false
-}
-
-#Could help when scaling and not pixelating
-xwayland {
- enabled = true
- force_zero_scaling = true
-}
-
-render {
- direct_scanout = 0
-}
-
-cursor {
- sync_gsettings_theme = true
- no_hardware_cursors = 2 # change to 1 if want to disable
- enable_hyprcursor = true
- warp_on_change_workspace = 2
- no_warps = true
-}
diff --git a/config/hypr/UserConfigs/WindowRules-old.conf b/config/hypr/UserConfigs/WindowRules-old.conf
deleted file mode 100644
index d6e1dead..00000000
--- a/config/hypr/UserConfigs/WindowRules-old.conf
+++ /dev/null
@@ -1,206 +0,0 @@
-# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
-# For window rules and layerrules
-# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-
-# NOTES: This is only for Hyprland older versions (< 0.48)
-
-# windowrule v2 - tags - add apps under appropriate tag to use the same settings
-# browser tags
-windowrulev2 = tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$
-windowrulev2 = tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
-windowrulev2 = tag +browser, class:^(chrome-.+-Default)$ # Chrome PWAs
-windowrulev2 = tag +browser, class:^([Cc]hromium)$
-windowrulev2 = tag +browser, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$
-windowrulev2 = tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$
-windowrulev2 = tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$
-windowrulev2 = tag +browser, class:^(zen-alpha|zen)$
-windowrulev2 = tag +notif, class:^(swaync-control-center|swaync-notification-window|swaync-client|class)$
-windowrulev2 = tag +KooL_Cheat, title:^(KooL Quick Cheat Sheet)$
-windowrulev2 = tag +KooL_Settings, title:^(KooL Hyprland Settings)$
-windowrulev2 = tag +KooL-Settings, class:^(nwg-displays|nwg-look)$
-
-# terminal tags
-windowrulev2 = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$
-
-# email tags
-windowrulev2 = tag +email, class:^([Tt]hunderbird|org.gnome.Evolution)$
-windowrulev2 = tag +email, class:^(eu.betterbird.Betterbird)$
-
-# project tags
-windowrulev2 = tag +projects, class:^(codium|codium-url-handler|VSCodium)$
-windowrulev2 = tag +projects, class:^(VSCode|code-url-handler)$
-windowrulev2 = tag +projects, class:^(jetbrains-.+)$ # JetBrains IDEs
-
-# screenshare tags
-windowrulev2 = tag +screenshare, class:^(com.obsproject.Studio)$
-
-# IM tags
-windowrulev2 = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
-windowrulev2 = tag +im, class:^([Ff]erdium)$
-windowrulev2 = tag +im, class:^([Ww]hatsapp-for-linux)$
-windowrulev2 = tag +im, class:^(ZapZap|com.rtosta.zapzap)$
-windowrulev2 = tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
-windowrulev2 = tag +im, class:^(teams-for-linux)$
-
-# game tags
-windowrulev2 = tag +games, class:^(gamescope)$
-windowrulev2 = tag +games, class:^(steam_app_\d+)$
-
-# gamestore tags
-windowrulev2 = tag +gamestore, class:^([Ss]team)$
-windowrulev2 = tag +gamestore, title:^([Ll]utris)$
-windowrulev2 = tag +gamestore, class:^(com.heroicgameslauncher.hgl)$
-
-# file-manager tags
-windowrulev2 = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$
-windowrulev2 = tag +file-manager, class:^(app.drey.Warp)$
-
-# wallpaper tags
-windowrulev2 = tag +wallpaper title:^([Ww]aytrogen)$
-windowrulev2 = tag +wallpaper, class:^([Ww]aytrogen)$
-
-# multimedia tags
-windowrulev2 = tag +multimedia, class:^([Aa]udacious)$
-
-
-# settings tags
-windowrulev2 = tag +settings, title:^(ROG Control)$
-windowrulev2 = tag +settings, class:^(wihotspot(-gui)?)$ # wifi hotspot
-windowrulev2 = tag +settings, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
-windowrulev2 = tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$
-windowrulev2 = tag +settings, title:(Kvantum Manager)
-windowrulev2 = tag +settings, class:^(file-roller|org.gnome.FileRoller)$ # archive manager
-windowrulev2 = tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$
-windowrulev2 = tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
-windowrulev2 = tag +settings, class:^(qt5ct|qt6ct|[Yy]ad)$
-windowrulev2 = tag +settings, class:(xdg-desktop-portal-gtk)
-windowrulev2 = tag +settings, class:^(org.kde.polkit-kde-authentication-agent-1)$
-windowrulev2 = tag +settings, class:^([Rr]ofi)$
-
-# viewer tags
-windowrulev2 = tag +viewer, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
-windowrulev2 = tag +viewer, class:^(evince)$ # document viewer
-windowrulev2 = tag +viewer, class:^(eog|org.gnome.Loupe)$ # image viewer
-
-# POSITION
-# windowrulev2 = center,floating:1 # warning, it cause even the menu to float and center.
-windowrulev2 = center, tag:KooL_Cheat*
-windowrulev2 = center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
-windowrulev2 = center, title:^(ROG Control)$
-windowrulev2 = center, tag:KooL-Settings*
-windowrulev2 = center, title:^(Keybindings)$
-windowrulev2 = center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
-windowrulev2 = center, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
-windowrulev2 = center, class:^([Ff]erdium)$
-windowrulev2 = move 72% 7%,title:^(Picture-in-Picture)$
-#windowrulev2 = move 72% 7%,title:^(Firefox)$
-
-# windowrule v2 to avoid idle for fullscreen apps
-#windowrulev2 = idleinhibit fullscreen, class:^(*)$
-#windowrulev2 = idleinhibit fullscreen, title:^(*)$
-windowrulev2 = idleinhibit fullscreen, fullscreen:1
-
-# windowrule v2 move to workspace
-windowrulev2 = workspace 1, tag:email*
-windowrulev2 = workspace 2, tag:browser*
-#windowrulev2 = workspace 3, class:^([Tt]hunar)$
-#windowrulev2 = workspace 3, tag:projects*
-windowrulev2 = workspace 5, tag:gamestore*
-windowrulev2 = workspace 7, tag:im*
-windowrulev2 = workspace 8, tag:games*
-
-# windowrule v2 move to workspace (silent)
-windowrulev2 = workspace 4 silent, tag:screenshare*
-windowrulev2 = workspace 6 silent, class:^(virt-manager)$
-windowrulev2 = workspace 6 silent, class:^(.virt-manager-wrapped)$
-windowrulev2 = workspace 9 silent, tag:multimedia*
-
-# FLOAT
-windowrulev2 = float, tag:KooL_Cheat*
-windowrulev2 = float, tag:wallpaper*
-windowrulev2 = float, tag:settings*
-windowrulev2 = float, tag:viewer*
-windowrulev2 = float, tag:KooL-Settings*
-windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$
-windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator)
-windowrulev2 = float, class:^(mpv|com.github.rafostar.Clapper)$
-windowrulev2 = float, class:^([Qq]alculate-gtk)$
-#windowrulev2 = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
-windowrulev2 = float, class:^([Ff]erdium)$
-windowrulev2 = float, title:^(Picture-in-Picture)$
-#windowrulev2 = float, title:^(Firefox)$
-
-
-#windowrule v2 - float popups and dialogue
-windowrulev2 = float, title:^(Authentication Required)$
-windowrulev2 = center, title:^(Authentication Required)$
-windowrulev2 = float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)
-windowrulev2 = float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher)
-windowrulev2 = float, class:^([Ss]team)$, title:negative:^([Ss]team)$
-windowrulev2 = float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
-#windowrulev2 = float, class:(electron), title:(Add Folder to Workspace)
-windowrulev2 = float, title:^(Add Folder to Workspace)$
-windowrulev2 = size 70% 60%, title:^(Add Folder to Workspace)$
-windowrulev2 = center, title:^(Add Folder to Workspace)$
-windowrulev2 = float, initialTitle:(Open Files)
-windowrulev2 = size 70% 60%, initialTitle:(Open Files)
-windowrulev2 = float, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
-windowrulev2 = center, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
-windowrulev2 = size 16% 12%, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
-
-# OPACITY
-windowrulev2 = opacity 0.9 0.7, tag:browser*
-windowrulev2 = opacity 0.9 0.8, tag:projects*
-windowrulev2 = opacity 0.94 0.86, tag:im*
-windowrulev2 = opacity 0.94 0.86, tag:multimedia*
-windowrulev2 = opacity 0.9 0.8, tag:file-manager*
-windowrulev2 = opacity 0.8 0.7, tag:terminal*
-windowrulev2 = opacity 0.8 0.7, tag:settings*
-windowrulev2 = opacity 0.82 0.75, tag:viewer*
-windowrulev2 = opacity 0.9 0.7, tag:wallpaper*
-windowrulev2 = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$
-windowrulev2 = opacity 0.9 0.8, class:^(deluge)$
-windowrulev2 = opacity 0.9 0.8, class:^(im.riot.Riot)$ # Element matrix client
-windowrulev2 = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui
-windowrulev2 = opacity 0.95 0.75, title:^(Picture-in-Picture)$
-
-
-# SIZE
-windowrulev2 = size 65% 90%, tag:KooL_Cheat*
-windowrulev2 = size 70% 70%, tag:wallpaper*
-windowrulev2 = size 70% 70%, tag:settings*
-windowrulev2 = size 60% 70%, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
-windowrulev2 = size 60% 70%, class:^([Ff]erdium)$
-
-#windowrulev2 = size 25% 25%, title:^(Picture-in-Picture)$
-#windowrulev2 = size 25% 25%, title:^(Firefox)$
-
-# PINNING
-windowrulev2 = pin, title:^(Picture-in-Picture)$
-#windowrulev2 = pin,title:^(Firefox)$
-
-# windowrule v2 - extras
-windowrulev2 = keepaspectratio, title:^(Picture-in-Picture)$
-
-# BLUR & FULLSCREEN
-windowrulev2 = noblur, tag:games*
-windowrulev2 = fullscreen, tag:games*
-
-#windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
-#windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1
-#windowrulev2 = opacity 0.8 0.8, pinned:1
-
-# LAYER RULES
-layerrule = blur, rofi
-layerrule = ignorezero, rofi
-layerrule = blur, notifications
-layerrule = ignorezero, notifications
-#layerrule = ignorealpha 0.5, tag:notif*
-
-#layerrule = ignorezero, class:^([Rr]ofi)$
-#layerrule = blur, class:^([Rr]ofi)$
-#layerrule = unset,class:^([Rr]ofi)$
-#layerrule = ignorezero, <rofi>
-
-#layerrule = ignorezero, overview
-#layerrule = blur, overview \ No newline at end of file
diff --git a/config/hypr/UserConfigs/WindowRules-v3.conf b/config/hypr/UserConfigs/WindowRules-v3.conf
deleted file mode 100644
index d5b7d351..00000000
--- a/config/hypr/UserConfigs/WindowRules-v3.conf
+++ /dev/null
@@ -1,216 +0,0 @@
-# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
-# For window rules and layerrules
-# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-
-# NOTES: This is only for Hyprland > 0.52.1
-# note: This should NOT be implemented on Debian and Ubuntu
-# windowrule - tags - add apps under appropriate tag to use the same settings
-
-# browser tags
-windowrule = match:class ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$, tag +browser
-windowrule = match:class ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$, tag +browser
-windowrule = match:class ^(chrome-.+-Default)$ # Chrome PWAs, tag +browser
-windowrule = match:class ^([Cc]hromium)$, tag +browser
-windowrule = match:class ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$, tag +browser
-windowrule = match:class ^(Brave-browser(-beta|-dev|-unstable)?)$, tag +browser
-windowrule = match:class ^([Tt]horium-browser|[Cc]achy-browser)$, tag +browser
-windowrule = match:class ^(zen-alpha|zen)$, tag +browser
-
-windowrule = match:class ^(swaync-control-center|swaync-notification-window|swaync-client|class)$, tag +notif
-
-# KooL settings tag
-windowrule = match:title ^(KooL Quick Cheat Sheet)$, tag +KooL_Cheat
-windowrule = match:title ^(KooL Hyprland Settings)$, tag +KooL_Settings
-windowrule = match:class ^(nwg-displays|nwg-look)$, tag +KooL-Settings
-
-windowrule = match:class ^(Alacritty|kitty|kitty-dropterm)$, tag +terminal
-
-windowrule = match:class ^([Tt]hunderbird|org.gnome.Evolution)$, tag +email
-windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email
-
-windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects
-windowrule = match:class ^(VSCode|code-url-handler)$, tag +projects
-windowrule = match:class ^(jetbrains-.+)$ # JetBrains IDEs, tag +projects
-
-windowrule = match:class ^(com.obsproject.Studio)$, tag +screenshare
-
-windowrule = match:class ^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$, tag +im
-windowrule = match:class ^([Ff]erdium)$, tag +im
-windowrule = match:class ^([Ww]hatsapp-for-linux)$, tag +im
-windowrule = match:class ^(ZapZap|com.rtosta.zapzap)$, tag +im
-windowrule = match:class ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$, tag +im
-windowrule = match:class ^(teams-for-linux)$, tag +im
-windowrule = match:class ^(im.riot.Riot|Element)$ # Element Matrix client, tag +im
-
-windowrule = match:class ^(gamescope)$, tag +games
-windowrule = match:class ^(steam_app_\d+)$, tag +games
-
-windowrule = match:class ^([Ss]team)$, tag +gamestore
-windowrule = match:title ^([Ll]utris)$, tag +gamestore
-windowrule = match:class ^(com.heroicgameslauncher.hgl)$, tag +gamestore
-
-windowrule = match:class ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$, tag +file-manager
-windowrule = match:class ^(app.drey.Warp)$, tag +file-manager
-
-windowrule = match:class ^([Ww]aytrogen)$, tag +wallpaper
-
-windowrule = match:class ^([Aa]udacious)$, tag +multimedia
-
-windowrule = match:class ^([Mm]pv|vlc)$, tag +multimedia_video
-
-windowrule = match:title ^(ROG Control)$, tag +settings
-windowrule = match:class ^(wihotspot(-gui)?)$ # wifi hotspot, tag +settings
-windowrule = match:class ^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer, tag +settings
-windowrule = match:class ^(gnome-disks|wihotspot(-gui)?)$, tag +settings
-windowrule = match:title (Kvantum Manager), tag +settings
-windowrule = match:class ^(file-roller|org.gnome.FileRoller)$ # archive manager, tag +settings
-windowrule = match:class ^(nm-applet|nm-connection-editor|blueman-manager)$, tag +settings
-windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, tag +settings
-windowrule = match:class ^(qt5ct|qt6ct|[Yy]ad)$, tag +settings
-windowrule = match:class (xdg-desktop-portal-gtk), tag +settings
-windowrule = match:class ^(org.kde.polkit-kde-authentication-agent-1)$, tag +settings
-windowrule = match:class ^([Rr]ofi)$, tag +settings
-
-windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor, tag +viewer
-windowrule = match:class ^(evince)$ # document viewer, tag +viewer
-windowrule = match:class ^(eog|org.gnome.Loupe)$ # image viewer, tag +viewer
-
-windowrule = match:tag multimedia_video*, noblur
-windowrule = match:tag multimedia_video*, opacity 1.0
-
-# POSITION
-# windowrule = center,floating:1 # warning, it cause even the menu to float and center.
-windowrule = match:tag KooL_Cheat*, center
-windowrule = match:class ([Tt]hunar) title negative:(.*[Tt]hunar.*), center
-windowrule = match:title ^(ROG Control)$, center
-windowrule = match:tag KooL-Settings*, center
-windowrule = match:title ^(Keybindings)$, center
-windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center
-windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center
-windowrule = match:class ^([Ff]erdium)$, center
-windowrule = match:title ^(Picture-in-Picture)$, move 72% 7%
-#windowrule = move 72% 7%,title:^(Firefox)$
-
-# windowrule to avoid idle for fullscreen apps
-#windowrule = idleinhibit fullscreen, class:^(*)$
-#windowrule = idleinhibit fullscreen, title:^(*)$
-windowrule = match:fullscreen 1, idleinhibit fullscreen
-
-# windowrule move to workspace
-#windowrule = workspace 1, tag:email*
-#windowrule = workspace 2, tag:browser*
-#windowrule = workspace 3, class:^([Tt]hunar)$
-#windowrule = workspace 3, tag:projects*
-#windowrule = workspace 5, tag:gamestore*
-#windowrule = workspace 7, tag:im*
-#windowrule = workspace 8, tag:games*
-
-# windowrule move to workspace (silent)
-#windowrule = workspace 4 silent, tag:screenshare*
-#windowrule = workspace 6 silent, class:^(virt-manager)$
-#windowrule = workspace 6 silent, class:^(.virt-manager-wrapped)$
-#windowrule = workspace 9 silent, tag:multimedia*
-
-# FLOAT
-windowrule = match:tag KooL_Cheat*, float
-windowrule = match:tag wallpaper*, float
-windowrule = match:tag settings*, float
-windowrule = match:tag viewer*, float
-windowrule = match:tag KooL-Settings*, float
-windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher)$, float
-windowrule = match:class (org.gnome.Calculator) title (Calculator), float
-windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float
-windowrule = match:class ^([Qq]alculate-gtk)$, float
-#windowrule = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
-windowrule = match:class ^([Ff]erdium)$, float
-windowrule = match:title ^(Picture-in-Picture)$, float
-#windowrule = float, title:^(Firefox)$
-
-# windowrule - ######### float popups and dialogue #######
-windowrule = match:title ^(Authentication Required)$, float
-windowrule = match:title ^(Authentication Required)$, center
-windowrule = match:class (codium|codium-url-handler|VSCodium) title negative:(.*codium.*|.*VSCodium.*), float
-windowrule = match:class ^(com.heroicgameslauncher.hgl)$ title negative:(Heroic Games Launcher), float
-windowrule = match:class ^([Ss]team)$ title negative:^([Ss]team)$, float
-windowrule = match:class ([Tt]hunar) title negative:(.*[Tt]hunar.*), float
-
-windowrule = match:title ^(Add Folder to Workspace)$, float
-windowrule = match:title ^(Add Folder to Workspace)$, size 70% 60%
-windowrule = match:title ^(Add Folder to Workspace)$, center
-
-windowrule = match:title ^(Save As)$, float
-windowrule = match:title ^(Save As)$, size 70% 60%
-windowrule = match:title ^(Save As)$, center
-
-windowrule = match:initialTitle (Open Files), float
-windowrule = match:initialTitle (Open Files), size 70% 60%
-
-windowrule = match:title ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background, float
-windowrule = match:title ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background, center
-windowrule = match:title ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background, size 16% 12%
-# END of float popups and dialogue #######
-
-# OPACITY
-windowrule = match:tag browser*, opacity 0.99 0.8
-windowrule = match:tag projects*, opacity 0.9 0.8
-windowrule = match:tag im*, opacity 0.94 0.86
-windowrule = match:tag multimedia*, opacity 0.94 0.86
-windowrule = match:tag file-manager*, opacity 0.9 0.8
-windowrule = match:tag terminal*, opacity 0.9 0.7
-windowrule = match:tag settings*, opacity 0.8 0.7
-windowrule = match:tag viewer*, opacity 0.82 0.75
-windowrule = match:tag wallpaper*, opacity 0.9 0.7
-windowrule = match:class ^(gedit|org.gnome.TextEditor|mousepad)$, opacity 0.8 0.7
-windowrule = match:class ^(deluge)$, opacity 0.9 0.8
-windowrule = match:class ^(seahorse)$ # gnome-keyring gui, opacity 0.9 0.8
-windowrule = match:title ^(Picture-in-Picture)$, opacity 0.95 0.75
-windowrule = match:class ^(code)$, opacity 0.9
-
-# SIZE
-windowrule = match:tag KooL_Cheat*, size 65% 90%
-windowrule = match:tag wallpaper*, size 70% 70%
-windowrule = match:tag settings*, size 70% 70%
-windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, size 60% 70%
-windowrule = match:class ^([Ff]erdium)$, size 60% 70%
-
-#windowrule = size 25% 25%, title:^(Picture-in-Picture)$
-#windowrule = size 25% 25%, title:^(Firefox)$
-
-# PINNING
-windowrule = match:title ^(Picture-in-Picture)$, pin
-#windowrule = pin,title:^(Firefox)$
-
-# windowrule - extras
-windowrule = match:title ^(Picture-in-Picture)$, keepaspectratio
-
-# BLUR & FULLSCREEN
-windowrule = match:tag games*, noblur
-windowrule = match:tag games*, fullscreen
-
-#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products
-windowrule = match:class ^(jetbrains-*), noinitialfocus
-windowrule = match:title ^(wind.*)$, noinitialfocus
-
-#This will gonna make the VS Code bluer like other apps
-windowrule = match:class ^(code)$, opacity 0.8
-
-#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
-#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1
-#windowrule = opacity 0.8 0.8, pinned:1
-
-# LAYER RULES
-layerrule = blur, rofi
-layerrule = ignorezero, rofi
-layerrule = blur, notifications
-layerrule = ignorezero, notifications
-layerrule = blur, quickshell:overview
-layerrule = ignorezero, quickshell:overview
-layerrule = ignorealpha 0.5, quickshell:overview
-
-#layerrule = ignorealpha 0.5, tag:notif*
-#layerrule = ignorezero, class:^([Rr]ofi)$
-#layerrule = blur, class:^([Rr]ofi)$
-#layerrule = unset,class:^([Rr]ofi)$
-#layerrule = ignorezero, <rofi>
-#layerrule = ignorezero, overview
-#layerrule = blur, overview
diff --git a/config/hypr/UserConfigs/WindowRules.conf b/config/hypr/UserConfigs/WindowRules.conf
index 2c24dafc..ee9eb317 100644
--- a/config/hypr/UserConfigs/WindowRules.conf
+++ b/config/hypr/UserConfigs/WindowRules.conf
@@ -2,234 +2,5 @@
# For window rules and layerrules
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-# NOTES: This is only for Hyprland > 0.48
-
-# note for ja: This should NOT be implemented on Debian and Ubuntu
-
-# windowrule - tags - add apps under appropriate tag to use the same settings
-# browser tags
-windowrule = tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$
-windowrule = tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$
-windowrule = tag +browser, class:^(chrome-.+-Default)$ # Chrome PWAs
-windowrule = tag +browser, class:^([Cc]hromium)$
-windowrule = tag +browser, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$
-windowrule = tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$
-windowrule = tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$
-windowrule = tag +browser, class:^(zen-alpha|zen)$
-
-# notif tags
-windowrule = tag +notif, class:^(swaync-control-center|swaync-notification-window|swaync-client|class)$
-
-# KooL settings tag
-windowrule = tag +KooL_Cheat, title:^(KooL Quick Cheat Sheet)$
-windowrule = tag +KooL_Settings, title:^(KooL Hyprland Settings)$
-windowrule = tag +KooL-Settings, class:^(nwg-displays|nwg-look)$
-
-# terminal tags
-windowrule = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$
-
-# email tags
-windowrule = tag +email, class:^([Tt]hunderbird|org.gnome.Evolution)$
-windowrule = tag +email, class:^(eu.betterbird.Betterbird)$
-
-# project tags
-windowrule = tag +projects, class:^(codium|codium-url-handler|VSCodium)$
-windowrule = tag +projects, class:^(VSCode|code-url-handler)$
-windowrule = tag +projects, class:^(jetbrains-.+)$ # JetBrains IDEs
-
-# screenshare tags
-windowrule = tag +screenshare, class:^(com.obsproject.Studio)$
-
-# IM tags
-windowrule = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$
-windowrule = tag +im, class:^([Ff]erdium)$
-windowrule = tag +im, class:^([Ww]hatsapp-for-linux)$
-windowrule = tag +im, class:^(ZapZap|com.rtosta.zapzap)$
-windowrule = tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$
-windowrule = tag +im, class:^(teams-for-linux)$
-windowrule = tag +im, class:^(im.riot.Riot|Element)$ # Element Matrix client
-
-# game tags
-windowrule = tag +games, class:^(gamescope)$
-windowrule = tag +games, class:^(steam_app_\d+)$
-
-# gamestore tags
-windowrule = tag +gamestore, class:^([Ss]team)$
-windowrule = tag +gamestore, title:^([Ll]utris)$
-windowrule = tag +gamestore, class:^(com.heroicgameslauncher.hgl)$
-
-# file-manager tags
-windowrule = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$
-windowrule = tag +file-manager, class:^(app.drey.Warp)$
-
-# wallpaper tags
-windowrule = tag +wallpaper, class:^([Ww]aytrogen)$
-
-# multimedia tags
-windowrule = tag +multimedia, class:^([Aa]udacious)$
-
-# multimedia-video tags
-windowrule = tag +multimedia_video, class:^([Mm]pv|vlc)$
-
-# settings tags
-windowrule = tag +settings, title:^(ROG Control)$
-windowrule = tag +settings, class:^(wihotspot(-gui)?)$ # wifi hotspot
-windowrule = tag +settings, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer
-windowrule = tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$
-windowrule = tag +settings, title:(Kvantum Manager)
-windowrule = tag +settings, class:^(file-roller|org.gnome.FileRoller)$ # archive manager
-windowrule = tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$
-windowrule = tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
-windowrule = tag +settings, class:^(qt5ct|qt6ct|[Yy]ad)$
-windowrule = tag +settings, class:(xdg-desktop-portal-gtk)
-windowrule = tag +settings, class:^(org.kde.polkit-kde-authentication-agent-1)$
-windowrule = tag +settings, class:^([Rr]ofi)$
-
-# viewer tags
-windowrule = tag +viewer, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor
-windowrule = tag +viewer, class:^(evince)$ # document viewer
-windowrule = tag +viewer, class:^(eog|org.gnome.Loupe)$ # image viewer
-
-# Some special override rules
-windowrule = noblur, tag:multimedia_video*
-windowrule = opacity 1.0, tag:multimedia_video*
-
-# POSITION
-# windowrule = center,floating:1 # warning, it cause even the menu to float and center.
-windowrule = center, tag:KooL_Cheat*
-windowrule = center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
-windowrule = center, title:^(ROG Control)$
-windowrule = center, tag:KooL-Settings*
-windowrule = center, title:^(Keybindings)$
-windowrule = center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$
-windowrule = center, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
-windowrule = center, class:^([Ff]erdium)$
-windowrule = move 72% 7%,title:^(Picture-in-Picture)$
-#windowrule = move 72% 7%,title:^(Firefox)$
-
-# windowrule to avoid idle for fullscreen apps
-#windowrule = idleinhibit fullscreen, class:^(*)$
-#windowrule = idleinhibit fullscreen, title:^(*)$
-windowrule = idleinhibit fullscreen, fullscreen:1
-
-# windowrule move to workspace
-#windowrule = workspace 1, tag:email*
-#windowrule = workspace 2, tag:browser*
-#windowrule = workspace 3, class:^([Tt]hunar)$
-#windowrule = workspace 3, tag:projects*
-#windowrule = workspace 5, tag:gamestore*
-#windowrule = workspace 7, tag:im*
-#windowrule = workspace 8, tag:games*
-
-# windowrule move to workspace (silent)
-#windowrule = workspace 4 silent, tag:screenshare*
-#windowrule = workspace 6 silent, class:^(virt-manager)$
-#windowrule = workspace 6 silent, class:^(.virt-manager-wrapped)$
-#windowrule = workspace 9 silent, tag:multimedia*
-#
-# FLOAT
-windowrule = float, tag:KooL_Cheat*
-windowrule = float, tag:wallpaper*
-windowrule = float, tag:settings*
-windowrule = float, tag:viewer*
-windowrule = float, tag:KooL-Settings*
-windowrule = float, class:([Zz]oom|onedriver|onedriver-launcher)$
-windowrule = float, class:(org.gnome.Calculator), title:(Calculator)
-windowrule = float, class:^(mpv|com.github.rafostar.Clapper)$
-windowrule = float, class:^([Qq]alculate-gtk)$
-#windowrule = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
-windowrule = float, class:^([Ff]erdium)$
-windowrule = float, title:^(Picture-in-Picture)$
-#windowrule = float, title:^(Firefox)$
-
-# windowrule - ######### float popups and dialogue #######
-windowrule = float, title:^(Authentication Required)$
-windowrule = center, title:^(Authentication Required)$
-windowrule = float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*)
-windowrule = float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher)
-windowrule = float, class:^([Ss]team)$, title:negative:^([Ss]team)$
-windowrule = float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*)
-
-windowrule = float, title:^(Add Folder to Workspace)$
-windowrule = size 70% 60%, title:^(Add Folder to Workspace)$
-windowrule = center, title:^(Add Folder to Workspace)$
-
-windowrule = float, title:^(Save As)$
-windowrule = size 70% 60%, title:^(Save As)$
-windowrule = center, title:^(Save As)$
-
-windowrule = float, initialTitle:(Open Files)
-windowrule = size 70% 60%, initialTitle:(Open Files)
-
-windowrule = float, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
-windowrule = center, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
-windowrule = size 16% 12%, title:^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background
-# END of float popups and dialogue #######
-
-# OPACITY
-windowrule = opacity 0.99 0.8, tag:browser*
-windowrule = opacity 0.9 0.8, tag:projects*
-windowrule = opacity 0.94 0.86, tag:im*
-windowrule = opacity 0.94 0.86, tag:multimedia*
-windowrule = opacity 0.9 0.8, tag:file-manager*
-windowrule = opacity 0.9 0.7, tag:terminal*
-windowrule = opacity 0.8 0.7, tag:settings*
-windowrule = opacity 0.82 0.75, tag:viewer*
-windowrule = opacity 0.9 0.7, tag:wallpaper*
-windowrule = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$
-windowrule = opacity 0.9 0.8, class:^(deluge)$
-windowrule = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui
-windowrule = opacity 0.95 0.75, title:^(Picture-in-Picture)$
-windowrule = opacity 0.9,class:^(code)$
-
-# SIZE
-windowrule = size 65% 90%, tag:KooL_Cheat*
-windowrule = size 70% 70%, tag:wallpaper*
-windowrule = size 70% 70%, tag:settings*
-windowrule = size 60% 70%, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$
-windowrule = size 60% 70%, class:^([Ff]erdium)$
-
-#windowrule = size 25% 25%, title:^(Picture-in-Picture)$
-#windowrule = size 25% 25%, title:^(Firefox)$
-
-# PINNING
-windowrule = pin, title:^(Picture-in-Picture)$
-#windowrule = pin,title:^(Firefox)$
-
-# windowrule - extras
-windowrule = keepaspectratio, title:^(Picture-in-Picture)$
-
-# BLUR & FULLSCREEN
-windowrule = noblur, tag:games*
-windowrule = fullscreen, tag:games*
-
-
-#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products
-windowrule = noinitialfocus, class:^(jetbrains-*)
-windowrule = noinitialfocus, title:^(wind.*)$
-
-#This will gonna make the VS Code bluer like other apps
-windowrule = opacity 0.8,class:^(code)$
-
-#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1
-#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1
-#windowrule = opacity 0.8 0.8, pinned:1
-
-# LAYER RULES
-layerrule = blur, rofi
-layerrule = ignorezero, rofi
-layerrule = blur, notifications
-layerrule = ignorezero, notifications
-layerrule = blur, quickshell:overview
-layerrule = ignorezero, quickshell:overview
-layerrule = ignorealpha 0.5, quickshell:overview
-
-#layerrule = ignorealpha 0.5, tag:notif*
-
-#layerrule = ignorezero, class:^([Rr]ofi)$
-#layerrule = blur, class:^([Rr]ofi)$
-#layerrule = unset,class:^([Rr]ofi)$
-#layerrule = ignorezero, <rofi>
-
-#layerrule = ignorezero, overview
-#layerrule = blur, overview
+# This file is used to add or overwrite window rules
+# This file will not be modified during dotfiles updates
diff --git a/config/hypr/UserConfigs/WorkSpaceRules b/config/hypr/UserConfigs/WorkSpaceRules.conf
index aa86b35c..aa86b35c 100644
--- a/config/hypr/UserConfigs/WorkSpaceRules
+++ b/config/hypr/UserConfigs/WorkSpaceRules.conf
diff --git a/config/hypr/configs/ENVariables.conf b/config/hypr/configs/ENVariables.conf
new file mode 100644
index 00000000..d38c2d36
--- /dev/null
+++ b/config/hypr/configs/ENVariables.conf
@@ -0,0 +1,92 @@
+# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
+# Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/
+
+# Set your defaults editor through ENV in ~/.config/hypr/UserConfigs/01-UserDefaults.conf
+
+# environment-variables
+# Current Version of JakooLit Dotfiles:
+env = DOTS_VERSION,2.3.18
+
+### Toolkit Backend Variables ###
+env = GDK_BACKEND,wayland,x11,*
+env = QT_QPA_PLATFORM,wayland;xcb
+env = CLUTTER_BACKEND,wayland
+
+#Run SDL2 applications on Wayland.
+#Remove or set to x11 if games that provide older versions of SDL cause compatibility issues
+#env = SDL_VIDEODRIVER,wayland
+
+### XDG Specifications ###
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+
+### QT Variables ###
+env = QT_AUTO_SCREEN_SCALE_FACTOR,1
+env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
+env = QT_QPA_PLATFORMTHEME,qt5ct
+env = QT_QPA_PLATFORMTHEME,qt6ct
+
+### hyprland-qt-support ###
+env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style
+
+### xwayland apps scale fix (useful if you are use monitor scaling) ###
+# Set same value if you use scaling in Monitors.conf
+# 1 is 100% 1.5 is 150%
+# see https://wiki.hyprland.org/Configuring/XWayland/
+env = GDK_SCALE,1
+env = QT_SCALE_FACTOR,1
+
+# Bibata-Modern-Ice-Cursor
+# NOTE! You must have the hyprcursor version to activate this.
+# https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/
+#env = HYPRCURSOR_THEME,Bibata-Modern-Ice
+#env = HYPRCURSOR_SIZE,24
+
+### firefox ###
+env = MOZ_ENABLE_WAYLAND,1
+
+### electron >28 apps (may help) ###
+# https://www.electronjs.org/docs/latest/api/environment-variables
+env = ELECTRON_OZONE_PLATFORM_HINT,auto # auto selects Wayland if possible, X11 otherwise
+
+### NVIDIA ###
+# This is from Hyprland Wiki. Below will be activated nvidia gpu detected
+# See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables
+
+#env = LIBVA_DRIVER_NAME,nvidia
+#env = __GLX_VENDOR_LIBRARY_NAME,nvidia
+#env = NVD_BACKEND,direct
+#env = GSK_RENDERER,ngl
+
+### additional ENV's for nvidia. Caution, activate with care ###
+#env = GBM_BACKEND,nvidia-drm
+
+#env = __GL_GSYNC_ALLOWED,1 #adaptive Vsync
+#env = __NV_PRIME_RENDER_OFFLOAD,1
+#env = __VK_LAYER_NV_optimus,NVIDIA_only
+#env = WLR_DRM_NO_ATOMIC,1
+
+### FOR VM and POSSIBLY NVIDIA ###
+# LIBGL_ALWAYS_SOFTWARE software mesa rendering
+#env = LIBGL_ALWAYS_SOFTWARE,1 # Warning. May cause hyprland to crash
+#env = WLR_RENDERER_ALLOW_SOFTWARE,1
+
+### nvidia firefox ###
+# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration
+#env = MOZ_DISABLE_RDD_SANDBOX,1
+#env = EGL_PLATFORM,wayland
+
+### Aquamarine Environment Variables (Hyprland > 0.45) ###
+# https://wiki.hyprland.org/Configuring/Environment-variables/#aquamarine-environment-variables----ref-httpsgithubcomhyprwmaquamarineblobmaindocsenvmd---
+# env = AQ_TRACE,1 # Enables more verbose logging.
+# env = AQ_DRM_DEVICES,/dev/dri/card1:/dev/dri/card0 # Set an explicit list of DRM devices (GPUs) to use. It’s a colon-separated list of paths, with the first being the primary. E.g. /dev/dri/card1:/dev/dri/card0
+# env = AQ_MGPU_NO_EXPLICIT,1 # Disables explicit syncing on mgpu buffers
+# env = AQ_NO_MODIFIERS,1 # Disables modifiers for DRM buffers
+
+#### Hyprland Environment Variables ####
+# https://wiki.hyprland.org/Configuring/Environment-variables/#hyprland-environment-variables
+# env = HYPRLAND_TRACE,1 # Enables more verbose logging.
+# env = HYPRLAND_NO_RT,1 # Disables realtime priority setting by Hyprland.
+# env = HYPRLAND_NO_SD_NOTIFY,1 # If systemd, disables the 'sd_notify' calls.
+# env = HYPRLAND_NO_SD_VARS,1 # Disables management of variables in systemd and dbus activation environments.
diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf
index fbe3bfe5..89faf2f3 100644
--- a/config/hypr/configs/Keybinds.conf
+++ b/config/hypr/configs/Keybinds.conf
@@ -8,6 +8,72 @@ $scriptsDir = $HOME/.config/hypr/scripts
$UserConfigs = $HOME/.config/hypr/UserConfigs
$UserScripts = $HOME/.config/hypr/UserScripts
+# settings for User defaults apps - set your default terminal and file manager on this file
+source= $UserConfigs/01-UserDefaults.conf
+
+#### STANDAR ####
+# Common shortcuts
+#bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu
+bindd = $mainMod, D, app launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window
+bindd = $mainMod, B, open default browser, exec, xdg-open "https://"
+bindd = $mainMod, A, desktop overview, exec, $scriptsDir/OverviewToggle.sh # toggles quickshell or ags overview (tries QS first, falls back to AGS)
+#bindd = $mainMod, A, ags overview, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed)
+#bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed)
+bindd = $mainMod, Return, Open terminal, exec, $term
+bindd = $mainMod, E, file manager, exec, $files
+
+# FEATURES / EXTRAS
+bindd = $mainMod, H, help / cheat sheet, exec, $scriptsDir/KeyHints.sh
+bindd = $mainMod ALT, R, refresh bar and menus, exec, $scriptsDir/Refresh.sh
+bindd = $mainMod ALT, E, emoji menu, exec, $scriptsDir/RofiEmoji.sh
+bindd = $mainMod, S, web search, exec, $scriptsDir/RofiSearch.sh
+bindd = $mainMod CTRL, S, window switcher, exec, rofi -show window
+bindd = $mainMod ALT, O, toggle blur, exec, $scriptsDir/ChangeBlur.sh
+bindd = $mainMod SHIFT, G, toggle game mode, exec, $scriptsDir/GameMode.sh
+bindd = $mainMod ALT, L, toggle master/dwindle layout, exec, $scriptsDir/ChangeLayout.sh
+bindd = $mainMod ALT, V, clipboard manager, exec, $scriptsDir/ClipManager.sh
+bindd = $mainMod CTRL, R, rofi theme selector, exec, $scriptsDir/RofiThemeSelector.sh
+bindd = $mainMod CTRL SHIFT, R, rofi theme selector (modified), exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh
+
+bindd = $mainMod SHIFT, F, fullscreen, fullscreen
+bindd = $mainMod CTRL, F, maximize window, fullscreen, 1
+bindd = $mainMod, SPACE, Float current window, togglefloating,
+bindd = $mainMod ALT, SPACE, Float all windows, exec, hyprctl dispatch workspaceopt allfloat
+bindd = $mainMod SHIFT, Return, DropDown terminal, exec, $scriptsDir/Dropterminal.sh $term
+
+# Desktop zooming or magnifier
+bindd = $mainMod ALT, mouse_down, zoom in, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')"
+bindd = $mainMod ALT, mouse_up, zoom out, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')"
+
+# Waybar / Bar related
+bindd = $mainMod CTRL ALT, B, toggle waybar on/off, exec, pkill -SIGUSR1 waybar
+bindd = $mainMod CTRL, B, waybar styles menu, exec, $scriptsDir/WaybarStyles.sh
+bindd = $mainMod ALT, B, waybar layout menu, exec, $scriptsDir/WaybarLayout.sh
+
+# Night light toggle (Hyprsunset)
+bindd = $mainMod, N, toggle night light, exec, $scriptsDir/Hyprsunset.sh toggle
+
+# FEATURES / EXTRAS (UserScripts)
+bindd = $mainMod SHIFT, M, online music, exec, $UserScripts/RofiBeats.sh
+bindd = $mainMod, W, select wallpaper, exec, $UserScripts/WallpaperSelect.sh
+bindd = $mainMod SHIFT, W, wallpaper effects, exec, $UserScripts/WallpaperEffects.sh
+bindd = CTRL ALT, W, random wallpaper, exec, $UserScripts/WallpaperRandom.sh
+bindd = $mainMod CTRL, O, toggle active window opacity, exec, hyprctl setprop active opaque toggle
+bindd = $mainMod SHIFT, K, search keybinds, exec, $scriptsDir/KeyBinds.sh
+bindd = $mainMod SHIFT, A, animations menu, exec, $scriptsDir/Animations.sh
+bindd = $mainMod SHIFT, O, change oh-my-zsh theme, exec, $UserScripts/ZshChangeTheme.sh
+bindlnd = ALT_L, SHIFT_L, switch keyboard layout globally, exec, $scriptsDir/SwitchKeyboardLayout.sh
+bindlnd = SHIFT_L, ALT_L, switch keyboard layout per-window, exec, $scriptsDir/Tak0-Per-Window-Switch.sh
+bindd = $mainMod ALT, C, calculator, exec, $UserScripts/RofiCalc.sh
+
+# Move current workspaces to monitors (left right up or down)
+bindd = $mainMod CTRL, F9, move workspace to left monitor, movecurrentworkspacetomonitor, l
+bindd = $mainMod CTRL, F10, move workspace to right monitor, movecurrentworkspacetomonitor, r
+bindd = $mainMod CTRL, F11, move workspace to up monitor, movecurrentworkspacetomonitor, u
+bindd = $mainMod CTRL, F12, move workspace to down monitor, movecurrentworkspacetomonitor, d
+
+
+#### SYSTEM ####
bindd = CTRL ALT, Delete, exit Hyprland, exec, hyprctl dispatch exit 0
bindd = $mainMod, Q, close active window, killactive,
bindd = $mainMod SHIFT, Q, Terminate active process, exec, $scriptsDir/KillActiveProcess.sh
diff --git a/config/hypr/configs/Laptops.conf b/config/hypr/configs/Laptops.conf
new file mode 100644
index 00000000..d6addb1d
--- /dev/null
+++ b/config/hypr/configs/Laptops.conf
@@ -0,0 +1,33 @@
+# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings
+# These configs are mostly for laptops. This is addemdum to Keybinds.conf
+
+$mainMod = SUPER
+$scriptsDir = $HOME/.config/hypr/scripts
+$UserConfigs = $HOME/.config/hypr/UserConfigs
+
+# for disabling Touchpad. hyprctl devices to get device name.
+$Touchpad_Device=asue1209:00-04f3:319f-touchpad
+
+binde = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec # decrease keyboard brightness
+binde = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc # increase keyboard brightness
+bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button
+bind = , xf86Launch3, exec, asusctl led-mode -n # FN+F4 Switch keyboard RGB profile
+bind = , xf86Launch4, exec, asusctl profile -n # FN+F5 change of fan profiles (Quite, Balance, Performance)
+binde = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec # decrease monitor brightness
+binde = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc # increase monitor brightness
+bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh # disable touchpad
+
+# Screenshot keybindings using F6 (no PrinSrc button)
+bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # screenshot
+bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area)
+bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # # screenshot (5 secs delay)
+bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay)
+bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only)
+
+$TOUCHPAD_ENABLED = true
+device {
+ name = $Touchpad_Device
+ enabled = $TOUCHPAD_ENABLED
+}
+
diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf
index c1670595..425b9b03 100644
--- a/config/hypr/configs/Startup_Apps.conf
+++ b/config/hypr/configs/Startup_Apps.conf
@@ -9,19 +9,20 @@ $lock = $scriptsDir/LockScreen.sh
$SwwwRandom = $UserScripts/WallpaperAutoChange.sh
$livewallpaper=""
-# wallpaper stuff
+### wallpaper stuff ###
exec-once = swww-daemon --format xrgb
#exec-once = mpvpaper '*' -o "load-scripts=no no-audio --loop" $livewallpaper
# wallpaper random
#exec-once = $SwwwRandom $wallDIR # random wallpaper switcher every 30 minutes
-# Startup
+### Startup ###
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = $scriptsDir/KeybindsLayoutInit.sh
-# Initialize Drop Down terminal - See Bug#810 https://github.com/JaKooLit/Hyprland-Dots/issues/810#issuecomment-3351947644
+# Drop Down terminal
+# See Bug#810 https://github.com/JaKooLit/Hyprland-Dots/issues/810#issuecomment-3351947644
exec-once = $HOME/.config/hypr/scripts/Dropterminal.sh kitty &
@@ -38,24 +39,25 @@ exec-once = swaync
exec-once = waybar
exec-once = qs # quickshell AGS Desktop Overview alternative
-#clipboard manager
+# Clipboard manager
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
# Rainbow borders
exec-once = $UserScripts/RainbowBorders.sh
-# Starting hypridle to start hyprlock
+# hypridle for hyprlock
exec-once = hypridle
# Resume Hyprsunset if state is "on" from previous session
exec-once = $scriptsDir/Hyprsunset.sh init
# Here are list of features available but disabled by default
-# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper
+# Persistent wallpaper
+# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png
-#gnome polkit for nixos
+# Gnome polkit for NixOS
#exec-once = $scriptsDir/Polkit-NixOS.sh
# xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start)
-#exec-once = $scriptsDir/PortalHyprland.sh \ No newline at end of file
+#exec-once = $scriptsDir/PortalHyprland.sh
diff --git a/config/hypr/configs/SystemSettings.conf b/config/hypr/configs/SystemSettings.conf
new file mode 100644
index 00000000..0c822678
--- /dev/null
+++ b/config/hypr/configs/SystemSettings.conf
@@ -0,0 +1,120 @@
+# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
+# Default settings
+# This is where you put your own settings as this will not be touched during update
+# if the upgrade.sh is used.
+
+# refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/
+# NOTE: some settings are in ~/.config/hypr/UserConfigs/UserDecorAnimations.conf
+
+dwindle {
+ pseudotile = true
+ preserve_split = true
+ #smart_split = true
+ special_scale_factor = 0.8
+}
+
+master {
+ new_status = master
+ new_on_top = 1
+ mfact = 0.5
+}
+
+general {
+ resize_on_border = true
+ layout = dwindle
+}
+
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+ repeat_rate = 50
+ repeat_delay = 300
+
+ sensitivity = 0 #mouse sensitivity
+ #accel_profile = # flat or adaptive or blank or EMPTY means libinput’s default mode
+ numlock_by_default = true
+ left_handed = false
+ follow_mouse = 1
+ float_switch_override_focus = false
+
+ touchpad {
+ disable_while_typing = true
+ natural_scroll = true
+ clickfinger_behavior = false
+ middle_button_emulation = false
+ tap-to-click = true
+ drag_lock = false
+ }
+
+ # below for devices with touchdevice ie. touchscreen
+ touchdevice {
+ enabled = true
+ }
+
+ # below is for table see link above for proper variables
+ tablet {
+ transform = 0
+ left_handed = 0
+ }
+}
+
+
+gestures {
+ gesture = 3, horizontal, workspace
+ workspace_swipe_distance = 500
+ workspace_swipe_invert = true
+ workspace_swipe_min_speed_to_force = 30
+ workspace_swipe_cancel_ratio = 0.5
+ workspace_swipe_create_new = true
+ workspace_swipe_forever = true
+ #workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right
+ gesture = 3, up, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 1.5}')"
+ gesture = 3, down, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 1.5}')"
+}
+
+misc {
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+ vfr = true
+ vrr = 2
+ mouse_move_enables_dpms = true
+ enable_swallow = off
+ swallow_regex = ^(kitty)$
+ focus_on_activate = false
+ initial_workspace_tracking = 0
+ middle_click_paste = false
+ enable_anr_dialog = true # Application not Responding (ANR)
+ anr_missed_pings = 15 # ANR Threshold default 1 is too low
+ allow_session_lock_restore = true # Prevent lockscreen crash when resume from suspend
+}
+
+#opengl {
+# nvidia_anti_flicker = true
+#}
+
+binds {
+ workspace_back_and_forth = true
+ allow_workspace_cycles = true
+ pass_mouse_when_bound = false
+}
+
+#Could help when scaling and not pixelating
+xwayland {
+ enabled = true
+ force_zero_scaling = true
+}
+
+render {
+ direct_scanout = 0
+}
+
+cursor {
+ sync_gsettings_theme = true
+ no_hardware_cursors = 2 # change to 1 if want to disable
+ enable_hyprcursor = true
+ warp_on_change_workspace = 2
+ no_warps = true
+}
diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf
index f509a76d..8f07885a 100644
--- a/config/hypr/hyprland.conf
+++ b/config/hypr/hyprland.conf
@@ -1,5 +1,5 @@
# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ #
-# always refer to Hyprland wiki
+# Always refer to Hyprland wiki
# https://wiki.hyprland.org/
# Initial boot script enable to apply initial wallpapers, theming, new settings etc.
@@ -7,25 +7,28 @@
# as long as the referrence file is present, this initial-boot.sh will not execute
exec-once = $HOME/.config/hypr/initial-boot.sh
-# Sourcing external config files
+### Sourcing external config files ###
$configs = $HOME/.config/hypr/configs # Default Configs directory path
-# ## This is where you want to start tinkering
$UserConfigs = $HOME/.config/hypr/UserConfigs # User Configs directory path
source=$configs/Keybinds.conf # Pre-configured keybinds
-# Load vendor defaults, then user additions/overrides
-source= $configs/Startup_Apps.conf
+# Load defaults, then user additions/overrides
+source= $configs/Startup_Apps.conf
source= $UserConfigs/Startup_Apps.conf
-source= $UserConfigs/ENVariables.conf # Environment variables to load
+source= $configs/ENVariables.conf # Environment variables (defaults)
+source= $UserConfigs/ENVariables.conf # Environment variables (user)
-source= $UserConfigs/Laptops.conf # For laptop related
-source= $UserConfigs/LaptopDisplay.conf # Laptop display related. You need to read the comment on this file
+# For laptop related
+source= $UserConfigs/Laptops.conf
+source= $UserConfigs/LaptopDisplay.conf
-# Load vendor defaults, then user additions
-source= $configs/WindowRules.conf # all about Hyprland Window Rules and Layer Rules (defaults)
-source= $UserConfigs/WindowRules.conf # Window Rules and Layer Rules user configs
+# Load defaults, then user additions
+source= $configs/WindowRules.conf # Window Rules and Layer Rules (defaults)
+source= $UserConfigs/WindowRules.conf # Window Rules and Layer Rules (user)
+
+source= $configs/SystemSettings.conf # Default config for hypr
source= $UserConfigs/UserDecorations.conf # Decorations config file
source= $UserConfigs/UserAnimations.conf # Animation config file
diff --git a/config/hypr/scripts/UserConfigsSwitcher.sh b/config/hypr/scripts/UserConfigsSwitcher.sh
new file mode 100755
index 00000000..ad1d4e63
--- /dev/null
+++ b/config/hypr/scripts/UserConfigsSwitcher.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ ##
+# Script to manage UserConfigs and UserConfigsBak
+
+HYPR_CONFIG_DIR="$HOME/.config/hypr"
+USER_CONFIGS="$HYPR_CONFIG_DIR/UserConfigs"
+USER_CONFIGS_BAK="$HYPR_CONFIG_DIR/UserConfigsBak"
+
+if [ -d "$USER_CONFIGS" ] && [ ! -d "$USER_CONFIGS_BAK" ]; then
+ echo "Moving UserConfigs to UserConfigsBak..."
+ mv "$USER_CONFIGS" "$USER_CONFIGS_BAK"
+ echo "Done. Your UserConfigs are now in UserConfigsBak."
+elif [ ! -d "$USER_CONFIGS" ] && [ -d "$USER_CONFIGS_BAK" ]; then
+ echo "Moving UserConfigsBak to UserConfigs..."
+ mv "$USER_CONFIGS_BAK" "$USER_CONFIGS"
+ echo "Done. Your backup has been restored to UserConfigs."
+elif [ -d "$USER_CONFIGS" ] && [ -d "$USER_CONFIGS_BAK" ]; then
+ echo "Both UserConfigs and UserConfigsBak exist."
+ echo "Please choose what to do:"
+ PS3="Enter your choice: "
+ select option in "Backup current UserConfigs (move to UserConfigsBak)" "Restore backup (move UserConfigsBak to UserConfigs)" "Swap them" "Do nothing"; do
+ case $REPLY in
+ 1)
+ echo "Backing up UserConfigs..."
+ rm -rf "$USER_CONFIGS_BAK"
+ mv "$USER_CONFIGS" "$USER_CONFIGS_BAK"
+ echo "Done. UserConfigs moved to UserConfigsBak."
+ break
+ ;;
+ 2)
+ echo "Restoring backup..."
+ rm -rf "$USER_CONFIGS"
+ mv "$USER_CONFIGS_BAK" "$USER_CONFIGS"
+ echo "Done. UserConfigsBak moved to UserConfigs."
+ break
+ ;;
+ 3)
+ echo "Swapping..."
+ mv "$USER_CONFIGS" "$HYPR_CONFIG_DIR/UserConfigs.tmp"
+ mv "$USER_CONFIGS_BAK" "$USER_CONFIGS"
+ mv "$HYPR_CONFIG_DIR/UserConfigs.tmp" "$USER_CONFIGS_BAK"
+ echo "Done. UserConfigs and UserConfigsBak have been swapped."
+ break
+ ;;
+ 4)
+ echo "No changes made."
+ break
+ ;;
+ *)
+ echo "Invalid option. Please try again."
+ ;;
+ esac
+ done
+else
+ echo "Neither UserConfigs nor UserConfigsBak directory found. Nothing to do."
+fi
diff --git a/copy.sh b/copy.sh
index b1cc6e1a..a4c3e666 100755
--- a/copy.sh
+++ b/copy.sh
@@ -85,26 +85,24 @@ LOG="Copy-Logs/install-$(date +%d-%H%M%S)_dotfiles.log"
# update home directories
xdg-user-dirs-update 2>&1 | tee -a "$LOG" || true
-# setting up for nvidia
+# setting up for NVIDIA
if lspci -k | grep -A 2 -E "(VGA|3D)" | grep -iq nvidia; then
echo "${INFO} Nvidia GPU detected. Setting up proper env's and configs" 2>&1 | tee -a "$LOG" || true
- sed -i '/env = LIBVA_DRIVER_NAME,nvidia/s/^#//' config/hypr/UserConfigs/ENVariables.conf
- sed -i '/env = __GLX_VENDOR_LIBRARY_NAME,nvidia/s/^#//' config/hypr/UserConfigs/ENVariables.conf
- sed -i '/env = NVD_BACKEND,direct/s/^#//' config/hypr/UserConfigs/ENVariables.conf
- sed -i '/env = GSK_RENDERER,ngl/s/^#//' config/hypr/UserConfigs/ENVariables.conf
+ sed -i '/env = LIBVA_DRIVER_NAME,nvidia/s/^#//' config/hypr/configs/ENVariables.conf
+ sed -i '/env = __GLX_VENDOR_LIBRARY_NAME,nvidia/s/^#//' config/hypr/configs/ENVariables.conf
+ sed -i '/env = NVD_BACKEND,direct/s/^#//' config/hypr/configs/ENVariables.conf
+ sed -i '/env = GSK_RENDERER,ngl/s/^#//' config/hypr/configs/ENVariables.conf
# no hardware cursors if nvidia detected
- sed -i 's/^\([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*\)2/\1 1/' config/hypr/UserConfigs/UserSettings.conf
- #sed -i 's/^\([[:space:]]*explicit_sync[[:space:]]*=[[:space:]]*\)2/\1 0/' config/hypr/UserConfigs/UserSettings.conf
+ sed -i 's/^\([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*\)2/\1 1/' config/hypr/configs/SystemSettings.conf
fi
# uncommenting WLR_RENDERER_ALLOW_SOFTWARE,1 if running in a VM is detected
if hostnamectl | grep -q 'Chassis: vm'; then
echo "${INFO} System is running in a virtual machine. Setting up proper env's and configs" 2>&1 | tee -a "$LOG" || true
- sed -i 's/^\([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*\)2/\1 1/' config/hypr/UserConfigs/UserSettings.conf
+ sed -i 's/^\([[:space:]]*no_hardware_cursors[[:space:]]*=[[:space:]]*\)2/\1 1/' config/hypr/configs/SystemSettings.conf
# enabling proper ENV's for Virtual Environment which should help
- sed -i '/env = WLR_RENDERER_ALLOW_SOFTWARE,1/s/^#//' config/hypr/UserConfigs/ENVariables.conf
- #sed -i '/env = LIBGL_ALWAYS_SOFTWARE,1/s/^#//' config/hypr/UserConfigs/ENVariables.conf
+ sed -i '/env = WLR_RENDERER_ALLOW_SOFTWARE,1/s/^#//' config/hypr/configs/ENVariables.conf
sed -i '/monitor = Virtual-1, 1920x1080@60,auto,1/s/^#//' config/hypr/monitors.conf
fi
@@ -112,8 +110,8 @@ fi
if hostnamectl | grep -q 'Operating System: NixOS'; then
echo "${INFO} NixOS Distro Detected. Setting up proper env's and configs." 2>&1 | tee -a "$LOG" || true
# Ensure NixOS polkit is enabled via overlay and default polkit is disabled via disable list
- OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf"
- DISABLE_SA="config/hypr/UserConfigs/Startup_Apps.disable"
+ OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
+ DISABLE_SA="config/hypr/configs/Startup_Apps.disable"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA" "$DISABLE_SA"
if ! grep -qx 'exec-once = $scriptsDir/Polkit-NixOS.sh' "$OVERLAY_SA"; then
@@ -126,7 +124,7 @@ fi
# activating hyprcursor on env by checking if the directory ~/.icons/Bibata-Modern-Ice/hyprcursors exists
if [ -d "$HOME/.icons/Bibata-Modern-Ice/hyprcursors" ]; then
- HYPRCURSOR_ENV_FILE="config/hypr/UserConfigs/ENVariables.conf"
+ HYPRCURSOR_ENV_FILE="config/hypr/configs/ENVariables.conf"
echo "${INFO} Bibata-Hyprcursor directory detected. Activating Hyprcursor...." 2>&1 | tee -a "$LOG" || true
sed -i 's/^#env = HYPRCURSOR_THEME,Bibata-Modern-Ice/env = HYPRCURSOR_THEME,Bibata-Modern-Ice/' "$HYPRCURSOR_ENV_FILE"
sed -i 's/^#env = HYPRCURSOR_SIZE,24/env = HYPRCURSOR_SIZE,24/' "$HYPRCURSOR_ENV_FILE"
@@ -199,8 +197,8 @@ while true; do
case $keyboard_layout in
[yY])
- awk -v layout="$layout" '/kb_layout/ {$0 = " kb_layout = " layout} 1' config/hypr/UserConfigs/UserSettings.conf >temp.conf
- mv temp.conf config/hypr/UserConfigs/UserSettings.conf
+ awk -v layout="$layout" '/kb_layout/ {$0 = " kb_layout = " layout} 1' config/hypr/configs/SystemSettings.conf >temp.conf
+ mv temp.conf config/hypr/configs/SystemSettings.conf
echo "${NOTE} kb_layout ${MAGENTA}$layout${RESET} configured in settings." 2>&1 | tee -a "$LOG"
break
@@ -232,8 +230,8 @@ ${MAGENTA} NOTE:${RESET}
echo -n "${CAT} - Please enter the correct keyboard layout: "
read new_layout
- awk -v new_layout="$new_layout" '/kb_layout/ {$0 = " kb_layout = " new_layout} 1' config/hypr/UserConfigs/UserSettings.conf >temp.conf
- mv temp.conf config/hypr/UserConfigs/UserSettings.conf
+ awk -v new_layout="$new_layout" '/kb_layout/ {$0 = " kb_layout = " new_layout} 1' config/hypr/configs/SystemSettings.conf >temp.conf
+ mv temp.conf config/hypr/configs/SystemSettings.conf
echo "${OK} kb_layout $new_layout configured in settings." 2>&1 | tee -a "$LOG"
break
;;
@@ -245,7 +243,7 @@ done
# Check if asusctl is installed and add rog-control-center on Startup
if command -v asusctl >/dev/null 2>&1; then
- OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf"
+ OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = rog-control-center' "$OVERLAY_SA" || echo 'exec-once = rog-control-center' >>"$OVERLAY_SA"
@@ -253,7 +251,7 @@ fi
# Check if blueman-applet is installed and add blueman-applet on Startup
if command -v blueman-applet >/dev/null 2>&1; then
- OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf"
+ OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = blueman-applet' "$OVERLAY_SA" || echo 'exec-once = blueman-applet' >>"$OVERLAY_SA"
@@ -262,7 +260,7 @@ fi
# Check if ags is installed and enable it
if command -v ags >/dev/null 2>&1; then
echo "${INFO} AGS detected - enabling in startup and refresh scripts" 2>&1 | tee -a "$LOG"
- OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf"
+ OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = ags' "$OVERLAY_SA" || echo 'exec-once = ags' >>"$OVERLAY_SA"
@@ -273,7 +271,7 @@ fi
# Check if quickshell is installed and enable it
if command -v qs >/dev/null 2>&1; then
echo "${INFO} Quickshell detected - enabling in startup and refresh scripts" 2>&1 | tee -a "$LOG"
- OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf"
+ OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
touch "$OVERLAY_SA"
grep -qx 'exec-once = qs' "$OVERLAY_SA" || echo 'exec-once = qs' >>"$OVERLAY_SA"
@@ -282,16 +280,13 @@ if command -v qs >/dev/null 2>&1; then
fi
# Ensure layout-aware keybinds init runs on startup (adds to user overlay so it survives composes)
-OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf"
+OVERLAY_SA="config/hypr/configs/Startup_Apps.conf"
mkdir -p "$(dirname "$OVERLAY_SA")"
if ! grep -qx 'exec-once = \$scriptsDir/KeybindsLayoutInit.sh' "$OVERLAY_SA"; then
echo 'exec-once = $scriptsDir/KeybindsLayoutInit.sh' >>"$OVERLAY_SA"
echo "${INFO} Added KeybindsLayoutInit.sh to user Startup_Apps overlay" 2>&1 | tee -a "$LOG"
fi
-# Note: The SUPER+A keybind now uses OverviewToggle.sh which automatically
-# tries quickshell first and falls back to AGS, so both can be installed
-
printf "\n%.0s" {1..1}
# Checking if neovim or vim is installed and offer user if they want to make as default editor
@@ -488,8 +483,8 @@ if [[ "$border_choice" =~ ^[Yy]$ ]]; then
mv config/hypr/UserScripts/RainbowBorders.sh config/hypr/UserScripts/RainbowBorders.bak.sh
# Comment out the exec-once and animation lines
- sed -i '/exec-once = \$UserScripts\/RainbowBorders.sh/s/^/#/' config/hypr/UserConfigs/Startup_Apps.conf
- sed -i '/^[[:space:]]*animation = borderangle, 1, 180, liner, loop/s/^/#/' config/hypr/UserConfigs/UserAnimations.conf
+ sed -i '/exec-once = \$UserScripts\/RainbowBorders.sh/s/^/#/' config/hypr/configs/Startup_Apps.conf
+ sed -i '/^[[:space:]]*animation = borderangle, 1, 180, liner, loop/s/^/#/' config/hypr/configs/UserAnimations.conf
echo "${OK} Rainbow borders are now disabled." 2>&1 | tee -a "$LOG"
else
@@ -808,7 +803,6 @@ if [ -d "$BACKUP_HYPR_PATH" ]; then
# Restore directories automatically
for DIR_RESTORE in "${DIR_B[@]}"; do
BACKUP_SUBDIR="$BACKUP_HYPR_PATH/$DIR_RESTORE"
-
if [ -d "$BACKUP_SUBDIR" ]; then
cp -r "$BACKUP_SUBDIR" "$HYPR_DIR/"
echo "${OK} - Restored directory: ${MAGENTA}$DIR_RESTORE${RESET}" 2>&1 | tee -a "$LOG"
@@ -830,20 +824,6 @@ fi
printf "\n%.0s" {1..1}
# Restoring UserConfigs and UserScripts
-DIRH="hypr"
-FILES_TO_RESTORE=(
- "01-UserDefaults.conf"
- "ENVariables.conf"
- "LaptopDisplay.conf"
- "Laptops.conf"
- "Startup_Apps.conf"
- "UserDecorations.conf"
- "UserAnimations.conf"
- "UserKeybinds.conf"
- "UserSettings.conf"
- "WindowRules.conf"
-)
-
# Helper to extract overlay (additions) and optional disables from a previous user file compared to vendor base
compose_overlay_from_backup() {
local type="$1" # startup|windowrules
@@ -862,11 +842,11 @@ compose_overlay_from_backup() {
grep -E '^\s*exec-once\s*=' "$base_file" | sed -E 's/^\s+//;s/\s+$//' | sort -u >"$base_file.tmp.exec"
comm -23 "$old_user_file.tmp.exec" "$base_file.tmp.exec" >"$new_user_file"
# treat commented exec-once in old user as disables
- grep -E '^\s*#\s*exec-once\s*=' "$old_user_file" \
- | sed -E 's/^\s*#\s*exec-once\s*=\s*//' \
- | sed -E 's/^\s+//;s/\s+$//' \
- | grep -Ev '^\$scriptsDir/KeybindsLayoutInit\.sh$' \
- | sort -u >"$disable_file"
+ grep -E '^\s*#\s*exec-once\s*=' "$old_user_file" |
+ sed -E 's/^\s*#\s*exec-once\s*=\s*//' |
+ sed -E 's/^\s+//;s/\s+$//' |
+ grep -Ev '^\$scriptsDir/KeybindsLayoutInit\.sh$' |
+ sort -u >"$disable_file"
rm -f "$old_user_file.tmp.exec" "$base_file.tmp.exec"
elif [ "$type" = "windowrules" ]; then
# additions
@@ -879,6 +859,13 @@ compose_overlay_from_backup() {
fi
}
+# Function to compare versions
+version_gte() {
+ # Returns 0 if $1 >= $2, 1 otherwise
+ [ "$1" = "$(echo -e "$1\n$2" | sort -V | tail -n1)" ]
+}
+
+DIRH="hypr"
DIRPATH="$HOME/.config/$DIRH"
BACKUP_DIR=$(get_backup_dirname)
BACKUP_DIR_PATH="$DIRPATH-backup-$BACKUP_DIR/UserConfigs"
@@ -889,51 +876,90 @@ if [ -z "$BACKUP_DIR" ]; then
fi
if [ -d "$BACKUP_DIR_PATH" ]; then
+ # Detect version
+ VERSION_FILE=$(find "$DIRPATH" -maxdepth 1 -name "v*.*.*" | head -n 1)
+ CURRENT_VERSION="999.9.9"
+ if [ -n "$VERSION_FILE" ]; then
+ CURRENT_VERSION=$(basename "$VERSION_FILE" | sed 's/^v//')
+ fi
+
+ TARGET_VERSION="2.3.19"
+
echo -e "${NOTE} Restoring previous ${MAGENTA}User-Configs${RESET}... "
print_color $WARNING "
β–ˆβ–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–€β–ˆ
NOTES for RESTORING PREVIOUS CONFIGS
β–ˆβ–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–„β–ˆ
- We now auto-migrate Startup_Apps and WindowRules by extracting
- your additions into overlay files and optional disable lists.
- This keeps new defaults while preserving your custom changes.
+ The 'UserConfigs' directory is for all your personal settings.
+ Files in this directory will override the default configurations,
+ so your customizations are not lost when you update.
"
- echo -e "${MAGENTA}Kindly Visit and check KooL's Hyprland-Dots GitHub page for the history of commits.${RESET}"
- for FILE_NAME in "${FILES_TO_RESTORE[@]}"; do
- BACKUP_FILE="$BACKUP_DIR_PATH/$FILE_NAME"
- if [ -f "$BACKUP_FILE" ]; then
- # Special handling for Startup_Apps.conf and WindowRules.conf
- if [ "$FILE_NAME" = "Startup_Apps.conf" ]; then
- compose_overlay_from_backup "startup" "$DIRPATH/configs/Startup_Apps.conf" "$BACKUP_FILE" "$DIRPATH/UserConfigs/Startup_Apps.conf" "$DIRPATH/UserConfigs/Startup_Apps.disable"
- echo "${OK} - Migrated overlay for ${YELLOW}$FILE_NAME${RESET}" 2>&1 | tee -a "$LOG"
- continue
- fi
- if [ "$FILE_NAME" = "WindowRules.conf" ]; then
- compose_overlay_from_backup "windowrules" "$DIRPATH/configs/WindowRules.conf" "$BACKUP_FILE" "$DIRPATH/UserConfigs/WindowRules.conf" "$DIRPATH/UserConfigs/WindowRules.disable"
- echo "${OK} - Migrated overlay for ${YELLOW}$FILE_NAME${RESET}" 2>&1 | tee -a "$LOG"
- continue
- fi
+ if version_gte "$CURRENT_VERSION" "$TARGET_VERSION"; then
+ # NEW BEHAVIOR (>= 2.3.19) - Bulk Restore
+ echo -n "${CAT} Do you want to restore your previous UserConfigs directory? (Y/n): "
+ read -r restore_userconfigs_dir
- printf "\n${INFO} Found ${YELLOW}$FILE_NAME${RESET} in hypr backup...\n"
- echo -n "${CAT} Do you want to restore ${YELLOW}$FILE_NAME${RESET} from backup? (y/N): "
- read file_restore
+ if [[ "$restore_userconfigs_dir" != [Nn]* ]]; then
+ echo "${NOTE} Restoring UserConfigs directory..." 2>&1 | tee -a "$LOG"
+ # Use rsync to copy contents, overwriting existing files.
+ rsync -a "$BACKUP_DIR_PATH/" "$DIRPATH/UserConfigs/" 2>&1 | tee -a "$LOG"
+ echo "${OK} - UserConfigs directory restored." 2>&1 | tee -a "$LOG"
+ else
+ echo "${NOTE} - Skipped restoring UserConfigs." 2>&1 | tee -a "$LOG"
+ fi
- if [[ "$file_restore" == [Yy]* ]]; then
- if cp "$BACKUP_FILE" "$DIRPATH/UserConfigs/$FILE_NAME"; then
- echo "${OK} - $FILE_NAME restored!" 2>&1 | tee -a "$LOG"
+ else
+ # OLD BEHAVIOR (<= 2.3.18) - Selective Restore
+ echo -e "${NOTE} Detected version ${YELLOW}v$CURRENT_VERSION${RESET} (older than v$TARGET_VERSION). Using legacy restoration mode."
+
+ FILES_TO_RESTORE=(
+ "01-UserDefaults.conf"
+ "ENVariables.conf"
+ "LaptopDisplay.conf"
+ "Laptops.conf"
+ "Startup_Apps.conf"
+ "UserDecorations.conf"
+ "UserAnimations.conf"
+ "UserKeybinds.conf"
+ "UserSettings.conf"
+ "WindowRules.conf"
+ )
+
+ for FILE_NAME in "${FILES_TO_RESTORE[@]}"; do
+ BACKUP_FILE="$BACKUP_DIR_PATH/$FILE_NAME"
+ if [ -f "$BACKUP_FILE" ]; then
+ # Special handling for Startup_Apps.conf and WindowRules.conf
+ if [ "$FILE_NAME" = "Startup_Apps.conf" ]; then
+ compose_overlay_from_backup "startup" "$DIRPATH/configs/Startup_Apps.conf" "$BACKUP_FILE" "$DIRPATH/UserConfigs/Startup_Apps.conf" "$DIRPATH/UserConfigs/Startup_Apps.disable"
+ echo "${OK} - Migrated overlay for ${YELLOW}$FILE_NAME${RESET}" 2>&1 | tee -a "$LOG"
+ continue
+ fi
+ if [ "$FILE_NAME" = "WindowRules.conf" ]; then
+ compose_overlay_from_backup "windowrules" "$DIRPATH/configs/WindowRules.conf" "$BACKUP_FILE" "$DIRPATH/UserConfigs/WindowRules.conf" "$DIRPATH/UserConfigs/WindowRules.disable"
+ echo "${OK} - Migrated overlay for ${YELLOW}$FILE_NAME${RESET}" 2>&1 | tee -a "$LOG"
+ continue
+ fi
+
+ printf "\n${INFO} Found ${YELLOW}$FILE_NAME${RESET} in hypr backup...\n"
+ echo -n "${CAT} Do you want to restore ${YELLOW}$FILE_NAME${RESET} from backup? (Y/n): "
+ read file_restore
+
+ if [[ "$file_restore" != [Nn]* ]]; then
+ if cp "$BACKUP_FILE" "$DIRPATH/UserConfigs/$FILE_NAME"; then
+ echo "${OK} - $FILE_NAME restored!" 2>&1 | tee -a "$LOG"
+ else
+ echo "${ERROR} - Failed to restore $FILE_NAME!" 2>&1 | tee -a "$LOG"
+ fi
else
- echo "${ERROR} - Failed to restore $FILE_NAME!" 2>&1 | tee -a "$LOG"
+ echo "${NOTE} - Skipped restoring $FILE_NAME." 2>&1 | tee -a "$LOG"
fi
- else
- echo "${NOTE} - Skipped restoring $FILE_NAME." 2>&1 | tee -a "$LOG"
fi
- fi
- done
+ done
+ fi
fi
-
printf "\n%.0s" {1..1}
# Restoring previous UserScripts
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage