summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2024-10-07 16:10:27 +0800
committerlittleblack111 <littleblack11111@gmail.com>2024-10-07 16:10:27 +0800
commitaf23c899fa687b4fe745d2b64bab7434921b0fda (patch)
treeb4e3efb24cb0e4066d0a068f0b40e2b7bc7dcb5b
parentcb824da3037eabf61432c55c8157e138661a8603 (diff)
refactor(rules): made all generic rules use tags
fix(spotify): spotify -> spotify.*
-rw-r--r--dot-config/hypr/rules.conf225
1 files changed, 104 insertions, 121 deletions
diff --git a/dot-config/hypr/rules.conf b/dot-config/hypr/rules.conf
index 7c493103..0ba599c9 100644
--- a/dot-config/hypr/rules.conf
+++ b/dot-config/hypr/rules.conf
@@ -7,147 +7,136 @@
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
-# Terminal applications on workspace 1
-windowrulev2 = workspace 1, class:(Alacritty|Xfce4-terminal|Kitty)
+# Tag
+# workspaces
+windowrulev2 = workspace 1, tag:terminal
+windowrulev2 = workspace 2, tag:web
+windowrulev2 = workspace 3, tag:file
+windowrulev2 = workspace 4, tag:code
+windowrulev2 = workspace 5, tag:office
+windowrulev2 = workspace 6, tag:communication
+windowrulev2 = workspace 7, tag:media
+windowrulev2 = workspace 8, tag:games
+windowrulev2 = workspace 9, tag:system
+windowrulev2 = workspace 10, tag:misc
+
+# GUI Utils
+windowrulev2 = opacity 0.85 0.75, tag:gui-utils
+windowrulev2 = pin, tag:gui-utils
+windowrulev2 = size 53% 60%, tag:gui-utils
+windowrulev2 = move 46.5% 5%, tag:gui-utils
+windowrulev2 = animation slide right top, tag:gui-utils
+
+# media contents
+windowrulev2 = float, tag:media-contents
+windowrulev2 = pin, tag:media-contents
+windowrulev2 = move 100%-w-$outer_gaps, tag:media-contents
+windowrulev2 = noinitialfocus, tag:media-contents
+windowrulev2 = noshadow, tag:media-contents
+
+# fake fullscreen
+windowrulev2 = fullscreenstate 0 2, tag:fakefullscreen
-# Web browsers on workspace 2
-windowrulev2 = workspace 2, class:($browser|Brave-browser|chromium|firefox)
+# Games
+windowrulev2 = fullscreen, tag:games
+# Tearing (for better gaming performance)
+windowrulev2 = immediate, tag:games
+
+# time-sensitive app rules
+windowrulev2 = stayfocused, tag:time-sensitive
+windowrulev2 = pin, tag:time-sensitive
+windowrulev2 = dimaround, tag:time-sensitive
+windowrulev2 = center, tag:time-sensitive
+windowrulev2 = float, tag:time-sensitive
+
+# cli util apps
+windowrulev2 = float, tag:cli-utils
+windowrulev2 = pin, tag:cli-utils
+windowrulev2 = dimaround, tag:cli-utils
-# File managers on workspace 3
-windowrulev2 = workspace 3, class:($fileManager|Pcmanfm|Thunar|qBittorrent|Caja)
+# hidden
+windowrulev2 = movetoworkspacesilent, special:minimized, tag:hidden
-# Code editors on workspace 4
-windowrulev2 = workspace 4, class:(Geany|code|code-url-handler|cursor-url-handler|code-oss|Code - OSS|install4j-burp-StartBurp|burp-StartBurp|Unity|jetbrains-pycharm-ce|Postman)
+# Group
+# windowrule = group, ^virt-manager$
-# Office applications on workspace 5
-windowrulev2 = workspace 5, class:(Gucharmap|Atril|Evince|libreoffice-writer|libreoffice-calc|libreoffice-impress|libreoffice|Soffice|Typora|obsidian|figma-linux|anytype|craft-nativefier-e0958b)
+# Terminal applications
+windowrulev2 = tag terminal, class:^(Alacritty|Xfce4-terminal|Kitty)$
-# Communication apps on workspace 6
-windowrulev2 = workspace 6, class:(Thunderbird|TelegramDesktop|Hexchat|discord|vesktop|VencordDesktop|Chat-gpt|Whatsapp-for-linux|Chatbox)
+# Web browsers
+windowrulev2 = tag web, class:^($browser|Brave-browser|chromium|firefox)$
-# Media applications on workspace 7
-windowrulev2 = workspace 7, class:(Audacity|Music|MPlayer|Lxmusic|Inkscape|Gimp|Blender|obs|zoom|Zoom|Pitivi|kdenlive|openshot|vlc|cider|Cider|shotwell|Shotwell|fr.handbrake.ghb)
-windowrulev2 = workspace 7, title:(Spotify|Spotify Premium)
+# File managers
+windowrulev2 = tag file, class:^($fileManager|Pcmanfm|Thunar|qBittorrent|Caja)$
-# Games on workspace 8
-windowrulev2 = workspace 8, class:(Minecraft|Badlion|War|steam_proton|steam|csgo_linux64|minecraft-launcher|lutris|genshinimpact.exe|moe.launcher.an-anime-game-launcher|lunarclient|zenlesszonezero.exe|moe.launcher.sleepy-launcher|sober)
+# Code editors
+windowrulev2 = tag code, class:^(Geany|code|code-url-handler|cursor-url-handler|code-oss|Code - OSS|install4j-burp-StartBurp|burp-StartBurp|Unity|jetbrains-pycharm-ce|Postman)$
+
+# Office applications
+windowrulev2 = tag office, class:^(Gucharmap|Atril|Evince|libreoffice-writer|libreoffice-calc|libreoffice-impress|libreoffice|Soffice|Typora|obsidian|figma-linux|anytype|craft-nativefier-e0958b)$
+
+# Communication apps
+windowrulev2 = tag communication, class:^(Thunderbird|TelegramDesktop|Hexchat|discord|vesktop|VencordDesktop|Chat-gpt|Whatsapp-for-linux|Chatbox)$
+
+# Media applications
+windowrulev2 = tag media, class:^(Audacity|Music|MPlayer|Lxmusic|Inkscape|Gimp|Blender|obs|zoom|Zoom|Pitivi|kdenlive|openshot|vlc|cider|Cider|shotwell|Shotwell|fr.handbrake.ghb)$
+windowrulev2 = tag media, title:^(Spotify.*)$
+
+# Games
+windowrulev2 = tag games, class:^(Minecraft|Badlion|War|steam_proton|steam|csgo_linux64|minecraft-launcher|lutris|genshinimpact.exe|moe.launcher.an-anime-game-launcher|lunarclient|zenlesszonezero.exe|moe.launcher.sleepy-launcher|sober)$
-# System/Settings applications on workspace 9
-windowrulev2 = workspace 9, class:(virt-manager|blueman-adapters|GParted|Xdm-app|timeshift-gtk|com.nextcloud.desktopclient.nextcloud|gearlever|Lxappearance|Lxtask|Lxrandr|Arandr|System-config-printer.py|Pavucontrol|Exo-helper-1|Protonvpn|Xfce4-power-manager-settings|Mysql-workbench-bin|Grub-customizer|Nitrogen|archlinux-tweak-tool.py|pamac-manager|helvum|Vmware|btrfs-assistant|Bitwarden|wootility-lekker|nwg-look|com.github.wwmm.easyeffects|kvantummanager)
+# System/Settings applications
+windowrulev2 = tag system, class:^(virt-manager|blueman-adapters|GParted|Xdm-app|timeshift-gtk|com.nextcloud.desktopclient.nextcloud|gearlever|Lxappearance|Lxtask|Lxrandr|Arandr|System-config-printer.py|Pavucontrol|Exo-helper-1|Protonvpn|Xfce4-power-manager-settings|Mysql-workbench-bin|Grub-customizer|Nitrogen|archlinux-tweak-tool.py|pamac-manager|helvum|Vmware|btrfs-assistant|Bitwarden|wootility-lekker|nwg-look|com.github.wwmm.easyeffects|kvantummanager)$
-# Miscellaneous applications on workspace 10
-windowrulev2 = workspace 10, class:(maxautoclicker|os_server|Os_server)
+# Miscellaneous applications
+windowrulev2 = tag misc, class:^(maxautoclicker|os_server|Os_server)$
# floating applications
-windowrulev2 = float, class:(alacritty-float|Pcmanfm|Onboard|Yad|zoom|Xdm-app|wechat|WeChat|sxiv|Sxiv|Firefox:Places|Viewnior|feh|Nm-connection-editor|install4j-burp-StartBurp|thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|float|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper|electron)
-windowrulev2 = float, title:(Steam Settings)
+windowrulev2 = float, class:^(alacritty-float|Pcmanfm|Onboard|Yad|zoom|Xdm-app|wechat|WeChat|sxiv|Sxiv|Firefox:Places|Viewnior|feh|Nm-connection-editor|install4j-burp-StartBurp|thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|float|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper|electron)$
+windowrulev2 = float, title:^(Steam Settings)$
# specificly sized
-windowrulev2 = size 40% 40%, class:(alacritty-float)
+windowrulev2 = size 40% 40%, class:^(alacritty-float)$
# Sticky applicationsp
-# App that have menu on top for stayfocused
+# App that have menu on top for stayfocused, without this, menus will dissappear when you move ur mouse
windowrulev2 = stayfocused, title:(menu)
-
# GUI Utils applications
-windowrulev2 = opacity 0.85 0.75, class:^Beeper$
-windowrulev2 = opacity 0.85 0.75, class:(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper)
-windowrulev2 = pin, class:(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper)
-windowrulev2 = size 53% 60%, class:(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper) # custom animation
-windowrulev2 = move 46.5% 5%, class:(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper)
-windowrulev2 = animation slide right top, class:(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper|blobdrop|dragon)
+windowrulev2 = tag gui-utils, class:^(thorium-app.shortwave.com__-Default|thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default|Beeper)$
+windowrulev2 = animation slide right top, tag:gui-utils
# bitwarden chrome extension popup
-windowrulev2 = pin, class:(thorium-nngceckbapebfimnlniiiahkandclblb-Default)
-windowrulev2 = float, class:(thorium-nngceckbapebfimnlniiiahkandclblb-Default)
-windowrulev2 = stayfocused, class:(thorium-nngceckbapebfimnlniiiahkandclblb-Default)
+windowrulev2 = pin, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$
+windowrulev2 = float, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$
+windowrulev2 = stayfocused, class:^(thorium-nngceckbapebfimnlniiiahkandclblb-Default)$
-# for hyprshot
-windowrulev2 = float, class:(blobdrop|dragon)
-windowrulev2 = pin, class:(blobdrop|dragon)
-windowrulev2 = move 100%-w-$outer_gaps, class:(blobdrop|dragon)
-windowrulev2 = noinitialfocus, class:(blobdrop|dragon)
+# for media contents
+windowrulev2 = tag media-contents, class:^(blobdrop|dragon)$
+# PIP
+windowrulev2 = tag media-contents, title:^(Picture in picture)$
+windowrulev2 = size 25% 25%, title:^(Picture in picture)$
# removes title/border
-windowrulev2 = fullscreenstate 0 2, class:(thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default)
+windowrulev2 = tag fakefullscreen, class:^(thorium-mdpkiolbdkhdjpekfbkbmhigcaggjagi-Profile_1|thorium-lnachpgegbbmnnlgpokibfjlmppeciah-Default)
# Full screen applications
-
-# Games
-windowrulev2 = fullscreen, class:(genshinimpact.exe)
-windowrulev2 = fullscreen, class:(zenlesszonezero.exe)
-windowrulev2 = fullscreen, class:(sober)
-
-# Special rules for Conky and stalonetray
-windowrulev2 = float, class:(Conky), manage=off
-windowrulev2 = float, class:(stalonetray), manage=off
-
-# PIP
-windowrulev2 = pin, initialClass:^()$, title:^(Picture in picture)$
-windowrulev2 = move 100%-w-$outer_gaps, initialClass:^()$, title:^(Picture in picture)$
-windowrulev2 = size 25% 25%, initialClass:^()$, title:^(Picture in picture)$
-windowrulev2 = noinitialfocus, initialClass:^()$, title:^(Picture in picture)$
-windowrulev2 = float, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
-windowrulev2 = noshadow, title:^([Pp]icture[-\s]?[Ii]n[-\s]?[Pp]icture)(.*)$
-
# time-sensitive app rules
-windowrulev2 = float, class:^(org.freedesktop.impl.portal.desktop.kde)$
-windowrulev2 = stayfocused, class:^polkit-gnome-authentication-agent-1$
-windowrulev2 = stayfocused, class:^(pinentry.*)
-windowrulev2 = float, class:^(pinentry.*)
-windowrulev2 = stayfocused, class:^(xdg-desktop-portal.*)$
-windowrulev2 = stayfocused, class:^(hyprland-share-picker.*)$
-windowrulev2 = stayfocused, class:^(org.freedesktop.impl.portal.desktop.kde)$
-windowrule = stayfocused, title:^(Open File)(.*)$
-windowrule = stayfocused, title:^Open$
-windowrule = stayfocused, title:^(Select a File)(.*)$
-windowrule = stayfocused, title:^(Choose wallpaper)(.*)$
-windowrule = stayfocused, title:^(Open Folder)(.*)$
-windowrule = stayfocused, title:^(Save As)(.*)$
-windowrule = stayfocused, title:^(Save File)(.*)$
-windowrule = stayfocused, title:^(Library)(.*)$
-windowrule = stayfocused, title:^(File Upload)(.*)$
-windowrulev2 = pin, class:^polkit-gnome-authentication-agent-1$
-windowrulev2 = pin, class:^(pinentry-)
-windowrulev2 = pin, class:^(xdg-desktop-portal.*)$
-windowrulev2 = pin, class:^(hyprland-share-picker.*)$
-windowrulev2 = pin, class:^(org.freedesktop.impl.portal.desktop.kde)$
-windowrulev2 = dimaround, class:^polkit-gnome-authentication-agent-1$
-windowrulev2 = dimaround, class:^(pinentry-)
-windowrulev2 = dimaround, class:^(xdg-desktop-portal.*)$
-windowrulev2 = dimaround, class:^(hyprland-share-picker.*)$
-windowrule = center, title:^(Open File)(.*)$
-windowrule = center, title:^Open$
-windowrule = center, title:^(Select a File)(.*)$
-windowrule = center, title:^(Choose wallpaper)(.*)$
-windowrule = center, title:^(Open Folder)(.*)$
-windowrule = center, title:^(Save As)(.*)$
-windowrule = center, title:^(Save File)(.*)$
-windowrule = center, title:^(Library)(.*)$
-windowrule = center, title:^(File Upload)(.*)$
-windowrulev2 = float, class:^(xdg-desktop-portal.*)$
-windowrule=float,title:^(Open File)(.*)$
-windowrule=float,title:^Open$
-windowrule=float,title:^(Select a File)(.*)$
-windowrule=float,title:^(Choose wallpaper)(.*)$
-windowrule=float,title:^(Open Folder)(.*)$
-windowrule=float,title:^(Save As)(.*)$
-windowrule=float,title:^(Save File)(.*)$
-windowrule=float,title:^(Library)(.*)$
-windowrule=float,title:^(File Upload)(.*)$
+windowrulev2 = tag time-sensitive, class:^(org.freedesktop.impl.portal.desktop.kde|polkit-gnome-authentication-agent-1|pinentry-|xdg-desktop-portal.*|hyprland-share-picker.*)$
+windowrulev2 = tag time-sensitive, title:^(Open File|Open|Select a File|Choose wallpaper|Open Folder|Save As|Save File|Library|File Upload)$
+windowrulev2 = dimaround, tag:time-sensitive
+
# rofi
-# windowrulev2 = float, class:(Rofi)
-# windowrulev2 = pin, class:(Rofi)
-# windowrulev2 = dimaround, class:(Rofi)
+# windowrulev2 = float, class:^(Rofi)
+# windowrulev2 = pin, class:^(Rofi)
+# windowrulev2 = dimaround, class:^(Rofi)
# util apps
-windowrulev2 = float, title:(nmd|cliphist|pulsemixer|ranger|btop)
-windowrulev2 = stayfocused, title:(btop)
-windowrulev2 = pin, title:(nmd|cliphist|pulsemixer|ranger|btop)
-windowrulev2 = dimaround, title:(nmd|cliphist|pulsemixer|ranger|btop)
+windowrulev2 = tag cli-utils, title:^(nmd|cliphist|pulsemixer|ranger|btop)$
+windowrulev2 = dimaround, tag:cli-utils
+windowrulev2 = stayfocused, title:^(btop)$
-# windowrulev2 = stayfocused, title:(rofi - Command|rofi - Confirmation|rofi - ArchLinux (hyprland))
+# windowrulev2 = stayfocused, title:^(rofi - Command|rofi - Confirmation|rofi - ArchLinux (hyprland))
# No shadow for tiled window
windowrulev2 = noshadow,floating:0
@@ -169,7 +158,8 @@ windowrulev2 = opacity 0.85 0.75, class:^discord$
windowrulev2 = opacity 0.90 0.80, class:^Caja$
windowrulev2 = opacity 0.80 0.70, class:^polkit-gnome-authentication-agent-1$
windowrulev2 = opacity 0.80 0.70, title:^Open$
-windowrulev2 = opacity 0.8 0.5, title:New Tab
+windowrulev2 = opacity 0.8 0.5, title:^New Tab - Thorium$
+# windowrulev2 = ignorezero, title:Annotation - Zoom
# Layer rules/blur
@@ -206,14 +196,7 @@ windowrulev2 = maxsize 1 1, class:^(xwaylandvideobridge)$
windowrulev2 = noblur, class:^(xwaylandvideobridge)$
# Tearing (for better gaming performance)
-windowrule = immediate,.*\.exe
-windowrulev2 = immediate,class:(steam_app)
-windowrulev2 = immediate,class:(steam)
-windowrulev2 = immediate,class:(Minecraft.*)
-windowrulev2 = immediate,class:(genshinimpact.exe)
-windowrulev2 = immediate,class:(zenlesszonezero.exe)
-windowrulev2 = immediate,class:(sober)
-windowrulev2 = immediate,class:(Lunar Client.*)
-windowrulev2 = immediate,class:(lunarclient)
+windowrule = tag games, .*\.exe
+# No transparency for fullscreen windows
windowrulev2 = plugin:chromakey,fullscreen:0