From 2d2f6198a92278a141c333926a94d8e82de0570d Mon Sep 17 00:00:00 2001 From: Ryan Garofano Date: Mon, 22 Dec 2025 18:05:31 -0800 Subject: feat: Add precise volume adjustment --- config/hypr/configs/Keybinds.conf | 2 ++ 1 file changed, 2 insertions(+) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index 1ddbc81a..7d0e3fef 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -106,6 +106,8 @@ bindd = ALT, tab, bring active to top, bringactivetotop # Special Keys / Hot Keys bindeld = , xf86audioraisevolume, volume up, exec, $scriptsDir/Volume.sh --inc bindeld = , xf86audiolowervolume, volume down, exec, $scriptsDir/Volume.sh --dec +bindeld = ALT, xf86audioraisevolume, volume up precise, exec, $scriptsDir/Volume.sh --inc-precise +bindeld = ALT, xf86audiolowervolume, volume down precise, exec, $scriptsDir/Volume.sh --dec-precise bindld = , xf86AudioMicMute, toggle mic mute, exec, $scriptsDir/Volume.sh --toggle-mic bindld = , xf86audiomute, toggle mute, exec, $scriptsDir/Volume.sh --toggle bindld = , xf86Sleep, sleep, exec, systemctl suspend -- cgit v1.2.3 From 862e49f7a3013b8c948d0036002cd07527b474cd Mon Sep 17 00:00:00 2001 From: Suresh Thagunna Date: Mon, 22 Dec 2025 18:05:07 -0500 Subject: fix: layout aware cycleprev and cyclenext window bindings --- config/hypr/configs/Keybinds.conf | 2 ++ config/hypr/configs/Startup_Apps.conf | 1 - config/hypr/scripts/ChangeLayout.sh | 31 +++++++++++++++++++++++-------- 3 files changed, 25 insertions(+), 9 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index 7d0e3fef..ddc516bc 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -97,6 +97,8 @@ bindd = $mainMod, P, toggle pseudo (dwindle), pseudo, # Works on either layout (Master or Dwindle) bindd = $mainMod, M, set split ratio 0.3, exec, hyprctl dispatch splitratio 0.3 +# layout aware keybinds +exec-once = $scriptsDir/ChangeLayout.sh init # Cycle windows; if floating bring to top diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf index 0cfb6427..27c8d26a 100644 --- a/config/hypr/configs/Startup_Apps.conf +++ b/config/hypr/configs/Startup_Apps.conf @@ -19,7 +19,6 @@ exec-once = swww-daemon --format xrgb ### 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 # Drop Down terminal # See Bug#810 https://github.com/JaKooLit/Hyprland-Dots/issues/810#issuecomment-3351947644 diff --git a/config/hypr/scripts/ChangeLayout.sh b/config/hypr/scripts/ChangeLayout.sh index e2436b79..221f9637 100755 --- a/config/hypr/scripts/ChangeLayout.sh +++ b/config/hypr/scripts/ChangeLayout.sh @@ -6,19 +6,34 @@ notif="$HOME/.config/swaync/images/ja.png" LAYOUT=$(hyprctl -j getoption general:layout | jq '.str' | sed 's/"//g') +# Reverse layout value to reuse toggle logic. So layouts don't get swapped initially. +if [ "$1" = "init" ]; then + if [ "$LAYOUT" = "master" ]; then + LAYOUT="dwindle" + else + LAYOUT="master" + fi +fi + case $LAYOUT in "master") - hyprctl keyword general:layout dwindle - # SUPER+J/K are global and managed by KeybindsLayoutInit.sh; only manage SUPER+O here - hyprctl keyword bind SUPER,O,togglesplit + hyprctl keyword general:layout dwindle + hyprctl keyword unbind SUPER,J + hyprctl keyword unbind SUPER,K + hyprctl keyword bind SUPER,J,cyclenext + hyprctl keyword bind SUPER,K,cyclenext,prev + hyprctl keyword bind SUPER,O,togglesplit notify-send -e -u low -i "$notif" " Dwindle Layout" - ;; + ;; "dwindle") - hyprctl keyword general:layout master - # Drop togglesplit binding on SUPER+O when switching back to master - hyprctl keyword unbind SUPER,O + hyprctl keyword general:layout master + hyprctl keyword unbind SUPER,J + hyprctl keyword unbind SUPER,K + hyprctl keyword unbind SUPER,O + hyprctl keyword bind SUPER,J,layoutmsg,cyclenext + hyprctl keyword bind SUPER,K,layoutmsg,cycleprev notify-send -e -u low -i "$notif" " Master Layout" - ;; + ;; *) ;; esac -- cgit v1.2.3 From 7389aef59d045c622e24797d7e46bdbd8d222f38 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 30 Dec 2025 12:19:13 -0500 Subject: Current WindowRules-config-v3 file Opactity keybinding not working SUPERCTRL+O On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/WindowRules-config-v3.conf --- config/hypr/configs/WindowRules-config-v3.conf | 214 +++++++++++-------------- 1 file changed, 95 insertions(+), 119 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index c4a8a624..ba179461 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -1,66 +1,82 @@ # /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ # -# For window rules and layerrules +# Vendor defaults 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 -# Vendor defaults for window rules and layerrules +# 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 = 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 ^(chrome-.+-Default)$, 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 +# notif tags 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 +# terminal tags windowrule = match:class ^(Alacritty|kitty|kitty-dropterm)$, tag +terminal +# email tags windowrule = match:class ^([Tt]hunderbird|org.gnome.Evolution)$, tag +email windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email +# project tags windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects windowrule = match:class ^(VSCode|code|code-url-handler)$, tag +projects -windowrule = match:class ^(jetbrains-.+)$ # JetBrains IDEs, tag +projects +windowrule = match:class ^(jetbrains-.+)$, tag +projects +# screenshare tags windowrule = match:class ^(com.obsproject.Studio)$, tag +screenshare +# IM tags 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 ^(im.riot.Riot|Element)$, tag +im +# game tags windowrule = match:class ^(gamescope)$, tag +games -windowrule = match:class ^(steam_app_\d+)$, tag +games +windowrule = match:class ^(steam_app_\\d+)$, tag +games +# gamestore tags windowrule = match:class ^([Ss]team)$, tag +gamestore windowrule = match:title ^([Ll]utris)$, tag +gamestore windowrule = match:class ^(com.heroicgameslauncher.hgl)$, tag +gamestore +# file-manager tags windowrule = match:class ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$, tag +file-manager windowrule = match:class ^(app.drey.Warp)$, tag +file-manager +# wallpaper tags windowrule = match:class ^([Ww]aytrogen)$, tag +wallpaper + +# multimedia tags windowrule = match:class ^([Aa]udacious)$, tag +multimedia + +# multimedia-video tags windowrule = match:class ^([Mm]pv|vlc)$, tag +multimedia_video +# settings tags 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 ^(wihotspot(-gui)?)$, tag +settings +windowrule = match:class ^([Bb]aobab|org.gnome.[Bb]aobab)$, 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 ^(file-roller|org.gnome.FileRoller)$, 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 @@ -68,137 +84,97 @@ 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 +# viewer tags +windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$, tag +viewer +windowrule = match:class ^(evince)$, tag +viewer +windowrule = match:class ^(eog|org.gnome.Loupe)$, tag +viewer -windowrule = match:tag multimedia_video*, noblur -windowrule = match:tag multimedia_video*, opacity 1.0 +# Some special override rules +windowrule = match:tag multimedia_video, no_blur on +windowrule = match:tag multimedia_video, opacity 1.0 # POSITION -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:floating true, center on +windowrule = match:tag KooL_Cheat, center on +windowrule = match:class ([Tt]hunar) match:title negative:(.*[Tt]hunar.*), center on +windowrule = match:title ^(ROG Control)$, center on +windowrule = match:tag KooL-Settings, center on +windowrule = match:title ^(Keybindings)$, center on +windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on +windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center on +windowrule = match:class ^([Ff]erdium)$, center on 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* +windowrule = match:fullscreen true, idle_inhibit fullscreen # 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 = match:tag KooL_Cheat, float on +windowrule = match:tag wallpaper, float on +windowrule = match:tag settings, float on +windowrule = match:tag viewer, float on +windowrule = match:tag KooL-Settings, float on +windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on +windowrule = match:class (org.gnome.Calculator) match:title (Calculator), float on +windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on +windowrule = match:class ^([Qq]alculate-gtk)$, float on +windowrule = match:class ^([Ff]erdium)$, float on +windowrule = match:title ^(Picture-in-Picture)$, float on # 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% +windowrule = match:title ^(Authentication Required)$, float on, center on +windowrule = match:class (codium|codium-url-handler|VSCodium) match:title negative:(.*codium.*|.*VSCodium.*), float on +windowrule = match:class ^(com.heroicgameslauncher.hgl)$ match:title negative:(Heroic Games Launcher), float on +windowrule = match:class ^([Ss]team)$ match:title negative:^([Ss]team)$, float on +windowrule = match:class ([Tt]hunar) match:title negative:(.*[Tt]hunar.*), float on + +windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on + +windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on + +windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6) + +windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12) + +# YAD dialog for wallpaper confirmation +windowrule = match:class ^(yad)$ match:title ^(YAD)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2) # 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: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:class ^(seahorse)$, opacity 0.9 0.8 windowrule = match:title ^(Picture-in-Picture)$, opacity 0.95 0.75 # 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)$ +windowrule = match:tag KooL_Cheat, size (monitor_w*0.65) (monitor_h*0.9) +windowrule = match:tag wallpaper, size (monitor_w*0.7) (monitor_h*0.7) +windowrule = match:tag settings, size (monitor_w*0.7) (monitor_h*0.7) +windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, size (monitor_w*0.6) (monitor_h*0.7) +windowrule = match:class ^([Ff]erdium)$, size (monitor_w*0.6) (monitor_h*0.7) # PINNING -windowrule = match:title ^(Picture-in-Picture)$, pin -#windowrule = pin,title:^(Firefox)$ - -# windowrule - extras -windowrule = match:title ^(Picture-in-Picture)$, keepaspectratio +windowrule = match:title ^(Picture-in-Picture)$, pin on, keep_aspect_ratio on # 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 +windowrule = match:tag games, no_blur on, fullscreen 0 +windowrule = match:tag games, fullscreen 0 -#windowrule = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1 -#windowrule = bordercolor rgb(282737) rgb(1E1D2D), floating:1 -#windowrule = opacity 0.8 0.8, pinned:1 +# 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-*), no_initial_focus on +windowrule = match:title ^(wind.*)$, no_initial_focus on # 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, -#layerrule = ignorezero, overview -#layerrule = blur, overview +layerrule = match:namespace rofi, blur on +layerrule = match:namespace notifications, blur on +layerrule = match:namespace quickshell:overview, blur on +layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 -- cgit v1.2.3 From 330a934953fb79c56c60e2520210f8686b4c5459 Mon Sep 17 00:00:00 2001 From: brockar Date: Tue, 30 Dec 2025 18:41:59 -0300 Subject: fix: opaque toggle fis this: https://github.com/JaKooLit/Arch-Hyprland/issues/352 --- config/hypr/configs/Keybinds.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index ddc516bc..43bd1e94 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -58,7 +58,7 @@ 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 CTRL, O, toggle active window opacity, 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 -- cgit v1.2.3 From d05f22e5f4e92827ea69911cdd3dfc83c64c655c Mon Sep 17 00:00:00 2001 From: JaΓ«l Champagne Gareau Date: Tue, 30 Dec 2025 22:06:25 -0500 Subject: fix: respect XDG dir instead of forcing ~/Pictures (#899) * fix: respect XDG dir instead of forcing ~/Pictures * fix: make xdg-user-dir usage more robust --------- Co-authored-by: Donald Williams <129223418+dwilliam62@users.noreply.github.com> --- config/hypr/UserScripts/WallpaperRandom.sh | 5 +++-- config/hypr/UserScripts/WallpaperSelect.sh | 3 ++- config/hypr/configs/Startup_Apps.conf | 4 ++-- config/hypr/scripts/DarkLight.sh | 3 ++- config/hypr/scripts/ScreenShot.sh | 3 ++- config/hypr/scripts/sddm_wallpaper.sh | 3 ++- config/swappy/config | 2 +- copy.sh | 11 ++++++----- 8 files changed, 20 insertions(+), 14 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/UserScripts/WallpaperRandom.sh b/config/hypr/UserScripts/WallpaperRandom.sh index 654d4bd3..8dd680d5 100755 --- a/config/hypr/UserScripts/WallpaperRandom.sh +++ b/config/hypr/UserScripts/WallpaperRandom.sh @@ -2,12 +2,13 @@ # /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ ## # Script for Random Wallpaper ( CTRL ALT W) -wallDIR="$HOME/Pictures/wallpapers" +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +wallDIR="$PICTURES_DIR/wallpapers" SCRIPTSDIR="$HOME/.config/hypr/scripts" focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') -PICS=($(find -L ${wallDIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \))) +PICS=($(find -L "${wallDIR}" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \))) RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]} diff --git a/config/hypr/UserScripts/WallpaperSelect.sh b/config/hypr/UserScripts/WallpaperSelect.sh index 0029d3e5..3fd3b858 100755 --- a/config/hypr/UserScripts/WallpaperSelect.sh +++ b/config/hypr/UserScripts/WallpaperSelect.sh @@ -4,7 +4,8 @@ # WALLPAPERS PATH terminal=kitty -wallDIR="$HOME/Pictures/wallpapers" +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +wallDIR="$PICTURES_DIR/wallpapers" SCRIPTSDIR="$HOME/.config/hypr/scripts" wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf index 27c8d26a..550c79d4 100644 --- a/config/hypr/configs/Startup_Apps.conf +++ b/config/hypr/configs/Startup_Apps.conf @@ -4,7 +4,7 @@ $scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts -$wallDIR=$HOME/Pictures/wallpapers +$wallDIR = $HOME/Pictures/wallpapers # change path manually here if needed $lock = $scriptsDir/LockScreen.sh $SwwwRandom = $UserScripts/WallpaperAutoChange.sh $livewallpaper="" @@ -53,7 +53,7 @@ exec-once = $scriptsDir/Hyprsunset.sh init # Here are list of features available but disabled by default # Persistent wallpaper -# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png +# exec-once = swww-daemon --format xrgb && swww img $wallDIR/mecha-nostalgia.png # Gnome polkit for NixOS #exec-once = $scriptsDir/Polkit-NixOS.sh diff --git a/config/hypr/scripts/DarkLight.sh b/config/hypr/scripts/DarkLight.sh index e473efb2..a225c7bc 100755 --- a/config/hypr/scripts/DarkLight.sh +++ b/config/hypr/scripts/DarkLight.sh @@ -4,7 +4,8 @@ # Note: Scripts are looking for keywords Light or Dark except for wallpapers as the are in a separate directories # Paths -wallpaper_base_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers" +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +wallpaper_base_path="$PICTURES_DIR/wallpapers/Dynamic-Wallpapers" dark_wallpapers="$wallpaper_base_path/Dark" light_wallpapers="$wallpaper_base_path/Light" hypr_config_path="$HOME/.config/hypr" diff --git a/config/hypr/scripts/ScreenShot.sh b/config/hypr/scripts/ScreenShot.sh index 0ef70964..3d578a51 100755 --- a/config/hypr/scripts/ScreenShot.sh +++ b/config/hypr/scripts/ScreenShot.sh @@ -4,7 +4,8 @@ # variables time=$(date "+%d-%b_%H-%M-%S") -dir="$(xdg-user-dir PICTURES)/Screenshots" +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +dir="$PICTURES_DIR/Screenshots" file="Screenshot_${time}_${RANDOM}.png" iDIR="$HOME/.config/swaync/icons" diff --git a/config/hypr/scripts/sddm_wallpaper.sh b/config/hypr/scripts/sddm_wallpaper.sh index 9dca2f72..5ebab44c 100755 --- a/config/hypr/scripts/sddm_wallpaper.sh +++ b/config/hypr/scripts/sddm_wallpaper.sh @@ -6,7 +6,8 @@ # variables terminal=kitty -wallDIR="$HOME/Pictures/wallpapers" +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +wallDIR="$PICTURES_DIR/wallpapers" SCRIPTSDIR="$HOME/.config/hypr/scripts" wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" wallpaper_modified="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified" diff --git a/config/swappy/config b/config/swappy/config index 45d84e49..ea04ccc2 100644 --- a/config/swappy/config +++ b/config/swappy/config @@ -1,5 +1,5 @@ [Default] -save_dir=$HOME/Pictures/Screenshots +save_dir=$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")/Screenshots save_filename_format=swappy-%Y%m%d-%H%M%S.png show_pannel=false line_size=5 diff --git a/copy.sh b/copy.sh index 5b3d17cd..e925a698 100755 --- a/copy.sh +++ b/copy.sh @@ -1087,8 +1087,9 @@ fi printf "\n%.0s" {1..1} # wallpaper stuff -mkdir -p $HOME/Pictures/wallpapers -if cp -r wallpapers $HOME/Pictures/; then +PICTURES_DIR="$(xdg-user-dir PICTURES 2>/dev/null || echo "$HOME/Pictures")" +mkdir -p "$PICTURES_DIR/wallpapers" +if cp -r wallpapers "$PICTURES_DIR/"; then echo "${OK} Some ${MAGENTA}wallpapers${RESET} copied successfully!" | tee -a "$LOG" else echo "${ERROR} Failed to copy some ${YELLOW}wallpapers${RESET}" | tee -a "$LOG" @@ -1168,12 +1169,12 @@ while true; do echo "${OK} Wallpapers downloaded successfully." 2>&1 | tee -a "$LOG" # Check if wallpapers directory exists and create it if not - if [ ! -d "$HOME/Pictures/wallpapers" ]; then - mkdir -p "$HOME/Pictures/wallpapers" + if [ ! -d "$PICTURES_DIR/wallpapers" ]; then + mkdir -p "$PICTURES_DIR/wallpapers" echo "${OK} Created wallpapers directory." 2>&1 | tee -a "$LOG" fi - if cp -R Wallpaper-Bank/wallpapers/* "$HOME/Pictures/wallpapers/" >>"$LOG" 2>&1; then + if cp -R Wallpaper-Bank/wallpapers/* "$PICTURES_DIR/wallpapers/" >>"$LOG" 2>&1; then echo "${OK} Wallpapers copied successfully." 2>&1 | tee -a "$LOG" rm -rf Wallpaper-Bank 2>&1 # Remove cloned repository after copying wallpapers break -- cgit v1.2.3 From 54541e18dacb042c103540eaa4cb4477e05c85ff Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 30 Dec 2025 23:52:35 -0500 Subject: Fixed rule for gnome calculator, yad now centers Yad still not following the size settings but at least it's now floating and centered On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/WindowRules-config-v3.conf --- config/hypr/configs/WindowRules-config-v3.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index ba179461..a4da3694 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -115,7 +115,7 @@ windowrule = match:tag settings, float on windowrule = match:tag viewer, float on windowrule = match:tag KooL-Settings, float on windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on -windowrule = match:class (org.gnome.Calculator) match:title (Calculator), float on +windowrule = match:class (org.gnome.Calculator), float on windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on windowrule = match:class ^([Qq]alculate-gtk)$, float on windowrule = match:class ^([Ff]erdium)$, float on @@ -137,7 +137,7 @@ windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (m windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12) # YAD dialog for wallpaper confirmation -windowrule = match:class ^(yad)$ match:title ^(YAD)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2) +windowrule = match:class ^(yad)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2) # END of float popups and dialogue ####### # OPACITY -- cgit v1.2.3 From 4c5d85bc769b53dd019c4d671fe42e9b3de7cd53 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 31 Dec 2025 00:11:29 -0500 Subject: Fixed yad windowsize, was overridden by settings rule On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/WindowRules-config-v3.conf --- config/hypr/configs/WindowRules-config-v3.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index a4da3694..d0200ad4 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -79,7 +79,7 @@ windowrule = match:title (Kvantum Manager), tag +settings windowrule = match:class ^(file-roller|org.gnome.FileRoller)$, 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 ^(qt5ct|qt6ct)$, 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 -- cgit v1.2.3 From 991f30d07ffbdeef8498ca45cf85284b2e85280e Mon Sep 17 00:00:00 2001 From: kayprish <86522033+kayprish@users.noreply.github.com> Date: Thu, 1 Jan 2026 03:10:40 +0100 Subject: Modify SwitchKeyboardLayout.sh to not require .cache/kb_layout (#901) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Modify SwitchKeyboardLayout.sh to not require .cache/kb_layout The bulk of the SwitchKeyboardLayout.sh script has been renamed to KeyboardLayout.sh, meanwhile its behavior has been changed. Instead of relying on the file .cache/kb_layout, to check the current keyboard layout, as well as to toggle it, it now uses hyprctl to query this information, while making sure that it checks the first non-ignored keyboard. In this way, it querys from keyboards which it's also in charge of modifying. The logic from the script is also repurposed in waybar, just for viewing, so the script was renamed. * Implement fixes for KeyboardLayout.sh changes * Remove SwitchKeyboardLayout call from initial-boot.sh --------- Co-authored-by: Petar KapriΕ‘ Co-authored-by: Donald Williams <129223418+dwilliam62@users.noreply.github.com> --- config/hypr/configs/Keybinds.conf | 2 +- config/hypr/initial-boot.sh | 3 - config/hypr/scripts/KeyboardLayout.sh | 119 ++++++++++++++++++++++++++++ config/hypr/scripts/SwitchKeyboardLayout.sh | 103 ------------------------ config/waybar/ModulesCustom | 4 +- 5 files changed, 122 insertions(+), 109 deletions(-) create mode 100755 config/hypr/scripts/KeyboardLayout.sh delete mode 100755 config/hypr/scripts/SwitchKeyboardLayout.sh (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index 43bd1e94..91eb66e2 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -62,7 +62,7 @@ bindd = $mainMod CTRL, O, toggle active window opacity, setprop, active opaque t 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 = ALT_L, SHIFT_L, switch keyboard layout globally, exec, $scriptsDir/KeyboardLayout.sh switch 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 diff --git a/config/hypr/initial-boot.sh b/config/hypr/initial-boot.sh index 1313f104..eeabdef5 100755 --- a/config/hypr/initial-boot.sh +++ b/config/hypr/initial-boot.sh @@ -49,9 +49,6 @@ if [ ! -f "$HOME/.config/hypr/.initial_startup_done" ]; then # initiate kvantum theme kvantummanager --set "$kvantum_theme" > /dev/null 2>&1 & - # initiate the kb_layout (for some reason) waybar cant launch it - "$scriptsDir/SwitchKeyboardLayout.sh" > /dev/null 2>&1 & - # waybar style #if [ -L "$HOME/.config/waybar/config" ]; then ## ln -sf "$waybar_style" "$HOME/.config/waybar/style.css" diff --git a/config/hypr/scripts/KeyboardLayout.sh b/config/hypr/scripts/KeyboardLayout.sh new file mode 100755 index 00000000..ec280826 --- /dev/null +++ b/config/hypr/scripts/KeyboardLayout.sh @@ -0,0 +1,119 @@ +#!/usr/bin/env bash +# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ ## +# This is for changing kb_layouts. Set kb_layouts in "$HOME/.config/hypr/UserConfigs/UserSettings.conf" + +notif_icon="$HOME/.config/swaync/images/ja.png" +SCRIPTSDIR="$HOME/.config/hypr/scripts" + +# Refined ignore list with patterns or specific device names +ignore_patterns=( + "--(avrcp)" + "Bluetooth Speaker" + "Other Device + Name" +) + +# Function to get keyboard names +get_keyboard_names() { + hyprctl devices -j | jq -r '.keyboards[].name' +} + +# Function to check if a device matches any ignore pattern +is_ignored() { + local device_name=$1 + for pattern in "${ignore_patterns[@]}"; do + if [[ "$device_name" == *"$pattern"* ]]; then + return 0 # Device matches ignore pattern + fi + done + return 1 # Device does not match any ignore pattern +} + +# Function to get current layout info +# Stores values in layout_mapping, variant_mapping and layout_index +get_current_layout_info() { + local found_kb=false + + # Read from the first non-ignored layout + while read -r name; do + if ! is_ignored "$name"; then + found_kb=true + local layout_mapping_str=$(hyprctl devices -j | + jq -r --arg name "$name" '.keyboards[] | select(.name==$name).layout') + IFS="," read -r -a layout_mapping <<<"$layout_mapping_str" + + local variant_mapping_str=$(hyprctl devices -j | + jq -r --arg name "$name" '.keyboards[] | select(.name==$name).variant') + IFS="," read -r -a variant_mapping <<<"$variant_mapping_str" + + layout_index=$(hyprctl devices -j | + jq -r --arg name "$name" '.keyboards[] | select(.name==$name).active_layout_index') + break + fi + done <<< "$(get_keyboard_names)" + + $found_kb && return 0 + return 1 +} + +# Function to change keyboard layout +change_layout() { + local error_found=false + + while read -r name; do + if is_ignored "$name"; then + echo "Skipping ignored device: $name" + continue + fi + + echo "Switching layout for $name to $new_layout..." + hyprctl switchxkblayout "$name" "$next_index" + if [ $? -ne 0 ]; then + echo "Error while switching layout for $name." >&2 + error_found=true + fi + done <<<"$(get_keyboard_names)" + + $error_found && return 1 + return 0 +} + + +# Stores values in layout_mapping, variant_mapping and layout_index +if ! get_current_layout_info; then + echo "Could not get current layout information." >&2 + echo "There might not be any keyboards available, \ + or some were unnecessarily set as ignored." >&2 + notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed" + echo "Exiting $0 $@" >&2 + exit 1 +fi + +current_layout=${layout_mapping[$layout_index]} +current_variant=${variant_mapping[$layout_index]} + +if [[ "$1" == "status" ]]; then + echo "$current_layout${current_variant:+($current_variant)}" +elif [[ "$1" == "switch" ]]; then + echo "Current layout: $current_layout($current_variant)" + + layout_count=${#layout_mapping[@]} + echo "Number of layouts: $layout_count" + + next_index=$(( (layout_index + 1) % layout_count )) + new_layout="${layout_mapping[$next_index]}" + new_variant="${variant_mapping[$next_index]}" + echo "Next layout: $new_layout" + + # Execute layout change and notify + if ! change_layout; then + notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed" + echo "Layout change failed." >&2 + exit 1 + else + notify-send -u low -i "$notif_icon" " kb_layout: $new_layout${new_variant:+($new_variant)}" + echo "Layout change notification sent." + fi +else + echo "Usage: $0 {status|switch}" +fi diff --git a/config/hypr/scripts/SwitchKeyboardLayout.sh b/config/hypr/scripts/SwitchKeyboardLayout.sh deleted file mode 100755 index 34d008a1..00000000 --- a/config/hypr/scripts/SwitchKeyboardLayout.sh +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env bash -# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ ## -# This is for changing kb_layouts. Set kb_layouts in $settings_file - -layout_file="$HOME/.cache/kb_layout" -settings_file="$HOME/.config/hypr/configs/SystemSettings.conf" -notif_icon="$HOME/.config/swaync/images/ja.png" - -# Refined ignore list with patterns or specific device names -ignore_patterns=( - "--(avrcp)" - "Bluetooth Speaker" - "Other Device - Name" -) - -# Create layout file with default layout if it does not exist -if [ ! -f "$layout_file" ]; then - echo "Creating layout file..." - default_layout=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2 | tr -d '[:space:]' | cut -d ',' -f 1 2>/dev/null) - default_layout=${default_layout:-"us"} # Default to 'us' layout - echo "$default_layout" >"$layout_file" - echo "Default layout set to $default_layout" -fi - -current_layout=$(cat "$layout_file") -echo "Current layout: $current_layout" - -# Read available layouts from settings file -if [ -f "$settings_file" ]; then - kb_layout_line=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2) - # Remove leading and trailing spaces around each layout - kb_layout_line=$(echo "$kb_layout_line" | tr -d '[:space:]') - IFS=',' read -r -a layout_mapping <<<"$kb_layout_line" -else - echo "Settings file not found!" - exit 1 -fi - -layout_count=${#layout_mapping[@]} -echo "Number of layouts: $layout_count" - -# Find current layout index and calculate next layout -for ((i = 0; i < layout_count; i++)); do - if [ "$current_layout" == "${layout_mapping[i]}" ]; then - current_index=$i - break - fi -done - -next_index=$(((current_index + 1) % layout_count)) -new_layout="${layout_mapping[next_index]}" -echo "Next layout: $new_layout" - -# Function to get keyboard names -get_keyboard_names() { - hyprctl devices -j | jq -r '.keyboards[].name' -} - -# Function to check if a device matches any ignore pattern -is_ignored() { - local device_name=$1 - for pattern in "${ignore_patterns[@]}"; do - if [[ "$device_name" == *"$pattern"* ]]; then - return 0 # Device matches ignore pattern - fi - done - return 1 # Device does not match any ignore pattern -} - -# Function to change keyboard layout -change_layout() { - local error_found=false - - while read -r name; do - if is_ignored "$name"; then - echo "Skipping ignored device: $name" - continue - fi - - echo "Switching layout for $name to $new_layout..." - hyprctl switchxkblayout "$name" "$next_index" - if [ $? -ne 0 ]; then - echo "Error while switching layout for $name." >&2 - error_found=true - fi - done <<<"$(get_keyboard_names)" - - $error_found && return 1 - return 0 -} - -# Execute layout change and notify -if ! change_layout; then - notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed" - echo "Layout change failed." >&2 - exit 1 -else - notify-send -u low -i "$notif_icon" " kb_layout: $new_layout" - echo "Layout change notification sent." -fi - -echo "$new_layout" >"$layout_file" diff --git a/config/waybar/ModulesCustom b/config/waybar/ModulesCustom index f4c871f7..cb390c0f 100644 --- a/config/waybar/ModulesCustom +++ b/config/waybar/ModulesCustom @@ -90,10 +90,10 @@ }, "custom/keyboard": { - "exec": "cat $HOME/.cache/kb_layout", + "exec": "$HOME/.config/hypr/scripts/KeyboardLayout.sh status", "interval": 1, "format": "ο„œ {}", - "on-click": "$HOME/.config/hypr/scripts/SwitchKeyboardLayout.sh", + "on-click": "$HOME/.config/hypr/scripts/KeyboardLayout.sh switch", }, "custom/light_dark": { -- cgit v1.2.3 From 63f6b0c8aa02939646229900be84fe38d7aabbcc Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 31 Dec 2025 23:42:02 -0500 Subject: Added sample rules to start apps on specific workspaces They are commented out for now When they were active by default it caused new user confusion and many support requests On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/WindowRules-config-v3.conf --- CHANGELOG.md | 2 ++ config/hypr/configs/WindowRules-config-v3.conf | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'config/hypr/configs') diff --git a/CHANGELOG.md b/CHANGELOG.md index 27f07cf0..bd80cac8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ - Thank you Lumethra - Added netowrk check to `WeatherWrap` script - Thank you Maximilian Zhu + - Added sample workspace rules to start apps on specific workspaces + - They are commented out but serve as references - 2025-12-29 - Fixed pathing in Wallust script diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index d0200ad4..62c7afdf 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -5,6 +5,25 @@ # NOTES: This is only for Hyprland > 0.52.1 # note for ja: This should NOT be implemented on Debian and Ubuntu +# Some samples on hwo to start apps on specific workspaces + +# windowrule move to workspace +#windowrule = workspace 1, match:tag email* +#windowrule = workspace 2, match:tag browser* +#windowrule = workspace 3, match:class ^([Tt]hunar)$ +#windowrule = workspace 3, match:tag projects* +#windowrule = workspace 5, match:tag gamestore* +#windowrule = workspace 7, match:tag im* +#windowrule = workspace 8, match:tag games* + +#windowrule move to workspace (silent) +#windowrule = workspace 4 silent, match:tag screenshare* +#windowrule = workspace 6 silent, match:class ^(virt-manager)$ +#windowrule = workspace 6 silent, match:class ^(.virt-manager-wrapped)$ +#windowrule = workspace 9 silent, match:tag multimedia* + + + # 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 -- cgit v1.2.3 From 1764376bf795f0f47de4f3a5690a39a7fbfcb0da Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 31 Dec 2025 23:53:20 -0500 Subject: Added rules to inhibit screensaver when apps fullscreen On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: WindowRules-config-v3.conf --- config/hypr/configs/WindowRules-config-v3.conf | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index 62c7afdf..f2c96256 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -126,6 +126,11 @@ windowrule = match:title ^(Picture-in-Picture)$, move 72% 7% # windowrule to avoid idle for fullscreen apps windowrule = match:fullscreen true, idle_inhibit fullscreen +windowrule = idle_inhibit fullscreen, match:fullscreen 1 +windowrule = idle_inhibit fullscreen, match:class ^(*)$ +windowrule = idle_inhibit fullscreen, match:title ^(*)$ + + # FLOAT windowrule = match:tag KooL_Cheat, float on -- cgit v1.2.3 From ed13a23db110ecea04e00cdfb985789461f7a9a1 Mon Sep 17 00:00:00 2001 From: brockar Date: Sat, 3 Jan 2026 17:57:03 -0300 Subject: style(hypr): remove redundant blank lines in windowrules --- config/hypr/configs/WindowRules-config-v3.conf | 14 ++------------ config/hypr/configs/WindowRules.conf | 4 +--- 2 files changed, 3 insertions(+), 15 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index f2c96256..8f639c5d 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -2,11 +2,9 @@ # Vendor defaults 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 for ja: This should NOT be implemented on Debian and Ubuntu - -# Some samples on hwo to start apps on specific workspaces +# NOTES: This is only for Hyprland > 0.53 +# Some samples on how to start apps on specific workspaces # windowrule move to workspace #windowrule = workspace 1, match:tag email* #windowrule = workspace 2, match:tag browser* @@ -22,8 +20,6 @@ #windowrule = workspace 6 silent, match:class ^(.virt-manager-wrapped)$ #windowrule = workspace 9 silent, match:tag multimedia* - - # 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 @@ -130,8 +126,6 @@ windowrule = idle_inhibit fullscreen, match:fullscreen 1 windowrule = idle_inhibit fullscreen, match:class ^(*)$ windowrule = idle_inhibit fullscreen, match:title ^(*)$ - - # FLOAT windowrule = match:tag KooL_Cheat, float on windowrule = match:tag wallpaper, float on @@ -151,13 +145,9 @@ windowrule = match:class (codium|codium-url-handler|VSCodium) match:title negati windowrule = match:class ^(com.heroicgameslauncher.hgl)$ match:title negative:(Heroic Games Launcher), float on windowrule = match:class ^([Ss]team)$ match:title negative:^([Ss]team)$, float on windowrule = match:class ([Tt]hunar) match:title negative:(.*[Tt]hunar.*), float on - windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on - windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on - windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6) - windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12) # YAD dialog for wallpaper confirmation diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf index d1fb9315..8a5f99c7 100644 --- a/config/hypr/configs/WindowRules.conf +++ b/config/hypr/configs/WindowRules.conf @@ -4,8 +4,6 @@ # 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)$ @@ -228,4 +226,4 @@ layerrule = ignorealpha 0.5, quickshell:overview #layerrule = ignorezero, #layerrule = ignorezero, overview -#layerrule = blur, overview \ No newline at end of file +#layerrule = blur, overview -- cgit v1.2.3 From e504f6c1c50bd2037bea9b3b48e2e0b06b304c34 Mon Sep 17 00:00:00 2001 From: Ahum Maitra Date: Sun, 4 Jan 2026 03:53:41 +0530 Subject: feat: Add Wallust based global Theme Switcher (#905) * fix: Add Theme Switcher script * feat: Add theme switcher shortcut * enhancement: simplify the program, fix spelling mistakes, add safety mechanism --- config/hypr/configs/Keybinds.conf | 7 ++++--- config/hypr/scripts/ThemeChanger.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 config/hypr/scripts/ThemeChanger.sh (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index 91eb66e2..dea22719 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -23,6 +23,7 @@ bindd = $mainMod, Return, Open terminal, exec, $term bindd = $mainMod, E, file manager, exec, $files # FEATURES / EXTRAS +bindd = $mainMod, T, Global theme switcher using Wallust, exec, $scriptsDir/ThemeChanger.sh #Global theme switcher 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 @@ -43,7 +44,7 @@ bindd = $mainMod SHIFT, Return, DropDown terminal, exec, $scriptsDir/Droptermina # 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}')" +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 @@ -164,7 +165,7 @@ bindd = $mainMod CTRL, K, Move left into group, moveintogroup, l # Move active w bindd = $mainMod CTRL, L, Move Right into group, moveintogroup, r # Move active window right into a group bindd = $mainMod CTRL, H, Move active out of group, moveoutofgroup # Move active window out of group -# Try to dynamically move in grouped window and when ungrouped +# Try to dynamically move in grouped window and when ungrouped # Not working for me DW 11/26/25 PR: https://github.com/JaKooLit/Hyprland-Dots/pull/872 #bindd = $mainMod, right, focus right, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[-1] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus r; else hyprctl dispatch changegroupactive f; fi' #bindd = $mainMod, left, focus left, exec, bash -c 'if hyprctl activewindow -j | jq -e "((.grouped | type) == \"boolean\") or (.address == (.grouped[0] // empty))" >/dev/null 2>&1; then hyprctl dispatch movefocus l; else hyprctl dispatch changegroupactive b; fi' @@ -185,7 +186,7 @@ bindd = $mainMod, U, toggle special workspace, togglespecialworkspace, # The following mappings use the key codes to better support various keyboard layouts # 1 is code:10, 2 is code 11, etc -# Switch workspaces with mainMod + [0-9] +# Switch workspaces with mainMod + [0-9] bindd = $mainMod, code:10, workspace 1, workspace, 1 # NOTE: code:10 = key 1 bindd = $mainMod, code:11, workspace 2, workspace, 2 # NOTE: code:11 = key 2 bindd = $mainMod, code:12, workspace 3, workspace, 3 # NOTE: code:12 = key 3 diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh new file mode 100644 index 00000000..15534258 --- /dev/null +++ b/config/hypr/scripts/ThemeChanger.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# SPDX-FileCopyrightText: 2025-present Ahum Maitra theahummaitra@gmail.com +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Repository url : https://github.com/TheAhumMaitra/cautious-waddle + +# User choice +choice=$(wallust theme list \ + | sed '1d' \ + | sed 's/^- //' \ + | rofi -dmenu -p "Select Global Theme") + +# If user requested to exit, then exit +[[ -z "$choice" ]] && exit 0 + +# Apply the theme +wallust theme "$choice" + +# Inform user about theme changed +notify-send "Global theme changed" "Global Theme selected $choice" + +# Give warning to user for Waybar theme refresh +notify-send "Press SUPER+ALT+R to Refresh Waybar Theme" -- cgit v1.2.3 From 3ca6417a0a4636f2a8721d635a9958247911f2b0 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 4 Jan 2026 01:52:25 -0500 Subject: Added rule for modal and fixed alt-tab for max'd windows On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/SystemSettings.conf modified: config/hypr/configs/WindowRules-config-v3.conf --- CHANGELOG.md | 14 ++++++++++++++ config/hypr/configs/SystemSettings.conf | 4 ++++ config/hypr/configs/WindowRules-config-v3.conf | 3 +++ 3 files changed, 21 insertions(+) (limited to 'config/hypr/configs') diff --git a/CHANGELOG.md b/CHANGELOG.md index 22a25f75..43cc9856 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ ## v2.3.19 +- 2026-01-04 +- Fullscreen or maxixmized would exit using `ALT-TAB` (cycle next/bring-to-front) + - User `GoodBorn` found this fix + ``` + misc { + on_focus_under_fullscreen = 1 + # 0 - Default, no change + # 1 - New focused window takes over fullscreen (Windows-like Alt-Tab) + # 2 - New focused window stays behind the fullscreen one + } + ``` +- Added: modal rule so popup diaglog, like `Save as` or `Open File` center and float by default + - `windowrule = float on, center on, match:modal:1` + - 2026-01-01 - Added more blur and enabled xray - Thank you [TheAhumMaitra](https://github.com/TheAhumMaitra) diff --git a/config/hypr/configs/SystemSettings.conf b/config/hypr/configs/SystemSettings.conf index 44521156..af8fe7a6 100644 --- a/config/hypr/configs/SystemSettings.conf +++ b/config/hypr/configs/SystemSettings.conf @@ -93,6 +93,10 @@ misc { 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 + on_focus_under_fullscreen = 1 + # 0 - Default, no change + # 1 - New focused window takes over fullscreen (Windows-like Alt-Tab) + # 2 - New focused window stays behind the fullscreen one } #opengl { diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index 8f639c5d..d9d180d2 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -139,6 +139,9 @@ windowrule = match:class ^([Qq]alculate-gtk)$, float on windowrule = match:class ^([Ff]erdium)$, float on windowrule = match:title ^(Picture-in-Picture)$, float on +# Float and center dialog boxes by default +windowrule = float on, center on, match:modal:1 + # windowrule - ######### float popups and dialogue ####### windowrule = match:title ^(Authentication Required)$, float on, center on windowrule = match:class (codium|codium-url-handler|VSCodium) match:title negative:(.*codium.*|.*VSCodium.*), float on -- cgit v1.2.3 From e2cce1cd10b93ba39cc5d243b7caf4aee6c8e7a4 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 4 Jan 2026 02:15:53 -0500 Subject: Fixed modal floating/center rule --- config/hypr/configs/WindowRules-config-v3.conf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index d9d180d2..a81cc20d 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -140,7 +140,9 @@ windowrule = match:class ^([Ff]erdium)$, float on windowrule = match:title ^(Picture-in-Picture)$, float on # Float and center dialog boxes by default -windowrule = float on, center on, match:modal:1 +rule = float(true), match:modal:1 +rule = center(true), match:modal:1 + # windowrule - ######### float popups and dialogue ####### windowrule = match:title ^(Authentication Required)$, float on, center on -- cgit v1.2.3 From 4845eacf3e6aa3f88ff284a2505d1efbd5fe6417 Mon Sep 17 00:00:00 2001 From: brockar Date: Mon, 5 Jan 2026 17:23:38 -0300 Subject: feat(hypr): update window rules for zed, antigravity, and qalculate --- config/hypr/configs/WindowRules-config-v3.conf | 78 +++++++++++++------------- 1 file changed, 40 insertions(+), 38 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index a81cc20d..a09501ed 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -2,25 +2,22 @@ # Vendor defaults for window rules and layerrules # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -# NOTES: This is only for Hyprland > 0.53 - -# Some samples on how to start apps on specific workspaces -# windowrule move to workspace -#windowrule = workspace 1, match:tag email* -#windowrule = workspace 2, match:tag browser* -#windowrule = workspace 3, match:class ^([Tt]hunar)$ -#windowrule = workspace 3, match:tag projects* -#windowrule = workspace 5, match:tag gamestore* -#windowrule = workspace 7, match:tag im* -#windowrule = workspace 8, match:tag games* - -#windowrule move to workspace (silent) -#windowrule = workspace 4 silent, match:tag screenshare* -#windowrule = workspace 6 silent, match:class ^(virt-manager)$ -#windowrule = workspace 6 silent, match:class ^(.virt-manager-wrapped)$ -#windowrule = workspace 9 silent, match:tag multimedia* - -# windowrule - tags - add apps under appropriate tag to use the same settings +# NOTES: This is only for Hyprland >= 0.53 + +# Some samples on hwo to start apps on specific workspaces +# windowrule = match:tag email*, workspace 1 +# windowrule = match:tag browser*, workspace 2 +# windowrule = match:tag projects*, workspace 3 +# windowrule = match:tag screenshare*, workspace 4 silent +# windowrule = match:tag gamestore*, workspace 5 +# windowrule = match:class ^(virt-manager)$, workspace 6 silent +# windowrule = match:class ^(.virt-manager-wrapped)$, workspace 6 silent +# windowrule = match:tag im*, workspace 7 +# windowrule = match:class obsidian, workspace 8 +# windowrule = match:tag games*, workspace 8 +# windowrule = match:tag multimedia*, workspace 9 silent + +# 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 @@ -29,7 +26,7 @@ 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 ^(zen)$, tag +browser # notif tags windowrule = match:class ^(swaync-control-center|swaync-notification-window|swaync-client|class)$, tag +notif @@ -50,6 +47,7 @@ windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects windowrule = match:class ^(VSCode|code|code-url-handler)$, tag +projects windowrule = match:class ^(jetbrains-.+)$, tag +projects +windowrule = match:class ^(dev.zed.Zed|antigravity)$, tag +projects # screenshare tags windowrule = match:class ^(com.obsproject.Studio)$, tag +screenshare @@ -107,9 +105,10 @@ windowrule = match:class ^(eog|org.gnome.Loupe)$, tag +viewer # Some special override rules windowrule = match:tag multimedia_video, no_blur on windowrule = match:tag multimedia_video, opacity 1.0 +windowrule = match:tag multimedia, no_blur on +windowrule = match:tag multimedia, opacity 1.0 # POSITION -# windowrule = match:floating true, center on windowrule = match:tag KooL_Cheat, center on windowrule = match:class ([Tt]hunar) match:title negative:(.*[Tt]hunar.*), center on windowrule = match:title ^(ROG Control)$, center on @@ -118,7 +117,6 @@ windowrule = match:title ^(Keybindings)$, center on windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center on windowrule = match:class ^([Ff]erdium)$, center on -windowrule = match:title ^(Picture-in-Picture)$, move 72% 7% # windowrule to avoid idle for fullscreen apps windowrule = match:fullscreen true, idle_inhibit fullscreen @@ -133,18 +131,12 @@ windowrule = match:tag settings, float on windowrule = match:tag viewer, float on windowrule = match:tag KooL-Settings, float on windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on -windowrule = match:class (org.gnome.Calculator), float on +windowrule = match:class (org.gnome.Calculator|qalculate-gtk), float on windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on windowrule = match:class ^([Qq]alculate-gtk)$, float on windowrule = match:class ^([Ff]erdium)$, float on -windowrule = match:title ^(Picture-in-Picture)$, float on -# Float and center dialog boxes by default -rule = float(true), match:modal:1 -rule = center(true), match:modal:1 - - -# windowrule - ######### float popups and dialogue ####### +# popups and dialogue windowrule = match:title ^(Authentication Required)$, float on, center on windowrule = match:class (codium|codium-url-handler|VSCodium) match:title negative:(.*codium.*|.*VSCodium.*), float on windowrule = match:class ^(com.heroicgameslauncher.hgl)$ match:title negative:(Heroic Games Launcher), float on @@ -154,10 +146,7 @@ windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w* windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6) windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12) - -# YAD dialog for wallpaper confirmation windowrule = match:class ^(yad)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2) -# END of float popups and dialogue ####### # OPACITY windowrule = match:tag browser, opacity 0.99 0.8 @@ -172,23 +161,22 @@ 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)$, opacity 0.9 0.8 -windowrule = match:title ^(Picture-in-Picture)$, opacity 0.95 0.75 # SIZE windowrule = match:tag KooL_Cheat, size (monitor_w*0.65) (monitor_h*0.9) windowrule = match:tag wallpaper, size (monitor_w*0.7) (monitor_h*0.7) windowrule = match:tag settings, size (monitor_w*0.7) (monitor_h*0.7) -windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, size (monitor_w*0.6) (monitor_h*0.7) windowrule = match:class ^([Ff]erdium)$, size (monitor_w*0.6) (monitor_h*0.7) +windowrule = match:class (org.gnome.Calculator|qalculate-gtk), center on, size (monitor_w*0.25) (monitor_h*0.3) +windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, size (monitor_w*0.6) (monitor_h*0.5) -# PINNING -windowrule = match:title ^(Picture-in-Picture)$, pin on, keep_aspect_ratio on # BLUR & FULLSCREEN windowrule = match:tag games, no_blur on, fullscreen 0 windowrule = match:tag games, fullscreen 0 -# This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products +# 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-*), no_initial_focus on windowrule = match:title ^(wind.*)$, no_initial_focus on @@ -197,3 +185,17 @@ layerrule = match:namespace rofi, blur on layerrule = match:namespace notifications, blur on layerrule = match:namespace quickshell:overview, blur on layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 + +# Picture-in-Picture +windowrule { + name = Picture-in-Picture + match:title = ^(Picture-in-Picture)$ + float = on + move = 72% 7% + opacity = 0.95 0.75 + pin = on + keep_aspect_ratio = on + size = (monitor_w*0.3) (monitor_h*0.3) +} + + -- cgit v1.2.3 From 304552fdc44350f9eb34e50a26d25ea1ff780b79 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Mon, 5 Jan 2026 15:32:29 -0500 Subject: Fixing rules for zapzap/pip --- config/hypr/configs/WindowRules-config-v3.conf | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index a09501ed..d05416c6 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -17,6 +17,8 @@ # windowrule = match:tag games*, workspace 8 # windowrule = match:tag multimedia*, workspace 9 silent + + # 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 @@ -56,7 +58,6 @@ 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)$, tag +im @@ -115,7 +116,6 @@ windowrule = match:title ^(ROG Control)$, center on windowrule = match:tag KooL-Settings, center on windowrule = match:title ^(Keybindings)$, center on windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on -windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, center on windowrule = match:class ^([Ff]erdium)$, center on # windowrule to avoid idle for fullscreen apps @@ -168,7 +168,6 @@ windowrule = match:tag wallpaper, size (monitor_w*0.7) (monitor_h*0.7) windowrule = match:tag settings, size (monitor_w*0.7) (monitor_h*0.7) windowrule = match:class ^([Ff]erdium)$, size (monitor_w*0.6) (monitor_h*0.7) windowrule = match:class (org.gnome.Calculator|qalculate-gtk), center on, size (monitor_w*0.25) (monitor_h*0.3) -windowrule = match:class ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$, size (monitor_w*0.6) (monitor_h*0.5) # BLUR & FULLSCREEN @@ -186,6 +185,13 @@ layerrule = match:namespace notifications, blur on layerrule = match:namespace quickshell:overview, blur on layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 +# Named rules for special cases +windowrule { + match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ + float = on + size = (monitor_w*0.6) (monitor_h*0.7) + center = on +} # Picture-in-Picture windowrule { name = Picture-in-Picture -- cgit v1.2.3 From 07cbde7bbd7ee858f8325ddd1d64ae5bbc5a34c1 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 6 Jan 2026 04:11:59 -0500 Subject: Fixed rule for whatsapp missing rule name On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: WindowRules-config-v3.conf --- config/hypr/configs/WindowRules-config-v3.conf | 1 + 1 file changed, 1 insertion(+) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index d05416c6..7b772c26 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -187,6 +187,7 @@ layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 # Named rules for special cases windowrule { + name = Whatsapp-zapzap match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ float = on size = (monitor_w*0.6) (monitor_h*0.7) -- cgit v1.2.3 From 32e564b0334d9a5e89b347d93972669d3e93f830 Mon Sep 17 00:00:00 2001 From: brockar Date: Tue, 6 Jan 2026 21:30:29 -0300 Subject: fix: clean hypr/configs/Startup_apps.conf --- config/hypr/configs/Startup_Apps.conf | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf index 550c79d4..2bf902cd 100644 --- a/config/hypr/configs/Startup_Apps.conf +++ b/config/hypr/configs/Startup_Apps.conf @@ -1,34 +1,23 @@ # /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ # # Commands and Apps to be executed at launch (vendor defaults) - $scriptsDir = $HOME/.config/hypr/scripts $UserScripts = $HOME/.config/hypr/UserScripts - -$wallDIR = $HOME/Pictures/wallpapers # change path manually here if needed $lock = $scriptsDir/LockScreen.sh $SwwwRandom = $UserScripts/WallpaperAutoChange.sh $livewallpaper="" +$wallDIR = $HOME/Pictures/wallpapers # change path manually here if needed ### 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 ### exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - -# 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 & - - -# Polkit (Polkit Gnome / KDE) exec-once = $scriptsDir/Polkit.sh - -# starup apps exec-once = nm-applet --indicator exec-once = nm-tray # For ubuntu exec-once = swaync @@ -37,6 +26,8 @@ exec-once = swaync #exec-once = rog-control-center exec-once = waybar exec-once = qs -c overview # Quickshell Overview +exec-once = hypridle +exec-once = $scriptsDir/Hyprsunset.sh init # Clipboard manager exec-once = wl-paste --type text --watch cliphist store @@ -45,11 +36,6 @@ exec-once = wl-paste --type image --watch cliphist store # Rainbow borders exec-once = $UserScripts/RainbowBorders.sh -# 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 # Persistent wallpaper -- cgit v1.2.3 From 2f03d6a418ea5f034fec40ff69e5adddb45f88f2 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 6 Jan 2026 23:08:38 -0500 Subject: Added comment focus_under_window only works in HL 0.53+ This setting resolves ALT+TAB cycle-next/bring-to-front when windows fullscreen or maximized. HL less than 53 will generate an error and that line will have be commented out On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/configs/SystemSettings.conf --- config/hypr/configs/SystemSettings.conf | 1 + 1 file changed, 1 insertion(+) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/SystemSettings.conf b/config/hypr/configs/SystemSettings.conf index af8fe7a6..f49960cd 100644 --- a/config/hypr/configs/SystemSettings.conf +++ b/config/hypr/configs/SystemSettings.conf @@ -93,6 +93,7 @@ misc { 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 + # This only works with HL v0.53+ on_focus_under_fullscreen = 1 # 0 - Default, no change # 1 - New focused window takes over fullscreen (Windows-like Alt-Tab) -- cgit v1.2.3 From 6c22b060a60ef539b856da859375a8279f31c1f2 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 7 Jan 2026 14:02:56 -0500 Subject: Fixed Window Rule for thunar copy progress On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: WindowRules-config-v3.conf --- config/hypr/configs/WindowRules-config-v3.conf | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index 7b772c26..00c98644 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -111,7 +111,6 @@ windowrule = match:tag multimedia, opacity 1.0 # POSITION windowrule = match:tag KooL_Cheat, center on -windowrule = match:class ([Tt]hunar) match:title negative:(.*[Tt]hunar.*), center on windowrule = match:title ^(ROG Control)$, center on windowrule = match:tag KooL-Settings, center on windowrule = match:title ^(Keybindings)$, center on @@ -141,7 +140,6 @@ windowrule = match:title ^(Authentication Required)$, float on, center on windowrule = match:class (codium|codium-url-handler|VSCodium) match:title negative:(.*codium.*|.*VSCodium.*), float on windowrule = match:class ^(com.heroicgameslauncher.hgl)$ match:title negative:(Heroic Games Launcher), float on windowrule = match:class ^([Ss]team)$ match:title negative:^([Ss]team)$, float on -windowrule = match:class ([Tt]hunar) match:title negative:(.*[Tt]hunar.*), float on windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6) @@ -205,4 +203,14 @@ windowrule { size = (monitor_w*0.3) (monitor_h*0.3) } +# Thunar copy progress dialog +windowrule { + name = Thunar-Progress-bar + match:class = ^(thunar)$ + match:title = ^(File Operation Progress)$ + float = on + center = on + size = (monitor_w*0.26) (monitor_h*0.18) +} + -- cgit v1.2.3 From c62fc820dad1321197cc3f9a4dc71361b33357ee Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 22:13:04 -0500 Subject: I updated main branch with 0.53 rules as default now development is same On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/hypr/configs/WindowRules-pre-53.conf modified: config/hypr/configs/WindowRules.conf --- config/hypr/configs/WindowRules-pre-53.conf | 229 +++++++++++++++++++ config/hypr/configs/WindowRules.conf | 339 +++++++++++++--------------- 2 files changed, 392 insertions(+), 176 deletions(-) create mode 100644 config/hypr/configs/WindowRules-pre-53.conf (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-pre-53.conf b/config/hypr/configs/WindowRules-pre-53.conf new file mode 100644 index 00000000..8a5f99c7 --- /dev/null +++ b/config/hypr/configs/WindowRules-pre-53.conf @@ -0,0 +1,229 @@ +# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ # +# Vendor defaults for window rules and layerrules +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# NOTES: This is only for Hyprland > 0.48 + +# 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|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)$ + +# 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.*)$ + +#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, + +#layerrule = ignorezero, overview +#layerrule = blur, overview diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf index 8a5f99c7..00c98644 100644 --- a/config/hypr/configs/WindowRules.conf +++ b/config/hypr/configs/WindowRules.conf @@ -2,228 +2,215 @@ # Vendor defaults for window rules and layerrules # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more -# NOTES: This is only for Hyprland > 0.48 +# NOTES: This is only for Hyprland >= 0.53 -# windowrule - tags - add apps under appropriate tag to use the same settings +# Some samples on hwo to start apps on specific workspaces +# windowrule = match:tag email*, workspace 1 +# windowrule = match:tag browser*, workspace 2 +# windowrule = match:tag projects*, workspace 3 +# windowrule = match:tag screenshare*, workspace 4 silent +# windowrule = match:tag gamestore*, workspace 5 +# windowrule = match:class ^(virt-manager)$, workspace 6 silent +# windowrule = match:class ^(.virt-manager-wrapped)$, workspace 6 silent +# windowrule = match:tag im*, workspace 7 +# windowrule = match:class obsidian, workspace 8 +# windowrule = match:tag games*, workspace 8 +# windowrule = match:tag multimedia*, workspace 9 silent + + + +# 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)$ +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)$, 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)$, tag +browser # notif tags -windowrule = tag +notif, class:^(swaync-control-center|swaync-notification-window|swaync-client|class)$ +windowrule = match:class ^(swaync-control-center|swaync-notification-window|swaync-client|class)$, tag +notif # 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)$ +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 # terminal tags -windowrule = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$ +windowrule = match:class ^(Alacritty|kitty|kitty-dropterm)$, tag +terminal # email tags -windowrule = tag +email, class:^([Tt]hunderbird|org.gnome.Evolution)$ -windowrule = tag +email, class:^(eu.betterbird.Betterbird)$ +windowrule = match:class ^([Tt]hunderbird|org.gnome.Evolution)$, tag +email +windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email # project tags -windowrule = tag +projects, class:^(codium|codium-url-handler|VSCodium)$ -windowrule = tag +projects, class:^(VSCode|code|code-url-handler)$ -windowrule = tag +projects, class:^(jetbrains-.+)$ # JetBrains IDEs +windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects +windowrule = match:class ^(VSCode|code|code-url-handler)$, tag +projects +windowrule = match:class ^(jetbrains-.+)$, tag +projects +windowrule = match:class ^(dev.zed.Zed|antigravity)$, tag +projects # screenshare tags -windowrule = tag +screenshare, class:^(com.obsproject.Studio)$ +windowrule = match:class ^(com.obsproject.Studio)$, tag +screenshare # 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 +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 ^(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)$, tag +im # game tags -windowrule = tag +games, class:^(gamescope)$ -windowrule = tag +games, class:^(steam_app_\d+)$ +windowrule = match:class ^(gamescope)$, tag +games +windowrule = match:class ^(steam_app_\\d+)$, tag +games # gamestore tags -windowrule = tag +gamestore, class:^([Ss]team)$ -windowrule = tag +gamestore, title:^([Ll]utris)$ -windowrule = tag +gamestore, class:^(com.heroicgameslauncher.hgl)$ +windowrule = match:class ^([Ss]team)$, tag +gamestore +windowrule = match:title ^([Ll]utris)$, tag +gamestore +windowrule = match:class ^(com.heroicgameslauncher.hgl)$, tag +gamestore # file-manager tags -windowrule = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$ -windowrule = tag +file-manager, class:^(app.drey.Warp)$ +windowrule = match:class ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$, tag +file-manager +windowrule = match:class ^(app.drey.Warp)$, tag +file-manager # wallpaper tags -windowrule = tag +wallpaper, class:^([Ww]aytrogen)$ +windowrule = match:class ^([Ww]aytrogen)$, tag +wallpaper # multimedia tags -windowrule = tag +multimedia, class:^([Aa]udacious)$ +windowrule = match:class ^([Aa]udacious)$, tag +multimedia # multimedia-video tags -windowrule = tag +multimedia_video, class:^([Mm]pv|vlc)$ +windowrule = match:class ^([Mm]pv|vlc)$, tag +multimedia_video # 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)$ +windowrule = match:title ^(ROG Control)$, tag +settings +windowrule = match:class ^(wihotspot(-gui)?)$, tag +settings +windowrule = match:class ^([Bb]aobab|org.gnome.[Bb]aobab)$, 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)$, 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)$, 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 # 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 +windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$, tag +viewer +windowrule = match:class ^(evince)$, tag +viewer +windowrule = match:class ^(eog|org.gnome.Loupe)$, tag +viewer # Some special override rules -windowrule = noblur, tag:multimedia_video* -windowrule = opacity 1.0, tag:multimedia_video* - +windowrule = match:tag multimedia_video, no_blur on +windowrule = match:tag multimedia_video, opacity 1.0 +windowrule = match:tag multimedia, no_blur on +windowrule = match:tag multimedia, opacity 1.0 + # 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 = match:tag KooL_Cheat, center on +windowrule = match:title ^(ROG Control)$, center on +windowrule = match:tag KooL-Settings, center on +windowrule = match:title ^(Keybindings)$, center on +windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on +windowrule = match:class ^([Ff]erdium)$, center on # 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* -# +windowrule = match:fullscreen true, idle_inhibit fullscreen +windowrule = idle_inhibit fullscreen, match:fullscreen 1 +windowrule = idle_inhibit fullscreen, match:class ^(*)$ +windowrule = idle_inhibit fullscreen, match:title ^(*)$ + # 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 ####### +windowrule = match:tag KooL_Cheat, float on +windowrule = match:tag wallpaper, float on +windowrule = match:tag settings, float on +windowrule = match:tag viewer, float on +windowrule = match:tag KooL-Settings, float on +windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on +windowrule = match:class (org.gnome.Calculator|qalculate-gtk), float on +windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on +windowrule = match:class ^([Qq]alculate-gtk)$, float on +windowrule = match:class ^([Ff]erdium)$, float on + +# popups and dialogue +windowrule = match:title ^(Authentication Required)$, float on, center on +windowrule = match:class (codium|codium-url-handler|VSCodium) match:title negative:(.*codium.*|.*VSCodium.*), float on +windowrule = match:class ^(com.heroicgameslauncher.hgl)$ match:title negative:(Heroic Games Launcher), float on +windowrule = match:class ^([Ss]team)$ match:title negative:^([Ss]team)$, float on +windowrule = match:title ^(Add Folder to Workspace)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on +windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h*0.6), center on +windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6) +windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12) +windowrule = match:class ^(yad)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2) # 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 = 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)$, opacity 0.9 0.8 # 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 = match:tag KooL_Cheat, size (monitor_w*0.65) (monitor_h*0.9) +windowrule = match:tag wallpaper, size (monitor_w*0.7) (monitor_h*0.7) +windowrule = match:tag settings, size (monitor_w*0.7) (monitor_h*0.7) +windowrule = match:class ^([Ff]erdium)$, size (monitor_w*0.6) (monitor_h*0.7) +windowrule = match:class (org.gnome.Calculator|qalculate-gtk), center on, size (monitor_w*0.25) (monitor_h*0.3) -#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* +windowrule = match:tag games, no_blur on, fullscreen 0 +windowrule = match:tag games, fullscreen 0 +# 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-*), no_initial_focus on +windowrule = match:title ^(wind.*)$, no_initial_focus on -#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.*)$ +# LAYER RULES +layerrule = match:namespace rofi, blur on +layerrule = match:namespace notifications, blur on +layerrule = match:namespace quickshell:overview, blur on +layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 + +# Named rules for special cases +windowrule { + name = Whatsapp-zapzap + match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ + float = on + size = (monitor_w*0.6) (monitor_h*0.7) + center = on +} +# Picture-in-Picture +windowrule { + name = Picture-in-Picture + match:title = ^(Picture-in-Picture)$ + float = on + move = 72% 7% + opacity = 0.95 0.75 + pin = on + keep_aspect_ratio = on + size = (monitor_w*0.3) (monitor_h*0.3) +} + +# Thunar copy progress dialog +windowrule { + name = Thunar-Progress-bar + match:class = ^(thunar)$ + match:title = ^(File Operation Progress)$ + float = on + center = on + size = (monitor_w*0.26) (monitor_h*0.18) +} -#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, - -#layerrule = ignorezero, overview -#layerrule = blur, overview -- cgit v1.2.3 From 365e82d2e8782969bc4dc522d4a4e87e65fef0b2 Mon Sep 17 00:00:00 2001 From: brockar Date: Mon, 12 Jan 2026 21:51:48 -0300 Subject: fix: windowrules center for float windows --- config/hypr/configs/WindowRules.conf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf index 00c98644..d37e1636 100644 --- a/config/hypr/configs/WindowRules.conf +++ b/config/hypr/configs/WindowRules.conf @@ -124,11 +124,11 @@ windowrule = idle_inhibit fullscreen, match:class ^(*)$ windowrule = idle_inhibit fullscreen, match:title ^(*)$ # FLOAT -windowrule = match:tag KooL_Cheat, float on -windowrule = match:tag wallpaper, float on -windowrule = match:tag settings, float on -windowrule = match:tag viewer, float on -windowrule = match:tag KooL-Settings, float on +windowrule = match:tag KooL_Cheat, float on, center on +windowrule = match:tag wallpaper, float on, center on +windowrule = match:tag settings, float on, center on +windowrule = match:tag viewer, float on, center on +windowrule = match:tag KooL-Settings, float on, center on windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on windowrule = match:class (org.gnome.Calculator|qalculate-gtk), float on windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on -- cgit v1.2.3 From 39372f3c096ab95cebd2acffec81c55fb6b46851 Mon Sep 17 00:00:00 2001 From: brockar Date: Wed, 14 Jan 2026 15:20:04 -0300 Subject: fix: Email WindowRules --- config/hypr/configs/WindowRules.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf index d37e1636..4f54215d 100644 --- a/config/hypr/configs/WindowRules.conf +++ b/config/hypr/configs/WindowRules.conf @@ -42,8 +42,9 @@ windowrule = match:class ^(nwg-displays|nwg-look)$, tag +KooL-Settings windowrule = match:class ^(Alacritty|kitty|kitty-dropterm)$, tag +terminal # email tags -windowrule = match:class ^([Tt]hunderbird|org.gnome.Evolution)$, tag +email +windowrule = match:class ^([Tt]hunderbird|org.mozilla.Thunderbird)$, tag +email windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email +windowrule = match:class ^(org.gnome.Evolution)$, tag +email # project tags windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects -- cgit v1.2.3 From a4837a1bede62aae3655931d9f69ecafd7acefcf Mon Sep 17 00:00:00 2001 From: brockar Date: Sat, 17 Jan 2026 00:13:48 -0300 Subject: fix: WindowRules settings btrf --- config/hypr/configs/WindowRules.conf | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf index 4f54215d..7fcf6b3b 100644 --- a/config/hypr/configs/WindowRules.conf +++ b/config/hypr/configs/WindowRules.conf @@ -98,6 +98,8 @@ windowrule = match:class ^(qt5ct|qt6ct)$, 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 ^(btrfs-assistant)$, tag +settings +windowrule = match:class ^(timeshift-gtk)$, tag +settings # viewer tags windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$, tag +viewer @@ -112,8 +114,8 @@ windowrule = match:tag multimedia, opacity 1.0 # POSITION windowrule = match:tag KooL_Cheat, center on -windowrule = match:title ^(ROG Control)$, center on windowrule = match:tag KooL-Settings, center on +windowrule = match:title ^(ROG Control)$, center on windowrule = match:title ^(Keybindings)$, center on windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on windowrule = match:class ^([Ff]erdium)$, center on @@ -125,7 +127,7 @@ windowrule = idle_inhibit fullscreen, match:class ^(*)$ windowrule = idle_inhibit fullscreen, match:title ^(*)$ # FLOAT -windowrule = match:tag KooL_Cheat, float on, center on +windowrule = match:tag KooL_Cheat, float on windowrule = match:tag wallpaper, float on, center on windowrule = match:tag settings, float on, center on windowrule = match:tag viewer, float on, center on @@ -188,11 +190,9 @@ layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 windowrule { name = Whatsapp-zapzap match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ - float = on size = (monitor_w*0.6) (monitor_h*0.7) center = on } -# Picture-in-Picture windowrule { name = Picture-in-Picture match:title = ^(Picture-in-Picture)$ @@ -203,7 +203,6 @@ windowrule { keep_aspect_ratio = on size = (monitor_w*0.3) (monitor_h*0.3) } - # Thunar copy progress dialog windowrule { name = Thunar-Progress-bar @@ -214,4 +213,3 @@ windowrule { size = (monitor_w*0.26) (monitor_h*0.18) } - -- cgit v1.2.3 From ed06798cf9004b160d267a2452d06fdd25818059 Mon Sep 17 00:00:00 2001 From: brockar Date: Sat, 17 Jan 2026 00:14:25 -0300 Subject: fix: update WindowRules-config-v3.conf Now WindowRules = WindowRules-config-v3 --- config/hypr/configs/WindowRules-config-v3.conf | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index 00c98644..7fcf6b3b 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -42,8 +42,9 @@ windowrule = match:class ^(nwg-displays|nwg-look)$, tag +KooL-Settings windowrule = match:class ^(Alacritty|kitty|kitty-dropterm)$, tag +terminal # email tags -windowrule = match:class ^([Tt]hunderbird|org.gnome.Evolution)$, tag +email +windowrule = match:class ^([Tt]hunderbird|org.mozilla.Thunderbird)$, tag +email windowrule = match:class ^(eu.betterbird.Betterbird)$, tag +email +windowrule = match:class ^(org.gnome.Evolution)$, tag +email # project tags windowrule = match:class ^(codium|codium-url-handler|VSCodium)$, tag +projects @@ -97,6 +98,8 @@ windowrule = match:class ^(qt5ct|qt6ct)$, 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 ^(btrfs-assistant)$, tag +settings +windowrule = match:class ^(timeshift-gtk)$, tag +settings # viewer tags windowrule = match:class ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$, tag +viewer @@ -111,8 +114,8 @@ windowrule = match:tag multimedia, opacity 1.0 # POSITION windowrule = match:tag KooL_Cheat, center on -windowrule = match:title ^(ROG Control)$, center on windowrule = match:tag KooL-Settings, center on +windowrule = match:title ^(ROG Control)$, center on windowrule = match:title ^(Keybindings)$, center on windowrule = match:class ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$, center on windowrule = match:class ^([Ff]erdium)$, center on @@ -125,10 +128,10 @@ windowrule = idle_inhibit fullscreen, match:title ^(*)$ # FLOAT windowrule = match:tag KooL_Cheat, float on -windowrule = match:tag wallpaper, float on -windowrule = match:tag settings, float on -windowrule = match:tag viewer, float on -windowrule = match:tag KooL-Settings, float on +windowrule = match:tag wallpaper, float on, center on +windowrule = match:tag settings, float on, center on +windowrule = match:tag viewer, float on, center on +windowrule = match:tag KooL-Settings, float on, center on windowrule = match:class ([Zz]oom|onedriver|onedriver-launcher), float on windowrule = match:class (org.gnome.Calculator|qalculate-gtk), float on windowrule = match:class ^(mpv|com.github.rafostar.Clapper)$, float on @@ -187,11 +190,9 @@ layerrule = match:namespace quickshell:overview, ignore_alpha 0.5 windowrule { name = Whatsapp-zapzap match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ - float = on size = (monitor_w*0.6) (monitor_h*0.7) center = on } -# Picture-in-Picture windowrule { name = Picture-in-Picture match:title = ^(Picture-in-Picture)$ @@ -202,7 +203,6 @@ windowrule { keep_aspect_ratio = on size = (monitor_w*0.3) (monitor_h*0.3) } - # Thunar copy progress dialog windowrule { name = Thunar-Progress-bar @@ -213,4 +213,3 @@ windowrule { size = (monitor_w*0.26) (monitor_h*0.18) } - -- cgit v1.2.3 From fedec77164a973edfb03e6a8d60382dc62f30f1d Mon Sep 17 00:00:00 2001 From: brockar Date: Sat, 17 Jan 2026 00:18:09 -0300 Subject: fix: WR Hyprland startup --- config/hypr/configs/WindowRules.conf | 1 + 1 file changed, 1 insertion(+) (limited to 'config/hypr/configs') diff --git a/config/hypr/configs/WindowRules.conf b/config/hypr/configs/WindowRules.conf index 7fcf6b3b..24af7e70 100644 --- a/config/hypr/configs/WindowRules.conf +++ b/config/hypr/configs/WindowRules.conf @@ -148,6 +148,7 @@ windowrule = match:title ^(Save As)$, float on, size (monitor_w*0.7) (monitor_h* windowrule = match:initial_title (Open Files), float on, size (monitor_w*0.7) (monitor_h*0.6) windowrule = match:title ^(SDDM Background)$, float on, center on, size (monitor_w*0.16) (monitor_h*0.12) windowrule = match:class ^(yad)$, float on, center on, size (monitor_w*0.2) (monitor_h*0.2) +windowrule = match:class ^(hyprland-donate-screen)$, float on, center on # OPACITY windowrule = match:tag browser, opacity 0.99 0.8 -- cgit v1.2.3 From 3363d48f00d92bbefe1a65c5331a5671ef88ae6a Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 16 Jan 2026 22:22:14 -0500 Subject: Disabled RainbowBorders by default use quick settings to enable The new mode select menu for RainbowBorders makes the prompt at install redundant. Especially when upgrading On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md renamed: config/hypr/UserScripts/RainbowBorders.sh -> config/hypr/UserScripts/RainbowBorders.bak.sh modified: config/hypr/configs/Startup_Apps.conf modified: copy.sh modified: scripts/lib_prompts.sh --- CHANGELOG.md | 2 + config/hypr/UserScripts/RainbowBorders.bak.sh | 89 +++++++++++++++++++++++++++ config/hypr/UserScripts/RainbowBorders.sh | 89 --------------------------- config/hypr/configs/Startup_Apps.conf | 4 +- copy.sh | 1 - scripts/lib_prompts.sh | 21 ------- 6 files changed, 93 insertions(+), 113 deletions(-) create mode 100755 config/hypr/UserScripts/RainbowBorders.bak.sh delete mode 100755 config/hypr/UserScripts/RainbowBorders.sh (limited to 'config/hypr/configs') diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a9ecb61..8ae7c154 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ - There are now mulitple modes for the Rainbow Borders feature - `Disabled`, `Wallust Color`, `Rainbow`, `Gradient flow` - Thank you for the submission +- Disabled `RainbowBorders.sh` by default +- Use the quick setings menu `SUPERSHIFT + E` to enable, select mode - 2026-01-15 - Created waybar configs for ML4W Glass style diff --git a/config/hypr/UserScripts/RainbowBorders.bak.sh b/config/hypr/UserScripts/RainbowBorders.bak.sh new file mode 100755 index 00000000..67269b8a --- /dev/null +++ b/config/hypr/UserScripts/RainbowBorders.bak.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash +# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ ## +# Smooth border cycling effect using Wallust palette or full rainbow + +# Possible values: "wallust_random", "rainbow", "gradient_flow" +EFFECT_TYPE="gradient_flow" + +WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf" + +WALLUST_COLORS=() + +# ---------- LOAD WALLUST COLORS ---------- +if [[ "$EFFECT_TYPE" == "wallust_random" || "$EFFECT_TYPE" == "gradient_flow" ]]; then + # Accept either hex (0xffRRGGBB) or rgb(r,g,b) and normalize to 0xffRRGGBB + mapfile -t WALLUST_COLORS < <( + grep -E '^\$color[0-9]+' "$WALLUST_COLORS_SOURCE" | awk ' + function hex2(s){ return (length(s)==6 ? "0xff"s : ""); } + function rgb2(r,g,b){ return sprintf("0xff%02x%02x%02x", r, g, b); } + { + if (match($0, /0x([0-9a-fA-F]{8})/, m)) { print "0x" m[1]; next } + if (match($0, /#([0-9a-fA-F]{6})/, m)) { print hex2(m[1]); next } + if (match($0, /rgb\(([0-9]+),[ ]*([0-9]+),[ ]*([0-9]+)\)/, m)) { + print rgb2(m[1], m[2], m[3]); next + } + }' + ) + + if (( ${#WALLUST_COLORS[@]} == 0 )); then + # If wallust colors can't be loaded, fall back to random_hex + EFFECT_TYPE="rainbow" + fi +fi + +# ---------- RANDOM WALLUST COLORS ---------- +function wallust_random() { + echo "${WALLUST_COLORS[RANDOM % ${#WALLUST_COLORS[@]}]}" +} + +# ---------- RAINBOW COLORS ---------- +function random_hex() { + echo "0xff$(openssl rand -hex 3)" +} + +# ---------- FLOW MODE ---------- +BASE_COLOR="${WALLUST_COLORS[10]}" +GRAD1_COLOR="${WALLUST_COLORS[14]}" +GRAD2_COLOR="${WALLUST_COLORS[13]}" +GLOW_COLOR="${WALLUST_COLORS[15]}" + +MAX_POS=10 +GLOW_POS=0 + +function gradient_flow_color() { + local pos=$1 + local d=$(( pos - GLOW_POS )) + + # wrap distance (-9..9) + if (( d > MAX_POS/2 )); then d=$((d - MAX_POS)); fi + if (( d < -MAX_POS/2 )); then d=$((d + MAX_POS)); fi + + case "${d#-}" in + 0) echo "$GLOW_COLOR" ;; + 1) echo "$GRAD1_COLOR" ;; + 2) echo "$GRAD2_COLOR" ;; + *) echo "$BASE_COLOR" ;; + esac + + if (( pos == MAX_POS - 1 )); then + GLOW_POS=$(( (GLOW_POS + 1) % MAX_POS )) + fi +} + +# ---------- Main function ---------- + +function get_color() { + if [[ "$EFFECT_TYPE" == "wallust_random" && ${#WALLUST_COLORS[@]} -gt 0 ]]; then + wallust_random + elif [[ "$EFFECT_TYPE" == "gradient_flow" && ${#WALLUST_COLORS[@]} -ge 16 ]]; then + gradient_flow_color "$1" + else + random_hex + fi +} + +# border effect for ACTIVE window +hyprctl keyword general:col.active_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg + +# border effect for INACTIVE windows +#hyprctl keyword general:col.inactive_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg \ No newline at end of file diff --git a/config/hypr/UserScripts/RainbowBorders.sh b/config/hypr/UserScripts/RainbowBorders.sh deleted file mode 100755 index 67269b8a..00000000 --- a/config/hypr/UserScripts/RainbowBorders.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env bash -# /* ---- πŸ’« https://github.com/JaKooLit πŸ’« ---- */ ## -# Smooth border cycling effect using Wallust palette or full rainbow - -# Possible values: "wallust_random", "rainbow", "gradient_flow" -EFFECT_TYPE="gradient_flow" - -WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf" - -WALLUST_COLORS=() - -# ---------- LOAD WALLUST COLORS ---------- -if [[ "$EFFECT_TYPE" == "wallust_random" || "$EFFECT_TYPE" == "gradient_flow" ]]; then - # Accept either hex (0xffRRGGBB) or rgb(r,g,b) and normalize to 0xffRRGGBB - mapfile -t WALLUST_COLORS < <( - grep -E '^\$color[0-9]+' "$WALLUST_COLORS_SOURCE" | awk ' - function hex2(s){ return (length(s)==6 ? "0xff"s : ""); } - function rgb2(r,g,b){ return sprintf("0xff%02x%02x%02x", r, g, b); } - { - if (match($0, /0x([0-9a-fA-F]{8})/, m)) { print "0x" m[1]; next } - if (match($0, /#([0-9a-fA-F]{6})/, m)) { print hex2(m[1]); next } - if (match($0, /rgb\(([0-9]+),[ ]*([0-9]+),[ ]*([0-9]+)\)/, m)) { - print rgb2(m[1], m[2], m[3]); next - } - }' - ) - - if (( ${#WALLUST_COLORS[@]} == 0 )); then - # If wallust colors can't be loaded, fall back to random_hex - EFFECT_TYPE="rainbow" - fi -fi - -# ---------- RANDOM WALLUST COLORS ---------- -function wallust_random() { - echo "${WALLUST_COLORS[RANDOM % ${#WALLUST_COLORS[@]}]}" -} - -# ---------- RAINBOW COLORS ---------- -function random_hex() { - echo "0xff$(openssl rand -hex 3)" -} - -# ---------- FLOW MODE ---------- -BASE_COLOR="${WALLUST_COLORS[10]}" -GRAD1_COLOR="${WALLUST_COLORS[14]}" -GRAD2_COLOR="${WALLUST_COLORS[13]}" -GLOW_COLOR="${WALLUST_COLORS[15]}" - -MAX_POS=10 -GLOW_POS=0 - -function gradient_flow_color() { - local pos=$1 - local d=$(( pos - GLOW_POS )) - - # wrap distance (-9..9) - if (( d > MAX_POS/2 )); then d=$((d - MAX_POS)); fi - if (( d < -MAX_POS/2 )); then d=$((d + MAX_POS)); fi - - case "${d#-}" in - 0) echo "$GLOW_COLOR" ;; - 1) echo "$GRAD1_COLOR" ;; - 2) echo "$GRAD2_COLOR" ;; - *) echo "$BASE_COLOR" ;; - esac - - if (( pos == MAX_POS - 1 )); then - GLOW_POS=$(( (GLOW_POS + 1) % MAX_POS )) - fi -} - -# ---------- Main function ---------- - -function get_color() { - if [[ "$EFFECT_TYPE" == "wallust_random" && ${#WALLUST_COLORS[@]} -gt 0 ]]; then - wallust_random - elif [[ "$EFFECT_TYPE" == "gradient_flow" && ${#WALLUST_COLORS[@]} -ge 16 ]]; then - gradient_flow_color "$1" - else - random_hex - fi -} - -# border effect for ACTIVE window -hyprctl keyword general:col.active_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg - -# border effect for INACTIVE windows -#hyprctl keyword general:col.inactive_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg \ No newline at end of file diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf index 2bf902cd..0cc5da11 100644 --- a/config/hypr/configs/Startup_Apps.conf +++ b/config/hypr/configs/Startup_Apps.conf @@ -33,8 +33,8 @@ exec-once = $scriptsDir/Hyprsunset.sh init 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 +# Rainbow borders (disabled by default; use quick settings menu) +#exec-once = $UserScripts/RainbowBorders.sh # Here are list of features available but disabled by default diff --git a/copy.sh b/copy.sh index 31c66a0b..b061f4ac 100755 --- a/copy.sh +++ b/copy.sh @@ -355,7 +355,6 @@ fi printf "\n%.0s" {1..1} prompt_clock_12h "$LOG" printf "\n%.0s" {1..1} -prompt_rainbow_borders "$LOG" >/dev/null printf "\n%.0s" {1..1} prompt_express_upgrade "$EXPRESS_SUPPORTED" "$LOG" diff --git a/scripts/lib_prompts.sh b/scripts/lib_prompts.sh index a63afde3..bf6fafd7 100644 --- a/scripts/lib_prompts.sh +++ b/scripts/lib_prompts.sh @@ -209,27 +209,6 @@ apply_sddm_12h_format_sequoia() { fi } -# Rainbow borders toggle; returns "disabled" or "kept". -prompt_rainbow_borders() { - local log="$1" - echo "${NOTE} ${SKY_BLUE}By default, Rainbow Borders animation is enabled" - echo "${WARN} However, this uses a bit more CPU and Memory resources." - if ! read -r -p "${CAT} Do you want to disable Rainbow Borders animation? (y/N): " border_choice &1 | tee -a "$log" - echo "kept" - return - fi - if [[ "$border_choice" =~ ^[Yy]$ ]]; then - mv config/hypr/UserScripts/RainbowBorders.sh config/hypr/UserScripts/RainbowBorders.bak.sh - 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" - echo "disabled" - else - echo "${NOTE} No changes made. Rainbow borders remain enabled." 2>&1 | tee -a "$log" - echo "kept" - fi -} # Express upgrade confirmation; may set EXPRESS_MODE=1. prompt_express_upgrade() { -- cgit v1.2.3