diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-02-23 20:30:19 +1100 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-02-23 20:30:19 +1100 |
| commit | 557e1e4abe52c938a4d92ae58a44856982d4e2c5 (patch) | |
| tree | adcfb8c1e9b7581052e7d43d9053555602f9c893 | |
| parent | emoji-picker: add emoji (diff) | |
| download | caelestia-cli-557e1e4abe52c938a4d92ae58a44856982d4e2c5.tar.gz caelestia-cli-557e1e4abe52c938a4d92ae58a44856982d4e2c5.tar.bz2 caelestia-cli-557e1e4abe52c938a4d92ae58a44856982d4e2c5.zip | |
scheme: light/dark mode
| -rwxr-xr-x | main.fish | 10 | ||||
| -rwxr-xr-x | scheme/gen-scheme.fish | 2 | ||||
| -rwxr-xr-x | scheme/main.fish | 30 | ||||
| -rwxr-xr-x | wallpaper.fish | 2 |
4 files changed, 33 insertions, 11 deletions
@@ -31,15 +31,7 @@ if test "$argv[1]" = workspace-action end if test "$argv[1]" = scheme - set -l valid_schemes (path change-extension '' $src/data/schemes/* | sed 's!.*/!!') - if contains -- "$argv[2]" $valid_schemes - mkdir -p $C_STATE/scheme - cp $src/data/schemes/$argv[2].txt $C_STATE/scheme/current.txt - echo -n $argv[2] > $C_STATE/scheme/current-name.txt - log "Changed scheme to $argv[2]" - else - error "Invalid scheme: $argv[2]" - end + $src/scheme/main.fish $argv[2..] exit end diff --git a/scheme/gen-scheme.fish b/scheme/gen-scheme.fish index 8aa21a2..0e7916d 100755 --- a/scheme/gen-scheme.fish +++ b/scheme/gen-scheme.fish @@ -24,7 +24,7 @@ else set colour_scheme dark end -test "$(cat $C_STATE/scheme/current-name.txt)" = dynamic && gsettings set org.gnome.desktop.interface color-scheme \'prefer-$colour_scheme\' +echo -n $colour_scheme > $C_STATE/scheme/dynamic-mode.txt # 2nd line except first element is the palette # The first element in lines 3+ are the layers diff --git a/scheme/main.fish b/scheme/main.fish new file mode 100755 index 0000000..06c4c14 --- /dev/null +++ b/scheme/main.fish @@ -0,0 +1,30 @@ +#!/bin/fish + +set -l src (dirname (status filename))/.. + +. $src/util.fish + +set -l valid_schemes (path change-extension '' $src/data/schemes/* | sed 's!.*/!!') +set -l light_schemes latte + +if contains -- "$argv[1]" $valid_schemes + mkdir -p $C_STATE/scheme + + # Update scheme colours + cp $src/data/schemes/$argv[1].txt $C_STATE/scheme/current.txt + + # Update scheme name + echo -n $argv[1] > $C_STATE/scheme/current-name.txt + + # Update scheme mode + if test $argv[1] = dynamic + set colour_scheme (cat $C_STATE/scheme/dynamic-mode.txt) + else + contains -- "$argv[1]" $light_schemes && set colour_scheme light || set colour_scheme dark + end + echo -n $colour_scheme > $C_STATE/scheme/current-mode.txt + + log "Changed scheme to $argv[1]" +else + error "Invalid scheme: $argv[1]" +end diff --git a/wallpaper.fish b/wallpaper.fish index eb03cfd..b21f87f 100755 --- a/wallpaper.fish +++ b/wallpaper.fish @@ -114,7 +114,7 @@ else set -l src (dirname (status filename)) $src/scheme/gen-scheme.fish $chosen_wallpaper > $src/data/schemes/dynamic.txt if test -f $C_STATE/scheme/current.txt -a "$(cat $C_STATE/scheme/current-name.txt)" = 'dynamic' - cp $src/data/schemes/dynamic.txt $C_STATE/scheme/current.txt + caelestia scheme dynamic end # Store the wallpaper chosen |