flavours: Call bemenu selection from wrapper function

If we call the listing and applying function directly we either select a
random colorscheme on *no* selection or we have to make use of either
xargs GNU functionality or something like moreutils ifne to only select
color schemes on selection.

Can additionally set a random theme (if selection is 'random') or a
random light theme (if selection is 'light').
This commit is contained in:
Marty Oehme 2023-03-07 12:08:47 +01:00
parent c31e441003
commit 46cdb519ea
Signed by: Marty
GPG key ID: EDBF2ED917B2EF6A
2 changed files with 27 additions and 1 deletions

View file

@ -71,7 +71,7 @@ riverctl map normal $mod+Shift T spawn "bemenu-translate"
# Desktop theming
# shellcheck disable=SC2016
riverctl map normal $mod+Shift S spawn 'flavours list -l | bemenu | xargs flavours apply'
riverctl map normal $mod+Shift S spawn 'flavourchoose'
# Password dropdown frontend
riverctl map normal $mod+Shift P spawn "pass-pick"

View file

@ -0,0 +1,26 @@
#!/usr/bin/env sh
picker=dmenu
if exist bemenu; then
picker=bemenu
elif exist wofi; then
picker=wofi
elif exist rofi; then
picker=rofi
fi
list=$(flavours list -l)
flavour=$(printf "%s\nrandom\nlight" "$list" | "$picker")
if [ -z "$flavour" ]; then
return
elif [ "$flavour" = "random" ]; then
flavours apply '*'
elif [ "$flavour" = "light" ]; then
flavours apply '*light'
else
flavours apply "$flavour"
fi
if [ "$1" = '-v' ]; then
notify-send "Theme set" "set to: $flavour"
fi