diff options
Diffstat (limited to 'mac/.config/sketchybar.allapp/plugins')
17 files changed, 1150 insertions, 0 deletions
diff --git a/mac/.config/sketchybar.allapp/plugins/aerospace.sh b/mac/.config/sketchybar.allapp/plugins/aerospace.sh new file mode 100755 index 0000000..68c739a --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/aerospace.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +echo \$FOCUSED_WORKSPACE: $FOCUSED_WORKSPACE, \$NAME: $NAME \$1: $1 >> ~/aaaa + +if [ "$1" = "$FOCUSED_WORKSPACE" ]; then + sketchybar --set $NAME background.drawing=on +else + sketchybar --set $NAME background.drawing=off +fi + + + +# MAIN_COLOR=0xffa17fa7 +# ACCENT_COLOR=0xffe19286 +# +# echo $NAME > ~/debug_skekychybar +# +# if [ "$1" = "change-focused-window" ]; then +# echo "change-focused-window" +# focused_window_info=$(aerospace list-windows --focused) +# focused_window_id=$(echo $focused_window_info | awk -F ' \\| ' '{print $1}') +# if [ "$2" = "$focused_window_id" ]; then +# sketchybar --set $NAME icon.color=$ACCENT_COLOR +# else +# sketchybar --set $NAME icon.color=$MAIN_COLOR +# fi +# fi +# +# if [ "$1" = "change-focused-workspace" ]; then +# echo "change-focused-workspace" +# focused_workspace=$(aerospace list-workspaces --focused) +# if [ "$2" = "$focused_workspace" ]; then +# sketchybar --set $NAME label.color=$ACCENT_COLOR +# else +# sketchybar --set $NAME label.color=$MAIN_COLOR +# fi +# fi +# +# if [ "$1" = "move-window-within-workspace" ]; then +# echo "move-window-within-workspace" +# focused_workspace=$(aerospace list-workspaces --focused) +# if [ "$2" = "$focused_workspace" ]; then +# sketchybar --set $NAME label.color=$ACCENT_COLOR +# else +# sketchybar --set $NAME label.color=$MAIN_COLOR +# fi +# fi diff --git a/mac/.config/sketchybar.allapp/plugins/apple.sh b/mac/.config/sketchybar.allapp/plugins/apple.sh new file mode 100755 index 0000000..066d709 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/apple.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +POPUP_OFF='sketchybar --set apple.logo popup.drawing=off' +POPUP_CLICK_SCRIPT='sketchybar --set $NAME popup.drawing=toggle' + +apple_logo=( + icon=$APPLE + icon.font="$FONT:Black:16.0" + icon.color=$GREEN + padding_right=15 + label.drawing=off + click_script="$POPUP_CLICK_SCRIPT" + popup.height=35 +) + +apple_prefs=( + icon=$PREFERENCES + label="Preferences" + click_script="open -a 'System Preferences'; $POPUP_OFF" +) + +apple_activity=( + icon=$ACTIVITY + label="Activity" + click_script="open -a 'Activity Monitor'; $POPUP_OFF" +) + +apple_lock=( + icon=$LOCK + label="Lock Screen" + click_script="pmset displaysleepnow; $POPUP_OFF" +) + +sketchybar --add item apple.logo left \ + --set apple.logo "${apple_logo[@]}" \ + \ + --add item apple.prefs popup.apple.logo \ + --set apple.prefs "${apple_prefs[@]}" \ + \ + --add item apple.activity popup.apple.logo \ + --set apple.activity "${apple_activity[@]}" \ + \ + --add item apple.lock popup.apple.logo \ + --set apple.lock "${apple_lock[@]}" diff --git a/mac/.config/sketchybar.allapp/plugins/battery.sh b/mac/.config/sketchybar.allapp/plugins/battery.sh new file mode 100755 index 0000000..7487662 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/battery.sh @@ -0,0 +1,42 @@ +#!/bin/sh + +source "$CONFIG_DIR/colors.sh" + +PERCENTAGE="$(pmset -g batt | grep -Eo "\d+%" | cut -d% -f1)" +CHARGING="$(pmset -g batt | grep 'AC Power')" + +if [ "$PERCENTAGE" = "" ]; then + exit 0 +fi + +case ${PERCENTAGE} in + [8-9][0-9] | 100) + ICON="" + ICON_COLOR=$BATTERY_1 + ;; + 7[0-9]) + ICON="" + ICON_COLOR=$BATTERY_2 + ;; + [4-6][0-9]) + ICON="" + ICON_COLOR=$BATTERY_3 + ;; + [1-3][0-9]) + ICON="" + ICON_COLOR=$BATTERY_4 + ;; + [0-9]) + ICON="" + ICON_COLOR=$BATTERY_5 + ;; +esac + +if [[ "$CHARGING" != "" ]]; then + ICON="" + ICON_COLOR=$YELLOW +fi + +# The item invoking this script (name $NAME) will get its icon and label +# updated with the current battery status +sketchybar --set "$NAME" icon="$ICON" label="${PERCENTAGE}%" icon.color=${ICON_COLOR} diff --git a/mac/.config/sketchybar.allapp/plugins/calendar.sh b/mac/.config/sketchybar.allapp/plugins/calendar.sh new file mode 100755 index 0000000..4bc2b8d --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/calendar.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +#sketchybar --set $NAME icon="$(date '+%a %d. %b')" label="$(date '+%H:%M')" +sketchybar --set "$NAME" label="$(date '+%m/%d %H:%M')" diff --git a/mac/.config/sketchybar.allapp/plugins/change_windows.sh b/mac/.config/sketchybar.allapp/plugins/change_windows.sh new file mode 100755 index 0000000..69364b8 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/change_windows.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +echo change_windows.sh NAME: $NAME, SENDER: $SENDER >> ~/aaaa diff --git a/mac/.config/sketchybar.allapp/plugins/clock.sh b/mac/.config/sketchybar.allapp/plugins/clock.sh new file mode 100755 index 0000000..d24d6af --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/clock.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +# The $NAME variable is passed from sketchybar and holds the name of +# the item invoking this script: +# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting + +# sketchybar --set "$NAME" label="$(date '+%m/%d %H:%M')" +sketchybar --set "$NAME" label="$(date '+%m/%d %H:%M')" + diff --git a/mac/.config/sketchybar.allapp/plugins/cpu.sh b/mac/.config/sketchybar.allapp/plugins/cpu.sh new file mode 100755 index 0000000..c27af35 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/cpu.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +CORE_COUNT=$(sysctl -n machdep.cpu.thread_count) +CPU_INFO=$(ps -eo pcpu,user) +CPU_SYS=$(echo "$CPU_INFO" | grep -v $(whoami) | sed "s/[^ 0-9\.]//g" | awk "{sum+=\$1} END {print sum/(100.0 * $CORE_COUNT)}") +CPU_USER=$(echo "$CPU_INFO" | grep $(whoami) | sed "s/[^ 0-9\.]//g" | awk "{sum+=\$1} END {print sum/(100.0 * $CORE_COUNT)}") + +CPU_PERCENT="$(echo "$CPU_SYS $CPU_USER" | awk '{printf "%.0f\n", ($1 + $2)*100}')" + +sketchybar --set $NAME label="$CPU_PERCENT%" diff --git a/mac/.config/sketchybar.allapp/plugins/front_app.sh b/mac/.config/sketchybar.allapp/plugins/front_app.sh new file mode 100755 index 0000000..2426503 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/front_app.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +# Some events send additional information specific to the event in the $INFO +# variable. E.g. the front_app_switched event sends the name of the newly +# focused application in the $INFO variable: +# https://felixkratz.github.io/SketchyBar/config/events#events-and-scripting + +AEROSPACE_FOCUSED_MONITOR_NO=$(aerospace list-workspaces --focused) +AEROSPACE_LIST_OF_WINDOWS_IN_FOCUSED_MONITOR=$(aerospace list-windows --workspace $AEROSPACE_FOCUSED_MONITOR_NO | awk -F'|' '{gsub(/^ *| *$/, "", $2); print $2}') + +if [ "$SENDER" = "front_app_switched" ]; then + #echo name:$NAME INFO: $INFO SENDER: $SENDER, SID: $SID >> ~/aaaa + sketchybar --set "$NAME" label="$INFO" icon.background.image="app.$INFO" icon.background.image.scale=0.8 + + apps=$AEROSPACE_LIST_OF_WINDOWS_IN_FOCUSED_MONITOR + icon_strip=" " + if [ "${apps}" != "" ]; then + while read -r app + do + icon_strip+=" $($CONFIG_DIR/plugins/icon_map.sh "$app")" + done <<< "${apps}" + else + icon_strip=" —" + fi + sketchybar --set space.$AEROSPACE_FOCUSED_MONITOR_NO label="$icon_strip" +fi diff --git a/mac/.config/sketchybar.allapp/plugins/get_input_source.sh b/mac/.config/sketchybar.allapp/plugins/get_input_source.sh new file mode 100755 index 0000000..89dab2b --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/get_input_source.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +# hangul and english item + +# Read the plist data +plist_data=$(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources) +current_input_source=$(echo "$plist_data" | plutil -convert xml1 -o - - | grep -A1 'KeyboardLayout Name' | tail -n1 | cut -d '>' -f2 | cut -d '<' -f1) + +if [ "$current_input_source" = "ABC" ]; then + sketchybar --set input_source icon="" +else + sketchybar --set input_source icon="" +fi diff --git a/mac/.config/sketchybar.allapp/plugins/icon_map.sh b/mac/.config/sketchybar.allapp/plugins/icon_map.sh new file mode 100755 index 0000000..e23f8d0 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/icon_map.sh @@ -0,0 +1,637 @@ +#!/usr/bin/env bash + +### START-OF-ICON-MAP +function __icon_map() { + case "$1" in + "Live") + icon_result=":ableton:" + ;; + "Adobe Bridge"*) + icon_result=":adobe_bridge:" + ;; + "Affinity Designer") + icon_result=":affinity_designer:" + ;; + "Affinity Designer 2") + icon_result=":affinity_designer_2:" + ;; + "Affinity Photo") + icon_result=":affinity_photo:" + ;; + "Affinity Photo 2") + icon_result=":affinity_photo_2:" + ;; + "Affinity Publisher") + icon_result=":affinity_publisher:" + ;; + "Affinity Publisher 2") + icon_result=":affinity_publisher_2:" + ;; + "Airmail") + icon_result=":airmail:" + ;; + "Alacritty") + icon_result=":alacritty:" + ;; + "Alfred") + icon_result=":alfred:" + ;; + "Android Messages") + icon_result=":android_messages:" + ;; + "Android Studio") + icon_result=":android_studio:" + ;; + "Anytype") + icon_result=":anytype:" + ;; + "App Eraser") + icon_result=":app_eraser:" + ;; + "App Store") + icon_result=":app_store:" + ;; + "Arc") + icon_result=":arc:" + ;; + "Atom") + icon_result=":atom:" + ;; + "Audacity") + icon_result=":audacity:" + ;; + "Bambu Studio") + icon_result=":bambu_studio:" + ;; + "MoneyMoney") + icon_result=":bank:" + ;; + "Battle.net") + icon_result=":battle_net:" + ;; + "Bear") + icon_result=":bear:" + ;; + "BetterTouchTool") + icon_result=":bettertouchtool:" + ;; + "Bilibili" | "哔哩哔哩") + icon_result=":bilibili:" + ;; + "Bitwarden") + icon_result=":bit_warden:" + ;; + "Blender") + icon_result=":blender:" + ;; + "BluOS Controller") + icon_result=":bluos_controller:" + ;; + "Calibre") + icon_result=":book:" + ;; + "Brave Browser") + icon_result=":brave_browser:" + ;; + "Calculator" | "Calculette") + icon_result=":calculator:" + ;; + "Calendar" | "日历" | "Fantastical" | "Cron" | "Amie" | "Calendrier" | "Notion Calendar") + icon_result=":calendar:" + ;; + "Caprine") + icon_result=":caprine:" + ;; + "Citrix Workspace" | "Citrix Viewer") + icon_result=":citrix:" + ;; + "ClickUp") + icon_result=":click_up:" + ;; + "Code" | "Code - Insiders") + icon_result=":code:" + ;; + "Color Picker" | "数码测色计") + icon_result=":color_picker:" + ;; + "CotEditor") + icon_result=":coteditor:" + ;; + "Creative Cloud") + icon_result=":creative_cloud:" + ;; + "Cypress") + icon_result=":cypress:" + ;; + "DataGrip") + icon_result=":datagrip:" + ;; + "DataSpell") + icon_result=":dataspell:" + ;; + "DaVinci Resolve") + icon_result=":davinciresolve:" + ;; + "Default") + icon_result=":default:" + ;; + "CleanMyMac X") + icon_result=":desktop:" + ;; + "DEVONthink 3") + icon_result=":devonthink3:" + ;; + "DingTalk" | "钉钉" | "阿里钉") + icon_result=":dingtalk:" + ;; + "Discord" | "Discord Canary" | "Discord PTB") + icon_result=":discord:" + ;; + "Docker" | "Docker Desktop") + icon_result=":docker:" + ;; + "GrandTotal" | "Receipts") + icon_result=":dollar:" + ;; + "Double Commander") + icon_result=":doublecmd:" + ;; + "Drafts") + icon_result=":drafts:" + ;; + "Dropbox") + icon_result=":dropbox:" + ;; + "Element") + icon_result=":element:" + ;; + "Emacs") + icon_result=":emacs:" + ;; + "Evernote Legacy") + icon_result=":evernote_legacy:" + ;; + "FaceTime" | "FaceTime 通话") + icon_result=":face_time:" + ;; + "Figma") + icon_result=":figma:" + ;; + "Final Cut Pro") + icon_result=":final_cut_pro:" + ;; + "Finder" | "访达") + icon_result=":finder:" + ;; + "Firefox") + icon_result=":firefox:" + ;; + "Firefox Developer Edition" | "Firefox Nightly") + icon_result=":firefox_developer_edition:" + ;; + "Folx") + icon_result=":folx:" + ;; + "Fusion") + icon_result=":fusion:" + ;; + "System Preferences" | "System Settings" | "系统设置" | "Réglages Système") + icon_result=":gear:" + ;; + "GitHub Desktop") + icon_result=":git_hub:" + ;; + "Godot") + icon_result=":godot:" + ;; + "GoLand") + icon_result=":goland:" + ;; + "Chromium" | "Google Chrome" | "Google Chrome Canary") + icon_result=":google_chrome:" + ;; + "Grammarly Editor") + icon_result=":grammarly:" + ;; + "Home Assistant") + icon_result=":home_assistant:" + ;; + "Hyper") + icon_result=":hyper:" + ;; + "IntelliJ IDEA") + icon_result=":idea:" + ;; + "Inkdrop") + icon_result=":inkdrop:" + ;; + "Inkscape") + icon_result=":inkscape:" + ;; + "Insomnia") + icon_result=":insomnia:" + ;; + "Iris") + icon_result=":iris:" + ;; + "iTerm" | "iTerm2") + icon_result=":iterm:" + ;; + "Jellyfin Media Player") + icon_result=":jellyfin:" + ;; + "Joplin") + icon_result=":joplin:" + ;; + "카카오톡" | "KakaoTalk") + icon_result=":kakaotalk:" + ;; + "Kakoune") + icon_result=":kakoune:" + ;; + "KeePassXC") + icon_result=":kee_pass_x_c:" + ;; + "Keyboard Maestro") + icon_result=":keyboard_maestro:" + ;; + "Keynote" | "Keynote 讲演") + icon_result=":keynote:" + ;; + "kitty") + icon_result=":kitty:" + ;; + "League of Legends") + icon_result=":league_of_legends:" + ;; + "LibreWolf") + icon_result=":libre_wolf:" + ;; + "Adobe Lightroom") + icon_result=":lightroom:" + ;; + "Lightroom Classic") + icon_result=":lightroomclassic:" + ;; + "LINE") + icon_result=":line:" + ;; + "Linear") + icon_result=":linear:" + ;; + "LM Studio") + icon_result=":lm_studio:" + ;; + "LocalSend") + icon_result=":localsend:" + ;; + "Logic Pro") + icon_result=":logicpro:" + ;; + "Logseq") + icon_result=":logseq:" + ;; + "Canary Mail" | "HEY" | "Mail" | "Mailspring" | "MailMate" | "Superhuman" | "Spark" | "邮件") + icon_result=":mail:" + ;; + "MAMP" | "MAMP PRO") + icon_result=":mamp:" + ;; + "Maps" | "Google Maps") + icon_result=":maps:" + ;; + "Matlab") + icon_result=":matlab:" + ;; + "Mattermost") + icon_result=":mattermost:" + ;; + "Messages" | "信息" | "Nachrichten") + icon_result=":messages:" + ;; + "Messenger") + icon_result=":messenger:" + ;; + "Microsoft Edge") + icon_result=":microsoft_edge:" + ;; + "Microsoft Excel") + icon_result=":microsoft_excel:" + ;; + "Microsoft Outlook") + icon_result=":microsoft_outlook:" + ;; + "Microsoft PowerPoint") + icon_result=":microsoft_power_point:" + ;; + "Microsoft Remote Desktop") + icon_result=":microsoft_remote_desktop:" + ;; + "Microsoft Teams" | "Microsoft Teams (work or school)") + icon_result=":microsoft_teams:" + ;; + "Microsoft Word") + icon_result=":microsoft_word:" + ;; + "Min") + icon_result=":min_browser:" + ;; + "Miro") + icon_result=":miro:" + ;; + "MongoDB Compass"*) + icon_result=":mongodb:" + ;; + "mpv") + icon_result=":mpv:" + ;; + "Mullvad Browser") + icon_result=":mullvad_browser:" + ;; + "Music" | "音乐" | "Musique") + icon_result=":music:" + ;; + "Neovide" | "neovide") + icon_result=":neovide:" + ;; + "Neovim" | "neovim" | "nvim") + icon_result=":neovim:" + ;; + "网易云音乐") + icon_result=":netease_music:" + ;; + "Noodl" | "Noodl Editor") + icon_result=":noodl:" + ;; + "NordVPN") + icon_result=":nord_vpn:" + ;; + "Notability") + icon_result=":notability:" + ;; + "Notes" | "备忘录") + icon_result=":notes:" + ;; + "Notion") + icon_result=":notion:" + ;; + "Nova") + icon_result=":nova:" + ;; + "Numbers" | "Numbers 表格") + icon_result=":numbers:" + ;; + "Obsidian") + icon_result=":obsidian:" + ;; + "OBS") + icon_result=":obsstudio:" + ;; + "OmniFocus") + icon_result=":omni_focus:" + ;; + "1Password") + icon_result=":one_password:" + ;; + "ChatGPT") + icon_result=":openai:" + ;; + "OpenVPN Connect") + icon_result=":openvpn_connect:" + ;; + "Opera") + icon_result=":opera:" + ;; + "OrcaSlicer") + icon_result=":orcaslicer:" + ;; + "Orion" | "Orion RC") + icon_result=":orion:" + ;; + "Pages" | "Pages 文稿") + icon_result=":pages:" + ;; + "Parallels Desktop") + icon_result=":parallels:" + ;; + "Parsec") + icon_result=":parsec:" + ;; + "Preview" | "预览" | "Skim" | "zathura" | "Aperçu") + icon_result=":pdf:" + ;; + "PDF Expert") + icon_result=":pdf_expert:" + ;; + "Adobe Photoshop"*) + icon_result=":photoshop:" + ;; + "PhpStorm") + icon_result=":php_storm:" + ;; + "Pi-hole Remote") + icon_result=":pihole:" + ;; + "Pine") + icon_result=":pine:" + ;; + "Podcasts" | "播客") + icon_result=":podcasts:" + ;; + "PomoDone App") + icon_result=":pomodone:" + ;; + "Postman") + icon_result=":postman:" + ;; + "Proton Mail" | "Proton Mail Bridge") + icon_result=":proton_mail:" + ;; + "PrusaSlicer" | "SuperSlicer") + icon_result=":prusaslicer:" + ;; + "PyCharm") + icon_result=":pycharm:" + ;; + "QQ") + icon_result=":qq:" + ;; + "QQ音乐" | "QQMusic") + icon_result=":qqmusic:" + ;; + "Quantumult X") + icon_result=":quantumult_x:" + ;; + "qutebrowser") + icon_result=":qute_browser:" + ;; + "Raindrop.io") + icon_result=":raindrop_io:" + ;; + "Reeder") + icon_result=":reeder5:" + ;; + "Reminders" | "提醒事项" | "Rappels") + icon_result=":reminders:" + ;; + "Replit") + icon_result=":replit:" + ;; + "Rider" | "JetBrains Rider") + icon_result=":rider:" + ;; + "Safari" | "Safari浏览器" | "Safari Technology Preview") + icon_result=":safari:" + ;; + "Sequel Ace") + icon_result=":sequel_ace:" + ;; + "Sequel Pro") + icon_result=":sequel_pro:" + ;; + "Setapp") + icon_result=":setapp:" + ;; + "SF Symbols") + icon_result=":sf_symbols:" + ;; + "Signal") + icon_result=":signal:" + ;; + "Sketch") + icon_result=":sketch:" + ;; + "Skype") + icon_result=":skype:" + ;; + "Slack") + icon_result=":slack:" + ;; + "Spark Desktop") + icon_result=":spark:" + ;; + "Spotify") + icon_result=":spotify:" + ;; + "Spotlight") + icon_result=":spotlight:" + ;; + "Sublime Text") + icon_result=":sublime_text:" + ;; + "Tana") + icon_result=":tana:" + ;; + "TeamSpeak 3") + icon_result=":team_speak:" + ;; + "Telegram") + icon_result=":telegram:" + ;; + "Terminal" | "终端") + icon_result=":terminal:" + ;; + "Typora") + icon_result=":text:" + ;; + "Microsoft To Do" | "Things") + icon_result=":things:" + ;; + "Thunderbird") + icon_result=":thunderbird:" + ;; + "TickTick") + icon_result=":tick_tick:" + ;; + "TIDAL") + icon_result=":tidal:" + ;; + "Tiny RDM") + icon_result=":tinyrdm:" + ;; + "Todoist") + icon_result=":todoist:" + ;; + "Toggl Track") + icon_result=":toggl_track:" + ;; + "Tor Browser") + icon_result=":tor_browser:" + ;; + "Tower") + icon_result=":tower:" + ;; + "Transmit") + icon_result=":transmit:" + ;; + "Trello") + icon_result=":trello:" + ;; + "Tweetbot" | "Twitter") + icon_result=":twitter:" + ;; + "MacVim" | "Vim" | "VimR") + icon_result=":vim:" + ;; + "Vivaldi") + icon_result=":vivaldi:" + ;; + "VLC") + icon_result=":vlc:" + ;; + "VMware Fusion") + icon_result=":vmware_fusion:" + ;; + "VSCodium") + icon_result=":vscodium:" + ;; + "Warp") + icon_result=":warp:" + ;; + "WebStorm") + icon_result=":web_storm:" + ;; + "微信" | "WeChat") + icon_result=":wechat:" + ;; + "企业微信" | "WeCom") + icon_result=":wecom:" + ;; + "WezTerm") + icon_result=":wezterm:" + ;; + "WhatsApp" | "WhatsApp") + icon_result=":whats_app:" + ;; + "Xcode") + icon_result=":xcode:" + ;; + "Яндекс Музыка") + icon_result=":yandex_music:" + ;; + "Yuque" | "语雀") + icon_result=":yuque:" + ;; + "Zed") + icon_result=":zed:" + ;; + "Zeplin") + icon_result=":zeplin:" + ;; + "zoom.us") + icon_result=":zoom:" + ;; + "Zotero") + icon_result=":zotero:" + ;; + "Zulip") + icon_result=":zulip:" + ;; + *) + icon_result=":default:" + ;; + esac +} +### END-OF-ICON-MAP +__icon_map "$1" +echo "$icon_result" diff --git a/mac/.config/sketchybar.allapp/plugins/space.sh b/mac/.config/sketchybar.allapp/plugins/space.sh new file mode 100755 index 0000000..978fc38 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/space.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +#echo space.sh $'FOCUSED_WORKSPACE': $FOCUSED_WORKSPACE, $'SELECTED': $SELECTED, NAME: $NAME, SENDER: $SENDER >> ~/aaaa + +update() { + # 처음 시작에만 작동하기 위해서 + # 현재 forced, space_change 이벤트가 동시에 발생하고 있다. + if [ "$SENDER" = "space_change" ]; then + #echo space.sh $'FOCUSED_WORKSPACE': $FOCUSED_WORKSPACE, $'SELECTED': $SELECTED, NAME: $NAME, SENDER: $SENDER, INFO: $INFO >> ~/aaaa + #echo $(aerospace list-workspaces --focused) >> ~/aaaa + source "$CONFIG_DIR/colors.sh" + COLOR=$BACKGROUND_2 + if [ "$SELECTED" = "true" ]; then + COLOR=$GREY + fi + # sketchybar --set $NAME icon.highlight=$SELECTED \ + # label.highlight=$SELECTED \ + # background.border_color=$COLOR + + sketchybar --set space.$(aerospace list-workspaces --focused) icon.highlight=true \ + label.highlight=true \ + background.border_color=$GREY + fi +} + +set_space_label() { + sketchybar --set $NAME icon="$@" +} + +mouse_clicked() { + if [ "$BUTTON" = "right" ]; then + # yabai -m space --destroy $SID + echo '' + else + if [ "$MODIFIER" = "shift" ]; then + SPACE_LABEL="$(osascript -e "return (text returned of (display dialog \"Give a name to space $NAME:\" default answer \"\" with icon note buttons {\"Cancel\", \"Continue\"} default button \"Continue\"))")" + if [ $? -eq 0 ]; then + if [ "$SPACE_LABEL" = "" ]; then + set_space_label "${NAME:6}" + else + set_space_label "${NAME:6} ($SPACE_LABEL)" + fi + fi + else + #yabai -m space --focus $SID 2>/dev/null + #echo space.sh BUTTON: $BUTTON, $'SELECTED': $SELECTED, MODIFIER: $MODIFIER, NAME: $NAME, SENDER: $SENDER, INFO: $INFO, TEST: ${NAME#*.}, ${NAME:6} >> ~/aaaa + aerospace workspace ${NAME#*.} + fi + fi +} + +# echo plugin_space.sh $SENDER >> ~/aaaa +case "$SENDER" in + "mouse.clicked") mouse_clicked + ;; + *) update + ;; +esac diff --git a/mac/.config/sketchybar.allapp/plugins/space_windows.sh b/mac/.config/sketchybar.allapp/plugins/space_windows.sh new file mode 100755 index 0000000..c8996cb --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/space_windows.sh @@ -0,0 +1,87 @@ +#!/usr/bin/env bash + +echo AEROSPACE_PREV_WORKSPACE: $AEROSPACE_PREV_WORKSPACE, \ + AEROSPACE_FOCUSED_WORKSPACE: $AEROSPACE_FOCUSED_WORKSPACE \ + SELECTED: $SELECTED \ + BG2: $BG2 \ + INFO: $INFO \ + SENDER: $SENDER \ + NAME: $NAME \ + >> ~/aaaa + +source "$CONFIG_DIR/colors.sh" + +AEROSPACE_FOCUSED_MONITOR=$(aerospace list-monitors --focused | awk '{print $1}') +AEROSAPCE_WORKSPACE_FOCUSED_MONITOR=$(aerospace list-workspaces --monitor focused --empty no) +AEROSPACE_EMPTY_WORKESPACE=$(aerospace list-workspaces --monitor focused --empty) + +reload_workspace_icon() { + # echo reload_workspace_icon "$@" >> ~/aaaa + apps=$(aerospace list-windows --workspace "$@" | awk -F'|' '{gsub(/^ *| *$/, "", $2); print $2}') + + icon_strip=" " + if [ "${apps}" != "" ]; then + while read -r app + do + icon_strip+=" $($CONFIG_DIR/plugins/icon_map.sh "$app")" + done <<< "${apps}" + else + icon_strip=" —" + fi + + sketchybar --animate sin 10 --set space.$@ label="$icon_strip" +} + +if [ "$SENDER" = "aerospace_workspace_change" ]; then + + # if [ $i = "$FOCUSED_WORKSPACE" ]; then + # sketchybar --set space.$FOCUSED_WORKSPACE background.drawing=on + # else + # sketchybar --set space.$FOCUSED_WORKSPACE background.drawing=off + # fi + #echo 'space_windows_change: '$AEROSPACE_FOCUSED_WORKSPACE >> ~/aaaa + #echo space: $space >> ~/aaaa + #space="$(echo "$INFO" | jq -r '.space')" + #apps="$(echo "$INFO" | jq -r '.apps | keys[]')" + # apps=$(aerospace list-windows --workspace $AEROSPACE_FOCUSED_WORKSPACE | awk -F'|' '{gsub(/^ *| *$/, "", $2); print $2}') + # + # icon_strip=" " + # if [ "${apps}" != "" ]; then + # while read -r app + # do + # icon_strip+=" $($CONFIG_DIR/plugins/icon_map.sh "$app")" + # done <<< "${apps}" + # else + # icon_strip=" —" + # fi + + reload_workspace_icon "$AEROSPACE_PREV_WORKSPACE" + reload_workspace_icon "$AEROSPACE_FOCUSED_WORKSPACE" + + #sketchybar --animate sin 10 --set space.$space label="$icon_strip" + + # current workspace space border color + sketchybar --set space.$AEROSPACE_FOCUSED_WORKSPACE icon.highlight=true \ + label.highlight=true \ + background.border_color=$GREY + + # prev workspace space border color + sketchybar --set space.$AEROSPACE_PREV_WORKSPACE icon.highlight=false \ + label.highlight=false \ + background.border_color=$BACKGROUND_2 + + # if [ "$AEROSPACE_FOCUSED_WORKSPACE" -gt 3 ]; then + # sketchybar --animate sin 10 --set space.$AEROSPACE_FOCUSED_WORKSPACE display=1 + # fi + ## focused 된 모니터에 space 상태 보이게 설정 + for i in $AEROSAPCE_WORKSPACE_FOCUSED_MONITOR; do + sketchybar --set space.$i display=$AEROSPACE_FOCUSED_MONITOR + done + + for i in $AEROSPACE_EMPTY_WORKESPACE; do + sketchybar --set space.$i display=0 + done + + sketchybar --set space.$AEROSPACE_FOCUSED_WORKSPACE display=$AEROSPACE_FOCUSED_MONITOR + +fi diff --git a/mac/.config/sketchybar.allapp/plugins/volume.sh b/mac/.config/sketchybar.allapp/plugins/volume.sh new file mode 100755 index 0000000..1ee75a0 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/volume.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +WIDTH=100 + +volume_change() { + source "$CONFIG_DIR/icons.sh" + case $INFO in + [6-9][0-9]|100) ICON=$VOLUME_100 + ;; + [3-5][0-9]) ICON=$VOLUME_66 + ;; + [1-2][0-9]) ICON=$VOLUME_33 + ;; + [1-9]) ICON=$VOLUME_10 + ;; + 0) ICON=$VOLUME_0 + ;; + *) ICON=$VOLUME_100 + esac + + sketchybar --set volume_icon label=$ICON \ + --set $NAME slider.percentage=$INFO + + INITIAL_WIDTH="$(sketchybar --query $NAME | jq -r ".slider.width")" + if [ "$INITIAL_WIDTH" -eq "0" ]; then + sketchybar --animate tanh 30 --set $NAME slider.width=$WIDTH + fi + + sleep 2 + + # Check wether the volume was changed another time while sleeping + FINAL_PERCENTAGE="$(sketchybar --query $NAME | jq -r ".slider.percentage")" + if [ "$FINAL_PERCENTAGE" -eq "$INFO" ]; then + sketchybar --animate tanh 30 --set $NAME slider.width=0 + fi +} + +mouse_clicked() { + osascript -e "set volume output volume $PERCENTAGE" +} + +case "$SENDER" in + "volume_change") volume_change + ;; + "mouse.clicked") mouse_clicked + ;; +esac diff --git a/mac/.config/sketchybar.allapp/plugins/volume_click.sh b/mac/.config/sketchybar.allapp/plugins/volume_click.sh new file mode 100755 index 0000000..5c2a365 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/volume_click.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +WIDTH=100 + +detail_on() { + sketchybar --animate tanh 30 --set volume slider.width=$WIDTH +} + +detail_off() { + sketchybar --animate tanh 30 --set volume slider.width=0 +} + +toggle_detail() { + INITIAL_WIDTH=$(sketchybar --query volume | jq -r ".slider.width") + if [ "$INITIAL_WIDTH" -eq "0" ]; then + detail_on + else + detail_off + fi +} + +toggle_devices() { + which SwitchAudioSource >/dev/null || exit 0 + source "$CONFIG_DIR/colors.sh" + + args=(--remove '/volume.device\.*/' --set "$NAME" popup.drawing=toggle) + COUNTER=0 + CURRENT="$(SwitchAudioSource -t output -c)" + while IFS= read -r device; do + COLOR=$GREY + if [ "${device}" = "$CURRENT" ]; then + COLOR=$WHITE + fi + args+=(--add item volume.device.$COUNTER popup."$NAME" \ + --set volume.device.$COUNTER label="${device}" \ + label.color="$COLOR" \ + click_script="SwitchAudioSource -s \"${device}\" && sketchybar --set /volume.device\.*/ label.color=$GREY --set \$NAME label.color=$WHITE --set $NAME popup.drawing=off") + COUNTER=$((COUNTER+1)) + done <<< "$(SwitchAudioSource -a -t output)" + + sketchybar -m "${args[@]}" > /dev/null +} + +if [ "$BUTTON" = "right" ] || [ "$MODIFIER" = "shift" ]; then + toggle_devices +else + toggle_detail +fi diff --git a/mac/.config/sketchybar.allapp/plugins/weather.sh b/mac/.config/sketchybar.allapp/plugins/weather.sh new file mode 100755 index 0000000..9b9ba29 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/weather.sh @@ -0,0 +1,25 @@ +sketchybar --set $NAME \ + label="Loading..." \ + icon.color=0xff5edaff + +# fetch weather data +LOCATION="Seoul" +REGION="" +LANG="ko" + +# Line below replaces spaces with + +LOCATION_ESCAPED="${LOCATION// /+}+${REGION// /+}" +WEATHER_JSON=$(curl -s "https://wttr.in/$LOCATION_ESCAPED?0pq&format=j1&lang=$LANG") + +# Fallback if empty +if [ -z $WEATHER_JSON ]; then + sketchybar --set $NAME label="$LOCATION" + return +fi + +TEMPERATURE=$(echo $WEATHER_JSON | jq '.current_condition[0].temp_C' | tr -d '"') +#WEATHER_DESCRIPTION=$(echo $WEATHER_JSON | jq '.current_condition[0].weatherDesc[0].value' | tr -d '"' | sed 's/\(.\{16\}\).*/\1.../') +WEATHER_DESCRIPTION=$(echo $WEATHER_JSON | jq '.current_condition[0].lang_ko[0].value' | tr -d '"' | sed 's/\(.\{16\}\).*/\1.../') + +sketchybar --set $NAME \ + label="$TEMPERATURE$(echo '°')C • $WEATHER_DESCRIPTION" diff --git a/mac/.config/sketchybar.allapp/plugins/wifi.sh b/mac/.config/sketchybar.allapp/plugins/wifi.sh new file mode 100755 index 0000000..8a6db10 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/wifi.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +SSID=$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I | awk -F: '($1 ~ "^ *SSID$"){print $2}' | cut -c 2-) + +sketchybar --set wifi \ + icon= icon.color=0xff58d1fc \ + label="$SSID" diff --git a/mac/.config/sketchybar.allapp/plugins/zen.sh b/mac/.config/sketchybar.allapp/plugins/zen.sh new file mode 100755 index 0000000..38f2291 --- /dev/null +++ b/mac/.config/sketchybar.allapp/plugins/zen.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +zen_on() { + sketchybar --set wifi drawing=off \ + --set apple.logo drawing=off \ + --set '/cpu.*/' drawing=off \ + --set calendar icon.drawing=off \ + --set separator drawing=off \ + --set front_app drawing=off \ + --set volume_icon drawing=off \ + --set spotify.anchor drawing=off \ + --set spotify.play updates=off \ + --set brew drawing=off \ + --set volume drawing=off \ + --set github.bell drawing=off +} + +zen_off() { + sketchybar --set wifi drawing=on \ + --set apple.logo drawing=on \ + --set '/cpu.*/' drawing=on \ + --set calendar icon.drawing=on \ + --set separator drawing=on \ + --set front_app drawing=on \ + --set volume_icon drawing=on \ + --set spotify.play updates=on \ + --set brew drawing=on \ + --set volume drawing=on \ + --set github.bell drawing=on +} + +if [ "$1" = "on" ]; then + zen_on +elif [ "$1" = "off" ]; then + zen_off +else + if [ "$(sketchybar --query apple.logo | jq -r ".geometry.drawing")" = "on" ]; then + zen_on + else + zen_off + fi +fi + |
