From f4a9ba41e25b4e40b6b7154aa7f48e9fbeb0b859 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sat, 18 Oct 2025 22:59:07 -0400 Subject: disabled workspace rules adj dropdown term size Added nm-tray startup for ubuntu users On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/UserConfigs/Startup_Apps.conf modified: config/hypr/UserConfigs/WindowRules.conf modified: config/hypr/scripts/Dropterminal.sh --- config/hypr/UserConfigs/Startup_Apps.conf | 1 + config/hypr/UserConfigs/WindowRules.conf | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf index 7b668b77..738eb2da 100644 --- a/config/hypr/UserConfigs/Startup_Apps.conf +++ b/config/hypr/UserConfigs/Startup_Apps.conf @@ -29,6 +29,7 @@ exec-once = $scriptsDir/Polkit.sh # starup apps exec-once = nm-applet --indicator +exec-once = nm-tray # For ubuntu exec-once = swaync #exec-once = ags #exec-once = blueman-applet diff --git a/config/hypr/UserConfigs/WindowRules.conf b/config/hypr/UserConfigs/WindowRules.conf index d6959dc4..2c24dafc 100644 --- a/config/hypr/UserConfigs/WindowRules.conf +++ b/config/hypr/UserConfigs/WindowRules.conf @@ -113,20 +113,20 @@ windowrule = move 72% 7%,title:^(Picture-in-Picture)$ windowrule = idleinhibit fullscreen, fullscreen:1 # windowrule move to workspace -windowrule = workspace 1, tag:email* -windowrule = workspace 2, tag:browser* +#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 = 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 = 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* @@ -167,12 +167,12 @@ windowrule = size 16% 12%, title:^(SDDM Background)$ #KooL's Dots YAD for settin # END of float popups and dialogue ####### # OPACITY -windowrule = opacity 0.9 0.7, tag:browser* +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.8 0.7, tag:terminal* +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* -- cgit v1.2.3 From 2da2474592577766136b11847b22ade05cd5ac58 Mon Sep 17 00:00:00 2001 From: brockar Date: Mon, 20 Oct 2025 17:12:57 -0300 Subject: config: add env var for dots version --- config/hypr/UserConfigs/ENVariables.conf | 3 +++ 1 file changed, 3 insertions(+) (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/ENVariables.conf b/config/hypr/UserConfigs/ENVariables.conf index f24cc306..d82fc2a6 100644 --- a/config/hypr/UserConfigs/ENVariables.conf +++ b/config/hypr/UserConfigs/ENVariables.conf @@ -4,6 +4,9 @@ # Set your defaults editor through ENV in ~/.config/hypr/UserConfigs/01-UserDefaults.conf # environment-variables +# Current Version of JakooLit Dotfiles: +env = DOTS_VERSION,2.3.17 + # Toolkit Backend Variables env = GDK_BACKEND,wayland,x11,* env = QT_QPA_PLATFORM,wayland;xcb -- cgit v1.2.3 From 7275b5f73ff6c1164cba645a5f41ac088a10e7cc Mon Sep 17 00:00:00 2001 From: prabinpanta0 Date: Mon, 27 Oct 2025 10:35:13 +0545 Subject: config(hypr): run Weather.sh at startup; lower weather cache TTL to 5 minutes --- config/hypr/UserConfigs/Startup_Apps.conf | 3 +++ config/hypr/UserScripts/Weather.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf index 738eb2da..976208e9 100644 --- a/config/hypr/UserConfigs/Startup_Apps.conf +++ b/config/hypr/UserConfigs/Startup_Apps.conf @@ -47,6 +47,9 @@ exec-once = $UserScripts/RainbowBorders.sh # Starting hypridle to start hyprlock exec-once = hypridle +# Weather script to populate cache on startup +exec-once = $UserScripts/Weather.sh + # Here are list of features available but disabled by default # exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper diff --git a/config/hypr/UserScripts/Weather.py b/config/hypr/UserScripts/Weather.py index 3b58d8ff..47c88d1f 100755 --- a/config/hypr/UserScripts/Weather.py +++ b/config/hypr/UserScripts/Weather.py @@ -57,7 +57,7 @@ class WeatherData: CACHE_DIR: Path = Path.home() / ".cache" API_CACHE_PATH: Path = CACHE_DIR / "open_meteo_cache.json" SIMPLE_TEXT_CACHE_PATH: Path = CACHE_DIR / ".weather_cache" -CACHE_TTL_SECONDS = int(os.getenv("WEATHER_CACHE_TTL", "600")) # default 10 minutes +CACHE_TTL_SECONDS = int(os.getenv("WEATHER_CACHE_TTL", "300")) # default 5 minutes # Units: metric or imperial (default metric) UNITS = os.getenv("WEATHER_UNITS", "metric").strip().lower() # metric|imperial -- cgit v1.2.3 From 2b750637da39e4418132c70c2b53c4070a813a84 Mon Sep 17 00:00:00 2001 From: prabinpanta0 Date: Tue, 28 Oct 2025 16:41:43 +0545 Subject: feat(weatherWrap): add Python‑first entrypoint with Bash fallback MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Prefer Weather.py (Open‑Meteo) for reliable data and caching - Fallback to Weather.sh if Python is missing or Weather.py exits non‑zero - Pass through all CLI args; invoke Bash explicitly for consistent execution - Helps external callers (e.g., lock hooks) refresh ~/.cache/.weather_cache robustly --- config/hypr/UserConfigs/Startup_Apps.conf | 2 +- config/hypr/UserScripts/weatherWrap.sh | 33 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100755 config/hypr/UserScripts/weatherWrap.sh (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf index 976208e9..c40d0b0a 100644 --- a/config/hypr/UserConfigs/Startup_Apps.conf +++ b/config/hypr/UserConfigs/Startup_Apps.conf @@ -48,7 +48,7 @@ exec-once = $UserScripts/RainbowBorders.sh exec-once = hypridle # Weather script to populate cache on startup -exec-once = $UserScripts/Weather.sh +exec-once = $UserScripts/weatherWrap.sh # Here are list of features available but disabled by default diff --git a/config/hypr/UserScripts/weatherWrap.sh b/config/hypr/UserScripts/weatherWrap.sh new file mode 100755 index 00000000..4c9a16dc --- /dev/null +++ b/config/hypr/UserScripts/weatherWrap.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## +# Weather entrypoint: prefer Python (Open‑Meteo), fallback to legacy Bash (wttr.in) + +SCRIPT_DIR="$(dirname "$0")" +PY_SCRIPT="$SCRIPT_DIR/Weather.py" +BASH_FALLBACK="$SCRIPT_DIR/Weather.sh" + +run_fallback() { + if [ -f "$BASH_FALLBACK" ]; then + # Invoke via bash to avoid requiring +x and ensure consistent shell + bash "$BASH_FALLBACK" "$@" + return $? + else + echo "Weather fallback not found: $BASH_FALLBACK" >&2 + return 127 + fi +} + +if command -v python3 >/dev/null 2>&1; then + python3 "$PY_SCRIPT" "$@" + exit_code=$? + if [ "$exit_code" -eq 0 ]; then + exit 0 + fi + echo "Weather.py failed with code $exit_code — falling back to Weather.sh" >&2 + run_fallback "$@" + exit $? +else + echo "python3 not found in PATH — falling back to Weather.sh" >&2 + run_fallback "$@" + exit $? +fi \ No newline at end of file -- cgit v1.2.3 From 2c1ce157c97ae690e1dfb8087a3bfa808ac57c18 Mon Sep 17 00:00:00 2001 From: brockar Date: Tue, 28 Oct 2025 18:08:12 -0300 Subject: weatherWrap.sh -> WeatherWrap.sh --- config/hypr/UserConfigs/Startup_Apps.conf | 2 +- config/hypr/UserScripts/WeatherWrap.sh | 33 +++++++++++++++++++++++++++++++ config/hypr/UserScripts/weatherWrap.sh | 33 ------------------------------- config/hypr/scripts/LockScreen.sh | 7 ++++--- 4 files changed, 38 insertions(+), 37 deletions(-) create mode 100755 config/hypr/UserScripts/WeatherWrap.sh delete mode 100755 config/hypr/UserScripts/weatherWrap.sh (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf index c40d0b0a..2f5c7ae7 100644 --- a/config/hypr/UserConfigs/Startup_Apps.conf +++ b/config/hypr/UserConfigs/Startup_Apps.conf @@ -48,7 +48,7 @@ exec-once = $UserScripts/RainbowBorders.sh exec-once = hypridle # Weather script to populate cache on startup -exec-once = $UserScripts/weatherWrap.sh +exec-once = $UserScripts/WeatherWrap.sh # Here are list of features available but disabled by default diff --git a/config/hypr/UserScripts/WeatherWrap.sh b/config/hypr/UserScripts/WeatherWrap.sh new file mode 100755 index 00000000..4c9a16dc --- /dev/null +++ b/config/hypr/UserScripts/WeatherWrap.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## +# Weather entrypoint: prefer Python (Open‑Meteo), fallback to legacy Bash (wttr.in) + +SCRIPT_DIR="$(dirname "$0")" +PY_SCRIPT="$SCRIPT_DIR/Weather.py" +BASH_FALLBACK="$SCRIPT_DIR/Weather.sh" + +run_fallback() { + if [ -f "$BASH_FALLBACK" ]; then + # Invoke via bash to avoid requiring +x and ensure consistent shell + bash "$BASH_FALLBACK" "$@" + return $? + else + echo "Weather fallback not found: $BASH_FALLBACK" >&2 + return 127 + fi +} + +if command -v python3 >/dev/null 2>&1; then + python3 "$PY_SCRIPT" "$@" + exit_code=$? + if [ "$exit_code" -eq 0 ]; then + exit 0 + fi + echo "Weather.py failed with code $exit_code — falling back to Weather.sh" >&2 + run_fallback "$@" + exit $? +else + echo "python3 not found in PATH — falling back to Weather.sh" >&2 + run_fallback "$@" + exit $? +fi \ No newline at end of file diff --git a/config/hypr/UserScripts/weatherWrap.sh b/config/hypr/UserScripts/weatherWrap.sh deleted file mode 100755 index 4c9a16dc..00000000 --- a/config/hypr/UserScripts/weatherWrap.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## -# Weather entrypoint: prefer Python (Open‑Meteo), fallback to legacy Bash (wttr.in) - -SCRIPT_DIR="$(dirname "$0")" -PY_SCRIPT="$SCRIPT_DIR/Weather.py" -BASH_FALLBACK="$SCRIPT_DIR/Weather.sh" - -run_fallback() { - if [ -f "$BASH_FALLBACK" ]; then - # Invoke via bash to avoid requiring +x and ensure consistent shell - bash "$BASH_FALLBACK" "$@" - return $? - else - echo "Weather fallback not found: $BASH_FALLBACK" >&2 - return 127 - fi -} - -if command -v python3 >/dev/null 2>&1; then - python3 "$PY_SCRIPT" "$@" - exit_code=$? - if [ "$exit_code" -eq 0 ]; then - exit 0 - fi - echo "Weather.py failed with code $exit_code — falling back to Weather.sh" >&2 - run_fallback "$@" - exit $? -else - echo "python3 not found in PATH — falling back to Weather.sh" >&2 - run_fallback "$@" - exit $? -fi \ No newline at end of file diff --git a/config/hypr/scripts/LockScreen.sh b/config/hypr/scripts/LockScreen.sh index 17239406..e61490cd 100755 --- a/config/hypr/scripts/LockScreen.sh +++ b/config/hypr/scripts/LockScreen.sh @@ -2,9 +2,10 @@ # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## # For Hyprlock -#pidof hyprlock || hyprlock -q +#pidof hyprlock || hyprlock -q # Ensure weather cache is up-to-date before locking (Waybar/lockscreen readers) -bash "$HOME/.secret/Hyprland-Dots/config/hypr/UserScripts/weatherWrap.sh" >/dev/null 2>&1 +bash "$HOME/.config/hypr/UserScripts/WeatherWrap.sh" >/dev/null 2>&1 + +loginctl lock-session -loginctl lock-session \ No newline at end of file -- cgit v1.2.3 From 70cb1f313d04558da9ab4e4f9ca5eecd373acb45 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 30 Oct 2025 22:39:02 -0400 Subject: refactor(keybinds): use bindd with descriptions across configs - Convert binds to description form (bindd/bindld/binded/bindmd/bindlnd) - Keep naming as powermenu for shutdown/reboot/logout/suspend - Update KeyBinds.sh to parse and display descriptions - Update CHANGELOG --- CHANGELOG.md | 8 ++ config/hypr/UserConfigs/UserKeybinds.conf | 82 ++++++------- config/hypr/configs/Keybinds.conf | 196 +++++++++++++++--------------- config/hypr/scripts/KeyBinds.sh | 69 +++++++++-- 4 files changed, 203 insertions(+), 152 deletions(-) (limited to 'config/hypr/UserConfigs') diff --git a/CHANGELOG.md b/CHANGELOG.md index 623e697c..dd01997b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ ## October 2025 +### ⌨️ Keybinds + +- Convert Hyprland keybinds to description form (`bindd`, `bindld`, `binded`, + `bindmd`, `bindlnd`) in `config/hypr/...`. +- Add concise descriptions for each keybind; keep the name "powermenu". +- Update `config/hypr/scripts/KeyBinds.sh` to parse and display descriptions + as: MODS+KEY — DESCRIPTION — DISPATCHER [PARAMS]. + ### 🐛 Fixes - Updated `/bin/bash` to `/usr/bin/env bash` diff --git a/config/hypr/UserConfigs/UserKeybinds.conf b/config/hypr/UserConfigs/UserKeybinds.conf index 338bf0d1..5b257b33 100644 --- a/config/hypr/UserConfigs/UserKeybinds.conf +++ b/config/hypr/UserConfigs/UserKeybinds.conf @@ -16,67 +16,67 @@ source= $UserConfigs/01-UserDefaults.conf # common shortcuts #bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu -bind = $mainMod, D, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window # Main Menu (APP Launcher) -bind = $mainMod, B, exec, xdg-open "https://" # default browser +bindd = $mainMod, D, app launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window +bindd = $mainMod, B, open default browser, exec, xdg-open "https://" #bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) #bind = $mainMod, A, global, quickshell:overviewToggle # desktop overview (if installed) -bind = $mainMod, Return, exec, $term #terminal -bind = $mainMod, E, exec, $files #file manager +bindd = $mainMod, Return, terminal, exec, $term +bindd = $mainMod, E, file manager, exec, $files # FEATURES / EXTRAS -bind = $mainMod, H, exec, $scriptsDir/KeyHints.sh # help / cheat sheet -bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi -bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji menu -bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # Google search using rofi -bind = $mainMod CTRL, S, exec, rofi -show window # list/switch apps using rofi -bind = $mainMod ALT, O, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings -bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # Toggle animations ON/OFF -bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout -bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager -bind = $mainMod CTRL, R, exec, $scriptsDir/RofiThemeSelector.sh # KooL Rofi Menu Theme Selector -bind = $mainMod CTRL SHIFT, R, exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh # modified Rofi Theme Selector +bindd = $mainMod, H, help / cheat sheet, exec, $scriptsDir/KeyHints.sh +bindd = $mainMod ALT, R, refresh bar and menus, exec, $scriptsDir/Refresh.sh +bindd = $mainMod ALT, E, emoji menu, exec, $scriptsDir/RofiEmoji.sh +bindd = $mainMod, S, web search, exec, $scriptsDir/RofiSearch.sh +bindd = $mainMod CTRL, S, window switcher, exec, rofi -show window +bindd = $mainMod ALT, O, toggle blur, exec, $scriptsDir/ChangeBlur.sh +bindd = $mainMod SHIFT, G, toggle game mode, exec, $scriptsDir/GameMode.sh +bindd = $mainMod ALT, L, toggle master/dwindle layout, exec, $scriptsDir/ChangeLayout.sh +bindd = $mainMod ALT, V, clipboard manager, exec, $scriptsDir/ClipManager.sh +bindd = $mainMod CTRL, R, rofi theme selector, exec, $scriptsDir/RofiThemeSelector.sh +bindd = $mainMod CTRL SHIFT, R, rofi theme selector (modified), exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh -bind = $mainMod SHIFT, F, fullscreen # whole full screen -bind = $mainMod CTRL, F, fullscreen, 1 # fake full screen -bind = $mainMod, SPACE, togglefloating, #Float Mode -bind = $mainMod ALT, SPACE, exec, hyprctl dispatch workspaceopt allfloat #All Float Mode -bind = $mainMod SHIFT, Return, exec, $scriptsDir/Dropterminal.sh $term # Dropdown terminal +bindd = $mainMod SHIFT, F, fullscreen, fullscreen +bindd = $mainMod CTRL, F, fake fullscreen, fullscreen, 1 +bindd = $mainMod, SPACE, toggle floating, togglefloating, +bindd = $mainMod ALT, SPACE, all float mode, exec, hyprctl dispatch workspaceopt allfloat +bindd = $mainMod SHIFT, Return, dropdown terminal, exec, $scriptsDir/Dropterminal.sh $term # Desktop zooming or magnifier -bind = $mainMod ALT, mouse_down, 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}')" -bind = $mainMod ALT, mouse_up, 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_down, zoom in, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" +bindd = $mainMod ALT, mouse_up, zoom out, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" ## NOTES for ja (Hyprland version 0.39 (Ubuntu 24.04)) #bind = $mainMod ALT, mouse_down, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" #bind = $mainMod ALT, mouse_up, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" # Waybar / Bar related -bind = $mainMod CTRL ALT, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show waybar -bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu -bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu +bindd = $mainMod CTRL ALT, B, toggle waybar, exec, pkill -SIGUSR1 waybar +bindd = $mainMod CTRL, B, waybar styles menu, exec, $scriptsDir/WaybarStyles.sh +bindd = $mainMod ALT, B, waybar layout menu, exec, $scriptsDir/WaybarLayout.sh # Night light toggle (Hyprsunset) -bind = $mainMod, N, exec, $scriptsDir/Hyprsunset.sh toggle +bindd = $mainMod, N, toggle night light, exec, $scriptsDir/Hyprsunset.sh toggle # FEATURES / EXTRAS (UserScripts) -bind = $mainMod SHIFT, M, exec, $UserScripts/RofiBeats.sh # online music using rofi -bind = $mainMod, W, exec, $UserScripts/WallpaperSelect.sh # Select wallpaper to apply -bind = $mainMod SHIFT, W, exec, $UserScripts/WallpaperEffects.sh # Wallpaper Effects by imagemagick -bind = CTRL ALT, W, exec, $UserScripts/WallpaperRandom.sh # Random wallpapers -bind = $mainMod CTRL, O, exec, hyprctl setprop active opaque toggle # disable opacity on active window -bind = $mainMod SHIFT, K, exec, $scriptsDir/KeyBinds.sh # search keybinds via rofi -bind = $mainMod SHIFT, A, exec, $scriptsDir/Animations.sh #hyprland animations menu -bind = $mainMod SHIFT, O, exec, $UserScripts/ZshChangeTheme.sh # Change oh-my-zsh theme -bindln = ALT_L, SHIFT_L, exec, $scriptsDir/SwitchKeyboardLayout.sh # Change keyboard layout globally -bindln = SHIFT_L, ALT_L, exec, $scriptsDir/Tak0-Per-Window-Switch.sh # Change keyboard layout locally for each window -bind = $mainMod ALT, C, exec, $UserScripts/RofiCalc.sh # calculator (qalculate) +bindd = $mainMod SHIFT, M, online music, exec, $UserScripts/RofiBeats.sh +bindd = $mainMod, W, select wallpaper, exec, $UserScripts/WallpaperSelect.sh +bindd = $mainMod SHIFT, W, wallpaper effects, exec, $UserScripts/WallpaperEffects.sh +bindd = CTRL ALT, W, random wallpaper, exec, $UserScripts/WallpaperRandom.sh +bindd = $mainMod CTRL, O, toggle active window opacity, exec, hyprctl setprop active opaque toggle +bindd = $mainMod SHIFT, K, search keybinds, exec, $scriptsDir/KeyBinds.sh +bindd = $mainMod SHIFT, A, animations menu, exec, $scriptsDir/Animations.sh +bindd = $mainMod SHIFT, O, change oh-my-zsh theme, exec, $UserScripts/ZshChangeTheme.sh +bindlnd = ALT_L, SHIFT_L, switch keyboard layout globally, exec, $scriptsDir/SwitchKeyboardLayout.sh +bindlnd = SHIFT_L, ALT_L, switch keyboard layout per-window, exec, $scriptsDir/Tak0-Per-Window-Switch.sh +bindd = $mainMod ALT, C, calculator, exec, $UserScripts/RofiCalc.sh # Move current workspaces to monitors (left right up or down) -bind = $mainMod CTRL, F9, movecurrentworkspacetomonitor, l #move current workspace to LEFT monitor -bind = $mainMod CTRL, F10, movecurrentworkspacetomonitor, r #move current workspace to RIGHT monitor -bind = $mainMod CTRL, F11, movecurrentworkspacetomonitor, u #move current workspace to UP monitor -bind = $mainMod CTRL, F12, movecurrentworkspacetomonitor, d #move current workspace to DOWN monitor +bindd = $mainMod CTRL, F9, move workspace to left monitor, movecurrentworkspacetomonitor, l +bindd = $mainMod CTRL, F10, move workspace to right monitor, movecurrentworkspacetomonitor, r +bindd = $mainMod CTRL, F11, move workspace to up monitor, movecurrentworkspacetomonitor, u +bindd = $mainMod CTRL, F12, move workspace to down monitor, movecurrentworkspacetomonitor, d # For passthrough keyboard into a VM diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index c2ba9681..0fa250b7 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -8,142 +8,142 @@ $scriptsDir = $HOME/.config/hypr/scripts $UserConfigs = $HOME/.config/hypr/UserConfigs $UserScripts = $HOME/.config/hypr/UserScripts -bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0 # exit Hyprland -bind = $mainMod, Q, killactive, # close active (not kill) -bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh # Kill active process -bind = CTRL ALT, L, exec, $scriptsDir/LockScreen.sh # screen lock -bind = CTRL ALT, P, exec, $scriptsDir/Wlogout.sh # power menu -bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC notification panel -bind = $mainMod SHIFT, E, exec, $scriptsDir/Kool_Quick_Settings.sh # Settings Menu KooL Hyprland Settings +bindd = CTRL ALT, Delete, exit Hyprland, exec, hyprctl dispatch exit 0 +bindd = $mainMod, Q, close active window, killactive, +bindd = $mainMod SHIFT, Q, kill active process, exec, $scriptsDir/KillActiveProcess.sh +bindd = CTRL ALT, L, lock screen, exec, $scriptsDir/LockScreen.sh +bindd = CTRL ALT, P, powermenu, exec, $scriptsDir/Wlogout.sh +bindd = $mainMod SHIFT, N, notification panel, exec, swaync-client -t -sw +bindd = $mainMod SHIFT, E, settings menu, exec, $scriptsDir/Kool_Quick_Settings.sh # Master Layout -bind = $mainMod CTRL, D, layoutmsg, removemaster -bind = $mainMod, I, layoutmsg, addmaster -bind = $mainMod, J, layoutmsg, cyclenext -bind = $mainMod, K, layoutmsg, cycleprev -bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster +bindd = $mainMod CTRL, D, remove master, layoutmsg, removemaster +bindd = $mainMod, I, add master, layoutmsg, addmaster +bindd = $mainMod, J, cycle next, layoutmsg, cyclenext +bindd = $mainMod, K, cycle previous, layoutmsg, cycleprev +bindd = $mainMod CTRL, Return, swap with master, layoutmsg, swapwithmaster # Dwindle Layout -bind = $mainMod SHIFT, I, togglesplit # only works on dwindle layout -bind = $mainMod, P, pseudo, # dwindle +bindd = $mainMod SHIFT, I, toggle split (dwindle), togglesplit +bindd = $mainMod, P, toggle pseudo (dwindle), pseudo, # Works on either layout (Master or Dwindle) -bind = $mainMod, M, exec, hyprctl dispatch splitratio 0.3 +bindd = $mainMod, M, set split ratio 0.3, exec, hyprctl dispatch splitratio 0.3 # group -bind = $mainMod, G, togglegroup # toggle group -bind = $mainMod CTRL, tab, changegroupactive # change focus to another window +bindd = $mainMod, G, toggle group, togglegroup +bindd = $mainMod CTRL, tab, change active in group, changegroupactive - # Cycle windows if floating bring to top -bind = ALT, tab, cyclenext -bind = ALT, tab, bringactivetotop +# Cycle windows; if floating bring to top +bindd = ALT, tab, cycle next window, cyclenext +bindd = ALT, tab, bring active to top, bringactivetotop # Special Keys / Hot Keys -bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc # volume up -bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec # volume down -bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic # mic mute -bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle # mute -bindl = , xf86Sleep, exec, systemctl suspend # sleep button -bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh # Airplane mode +bindeld = , xf86audioraisevolume, volume up, exec, $scriptsDir/Volume.sh --inc +bindeld = , xf86audiolowervolume, volume down, exec, $scriptsDir/Volume.sh --dec +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 +bindld = , xf86Rfkill, airplane mode, exec, $scriptsDir/AirplaneMode.sh # media controls using keyboards -bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause -bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause -bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause -bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt -bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv -bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop +bindld = , xf86AudioPlayPause, play/pause, exec, $scriptsDir/MediaCtrl.sh --pause +bindld = , xf86AudioPause, pause, exec, $scriptsDir/MediaCtrl.sh --pause +bindld = , xf86AudioPlay, play, exec, $scriptsDir/MediaCtrl.sh --pause +bindld = , xf86AudioNext, next track, exec, $scriptsDir/MediaCtrl.sh --nxt +bindld = , xf86AudioPrev, previous track, exec, $scriptsDir/MediaCtrl.sh --prv +bindld = , xf86audiostop, stop, exec, $scriptsDir/MediaCtrl.sh --stop # Screenshot keybindings NOTE: You may need to press Fn key as well -bind = $mainMod, Print, exec, $scriptsDir/ScreenShot.sh --now # screenshot -bind = $mainMod SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area) -bind = $mainMod CTRL, Print, exec, $scriptsDir/ScreenShot.sh --in5 # screenshot (5 secs delay) -bind = $mainMod CTRL SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay) -bind = ALT, Print, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only) +bindd = $mainMod, Print, screenshot now, exec, $scriptsDir/ScreenShot.sh --now +bindd = $mainMod SHIFT, Print, screenshot (area), exec, $scriptsDir/ScreenShot.sh --area +bindd = $mainMod CTRL, Print, screenshot in 5s, exec, $scriptsDir/ScreenShot.sh --in5 +bindd = $mainMod CTRL SHIFT, Print, screenshot in 10s, exec, $scriptsDir/ScreenShot.sh --in10 +bindd = ALT, Print, screenshot active window, exec, $scriptsDir/ScreenShot.sh --active # screenshot with swappy (another screenshot tool) -bind = $mainMod SHIFT, S, exec, $scriptsDir/ScreenShot.sh --swappy #screenshot (swappy) +bindd = $mainMod SHIFT, S, screenshot (swappy), exec, $scriptsDir/ScreenShot.sh --swappy # Resize windows -binde = $mainMod SHIFT, left, resizeactive,-50 0 -binde = $mainMod SHIFT, right, resizeactive,50 0 -binde = $mainMod SHIFT, up, resizeactive,0 -50 -binde = $mainMod SHIFT, down, resizeactive,0 50 +binded = $mainMod SHIFT, left, resize left (-50), resizeactive, -50 0 +binded = $mainMod SHIFT, right, resize right (+50), resizeactive, 50 0 +binded = $mainMod SHIFT, up, resize up (-50), resizeactive, 0 -50 +binded = $mainMod SHIFT, down, resize down (+50), resizeactive, 0 50 # Move windows -bind = $mainMod CTRL, left, movewindow, l -bind = $mainMod CTRL, right, movewindow, r -bind = $mainMod CTRL, up, movewindow, u -bind = $mainMod CTRL, down, movewindow, d +bindd = $mainMod CTRL, left, move window left, movewindow, l +bindd = $mainMod CTRL, right, move window right, movewindow, r +bindd = $mainMod CTRL, up, move window up, movewindow, u +bindd = $mainMod CTRL, down, move window down, movewindow, d # Swap windows -bind = $mainMod ALT, left, swapwindow, l -bind = $mainMod ALT, right, swapwindow, r -bind = $mainMod ALT, up, swapwindow, u -bind = $mainMod ALT, down, swapwindow, d +bindd = $mainMod ALT, left, swap window left, swapwindow, l +bindd = $mainMod ALT, right, swap window right, swapwindow, r +bindd = $mainMod ALT, up, swap window up, swapwindow, u +bindd = $mainMod ALT, down, swap window down, swapwindow, d # Move focus with mainMod + arrow keys -bind = $mainMod, left, movefocus, l -bind = $mainMod, right, movefocus, r -bind = $mainMod, up, movefocus, u -bind = $mainMod, down, movefocus, d +bindd = $mainMod, left, focus left, movefocus, l +bindd = $mainMod, right, focus right, movefocus, r +bindd = $mainMod, up, focus up, movefocus, u +bindd = $mainMod, down, focus down, movefocus, d # Workspaces related -bind = $mainMod, tab, workspace, m+1 -bind = $mainMod SHIFT, tab, workspace, m-1 +bindd = $mainMod, tab, next workspace, workspace, m+1 +bindd = $mainMod SHIFT, tab, previous workspace, workspace, m-1 # Special workspace -bind = $mainMod SHIFT, U, movetoworkspace, special -bind = $mainMod, U, togglespecialworkspace, +bindd = $mainMod SHIFT, U, move to special workspace, movetoworkspace, special +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] -bind = $mainMod, code:10, workspace, 1 # NOTE: code:10 = key 1 -bind = $mainMod, code:11, workspace, 2 # NOTE: code:11 = key 2 -bind = $mainMod, code:12, workspace, 3 # NOTE: code:12 = key 3 -bind = $mainMod, code:13, workspace, 4 # NOTE: code:13 = key 4 -bind = $mainMod, code:14, workspace, 5 # NOTE: code:14 = key 5 -bind = $mainMod, code:15, workspace, 6 # NOTE: code:15 = key 6 -bind = $mainMod, code:16, workspace, 7 # NOTE: code:16 = key 7 -bind = $mainMod, code:17, workspace, 8 # NOTE: code:17 = key 8 -bind = $mainMod, code:18, workspace, 9 # NOTE: code:18 = key 9 -bind = $mainMod, code:19, workspace, 10 # NOTE: code:19 = key 0 +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 +bindd = $mainMod, code:13, workspace 4, workspace, 4 # NOTE: code:13 = key 4 +bindd = $mainMod, code:14, workspace 5, workspace, 5 # NOTE: code:14 = key 5 +bindd = $mainMod, code:15, workspace 6, workspace, 6 # NOTE: code:15 = key 6 +bindd = $mainMod, code:16, workspace 7, workspace, 7 # NOTE: code:16 = key 7 +bindd = $mainMod, code:17, workspace 8, workspace, 8 # NOTE: code:17 = key 8 +bindd = $mainMod, code:18, workspace 9, workspace, 9 # NOTE: code:18 = key 9 +bindd = $mainMod, code:19, workspace 10, workspace, 10 # NOTE: code:19 = key 0 # Move active window and follow to workspace mainMod + SHIFT [0-9] -bind = $mainMod SHIFT, code:10, movetoworkspace, 1 # NOTE: code:10 = key 1 -bind = $mainMod SHIFT, code:11, movetoworkspace, 2 # NOTE: code:11 = key 2 -bind = $mainMod SHIFT, code:12, movetoworkspace, 3 # NOTE: code:12 = key 3 -bind = $mainMod SHIFT, code:13, movetoworkspace, 4 # NOTE: code:13 = key 4 -bind = $mainMod SHIFT, code:14, movetoworkspace, 5 # NOTE: code:14 = key 5 -bind = $mainMod SHIFT, code:15, movetoworkspace, 6 # NOTE: code:15 = key 6 -bind = $mainMod SHIFT, code:16, movetoworkspace, 7 # NOTE: code:16 = key 7 -bind = $mainMod SHIFT, code:17, movetoworkspace, 8 # NOTE: code:17 = key 8 -bind = $mainMod SHIFT, code:18, movetoworkspace, 9 # NOTE: code:18 = key 9 -bind = $mainMod SHIFT, code:19, movetoworkspace, 10 # NOTE: code:19 = key 0 -bind = $mainMod SHIFT, bracketleft, movetoworkspace, -1 # brackets [ -bind = $mainMod SHIFT, bracketright, movetoworkspace, +1 # brackets ] +bindd = $mainMod SHIFT, code:10, move to workspace 1, movetoworkspace, 1 # NOTE: code:10 = key 1 +bindd = $mainMod SHIFT, code:11, move to workspace 2, movetoworkspace, 2 # NOTE: code:11 = key 2 +bindd = $mainMod SHIFT, code:12, move to workspace 3, movetoworkspace, 3 # NOTE: code:12 = key 3 +bindd = $mainMod SHIFT, code:13, move to workspace 4, movetoworkspace, 4 # NOTE: code:13 = key 4 +bindd = $mainMod SHIFT, code:14, move to workspace 5, movetoworkspace, 5 # NOTE: code:14 = key 5 +bindd = $mainMod SHIFT, code:15, move to workspace 6, movetoworkspace, 6 # NOTE: code:15 = key 6 +bindd = $mainMod SHIFT, code:16, move to workspace 7, movetoworkspace, 7 # NOTE: code:16 = key 7 +bindd = $mainMod SHIFT, code:17, move to workspace 8, movetoworkspace, 8 # NOTE: code:17 = key 8 +bindd = $mainMod SHIFT, code:18, move to workspace 9, movetoworkspace, 9 # NOTE: code:18 = key 9 +bindd = $mainMod SHIFT, code:19, move to workspace 10, movetoworkspace, 10 # NOTE: code:19 = key 0 +bindd = $mainMod SHIFT, bracketleft, move to previous workspace, movetoworkspace, -1 # brackets [ +bindd = $mainMod SHIFT, bracketright, move to next workspace, movetoworkspace, +1 # brackets ] # Move active window to a workspace silently mainMod + CTRL [0-9] -bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1 # NOTE: code:10 = key 1 -bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2 # NOTE: code:11 = key 2 -bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3 # NOTE: code:12 = key 3 -bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4 # NOTE: code:13 = key 4 -bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5 # NOTE: code:14 = key 5 -bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6 # NOTE: code:15 = key 6 -bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7 # NOTE: code:16 = key 7 -bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8 # NOTE: code:17 = key 8 -bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9 # NOTE: code:18 = key 9 -bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10 # NOTE: code:19 = key 0 -bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ -bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1 # brackets ] +bindd = $mainMod CTRL, code:10, move silently to workspace 1, movetoworkspacesilent, 1 # NOTE: code:10 = key 1 +bindd = $mainMod CTRL, code:11, move silently to workspace 2, movetoworkspacesilent, 2 # NOTE: code:11 = key 2 +bindd = $mainMod CTRL, code:12, move silently to workspace 3, movetoworkspacesilent, 3 # NOTE: code:12 = key 3 +bindd = $mainMod CTRL, code:13, move silently to workspace 4, movetoworkspacesilent, 4 # NOTE: code:13 = key 4 +bindd = $mainMod CTRL, code:14, move silently to workspace 5, movetoworkspacesilent, 5 # NOTE: code:14 = key 5 +bindd = $mainMod CTRL, code:15, move silently to workspace 6, movetoworkspacesilent, 6 # NOTE: code:15 = key 6 +bindd = $mainMod CTRL, code:16, move silently to workspace 7, movetoworkspacesilent, 7 # NOTE: code:16 = key 7 +bindd = $mainMod CTRL, code:17, move silently to workspace 8, movetoworkspacesilent, 8 # NOTE: code:17 = key 8 +bindd = $mainMod CTRL, code:18, move silently to workspace 9, movetoworkspacesilent, 9 # NOTE: code:18 = key 9 +bindd = $mainMod CTRL, code:19, move silently to workspace 10, movetoworkspacesilent, 10 # NOTE: code:19 = key 0 +bindd = $mainMod CTRL, bracketleft, move silently to previous workspace, movetoworkspacesilent, -1 # brackets [ +bindd = $mainMod CTRL, bracketright, move silently to next workspace, movetoworkspacesilent, +1 # brackets ] # Scroll through existing workspaces with mainMod + scroll -bind = $mainMod, mouse_down, workspace, e+1 -bind = $mainMod, mouse_up, workspace, e-1 -bind = $mainMod, period, workspace, e+1 -bind = $mainMod, comma, workspace, e-1 +bindd = $mainMod, mouse_down, next workspace, workspace, e+1 +bindd = $mainMod, mouse_up, previous workspace, workspace, e-1 +bindd = $mainMod, period, next workspace, workspace, e+1 +bindd = $mainMod, comma, previous workspace, workspace, e-1 # Move/resize windows with mainMod + LMB/RMB and dragging -bindm = $mainMod, mouse:272, movewindow # NOTE: mouse:272 = left click -bindm = $mainMod, mouse:273, resizewindow # NOTE: mouse:272 = right click \ No newline at end of file +bindmd = $mainMod, mouse:272, move window, movewindow # NOTE: mouse:272 = left click +bindmd = $mainMod, mouse:273, resize window, resizewindow # NOTE: mouse:272 = right click diff --git a/config/hypr/scripts/KeyBinds.sh b/config/hypr/scripts/KeyBinds.sh index 3a19390f..46953cc5 100755 --- a/config/hypr/scripts/KeyBinds.sh +++ b/config/hypr/scripts/KeyBinds.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## -# searchable enabled keybinds using rofi +# searchable enabled keybinds using rofi (supports bindd descriptions) # kill yad to not interfere with this binds pkill yad || true @@ -17,23 +17,66 @@ laptop_conf="$HOME/.config/hypr/UserConfigs/Laptops.conf" rofi_theme="$HOME/.config/rofi/config-keybinds.rasi" msg='☣️ NOTE ☣️: Clicking with Mouse or Pressing ENTER will have NO function' -# combine the contents of the keybinds files and filter for keybinds -keybinds=$(cat "$keybinds_conf" "$user_keybinds_conf" | grep -E '^bind') +# collect raw bind lines (strip end-of-line comments) from available files +files=("$keybinds_conf" "$user_keybinds_conf") +[[ -f "$laptop_conf" ]] && files+=("$laptop_conf") -# check if laptop.conf exists and add its keybinds if present -if [[ -f "$laptop_conf" ]]; then - laptop_binds=$(grep -E '^bind' "$laptop_conf") - keybinds+=$'\n'"$laptop_binds" -fi +raw_keybinds=$(cat "${files[@]}" 2>/dev/null \ + | grep -E '^[[:space:]]*bind' \ + | sed -E 's/[[:space:]]+#.*$//') # check for any keybinds to display -if [[ -z "$keybinds" ]]; then +if [[ -z "$raw_keybinds" ]]; then echo "no keybinds found." exit 1 fi -# replace $mainmod with super in the displayed keybinds for rofi -display_keybinds=$(echo "$keybinds" | sed 's/\$mainMod/SUPER/g') +# transform into a readable list: MODS+KEY — DESCRIPTION — DISPATCHER [PARAMS] +display_keybinds=$(echo "$raw_keybinds" | awk -F'=' ' + function trim(s){ gsub(/^[ \t]+|[ \t]+$/,"",s); return s } + /^[[:space:]]*bind/ { + binder=$1; gsub(/[ \t]/, "", binder); + hasdesc = (index(binder, "d")>0); + + rhs=$2; rhs=trim(rhs); + n=split(rhs, a, /[ \t]*,[ \t]*/); + + mods=trim(a[1]); key=(n>=2?trim(a[2]):""); + desc=""; dispatcher=""; params=""; + + if (hasdesc) { + desc=(n>=3?trim(a[3]):""); + dispatcher=(n>=4?trim(a[4]):""); + start=5; + } else { + dispatcher=(n>=3?trim(a[3]):""); + start=4; + } + + for(i=start;i<=n;i++){ if(length(a[i])){ p=trim(a[i]); if(p!="") params = (params?params", ":"") p } } + + gsub(/\$mainMod/,"SUPER",mods); + gsub(/[ \t]+/,"+",mods); + + combo = (mods && key) ? mods "+" key : (key?key:mods); + + if (desc != "") { + if (dispatcher != "" && params != "") + print combo, " — ", desc, " — ", dispatcher, " ", params; + else if (dispatcher != "") + print combo, " — ", desc, " — ", dispatcher; + else + print combo, " — ", desc; + } else { + if (dispatcher != "" && params != "") + print combo, " — ", dispatcher, " ", params; + else if (dispatcher != "") + print combo, " — ", dispatcher; + else + print combo; + } + } +') -# use rofi to display the keybinds with the modified content -echo "$display_keybinds" | rofi -dmenu -i -config "$rofi_theme" -mesg "$msg" \ No newline at end of file +# use rofi to display the keybinds +printf '%s\n' "$display_keybinds" | rofi -dmenu -i -config "$rofi_theme" -mesg "$msg" -- cgit v1.2.3 From f26ef7141a88801b62702df5f2c78b4915111e29 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 30 Oct 2025 22:46:07 -0400 Subject: Small decription changes On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/UserConfigs/UserKeybinds.conf modified: config/hypr/configs/Keybinds.conf --- config/hypr/UserConfigs/UserKeybinds.conf | 16 ++++++++-------- config/hypr/configs/Keybinds.conf | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/UserKeybinds.conf b/config/hypr/UserConfigs/UserKeybinds.conf index 5b257b33..4bebe342 100644 --- a/config/hypr/UserConfigs/UserKeybinds.conf +++ b/config/hypr/UserConfigs/UserKeybinds.conf @@ -18,9 +18,9 @@ source= $UserConfigs/01-UserDefaults.conf #bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu bindd = $mainMod, D, app launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window bindd = $mainMod, B, open default browser, exec, xdg-open "https://" -#bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) -#bind = $mainMod, A, global, quickshell:overviewToggle # desktop overview (if installed) -bindd = $mainMod, Return, terminal, exec, $term +#bindd = $mainMod, A, ags overview, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) +#bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed) +bindd = $mainMod, Return, Open terminal, exec, $term bindd = $mainMod, E, file manager, exec, $files @@ -38,10 +38,10 @@ bindd = $mainMod CTRL, R, rofi theme selector, exec, $scriptsDir/RofiThemeSelect bindd = $mainMod CTRL SHIFT, R, rofi theme selector (modified), exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh bindd = $mainMod SHIFT, F, fullscreen, fullscreen -bindd = $mainMod CTRL, F, fake fullscreen, fullscreen, 1 -bindd = $mainMod, SPACE, toggle floating, togglefloating, -bindd = $mainMod ALT, SPACE, all float mode, exec, hyprctl dispatch workspaceopt allfloat -bindd = $mainMod SHIFT, Return, dropdown terminal, exec, $scriptsDir/Dropterminal.sh $term +bindd = $mainMod CTRL, F, maximize window, fullscreen, 1 +bindd = $mainMod, SPACE, Float current window, togglefloating, +bindd = $mainMod ALT, SPACE, Float all windows, exec, hyprctl dispatch workspaceopt allfloat +bindd = $mainMod SHIFT, Return, DropDown terminal, exec, $scriptsDir/Dropterminal.sh $term # Desktop zooming or magnifier bindd = $mainMod ALT, mouse_down, zoom in, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 2.0}')" @@ -52,7 +52,7 @@ bindd = $mainMod ALT, mouse_up, zoom out, exec, hyprctl keyword cursor:zoom_fact #bind = $mainMod ALT, mouse_up, exec, hyprctl keyword misc:cursor_zoom_factor "$(hyprctl getoption misc:cursor_zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 2.0}')" # Waybar / Bar related -bindd = $mainMod CTRL ALT, B, toggle waybar, exec, pkill -SIGUSR1 waybar +bindd = $mainMod CTRL ALT, B, toggle waybar on/off, exec, pkill -SIGUSR1 waybar bindd = $mainMod CTRL, B, waybar styles menu, exec, $scriptsDir/WaybarStyles.sh bindd = $mainMod ALT, B, waybar layout menu, exec, $scriptsDir/WaybarLayout.sh diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf index 0fa250b7..ebaee30a 100644 --- a/config/hypr/configs/Keybinds.conf +++ b/config/hypr/configs/Keybinds.conf @@ -10,11 +10,11 @@ $UserScripts = $HOME/.config/hypr/UserScripts bindd = CTRL ALT, Delete, exit Hyprland, exec, hyprctl dispatch exit 0 bindd = $mainMod, Q, close active window, killactive, -bindd = $mainMod SHIFT, Q, kill active process, exec, $scriptsDir/KillActiveProcess.sh +bindd = $mainMod SHIFT, Q, Terminate active process, exec, $scriptsDir/KillActiveProcess.sh bindd = CTRL ALT, L, lock screen, exec, $scriptsDir/LockScreen.sh bindd = CTRL ALT, P, powermenu, exec, $scriptsDir/Wlogout.sh bindd = $mainMod SHIFT, N, notification panel, exec, swaync-client -t -sw -bindd = $mainMod SHIFT, E, settings menu, exec, $scriptsDir/Kool_Quick_Settings.sh +bindd = $mainMod SHIFT, E, Quick settings menu, exec, $scriptsDir/Kool_Quick_Settings.sh # Master Layout bindd = $mainMod CTRL, D, remove master, layoutmsg, removemaster -- cgit v1.2.3 From 4687cfc8c6786ebaae169e19219f1cf9f3be982d Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 31 Oct 2025 19:22:24 -0400 Subject: SWWW v0.11.2 uses swww-daemon --format argb now Changed the flag for updated SWWW On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/UserConfigs/Startup_Apps.conf --- config/hypr/UserConfigs/Startup_Apps.conf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf index 2f5c7ae7..4f4fbd22 100644 --- a/config/hypr/UserConfigs/Startup_Apps.conf +++ b/config/hypr/UserConfigs/Startup_Apps.conf @@ -10,7 +10,8 @@ $SwwwRandom = $UserScripts/WallpaperAutoChange.sh $livewallpaper="" # wallpaper stuff -exec-once = swww-daemon --format xrgb +exec-once = swww-daemon --format argb # New flag for v0.11.2 +#exec-once = swww-daemon --format xrgb # old 0.9.5 option #exec-once = mpvpaper '*' -o "load-scripts=no no-audio --loop" $livewallpaper # wallpaper random -- cgit v1.2.3 From 7441f2cb05b6916ff7cb08a8c0f14b7ff865a1b1 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 2 Nov 2025 17:23:53 -0500 Subject: feat: Add smart AGS/Quickshell fallback with OverviewToggle wrapper Implements a robust fallback mechanism for desktop overview functionality that handles both AGS and Quickshell installations gracefully. Changes: - Add OverviewToggle.sh wrapper script that tries Quickshell first, falls back to AGS if unavailable or broken - Update UserKeybinds.conf with new SUPER+A binding to OverviewToggle.sh - Preserve original AGS and Quickshell keybinds as commented references - Simplify copy.sh logic to enable both AGS and QS simultaneously - Remove conflicting keybind toggle logic from copy.sh Benefits: - Users can have both AGS and Quickshell installed simultaneously - Automatic fallback when one tool is broken or unavailable - Quickshell preferred (tried first) as it's more performant - Graceful degradation with user notification if neither available - Auto-starts AGS if installed but not running - Compatible with existing upgrade.sh and ComposeHyprConfigs.sh workflow Technical details: - OverviewToggle.sh checks for running processes before attempting toggle - Uses hyprctl dispatch for Quickshell's global dispatcher - Falls back to ags -t 'overview' with rofi cleanup for AGS - Shows desktop notification if neither tool is available - Script auto-made executable via existing chmod in copy.sh (line 1027) Addresses: Issue where AGS and Quickshell have had recent stability problems, requiring manual keybind switching between them --- config/hypr/UserConfigs/UserKeybinds.conf | 1 + config/hypr/scripts/OverviewToggle.sh | 28 ++++++++++++++++++++++++++++ copy.sh | 21 +++++++-------------- 3 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 config/hypr/scripts/OverviewToggle.sh (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/UserKeybinds.conf b/config/hypr/UserConfigs/UserKeybinds.conf index 4bebe342..17711559 100644 --- a/config/hypr/UserConfigs/UserKeybinds.conf +++ b/config/hypr/UserConfigs/UserKeybinds.conf @@ -18,6 +18,7 @@ source= $UserConfigs/01-UserDefaults.conf #bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu bindd = $mainMod, D, app launcher, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window bindd = $mainMod, B, open default browser, exec, xdg-open "https://" +bindd = $mainMod, A, desktop overview, exec, $scriptsDir/OverviewToggle.sh # toggles quickshell or ags overview (tries QS first, falls back to AGS) #bindd = $mainMod, A, ags overview, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) #bindd = $mainMod, A, Quickshell overview, global, quickshell:overviewToggle # desktop overview (if installed) bindd = $mainMod, Return, Open terminal, exec, $term diff --git a/config/hypr/scripts/OverviewToggle.sh b/config/hypr/scripts/OverviewToggle.sh new file mode 100644 index 00000000..18683984 --- /dev/null +++ b/config/hypr/scripts/OverviewToggle.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # +# Overview toggle wrapper - tries quickshell first, falls back to AGS + +# Try quickshell first if installed +if command -v qs >/dev/null 2>&1; then + # Check if quickshell is running + if pgrep -x qs >/dev/null 2>&1; then + # Try to toggle quickshell overview + hyprctl dispatch global quickshell:overviewToggle 2>/dev/null && exit 0 + fi +fi + +# Fall back to AGS if quickshell failed or isn't available +if command -v ags >/dev/null 2>&1; then + # Check if AGS is running, start it if not + if ! pgrep -x ags >/dev/null 2>&1; then + ags & + sleep 0.5 + fi + # Toggle AGS overview + pkill rofi || true + ags -t 'overview' 2>/dev/null && exit 0 +fi + +# If we get here, neither worked +notify-send "Overview" "Neither Quickshell nor AGS is available" -u low 2>/dev/null || true +exit 1 diff --git a/copy.sh b/copy.sh index 762af601..b4e958a9 100755 --- a/copy.sh +++ b/copy.sh @@ -259,38 +259,31 @@ if command -v blueman-applet >/dev/null 2>&1; then grep -qx 'exec-once = blueman-applet' "$OVERLAY_SA" || echo 'exec-once = blueman-applet' >>"$OVERLAY_SA" fi -# Check if ags is installed edit ags behaviour on configs +# Check if ags is installed and enable it if command -v ags >/dev/null 2>&1; then + echo "${INFO} AGS detected - enabling in startup and refresh scripts" 2>&1 | tee -a "$LOG" OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf" mkdir -p "$(dirname "$OVERLAY_SA")" touch "$OVERLAY_SA" grep -qx 'exec-once = ags' "$OVERLAY_SA" || echo 'exec-once = ags' >>"$OVERLAY_SA" sed -i '/#ags -q && ags &/s/^#//' config/hypr/scripts/RefreshNoWaybar.sh sed -i '/#ags -q && ags &/s/^#//' config/hypr/scripts/Refresh.sh - - # Uncomment the ags overview keybind - sed -i '/^#bind = \$mainMod, A, exec, pkill rofi || true && ags -t '\''overview'\''/s/^#//' config/hypr/UserConfigs/UserKeybinds.conf - - # Comment the quickshell line if not already commented - sed -i '/^\s*bind\s*=\s*\$mainMod,\s*A,\s*global,\s*quickshell:overviewToggle/{s/^\s*/#/}' config/hypr/UserConfigs/UserKeybinds.conf fi -# Check if quickshell is installed; edit quickshell behaviour on configs +# Check if quickshell is installed and enable it if command -v qs >/dev/null 2>&1; then + echo "${INFO} Quickshell detected - enabling in startup and refresh scripts" 2>&1 | tee -a "$LOG" OVERLAY_SA="config/hypr/UserConfigs/Startup_Apps.conf" mkdir -p "$(dirname "$OVERLAY_SA")" touch "$OVERLAY_SA" grep -qx 'exec-once = qs' "$OVERLAY_SA" || echo 'exec-once = qs' >>"$OVERLAY_SA" sed -i '/#pkill qs && qs &/s/^#//' config/hypr/scripts/RefreshNoWaybar.sh sed -i '/#pkill qs && qs &/s/^#//' config/hypr/scripts/Refresh.sh - - # Uncomment the quickshell keybind line - sed -i "/^#bind = \$mainMod, A, global, quickshell:overviewToggle/s/^#//" config/hypr/UserConfigs/UserKeybinds.conf - - # Ensure the ags overview keybind is commented - sed -i "/^\s*bind\s*=\s*\\\$mainMod,\s*A,\s*exec,\s*pkill rofi\s*||\s*true\s*&&\s*ags\s*-t\s*'overview'/{s/^\s*/#/}" config/hypr/UserConfigs/UserKeybinds.conf fi +# Note: The SUPER+A keybind now uses OverviewToggle.sh which automatically +# tries quickshell first and falls back to AGS, so both can be installed + printf "\n%.0s" {1..1} # Checking if neovim or vim is installed and offer user if they want to make as default editor -- cgit v1.2.3 From 8361dcc058fb41225630934d37bae65dd9b76e43 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 5 Nov 2025 03:05:23 -0500 Subject: chore(release): v2.3.18\n\nKeybinds\n- Initialize SUPER+J/K to match default layout at login via scripts/KeybindsLayoutInit.sh\n- Keep ChangeLayout.sh dynamic rebinds on layout toggle\n- Credit: Suresh Thagunna (https://github.com/suresh466)\n\nStartup\n- Source vendor Startup_Apps/WindowRules first, then UserConfigs overlay to restore baseline autostarts while honoring user additions\n- Quick Settings: Edit Startup Apps opens full vendor defaults\n\nMeta\n- Version marker: config/hypr/v2.3.18 --- CHANGELOG.md | 9 +++++++++ config/hypr/UserConfigs/ENVariables.conf | 2 +- config/hypr/v2.3.17 | 5 ----- config/hypr/v2.3.18 | 5 +++++ 4 files changed, 15 insertions(+), 6 deletions(-) delete mode 100644 config/hypr/v2.3.17 create mode 100644 config/hypr/v2.3.18 (limited to 'config/hypr/UserConfigs') diff --git a/CHANGELOG.md b/CHANGELOG.md index dd01997b..f6623708 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog — JAK's Hyprland Dotfiles +## v2.3.18 — 2025-11-05 + +- Keybinds: initialize SUPER+J/K at login to match the default layout (master or dwindle). + - Adds scripts/KeybindsLayoutInit.sh and wires it to Startup_Apps so J/K and O (togglesplit) are correct on first session. + - ChangeLayout.sh continues to rebind dynamically when layouts are toggled. + - Credits: [Suresh Thagunna](https://github.com/suresh466) for identifying the mismatch and proposing an auto-alignment approach. +- Startup config sourcing: load vendor Startup_Apps and WindowRules first, then user overlays, restoring baseline autostarts while keeping user additions. +- Quick Settings: “Edit Startup Apps” opens the full vendor defaults for clarity. + ## October 2025 ### ⌨️ Keybinds diff --git a/config/hypr/UserConfigs/ENVariables.conf b/config/hypr/UserConfigs/ENVariables.conf index d82fc2a6..4e736dc3 100644 --- a/config/hypr/UserConfigs/ENVariables.conf +++ b/config/hypr/UserConfigs/ENVariables.conf @@ -5,7 +5,7 @@ # environment-variables # Current Version of JakooLit Dotfiles: -env = DOTS_VERSION,2.3.17 +env = DOTS_VERSION,2.3.18 # Toolkit Backend Variables env = GDK_BACKEND,wayland,x11,* diff --git a/config/hypr/v2.3.17 b/config/hypr/v2.3.17 deleted file mode 100644 index 31b3414d..00000000 --- a/config/hypr/v2.3.17 +++ /dev/null @@ -1,5 +0,0 @@ -### https://github.com/JaKooLit ### -## https://github.com/JaKooLit/Hyprland-Dots -## This is to have a reference of which version would be - -## note that this will always be higher than the released versions \ No newline at end of file diff --git a/config/hypr/v2.3.18 b/config/hypr/v2.3.18 new file mode 100644 index 00000000..31b3414d --- /dev/null +++ b/config/hypr/v2.3.18 @@ -0,0 +1,5 @@ +### https://github.com/JaKooLit ### +## https://github.com/JaKooLit/Hyprland-Dots +## This is to have a reference of which version would be + +## note that this will always be higher than the released versions \ No newline at end of file -- cgit v1.2.3 From 74b5fe09f3a0b04093ff1442b1dfc683f40d3eca Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 5 Nov 2025 21:59:55 -0500 Subject: Dropped duplicate startup_apps.sh script Removed the ComposeHyprConfitg.sh script Your branch is up to date with 'origin/development'. Changes to be committed: deleted: config/hypr/UserConfigs/Startup_Apps.conf modified: config/hypr/hyprland.conf deleted: config/hypr/scripts/ComposeHyprConfigs.sh modified: config/hypr/scripts/Kool_Quick_Settings.sh modified: copy.sh modified: upgrade.sh --- config/hypr/UserConfigs/Startup_Apps.conf | 62 ---------------- config/hypr/hyprland.conf | 2 - config/hypr/scripts/ComposeHyprConfigs.sh | 113 ----------------------------- config/hypr/scripts/Kool_Quick_Settings.sh | 2 +- copy.sh | 4 - upgrade.sh | 4 - 6 files changed, 1 insertion(+), 186 deletions(-) delete mode 100644 config/hypr/UserConfigs/Startup_Apps.conf delete mode 100755 config/hypr/scripts/ComposeHyprConfigs.sh (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf deleted file mode 100644 index 4f4fbd22..00000000 --- a/config/hypr/UserConfigs/Startup_Apps.conf +++ /dev/null @@ -1,62 +0,0 @@ -# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # -# Commands and Apps to be executed at launch - -$scriptsDir = $HOME/.config/hypr/scripts -$UserScripts = $HOME/.config/hypr/UserScripts - -$wallDIR=$HOME/Pictures/wallpapers -$lock = $scriptsDir/LockScreen.sh -$SwwwRandom = $UserScripts/WallpaperAutoChange.sh -$livewallpaper="" - -# wallpaper stuff -exec-once = swww-daemon --format argb # New flag for v0.11.2 -#exec-once = swww-daemon --format xrgb # old 0.9.5 option -#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 - -# Initialize 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 -#exec-once = ags -#exec-once = blueman-applet -#exec-once = rog-control-center -exec-once = waybar -exec-once = qs # quickshell AGS Desktop Overview alternative - -#clipboard manager -exec-once = wl-paste --type text --watch cliphist store -exec-once = wl-paste --type image --watch cliphist store - -# Rainbow borders -exec-once = $UserScripts/RainbowBorders.sh - -# Starting hypridle to start hyprlock -exec-once = hypridle - -# Weather script to populate cache on startup -exec-once = $UserScripts/WeatherWrap.sh - - -# Here are list of features available but disabled by default -# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper - -#gnome polkit for nixos -#exec-once = $scriptsDir/Polkit-NixOS.sh - -# xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start) -#exec-once = $scriptsDir/PortalHyprland.sh diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index 8f0fc1e5..8eb91df7 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -17,7 +17,6 @@ $UserConfigs = $HOME/.config/hypr/UserConfigs # User Configs directory path # Load vendor defaults, then user additions/overrides source= $configs/Startup_Apps.conf -source= $UserConfigs/Startup_Apps.conf source= $UserConfigs/ENVariables.conf # Environment variables to load @@ -30,7 +29,6 @@ source= $UserConfigs/LaptopDisplay.conf # Laptop display related. You need to re # Load vendor defaults, then user additions source= $configs/WindowRules.conf # all about Hyprland Window Rules and Layer Rules (defaults) -source= $UserConfigs/WindowRules.conf # user rules and layer rules source= $UserConfigs/UserDecorations.conf # Decorations config file diff --git a/config/hypr/scripts/ComposeHyprConfigs.sh b/config/hypr/scripts/ComposeHyprConfigs.sh deleted file mode 100755 index f0928a24..00000000 --- a/config/hypr/scripts/ComposeHyprConfigs.sh +++ /dev/null @@ -1,113 +0,0 @@ -#!/usr/bin/env bash -# Compose merged Hyprland configs for Startup_Apps and WindowRules -set -euo pipefail - -BASE_DIR="$HOME/.config/hypr" -BASE_CFG_DIR="$BASE_DIR/configs" -USER_DIR="$BASE_DIR/UserConfigs" -GEN_DIR="$BASE_DIR/generated" - -mkdir -p "$GEN_DIR" - -log() { printf "[compose] %s\n" "$*"; } - -# Trim leading/trailing whitespace -trim() { sed -E 's/^\s+//;s/\s+$//'; } - -# Normalize spaces in a directive line -normalize() { awk '{$1=$1;print}'; } - -# Build merged Startup_Apps.conf -compose_startup_apps() { - local base_file="$BASE_CFG_DIR/Startup_Apps.conf" - local user_file="$USER_DIR/Startup_Apps.conf" - local disable_file="$USER_DIR/Startup_Apps.disable" - local out_file="$GEN_DIR/Startup_Apps.conf" - - : >"$out_file" - - # Header and variable lines come from base - if [[ -f "$base_file" ]]; then - # Copy all non exec-once lines (comments, blanks, variables, etc.) - grep -Ev '^\s*exec-once\s*=' "$base_file" || true >>"$out_file" - fi - - # Collect exec-once commands (the right side of '=') - declare -A cmds=() - - if [[ -f "$base_file" ]]; then - while IFS= read -r line; do - [[ "$line" =~ ^\s*exec-once\s*= ]] || continue - cmd="${line#*=}" - cmd="$(echo "$cmd" | trim)" - cmds["$cmd"]=1 - done <"$base_file" - fi - - if [[ -f "$user_file" ]]; then - while IFS= read -r line; do - [[ "$line" =~ ^\s*exec-once\s*= ]] || continue - cmd="${line#*=}" - cmd="$(echo "$cmd" | trim)" - cmds["$cmd"]=1 - done <"$user_file" - fi - - # Apply disables (exact match of command string) - if [[ -f "$disable_file" ]]; then - while IFS= read -r d; do - d="$(echo "$d" | trim)" - [[ -z "$d" || "$d" =~ ^# ]] && continue - # Never disable our layout-aware keybind init unless user re-enables via explicit edit here - if [[ "$d" == "\$scriptsDir/KeybindsLayoutInit.sh" ]]; then - continue - fi - unset 'cmds[$d]' - done <"$disable_file" - fi - - # Emit combined exec-once (stable sort) - for k in "${!cmds[@]}"; do echo "$k"; done | sort -u | while IFS= read -r cmd; do - [[ -z "$cmd" ]] && continue - printf "exec-once = %s\n" "$cmd" >>"$out_file" - done - - log "Wrote $out_file" -} - -# Build merged WindowRules.conf -compose_window_rules() { - local base_file="$BASE_CFG_DIR/WindowRules.conf" - local user_file="$USER_DIR/WindowRules.conf" - local disable_file="$USER_DIR/WindowRules.disable" - local out_file="$GEN_DIR/WindowRules.conf" - - : >"$out_file" - echo "# Generated merged WindowRules" >>"$out_file" - - declare -A rules=() - add_rules() { - local f="$1" - [[ -f "$f" ]] || return 0 - grep -E '^(windowrule|layerrule)\s*=' "$f" | trim | while IFS= read -r r; do - rules["$r"]=1 - done - } - - add_rules "$base_file" - add_rules "$user_file" - - if [[ -f "$disable_file" ]]; then - while IFS= read -r d; do - d="$(echo "$d" | trim)" - [[ -z "$d" || "$d" =~ ^# ]] && continue - unset 'rules[$d]' - done <"$disable_file" - fi - - for r in "${!rules[@]}"; do echo "$r"; done | sort -u >>"$out_file" - log "Wrote $out_file" -} - -compose_startup_apps -compose_window_rules \ No newline at end of file diff --git a/config/hypr/scripts/Kool_Quick_Settings.sh b/config/hypr/scripts/Kool_Quick_Settings.sh index d6e1b089..16742492 100755 --- a/config/hypr/scripts/Kool_Quick_Settings.sh +++ b/config/hypr/scripts/Kool_Quick_Settings.sh @@ -55,7 +55,7 @@ main() { case "$choice" in "view/edit User Defaults") file="$UserConfigs/01-UserDefaults.conf" ;; "view/edit ENV variables") file="$UserConfigs/ENVariables.conf" ;; - "view/edit Window Rules") file="$UserConfigs/WindowRules.conf" ;; + "view/edit Window Rules") file="$configs/WindowRules.conf" ;; "view/edit User Keybinds") file="$UserConfigs/UserKeybinds.conf" ;; "view/edit User Settings") file="$UserConfigs/UserSettings.conf" ;; "view/edit Startup Apps") file="$configs/Startup_Apps.conf" ;; diff --git a/copy.sh b/copy.sh index cd5f5212..b1cc6e1a 100755 --- a/copy.sh +++ b/copy.sh @@ -933,10 +933,6 @@ if [ -d "$BACKUP_DIR_PATH" ]; then done fi -# Compose merged configs (Startup_Apps and WindowRules) -if [ -x "$DIRPATH/scripts/ComposeHyprConfigs.sh" ]; then - "$DIRPATH/scripts/ComposeHyprConfigs.sh" 2>&1 | tee -a "$LOG" || true -fi printf "\n%.0s" {1..1} diff --git a/upgrade.sh b/upgrade.sh index 9aee3c2c..07ee1f8b 100755 --- a/upgrade.sh +++ b/upgrade.sh @@ -198,10 +198,6 @@ if version_gt "$latest_version" "$stored_version"; then # Set executable for initial-boot.sh chmod +x "$HOME/.config/hypr/initial-boot.sh" 2>&1 | tee -a "$LOG" - # Compose merged configs (Startup_Apps and WindowRules) - if [ -x "$HOME/.config/hypr/scripts/ComposeHyprConfigs.sh" ]; then - "$HOME/.config/hypr/scripts/ComposeHyprConfigs.sh" 2>&1 | tee -a "$LOG" || true - fi else echo "$MAGENTA Upgrade declined. No files or directories changed" 2>&1 | tee -a "$LOG" fi -- cgit v1.2.3 From 4015eea740904baca74a7e6c772e866128ac2a2f Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 19 Nov 2025 17:39:16 -0500 Subject: Added 1st pass at WindowsRules v3 On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/hypr/UserConfigs/WindowRules.conf-v3.conf --- config/hypr/UserConfigs/WindowRules.conf-v3.conf | 692 +++++++++++++++++++++++ 1 file changed, 692 insertions(+) create mode 100644 config/hypr/UserConfigs/WindowRules.conf-v3.conf (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/WindowRules.conf-v3.conf b/config/hypr/UserConfigs/WindowRules.conf-v3.conf new file mode 100644 index 00000000..a35504f1 --- /dev/null +++ b/config/hypr/UserConfigs/WindowRules.conf-v3.conf @@ -0,0 +1,692 @@ +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # +# For window rules and layerrules +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# NOTES: This is only for Hyprland > 0.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 + +# notif tags + +# KooL settings tag + +# terminal tags + +# email tags + +# project tags + +# screenshare tags + +# IM tags + +# game tags + +# gamestore tags + +# file-manager tags + +# wallpaper tags + +# multimedia tags + +# multimedia-video tags + +# settings tags + +# viewer tags + +# Some special override rules + +# POSITION +# windowrule = center,floating:1 # warning, it cause even the menu to float and center. +#windowrule = move 72% 7%,title:^(Firefox)$ + +# windowrule to avoid idle for fullscreen apps +#windowrule = idleinhibit fullscreen, class:^(*)$ +#windowrule = idleinhibit fullscreen, title:^(*)$ + +# 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, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ +#windowrule = float, title:^(Firefox)$ + +# windowrule - ######### float popups and dialogue ####### + + + + +# END of float popups and dialogue ####### + +# OPACITY + +# SIZE + +#windowrule = size 25% 25%, title:^(Picture-in-Picture)$ +#windowrule = size 25% 25%, title:^(Firefox)$ + +# PINNING +#windowrule = pin,title:^(Firefox)$ + +# windowrule - extras + +# BLUR & FULLSCREEN + + +#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products + +#This will gonna make the VS Code bluer like other apps + +#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 = 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 + +# --- Auto-generated window rules --- +windowrule { + name = windowrule-1 + match:class = ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$ + tag = +browser +} + +windowrule { + name = windowrule-2 + match:class = ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$ + tag = +browser +} + +windowrule { + name = windowrule-3 + match:class = ^(chrome-.+-Default)$ # Chrome PWAs + tag = +browser +} + +windowrule { + name = windowrule-4 + match:class = ^([Cc]hromium)$ + tag = +browser +} + +windowrule { + name = windowrule-5 + match:class = ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$ + tag = +browser +} + +windowrule { + name = windowrule-6 + match:class = ^(Brave-browser(-beta|-dev|-unstable)?)$ + tag = +browser +} + +windowrule { + name = windowrule-7 + match:class = ^([Tt]horium-browser|[Cc]achy-browser)$ + tag = +browser +} + +windowrule { + name = windowrule-8 + match:class = ^(zen-alpha|zen)$ + tag = +browser +} + +windowrule { + name = windowrule-9 + match:class = ^(swaync-control-center|swaync-notification-window|swaync-client|class)$ + tag = +notif +} + +windowrule { + name = windowrule-10 + match:title = ^(KooL Quick Cheat Sheet)$ + tag = +KooL_Cheat +} + +windowrule { + name = windowrule-11 + match:title = ^(KooL Hyprland Settings)$ + tag = +KooL_Settings +} + +windowrule { + name = windowrule-12 + match:class = ^(nwg-displays|nwg-look)$ + tag = +KooL-Settings +} + +windowrule { + name = windowrule-13 + match:class = ^(Alacritty|kitty|kitty-dropterm)$ + tag = +terminal +} + +windowrule { + name = windowrule-14 + match:class = ^([Tt]hunderbird|org.gnome.Evolution)$ + tag = +email +} + +windowrule { + name = windowrule-15 + match:class = ^(eu.betterbird.Betterbird)$ + tag = +email +} + +windowrule { + name = windowrule-16 + match:class = ^(codium|codium-url-handler|VSCodium)$ + tag = +projects +} + +windowrule { + name = windowrule-17 + match:class = ^(VSCode|code-url-handler)$ + tag = +projects +} + +windowrule { + name = windowrule-18 + match:class = ^(jetbrains-.+)$ # JetBrains IDEs + tag = +projects +} + +windowrule { + name = windowrule-19 + match:class = ^(com.obsproject.Studio)$ + tag = +screenshare +} + +windowrule { + name = windowrule-20 + match:class = ^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$ + tag = +im +} + +windowrule { + name = windowrule-21 + match:class = ^([Ff]erdium)$ + center = on + float = on + size = 60% = 70% + tag = +im +} + +windowrule { + name = windowrule-22 + match:class = ^([Ww]hatsapp-for-linux)$ + tag = +im +} + +windowrule { + name = windowrule-23 + match:class = ^(ZapZap|com.rtosta.zapzap)$ + tag = +im +} + +windowrule { + name = windowrule-24 + match:class = ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$ + tag = +im +} + +windowrule { + name = windowrule-25 + match:class = ^(teams-for-linux)$ + tag = +im +} + +windowrule { + name = windowrule-26 + match:class = ^(im.riot.Riot|Element)$ # Element Matrix client + tag = +im +} + +windowrule { + name = windowrule-27 + match:class = ^(gamescope)$ + tag = +games +} + +windowrule { + name = windowrule-28 + match:class = ^(steam_app_\d+)$ + tag = +games +} + +windowrule { + name = windowrule-29 + match:class = ^([Ss]team)$ + tag = +gamestore +} + +windowrule { + name = windowrule-30 + match:title = ^([Ll]utris)$ + tag = +gamestore +} + +windowrule { + name = windowrule-31 + match:class = ^(com.heroicgameslauncher.hgl)$ + tag = +gamestore +} + +windowrule { + name = windowrule-32 + match:class = ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$ + tag = +file-manager +} + +windowrule { + name = windowrule-33 + match:class = ^(app.drey.Warp)$ + tag = +file-manager +} + +windowrule { + name = windowrule-34 + match:class = ^([Ww]aytrogen)$ + tag = +wallpaper +} + +windowrule { + name = windowrule-35 + match:class = ^([Aa]udacious)$ + tag = +multimedia +} + +windowrule { + name = windowrule-36 + match:class = ^([Mm]pv|vlc)$ + tag = +multimedia_video +} + +windowrule { + name = windowrule-37 + match:title = ^(ROG Control)$ + center = on + tag = +settings +} + +windowrule { + name = windowrule-38 + match:class = ^(wihotspot(-gui)?)$ # wifi hotspot + tag = +settings +} + +windowrule { + name = windowrule-39 + match:class = ^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer + tag = +settings +} + +windowrule { + name = windowrule-40 + match:class = ^(gnome-disks|wihotspot(-gui)?)$ + tag = +settings +} + +windowrule { + name = windowrule-41 + match:title = (Kvantum Manager) + tag = +settings +} + +windowrule { + name = windowrule-42 + match:class = ^(file-roller|org.gnome.FileRoller)$ # archive manager + tag = +settings +} + +windowrule { + name = windowrule-43 + match:class = ^(nm-applet|nm-connection-editor|blueman-manager)$ + tag = +settings +} + +windowrule { + name = windowrule-44 + match:class = ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$ + center = on + tag = +settings +} + +windowrule { + name = windowrule-45 + match:class = ^(qt5ct|qt6ct|[Yy]ad)$ + tag = +settings +} + +windowrule { + name = windowrule-46 + match:class = (xdg-desktop-portal-gtk) + tag = +settings +} + +windowrule { + name = windowrule-47 + match:class = ^(org.kde.polkit-kde-authentication-agent-1)$ + tag = +settings +} + +windowrule { + name = windowrule-48 + match:class = ^([Rr]ofi)$ + tag = +settings +} + +windowrule { + name = windowrule-49 + match:class = ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor + tag = +viewer +} + +windowrule { + name = windowrule-50 + match:class = ^(evince)$ # document viewer + tag = +viewer +} + +windowrule { + name = windowrule-51 + match:class = ^(eog|org.gnome.Loupe)$ # image viewer + tag = +viewer +} + +windowrule { + name = windowrule-52 + match:tag = multimedia_video* + no_blur = on + opacity = 1.0 +} + +windowrule { + name = windowrule-53 + match:tag = KooL_Cheat* + center = on + float = on + size = 65% = 90% +} + +windowrule { + name = windowrule-54 + match:class = ([Tt]hunar) + match:title = negative:(.*[Tt]hunar.*) + center = on + float = on +} + +windowrule { + name = windowrule-55 + match:tag = KooL-Settings* + center = on + float = on +} + +windowrule { + name = windowrule-56 + match:title = ^(Keybindings)$ + center = on +} + +windowrule { + name = windowrule-57 + match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ + center = on + size = 60% = 70% +} + +windowrule { + name = windowrule-58 + match:title = ^(Picture-in-Picture)$ + float = on + keepaspectratio = 1 + move = 72% = 7% + opacity = 0.95 = 0.75 + pin = 0 +} + +windowrule { + name = windowrule-59 + match:fullscreen = 1 + idle_inhibit = fullscreen +} + +windowrule { + name = windowrule-60 + match:tag = wallpaper* + float = on + opacity = 0.9 = 0.7 + size = 70% = 70% +} + +windowrule { + name = windowrule-61 + match:tag = settings* + float = on + opacity = 0.8 = 0.7 + size = 70% = 70% +} + +windowrule { + name = windowrule-62 + match:tag = viewer* + float = on + opacity = 0.82 = 0.75 +} + +windowrule { + name = windowrule-63 + match:class = ([Zz]oom|onedriver|onedriver-launcher)$ + float = on +} + +windowrule { + name = windowrule-64 + match:class = (org.gnome.Calculator) + match:title = (Calculator) + float = on +} + +windowrule { + name = windowrule-65 + match:class = ^(mpv|com.github.rafostar.Clapper)$ + float = on +} + +windowrule { + name = windowrule-66 + match:class = ^([Qq]alculate-gtk)$ + float = on +} + +windowrule { + name = windowrule-67 + match:title = ^(Authentication Required)$ + center = on + float = on +} + +windowrule { + name = windowrule-68 + match:class = (codium|codium-url-handler|VSCodium) + match:title = negative:(.*codium.*|.*VSCodium.*) + float = on +} + +windowrule { + name = windowrule-69 + match:class = ^(com.heroicgameslauncher.hgl)$ + match:title = negative:(Heroic Games Launcher) + float = on +} + +windowrule { + name = windowrule-70 + match:class = ^([Ss]team)$ + match:title = negative:^([Ss]team)$ + float = on +} + +windowrule { + name = windowrule-71 + match:title = ^(Add Folder to Workspace)$ + center = on + float = on + size = 70% = 60% +} + +windowrule { + name = windowrule-72 + match:title = ^(Save As)$ + center = on + float = on + size = 70% = 60% +} + +windowrule { + name = windowrule-73 + match:initial_title = (Open Files) + float = on + size = 70% = 60% +} + +windowrule { + name = windowrule-74 + match:title = ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background + center = on + float = on + size = 16% = 12% +} + +windowrule { + name = windowrule-75 + match:tag = browser* + opacity = 0.99 = 0.8 +} + +windowrule { + name = windowrule-76 + match:tag = projects* + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-77 + match:tag = im* + opacity = 0.94 = 0.86 +} + +windowrule { + name = windowrule-78 + match:tag = multimedia* + opacity = 0.94 = 0.86 +} + +windowrule { + name = windowrule-79 + match:tag = file-manager* + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-80 + match:tag = terminal* + opacity = 0.9 = 0.7 +} + +windowrule { + name = windowrule-81 + match:class = ^(gedit|org.gnome.TextEditor|mousepad)$ + opacity = 0.8 = 0.7 +} + +windowrule { + name = windowrule-82 + match:class = ^(deluge)$ + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-83 + match:class = ^(seahorse)$ # gnome-keyring gui + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-84 + match:class = ^(code)$ + opacity = 0.8 + opacity = 0.9 +} + +windowrule { + name = windowrule-85 + match:tag = games* + fullscreen = 0 + no_blur = on +} + +windowrule { + name = windowrule-86 + match:class = ^(jetbrains-*) + no_initial_focus = on +} + +windowrule { + name = windowrule-87 + match:title = ^(wind.*)$ + no_initial_focus = on +} + +# --- Auto-generated layer rules --- +layerrule { + name = layerrule-1 + match:namespace = rofi + blur = on + ignore_alpha = 0 +} + +layerrule { + name = layerrule-2 + match:namespace = notifications + blur = on + ignore_alpha = 0 +} + +layerrule { + name = layerrule-3 + match:namespace = quickshell:overview + blur = on + ignore_alpha = 0 + ignore_alpha = 0.5 +} -- cgit v1.2.3 From 7cb667e732602e36762c31abefc1bfbb6f01c7b3 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 19 Nov 2025 18:36:51 -0500 Subject: Fixing v3 WindowRules b4 testings Tested the basic changes in NixOS. Found a couple rules here that were wrong. On branch development Your branch is up to date with 'origin/development'. Changes to be committed: renamed: config/hypr/UserConfigs/WindowRules.conf-v3.conf -> config/hypr/UserConfigs/WindowRules-v3.conf --- config/hypr/UserConfigs/WindowRules-v3.conf | 671 ++++++++++++++++++++++ config/hypr/UserConfigs/WindowRules.conf-v3.conf | 692 ----------------------- 2 files changed, 671 insertions(+), 692 deletions(-) create mode 100644 config/hypr/UserConfigs/WindowRules-v3.conf delete mode 100644 config/hypr/UserConfigs/WindowRules.conf-v3.conf (limited to 'config/hypr/UserConfigs') diff --git a/config/hypr/UserConfigs/WindowRules-v3.conf b/config/hypr/UserConfigs/WindowRules-v3.conf new file mode 100644 index 00000000..f093faf6 --- /dev/null +++ b/config/hypr/UserConfigs/WindowRules-v3.conf @@ -0,0 +1,671 @@ +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # +# For window rules and layerrules +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# NOTES: This is only for Hyprland > 0.52 + +# 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 +# notif tags +# KooL settings tag +# terminal tags +# email tags +# project tags +# screenshare tags +# IM tags +# game tags +# gamestore tags +# file-manager tags +# wallpaper tags +# multimedia tags +# multimedia-video tags +# settings tags +# viewer tags +# Some special override rules + +# POSITION +# windowrule = center,floating:1 # warning, it cause even the menu to float and center. +#windowrule = move 72% 7%,title:^(Firefox)$ + +# windowrule to avoid idle for fullscreen apps +#windowrule = idleinhibit fullscreen, class:^(*)$ +#windowrule = idleinhibit fullscreen, title:^(*)$ + +# 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, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ +#windowrule = float, title:^(Firefox)$ + +# windowrule - ######### float popups and dialogue ####### + + +# OPACITY + +# SIZE + +#windowrule = size 25% 25%, title:^(Picture-in-Picture)$ +#windowrule = size 25% 25%, title:^(Firefox)$ + +# PINNING +#windowrule = pin,title:^(Firefox)$ + +# windowrule - extras + +# BLUR & FULLSCREEN + + +#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products + +#This will gonna make the VS Code bluer like other apps + +#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 = 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 + +# --- Auto-generated window rules --- +windowrule { + name = windowrule-1 + match:class = ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$ + tag = +browser +} + +windowrule { + name = windowrule-2 + match:class = ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$ + tag = +browser +} + +windowrule { + name = windowrule-3 + match:class = ^(chrome-.+-Default)$ # Chrome PWAs + tag = +browser +} + +windowrule { + name = windowrule-4 + match:class = ^([Cc]hromium)$ + tag = +browser +} + +windowrule { + name = windowrule-5 + match:class = ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$ + tag = +browser +} + +windowrule { + name = windowrule-6 + match:class = ^(Brave-browser(-beta|-dev|-unstable)?)$ + tag = +browser +} + +windowrule { + name = windowrule-7 + match:class = ^([Tt]horium-browser|[Cc]achy-browser)$ + tag = +browser +} + +windowrule { + name = windowrule-8 + match:class = ^(zen-alpha|zen)$ + tag = +browser +} + +windowrule { + name = windowrule-9 + match:class = ^(swaync-control-center|swaync-notification-window|swaync-client|class)$ + tag = +notif +} + +windowrule { + name = windowrule-10 + match:title = ^(KooL Quick Cheat Sheet)$ + tag = +KooL_Cheat +} + +windowrule { + name = windowrule-11 + match:title = ^(KooL Hyprland Settings)$ + tag = +KooL_Settings +} + +windowrule { + name = windowrule-12 + match:class = ^(nwg-displays|nwg-look)$ + tag = +KooL-Settings +} + +windowrule { + name = windowrule-13 + match:class = ^(Alacritty|kitty|kitty-dropterm)$ + tag = +terminal +} + +windowrule { + name = windowrule-14 + match:class = ^([Tt]hunderbird|org.gnome.Evolution)$ + tag = +email +} + +windowrule { + name = windowrule-15 + match:class = ^(eu.betterbird.Betterbird)$ + tag = +email +} + +windowrule { + name = windowrule-16 + match:class = ^(codium|codium-url-handler|VSCodium)$ + tag = +projects +} + +windowrule { + name = windowrule-17 + match:class = ^(VSCode|code-url-handler)$ + tag = +projects +} + +windowrule { + name = windowrule-18 + match:class = ^(jetbrains-.+)$ # JetBrains IDEs + tag = +projects +} + +windowrule { + name = windowrule-19 + match:class = ^(com.obsproject.Studio)$ + tag = +screenshare +} + +windowrule { + name = windowrule-20 + match:class = ^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$ + tag = +im +} + +windowrule { + name = windowrule-21 + match:class = ^([Ff]erdium)$ + center = on + float = on + size = 60% = 70% + tag = +im +} + +windowrule { + name = windowrule-22 + match:class = ^([Ww]hatsapp-for-linux)$ + tag = +im +} + +windowrule { + name = windowrule-23 + match:class = ^(ZapZap|com.rtosta.zapzap)$ + tag = +im +} + +windowrule { + name = windowrule-24 + match:class = ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$ + tag = +im +} + +windowrule { + name = windowrule-25 + match:class = ^(teams-for-linux)$ + tag = +im +} + +windowrule { + name = windowrule-26 + match:class = ^(im.riot.Riot|Element)$ # Element Matrix client + tag = +im +} + +windowrule { + name = windowrule-27 + match:class = ^(gamescope)$ + tag = +games +} + +windowrule { + name = windowrule-28 + match:class = ^(steam_app_\d+)$ + tag = +games +} + +windowrule { + name = windowrule-29 + match:class = ^([Ss]team)$ + tag = +gamestore +} + +windowrule { + name = windowrule-30 + match:title = ^([Ll]utris)$ + tag = +gamestore +} + +windowrule { + name = windowrule-31 + match:class = ^(com.heroicgameslauncher.hgl)$ + tag = +gamestore +} + +windowrule { + name = windowrule-32 + match:class = ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$ + tag = +file-manager +} + +windowrule { + name = windowrule-33 + match:class = ^(app.drey.Warp)$ + tag = +file-manager +} + +windowrule { + name = windowrule-34 + match:class = ^([Ww]aytrogen)$ + tag = +wallpaper +} + +windowrule { + name = windowrule-35 + match:class = ^([Aa]udacious)$ + tag = +multimedia +} + +windowrule { + name = windowrule-36 + match:class = ^([Mm]pv|vlc)$ + tag = +multimedia_video +} + +windowrule { + name = windowrule-37 + match:title = ^(ROG Control)$ + center = on + tag = +settings +} + +windowrule { + name = windowrule-38 + match:class = ^(wihotspot(-gui)?)$ # wifi hotspot + tag = +settings +} + +windowrule { + name = windowrule-39 + match:class = ^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer + tag = +settings +} + +windowrule { + name = windowrule-40 + match:class = ^(gnome-disks|wihotspot(-gui)?)$ + tag = +settings +} + +windowrule { + name = windowrule-41 + match:title = (Kvantum Manager) + tag = +settings +} + +windowrule { + name = windowrule-42 + match:class = ^(file-roller|org.gnome.FileRoller)$ # archive manager + tag = +settings +} + +windowrule { + name = windowrule-43 + match:class = ^(nm-applet|nm-connection-editor|blueman-manager)$ + tag = +settings +} + +windowrule { + name = windowrule-44 + match:class = ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$ + center = on + tag = +settings +} + +windowrule { + name = windowrule-45 + match:class = ^(qt5ct|qt6ct|[Yy]ad)$ + tag = +settings +} + +windowrule { + name = windowrule-46 + match:class = (xdg-desktop-portal-gtk) + tag = +settings +} + +windowrule { + name = windowrule-47 + match:class = ^(org.kde.polkit-kde-authentication-agent-1)$ + tag = +settings +} + +windowrule { + name = windowrule-48 + match:class = ^([Rr]ofi)$ + tag = +settings +} + +windowrule { + name = windowrule-49 + match:class = ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor + tag = +viewer +} + +windowrule { + name = windowrule-50 + match:class = ^(evince)$ # document viewer + tag = +viewer +} + +windowrule { + name = windowrule-51 + match:class = ^(eog|org.gnome.Loupe)$ # image viewer + tag = +viewer +} + +windowrule { + name = windowrule-52 + match:tag = multimedia_video* + no_blur = on + opacity = 1.0 +} + +windowrule { + name = windowrule-53 + match:tag = KooL_Cheat* + center = on + float = on + size = 65% = 90% +} + +windowrule { + name = windowrule-54 + match:class = ([Tt]hunar) + match:title = negative:(.*[Tt]hunar.*) + center = on + float = on +} + +windowrule { + name = windowrule-55 + match:tag = KooL-Settings* + center = on + float = on +} + +windowrule { + name = windowrule-56 + match:title = ^(Keybindings)$ + center = on +} + +windowrule { + name = windowrule-57 + match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ + center = on + size = 60% = 70% +} + +windowrule { + name = windowrule-58 + match:title = ^(Picture-in-Picture)$ + float = on + move = 72% = 7% + opacity = 0.95 = 0.75 + pin = 0 +} + +windowrule { + name = windowrule-59 + match:fullscreen = 1 + idle_inhibit = fullscreen +} + +windowrule { + name = windowrule-60 + match:tag = wallpaper* + float = on + opacity = 0.9 = 0.7 + size = 70% = 70% +} + +windowrule { + name = windowrule-61 + match:tag = settings* + float = on + opacity = 0.8 = 0.7 + size = 70% = 70% +} + +windowrule { + name = windowrule-62 + match:tag = viewer* + float = on + opacity = 0.82 = 0.75 +} + +windowrule { + name = windowrule-63 + match:class = ([Zz]oom|onedriver|onedriver-launcher)$ + float = on +} + +windowrule { + name = windowrule-64 + match:class = (org.gnome.Calculator) + match:title = (Calculator) + float = on +} + +windowrule { + name = windowrule-65 + match:class = ^(mpv|com.github.rafostar.Clapper)$ + float = on +} + +windowrule { + name = windowrule-66 + match:class = ^([Qq]alculate-gtk)$ + float = on +} + +windowrule { + name = windowrule-67 + match:title = ^(Authentication Required)$ + center = on + float = on +} + +windowrule { + name = windowrule-68 + match:class = (codium|codium-url-handler|VSCodium) + match:title = negative:(.*codium.*|.*VSCodium.*) + float = on +} + +windowrule { + name = windowrule-69 + match:class = ^(com.heroicgameslauncher.hgl)$ + match:title = negative:(Heroic Games Launcher) + float = on +} + +windowrule { + name = windowrule-70 + match:class = ^([Ss]team)$ + match:title = negative:^([Ss]team)$ + float = on +} + +windowrule { + name = windowrule-71 + match:title = ^(Add Folder to Workspace)$ + center = on + float = on + size = 70% = 60% +} + +windowrule { + name = windowrule-72 + match:title = ^(Save As)$ + center = on + float = on + size = 70% = 60% +} + +windowrule { + name = windowrule-73 + match:initial_title = (Open Files) + float = on + size = 70% = 60% +} + +windowrule { + name = windowrule-74 + match:title = ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background + center = on + float = on + size = 16% = 12% +} + +windowrule { + name = windowrule-75 + match:tag = browser* + opacity = 0.99 = 0.8 +} + +windowrule { + name = windowrule-76 + match:tag = projects* + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-77 + match:tag = im* + opacity = 0.94 = 0.86 +} + +windowrule { + name = windowrule-78 + match:tag = multimedia* + opacity = 0.94 = 0.86 +} + +windowrule { + name = windowrule-79 + match:tag = file-manager* + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-80 + match:tag = terminal* + opacity = 0.9 = 0.7 +} + +windowrule { + name = windowrule-81 + match:class = ^(gedit|org.gnome.TextEditor|mousepad)$ + opacity = 0.8 = 0.7 +} + +windowrule { + name = windowrule-82 + match:class = ^(deluge)$ + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-83 + match:class = ^(seahorse)$ # gnome-keyring gui + opacity = 0.9 = 0.8 +} + +windowrule { + name = windowrule-84 + match:class = ^(code)$ + opacity = 0.8 + opacity = 0.9 +} + +windowrule { + name = windowrule-85 + match:tag = games* + fullscreen = 0 + no_blur = on +} + +windowrule { + name = windowrule-86 + match:class = ^(jetbrains-*) + no_initial_focus = on +} + +windowrule { + name = windowrule-87 + match:title = ^(wind.*)$ + no_initial_focus = on +} + +# --- Auto-generated layer rules --- +layerrule { + name = layerrule-1 + match:namespace = rofi + blur = on + ignore_alpha = 0 +} + +layerrule { + name = layerrule-2 + match:namespace = notifications + blur = on + ignore_alpha = 0 +} + +layerrule { + name = layerrule-3 + match:namespace = quickshell:overview + blur = on + ignore_alpha = 0 + ignore_alpha = 0.5 +} diff --git a/config/hypr/UserConfigs/WindowRules.conf-v3.conf b/config/hypr/UserConfigs/WindowRules.conf-v3.conf deleted file mode 100644 index a35504f1..00000000 --- a/config/hypr/UserConfigs/WindowRules.conf-v3.conf +++ /dev/null @@ -1,692 +0,0 @@ -# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # -# For window rules and layerrules -# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - -# NOTES: This is only for Hyprland > 0.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 - -# notif tags - -# KooL settings tag - -# terminal tags - -# email tags - -# project tags - -# screenshare tags - -# IM tags - -# game tags - -# gamestore tags - -# file-manager tags - -# wallpaper tags - -# multimedia tags - -# multimedia-video tags - -# settings tags - -# viewer tags - -# Some special override rules - -# POSITION -# windowrule = center,floating:1 # warning, it cause even the menu to float and center. -#windowrule = move 72% 7%,title:^(Firefox)$ - -# windowrule to avoid idle for fullscreen apps -#windowrule = idleinhibit fullscreen, class:^(*)$ -#windowrule = idleinhibit fullscreen, title:^(*)$ - -# 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, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ -#windowrule = float, title:^(Firefox)$ - -# windowrule - ######### float popups and dialogue ####### - - - - -# END of float popups and dialogue ####### - -# OPACITY - -# SIZE - -#windowrule = size 25% 25%, title:^(Picture-in-Picture)$ -#windowrule = size 25% 25%, title:^(Firefox)$ - -# PINNING -#windowrule = pin,title:^(Firefox)$ - -# windowrule - extras - -# BLUR & FULLSCREEN - - -#This not gonna take the focus to the window that appears when hovering over some of the parts of the IntelliJ Products - -#This will gonna make the VS Code bluer like other apps - -#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 = 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 - -# --- Auto-generated window rules --- -windowrule { - name = windowrule-1 - match:class = ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$ - tag = +browser -} - -windowrule { - name = windowrule-2 - match:class = ^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$ - tag = +browser -} - -windowrule { - name = windowrule-3 - match:class = ^(chrome-.+-Default)$ # Chrome PWAs - tag = +browser -} - -windowrule { - name = windowrule-4 - match:class = ^([Cc]hromium)$ - tag = +browser -} - -windowrule { - name = windowrule-5 - match:class = ^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$ - tag = +browser -} - -windowrule { - name = windowrule-6 - match:class = ^(Brave-browser(-beta|-dev|-unstable)?)$ - tag = +browser -} - -windowrule { - name = windowrule-7 - match:class = ^([Tt]horium-browser|[Cc]achy-browser)$ - tag = +browser -} - -windowrule { - name = windowrule-8 - match:class = ^(zen-alpha|zen)$ - tag = +browser -} - -windowrule { - name = windowrule-9 - match:class = ^(swaync-control-center|swaync-notification-window|swaync-client|class)$ - tag = +notif -} - -windowrule { - name = windowrule-10 - match:title = ^(KooL Quick Cheat Sheet)$ - tag = +KooL_Cheat -} - -windowrule { - name = windowrule-11 - match:title = ^(KooL Hyprland Settings)$ - tag = +KooL_Settings -} - -windowrule { - name = windowrule-12 - match:class = ^(nwg-displays|nwg-look)$ - tag = +KooL-Settings -} - -windowrule { - name = windowrule-13 - match:class = ^(Alacritty|kitty|kitty-dropterm)$ - tag = +terminal -} - -windowrule { - name = windowrule-14 - match:class = ^([Tt]hunderbird|org.gnome.Evolution)$ - tag = +email -} - -windowrule { - name = windowrule-15 - match:class = ^(eu.betterbird.Betterbird)$ - tag = +email -} - -windowrule { - name = windowrule-16 - match:class = ^(codium|codium-url-handler|VSCodium)$ - tag = +projects -} - -windowrule { - name = windowrule-17 - match:class = ^(VSCode|code-url-handler)$ - tag = +projects -} - -windowrule { - name = windowrule-18 - match:class = ^(jetbrains-.+)$ # JetBrains IDEs - tag = +projects -} - -windowrule { - name = windowrule-19 - match:class = ^(com.obsproject.Studio)$ - tag = +screenshare -} - -windowrule { - name = windowrule-20 - match:class = ^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$ - tag = +im -} - -windowrule { - name = windowrule-21 - match:class = ^([Ff]erdium)$ - center = on - float = on - size = 60% = 70% - tag = +im -} - -windowrule { - name = windowrule-22 - match:class = ^([Ww]hatsapp-for-linux)$ - tag = +im -} - -windowrule { - name = windowrule-23 - match:class = ^(ZapZap|com.rtosta.zapzap)$ - tag = +im -} - -windowrule { - name = windowrule-24 - match:class = ^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$ - tag = +im -} - -windowrule { - name = windowrule-25 - match:class = ^(teams-for-linux)$ - tag = +im -} - -windowrule { - name = windowrule-26 - match:class = ^(im.riot.Riot|Element)$ # Element Matrix client - tag = +im -} - -windowrule { - name = windowrule-27 - match:class = ^(gamescope)$ - tag = +games -} - -windowrule { - name = windowrule-28 - match:class = ^(steam_app_\d+)$ - tag = +games -} - -windowrule { - name = windowrule-29 - match:class = ^([Ss]team)$ - tag = +gamestore -} - -windowrule { - name = windowrule-30 - match:title = ^([Ll]utris)$ - tag = +gamestore -} - -windowrule { - name = windowrule-31 - match:class = ^(com.heroicgameslauncher.hgl)$ - tag = +gamestore -} - -windowrule { - name = windowrule-32 - match:class = ^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$ - tag = +file-manager -} - -windowrule { - name = windowrule-33 - match:class = ^(app.drey.Warp)$ - tag = +file-manager -} - -windowrule { - name = windowrule-34 - match:class = ^([Ww]aytrogen)$ - tag = +wallpaper -} - -windowrule { - name = windowrule-35 - match:class = ^([Aa]udacious)$ - tag = +multimedia -} - -windowrule { - name = windowrule-36 - match:class = ^([Mm]pv|vlc)$ - tag = +multimedia_video -} - -windowrule { - name = windowrule-37 - match:title = ^(ROG Control)$ - center = on - tag = +settings -} - -windowrule { - name = windowrule-38 - match:class = ^(wihotspot(-gui)?)$ # wifi hotspot - tag = +settings -} - -windowrule { - name = windowrule-39 - match:class = ^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer - tag = +settings -} - -windowrule { - name = windowrule-40 - match:class = ^(gnome-disks|wihotspot(-gui)?)$ - tag = +settings -} - -windowrule { - name = windowrule-41 - match:title = (Kvantum Manager) - tag = +settings -} - -windowrule { - name = windowrule-42 - match:class = ^(file-roller|org.gnome.FileRoller)$ # archive manager - tag = +settings -} - -windowrule { - name = windowrule-43 - match:class = ^(nm-applet|nm-connection-editor|blueman-manager)$ - tag = +settings -} - -windowrule { - name = windowrule-44 - match:class = ^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$ - center = on - tag = +settings -} - -windowrule { - name = windowrule-45 - match:class = ^(qt5ct|qt6ct|[Yy]ad)$ - tag = +settings -} - -windowrule { - name = windowrule-46 - match:class = (xdg-desktop-portal-gtk) - tag = +settings -} - -windowrule { - name = windowrule-47 - match:class = ^(org.kde.polkit-kde-authentication-agent-1)$ - tag = +settings -} - -windowrule { - name = windowrule-48 - match:class = ^([Rr]ofi)$ - tag = +settings -} - -windowrule { - name = windowrule-49 - match:class = ^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor - tag = +viewer -} - -windowrule { - name = windowrule-50 - match:class = ^(evince)$ # document viewer - tag = +viewer -} - -windowrule { - name = windowrule-51 - match:class = ^(eog|org.gnome.Loupe)$ # image viewer - tag = +viewer -} - -windowrule { - name = windowrule-52 - match:tag = multimedia_video* - no_blur = on - opacity = 1.0 -} - -windowrule { - name = windowrule-53 - match:tag = KooL_Cheat* - center = on - float = on - size = 65% = 90% -} - -windowrule { - name = windowrule-54 - match:class = ([Tt]hunar) - match:title = negative:(.*[Tt]hunar.*) - center = on - float = on -} - -windowrule { - name = windowrule-55 - match:tag = KooL-Settings* - center = on - float = on -} - -windowrule { - name = windowrule-56 - match:title = ^(Keybindings)$ - center = on -} - -windowrule { - name = windowrule-57 - match:class = ^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ - center = on - size = 60% = 70% -} - -windowrule { - name = windowrule-58 - match:title = ^(Picture-in-Picture)$ - float = on - keepaspectratio = 1 - move = 72% = 7% - opacity = 0.95 = 0.75 - pin = 0 -} - -windowrule { - name = windowrule-59 - match:fullscreen = 1 - idle_inhibit = fullscreen -} - -windowrule { - name = windowrule-60 - match:tag = wallpaper* - float = on - opacity = 0.9 = 0.7 - size = 70% = 70% -} - -windowrule { - name = windowrule-61 - match:tag = settings* - float = on - opacity = 0.8 = 0.7 - size = 70% = 70% -} - -windowrule { - name = windowrule-62 - match:tag = viewer* - float = on - opacity = 0.82 = 0.75 -} - -windowrule { - name = windowrule-63 - match:class = ([Zz]oom|onedriver|onedriver-launcher)$ - float = on -} - -windowrule { - name = windowrule-64 - match:class = (org.gnome.Calculator) - match:title = (Calculator) - float = on -} - -windowrule { - name = windowrule-65 - match:class = ^(mpv|com.github.rafostar.Clapper)$ - float = on -} - -windowrule { - name = windowrule-66 - match:class = ^([Qq]alculate-gtk)$ - float = on -} - -windowrule { - name = windowrule-67 - match:title = ^(Authentication Required)$ - center = on - float = on -} - -windowrule { - name = windowrule-68 - match:class = (codium|codium-url-handler|VSCodium) - match:title = negative:(.*codium.*|.*VSCodium.*) - float = on -} - -windowrule { - name = windowrule-69 - match:class = ^(com.heroicgameslauncher.hgl)$ - match:title = negative:(Heroic Games Launcher) - float = on -} - -windowrule { - name = windowrule-70 - match:class = ^([Ss]team)$ - match:title = negative:^([Ss]team)$ - float = on -} - -windowrule { - name = windowrule-71 - match:title = ^(Add Folder to Workspace)$ - center = on - float = on - size = 70% = 60% -} - -windowrule { - name = windowrule-72 - match:title = ^(Save As)$ - center = on - float = on - size = 70% = 60% -} - -windowrule { - name = windowrule-73 - match:initial_title = (Open Files) - float = on - size = 70% = 60% -} - -windowrule { - name = windowrule-74 - match:title = ^(SDDM Background)$ #KooL's Dots YAD for setting SDDM background - center = on - float = on - size = 16% = 12% -} - -windowrule { - name = windowrule-75 - match:tag = browser* - opacity = 0.99 = 0.8 -} - -windowrule { - name = windowrule-76 - match:tag = projects* - opacity = 0.9 = 0.8 -} - -windowrule { - name = windowrule-77 - match:tag = im* - opacity = 0.94 = 0.86 -} - -windowrule { - name = windowrule-78 - match:tag = multimedia* - opacity = 0.94 = 0.86 -} - -windowrule { - name = windowrule-79 - match:tag = file-manager* - opacity = 0.9 = 0.8 -} - -windowrule { - name = windowrule-80 - match:tag = terminal* - opacity = 0.9 = 0.7 -} - -windowrule { - name = windowrule-81 - match:class = ^(gedit|org.gnome.TextEditor|mousepad)$ - opacity = 0.8 = 0.7 -} - -windowrule { - name = windowrule-82 - match:class = ^(deluge)$ - opacity = 0.9 = 0.8 -} - -windowrule { - name = windowrule-83 - match:class = ^(seahorse)$ # gnome-keyring gui - opacity = 0.9 = 0.8 -} - -windowrule { - name = windowrule-84 - match:class = ^(code)$ - opacity = 0.8 - opacity = 0.9 -} - -windowrule { - name = windowrule-85 - match:tag = games* - fullscreen = 0 - no_blur = on -} - -windowrule { - name = windowrule-86 - match:class = ^(jetbrains-*) - no_initial_focus = on -} - -windowrule { - name = windowrule-87 - match:title = ^(wind.*)$ - no_initial_focus = on -} - -# --- Auto-generated layer rules --- -layerrule { - name = layerrule-1 - match:namespace = rofi - blur = on - ignore_alpha = 0 -} - -layerrule { - name = layerrule-2 - match:namespace = notifications - blur = on - ignore_alpha = 0 -} - -layerrule { - name = layerrule-3 - match:namespace = quickshell:overview - blur = on - ignore_alpha = 0 - ignore_alpha = 0.5 -} -- cgit v1.2.3 From aefafcfdaad27df4d0943c475840a93fdb7b0e82 Mon Sep 17 00:00:00 2001 From: brockar Date: Sat, 22 Nov 2025 11:50:26 -0300 Subject: feat: Add new laptop gesture for zoom --- CHANGES-v2.3.18.md | 1 + config/hypr/UserConfigs/UserSettings.conf | 2 ++ 2 files changed, 3 insertions(+) (limited to 'config/hypr/UserConfigs') diff --git a/CHANGES-v2.3.18.md b/CHANGES-v2.3.18.md index 69aabec4..29eb7c41 100644 --- a/CHANGES-v2.3.18.md +++ b/CHANGES-v2.3.18.md @@ -67,5 +67,6 @@ - Binds now include descriptions. - Switched from `bind` to `bindd` - Improves usability of keybind search +- Add new laptop gesture for zoom system. Thanks to everyone that contributed, or reported issues. diff --git a/config/hypr/UserConfigs/UserSettings.conf b/config/hypr/UserConfigs/UserSettings.conf index f81ccc6a..4802e79a 100644 --- a/config/hypr/UserConfigs/UserSettings.conf +++ b/config/hypr/UserConfigs/UserSettings.conf @@ -73,6 +73,8 @@ gestures { workspace_swipe_create_new = true workspace_swipe_forever = true #workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right + gesture = 3, up, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor * 1.5}')" + gesture = 3, down, dispatcher, exec, hyprctl keyword cursor:zoom_factor "$(hyprctl getoption cursor:zoom_factor | awk 'NR==1 {factor = $2; if (factor < 1) {factor = 1}; print factor / 1.5}')" } misc { -- cgit v1.2.3