From e504f6c1c50bd2037bea9b3b48e2e0b06b304c34 Mon Sep 17 00:00:00 2001 From: Ahum Maitra Date: Sun, 4 Jan 2026 03:53:41 +0530 Subject: feat: Add Wallust based global Theme Switcher (#905) * fix: Add Theme Switcher script * feat: Add theme switcher shortcut * enhancement: simplify the program, fix spelling mistakes, add safety mechanism --- config/hypr/scripts/ThemeChanger.sh | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 config/hypr/scripts/ThemeChanger.sh (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh new file mode 100644 index 00000000..15534258 --- /dev/null +++ b/config/hypr/scripts/ThemeChanger.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# SPDX-FileCopyrightText: 2025-present Ahum Maitra theahummaitra@gmail.com +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Repository url : https://github.com/TheAhumMaitra/cautious-waddle + +# User choice +choice=$(wallust theme list \ + | sed '1d' \ + | sed 's/^- //' \ + | rofi -dmenu -p "Select Global Theme") + +# If user requested to exit, then exit +[[ -z "$choice" ]] && exit 0 + +# Apply the theme +wallust theme "$choice" + +# Inform user about theme changed +notify-send "Global theme changed" "Global Theme selected $choice" + +# Give warning to user for Waybar theme refresh +notify-send "Press SUPER+ALT+R to Refresh Waybar Theme" -- cgit v1.2.3 From 7c4f5ce9553cdba1dfc9066c701bd2587326a49f Mon Sep 17 00:00:00 2001 From: Don Williams Date: Mon, 5 Jan 2026 14:28:01 -0500 Subject: set ThemeChanger.sh executable --- config/hypr/scripts/ThemeChanger.sh | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 config/hypr/scripts/ThemeChanger.sh (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh old mode 100644 new mode 100755 -- cgit v1.2.3 From f5e75aa7d630e170b777a06aea05feb5680ef019 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 6 Jan 2026 22:35:58 -0500 Subject: Improved error and dependency checking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cancel behavior under set -e: rofi returns non‑zero on Escape/cancel. Added dependency checksf wallust/rofi/notify-send aren’t installed Combine the two sed calls into one. Error handling always send a “changed” notification even if wallust theme fails. Check the exit status and notify on failure. On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ThemeChanger.sh new file: config/hypr/scripts/ThemeChanger.sh.ori --- config/hypr/scripts/ThemeChanger.sh | 62 +++++++++++++++++++++++---------- config/hypr/scripts/ThemeChanger.sh.ori | 27 ++++++++++++++ 2 files changed, 71 insertions(+), 18 deletions(-) create mode 100755 config/hypr/scripts/ThemeChanger.sh.ori (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index 15534258..0843fd69 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -1,5 +1,4 @@ #!/usr/bin/env bash - set -euo pipefail # SPDX-FileCopyrightText: 2025-present Ahum Maitra theahummaitra@gmail.com @@ -8,20 +7,47 @@ set -euo pipefail # 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" +require() { + command -v "$1" >/dev/null 2>&1 || { + printf '%s\n' "Missing dependency: $1" >&2 + exit 127 + } +} + +require wallust +require rofi + +# notify-send is optional +have_notify() { command -v notify-send >/dev/null 2>&1; } + +# Prompt for theme; guard -e on cancel +set +e +choice="$(wallust theme list \ + | sed -e '1d' -e 's/^- //' \ + | rofi -dmenu -i -p 'Select Global Theme')" +prompt_status=$? +set -e + +# Exit cleanly on cancel or empty selection +if (( prompt_status != 0 )) || [[ -z "${choice}" ]]; then + exit 0 +fi + +# Apply the theme and report result +if wallust theme -- "${choice}"; then + have_notify && notify-send -a ThemeChanger \ + -h string:x-dunst-stack-tag:themechanger \ + "Global theme changed" "Selected: ${choice}" + + # Try to refresh Waybar automatically; ignore failures + if command -v waybar-msg >/dev/null 2>&1; then + waybar-msg cmd reload >/dev/null 2>&1 || true + else + pkill -SIGUSR2 waybar >/dev/null 2>&1 || true + fi +else + have_notify && notify-send -u critical -a ThemeChanger \ + -h string:x-dunst-stack-tag:themechanger \ + "Failed to apply theme" "${choice}" + exit 1 +fi diff --git a/config/hypr/scripts/ThemeChanger.sh.ori b/config/hypr/scripts/ThemeChanger.sh.ori new file mode 100755 index 00000000..15534258 --- /dev/null +++ b/config/hypr/scripts/ThemeChanger.sh.ori @@ -0,0 +1,27 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# SPDX-FileCopyrightText: 2025-present Ahum Maitra theahummaitra@gmail.com +# +# SPDX-License-Identifier: GPL-3.0-or-later + +# Repository url : https://github.com/TheAhumMaitra/cautious-waddle + +# User choice +choice=$(wallust theme list \ + | sed '1d' \ + | sed 's/^- //' \ + | rofi -dmenu -p "Select Global Theme") + +# If user requested to exit, then exit +[[ -z "$choice" ]] && exit 0 + +# Apply the theme +wallust theme "$choice" + +# Inform user about theme changed +notify-send "Global theme changed" "Global Theme selected $choice" + +# Give warning to user for Waybar theme refresh +notify-send "Press SUPER+ALT+R to Refresh Waybar Theme" -- cgit v1.2.3 From 5d4fb9d343b0bebd6fd56a1668fe2e8ebafc891d Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 6 Jan 2026 23:34:34 -0500 Subject: Adding small delay to allow wallust to finish same for WP select On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: hypr/scripts/ThemeChanger.sh --- config/hypr/scripts/ThemeChanger.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index 0843fd69..1ae1060f 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -39,11 +39,19 @@ if wallust theme -- "${choice}"; then -h string:x-dunst-stack-tag:themechanger \ "Global theme changed" "Selected: ${choice}" - # Try to refresh Waybar automatically; ignore failures - if command -v waybar-msg >/dev/null 2>&1; then - waybar-msg cmd reload >/dev/null 2>&1 || true + # Give wallust a brief moment to finish writing templates + sleep 0.15 + + # Prefer the same refresh path used by WallpaperSelect to avoid CSS race/fallbacks + if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then + "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true else - pkill -SIGUSR2 waybar >/dev/null 2>&1 || true + # Fallback: reload Waybar only + if command -v waybar-msg >/dev/null 2>&1; then + waybar-msg cmd reload >/dev/null 2>&1 || true + else + pkill -SIGUSR2 waybar >/dev/null 2>&1 || true + fi fi else have_notify && notify-send -u critical -a ThemeChanger \ -- cgit v1.2.3 From 36848b869cdf753f716c88b1a2bdc8e482434ae2 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Tue, 6 Jan 2026 23:38:57 -0500 Subject: Possible race condition now waits then refreshes On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: hypr/scripts/ThemeChanger.sh --- config/hypr/scripts/ThemeChanger.sh | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index 1ae1060f..a40a1f18 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -39,14 +39,30 @@ if wallust theme -- "${choice}"; then -h string:x-dunst-stack-tag:themechanger \ "Global theme changed" "Selected: ${choice}" - # Give wallust a brief moment to finish writing templates - sleep 0.15 + # Regenerate templates from the current wallpaper to ensure Wallust rewrites waybar/rofi files + start_ts=$(date +%s) + wp_cur="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" + if [ -f "$wp_cur" ]; then + wallust run -s "$wp_cur" >/dev/null 2>&1 || true + fi + + # Wait until template targets exist and are non-empty/newer than the start time + targets=("$HOME/.config/waybar/wallust/colors-waybar.css" "$HOME/.config/rofi/wallust/colors-rofi.rasi") + for i in $(seq 1 40); do + ok=1 + for f in "${targets[@]}"; do + if [ ! -s "$f" ]; then ok=0; break; fi + mtime=$(stat -c %Y "$f" 2>/dev/null || echo 0) + if [ "$mtime" -lt "$start_ts" ]; then ok=0; break; fi + done + [ $ok -eq 1 ] && break + sleep 0.1 + done - # Prefer the same refresh path used by WallpaperSelect to avoid CSS race/fallbacks + # Refresh bars/menus after files are in place if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true else - # Fallback: reload Waybar only if command -v waybar-msg >/dev/null 2>&1; then waybar-msg cmd reload >/dev/null 2>&1 || true else -- cgit v1.2.3 From 95861d3827ce294ef321b996813c910bcf22b816 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 7 Jan 2026 14:51:31 -0500 Subject: Adding better control over wallust pallete generation Then refresh On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ThemeChanger.sh --- config/hypr/scripts/ThemeChanger.sh | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index a40a1f18..604791c9 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -33,21 +33,21 @@ if (( prompt_status != 0 )) || [[ -z "${choice}" ]]; then exit 0 fi +# Record time before applying so we can wait for fresh template outputs +start_ts=$(date +%s) + # Apply the theme and report result if wallust theme -- "${choice}"; then have_notify && notify-send -a ThemeChanger \ -h string:x-dunst-stack-tag:themechanger \ "Global theme changed" "Selected: ${choice}" - # Regenerate templates from the current wallpaper to ensure Wallust rewrites waybar/rofi files - start_ts=$(date +%s) - wp_cur="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" - if [ -f "$wp_cur" ]; then - wallust run -s "$wp_cur" >/dev/null 2>&1 || true - fi - # Wait until template targets exist and are non-empty/newer than the start time - targets=("$HOME/.config/waybar/wallust/colors-waybar.css" "$HOME/.config/rofi/wallust/colors-rofi.rasi") + targets=( + "$HOME/.config/waybar/wallust/colors-waybar.css" + "$HOME/.config/rofi/wallust/colors-rofi.rasi" + "$HOME/.config/kitty/kitty-themes/01-Wallust.conf" + ) for i in $(seq 1 40); do ok=1 for f in "${targets[@]}"; do @@ -69,6 +69,11 @@ if wallust theme -- "${choice}"; then pkill -SIGUSR2 waybar >/dev/null 2>&1 || true fi fi + + # Ask kitty to reload its config so the new 01-Wallust.conf is picked up + if pidof kitty >/dev/null; then + for pid in $(pidof kitty); do kill -SIGUSR1 "$pid" 2>/dev/null || true; done + fi else have_notify && notify-send -u critical -a ThemeChanger \ -h string:x-dunst-stack-tag:themechanger \ -- cgit v1.2.3 From 0eed66a811866cd67ca512505540b551f2f9a812 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 7 Jan 2026 14:56:37 -0500 Subject: Wait timer was wrong --- config/hypr/scripts/ThemeChanger.sh | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index 604791c9..b3672b7f 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -42,24 +42,49 @@ if wallust theme -- "${choice}"; then -h string:x-dunst-stack-tag:themechanger \ "Global theme changed" "Selected: ${choice}" - # Wait until template targets exist and are non-empty/newer than the start time + # Wait until template targets exist, are newer than start_ts, and are stable (size/mtime stops changing) targets=( "$HOME/.config/waybar/wallust/colors-waybar.css" "$HOME/.config/rofi/wallust/colors-rofi.rasi" "$HOME/.config/kitty/kitty-themes/01-Wallust.conf" ) - for i in $(seq 1 40); do + + # Phase 1: appearance + freshness + for _ in $(seq 1 100); do # up to ~10s ok=1 for f in "${targets[@]}"; do - if [ ! -s "$f" ]; then ok=0; break; fi + [ -s "$f" ] || { ok=0; break; } mtime=$(stat -c %Y "$f" 2>/dev/null || echo 0) - if [ "$mtime" -lt "$start_ts" ]; then ok=0; break; fi + [ "$mtime" -ge "$start_ts" ] || { ok=0; break; } done [ $ok -eq 1 ] && break sleep 0.1 done - # Refresh bars/menus after files are in place + # Phase 2: stability (avoid reading half-written files) + if [ $ok -eq 1 ]; then + for _ in 1 2 3; do + sizes_a=(); mtimes_a=() + for f in "${targets[@]}"; do + sizes_a+=("$(stat -c %s "$f" 2>/dev/null || echo 0)") + mtimes_a+=("$(stat -c %Y "$f" 2>/dev/null || echo 0)") + done + sleep 0.15 + sizes_b=(); mtimes_b=() + for f in "${targets[@]}"; do + sizes_b+=("$(stat -c %s "$f" 2>/dev/null || echo 0)") + mtimes_b+=("$(stat -c %Y "$f" 2>/dev/null || echo 0)") + done + if [ "${sizes_a[*]}" = "${sizes_b[*]}" ] && [ "${mtimes_a[*]}" = "${mtimes_b[*]}" ]; then + break + fi + done + else + # As a safety net, wait a bit to avoid racing rofi reload against template writes + sleep 0.5 + fi + + # Refresh bars/menus after files are ready if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true else -- cgit v1.2.3 From 7b8ed32a68b6dc6d3d9575f6fe113ea1623e6094 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 7 Jan 2026 15:04:53 -0500 Subject: Found Urgent was hard coded RED, setting to --- config/hypr/scripts/ThemeChanger.sh | 2 ++ config/rofi/themes/KooL_style-4.rasi | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index b3672b7f..3f55cce4 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -84,6 +84,8 @@ if wallust theme -- "${choice}"; then sleep 0.5 fi + # Small cushion before refresh to mirror wallpaper flow + sleep 0.2 # Refresh bars/menus after files are ready if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true diff --git a/config/rofi/themes/KooL_style-4.rasi b/config/rofi/themes/KooL_style-4.rasi index ea7b1977..ea8d2c39 100644 --- a/config/rofi/themes/KooL_style-4.rasi +++ b/config/rofi/themes/KooL_style-4.rasi @@ -25,7 +25,7 @@ configuration { background-alt: @color1; selected: @color12; active: @color11; - urgent: #F7768E; + urgent: @color13; border-color: @color11; handle-color: @selected; -- cgit v1.2.3 From 9a06cade6048cf1fb3a540c889f26fd5ee12465f Mon Sep 17 00:00:00 2001 From: Don Williams Date: Wed, 7 Jan 2026 22:46:17 -0500 Subject: Fixing rofi selection color issue On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ThemeChanger.sh modified: config/rofi/themes/KooL_style-5.rasi --- config/hypr/scripts/ThemeChanger.sh | 15 +++++++++++++++ config/rofi/themes/KooL_style-5.rasi | 7 +++---- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index 3f55cce4..f42fb406 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -86,6 +86,21 @@ if wallust theme -- "${choice}"; then # Small cushion before refresh to mirror wallpaper flow sleep 0.2 + # Normalize Rofi selection colors to use the palette's accent (color12) + rofi_colors="$HOME/.config/rofi/wallust/colors-rofi.rasi" + if [ -f "$rofi_colors" ]; then + accent_hex=$(sed -n 's/^\s*color12:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1) + [ -z "$accent_hex" ] && accent_hex=$(sed -n 's/^\s*color13:\s*\(#[0-9A-Fa-f]\{6\}\).*/\1/p' "$rofi_colors" | head -n1) + if [ -n "$accent_hex" ]; then + sed -i -E "s|^(\s*selected-normal-background:\s*).*$|\1$accent_hex;|" "$rofi_colors" + sed -i -E "s|^(\s*selected-active-background:\s*).*$|\1$accent_hex;|" "$rofi_colors" + sed -i -E "s|^(\s*selected-urgent-background:\s*).*$|\1$accent_hex;|" "$rofi_colors" + sed -i -E "s|^(\s*selected-normal-foreground:\s*).*$|\1#000000;|" "$rofi_colors" + sed -i -E "s|^(\s*selected-active-foreground:\s*).*$|\1#000000;|" "$rofi_colors" + sed -i -E "s|^(\s*selected-urgent-foreground:\s*).*$|\1#000000;|" "$rofi_colors" + fi + fi + # Refresh bars/menus after files are ready if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true diff --git a/config/rofi/themes/KooL_style-5.rasi b/config/rofi/themes/KooL_style-5.rasi index 4f51b972..72ec7675 100644 --- a/config/rofi/themes/KooL_style-5.rasi +++ b/config/rofi/themes/KooL_style-5.rasi @@ -140,10 +140,9 @@ button { button selected { background-color: @selected; - text-color: @foreground; + text-color: @background; border: 1px; border-color: transparent; - } /* ---- Listview ---- */ @@ -203,8 +202,8 @@ element normal.active { element-text selected, element selected.normal { - background-color: @active; - text-color: inherit; + background-color: @selected; + text-color: @background; } element selected.urgent { -- cgit v1.2.3 From eb03615199f93f29e8d663b1e5d2b0e3371459cd Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 00:13:45 -0500 Subject: Added support for ghostty term integrated w/wallust On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/ghostty/ghostty.config modified: config/hypr/scripts/ThemeChanger.sh modified: config/hypr/scripts/WallustSwww.sh new file: config/wallust/templates/colors-ghostty.conf modified: config/wallust/wallust.toml --- config/ghostty/ghostty.config | 2 +- config/hypr/scripts/ThemeChanger.sh | 4 ++++ config/hypr/scripts/WallustSwww.sh | 3 +++ config/wallust/templates/colors-ghostty.conf | 28 ++++++++++++++++++++++++++++ config/wallust/wallust.toml | 3 +++ 5 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 config/wallust/templates/colors-ghostty.conf (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/ghostty/ghostty.config b/config/ghostty/ghostty.config index 00def172..3795ec3f 100644 --- a/config/ghostty/ghostty.config +++ b/config/ghostty/ghostty.config @@ -4,7 +4,7 @@ background-opacity = 1.00 bold-is-bright = false confirm-close-surface = false cursor-style = bar -font-family = Maple Mono NF +font-family = FantasqueSansM Nerd Font Mono font-size = 12 gtk-single-instance = true mouse-hide-while-typing = true diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index f42fb406..4a712a4b 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -43,10 +43,14 @@ if wallust theme -- "${choice}"; then "Global theme changed" "Selected: ${choice}" # Wait until template targets exist, are newer than start_ts, and are stable (size/mtime stops changing) + # Ensure Ghostty directory exists so Wallust can write target even if Ghostty isn't installed + mkdir -p "$HOME/.config/ghostty" || true + targets=( "$HOME/.config/waybar/wallust/colors-waybar.css" "$HOME/.config/rofi/wallust/colors-rofi.rasi" "$HOME/.config/kitty/kitty-themes/01-Wallust.conf" + "$HOME/.config/ghostty/wallust.conf" ) # Phase 1: appearance + freshness diff --git a/config/hypr/scripts/WallustSwww.sh b/config/hypr/scripts/WallustSwww.sh index f3da3e35..7090b84c 100755 --- a/config/hypr/scripts/WallustSwww.sh +++ b/config/hypr/scripts/WallustSwww.sh @@ -55,6 +55,9 @@ ln -sf "$wallpaper_path" "$rofi_link" || true mkdir -p "$(dirname "$wallpaper_current")" cp -f "$wallpaper_path" "$wallpaper_current" || true +# Ensure Ghostty directory exists so Wallust can write target even if Ghostty isn't installed +mkdir -p "$HOME/.config/ghostty" || true + # Run wallust (silent) to regenerate templates defined in ~/.config/wallust/wallust.toml # -s is used in this repo to keep things quiet and avoid extra prompts wallust run -s "$wallpaper_path" || true diff --git a/config/wallust/templates/colors-ghostty.conf b/config/wallust/templates/colors-ghostty.conf new file mode 100644 index 00000000..45f93a63 --- /dev/null +++ b/config/wallust/templates/colors-ghostty.conf @@ -0,0 +1,28 @@ +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ +# wallust template - colors for Ghostty +# This file is included by ~/.config/ghostty/ghostty.config when present. + +# Core UI colors +foreground = {{foreground}} +background = {{background}} +cursor-color = {{cursor}} +selection-foreground = {{foreground}} +selection-background = {{color12}} + +# 16-color palette +palette = 0:{{color0}} +palette = 1:{{color1}} +palette = 2:{{color2}} +palette = 3:{{color3}} +palette = 4:{{color4}} +palette = 5:{{color5}} +palette = 6:{{color6}} +palette = 7:{{color7}} +palette = 8:{{color8}} +palette = 9:{{color9}} +palette = 10:{{color10}} +palette = 11:{{color11}} +palette = 12:{{color12}} +palette = 13:{{color13}} +palette = 14:{{color14}} +palette = 15:{{color15}} \ No newline at end of file diff --git a/config/wallust/wallust.toml b/config/wallust/wallust.toml index d1f40ab2..7565dd47 100644 --- a/config/wallust/wallust.toml +++ b/config/wallust/wallust.toml @@ -49,6 +49,9 @@ waybar.target = '~/.config/waybar/wallust/colors-waybar.css' kitty.template = 'colors-kitty.conf' kitty.target = '~/.config/kitty/kitty-themes/01-Wallust.conf' +ghostty.template = 'colors-ghostty.conf' +ghostty.target = '~/.config/ghostty/wallust.conf' + quickshell.template = 'qml_color.json' quickshell.target = '~/.config/quickshell/qml_color.json' -- cgit v1.2.3 From d83d96dca71885f363fa9b70a32084bfe3219a69 Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 00:28:29 -0500 Subject: Fixing ghostty wallust integration On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ThemeChanger.sh modified: config/hypr/scripts/WallustSwww.sh modified: copy.sh --- config/hypr/scripts/ThemeChanger.sh | 6 ++++++ config/hypr/scripts/WallustSwww.sh | 5 +++++ copy.sh | 6 +++++- 3 files changed, 16 insertions(+), 1 deletion(-) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index 4a712a4b..b42ec8da 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -53,6 +53,12 @@ if wallust theme -- "${choice}"; then "$HOME/.config/ghostty/wallust.conf" ) + # Normalize Ghostty palette syntax in case upstream templates or older targets used ':' + ghostty_conf="$HOME/.config/ghostty/wallust.conf" + if [ -f "$ghostty_conf" ]; then + sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$ghostty_conf" 2>/dev/null || true + fi + # Phase 1: appearance + freshness for _ in $(seq 1 100); do # up to ~10s ok=1 diff --git a/config/hypr/scripts/WallustSwww.sh b/config/hypr/scripts/WallustSwww.sh index 7090b84c..421b84f8 100755 --- a/config/hypr/scripts/WallustSwww.sh +++ b/config/hypr/scripts/WallustSwww.sh @@ -61,3 +61,8 @@ mkdir -p "$HOME/.config/ghostty" || true # Run wallust (silent) to regenerate templates defined in ~/.config/wallust/wallust.toml # -s is used in this repo to keep things quiet and avoid extra prompts wallust run -s "$wallpaper_path" || true + +# Normalize Ghostty palette syntax in case ':' was used by older files +if [ -f "$HOME/.config/ghostty/wallust.conf" ]; then + sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$HOME/.config/ghostty/wallust.conf" 2>/dev/null || true +fi diff --git a/copy.sh b/copy.sh index 9de8677c..34a4e543 100755 --- a/copy.sh +++ b/copy.sh @@ -726,11 +726,15 @@ if [ -f "$GHOSTTY_SRC" ]; then mkdir -p "$GHOSTTY_DIR" install -m 0644 "$GHOSTTY_SRC" "$GHOSTTY_DEST" 2>&1 | tee -a "$LOG" echo "${OK} - Installed Ghostty config to ${MAGENTA}$GHOSTTY_DEST${RESET}" 2>&1 | tee -a "$LOG" + # Normalize existing wallust.conf palette syntax if present (convert ':' to '=') + if [ -f "$GHOSTTY_DIR/wallust.conf" ]; then + sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$GHOSTTY_DIR/wallust.conf" 2>&1 | tee -a "$LOG" || true + fi else echo "${ERROR} - $GHOSTTY_SRC not found; skipping Ghostty config install." 2>&1 | tee -a "$LOG" fi -printf "\n%.0s" {1..1} +printf "\\n%.0s" {1..1} # ags config # Check if ags is installed -- cgit v1.2.3 From 7e057020a428ba234e1557d17d26ec28fedb250f Mon Sep 17 00:00:00 2001 From: Don Williams Date: Thu, 8 Jan 2026 00:36:12 -0500 Subject: Adding reload config to ghostty on theme/wallpaper change On branch development Your branch is up to date with 'origin/development'. Changes to be committed: modified: config/hypr/scripts/ThemeChanger.sh modified: config/hypr/scripts/WallustSwww.sh --- config/hypr/scripts/ThemeChanger.sh | 5 +++++ config/hypr/scripts/WallustSwww.sh | 9 +++++++++ 2 files changed, 14 insertions(+) (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index b42ec8da..4c814f2c 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -126,6 +126,11 @@ if wallust theme -- "${choice}"; then if pidof kitty >/dev/null; then for pid in $(pidof kitty); do kill -SIGUSR1 "$pid" 2>/dev/null || true; done fi + + # Ask ghostty to reload its config so the updated wallust.conf is applied + if pidof ghostty >/dev/null; then + for pid in $(pidof ghostty); do kill -SIGUSR2 "$pid" 2>/dev/null || true; done + fi else have_notify && notify-send -u critical -a ThemeChanger \ -h string:x-dunst-stack-tag:themechanger \ diff --git a/config/hypr/scripts/WallustSwww.sh b/config/hypr/scripts/WallustSwww.sh index 421b84f8..d1e53400 100755 --- a/config/hypr/scripts/WallustSwww.sh +++ b/config/hypr/scripts/WallustSwww.sh @@ -66,3 +66,12 @@ wallust run -s "$wallpaper_path" || true if [ -f "$HOME/.config/ghostty/wallust.conf" ]; then sed -i -E 's/^(\s*palette\s*=\s*)([0-9]{1,2}):/\1\2=/' "$HOME/.config/ghostty/wallust.conf" 2>/dev/null || true fi + +# Light wait for Ghostty colors file to be present then signal Ghostty to reload (SIGUSR2) +for _ in 1 2 3; do + [ -s "$HOME/.config/ghostty/wallust.conf" ] && break + sleep 0.1 +done +if pidof ghostty >/dev/null; then + for pid in $(pidof ghostty); do kill -SIGUSR2 "$pid" 2>/dev/null || true; done +fi -- cgit v1.2.3 From cf81f96f25a12e4bae9f3c3cb7b5fedd049aa7af Mon Sep 17 00:00:00 2001 From: Don Williams Date: Sun, 11 Jan 2026 16:50:35 -0500 Subject: Fixed window frame themeing fixed issue with kitty-themes Kity-themes was broken by global theme Not both should work Border colors weren't getting set by ThemeChanger On branch development Your branch is up to date with 'origin/development'. Changes to be committed: new file: config/hypr/hyprlock-2k.conf modified: config/hypr/scripts/ThemeChanger.sh renamed: config/hypr/v2.3.18 -> config/hypr/v2.3.19 modified: config/kitty/kitty-themes/00-Default.conf --- config/hypr/hyprlock-2k.conf | 183 ++++++++++++++++++++++++++++++ config/hypr/scripts/ThemeChanger.sh | 6 + config/hypr/v2.3.18 | 5 - config/hypr/v2.3.19 | 5 + config/kitty/kitty-themes/00-Default.conf | 1 + 5 files changed, 195 insertions(+), 5 deletions(-) create mode 100644 config/hypr/hyprlock-2k.conf delete mode 100644 config/hypr/v2.3.18 create mode 100644 config/hypr/v2.3.19 (limited to 'config/hypr/scripts/ThemeChanger.sh') diff --git a/config/hypr/hyprlock-2k.conf b/config/hypr/hyprlock-2k.conf new file mode 100644 index 00000000..f359357f --- /dev/null +++ b/config/hypr/hyprlock-2k.conf @@ -0,0 +1,183 @@ +# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # +# Hyprlock config for => 2k monitor resolutions +# Original config submitted by https://github.com/SherLock707 + +# Sourcing colors generated by wallust +source = $HOME/.config/hypr/wallust/wallust-hyprland.conf +$Scripts = $HOME/.config/hypr/scripts + +general { + grace = 1 + fractional_scaling = 2 + immediate_render = true +} + +background { + monitor = + # NOTE: use only 1 path + #path = screenshot # screenshot of your desktop + #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects + path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper + + color = rgb(0,0,0) # color will be rendered initially until path is available + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_size = 3 + blur_passes = 2 # 0 disables blurring + noise = 0.0117 + contrast = 1.3000 # Vibrant!!! + brightness = 0.8000 + vibrancy = 0.2100 + vibrancy_darkness = 0.0 +} + + +# Date +label { + monitor = + text = cmd[update:18000000] echo " "$(date +'%A, %-d %B')" " + color = $color13 + font_size = 64 + font_family = Victor Mono Bold Italic + position = 0, -20 + halign = center + valign = center +} + +# Hour-Time (single horizontal time like 1080p variant) +label { + monitor = +# text = cmd[update:1000] echo "$(date +"%H:%M")" # 24h option + text = cmd[update:1000] echo "$(date +"%I:%M %p")" # AM/PM + #color = rgba(255, 185, 0, .8) + color = $color8 + font_size = 173 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -133 + halign = center + valign = top +} + +# Minute-Time (disabled; kept for reference) +# label { +# monitor = +# text = cmd[update:1000] echo "$(date +"%M")" +# #color = rgba(15, 10, 222, .8) +# color = $color12 +# font_size = 240 +# font_family = JetBrainsMono Nerd Font ExtraBold +# position = 0, -450 +# halign = center +# valign = top +# } + +# Seconds-Time (disabled; kept for reference) +# label { +# monitor = +# text = cmd[update:1000] echo "$(date +"%S")" +# # text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM +# color = $color11 +# font_size = 50 +# font_family = JetBrainsMono Nerd Font ExtraBold +# position = 0, -450 +# halign = center +# valign = top +# } + +# Put a picture of choice here. Default is the current wallpaper +#image { +# monitor = +# #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current +# size = 160 +# rounding = -1 +# border_size = 0 +# border_color = $color11 +# rotate = 0 +# reload_time = -1 +# position = 0, 400 +# halign = center +# valign = bottom +#} + +# USER +label { + monitor = + text =  $USER + color = $color9 + font_size = 48 + font_family = Victor Mono Bold Oblique + position = 0, 300 + halign = center + valign = bottom +} + +# INPUT FIELD +input-field { + monitor = + size = 306, 93 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = $color8 + inner_color = rgba(255, 255, 255, 0.1) + capslock_color = rgb(255,255,255) + font_color = $color13 + fade_on_empty = false + font_family = Victor Mono Bold Oblique + placeholder_text = 🔒 Type Password + hide_input = false + position = 0, 100 + halign = center + valign = bottom +} + +# Keyboard LAYOUT +label { + monitor = + text = $LAYOUT + color = $color8 + font_size = 19 + font_family = Victor Mono Bold Oblique + position = 0, 53 + halign = center + valign = bottom +} + +# uptime +label { + monitor = + text = cmd[update:60000] echo " "$(uptime -p || $Scripts/UptimeNixOS.sh)" " + color = $color8 + font_size = 32 + font_family = Victor Mono Bold Oblique + position = 0, 0 + halign = right + valign = bottom +} + +# battery information +label { + monitor = + text = cmd[update:1000] echo " "$($Scripts/Battery.sh)" " + color = $color8 + font_size = 21 + font_family = Victor Mono Bold Oblique + position = 0, 40 + halign = right + valign = bottom +} + +# weather edit the scripts for locations +# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py +# see https://github.com/JaKooLit/Hyprland-Dots/wiki/TIPS#%EF%B8%8F-weather-app-related-for-waybar-and-hyprlock +label { + monitor = + text = cmd[update:3600000] [ -f "$HOME/.cache/.weather_cache" ] && cat "$HOME/.cache/.weather_cache" + color = $color8 + font_size = 19 + font_family = Victor Mono Bold Oblique + position = 50, 0 + halign = left + valign = bottom +} diff --git a/config/hypr/scripts/ThemeChanger.sh b/config/hypr/scripts/ThemeChanger.sh index 4c814f2c..19ee3298 100755 --- a/config/hypr/scripts/ThemeChanger.sh +++ b/config/hypr/scripts/ThemeChanger.sh @@ -50,6 +50,7 @@ if wallust theme -- "${choice}"; then "$HOME/.config/waybar/wallust/colors-waybar.css" "$HOME/.config/rofi/wallust/colors-rofi.rasi" "$HOME/.config/kitty/kitty-themes/01-Wallust.conf" + "$HOME/.config/hypr/wallust/wallust-hyprland.conf" "$HOME/.config/ghostty/wallust.conf" ) @@ -111,6 +112,11 @@ if wallust theme -- "${choice}"; then fi fi + # Reload Hyprland so new border colors from wallust-hyprland.conf take effect + if command -v hyprctl >/dev/null 2>&1; then + hyprctl reload >/dev/null 2>&1 || true + fi + # Refresh bars/menus after files are ready if [ -x "$HOME/.config/hypr/scripts/Refresh.sh" ]; then "$HOME/.config/hypr/scripts/Refresh.sh" >/dev/null 2>&1 || true diff --git a/config/hypr/v2.3.18 b/config/hypr/v2.3.18 deleted file mode 100644 index 31b3414d..00000000 --- a/config/hypr/v2.3.18 +++ /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.19 b/config/hypr/v2.3.19 new file mode 100644 index 00000000..31b3414d --- /dev/null +++ b/config/hypr/v2.3.19 @@ -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 diff --git a/config/kitty/kitty-themes/00-Default.conf b/config/kitty/kitty-themes/00-Default.conf index 2c1ac15d..39fc496c 100644 --- a/config/kitty/kitty-themes/00-Default.conf +++ b/config/kitty/kitty-themes/00-Default.conf @@ -1,3 +1,4 @@ # /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ # # This is just created to remove all the themes +include ./01-Wallust.conf -- cgit v1.2.3