New Taskbar, Window Manager & Neovim config

This commit is contained in:
2024-06-04 23:04:34 +02:00
parent 5535757e4f
commit 7158963529
42 changed files with 2501 additions and 1956 deletions

View File

@@ -0,0 +1,28 @@
#!/bin/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
9[0-9]|100) ICON=""
;;
[6-8][0-9]) ICON=""
;;
[3-5][0-9]) ICON=""
;;
[1-2][0-9]) ICON=""
;;
*) ICON=""
esac
if [[ "$CHARGING" != "" ]]; then
ICON=""
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}%"

View File

@@ -0,0 +1,3 @@
#!/bin/bash
sketchybar --set $NAME label="$(date +'%a %d %b %H:%M:%S')"

View File

@@ -0,0 +1,10 @@
#!/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
if [ "$SENDER" = "front_app_switched" ]; then
sketchybar --set $NAME label=$INFO icon="$($CONFIG_DIR/plugins/icon_map_fn.sh $INFO)"
fi

View File

@@ -0,0 +1,436 @@
#!/bin/bash
function icon_map() {
case "$1" in
"Keynote" | "Keynote 讲演")
icon_result=":keynote:"
;;
"Figma")
icon_result=":figma:"
;;
"VMware Fusion")
icon_result=":vmware_fusion:"
;;
"Alacritty" | "Hyper" | "iTerm2" | "kitty" | "Terminal" | "终端" | "WezTerm")
icon_result=":terminal:"
;;
"Microsoft To Do" | "Things")
icon_result=":things:"
;;
"Keyboard Maestro")
icon_result=":keyboard_maestro:"
;;
"App Store")
icon_result=":app_store:"
;;
"CleanMyMac X")
icon_result=":desktop:"
;;
"Android Messages")
icon_result=":android_messages:"
;;
"Reeder")
icon_result=":reeder5:"
;;
"Joplin")
icon_result=":joplin:"
;;
"Discord" | "Discord Canary" | "Discord PTB")
icon_result=":discord:"
;;
"Logseq")
icon_result=":logseq:"
;;
"Microsoft Excel")
icon_result=":microsoft_excel:"
;;
"Microsoft PowerPoint")
icon_result=":microsoft_power_point:"
;;
"Telegram")
icon_result=":telegram:"
;;
"Transmit")
icon_result=":transmit:"
;;
"Pi-hole Remote")
icon_result=":pihole:"
;;
"League of Legends")
icon_result=":league_of_legends:"
;;
"Element")
icon_result=":element:"
;;
"Zulip")
icon_result=":zulip:"
;;
"Sequel Ace")
icon_result=":sequel_ace:"
;;
"Zed")
icon_result=":zed:"
;;
"TeamSpeak 3")
icon_result=":team_speak:"
;;
"1Password")
icon_result=":one_password:"
;;
"Caprine")
icon_result=":caprine:"
;;
"카카오톡")
icon_result=":kakaotalk:"
;;
"Dropbox")
icon_result=":dropbox:"
;;
"Kakoune")
icon_result=":kakoune:"
;;
"Rider" | "JetBrains Rider")
icon_result=":rider:"
;;
"Godot")
icon_result=":godot:"
;;
"qutebrowser")
icon_result=":qute_browser:"
;;
"Typora")
icon_result=":text:"
;;
"Sequel Pro")
icon_result=":sequel_pro:"
;;
"Reminders" | "提醒事项")
icon_result=":reminders:"
;;
"Setapp")
icon_result=":setapp:"
;;
"Finder" | "访达")
icon_result=":finder:"
;;
"Matlab")
icon_result=":matlab:"
;;
"LibreWolf")
icon_result=":libre_wolf:"
;;
"Notes" | "备忘录")
icon_result=":notes:"
;;
"Notion")
icon_result=":notion:"
;;
"Brave Browser")
icon_result=":brave_browser:"
;;
"Spotlight")
icon_result=":spotlight:"
;;
"Iris")
icon_result=":iris:"
;;
"Tower")
icon_result=":tower:"
;;
"Jellyfin Media Player")
icon_result=":jellyfin:"
;;
"Code" | "Code - Insiders")
icon_result=":code:"
;;
"Linear")
icon_result=":linear:"
;;
"Live")
icon_result=":ableton:"
;;
"Parallels Desktop")
icon_result=":parallels:"
;;
"Final Cut Pro")
icon_result=":final_cut_pro:"
;;
"Chromium" | "Google Chrome" | "Google Chrome Canary")
icon_result=":google_chrome:"
;;
"GitHub Desktop")
icon_result=":git_hub:"
;;
"Firefox")
icon_result=":firefox:"
;;
"Slack")
icon_result=":slack:"
;;
"Spotify")
icon_result=":spotify:"
;;
"Neovide" | "MacVim" | "Vim" | "VimR")
icon_result=":vim:"
;;
"KeePassXC")
icon_result=":kee_pass_x_c:"
;;
"PomoDone App")
icon_result=":pomodone:"
;;
"DEVONthink 3")
icon_result=":devonthink3:"
;;
"Color Picker" | "数码测色计")
icon_result=":color_picker:"
;;
"Tweetbot" | "Twitter")
icon_result=":twitter:"
;;
"Default")
icon_result=":default:"
;;
"Pages" | "Pages 文稿")
icon_result=":pages:"
;;
"Emacs")
icon_result=":emacs:"
;;
"MAMP" | "MAMP PRO")
icon_result=":mamp:"
;;
"Canary Mail" | "HEY" | "Mail" | "Mailspring" | "MailMate" | "邮件")
icon_result=":mail:"
;;
"WebStorm")
icon_result=":web_storm:"
;;
"TickTick")
icon_result=":tick_tick:"
;;
"TIDAL")
icon_result=":tidal:"
;;
"VLC")
icon_result=":vlc:"
;;
"Blender")
icon_result=":blender:"
;;
"Music" | "音乐")
icon_result=":music:"
;;
"Calendar" | "日历" | "Fantastical" | "Cron" | "Amie")
icon_result=":calendar:"
;;
"Evernote Legacy")
icon_result=":evernote_legacy:"
;;
"Microsoft Word")
icon_result=":microsoft_word:"
;;
"Safari" | "Safari浏览器" | "Safari Technology Preview")
icon_result=":safari:"
;;
"MoneyMoney")
icon_result=":bank:"
;;
"Xcode")
icon_result=":xcode:"
;;
"Numbers" | "Numbers 表格")
icon_result=":numbers:"
;;
"ClickUp")
icon_result=":click_up:"
;;
"Arc")
icon_result=":arc:"
;;
"Zeplin")
icon_result=":zeplin:"
;;
"Trello")
icon_result=":trello:"
;;
"Vivaldi")
icon_result=":vivaldi:"
;;
"Calibre")
icon_result=":book:"
;;
"Min")
icon_result=":min_browser:"
;;
"网易云音乐")
icon_result=":netease_music:"
;;
"GrandTotal" | "Receipts")
icon_result=":dollar:"
;;
"zoom.us")
icon_result=":zoom:"
;;
"Folx")
icon_result=":folx:"
;;
"微信")
icon_result=":wechat:"
;;
"Orion" | "Orion RC")
icon_result=":orion:"
;;
"Notability")
icon_result=":notability:"
;;
"Todoist")
icon_result=":todoist:"
;;
"Replit")
icon_result=":replit:"
;;
"Tor Browser")
icon_result=":tor_browser:"
;;
"Drafts")
icon_result=":drafts:"
;;
"Preview" | "预览" | "Skim" | "zathura")
icon_result=":pdf:"
;;
"PyCharm")
icon_result=":pycharm:"
;;
"Audacity")
icon_result=":audacity:"
;;
"Cypress")
icon_result=":cypress:"
;;
"VSCodium")
icon_result=":vscodium:"
;;
"Podcasts" | "播客")
icon_result=":podcasts:"
;;
"DingTalk" | "钉钉" | "阿里钉")
icon_result=":dingtalk:"
;;
"OBS")
icon_result=":obsstudio:"
;;
"Firefox Developer Edition" | "Firefox Nightly")
icon_result=":firefox_developer_edition:"
;;
"Alfred")
icon_result=":alfred:"
;;
"OmniFocus")
icon_result=":omni_focus:"
;;
"Skype")
icon_result=":skype:"
;;
"Spark Desktop")
icon_result=":spark:"
;;
"Docker" | "Docker Desktop")
icon_result=":docker:"
;;
"Signal")
icon_result=":signal:"
;;
"Pine")
icon_result=":pine:"
;;
"Insomnia")
icon_result=":insomnia:"
;;
"Microsoft Edge")
icon_result=":microsoft_edge:"
;;
"Affinity Photo")
icon_result=":affinity_photo:"
;;
"Sketch")
icon_result=":sketch:"
;;
"Android Studio")
icon_result=":android_studio:"
;;
"Bitwarden")
icon_result=":bit_warden:"
;;
"Affinity Publisher")
icon_result=":affinity_publisher:"
;;
"Zotero")
icon_result=":zotero:"
;;
"Sublime Text")
icon_result=":sublime_text:"
;;
"Warp")
icon_result=":warp:"
;;
"Messages" | "信息" | "Nachrichten")
icon_result=":messages:"
;;
"Obsidian")
icon_result=":obsidian:"
;;
"IntelliJ IDEA")
icon_result=":idea:"
;;
"Atom")
icon_result=":atom:"
;;
"FaceTime" | "FaceTime 通话")
icon_result=":face_time:"
;;
"Yuque" | "语雀")
icon_result=":yuque:"
;;
"Grammarly Editor")
icon_result=":grammarly:"
;;
"Mattermost")
icon_result=":mattermost:"
;;
"Affinity Designer")
icon_result=":affinity_designer:"
;;
"mpv")
icon_result=":mpv:"
;;
"Thunderbird")
icon_result=":thunderbird:"
;;
"Airmail")
icon_result=":airmail:"
;;
"Microsoft Teams")
icon_result=":microsoft_teams:"
;;
"Bear")
icon_result=":bear:"
;;
"System Preferences" | "System Settings" | "系统设置")
icon_result=":gear:"
;;
"Nova")
icon_result=":nova:"
;;
"WhatsApp")
icon_result=":whats_app:"
;;
*)
icon_result=":default:"
;;
esac
}
icon_map "$1"
echo "$icon_result"

