diff --git a/.config/BitBar/Enabled/yabai_enhanced.365d.sh b/.config/BitBar/Enabled/yabai_enhanced.365d.sh new file mode 100755 index 0000000..757e365 --- /dev/null +++ b/.config/BitBar/Enabled/yabai_enhanced.365d.sh @@ -0,0 +1,144 @@ +#!/bin/sh + +# yabai enhanced +# v1.0 +# CHristian Baer +# chrisb86 +# Bitbar plugin to display yabai space ID and and mode with custom icon themes and dark mode support. +# https://raw.githubusercontent.com/chrisb86/bitbar_yabai_enhanced/main/screenshot.png +# sh, yabai +# https://github.com/chrisb86/ + +## Set theme +theme="default" + +## Set PATH +PATH="/opt/homebrew/bin:${PATH}" + +## Set yabai path +yabai="yabai" + +case $1 in + restart) + launchctl kickstart -k "gui/${UID}/homebrew.mxcl.yabai" + ;; + stop) + brew services stop yabai + ;; +esac + +basedir=$(dirname "$0") + +icon_path="${basedir}/yabai_enhanced/${theme}" + +yabai_modes="float bsp stack" + +yabai_spaces=$(yabai -m query --spaces | jq length) +yabai_displays=$(yabai -m query --displays | jq length) + +space_id=$(yabai -m query --spaces --display | jq 'map(select(."focused" == 1))[-1].index') +space_mode=$(yabai -m query --spaces --display | jq -r 'map(select(."focused" == 1))[-1].type') + +## Check if dark mode is active in macOS +macos_darkmode=$(defaults read -g AppleInterfaceStyle 2>/dev/null) + +enc_icon() { + base64 -i $1 -o - +} + +if [ "${theme}" == "default" ]; then + ## Load light or dark icons + if [ "${macos_darkmode}" == "Dark" ]; then + icon_float="iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAFV2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM2IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzYiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIzNiIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMzYiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjE0NC4wIgogICB0aWZmOllSZXNvbHV0aW9uPSIxNDQuMCIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0xMFQyMTo1MzozMiswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMi0xMFQyMTo1MzozMiswMTowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+eWFiYWk8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIChOb3YgIDYgMjAyMCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMTItMTBUMjE6NTM6MzIrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PvEFwYgAAAGBaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2pRmFFQQ0ODRDVZmELUEqSEBRJhBv1a9PkrUHu8p4S0Bq1CQdTSr6H+glqD5iAoiiCaGpqLWkpe56mgRJ7Luedzv/eew73ngjWcVjJ6kxsy2ZwWCvici0vLzpZXHNjpxktzRNHVybm5IA3t6wGLGe+GzFqNz/1rbbG4roClVXhCUbWc8LRwcCOnmrwr3K2kIjHhc2GXJhcUvjf1aIXfTE5W+MdkLRzyg7VT2Jms42gdKyktIywvpz+TzivV+5gvccSzC/MS+8R70QkRwIeTGabwM8oI4zKPMoSHYVnRIN9dzp9lXXIVmVUKaKyRJEUOl6h5qR6XmBA9LiNNwez/377qCa+nUt3hg+YXw/gYgJYdKBUN4/vYMEonYHuGq2wtf/0Ixj5FL9a0/kPo2IKL65oW3YPLbeh5UiNapCzZxK2JBLyfQfsSdN2CfaXSs+o+p48Q3pSvuoH9AxiU8x2rv0tEZ9l/1uq6AAAACXBIWXMAABYlAAAWJQFJUiTwAAAB3klEQVRYhe2YwU4TURSGv3Np0hgqCyOQkAYTYe1CqsGtfQZegvdgRdwaiHHFawBLNNquXBqChIQQbFwYAprW/i5mGoax7dwZZuws+iWzuDPnznyd3nMm9xhDkPQSaAINYA1YGhaXQB24jIzPgD9AKzwOzOzz2DtIqknaVT4sSCJyXMSu9yW9lTQ7SuaFpJOcZHyEBhxLeh6XeSjpW44yaYQGUrMALnR6AzzJsE7y4imwDWCSXgFHBTxkkbuL+iI8NwoB644gm8qAAU1HkNplYa1sQo0K6YpeF/jhGduPjb97zJkxSX2C/y+JPWATuPIUyoSvUJ8gQzpFyqQR+gU8KFoGoHKPuQsJ1zvcXUePuS3EI8n6hqrhuXGkLYwAvUTj/81UKImpUBKlE6oAX0lO+9+xscJ54+hlETJJWeZlYVqHxrEIzPsEVoBVjzgBx5GxASueMnVgC88fX+S3LAtdB5wXcOOsnDugPWmLCG1HsPEvCy0H7E/aIsKBM7MPwPtJmwA7ZvbJACTNAV+A5RHBRWfZCfDMzK4cgJn9BDaA0xwfkkZmw8z+3V6FbZl3Q9olN7HWSjWXho20I6kWdRhaEMOOyGuCbXYDeAREO11V4DrlmxBBzRu09A7N7GM86C+AYkQGDFUYVQAAAABJRU5ErkJggg==" + + icon_bsp="iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAFV2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM2IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzYiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIzNiIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMzYiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjE0NC4wIgogICB0aWZmOllSZXNvbHV0aW9uPSIxNDQuMCIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0xMFQyMTo1MzoxNyswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMi0xMFQyMTo1MzoxNyswMTowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+eWFiYWk8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIChOb3YgIDYgMjAyMCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMTItMTBUMjE6NTM6MTcrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/Pshe7SwAAAGBaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2pRmFFQQ0ODRDVZmELUEqSEBRJhBv1a9PkrUHu8p4S0Bq1CQdTSr6H+glqD5iAoiiCaGpqLWkpe56mgRJ7Luedzv/eew73ngjWcVjJ6kxsy2ZwWCvici0vLzpZXHNjpxktzRNHVybm5IA3t6wGLGe+GzFqNz/1rbbG4roClVXhCUbWc8LRwcCOnmrwr3K2kIjHhc2GXJhcUvjf1aIXfTE5W+MdkLRzyg7VT2Jms42gdKyktIywvpz+TzivV+5gvccSzC/MS+8R70QkRwIeTGabwM8oI4zKPMoSHYVnRIN9dzp9lXXIVmVUKaKyRJEUOl6h5qR6XmBA9LiNNwez/377qCa+nUt3hg+YXw/gYgJYdKBUN4/vYMEonYHuGq2wtf/0Ixj5FL9a0/kPo2IKL65oW3YPLbeh5UiNapCzZxK2JBLyfQfsSdN2CfaXSs+o+p48Q3pSvuoH9AxiU8x2rv0tEZ9l/1uq6AAAACXBIWXMAABYlAAAWJQFJUiTwAAABxUlEQVRYhe2YvUoDQRDHf7OmENTG0sZPRAtFNIq25hl8EcGnEFsxoE+QVzCWKjHBQmwUPwsfQESRBMfi7sLluK8km3gEf3DFzk5m/+zMTtgVQlDVDaAA5IE1YMI3PQe8+sb3wGRYnBDegKr7lUXkKtZbVUdVtajxTKoqvu8pwT+KH1U9VNWRKDHrKYPbEuTxoKqrng7jihkDSsBUyq23yQxQ8nbKuMYD0tdBELUkah9AVHULOG/jx9PAs2/86Nq6RYFNg3OasoAABYNztLPCmg1BNmrII5+jtemlQQLjL+AzpW/S3HiuTTFhLGFxl0yyS3/JnCAbKRuOsMelMWpOOxEULMYbYLaDOGE0MpeygRRkszF2JCiu2XXNQKbMKjb6UAOoB2xhdZXG1rAhaAX4thAH+C/qZGykbCgiTthOJtpsCLoG5i3EAagbnOttO/Syht4MUOvhAu1SMzgX/6xQNcDpX6vwUTYicgGcdBHE1r/9kYhUvD60S+ubTxy9KOonYA/cxigi78AO8NKDxdKI2RGRj6YgV1QF54513EcxRWBZRJonPXT73ReRbZxrdp7W2+0icOcb3wILKRZXWp/0zkTkMuj0C2I3OizDrvY1AAAAAElFTkSuQmCC" + + icon_stack="iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAFV2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM2IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzYiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIzNiIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMzYiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjE0NC4wIgogICB0aWZmOllSZXNvbHV0aW9uPSIxNDQuMCIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0xMFQyMTo1MjoyMiswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMi0xMFQyMTo1MjoyMiswMTowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+eWFiYWk8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIChOb3YgIDYgMjAyMCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMTItMTBUMjE6NTI6MjIrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PtufGToAAAGBaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2pRmFFQQ0ODRDVZmELUEqSEBRJhBv1a9PkrUHu8p4S0Bq1CQdTSr6H+glqD5iAoiiCaGpqLWkpe56mgRJ7Luedzv/eew73ngjWcVjJ6kxsy2ZwWCvici0vLzpZXHNjpxktzRNHVybm5IA3t6wGLGe+GzFqNz/1rbbG4roClVXhCUbWc8LRwcCOnmrwr3K2kIjHhc2GXJhcUvjf1aIXfTE5W+MdkLRzyg7VT2Jms42gdKyktIywvpz+TzivV+5gvccSzC/MS+8R70QkRwIeTGabwM8oI4zKPMoSHYVnRIN9dzp9lXXIVmVUKaKyRJEUOl6h5qR6XmBA9LiNNwez/377qCa+nUt3hg+YXw/gYgJYdKBUN4/vYMEonYHuGq2wtf/0Ixj5FL9a0/kPo2IKL65oW3YPLbeh5UiNapCzZxK2JBLyfQfsSdN2CfaXSs+o+p48Q3pSvuoH9AxiU8x2rv0tEZ9l/1uq6AAAACXBIWXMAABYlAAAWJQFJUiTwAAABeUlEQVRYhc2YsU4CQRCGv9lcJ1gbTTTxASwEjbbyDDyVsTUY45uIpRqFyloJiWJvsMLwW+yBBxwaFW73S6aZ2+K7m53N7Rg5SNoHakAVqADreev+QA9opdE0s/tvV0sqSTpTMQwlnUpamSezJ6lTkEyWR0m7Iw9LZcrAA7C1oNL8lidgx8zeXZo4CSgDsA0cA5ikQ+A6oMwIAQcO300xYEDN4Vs7Fiom6RnYCG2S0jVJQ9Jui4CB+3lNoVgCvOK/UF5QQH7SSNJCXu2fjCWT0CYpSoPY9hAJsMaXYTZYYn4uodt+WnQQeg/NdFt0eyg6oYT5/8t5+2rpuVgOxjHRlSw6oQR4YbaWeXUsIjcIfTBO8xFbyeTw19tY6DmgHdoiQ9vhL/6x0HLAZWiLDE1nZjfARWgToGFmd6Nhwyp+2LAZSKaDHzb0HYCZvQF1oBtIpm5m/ZknksqSzgucDTUklbIOuSd0OhE5wt/7qyxmpCcmR3pXZnY7vegTOfHbbp1N7w0AAAAASUVORK5CYII=" + else + icon_float="iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAFV2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM2IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzYiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIzNiIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMzYiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjE0NC4wIgogICB0aWZmOllSZXNvbHV0aW9uPSIxNDQuMCIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0xMFQyMTo1NDozNiswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMi0xMFQyMTo1NDozNiswMTowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+eWFiYWk8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIChOb3YgIDYgMjAyMCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMTItMTBUMjE6NTQ6MzYrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/Pve8EPIAAAGBaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2pRmFFQQ0ODRDVZmELUEqSEBRJhBv1a9PkrUHu8p4S0Bq1CQdTSr6H+glqD5iAoiiCaGpqLWkpe56mgRJ7Luedzv/eew73ngjWcVjJ6kxsy2ZwWCvici0vLzpZXHNjpxktzRNHVybm5IA3t6wGLGe+GzFqNz/1rbbG4roClVXhCUbWc8LRwcCOnmrwr3K2kIjHhc2GXJhcUvjf1aIXfTE5W+MdkLRzyg7VT2Jms42gdKyktIywvpz+TzivV+5gvccSzC/MS+8R70QkRwIeTGabwM8oI4zKPMoSHYVnRIN9dzp9lXXIVmVUKaKyRJEUOl6h5qR6XmBA9LiNNwez/377qCa+nUt3hg+YXw/gYgJYdKBUN4/vYMEonYHuGq2wtf/0Ixj5FL9a0/kPo2IKL65oW3YPLbeh5UiNapCzZxK2JBLyfQfsSdN2CfaXSs+o+p48Q3pSvuoH9AxiU8x2rv0tEZ9l/1uq6AAAACXBIWXMAABYlAAAWJQFJUiTwAAABnUlEQVRYhe3Y3WoTQRiA4SdrIIjWAykK0jO9AhsDPbXX5i34f+R1WI8F2ysQqyIUUfHQH2KzHkwWNkM2Oxs3mxX6wkAmmW/yZjLzzc4MLGeCQ4yxj1sV7Vaxhy+l+iec43hejvCmrpOreIK8hXIj6vtz9PkMD3GlSuYe3rckkyJUlHe4G8vs4EOLMk2ECqmFkXraskxToVz4+8DBBmTWEZphkgmrqQ8McJgJS7sv7PdNaDzULOlN8T2x7Syqf02IuVQEpkzSF0Li3DgpQufY7UImVehnVzLDf4iN80zMN4vzaBdZSsfrjNAoIaZpYswxTTLukguhOi6E6uid0BBvha1/Fb+jej6PW8WfdaW64v/MQ11xU9iga0doiDsJHRYng4IBbifK7OGBxAU0EPayukn9C5dL9dH8vbaZZjjbQMfrcpbhZNsWJU4y4eDfF44zvNy2RYmj4sVz7T+gNS2Pyl9wDR+3KHRqyYlmovoGZJNCp8Kl2FJ28KxDocfxyFQlxAPcF47ZY1y3eH8zwo+qX1VBLuS84krvFV7Hjf4CFFhoPoRofY8AAAAASUVORK5CYII=" + + icon_bsp="iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAFV2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM2IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzYiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIzNiIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMzYiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjE0NC4wIgogICB0aWZmOllSZXNvbHV0aW9uPSIxNDQuMCIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0xMFQyMTo1NTowNCswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMi0xMFQyMTo1NTowNCswMTowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+eWFiYWk8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIChOb3YgIDYgMjAyMCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMTItMTBUMjE6NTU6MDQrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/PkIkmukAAAGBaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2pRmFFQQ0ODRDVZmELUEqSEBRJhBv1a9PkrUHu8p4S0Bq1CQdTSr6H+glqD5iAoiiCaGpqLWkpe56mgRJ7Luedzv/eew73ngjWcVjJ6kxsy2ZwWCvici0vLzpZXHNjpxktzRNHVybm5IA3t6wGLGe+GzFqNz/1rbbG4roClVXhCUbWc8LRwcCOnmrwr3K2kIjHhc2GXJhcUvjf1aIXfTE5W+MdkLRzyg7VT2Jms42gdKyktIywvpz+TzivV+5gvccSzC/MS+8R70QkRwIeTGabwM8oI4zKPMoSHYVnRIN9dzp9lXXIVmVUKaKyRJEUOl6h5qR6XmBA9LiNNwez/377qCa+nUt3hg+YXw/gYgJYdKBUN4/vYMEonYHuGq2wtf/0Ixj5FL9a0/kPo2IKL65oW3YPLbeh5UiNapCzZxK2JBLyfQfsSdN2CfaXSs+o+p48Q3pSvuoH9AxiU8x2rv0tEZ9l/1uq6AAAACXBIWXMAABYlAAAWJQFJUiTwAAABrUlEQVRYhe2Yu07DMBSGv5pKIJUyMLKAuG0stFRipc/AI/A0iJWLQDwJZUaiFQMLEqIFhj4AIBgaCIMTlFpObAe3RBWfdKT6dvzXPj6JU0JPA2gCdaAGLCTaVoHnRPkeWEzxo9IH2pG1gGvTgFngBAgzTJ28Z+ifZl/AIVBJE7Nl6dyXoNgegE1VTBV4tHTgW1AsqgIgIqcHmolsCXOOS7IM7MeFbdz+zZLirOs4PiumGgJ5mopACWgK5NEuCjUfgnzEUEy9zHDSs6GklD+Ad8u+prb5sqMYHRt4XCVh7jJeCifIx5bNpNRnbWNaW5hHkBqMt8BKDj86gsJt2UQK8pkYcwnKSna/ZiK3zCs+8lAADJQ6XVzZ1AUgX4xcXqTUnDNtr93Mf1Cb8BFDUyl+dCtprPMh6AZY9+AHYCCQ11sXRhlDfQF0RjiBKx2BvPgXhbYALv5aRYJW/OMM+8S4pji5cxibZUdJp3PAk+VA9UT5ENRFfgr6SYwvwG4katz0ornfdI1V4JTxrdAx0crEqInxFdgDzoEd5DW7Tvbt9hP5gDYRMvxJ7xK4Ujt9AwxB+Qb5cgEhAAAAAElFTkSuQmCC" + + icon_stack="iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAFV2lUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM2IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMzYiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgdGlmZjpJbWFnZVdpZHRoPSIzNiIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMzYiCiAgIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiCiAgIHRpZmY6WFJlc29sdXRpb249IjE0NC4wIgogICB0aWZmOllSZXNvbHV0aW9uPSIxNDQuMCIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMC0xMi0xMFQyMTo1NDo0OCswMTowMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMC0xMi0xMFQyMTo1NDo0OCswMTowMCI+CiAgIDxkYzp0aXRsZT4KICAgIDxyZGY6QWx0PgogICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+eWFiYWk8L3JkZjpsaT4KICAgIDwvcmRmOkFsdD4KICAgPC9kYzp0aXRsZT4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0icHJvZHVjZWQiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFmZmluaXR5IERlc2lnbmVyIChOb3YgIDYgMjAyMCkiCiAgICAgIHN0RXZ0OndoZW49IjIwMjAtMTItMTBUMjE6NTQ6NDgrMDE6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0iciI/Ph5oz2oAAAGBaUNDUHNSR0IgSUVDNjE5NjYtMi4xAAAokXWRv0tCURTHP2pRmFFQQ0ODRDVZmELUEqSEBRJhBv1a9PkrUHu8p4S0Bq1CQdTSr6H+glqD5iAoiiCaGpqLWkpe56mgRJ7Luedzv/eew73ngjWcVjJ6kxsy2ZwWCvici0vLzpZXHNjpxktzRNHVybm5IA3t6wGLGe+GzFqNz/1rbbG4roClVXhCUbWc8LRwcCOnmrwr3K2kIjHhc2GXJhcUvjf1aIXfTE5W+MdkLRzyg7VT2Jms42gdKyktIywvpz+TzivV+5gvccSzC/MS+8R70QkRwIeTGabwM8oI4zKPMoSHYVnRIN9dzp9lXXIVmVUKaKyRJEUOl6h5qR6XmBA9LiNNwez/377qCa+nUt3hg+YXw/gYgJYdKBUN4/vYMEonYHuGq2wtf/0Ixj5FL9a0/kPo2IKL65oW3YPLbeh5UiNapCzZxK2JBLyfQfsSdN2CfaXSs+o+p48Q3pSvuoH9AxiU8x2rv0tEZ9l/1uq6AAAACXBIWXMAABYlAAAWJQFJUiTwAAABOUlEQVRYhe2Y20oDMRBAT0LftD4X/QtbF/pq/7FeP8X6LNh+gtWCrR+x4vowG8im2ZZizaTQAwPLbBbO5jKQMcQpgBEwAPrAecu4XVkB0zomwOu2D06BO6BKED/AGDhpk7kC3hPJ+PEGXIYyXeBDQcaXaszUvaKMi7GTGWYg4/ZUYZHTlAMGGFnkaOdC3wCfwIW2Sc3CIGtntE1qSqttEGA6wBcyQ7EgQb5ptJf/+jsbJY/4GKBHvHLyj/mNQprHPhQtO0oijrWNnFsdyk/Ibeq2dxq5I4eFAZasr2WseKXIldqFMeQ7t2NfWeR6mwsrC8y0LTxmFrn458LUAk/aFh4T9/CI/s31xjc7AxaKMnOkFdSgQKcDMkeaYlG6wENCmdtwZtoq9BC4Ru79A/bT0qtotvSegZdw0C+bhla1WySLHAAAAABJRU5ErkJggg==" + fi +else + # Check if theme directory exists + if [ -d "${icon_path}" ]; then + ## Load light or dark icons + if [ "${macos_darkmode}" == "Dark" ]; then + icon_float=$(enc_icon ${icon_path}/float_dark.png) + icon_bsp=$(enc_icon ${icon_path}/bsp_dark.png) + icon_stack=$(enc_icon ${icon_path}/stack_dark.png) + else + icon_float=$(enc_icon ${icon_path}/float_light.png) + icon_bsp=$(enc_icon ${icon_path}/bsp_light.png) + icon_stack=$(enc_icon ${icon_path}/stack_light.png) + fi + else + echo "Theme directory ${icon_path} not found." && exit 1 + fi +fi + +## Output base64 icons +icon() { + case $1 in + float) + echo ${icon_float} + ;; + bsp) + echo ${icon_bsp} + ;; + stack) + echo ${icon_stack} + ;; + esac +} + +#### +#### Output below +#### + +## Menubar +echo "${space_id}|templateImage=$(icon ${space_mode})" + +## Dropdown menu +echo "---" + +## Modes +echo "Select mode for current space" +for mode in ${yabai_modes}; do + if [[ ${space_mode} = ${mode} ]]; then + echo "${mode} | image=$(icon ${mode})" + else + echo "${mode} | image=$(icon ${mode}) terminal=false bash=yabai param1=-m param2=space param3=--layout param4=${mode}" + fi +done +echo "---" + +## Spaces +echo "Spaces" +d=0; while [ ${d} -ne ${yabai_displays} ]; do + d=$((d+1)) + display_spaces=$(yabai -m query --spaces --display $d | jq '.[].index') + + if ! [ ${yabai_displays} == 1 ]; then + echo "Display $d" + fi + + for s in ${display_spaces}; do + space_label=$(yabai -m query --spaces --space $s --display $d | jq -r '.label') + space_label="${space_label:-Unnamed}" + + if [[ ${s} = ${space_id} ]]; then + echo "--$s: ${space_label} | image=$(icon $(yabai -m query --spaces --space $s --display | jq -r '.type')) checked=true" + else + echo "--$s: ${space_label} | image=$(icon $(yabai -m query --spaces --space $s --display | jq -r '.type')) terminal=false bash=yabai param1=-m param2=space param3=--focus param4=$s" + fi + done +done +echo "---" + +## Services +echo "Services" +echo "--Restart yabai | bash='$0' param1=restart terminal=false" +echo "--Stop yabai | bash='$0' param1=stop terminal=false" \ No newline at end of file diff --git a/.config/BitBar/yabai_skhd.1s.sh b/.config/BitBar/yabai_skhd.1s.sh deleted file mode 100755 index 5224e38..0000000 --- a/.config/BitBar/yabai_skhd.1s.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -# yabai/skhd helper -# v1.0 -# James Won -# jwon -# Plugin that displays desktop id and desktop mode of yabai. -# brew,yabai,skhd - -# Info about yabai, see: https://github.com/koekeishiya/yabai -# For skhd, see: https://github.com/koekeishiya/skhd -# This plugin has been forked from https://github.com/matryer/bitbar-plugins/blob/master/Tools/chunkwm_skhd.1s.sh - -export PATH=/usr/local/bin:$PATH - -if [[ "$1" = "stop" ]]; then - brew services stop yabai - brew services stop skhd -fi - -if [[ "$1" = "restart" ]]; then - brew services restart yabai - brew services restart skhd -fi - -echo "$(yabai -m query --spaces --display | jq 'map(select(."focused" == 1))[-1].index'):$(yabai -m query --spaces --display | jq -r 'map(select(."focused" == 1))[-1].type') | length=5" -echo "---" -echo "Restart yabai & skhd | bash='$0' param1=restart terminal=false" -echo "Stop yabai & skhd | bash='$0' param1=stop terminal=false"