From 7373df1e73f2adc5669b77d431fd8b16c2ea60f8 Mon Sep 17 00:00:00 2001 From: Donald Williams <129223418+dwilliam62@users.noreply.github.com> Date: Mon, 22 Dec 2025 21:43:34 -0500 Subject: Add optional keybinding for audio increment/decrement Introduced a new keybinding feature for audio control. --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index ebbb51d8..e4895436 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog — JAK's Hyprland Dotfiles +## v2.3.19 — 2025-12-22 +- Added: + - Optional keybinding to increment/decrement audio in 1% steps vs. 5% + - Thanks [rgarofono](https://github.com/rgarofano) for the code + + ## v2.3.18 — 2025-12-10 ## FIXES: -- cgit v1.2.3 From 7612539f21326332250c906cdf78fdb97bec9a1c Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 23 Dec 2025 23:17:12 -0500 Subject: Switch KB layout updated for new location System settings move to hypr/configs/Systemsettings On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/SwitchKeyboardLayout.sh modified: config/hypr/scripts/Tak0-Per-Window-Switch.sh --- CHANGELOG.md | 4 +- config/hypr/scripts/SwitchKeyboardLayout.sh | 79 +++++++++++++-------------- config/hypr/scripts/Tak0-Per-Window-Switch.sh | 33 ++++++----- 3 files changed, 58 insertions(+), 58 deletions(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index e4895436..fa37c8f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,12 @@ # Changelog — JAK's Hyprland Dotfiles ## v2.3.19 — 2025-12-22 + - Added: - Optional keybinding to increment/decrement audio in 1% steps vs. 5% - Thanks [rgarofono](https://github.com/rgarofano) for the code - +- Fixed: + - Switch Layout was looking in wrong location ## v2.3.18 — 2025-12-10 diff --git a/config/hypr/scripts/SwitchKeyboardLayout.sh b/config/hypr/scripts/SwitchKeyboardLayout.sh index 18a9517e..34d008a1 100755 --- a/config/hypr/scripts/SwitchKeyboardLayout.sh +++ b/config/hypr/scripts/SwitchKeyboardLayout.sh @@ -3,24 +3,23 @@ # This is for changing kb_layouts. Set kb_layouts in $settings_file layout_file="$HOME/.cache/kb_layout" -settings_file="$HOME/.config/hypr/UserConfigs/UserSettings.conf" +settings_file="$HOME/.config/hypr/configs/SystemSettings.conf" notif_icon="$HOME/.config/swaync/images/ja.png" # Refined ignore list with patterns or specific device names ignore_patterns=( - "--(avrcp)" - "Bluetooth Speaker" + "--(avrcp)" + "Bluetooth Speaker" "Other Device Name" - ) - +) # Create layout file with default layout if it does not exist if [ ! -f "$layout_file" ]; then echo "Creating layout file..." default_layout=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2 | tr -d '[:space:]' | cut -d ',' -f 1 2>/dev/null) default_layout=${default_layout:-"us"} # Default to 'us' layout - echo "$default_layout" > "$layout_file" + echo "$default_layout" >"$layout_file" echo "Default layout set to $default_layout" fi @@ -32,7 +31,7 @@ if [ -f "$settings_file" ]; then kb_layout_line=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2) # Remove leading and trailing spaces around each layout kb_layout_line=$(echo "$kb_layout_line" | tr -d '[:space:]') - IFS=',' read -r -a layout_mapping <<< "$kb_layout_line" + IFS=',' read -r -a layout_mapping <<<"$kb_layout_line" else echo "Settings file not found!" exit 1 @@ -49,56 +48,56 @@ for ((i = 0; i < layout_count; i++)); do fi done -next_index=$(( (current_index + 1) % layout_count )) +next_index=$(((current_index + 1) % layout_count)) new_layout="${layout_mapping[next_index]}" echo "Next layout: $new_layout" # Function to get keyboard names get_keyboard_names() { - hyprctl devices -j | jq -r '.keyboards[].name' + hyprctl devices -j | jq -r '.keyboards[].name' } # Function to check if a device matches any ignore pattern is_ignored() { - local device_name=$1 - for pattern in "${ignore_patterns[@]}"; do - if [[ "$device_name" == *"$pattern"* ]]; then - return 0 # Device matches ignore pattern - fi - done - return 1 # Device does not match any ignore pattern + local device_name=$1 + for pattern in "${ignore_patterns[@]}"; do + if [[ "$device_name" == *"$pattern"* ]]; then + return 0 # Device matches ignore pattern + fi + done + return 1 # Device does not match any ignore pattern } # Function to change keyboard layout change_layout() { - local error_found=false - - while read -r name; do - if is_ignored "$name"; then - echo "Skipping ignored device: $name" - continue - fi - - echo "Switching layout for $name to $new_layout..." - hyprctl switchxkblayout "$name" "$next_index" - if [ $? -ne 0 ]; then - echo "Error while switching layout for $name." >&2 - error_found=true - fi - done <<< "$(get_keyboard_names)" - - $error_found && return 1 - return 0 + local error_found=false + + while read -r name; do + if is_ignored "$name"; then + echo "Skipping ignored device: $name" + continue + fi + + echo "Switching layout for $name to $new_layout..." + hyprctl switchxkblayout "$name" "$next_index" + if [ $? -ne 0 ]; then + echo "Error while switching layout for $name." >&2 + error_found=true + fi + done <<<"$(get_keyboard_names)" + + $error_found && return 1 + return 0 } # Execute layout change and notify if ! change_layout; then - notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed" - echo "Layout change failed." >&2 - exit 1 + notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed" + echo "Layout change failed." >&2 + exit 1 else - notify-send -u low -i "$notif_icon" " kb_layout: $new_layout" - echo "Layout change notification sent." + notify-send -u low -i "$notif_icon" " kb_layout: $new_layout" + echo "Layout change notification sent." fi -echo "$new_layout" > "$layout_file" +echo "$new_layout" >"$layout_file" diff --git a/config/hypr/scripts/Tak0-Per-Window-Switch.sh b/config/hypr/scripts/Tak0-Per-Window-Switch.sh index 76b6ad2d..7879fb85 100755 --- a/config/hypr/scripts/Tak0-Per-Window-Switch.sh +++ b/config/hypr/scripts/Tak0-Per-Window-Switch.sh @@ -1,5 +1,5 @@ ################################################################## -# # +# # # # # TAK_0'S Per-Window-Switch # # # @@ -7,21 +7,14 @@ # # # Just a little script that I made to switch keyboard layouts # # per-window instead of global switching for the more # -# smooth and comfortable workflow. # +# smooth and comfortable workflow. # # # ################################################################## - - - - - - - -# This is for changing kb_layouts. Set kb_layouts in +# This is for changing kb_layouts. Set kb_layouts in MAP_FILE="$HOME/.cache/kb_layout_per_window" -CFG_FILE="$HOME/.config/hypr/UserConfigs/UserSettings.conf" +CFG_FILE="$HOME/.config/hypr/configs/SystemSettings.conf" ICON="$HOME/.config/swaync/images/ja.png" SCRIPT_NAME="$(basename "$0")" @@ -49,8 +42,8 @@ get_keyboards() { # Save window-specific layout save_map() { local W=$1 L=$2 - grep -v "^${W}:" "$MAP_FILE" > "$MAP_FILE.tmp" - echo "${W}:${L}" >> "$MAP_FILE.tmp" + grep -v "^${W}:" "$MAP_FILE" >"$MAP_FILE.tmp" + echo "${W}:${L}" >>"$MAP_FILE.tmp" mv "$MAP_FILE.tmp" "$MAP_FILE" } @@ -82,7 +75,7 @@ cmd_toggle() { break fi done - NEXT=$(( (i+1) % count )) + NEXT=$(((i + 1) % count)) do_switch "$NEXT" save_map "$W" "${kb_layouts[NEXT]}" notify-send -u low -i "$ICON" "kb_layout: ${kb_layouts[NEXT]}" @@ -104,7 +97,10 @@ cmd_restore() { # Listen to focus events and restore window-specific layouts subscribe() { local SOCKET2="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" - [[ -S "$SOCKET2" ]] || { echo "Error: Hyprland socket not found." >&2; exit 1; } + [[ -S "$SOCKET2" ]] || { + echo "Error: Hyprland socket not found." >&2 + exit 1 + } socat -u UNIX-CONNECT:"$SOCKET2" - | while read -r line; do [[ "$line" =~ ^activewindow ]] && cmd_restore @@ -118,6 +114,9 @@ fi # CLI case "$1" in - toggle|"") cmd_toggle ;; - *) echo "Usage: $SCRIPT_NAME [toggle]" >&2; exit 1 ;; +toggle | "") cmd_toggle ;; +*) + echo "Usage: $SCRIPT_NAME [toggle]" >&2 + exit 1 + ;; esac -- cgit v1.2.3 From f7725c6feeebdd1046e7bc3109f24bf40087da49 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 24 Dec 2025 23:54:53 -0500 Subject: Updated CHANGELOG On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index fa37c8f9..3b924b5c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ - Thanks [rgarofono](https://github.com/rgarofano) for the code - Fixed: - Switch Layout was looking in wrong location + - SUPER - J/K not working in both `master` and `dwindle` layouts + - You also get notification message on layout change + - Thanks [@suresh466](https://github.com/suresh466) for fixing it ## v2.3.18 — 2025-12-10 -- cgit v1.2.3 From cafaa576cbe7018f4c3ef3301fde16b807e74190 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Mon, 29 Dec 2025 06:23:59 -0500 Subject: Updated CHANGELOG --- CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b924b5c..fc6bf78e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ # Changelog — JAK's Hyprland Dotfiles -## v2.3.19 — 2025-12-22 +## v2.3.19 + +- 2025-12-29 + - Fixed pathing in Wallust script + - Thank you [Lumethra](https://github.com/Lumethra) + +— 2025-12-22 - Added: - Optional keybinding to increment/decrement audio in 1% steps vs. 5% -- cgit v1.2.3 From 2ae39ff4ea20d67e38300a0f5ac5445a3af1c64a Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 31 Dec 2025 00:20:30 -0500 Subject: Updated CHANGELOG --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index fc6bf78e..27f07cf0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ ## v2.3.19 +- 2025-12-31 + - Fixed rule for `Gnome Calculator` + - Thanks Warlord for finding/fixing that + - Fixed rule for `yad` + - Size was being overridden by `settings` tag + - `~/Pictures` now follows `XDG dir` vs. hard coded + - Thanks for Jaël Champagne Gareau for the code + - Fixed `opache toggle` + - `Weather.py` and `Weather.sh` updated and improved + - Thank you Lumethra + - Added netowrk check to `WeatherWrap` script + - Thank you Maximilian Zhu + - 2025-12-29 - Fixed pathing in Wallust script - Thank you [Lumethra](https://github.com/Lumethra) -- cgit v1.2.3 From 63f6b0c8aa02939646229900be84fe38d7aabbcc Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 31 Dec 2025 23:42:02 -0500 Subject: Added sample rules to start apps on specific workspaces They are commented out for now When they were active by default it caused new user confusion and many support requests On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/WindowRules-config-v3.conf --- CHANGELOG.md | 2 ++ config/hypr/configs/WindowRules-config-v3.conf | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 27f07cf0..bd80cac8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,8 @@ - Thank you Lumethra - Added netowrk check to `WeatherWrap` script - Thank you Maximilian Zhu + - Added sample workspace rules to start apps on specific workspaces + - They are commented out but serve as references - 2025-12-29 - Fixed pathing in Wallust script diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index d0200ad4..62c7afdf 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -5,6 +5,25 @@ # NOTES: This is only for Hyprland > 0.52.1 # note for ja: This should NOT be implemented on Debian and Ubuntu +# Some samples on hwo to start apps on specific workspaces + +# windowrule move to workspace +#windowrule = workspace 1, match:tag email* +#windowrule = workspace 2, match:tag browser* +#windowrule = workspace 3, match:class ^([Tt]hunar)$ +#windowrule = workspace 3, match:tag projects* +#windowrule = workspace 5, match:tag gamestore* +#windowrule = workspace 7, match:tag im* +#windowrule = workspace 8, match:tag games* + +#windowrule move to workspace (silent) +#windowrule = workspace 4 silent, match:tag screenshare* +#windowrule = workspace 6 silent, match:class ^(virt-manager)$ +#windowrule = workspace 6 silent, match:class ^(.virt-manager-wrapped)$ +#windowrule = workspace 9 silent, match:tag multimedia* + + + # windowrule - tags - add apps under appropriate tag to use the same settings # browser tags windowrule = match:class ^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr|[Ff]irefox-bin)$, tag +browser -- cgit v1.2.3 From 4dbf3d82fd51fd96b86a19f9a9bcd0d7e02d569d Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 1 Jan 2026 05:51:18 -0500 Subject: Updated CHANGELOG for new blur effect On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index bd80cac8..22a25f75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## v2.3.19 +- 2026-01-01 +- Added more blur and enabled xray + - Thank you [TheAhumMaitra](https://github.com/TheAhumMaitra) + - 2025-12-31 - Fixed rule for `Gnome Calculator` - Thanks Warlord for finding/fixing that @@ -12,7 +16,7 @@ - Fixed `opache toggle` - `Weather.py` and `Weather.sh` updated and improved - Thank you Lumethra - - Added netowrk check to `WeatherWrap` script + - Added network check to `WeatherWrap` script - Thank you Maximilian Zhu - Added sample workspace rules to start apps on specific workspaces - They are commented out but serve as references -- cgit v1.2.3 From 3ca6417a0a4636f2a8721d635a9958247911f2b0 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 4 Jan 2026 01:52:25 -0500 Subject: Added rule for modal and fixed alt-tab for max'd windows On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/configs/SystemSettings.conf modified: config/hypr/configs/WindowRules-config-v3.conf --- CHANGELOG.md | 14 ++++++++++++++ config/hypr/configs/SystemSettings.conf | 4 ++++ config/hypr/configs/WindowRules-config-v3.conf | 3 +++ 3 files changed, 21 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 22a25f75..43cc9856 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,20 @@ ## v2.3.19 +- 2026-01-04 +- Fullscreen or maxixmized would exit using `ALT-TAB` (cycle next/bring-to-front) + - User `GoodBorn` found this fix + ``` + misc { + on_focus_under_fullscreen = 1 + # 0 - Default, no change + # 1 - New focused window takes over fullscreen (Windows-like Alt-Tab) + # 2 - New focused window stays behind the fullscreen one + } + ``` +- Added: modal rule so popup diaglog, like `Save as` or `Open File` center and float by default + - `windowrule = float on, center on, match:modal:1` + - 2026-01-01 - Added more blur and enabled xray - Thank you [TheAhumMaitra](https://github.com/TheAhumMaitra) diff --git a/config/hypr/configs/SystemSettings.conf b/config/hypr/configs/SystemSettings.conf index 44521156..af8fe7a6 100644 --- a/config/hypr/configs/SystemSettings.conf +++ b/config/hypr/configs/SystemSettings.conf @@ -93,6 +93,10 @@ misc { enable_anr_dialog = true # Application not Responding (ANR) anr_missed_pings = 15 # ANR Threshold default 1 is too low allow_session_lock_restore = true # Prevent lockscreen crash when resume from suspend + on_focus_under_fullscreen = 1 + # 0 - Default, no change + # 1 - New focused window takes over fullscreen (Windows-like Alt-Tab) + # 2 - New focused window stays behind the fullscreen one } #opengl { diff --git a/config/hypr/configs/WindowRules-config-v3.conf b/config/hypr/configs/WindowRules-config-v3.conf index 8f639c5d..d9d180d2 100644 --- a/config/hypr/configs/WindowRules-config-v3.conf +++ b/config/hypr/configs/WindowRules-config-v3.conf @@ -139,6 +139,9 @@ windowrule = match:class ^([Qq]alculate-gtk)$, float on windowrule = match:class ^([Ff]erdium)$, float on windowrule = match:title ^(Picture-in-Picture)$, float on +# Float and center dialog boxes by default +windowrule = float on, center on, match:modal:1 + # windowrule - ######### float popups and dialogue ####### windowrule = match:title ^(Authentication Required)$, float on, center on windowrule = match:class (codium|codium-url-handler|VSCodium) match:title negative:(.*codium.*|.*VSCodium.*), float on -- cgit v1.2.3 From 296411955a376adf4a39468b1f251cef8a31fe4f Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 6 Jan 2026 23:50:56 -0500 Subject: Updated CHANGELOG removed backup file On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md deleted: config/hypr/scripts/ThemeChanger.sh.ori --- CHANGELOG.md | 16 +++++++++++++++- config/hypr/scripts/ThemeChanger.sh.ori | 27 --------------------------- 2 files changed, 15 insertions(+), 28 deletions(-) delete mode 100755 config/hypr/scripts/ThemeChanger.sh.ori (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 43cc9856..f778c622 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,18 @@ ## v2.3.19 +- 2026-01-06 + - Added Global Theme Changer. + - There are many themes to choose from + - `SUPER + T` + - Added "Glass Style" taken from `ML4W` dotfiles + - Thank you [TheAhumMaitra](https://github.com/TheAhumMaitra) + - Fixed more WindowRules + - 2026-01-04 -- Fullscreen or maxixmized would exit using `ALT-TAB` (cycle next/bring-to-front) +- Fullscreen or maximized would exit using `ALT-TAB` (cycle next/bring-to-front) - User `GoodBorn` found this fix + ``` misc { on_focus_under_fullscreen = 1 @@ -13,6 +22,11 @@ # 2 - New focused window stays behind the fullscreen one } ``` + + > Note: The above change only works on Hyprland v0.53+. + > Users with lower will have to comment that line out. + > `~/.config/hypr/UserSettings/SystemSettings.conf` + - Added: modal rule so popup diaglog, like `Save as` or `Open File` center and float by default - `windowrule = float on, center on, match:modal:1` diff --git a/config/hypr/scripts/ThemeChanger.sh.ori b/config/hypr/scripts/ThemeChanger.sh.ori deleted file mode 100755 index 15534258..00000000 --- a/config/hypr/scripts/ThemeChanger.sh.ori +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -# SPDX-FileCopyrightText: 2025-present Ahum Maitra theahummaitra@gmail.com -# -# SPDX-License-Identifier: GPL-3.0-or-later - -# Repository url : https://github.com/TheAhumMaitra/cautious-waddle - -# User choice -choice=$(wallust theme list \ - | sed '1d' \ - | sed 's/^- //' \ - | rofi -dmenu -p "Select Global Theme") - -# If user requested to exit, then exit -[[ -z "$choice" ]] && exit 0 - -# Apply the theme -wallust theme "$choice" - -# Inform user about theme changed -notify-send "Global theme changed" "Global Theme selected $choice" - -# Give warning to user for Waybar theme refresh -notify-send "Press SUPER+ALT+R to Refresh Waybar Theme" -- cgit v1.2.3 From c0a774442d1d880e46d692d8c8875d560f6b0050 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 7 Jan 2026 23:51:58 -0500 Subject: Updated CHANGELOG On branch development Your branch is ahead of 'origin/development' by 1 commit. (use "git push" to publish your local commits) Changes to be committed: modified: CHANGELOG.md --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index f778c622..91da190a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ - Added "Glass Style" taken from `ML4W` dotfiles - Thank you [TheAhumMaitra](https://github.com/TheAhumMaitra) - Fixed more WindowRules + - Fixed rofi themes to work with Theme changer + - Added `ghostty` terminal config file integrated with `wallust` and themes - 2026-01-04 - Fullscreen or maximized would exit using `ALT-TAB` (cycle next/bring-to-front) -- cgit v1.2.3 From de51fd7f8d6e5e0b0d68790b9c2d79d67d0564a7 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 01:12:27 -0500 Subject: Create default config for Wezterm NOT themed yet At this time wezterm is not installed by default However, if user installs it they will have a nice config to begin with Later I hope to add theming support On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md new file: config/wezterm/wezterm.lua modified: copy.sh --- CHANGELOG.md | 9 +++- config/wezterm/wezterm.lua | 115 +++++++++++++++++++++++++++++++++++++++++++++ copy.sh | 13 +++++ 3 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 config/wezterm/wezterm.lua (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 91da190a..9480f375 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,14 @@ - Thank you [TheAhumMaitra](https://github.com/TheAhumMaitra) - Fixed more WindowRules - Fixed rofi themes to work with Theme changer - - Added `ghostty` terminal config file integrated with `wallust` and themes + - Added `ghostty` terminal config file integrated with Themes + - `ghostty` is not installed by default + - The `COPR` is already there for Fedora + - `sudo dnf install ghostty` + - The `COPR` repo for `wezterm` is also available + - `sudo dnf install wezterm` + - A config file is already available when you install it + - Most other distros have these terminals in their repo - 2026-01-04 - Fullscreen or maximized would exit using `ALT-TAB` (cycle next/bring-to-front) diff --git a/config/wezterm/wezterm.lua b/config/wezterm/wezterm.lua new file mode 100644 index 00000000..8740cbcf --- /dev/null +++ b/config/wezterm/wezterm.lua @@ -0,0 +1,115 @@ +-- Config from Drew @justaguylinux small mods + +local wezterm = require("wezterm") + +local config = wezterm.config_builder() + +config.enable_wayland = true + +-- Enable if starship prompt won't start +-- config.default_prog = { "/usr/bin/env zsh" } + +-- General appearance and visuals +config.hide_tab_bar_if_only_one_tab = true +-- Set primary font with fallbacks + +config.font = wezterm.font_with_fallback({ + { family = "Fira Code", weight = 250, stretch = "Normal", style = "Normal" }, -- Thin variant + "Fira Code", + "JetBrains Mono", + "Hack", +}) + +-- Previous font config +-- font = wezterm.font("Maple Mono NF") +font_size = 14 + +config.colors = { + tab_bar = { + + active_tab = { + bg_color = "#80bfff", -- col_gray2 (selected tab in bright blue) + fg_color = "#00141d", -- contrast text on active tab + }, + + inactive_tab = { + bg_color = "#1a1a1a", -- col_gray4 (dark background for inactive tabs) + fg_color = "#FFFFFF", -- col_gray3 (white text on inactive tabs) + }, + + new_tab = { + bg_color = "#1a1a1a", -- same as inactive + fg_color = "#4fc3f7", -- col_barbie (for the "+" button) + }, + }, +} + +config.window_background_opacity = 1.0 +-- config.color_scheme = "nightfox" +-- config.color_scheme = 'AdventureTime' +-- config.color_scheme = 'Advark Blue' +config.color_scheme = "Catppuccin Mocha" +-- config.color_scheme = 'Dracula' +config.font_size = 12 +config.font = wezterm.font("FiraCode", { weight = "Regular", italic = false }) + +config.window_padding = { + left = 10, + right = 10, + top = 10, + bottom = 10, +} + +config.use_fancy_tab_bar = true +config.window_frame = { + -- font = wezterm.font({ family = "FiraCode Nerd Font Mono", weight = "Regular" }), + font = wezterm.font({ family = "JetBrainsMono Nerd Font Mono", weight = "Regular" }), +} + +config.default_cursor_style = "BlinkingUnderline" +config.cursor_blink_rate = 500 +config.term = "xterm-256color" +config.bold_brightens_ansi_colors = false +config.max_fps = 120 +config.animation_fps = 30 + +-- Keybindings using ALT for tabs & splits +config.keys = { + -- Tab management + { key = "t", mods = "ALT", action = wezterm.action.SpawnTab("CurrentPaneDomain") }, + { key = "w", mods = "ALT", action = wezterm.action.CloseCurrentTab({ confirm = false }) }, + { key = "n", mods = "ALT", action = wezterm.action.ActivateTabRelative(1) }, + { key = "p", mods = "ALT", action = wezterm.action.ActivateTabRelative(-1) }, + + -- Pane management + { key = "v", mods = "ALT", action = wezterm.action.SplitVertical({ domain = "CurrentPaneDomain" }) }, + { key = "h", mods = "ALT", action = wezterm.action.SplitHorizontal({ domain = "CurrentPaneDomain" }) }, + { key = "q", mods = "ALT", action = wezterm.action.CloseCurrentPane({ confirm = false }) }, + + -- Pane navigation (move between panes with ALT + Arrows) + { key = "LeftArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Left") }, + { key = "RightArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Right") }, + { key = "UpArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Up") }, + { key = "DownArrow", mods = "ALT", action = wezterm.action.ActivatePaneDirection("Down") }, +} + +-- Disable missing glyph warnings, since we have fallback fonts now +config.warn_about_missing_glyphs = false + +-- function for nvidia_gpu +local function is_nvidia_gpu() + local handle = io.popen("lspci | grep -i nvidia") + local result = handle:read("*a") + handle:close() + return result ~= "" +end + +-- NVIDIA optimization settings +-- config.enable_wayland = not is_nvidia_gpu() -- Disable Wayland if NVIDIA GPU is detected +-- config.front_end = "OpenGL" -- More stable than WebGPU with NVIDIA +-- config.webgpu_power_preference = "HighPerformance" +-- config.prefer_egl = true +-- config.freetype_load_target = "Light" +-- config.freetype_render_target = "HorizontalLcd" + +return config diff --git a/copy.sh b/copy.sh index 34a4e543..e552b1e0 100755 --- a/copy.sh +++ b/copy.sh @@ -734,6 +734,19 @@ else echo "${ERROR} - $GHOSTTY_SRC not found; skipping Ghostty config install." 2>&1 | tee -a "$LOG" fi +# Install WezTerm config +WEZTERM_SRC="config/wezterm/wezterm.lua" +WEZTERM_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/wezterm" +WEZTERM_DEST="$WEZTERM_DIR/wezterm.lua" + +if [ -f "$WEZTERM_SRC" ]; then + mkdir -p "$WEZTERM_DIR" + install -m 0644 "$WEZTERM_SRC" "$WEZTERM_DEST" 2>&1 | tee -a "$LOG" + echo "${OK} - Installed WezTerm config to ${MAGENTA}$WEZTERM_DEST${RESET}" 2>&1 | tee -a "$LOG" +else + echo "${ERROR} - $WEZTERM_SRC not found; skipping WezTerm config install." 2>&1 | tee -a "$LOG" +fi + printf "\\n%.0s" {1..1} # ags config -- cgit v1.2.3 From b32d5df54895bc89f139592cb2116ebeeabe73dd Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 14:50:48 -0500 Subject: Updated CHANGELOG with MPRIS artwork fix --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 9480f375..60f6eb9b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## v2.3.19 +- 2026-01-08 +- Fixed: MPRIS artwork in Sway notification center only 10 pixels + - Adjusted to 96 pixels + - Thank you @godlyfas for fixing this + - 2026-01-06 - Added Global Theme Changer. - There are many themes to choose from -- cgit v1.2.3 From 320d2a64813a537f45a986eb4a85fb7b82ed7316 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 21:18:52 -0500 Subject: Updated CHANGELOG with current script fixes --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 60f6eb9b..d9f88343 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,16 @@ - Fixed: MPRIS artwork in Sway notification center only 10 pixels - Adjusted to 96 pixels - Thank you @godlyfas for fixing this +- Fixing scripts + - `TouchPad.sh` never expands `$TOUCHPAD_ENABLED` (and doesn’t source the file that defines it) + - `Volume.sh` has multiple microphone-control bugs (bad `pamixer` arguments, typoed function name, invalid notification payloads) that break mic toggling and volume feedback. + - `DarkLight.sh` wipes the Qt theme paths each run because the `qt5ct/qt6ct` palette variables are commented out. + - `KooLsDotsUpdate.sh` contains a malformed `notify-send` string that crashes the script when no local version is detected. + - `Distro_update.sh` runs `sudo apt upgrade` outside the kitty window, so the Debian/Ubuntu flow never finishes inside the terminal. + - `Hypridle.sh` now launches `hypridle` in the background (`& disown`) when enabling the daemon, preventing the toggle command from hanging Waybar. + - `RofiSearch.sh` verifies that `jq` is available, captures the user’s query explicitly, URL-encodes it via `jq` `@uri`, + - opens the configured search engine with the encoded query instead of dropping the term. + - `Sounds.sh` now tries `pw-play`, then `paplay`, then `aplay`, emitting a clear error if none are installed, so the script no longer calls the non-existent pa-play. - 2026-01-06 - Added Global Theme Changer. -- cgit v1.2.3 From 3a423138021325a6d97ab0538625305795a6b1c1 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 21:22:30 -0500 Subject: Fixing the next three scripts - `Tak0-Per-Window-Switch.sh` now records the listener PID in ``~/.cache/kb_layout_per_window.listener.pid`` - reuses it if still running, preventing multiple background listeners - reports missing Hyprland sockets without exiting the main script. - `WaybarScripts.sh` adds a `launch_files()` helper that checks `$files` before execution; - if unset, it shows a notification instead of running an empty command. - `sddm_wallpaper.sh` validates `~/.config/rofi/wallust/colors-rofi.rasi` before use - extracts colors via a helper, and aborts with a notification if any required colors are missing. On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/Tak0-Per-Window-Switch.sh modified: config/hypr/scripts/WaybarScripts.sh modified: config/hypr/scripts/sddm_wallpaper.sh --- CHANGELOG.md | 3 +++ config/hypr/scripts/Tak0-Per-Window-Switch.sh | 20 ++++++++++++--- config/hypr/scripts/WaybarScripts.sh | 10 +++++++- config/hypr/scripts/sddm_wallpaper.sh | 37 ++++++++++++++++++++++----- 4 files changed, 58 insertions(+), 12 deletions(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index d9f88343..5089b350 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,9 @@ - `RofiSearch.sh` verifies that `jq` is available, captures the user’s query explicitly, URL-encodes it via `jq` `@uri`, - opens the configured search engine with the encoded query instead of dropping the term. - `Sounds.sh` now tries `pw-play`, then `paplay`, then `aplay`, emitting a clear error if none are installed, so the script no longer calls the non-existent pa-play. + - `Tak0-Per-Window-Switch.sh` now records the listener PID in `~/.cache/kb_layout_per_window.listener.pid` and reuses it if still running, preventing multiple background listeners, and reports missing Hyprland sockets without exiting the main script. + - `WaybarScripts.sh` adds a `launch_files()` helper that checks `$files` before execution; if unset, it shows a notification instead of running an empty command. + - `sddm_wallpaper.sh` validates `~/.config/rofi/wallust/colors-rofi.rasi` before use, extracts colors via a helper, and aborts with a notification if any required colors are missing. - 2026-01-06 - Added Global Theme Changer. diff --git a/config/hypr/scripts/Tak0-Per-Window-Switch.sh b/config/hypr/scripts/Tak0-Per-Window-Switch.sh index 7879fb85..7cec89a6 100755 --- a/config/hypr/scripts/Tak0-Per-Window-Switch.sh +++ b/config/hypr/scripts/Tak0-Per-Window-Switch.sh @@ -17,6 +17,7 @@ MAP_FILE="$HOME/.cache/kb_layout_per_window" CFG_FILE="$HOME/.config/hypr/configs/SystemSettings.conf" ICON="$HOME/.config/swaync/images/ja.png" SCRIPT_NAME="$(basename "$0")" +LISTENER_PIDFILE="$HOME/.cache/kb_layout_per_window.listener.pid" # Ensure map file exists touch "$MAP_FILE" @@ -99,7 +100,7 @@ subscribe() { local SOCKET2="$XDG_RUNTIME_DIR/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock" [[ -S "$SOCKET2" ]] || { echo "Error: Hyprland socket not found." >&2 - exit 1 + return 1 } socat -u UNIX-CONNECT:"$SOCKET2" - | while read -r line; do @@ -108,9 +109,20 @@ subscribe() { } # Ensure only one listener -if ! pgrep -f "$SCRIPT_NAME.*--listener" >/dev/null; then - subscribe --listener & -fi +start_listener_once() { + if [[ -f "$LISTENER_PIDFILE" ]]; then + local existing_pid + existing_pid=$(cat "$LISTENER_PIDFILE" 2>/dev/null || true) + if [[ -n "$existing_pid" ]] && kill -0 "$existing_pid" 2>/dev/null; then + return + fi + fi + + subscribe & + echo $! >"$LISTENER_PIDFILE" +} + +start_listener_once # CLI case "$1" in diff --git a/config/hypr/scripts/WaybarScripts.sh b/config/hypr/scripts/WaybarScripts.sh index d2205c42..54f7a4b4 100755 --- a/config/hypr/scripts/WaybarScripts.sh +++ b/config/hypr/scripts/WaybarScripts.sh @@ -24,6 +24,14 @@ if [[ -z "$term" ]]; then fi # Execute accordingly based on the passed argument +launch_files() { + if [[ -z "$files" ]]; then + notify-send -u low -i "$HOME/.config/swaync/images/error.png" "Waybar: files" "Set \$files in 01-UserDefaults.conf or install a default file manager." + return 1 + fi + eval "$files &" +} + if [[ "$1" == "--btop" ]]; then $term --title btop sh -c 'btop' elif [[ "$1" == "--nvtop" ]]; then @@ -33,7 +41,7 @@ elif [[ "$1" == "--nmtui" ]]; then elif [[ "$1" == "--term" ]]; then $term & elif [[ "$1" == "--files" ]]; then - $files & + launch_files else echo "Usage: $0 [--btop | --nvtop | --nmtui | --term]" echo "--btop : Open btop in a new term" diff --git a/config/hypr/scripts/sddm_wallpaper.sh b/config/hypr/scripts/sddm_wallpaper.sh index 5ebab44c..b83f800a 100755 --- a/config/hypr/scripts/sddm_wallpaper.sh +++ b/config/hypr/scripts/sddm_wallpaper.sh @@ -21,6 +21,10 @@ sddm_simple="$sddm_themes_dir/simple_sddm_2" # rofi-wallust-sddm colors path rofi_wallust="$HOME/.config/rofi/wallust/colors-rofi.rasi" sddm_theme_conf="$sddm_simple/theme.conf" +if [[ ! -f "$rofi_wallust" ]]; then + notify-send -i "$iDIR/error.png" "SDDM" "Wallust colors file not found ($rofi_wallust). Aborting." + exit 1 +fi # Directory for swaync iDIR="$HOME/.config/swaync/images" @@ -36,13 +40,32 @@ fi # Extract colors from rofi wallust config -color0=$(grep -oP 'color1:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") -color1=$(grep -oP 'color0:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") -color7=$(grep -oP 'color14:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") -color10=$(grep -oP 'color10:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") -color12=$(grep -oP 'color12:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") -color13=$(grep -oP 'color13:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") -foreground=$(grep -oP 'foreground:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") +extract_color() { + local key="$1" + local value + value=$(grep -oP "$key:\s*\K#[A-Fa-f0-9]+" "$rofi_wallust" | head -n1) + echo "$value" +} + +color0=$(extract_color "color1") +color1=$(extract_color "color0") +color7=$(extract_color "color14") +color10=$(extract_color "color10") +color12=$(extract_color "color12") +color13=$(extract_color "color13") +foreground=$(extract_color "foreground") + +missing_colors=() +for var in color0 color1 color7 color10 color12 color13 foreground; do + if [[ -z "${!var}" ]]; then + missing_colors+=("$var") + fi +done + +if [[ ${#missing_colors[@]} -gt 0 ]]; then + notify-send -i "$iDIR/error.png" "SDDM" "Missing color(s): ${missing_colors[*]}. Run Wallust first." + exit 1 +fi #background-color=$(grep -oP 'background:\s*\K#[A-Fa-f0-9]+' "$rofi_wallust") # wallpaper to use -- cgit v1.2.3 From c65f9fe0412dafdadee17ee3dc7c42285dcc3753 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 21:31:11 -0500 Subject: Fixing more scripts for Hyprland-Dots MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `WallustSwww.sh` now reads the focused monitor’s cache file (or parses swww query per-monitor) to pick the correct wallpaper path - Eliminating the previous “last line wins” bug on multi-monitor setups. - `PortalHyprland.sh` suppresses harmless killall errors and launches only the first available portal binary in each category (hyprland + general) - Avoiding duplicate processes when both `/usr/lib` and `/usr/libexec` variants exist. - `KillActiveProcess.sh` checks that Hyprland returned a numeric PID before calling kill - Notifies the user when no active window is available instead of throwing kill usage errors. On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/KillActiveProcess.sh modified: config/hypr/scripts/PortalHyprland.sh modified: config/hypr/scripts/WallustSwww.sh --- CHANGELOG.md | 6 +++++ config/hypr/scripts/KillActiveProcess.sh | 7 +++++- config/hypr/scripts/PortalHyprland.sh | 40 +++++++++++++++++++++++++------- config/hypr/scripts/WallustSwww.sh | 29 ++++++++++++++++++++--- 4 files changed, 70 insertions(+), 12 deletions(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 5089b350..319d1fd7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,12 @@ - `Tak0-Per-Window-Switch.sh` now records the listener PID in `~/.cache/kb_layout_per_window.listener.pid` and reuses it if still running, preventing multiple background listeners, and reports missing Hyprland sockets without exiting the main script. - `WaybarScripts.sh` adds a `launch_files()` helper that checks `$files` before execution; if unset, it shows a notification instead of running an empty command. - `sddm_wallpaper.sh` validates `~/.config/rofi/wallust/colors-rofi.rasi` before use, extracts colors via a helper, and aborts with a notification if any required colors are missing. + - `WallustSwww.sh` now reads the focused monitor’s cache file (or parses swww query per-monitor) to pick the correct wallpaper path + - Eliminating the previous “last line wins” bug on multi-monitor setups. + - `PortalHyprland.sh` suppresses harmless killall errors and launches only the first available portal binary in each category (hyprland + general) + - Avoiding duplicate processes when both `/usr/lib` and `/usr/libexec` variants exist. + - `KillActiveProcess.sh` checks that Hyprland returned a numeric PID before calling kill + - Notifies the user when no active window is available instead of throwing kill usage errors. - 2026-01-06 - Added Global Theme Changer. diff --git a/config/hypr/scripts/KillActiveProcess.sh b/config/hypr/scripts/KillActiveProcess.sh index 2bc108f2..d9d26bb3 100755 --- a/config/hypr/scripts/KillActiveProcess.sh +++ b/config/hypr/scripts/KillActiveProcess.sh @@ -7,5 +7,10 @@ # Get id of an active window active_pid=$(hyprctl activewindow | grep -o 'pid: [0-9]*' | cut -d' ' -f2) +if [[ -z "$active_pid" || ! "$active_pid" =~ ^[0-9]+$ ]]; then + notify-send -u low -i "$HOME/.config/swaync/images/error.png" "Kill Active Window" "No active window PID found." + exit 1 +fi + # Close active window -kill $active_pid \ No newline at end of file +kill "$active_pid" diff --git a/config/hypr/scripts/PortalHyprland.sh b/config/hypr/scripts/PortalHyprland.sh index 21cb7db4..653e9b58 100755 --- a/config/hypr/scripts/PortalHyprland.sh +++ b/config/hypr/scripts/PortalHyprland.sh @@ -2,15 +2,39 @@ # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## # For manually starting xdg-desktop-portal-hyprland +set -euo pipefail + +kill_quietly() { + killall -q "$1" 2>/dev/null || true +} + +start_portal_binary() { + local description="$1" + shift + for candidate in "$@"; do + if [[ -x "$candidate" ]]; then + "$candidate" & + return 0 + fi + done + echo "Warning: no $description binary found (checked: $*)" >&2 + return 1 +} + sleep 1 -killall xdg-desktop-portal-hyprland -killall xdg-desktop-portal-wlr -killall xdg-desktop-portal-gnome -killall xdg-desktop-portal +kill_quietly xdg-desktop-portal-hyprland +kill_quietly xdg-desktop-portal-wlr +kill_quietly xdg-desktop-portal-gnome +kill_quietly xdg-desktop-portal sleep 1 -/usr/lib/xdg-desktop-portal-hyprland & -/usr/libexec/xdg-desktop-portal-hyprland & + +start_portal_binary "xdg-desktop-portal-hyprland" \ + /usr/lib/xdg-desktop-portal-hyprland \ + /usr/libexec/xdg-desktop-portal-hyprland + sleep 2 -/usr/lib/xdg-desktop-portal & -/usr/libexec/xdg-desktop-portal & + +start_portal_binary "xdg-desktop-portal" \ + /usr/lib/xdg-desktop-portal \ + /usr/libexec/xdg-desktop-portal diff --git a/config/hypr/scripts/WallustSwww.sh b/config/hypr/scripts/WallustSwww.sh index d1e53400..50c85630 100755 --- a/config/hypr/scripts/WallustSwww.sh +++ b/config/hypr/scripts/WallustSwww.sh @@ -10,6 +10,27 @@ passed_path="${1:-}" cache_dir="$HOME/.cache/swww/" rofi_link="$HOME/.config/rofi/.current_wallpaper" wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" +read_cached_wallpaper() { + local cache_file="$1" + if [[ -f "$cache_file" ]]; then + awk 'NF && $0 !~ /^filter/ {print; exit}' "$cache_file" + fi +} + +read_wallpaper_from_query() { + local monitor="$1" + swww query | awk -v mon="$monitor" ' + /^Monitor/ { + cur=$2 + gsub(":", "", cur) + } + /image:/ && cur==mon { + sub(/^.*image: /,"") + print + exit + } + ' +} # Helper: get focused monitor name (prefer JSON) get_focused_monitor() { @@ -39,9 +60,11 @@ else if [[ -f "$cache_file" ]]; then # The first non-filter line is the original wallpaper path - # wallpaper_path="$(grep -v 'Lanczos3' "$cache_file" | head -n 1)" - # wallpaper_path=$(swww query | grep $current_monitor | awk '{print $9}') - wallpaper_path=$(swww query | sed 's/.*image: //') + wallpaper_path="$(read_cached_wallpaper "$cache_file")" + fi + + if [[ -z "$wallpaper_path" ]]; then + wallpaper_path="$(read_wallpaper_from_query "$current_monitor")" fi fi -- cgit v1.2.3 From 27ee85c99ca4f5ab3638d271ee6b372cfac97b4a Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 22:10:22 -0500 Subject: Updated CHANGELOG on wallustswww script improvements On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 319d1fd7..32bb05b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ - `sddm_wallpaper.sh` validates `~/.config/rofi/wallust/colors-rofi.rasi` before use, extracts colors via a helper, and aborts with a notification if any required colors are missing. - `WallustSwww.sh` now reads the focused monitor’s cache file (or parses swww query per-monitor) to pick the correct wallpaper path - Eliminating the previous “last line wins” bug on multi-monitor setups. + - Wallpaper and global theme changes are now dramatically faster - `PortalHyprland.sh` suppresses harmless killall errors and launches only the first available portal binary in each category (hyprland + general) - Avoiding duplicate processes when both `/usr/lib` and `/usr/libexec` variants exist. - `KillActiveProcess.sh` checks that Hyprland returned a numeric PID before calling kill -- cgit v1.2.3 From 9a620a1419b7a20b57c93827d027d5c734831620 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 9 Jan 2026 00:43:29 -0500 Subject: Fixed parser not detecting unbinds / rebinds On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/scripts/keybinds_parser.py --- CHANGELOG.md | 5 +++++ config/hypr/scripts/keybinds_parser.py | 7 +++++++ 2 files changed, 12 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 32bb05b4..92d777ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,11 @@ ## v2.3.19 +- 2026-01-09 + - Fixed: Keybind parser latency + - Changed the parsing login to python instead of bash + - Also fixed duplicate bindings when you unmap / remap keybinds + - 2026-01-08 - Fixed: MPRIS artwork in Sway notification center only 10 pixels - Adjusted to 96 pixels diff --git a/config/hypr/scripts/keybinds_parser.py b/config/hypr/scripts/keybinds_parser.py index cae57488..d12e3854 100755 --- a/config/hypr/scripts/keybinds_parser.py +++ b/config/hypr/scripts/keybinds_parser.py @@ -86,6 +86,13 @@ def parse_files(files): if file_path == user_conf_path: unbound_user[combo] = True + # If unbind is found, we should remove the bind from our map + # so it doesn't show up in the menu. + if combo in binding_map: + del binding_map[combo] + if combo in source_map: + del source_map[combo] + except Exception as e: # Silently ignore read errors to mimic bash behavior or log to stderr sys.stderr.write(f"Error reading {file_path}: {e}\n") -- cgit v1.2.3 From 97f614c536d000a46098c25199c9521680c7ff95 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 9 Jan 2026 14:31:53 -0500 Subject: Update CHANGELOG --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 92d777ab..cbe91230 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,17 @@ - Fixed: Keybind parser latency - Changed the parsing login to python instead of bash - Also fixed duplicate bindings when you unmap / remap keybinds + - Added: `--express-update` to `copy.sh` + - This will bypass some of the questions + - Updating SDDM wallpaper + - Downloading wallpaper from repo + - Mostly like that was done at install time or previous upgrade + - Restoring User configs : + - `Weather.sh` and `Weather.sh` + - `Rofibeats.sh` + - etc. + - Automatically trims the backed up directories leaving just latest backup + - This dramatically reduces the time/effort to udpate dotfiles - 2026-01-08 - Fixed: MPRIS artwork in Sway notification center only 10 pixels -- cgit v1.2.3 From db41c69e3bf2396d7dcf56b2c6314b4078a61299 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 9 Jan 2026 17:33:24 -0500 Subject: Update CHANGELOG --- CHANGELOG.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index cbe91230..05f1e788 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,11 @@ - 2026-01-09 - Fixed: Keybind parser latency - Changed the parsing login to python instead of bash - - Also fixed duplicate bindings when you unmap / remap keybinds + - Also fixed duplicates when you unmap, then remap keybinds + - Ex. Change keybind for `file manger` + - Both the old and new keybind were show in keybind menu - Added: `--express-update` to `copy.sh` + - `./copy.sh --express-update` - This will bypass some of the questions - Updating SDDM wallpaper - Downloading wallpaper from repo @@ -16,7 +19,8 @@ - `Rofibeats.sh` - etc. - Automatically trims the backed up directories leaving just latest backup - - This dramatically reduces the time/effort to udpate dotfiles + - This dramatically reduces the time/effort to update dotfiles + - Most users don't restore these custom files on upgrades - 2026-01-08 - Fixed: MPRIS artwork in Sway notification center only 10 pixels -- cgit v1.2.3 From 2a5901251bd19bcb11174338e57749b3b338dd21 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 11 Jan 2026 15:28:48 -0500 Subject: Update CHANGELOG --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 05f1e788..5e50670c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ ## v2.3.19 +- 2026-01-11 + - Improved `ML4W Glass` theme + - Now has proper 3d gradient look + - Theme based nightlight color + - `copy.sh` is now more modular + - Helper scripts in `scripts` dir per function + - Making `copy.sh` smaller (1200 lines to 800 so far) + - Easier to maintain going forward + - 2026-01-09 - Fixed: Keybind parser latency - Changed the parsing login to python instead of bash -- cgit v1.2.3 From f164bcfd828df98e58d88859820d0f648d178728 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 13 Jan 2026 16:21:22 -0500 Subject: Updated CHANLOG with Toggle Rainbow feature Thanks Arkboi for suggesting it On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e50670c..c88b8513 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ ## v2.3.19 +- 2026-01-13 +- Added `Toggle Rainbow borders` option to settings menu +- `SUPERSHIFT+E` search for `Rainbow` +- It will toggle the current state and run `Refresh.sh` to start or stop + - Thanks to @Arkboi for suggesting it. + - Later if there are more settings like this I will create a new menu + - 2026-01-11 - Improved `ML4W Glass` theme - Now has proper 3d gradient look -- cgit v1.2.3 From 4105866c25176505f7d5c3962055345f78cfee80 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 15 Jan 2026 19:37:26 -0500 Subject: Updated CHANGELOG On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index c88b8513..e22cb1be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,15 @@ ## v2.3.19 +- 2026-01-15 + - Created waybar configs for ML4W Glass style + - `TOP & Bottom Summit - glass` + - `Default Laptop - Glass` + - `Everforest - Glass` + - Fixed menu for express-update + - Fixed `Toggle Rainbow` checked for wrong file + + - 2026-01-13 - Added `Toggle Rainbow borders` option to settings menu - `SUPERSHIFT+E` search for `Rainbow` -- cgit v1.2.3 From 8c70ac492c3058fce029ffa9a31cdb9556a40bcc Mon Sep 17 00:00:00 2001 From: Don Williams Date: Fri, 16 Jan 2026 19:42:32 -0500 Subject: Added submeu for RainbowBorders and the new modes - Added `Rainbow Borders sub memu` - Code provided by [brunoorsolon](https://github.com/brunoorsolon) - There are now mulitple modes for the Rainbow Borders feature - `Disabled`, `Wallust Color`, `Rainbow`, `Gradient flow` - Thank you for the submission On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md modified: config/hypr/UserScripts/RainbowBorders.sh modified: config/hypr/scripts/Kool_Quick_Settings.sh --- CHANGELOG.md | 20 ++++--- config/hypr/UserScripts/RainbowBorders.sh | 92 +++++++++++++++++++++++++++--- config/hypr/scripts/Kool_Quick_Settings.sh | 74 +++++++++++++++++++++++- 3 files changed, 170 insertions(+), 16 deletions(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index e22cb1be..9a9ecb61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,14 +2,20 @@ ## v2.3.19 -- 2026-01-15 - - Created waybar configs for ML4W Glass style - - `TOP & Bottom Summit - glass` - - `Default Laptop - Glass` - - `Everforest - Glass` - - Fixed menu for express-update - - Fixed `Toggle Rainbow` checked for wrong file +- 2026-01-16 +- Added `Rainbow Borders sub memu` + - Code provided by [brunoorsolon](https://github.com/brunoorsolon) + - There are now mulitple modes for the Rainbow Borders feature + - `Disabled`, `Wallust Color`, `Rainbow`, `Gradient flow` + - Thank you for the submission +- 2026-01-15 +- Created waybar configs for ML4W Glass style +- `TOP & Bottom Summit - glass` +- `Default Laptop - Glass` +- `Everforest - Glass` +- Fixed menu for express-update +- Fixed `Toggle Rainbow` checked for wrong file - 2026-01-13 - Added `Toggle Rainbow borders` option to settings menu diff --git a/config/hypr/UserScripts/RainbowBorders.sh b/config/hypr/UserScripts/RainbowBorders.sh index 0a7fd721..7a392ffe 100755 --- a/config/hypr/UserScripts/RainbowBorders.sh +++ b/config/hypr/UserScripts/RainbowBorders.sh @@ -1,14 +1,92 @@ #!/usr/bin/env bash # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## -# for rainbow borders animation +# Smooth border cycling effect using Wallust palette or full rainbow +# Possible values: "wallust_random", "rainbow", "gradient_flow" +EFFECT_TYPE="gradient_flow" + +WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf" + +WALLUST_COLORS=() + +# ---------- LOAD WALLUST COLORS ---------- +if [[ "$EFFECT_TYPE" == "wallust_random" || "$EFFECT_TYPE" == "gradient_flow" ]]; then + # Accept either hex (0xffRRGGBB) or rgb(r,g,b) and normalize to 0xffRRGGBB + mapfile -t WALLUST_COLORS < <( + grep -E '^\$color[0-9]+' "$WALLUST_COLORS_SOURCE" | awk ' + function hex2(s){ return (length(s)==6 ? "0xff"s : ""); } + function rgb2(r,g,b){ return sprintf("0xff%02x%02x%02x", r, g, b); } + { + if (match($0, /0x([0-9a-fA-F]{8})/, m)) { print "0x" m[1]; next } + if (match($0, /#([0-9a-fA-F]{6})/, m)) { print hex2(m[1]); next } + if (match($0, /rgb\(([0-9]+),[ ]*([0-9]+),[ ]*([0-9]+)\)/, m)) { + print rgb2(m[1], m[2], m[3]); next + } + }' + ) + + if (( ${#WALLUST_COLORS[@]} == 0 )); then + if [[ "$EFFECT_TYPE" == "wallust_random" ]]; then + echo "ERROR: wallust_random enabled but no colors loaded" >&2 + exit 1 + fi + # gradient_flow will fall back to random_hex later + fi +fi + +# ---------- RANDOM WALLUST COLORS ---------- +function wallust_random() { + echo "${WALLUST_COLORS[RANDOM % ${#WALLUST_COLORS[@]}]}" +} + +# ---------- RAINBOW COLORS ---------- function random_hex() { - random_hex=("0xff$(openssl rand -hex 3)") - echo $random_hex + echo "0xff$(openssl rand -hex 3)" +} + +# ---------- FLOW MODE ---------- +BASE_COLOR="${WALLUST_COLORS[10]}" +GRAD1_COLOR="${WALLUST_COLORS[14]}" +GRAD2_COLOR="${WALLUST_COLORS[13]}" +GLOW_COLOR="${WALLUST_COLORS[15]}" + +MAX_POS=10 +GLOW_POS=0 + +function gradient_flow_color() { + local pos=$1 + local d=$(( pos - GLOW_POS )) + + # wrap distance (-9..9) + if (( d > MAX_POS/2 )); then d=$((d - MAX_POS)); fi + if (( d < -MAX_POS/2 )); then d=$((d + MAX_POS)); fi + + case "${d#-}" in + 0) echo "$GLOW_COLOR" ;; + 1) echo "$GRAD1_COLOR" ;; + 2) echo "$GRAD2_COLOR" ;; + *) echo "$BASE_COLOR" ;; + esac + + if (( pos == MAX_POS - 1 )); then + GLOW_POS=$(( (GLOW_POS + 1) % MAX_POS )) + fi +} + +# ---------- Main function ---------- + +function get_color() { + if [[ "$EFFECT_TYPE" == "wallust_random" && ${#WALLUST_COLORS[@]} -gt 0 ]]; then + wallust_random + elif [[ "$EFFECT_TYPE" == "gradient_flow" && ${#WALLUST_COLORS[@]} -ge 16 ]]; then + gradient_flow_color "$1" + else + random_hex + fi } -# rainbow colors only for active window -hyprctl keyword general:col.active_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg +# border effect for ACTIVE window +hyprctl keyword general:col.active_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg -# rainbow colors for inactive window (uncomment to take effect) -#hyprctl keyword general:col.inactive_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg \ No newline at end of file +# border effect for INACTIVE windows +#hyprctl keyword general:col.inactive_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg \ No newline at end of file diff --git a/config/hypr/scripts/Kool_Quick_Settings.sh b/config/hypr/scripts/Kool_Quick_Settings.sh index c8f71d06..5f0193ed 100755 --- a/config/hypr/scripts/Kool_Quick_Settings.sh +++ b/config/hypr/scripts/Kool_Quick_Settings.sh @@ -74,6 +74,76 @@ toggle_rainbow_borders() { fi } +# Submenu to choose Rainbow Borders mode (disable, wallust_random, rainbow, gradient_flow) +rainbow_borders_menu() { + local rainbow_script="$UserScripts/RainbowBorders.sh" + local disabled_sh_bak="${rainbow_script}.bak" + local disabled_bak_sh="$UserScripts/RainbowBorders.bak.sh" + local refresh_script="$scriptsDir/Refresh.sh" + + # Determine current mode/status + local current="disabled" + if [[ -f "$rainbow_script" ]]; then + current=$(grep -E '^EFFECT_TYPE=' "$rainbow_script" 2>/dev/null | sed -E 's/^EFFECT_TYPE="?([^"]*)"?.*/\1/') + [[ -z "$current" ]] && current="unknown" + fi + + # Build options and prompt + local options="disable\nwallust_random\nrainbow\ngradient_flow" + local choice + choice=$(printf "%b" "$options" | rofi -i -dmenu -config "$rofi_theme" -mesg "Rainbow Borders: choose mode (current: $current)") + + [[ -z "$choice" ]] && return + + case "$choice" in + disable|Disable) + if [[ -f "$rainbow_script" ]]; then + mv "$rainbow_script" "$disabled_sh_bak" + fi + current="disabled" + ;; + wallust_random|rainbow|gradient_flow) + # Ensure script is enabled + if [[ ! -f "$rainbow_script" ]]; then + if [[ -f "$disabled_sh_bak" ]]; then + mv "$disabled_sh_bak" "$rainbow_script" + elif [[ -f "$disabled_bak_sh" ]]; then + mv "$disabled_bak_sh" "$rainbow_script" + else + show_info "RainbowBorders script not found in $UserScripts." + return + fi + fi + + # Update EFFECT_TYPE in place; insert if missing + if grep -q '^EFFECT_TYPE=' "$rainbow_script" 2>/dev/null; then + sed -i 's/^EFFECT_TYPE=.*/EFFECT_TYPE="'"$choice"'"/' "$rainbow_script" + else + if head -n1 "$rainbow_script" | grep -q '^#!'; then + sed -i '1a EFFECT_TYPE="'"$choice"'"' "$rainbow_script" + else + sed -i '1i EFFECT_TYPE="'"$choice"'"' "$rainbow_script" + fi + fi + current="$choice" + ;; + *) + return ;; + esac + + # Run refresh if available + if [[ -x "$refresh_script" ]]; then + "$refresh_script" >/dev/null 2>&1 & + fi + + # Notify + if [[ "$current" == "disabled" ]]; then + show_info "Rainbow Borders disabled." + else + show_info "Rainbow Borders: $current." + fi +} + # Function to display the menu options without numbers menu() { cat < Date: Fri, 16 Jan 2026 22:22:14 -0500 Subject: Disabled RainbowBorders by default use quick settings to enable The new mode select menu for RainbowBorders makes the prompt at install redundant. Especially when upgrading On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: CHANGELOG.md renamed: config/hypr/UserScripts/RainbowBorders.sh -> config/hypr/UserScripts/RainbowBorders.bak.sh modified: config/hypr/configs/Startup_Apps.conf modified: copy.sh modified: scripts/lib_prompts.sh --- CHANGELOG.md | 2 + config/hypr/UserScripts/RainbowBorders.bak.sh | 89 +++++++++++++++++++++++++++ config/hypr/UserScripts/RainbowBorders.sh | 89 --------------------------- config/hypr/configs/Startup_Apps.conf | 4 +- copy.sh | 1 - scripts/lib_prompts.sh | 21 ------- 6 files changed, 93 insertions(+), 113 deletions(-) create mode 100755 config/hypr/UserScripts/RainbowBorders.bak.sh delete mode 100755 config/hypr/UserScripts/RainbowBorders.sh (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a9ecb61..8ae7c154 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ - There are now mulitple modes for the Rainbow Borders feature - `Disabled`, `Wallust Color`, `Rainbow`, `Gradient flow` - Thank you for the submission +- Disabled `RainbowBorders.sh` by default +- Use the quick setings menu `SUPERSHIFT + E` to enable, select mode - 2026-01-15 - Created waybar configs for ML4W Glass style diff --git a/config/hypr/UserScripts/RainbowBorders.bak.sh b/config/hypr/UserScripts/RainbowBorders.bak.sh new file mode 100755 index 00000000..67269b8a --- /dev/null +++ b/config/hypr/UserScripts/RainbowBorders.bak.sh @@ -0,0 +1,89 @@ +#!/usr/bin/env bash +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## +# Smooth border cycling effect using Wallust palette or full rainbow + +# Possible values: "wallust_random", "rainbow", "gradient_flow" +EFFECT_TYPE="gradient_flow" + +WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf" + +WALLUST_COLORS=() + +# ---------- LOAD WALLUST COLORS ---------- +if [[ "$EFFECT_TYPE" == "wallust_random" || "$EFFECT_TYPE" == "gradient_flow" ]]; then + # Accept either hex (0xffRRGGBB) or rgb(r,g,b) and normalize to 0xffRRGGBB + mapfile -t WALLUST_COLORS < <( + grep -E '^\$color[0-9]+' "$WALLUST_COLORS_SOURCE" | awk ' + function hex2(s){ return (length(s)==6 ? "0xff"s : ""); } + function rgb2(r,g,b){ return sprintf("0xff%02x%02x%02x", r, g, b); } + { + if (match($0, /0x([0-9a-fA-F]{8})/, m)) { print "0x" m[1]; next } + if (match($0, /#([0-9a-fA-F]{6})/, m)) { print hex2(m[1]); next } + if (match($0, /rgb\(([0-9]+),[ ]*([0-9]+),[ ]*([0-9]+)\)/, m)) { + print rgb2(m[1], m[2], m[3]); next + } + }' + ) + + if (( ${#WALLUST_COLORS[@]} == 0 )); then + # If wallust colors can't be loaded, fall back to random_hex + EFFECT_TYPE="rainbow" + fi +fi + +# ---------- RANDOM WALLUST COLORS ---------- +function wallust_random() { + echo "${WALLUST_COLORS[RANDOM % ${#WALLUST_COLORS[@]}]}" +} + +# ---------- RAINBOW COLORS ---------- +function random_hex() { + echo "0xff$(openssl rand -hex 3)" +} + +# ---------- FLOW MODE ---------- +BASE_COLOR="${WALLUST_COLORS[10]}" +GRAD1_COLOR="${WALLUST_COLORS[14]}" +GRAD2_COLOR="${WALLUST_COLORS[13]}" +GLOW_COLOR="${WALLUST_COLORS[15]}" + +MAX_POS=10 +GLOW_POS=0 + +function gradient_flow_color() { + local pos=$1 + local d=$(( pos - GLOW_POS )) + + # wrap distance (-9..9) + if (( d > MAX_POS/2 )); then d=$((d - MAX_POS)); fi + if (( d < -MAX_POS/2 )); then d=$((d + MAX_POS)); fi + + case "${d#-}" in + 0) echo "$GLOW_COLOR" ;; + 1) echo "$GRAD1_COLOR" ;; + 2) echo "$GRAD2_COLOR" ;; + *) echo "$BASE_COLOR" ;; + esac + + if (( pos == MAX_POS - 1 )); then + GLOW_POS=$(( (GLOW_POS + 1) % MAX_POS )) + fi +} + +# ---------- Main function ---------- + +function get_color() { + if [[ "$EFFECT_TYPE" == "wallust_random" && ${#WALLUST_COLORS[@]} -gt 0 ]]; then + wallust_random + elif [[ "$EFFECT_TYPE" == "gradient_flow" && ${#WALLUST_COLORS[@]} -ge 16 ]]; then + gradient_flow_color "$1" + else + random_hex + fi +} + +# border effect for ACTIVE window +hyprctl keyword general:col.active_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg + +# border effect for INACTIVE windows +#hyprctl keyword general:col.inactive_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg \ No newline at end of file diff --git a/config/hypr/UserScripts/RainbowBorders.sh b/config/hypr/UserScripts/RainbowBorders.sh deleted file mode 100755 index 67269b8a..00000000 --- a/config/hypr/UserScripts/RainbowBorders.sh +++ /dev/null @@ -1,89 +0,0 @@ -#!/usr/bin/env bash -# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## -# Smooth border cycling effect using Wallust palette or full rainbow - -# Possible values: "wallust_random", "rainbow", "gradient_flow" -EFFECT_TYPE="gradient_flow" - -WALLUST_COLORS_SOURCE="$HOME/.config/hypr/wallust/wallust-hyprland.conf" - -WALLUST_COLORS=() - -# ---------- LOAD WALLUST COLORS ---------- -if [[ "$EFFECT_TYPE" == "wallust_random" || "$EFFECT_TYPE" == "gradient_flow" ]]; then - # Accept either hex (0xffRRGGBB) or rgb(r,g,b) and normalize to 0xffRRGGBB - mapfile -t WALLUST_COLORS < <( - grep -E '^\$color[0-9]+' "$WALLUST_COLORS_SOURCE" | awk ' - function hex2(s){ return (length(s)==6 ? "0xff"s : ""); } - function rgb2(r,g,b){ return sprintf("0xff%02x%02x%02x", r, g, b); } - { - if (match($0, /0x([0-9a-fA-F]{8})/, m)) { print "0x" m[1]; next } - if (match($0, /#([0-9a-fA-F]{6})/, m)) { print hex2(m[1]); next } - if (match($0, /rgb\(([0-9]+),[ ]*([0-9]+),[ ]*([0-9]+)\)/, m)) { - print rgb2(m[1], m[2], m[3]); next - } - }' - ) - - if (( ${#WALLUST_COLORS[@]} == 0 )); then - # If wallust colors can't be loaded, fall back to random_hex - EFFECT_TYPE="rainbow" - fi -fi - -# ---------- RANDOM WALLUST COLORS ---------- -function wallust_random() { - echo "${WALLUST_COLORS[RANDOM % ${#WALLUST_COLORS[@]}]}" -} - -# ---------- RAINBOW COLORS ---------- -function random_hex() { - echo "0xff$(openssl rand -hex 3)" -} - -# ---------- FLOW MODE ---------- -BASE_COLOR="${WALLUST_COLORS[10]}" -GRAD1_COLOR="${WALLUST_COLORS[14]}" -GRAD2_COLOR="${WALLUST_COLORS[13]}" -GLOW_COLOR="${WALLUST_COLORS[15]}" - -MAX_POS=10 -GLOW_POS=0 - -function gradient_flow_color() { - local pos=$1 - local d=$(( pos - GLOW_POS )) - - # wrap distance (-9..9) - if (( d > MAX_POS/2 )); then d=$((d - MAX_POS)); fi - if (( d < -MAX_POS/2 )); then d=$((d + MAX_POS)); fi - - case "${d#-}" in - 0) echo "$GLOW_COLOR" ;; - 1) echo "$GRAD1_COLOR" ;; - 2) echo "$GRAD2_COLOR" ;; - *) echo "$BASE_COLOR" ;; - esac - - if (( pos == MAX_POS - 1 )); then - GLOW_POS=$(( (GLOW_POS + 1) % MAX_POS )) - fi -} - -# ---------- Main function ---------- - -function get_color() { - if [[ "$EFFECT_TYPE" == "wallust_random" && ${#WALLUST_COLORS[@]} -gt 0 ]]; then - wallust_random - elif [[ "$EFFECT_TYPE" == "gradient_flow" && ${#WALLUST_COLORS[@]} -ge 16 ]]; then - gradient_flow_color "$1" - else - random_hex - fi -} - -# border effect for ACTIVE window -hyprctl keyword general:col.active_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg - -# border effect for INACTIVE windows -#hyprctl keyword general:col.inactive_border $(get_color 0) $(get_color 1) $(get_color 2) $(get_color 3) $(get_color 4) $(get_color 5) $(get_color 6) $(get_color 7) $(get_color 8) $(get_color 9) 270deg \ No newline at end of file diff --git a/config/hypr/configs/Startup_Apps.conf b/config/hypr/configs/Startup_Apps.conf index 2bf902cd..0cc5da11 100644 --- a/config/hypr/configs/Startup_Apps.conf +++ b/config/hypr/configs/Startup_Apps.conf @@ -33,8 +33,8 @@ exec-once = $scriptsDir/Hyprsunset.sh init exec-once = wl-paste --type text --watch cliphist store exec-once = wl-paste --type image --watch cliphist store -# Rainbow borders -exec-once = $UserScripts/RainbowBorders.sh +# Rainbow borders (disabled by default; use quick settings menu) +#exec-once = $UserScripts/RainbowBorders.sh # Here are list of features available but disabled by default diff --git a/copy.sh b/copy.sh index 31c66a0b..b061f4ac 100755 --- a/copy.sh +++ b/copy.sh @@ -355,7 +355,6 @@ fi printf "\n%.0s" {1..1} prompt_clock_12h "$LOG" printf "\n%.0s" {1..1} -prompt_rainbow_borders "$LOG" >/dev/null printf "\n%.0s" {1..1} prompt_express_upgrade "$EXPRESS_SUPPORTED" "$LOG" diff --git a/scripts/lib_prompts.sh b/scripts/lib_prompts.sh index a63afde3..bf6fafd7 100644 --- a/scripts/lib_prompts.sh +++ b/scripts/lib_prompts.sh @@ -209,27 +209,6 @@ apply_sddm_12h_format_sequoia() { fi } -# Rainbow borders toggle; returns "disabled" or "kept". -prompt_rainbow_borders() { - local log="$1" - echo "${NOTE} ${SKY_BLUE}By default, Rainbow Borders animation is enabled" - echo "${WARN} However, this uses a bit more CPU and Memory resources." - if ! read -r -p "${CAT} Do you want to disable Rainbow Borders animation? (y/N): " border_choice &1 | tee -a "$log" - echo "kept" - return - fi - if [[ "$border_choice" =~ ^[Yy]$ ]]; then - mv config/hypr/UserScripts/RainbowBorders.sh config/hypr/UserScripts/RainbowBorders.bak.sh - sed -i '/exec-once = \$UserScripts\/RainbowBorders.sh/s/^/#/' config/hypr/configs/Startup_Apps.conf - sed -i '/^[[:space:]]*animation = borderangle, 1, 180, liner, loop/s/^/#/' config/hypr/configs/UserAnimations.conf - echo "${OK} Rainbow borders are now disabled." 2>&1 | tee -a "$log" - echo "disabled" - else - echo "${NOTE} No changes made. Rainbow borders remain enabled." 2>&1 | tee -a "$log" - echo "kept" - fi -} # Express upgrade confirmation; may set EXPRESS_MODE=1. prompt_express_upgrade() { -- cgit v1.2.3 From d2ab85d414b798f5c2623d422f4202643c7911d4 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 20 Jan 2026 08:26:16 -0500 Subject: Updated CHANGELOG --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index 8ae7c154..e49b5ffc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ ## v2.3.19 +- 2026-01-20 +- Fixed CSS to format the `custom/nightlight` module +- Fixed padding on some CSS files + +- 2026-01-19 +- Removed "Set wallpaper SDDM prompt" +- When changing wallpaper there is no longer a prompt to set it on SDDM +- It's not a menu option under Quick Settings menu `SUPER SHIFT + E` +- Fixed `Glass` style sheets + - 2026-01-16 - Added `Rainbow Borders sub memu` - Code provided by [brunoorsolon](https://github.com/brunoorsolon) -- cgit v1.2.3 From 27eef41d0b9d5cc9b03c1d64050c99dc23e220e7 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 21 Jan 2026 12:19:09 -0500 Subject: Fixed CHANGELOG typo --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'CHANGELOG.md') diff --git a/CHANGELOG.md b/CHANGELOG.md index e49b5ffc..7e37ba52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ - 2026-01-19 - Removed "Set wallpaper SDDM prompt" - When changing wallpaper there is no longer a prompt to set it on SDDM -- It's not a menu option under Quick Settings menu `SUPER SHIFT + E` +- It's now a menu option under Quick Settings menu `SUPER SHIFT + E` - Fixed `Glass` style sheets - 2026-01-16 -- cgit v1.2.3