fix dynamic scheme

This commit is contained in:
2 * r + 2 * t 2025-01-18 16:56:34 +11:00
parent 6dc3c4b3c2
commit 76657b603d
9 changed files with 19 additions and 55 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
/hyprland/ignore.conf
/scheme/current.conf

View file

@ -1,5 +1,6 @@
exec = ~/.config/hypr/scripts/gen-scheme.fish hyprland
source = ~/.config/hypr/hyprland/scheme.conf
exec-once = ~/.config/hypr/scripts/monitor-scheme.fish
exec = ~/.config/hypr/scripts/gen-scheme.fish
source = ~/.config/hypr/scheme/current.conf
general {
col.active_border = rgba($peachd5)

View file

@ -1,26 +0,0 @@
$rosewater = f4dbd6
$flamingo = f0c6c6
$pink = f5bde6
$mauve = c6a0f6
$red = ed8796
$maroon = ee99a0
$peach = f5a97f
$yellow = eed49f
$green = a6da95
$teal = 8bd5ca
$sky = 91d7e3
$sapphire = 7dc4e4
$blue = 8aadf4
$lavender = b7bdf8
$text = cad3f5
$subtext1 = b8c0e0
$subtext0 = a5adcb
$overlay2 = 939ab7
$overlay1 = 8087a2
$overlay0 = 6e738d
$surface2 = 5b6078
$surface1 = 494d64
$surface0 = 363a4f
$base = 24273a
$mantle = 1e2030
$crust = 181926

View file

@ -1,32 +1,11 @@
#!/bin/fish
set -q XDG_CACHE_HOME && set cache $XDG_CACHE_HOME/caelestia || set cache ~/.cache/caelestia
set scheme_path $cache/scheme/current.txt
set lock_file $cache/locks/hypr-gen-scheme.lock
set hypr ~/.config/hypr
set default mocha
set program $argv[1]
function update-scheme -a scheme
cp $hypr/scheme/$program/$scheme.conf $hypr/$program/scheme.conf
end
set -q XDG_CACHE_HOME && set cache $XDG_CACHE_HOME || set cache ~/.cache
set scheme_path $cache/caelestia/scheme/current.txt
set scheme mocha
if test -f $scheme_path
if test -f $lock_file
set -l scheme (cat $scheme_path)
test -f $hypr/scheme/$program/$scheme.conf && update-scheme $scheme || update-scheme $default
else
# Lock so only 1 monitor
mkdir -p (dirname $lock_file)
touch $lock_file
trap "rm $lock_file" SIGINT
# Monitor file for changes
tail -f $scheme_path | while read line
test -f $hypr/scheme/$program/$line.conf && update-scheme $line
end
end
else
update-scheme $default
set -l current_scheme (cat $scheme_path)
test -f ~/.config/hypr/schemes/$current_scheme.conf && set scheme $current_scheme
end
echo "source = ~/.config/hypr/schemes/$scheme.conf" > ~/.config/hypr/schemes/current.conf

9
scripts/monitor-scheme.fish Executable file
View file

@ -0,0 +1,9 @@
#!/bin/fish
set -q XDG_CACHE_HOME && set cache $XDG_CACHE_HOME || set cache ~/.cache
set scheme_path $cache/caelestia/scheme/current.txt
set schemes ~/.config/hypr/scheme
inotifywait -e 'close_write,moved_to,create' -m (dirname $scheme_path) | while read dir events file
test "$dir$file" = $scheme_path && hyprctl reload
end