Add explicit toggle states
This commit is contained in:
+29
-6
@@ -1,19 +1,42 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# omarchy:summary=Toggle Omarchy features between enabled and disabled
|
# omarchy:summary=Toggle Omarchy features between enabled and disabled
|
||||||
# omarchy:args=<flag-name>
|
# omarchy:args=<flag-name> [toggle|on|off]
|
||||||
|
|
||||||
if (($# < 1)); then
|
if (($# < 1)); then
|
||||||
echo "Usage: omarchy-toggle <flag-name>" >&2
|
echo "Usage: omarchy-toggle <flag-name> [toggle|on|off]" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
FLAG_NAME="$1"
|
FLAG_NAME="$1"
|
||||||
|
ACTION="${2:-toggle}"
|
||||||
FLAG="$HOME/.local/state/omarchy/toggles/$FLAG_NAME"
|
FLAG="$HOME/.local/state/omarchy/toggles/$FLAG_NAME"
|
||||||
|
|
||||||
if [[ -f $FLAG ]]; then
|
enable() {
|
||||||
rm -f "$FLAG"
|
|
||||||
else
|
|
||||||
mkdir -p "$(dirname "$FLAG")"
|
mkdir -p "$(dirname "$FLAG")"
|
||||||
touch "$FLAG"
|
touch "$FLAG"
|
||||||
fi
|
}
|
||||||
|
|
||||||
|
disable() {
|
||||||
|
rm -f "$FLAG"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$ACTION" in
|
||||||
|
toggle|"")
|
||||||
|
if [[ -f $FLAG ]]; then
|
||||||
|
disable
|
||||||
|
else
|
||||||
|
enable
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
on)
|
||||||
|
enable
|
||||||
|
;;
|
||||||
|
off)
|
||||||
|
disable
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Usage: omarchy-toggle <flag-name> [toggle|on|off]" >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|||||||
+3
-44
@@ -1,48 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# omarchy:summary=Toggle bar visibility without killing the Omarchy shell
|
# omarchy:summary=Toggle bar visibility without killing the Omarchy shell
|
||||||
# omarchy:args=[toggle|show|hide]
|
# omarchy:args=[toggle|on|off]
|
||||||
# omarchy:examples=omarchy toggle bar | omarchy toggle bar hide | omarchy toggle bar show
|
# omarchy:examples=omarchy toggle bar | omarchy toggle bar off | omarchy toggle bar on
|
||||||
|
|
||||||
FLAG="$HOME/.local/state/omarchy/toggles/bar-off"
|
omarchy-toggle bar-off "${1:-toggle}"
|
||||||
|
|
||||||
apply_state() {
|
|
||||||
case "$1" in
|
|
||||||
hidden)
|
|
||||||
mkdir -p "$(dirname "$FLAG")"
|
|
||||||
touch "$FLAG"
|
|
||||||
;;
|
|
||||||
visible)
|
|
||||||
rm -f "$FLAG"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
case "${1:-toggle}" in
|
|
||||||
hide|off)
|
|
||||||
apply_state hidden
|
|
||||||
state=hidden
|
|
||||||
;;
|
|
||||||
show|on)
|
|
||||||
apply_state visible
|
|
||||||
state=visible
|
|
||||||
;;
|
|
||||||
toggle|"")
|
|
||||||
if [[ -f $FLAG ]]; then
|
|
||||||
apply_state visible
|
|
||||||
state=visible
|
|
||||||
else
|
|
||||||
apply_state hidden
|
|
||||||
state=hidden
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "Usage: omarchy-toggle-bar [toggle|show|hide]" >&2
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "$state" in
|
|
||||||
visible) omarchy-notification-send "Bar shown" -g ;;
|
|
||||||
hidden) omarchy-notification-send "Bar hidden" -g ;;
|
|
||||||
esac
|
|
||||||
|
|||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
source "$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)/base-test.sh"
|
||||||
|
|
||||||
|
TMPDIR=""
|
||||||
|
|
||||||
|
export PATH="$ROOT/bin:$PATH"
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
[[ -n $TMPDIR && -d $TMPDIR ]] && rm -rf "$TMPDIR"
|
||||||
|
}
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
TMPDIR=$(mktemp -d)
|
||||||
|
test_home="$TMPDIR/home"
|
||||||
|
flag="$test_home/.local/state/omarchy/toggles/example"
|
||||||
|
bar_flag="$test_home/.local/state/omarchy/toggles/bar-off"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle example on
|
||||||
|
[[ -f $flag ]] || fail "generic toggle enables explicit on state"
|
||||||
|
pass "generic toggle enables explicit on state"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle example on
|
||||||
|
[[ -f $flag ]] || fail "generic toggle on is idempotent"
|
||||||
|
pass "generic toggle on is idempotent"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle example off
|
||||||
|
[[ ! -f $flag ]] || fail "generic toggle disables explicit off state"
|
||||||
|
pass "generic toggle disables explicit off state"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle example
|
||||||
|
[[ -f $flag ]] || fail "generic toggle flips disabled state on"
|
||||||
|
pass "generic toggle flips disabled state on"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle example toggle
|
||||||
|
[[ ! -f $flag ]] || fail "generic toggle flips enabled state off"
|
||||||
|
pass "generic toggle flips enabled state off"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle-bar on
|
||||||
|
[[ -f $bar_flag ]] || fail "bar on enables bar-off toggle"
|
||||||
|
pass "bar on enables bar-off toggle"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle-bar on
|
||||||
|
[[ -f $bar_flag ]] || fail "bar on is idempotent"
|
||||||
|
pass "bar on is idempotent"
|
||||||
|
|
||||||
|
HOME="$test_home" omarchy-toggle-bar off
|
||||||
|
[[ ! -f $bar_flag ]] || fail "bar off disables bar-off toggle"
|
||||||
|
pass "bar off disables bar-off toggle"
|
||||||
Reference in New Issue
Block a user