-
-
Notifications
You must be signed in to change notification settings - Fork 137
Open
Description
Hey there,
I'm trying to use Sketchybar together with aerospace but having a hard time to make it work properly. Already made it to adjust my aerospace.toml such that it triggers whenever i move an application to another window. The "new" problem now is that my sketchybar doesn't update whenever i either minimize, close or even open a new app. I want in those cases that the symbol disappears/appears in my sketchybar.
My item looks like the following:
#!/bin/bash
sketchybar --add item aerospace_mode left \
--subscribe aerospace_mode aerospace_mode_change \
--set aerospace_mode icon="" \
script="$CONFIG_DIR/plugins/aerospace_mode.sh" \
icon.color="$ACCENT_COLOR" \
icon.padding_left=4 \
drawing=off
for sid in $(aerospace list-workspaces --all); do
monitor=$(aerospace list-windows --workspace "$sid" --format "%{monitor-appkit-nsscreen-screens-id}")
if [ -z "$monitor" ]; then
monitor="1"
fi
sketchybar --add item space."$sid" left \
--subscribe space."$sid" aerospace_workspace_change display_change system_woke mouse.entered mouse.exited \
--set space."$sid" \
display="$monitor" \
padding_right=0 \
icon="$sid" \
label.padding_right=7 \
icon.padding_left=7 \
icon.padding_right=4 \
background.drawing=on \
label.font="sketchybar-app-font:Regular:16.0" \
background.color="$ACCENT_COLOR" \
icon.color="$BACKGROUND" \
label.color="$BACKGROUND" \
background.corner_radius=5 \
background.height=25 \
label.drawing=on \
click_script="aerospace workspace $sid" \
script="$CONFIG_DIR/plugins/aerospace.sh $sid"
done
sketchybar --add item space_separator left \
--set space_separator icon="|" \
icon.color="$ACCENT_COLOR" \
icon.padding_left=4 \
icon.padding_right=7 \
label.drawing=off \
background.drawing=off
i already tried with both items to subscribe front_app_switched, but unfortunately that didn't work
and my plugin is
#!/usr/bin/env bash
# make sure it's executable with:
# chmod +x ~/.config/sketchybar/plugins/aerospace.sh
source "$CONFIG_DIR/colors.sh"
FOCUSED_WORKSPACE=$(aerospace list-workspaces --focused --format "%{workspace}")
if [ "$SENDER" == "mouse.entered" ]; then
if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
exit 0
fi
sketchybar --set "$NAME" \
background.drawing=on \
label.color="$BACKGROUND" \
icon.color="$BACKGROUND" \
background.color="$ACCENT_COLOR"
exit 0
fi
if [ "$SENDER" == "mouse.exited" ]; then
if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
exit 0
fi
sketchybar --set "$NAME" \
background.drawing=off \
label.color="$ACCENT_COLOR" \
icon.color="$ACCENT_COLOR" \
background.color="$TRANSPARENT"
exit 0
fi
icons=""
APPS_INFO=$(aerospace list-windows --workspace "$1" --json --format "%{monitor-appkit-nsscreen-screens-id}%{app-name}")
IFS=$'\n'
for sid in $(echo "$APPS_INFO" | jq -r "map ( .\"app-name\" ) | .[]"); do
icons+=$("$CONFIG_DIR/plugins/icon_map_fn.sh" "$sid")
icons+=" "
done
for monitor_id in $(echo "$APPS_INFO" | jq -r "map ( .\"monitor-appkit-nsscreen-screens-id\" ) | .[]"); do
monitor=$monitor_id
done
if [ -z "$monitor" ]; then
monitor="1"
fi
# When icons is empty, set it to " "
if [ -z "$icons" ]; then
if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
sketchybar --animate sin 10 \
--set "$NAME" \
y_offset=10 y_offset=0 \
background.drawing=on
sketchybar --set "$NAME" \
display="$monitor" \
drawing=on \
label="$icons" \
label.color="$BACKGROUND" \
icon.color="$BACKGROUND" \
background.color="$ACCENT_COLOR"
else
sketchybar --set "$NAME" drawing=off
fi
else
if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
sketchybar --animate sin 10 \
--set "$NAME" \
y_offset=10 y_offset=0 \
background.drawing=on
sketchybar --set "$NAME" \
display="$monitor" \
drawing=on \
label="$icons" \
label.color="$BACKGROUND" \
icon.color="$BACKGROUND" \
background.color="$ACCENT_COLOR"
else
sketchybar --set "$NAME" \
display="$monitor" \
drawing=on \
label="$icons" \
background.drawing=off \
label.color="$ACCENT_COLOR" \
icon.color="$ACCENT_COLOR" \
background.color="$TRANSPARENT"
fi
fi
Metadata
Metadata
Assignees
Labels
No labels