summaryrefslogtreecommitdiff
path: root/mac/.config/sketchybar.mon/plugins/yabai.sh
diff options
context:
space:
mode:
authorTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-08-23 12:42:37 +0900
committerTheSiahxyz <164138827+TheSiahxyz@users.noreply.github.com>2025-08-23 12:42:37 +0900
commit07d294425a98ee5d1e22d03e2b24ae2c76e487c0 (patch)
treea6818f0d64438c5fdb88b00a35d944f80c056213 /mac/.config/sketchybar.mon/plugins/yabai.sh
parent6fc28cdb3529ca8ee864cb5c41674cb0a4af72a1 (diff)
updates
Diffstat (limited to 'mac/.config/sketchybar.mon/plugins/yabai.sh')
-rwxr-xr-xmac/.config/sketchybar.mon/plugins/yabai.sh141
1 files changed, 141 insertions, 0 deletions
diff --git a/mac/.config/sketchybar.mon/plugins/yabai.sh b/mac/.config/sketchybar.mon/plugins/yabai.sh
new file mode 100755
index 0000000..6027de1
--- /dev/null
+++ b/mac/.config/sketchybar.mon/plugins/yabai.sh
@@ -0,0 +1,141 @@
+#!/bin/bash
+
+# window_state() {
+# source "$CONFIG_DIR/globalstyles.sh"
+#
+# COLOR=$LABEL_COLOR
+#
+# WINDOW=$(yabai -m query --windows --window)
+# read -r FLOATING SPLIT PARENT FULLSCREEN STICKY STACK_INDEX <<<$(echo "$WINDOW" | jq -rc '.["is-floating", "split-type", "has-parent-zoom", "has-fullscreen-zoom", "is-sticky", "stack-index"]')
+#
+# if [[ $STACK_INDEX -gt 0 ]]; then
+# LAST_STACK_INDEX=$(yabai -m query --windows --window stack.last | jq '.["stack-index"]')
+# ICON=$YABAI_STACK
+# LABEL="$(printf "%s/%s " "$STACK_INDEX" "$LAST_STACK_INDEX")"
+# COLOR=$YELLOW
+# elif [[ $FLOATING == "true" ]]; then
+# ICON=$YABAI_FLOAT
+# elif [[ $PARENT == "true" ]]; then
+# ICON="􁈔"
+# elif [[ $FULLSCREEN == "true" ]]; then
+# ICON=$YABAI_FULLSCREEN_ZOOM
+# elif [[ $SPLIT == "vertical" ]]; then
+# ICON=$YABAI_SPLIT_VERTICAL
+# elif [[ $SPLIT == "horizontal" ]]; then
+# ICON=$YABAI_SPLIT_HORIZONTAL
+# else
+# ICON=$YABAI_GRID
+# fi
+#
+# args=(--bar border_color=$COLOR --animate sin 10 --set $NAME icon=$ICON icon.color=$COLOR)
+#
+# [ -z "$LABEL" ] && args+=(label.drawing=off) ||
+# args+=(label.drawing=on label="$LABEL" label.color=$COLOR)
+#
+# [ -z "$ICON" ] && args+=(icon.width=0) ||
+# args+=(icon="$ICON")
+#
+# sketchybar -m "${args[@]}"
+# }
+#
+# windows_on_spaces() {
+# /usr/bin/python3 $CONFIG_DIR/plugins/space.py # New spaces python script to consolidate spaces
+# }
+#
+# mouse_clicked() {
+#
+# yabai_mode=$(yabai -m query --spaces --space | jq -r .type)
+#
+# case "$yabai_mode" in
+# bsp)
+# yabai -m config layout stack
+# ;;
+# stack)
+# yabai -m config layout float
+# ;;
+# float)
+# yabai -m config layout bsp
+# ;;
+# esac
+#
+# window_state
+# }
+#
+# case "$SENDER" in
+# "mouse.clicked")
+# mouse_clicked
+# ;;
+# "forced")
+# exit 0
+# ;;
+# "window_focus")
+# window_state
+# ;;
+# "windows_on_spaces" | "space_change")
+# windows_on_spaces
+# ;;
+# esac
+
+window_state() {
+ source "$CONFIG_DIR/colors.sh"
+ source "$CONFIG_DIR/icons.sh"
+
+ COLOR=$ROSEWATER
+
+ WINDOW=$(yabai -m query --windows --window)
+ read -r FLOATING SPLIT PARENT FULLSCREEN STICKY STACK_INDEX <<<$(echo "$WINDOW" | jq -rc '.["is-floating", "split-type", "has-parent-zoom", "has-fullscreen-zoom", "is-sticky", "stack-index"]')
+
+ if [[ $STACK_INDEX -gt 0 ]]; then
+ LAST_STACK_INDEX=$(yabai -m query --windows --window stack.last | jq '.["stack-index"]')
+ ICON=$YABAI_STACK
+ LABEL="$(printf "%s/%s " "$STACK_INDEX" "$LAST_STACK_INDEX")"
+ COLOR=$YELLOW
+ elif [[ $FLOATING == "true" ]]; then
+ ICON=$YABAI_FLOAT
+ elif [[ $PARENT == "true" ]]; then
+ ICON="􁈔"
+ elif [[ $FULLSCREEN == "true" ]]; then
+ ICON=$YABAI_FULLSCREEN_ZOOM
+ elif [[ $SPLIT == "vertical" ]]; then
+ ICON=$YABAI_SPLIT_VERTICAL
+ elif [[ $SPLIT == "horizontal" ]]; then
+ ICON=$YABAI_SPLIT_HORIZONTAL
+ else
+ ICON=$YABAI_GRID
+ fi
+
+ args=(--bar --animate sin 10 --set $NAME icon=$ICON icon.color=$COLOR)
+ # args=(--bar border_color=$COLOR --animate sin 10 --set $NAME icon=$ICON icon.color=$COLOR)
+
+ [ -z "$LABEL" ] && args+=(label.drawing=off) ||
+ args+=(label.drawing=on label="$LABEL" label.color=$COLOR)
+
+ [ -z "$ICON" ] && args+=(icon.width=0) ||
+ args+=(icon="$ICON")
+
+ sketchybar -m "${args[@]}"
+}
+
+windows_on_spaces() {
+ /usr/bin/python3 $CONFIG_DIR/plugins/space.py # New spaces python script to consolidate spaces
+}
+
+mouse_clicked() {
+ yabai -m window --toggle float
+ window_state
+}
+
+case "$SENDER" in
+"mouse.clicked")
+ mouse_clicked
+ ;;
+"forced")
+ exit 0
+ ;;
+"window_focus")
+ window_state
+ ;;
+# "windows_on_spaces" | "space_change")
+# windows_on_spaces
+# ;;
+esac