summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-02-23 20:30:19 +1100
committer2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>2025-02-23 20:30:19 +1100
commit557e1e4abe52c938a4d92ae58a44856982d4e2c5 (patch)
treeadcfb8c1e9b7581052e7d43d9053555602f9c893
parentemoji-picker: add emoji (diff)
downloadcaelestia-cli-557e1e4abe52c938a4d92ae58a44856982d4e2c5.tar.gz
caelestia-cli-557e1e4abe52c938a4d92ae58a44856982d4e2c5.tar.bz2
caelestia-cli-557e1e4abe52c938a4d92ae58a44856982d4e2c5.zip
scheme: light/dark mode
-rwxr-xr-xmain.fish10
-rwxr-xr-xscheme/gen-scheme.fish2
-rwxr-xr-xscheme/main.fish30
-rwxr-xr-xwallpaper.fish2
4 files changed, 33 insertions, 11 deletions
diff --git a/main.fish b/main.fish
index 575f819..32009fc 100755
--- a/main.fish
+++ b/main.fish
@@ -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