View File

@@ -0,0 +1,9 @@
#!/bin/bash
STATE="$(echo "$INFO" | jq -r '.state')"
if [ "$STATE" = "playing" ]; then
MEDIA="$(echo "$INFO" | jq -r '.title + " - " + .artist')"
sketchybar --set $NAME label="$MEDIA" drawing=on
else
sketchybar --set $NAME drawing=off
fi

View File

@@ -0,0 +1,18 @@
#!/bin/sh
# The $SELECTED variable is available for space components and indicates if
# the space invoking this script (with name: $NAME) is currently selected:
# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
source "$CONFIG_DIR/colors.sh"
if [ $SELECTED = true ]; then
sketchybar --set $NAME background.drawing=on \
background.color=$ACCENT_COLOR \
label.color=$BAR_COLOR \
icon.color=$BAR_COLOR
else
sketchybar --set $NAME background.color=off \
label.color=$ACCENT_COLOR \
icon.color=$ACCENT_COLOR
fi

View File

@@ -0,0 +1,18 @@
#!/bin/bash
if [ "$SENDER" = "space_windows_change" ]; then
space="$(echo "$INFO" | jq -r '.space')"
apps="$(echo "$INFO" | jq -r '.apps | keys[]')"
icon_strip=" "
if [ "${apps}" != "" ]; then
while read -r app
do
icon_strip+=" $($CONFIG_DIR/plugins/icon_map_fn.sh "$app")"
done <<< "${apps}"
else
icon_strip=" —"
fi
sketchybar --set space.$space label="$icon_strip"
fi

View File

@@ -0,0 +1,20 @@
#!/bin/sh
# The volume_change event supplies a $INFO variable in which the current volume
# percentage is passed to the script.
if [ "$SENDER" = "volume_change" ]; then
VOLUME="$INFO"
case "$VOLUME" in
[6-9][0-9]|100) ICON="󰕾"
;;
[3-5][0-9]) ICON="󰖀"
;;
[1-9]|[1-2][0-9]) ICON="󰕿"
;;
*) ICON="󰖁"
esac
sketchybar --set "$NAME" icon="$ICON" label="$VOLUME%"
fi