sketchybar: init
This commit is contained in:
parent
ded82a8f8b
commit
ae71080920
10 changed files with 182 additions and 96 deletions
|
|
@ -1,7 +1,14 @@
|
|||
# You can use it to add commands that run after AeroSpace startup.
|
||||
# Available commands : https://nikitabobko.github.io/AeroSpace/commands
|
||||
after-startup-command = [
|
||||
'exec-and-forget borders active_color=0xfff74f9e inactive_color=0xffffa8f1 width=6.0'
|
||||
'exec-and-forget borders active_color=0xfff74f9e inactive_color=0xffffa8f1 width=6.0',
|
||||
'exec-and-forget sketchybar'
|
||||
]
|
||||
|
||||
|
||||
# Notify Sketchybar about workspace change
|
||||
exec-on-workspace-change = ['/bin/bash', '-c',
|
||||
'sketchybar --trigger aerospace_workspace_change FOCUSED_WORKSPACE=$AEROSPACE_FOCUSED_WORKSPACE'
|
||||
]
|
||||
|
||||
# Start AeroSpace at login - breaks nix darwin
|
||||
|
|
|
|||
|
|
@ -53,3 +53,8 @@ output_path = '~/.config/hypr/hyprlock.conf'
|
|||
[templates.vesktop]
|
||||
input_path = './templates/discord.css'
|
||||
output_path = '~/.config/vesktop/themes/midnight-discord.css'
|
||||
|
||||
[templates.sketchybar]
|
||||
input_path = './templates/sketchybar.sh'
|
||||
output_path = '~/.config/sketchybar/colours.sh'
|
||||
post_hook = 'sketchybar --reload'
|
||||
|
|
|
|||
3
stow/.config/matugen/templates/sketchybar.sh
Normal file
3
stow/.config/matugen/templates/sketchybar.sh
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
export PRIMARY_COLOUR=0xFF{{colors.primary.default.hex_stripped}}
|
||||
export SECONDARY_COLOUR=0xFF{{colors.secondary.default.hex_stripped}}
|
||||
export BACKGROUND_COLOUR=0xFF{{colors.background.default.hex_stripped}}
|
||||
1
stow/.config/sketchybar/.gitignore
vendored
Normal file
1
stow/.config/sketchybar/.gitignore
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
colours.sh
|
||||
14
stow/.config/sketchybar/plugins/aerospace.sh
Executable file
14
stow/.config/sketchybar/plugins/aerospace.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# make sure it's executable with:
|
||||
# chmod +x ~/.config/sketchybar/plugins/aerospace.sh
|
||||
#
|
||||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||
source $SCRIPT_DIR/../colours.sh
|
||||
|
||||
if [ "$1" = "$FOCUSED_WORKSPACE" ]; then
|
||||
# If workspace is focused
|
||||
sketchybar --set $NAME background.color=$PRIMARY_COLOUR label.color=$BACKGROUND_COLOUR
|
||||
else
|
||||
sketchybar --set $NAME background.color=$BACKGROUND_COLOUR label.color=$PRIMARY_COLOUR
|
||||
fi
|
||||
|
|
@ -12,4 +12,4 @@ else
|
|||
sketchybar --set "$NAME" label.padding_right=20
|
||||
fi
|
||||
|
||||
sketchybar --set "$NAME" label=" $(date +'%a %d %b') $(date +'%I:%M %p')"
|
||||
sketchybar --set "$NAME" label="$(date +'%l:%M %p')"
|
||||
|
|
|
|||
29
stow/.config/sketchybar/plugins/input-method.sh
Executable file
29
stow/.config/sketchybar/plugins/input-method.sh
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/sh
|
||||
|
||||
# from: https://apple.stackexchange.com/questions/251666/how-to-get-current-input-language-of-the-input-source
|
||||
|
||||
#!/usr/local/bin/bash
|
||||
# Checks current keyboard input source (aka language)
|
||||
|
||||
#These are the strings that MacOS uses to identify the current input source
|
||||
ENGLISH="Australian"
|
||||
HIRIGANA="com.apple.inputmethod.Japanese"
|
||||
KATANA="com.apple.inputmethod.Japanese.Katakana"
|
||||
|
||||
WESTERN_LANGUAGE=$(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | grep 'KeyboardLayout Name' | sed -E 's/^.+ = \"?([^\"]+)\"?;$/\1/')
|
||||
|
||||
# If the current language is not western one, then check a different variable
|
||||
EASTERN_LANGUAGE=$(defaults read ~/Library/Preferences/com.apple.HIToolbox.plist AppleSelectedInputSources | grep -w 'Input Mode' | head -1 | sed -E 's/^.+ = \"?([^\"]+)\"?;$/\1/')
|
||||
|
||||
if [ "$WESTERN_LANGUAGE" = "$ENGLISH" ]; then
|
||||
LABEL="English"
|
||||
ICON="🇬🇧"
|
||||
elif [ "$EASTERN_LANGUAGE" = "$HIRIGANA" ]; then
|
||||
LABEL="Japanese"
|
||||
ICON="🇯🇵"
|
||||
elif [ "$EASTERN_LANGUAGE" = "$KATANA" ]; then
|
||||
LABEL="Katakana"
|
||||
ICON="🈴"
|
||||
fi
|
||||
|
||||
sketchybar --set "$NAME" label="$LABEL" icon="$ICON"
|
||||
10
stow/.config/sketchybar/plugins/music.sh
Executable file
10
stow/.config/sketchybar/plugins/music.sh
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
# sketchybar doesn't like it when the line doesn't end with a carriage return
|
||||
SONG="$(osascript -e 'tell application "Music" to if player state is playing then artist of current track & " - " & name of current track' | head -c 65 && echo '\r')"
|
||||
|
||||
if [[ "$(echo $SONG | wc -w | sed 's/ //g')" != "0" ]]; then
|
||||
sketchybar --set "$NAME" label="${SONG}" background.drawing=true icon.drawing=true
|
||||
else
|
||||
sketchybar --set "$NAME" label="" background.drawing=false icon.drawing=false
|
||||
fi
|
||||
8
stow/.config/sketchybar/plugins/wifi.sh
Executable file
8
stow/.config/sketchybar/plugins/wifi.sh
Executable file
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
ping -c 1 1.1.1.1 &> /dev/null
|
||||
|
||||
if [ "$?" = "0" ]; then
|
||||
sketchybar --set $NAME icon=
|
||||
else
|
||||
sketchybar --set $NAME icon=
|
||||
fi
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
# For a (much) more advanced configuration example see my dotfiles:
|
||||
# https://github.com/FelixKratz/dotfiles
|
||||
|
||||
PLUGIN_DIR="$HOME/.config/sketchybar/plugins"
|
||||
PLUGIN_DIR="$HOME/dots/stow/.config/sketchybar/plugins"
|
||||
|
||||
##### Bar Appearance #####
|
||||
# Configuring the general appearance of the bar.
|
||||
|
|
@ -13,120 +13,129 @@ PLUGIN_DIR="$HOME/.config/sketchybar/plugins"
|
|||
# If you are looking for other colors, see the color picker:
|
||||
# https://felixkratz.github.io/SketchyBar/config/tricks#color-picker
|
||||
|
||||
sketchybar --bar position=top \
|
||||
height=32 \
|
||||
blur_radius=30 \
|
||||
color=0x00000000 \
|
||||
padding_right=10 \
|
||||
padding_left=10 \
|
||||
y_offset=3
|
||||
sketchybar --bar position=top height=42 blur_radius=0 color=0x00000000 padding_right=15 padding_left=15 y_offset=0 corner_radius=0
|
||||
|
||||
source $PLUGIN_DIR/../colours.sh
|
||||
|
||||
##### Changing Defaults #####
|
||||
# We now change some default values, which are applied to all further items.
|
||||
# For a full list of all available item properties see:
|
||||
# https://felixkratz.github.io/SketchyBar/config/items
|
||||
|
||||
default=(
|
||||
icon.font="ComicShannsMono Nerd Font:Regular:11.0"
|
||||
label.font="ComicShannsMono Nerd Font:Bold:11.0"
|
||||
icon.font="ComicShannsMono Nerd Font:Regular:16.0"
|
||||
label.font="ComicShannsMono Nerd Font:Bold:12.0"
|
||||
background.border_color=0x00000000
|
||||
background.border_width=3
|
||||
background.height=32
|
||||
|
||||
padding_left=1
|
||||
padding_right=1
|
||||
icon.color=$PRIMARY_COLOUR
|
||||
label.color=$PRIMARY_COLOUR
|
||||
icon.color=$SECONDARY_COLOUR
|
||||
background.color=$BACKGROUND_COLOUR
|
||||
icon.padding_left=10
|
||||
icon.padding_right=1
|
||||
label.padding_left=5
|
||||
label.padding_right=10
|
||||
|
||||
background.padding_left=2
|
||||
background.padding_right=2
|
||||
background.corner_radius=10
|
||||
label.padding_left=7
|
||||
label.padding_right=7
|
||||
background.corner_radius=5
|
||||
)
|
||||
|
||||
sketchybar --default "${default[@]}"
|
||||
|
||||
##### Adding Mission Control Space Indicators #####
|
||||
# Let's add some mission control spaces:
|
||||
# https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item
|
||||
# to indicate active and available mission control spaces.
|
||||
|
||||
SPACE_ICONS=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10")
|
||||
for i in "${!SPACE_ICONS[@]}"
|
||||
do
|
||||
sid="$(($i+1))"
|
||||
space=(
|
||||
icon.color=$PRIMARY_COLOUR
|
||||
background.color=$BACKGROUND_COLOUR
|
||||
|
||||
space="$sid"
|
||||
icon="${SPACE_ICONS[i]}"
|
||||
icon.padding_left=12
|
||||
icon.padding_right=12
|
||||
background.height=32
|
||||
background.padding_left=0
|
||||
background.padding_right=0
|
||||
label.drawing=off
|
||||
script="$PLUGIN_DIR/space.sh"
|
||||
click_script="yabai -m space --focus $sid"
|
||||
)
|
||||
sketchybar --add space space."$sid" left --set space."$sid" "${space[@]}"
|
||||
done
|
||||
|
||||
##### Adding Left Items #####
|
||||
# We add some regular items to the left side of the bar, where
|
||||
# only the properties deviating from the current defaults need to be set
|
||||
|
||||
#sketchybar --add item chevron left \
|
||||
# --set chevron icon= label.drawing=off \
|
||||
# --add item front_app left \
|
||||
# --set front_app icon.drawing=off script="$PLUGIN_DIR/front_app.sh" \
|
||||
# --subscribe front_app front_app_switched
|
||||
#
|
||||
# Adding Left Items
|
||||
#
|
||||
|
||||
# Focused window title
|
||||
sketchybar --add item front_app left \
|
||||
--set front_app icon.drawing=off \
|
||||
label.color=$PRIMARY_COLOUR \
|
||||
padding_left=10 \
|
||||
label.padding_left=10 \
|
||||
background.color=$BACKGROUND_COLOUR \
|
||||
background.height=32 \
|
||||
--set front_app icon=" " \
|
||||
script="$PLUGIN_DIR/front_app.sh" \
|
||||
--subscribe front_app front_app_switched \
|
||||
|
||||
|
||||
|
||||
##### Adding Right Items #####
|
||||
|
||||
sketchybar --add item clock right \
|
||||
--set clock \
|
||||
update_freq=10 \
|
||||
icon.color=$PRIMARY_COLOUR \
|
||||
label.color=$PRIMARY_COLOUR \
|
||||
# Aerospace workspace indicators
|
||||
sketchybar --add event aerospace_workspace_change
|
||||
for sid in $(aerospace list-workspaces --all); do
|
||||
sketchybar --add item space.$sid left \
|
||||
--subscribe space.$sid aerospace_workspace_change \
|
||||
--set space.$sid \
|
||||
background.color=$BACKGROUND_COLOUR \
|
||||
background.height=32 \
|
||||
background.drawing=true \
|
||||
icon.drawing=false \
|
||||
background.height=28 \
|
||||
background.border_width=0 \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
background.corner_radius=0 \
|
||||
label.color=$PRIMARY_COLOUR \
|
||||
label="$sid" \
|
||||
click_script="aerospace workspace $sid" \
|
||||
script="$CONFIG_DIR/plugins/aerospace.sh $sid"
|
||||
done
|
||||
|
||||
# Currently playing music status (only works for Music.app)
|
||||
sketchybar --add item music left \
|
||||
--set music icon=" " update_freq=10 \
|
||||
script="$PLUGIN_DIR/music.sh" \
|
||||
click_script="osascript -e 'tell application \"Music\" to playpause'" \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
background.drawing=false \
|
||||
background.color=$PRIMARY_COLOUR \
|
||||
icon.color=$BACKGROUND_COLOUR \
|
||||
label.color=$BACKGROUND_COLOUR \
|
||||
icon.drawing=false
|
||||
|
||||
#
|
||||
# Adding Right Items
|
||||
#
|
||||
|
||||
# Clock
|
||||
sketchybar --add item clock right \
|
||||
--set clock icon=" " \
|
||||
update_freq=10 \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
label.padding_right=20 \
|
||||
script="$PLUGIN_DIR/clock.sh"
|
||||
|
||||
# Input Method
|
||||
sketchybar --add item input-method right \
|
||||
--set input-method icon="" \
|
||||
update_freq=1 \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
script="$PLUGIN_DIR/input-method.sh"
|
||||
|
||||
# Battery
|
||||
sketchybar --add item battery right \
|
||||
--set battery update_freq=10 \
|
||||
script="$PLUGIN_DIR/battery.sh" \
|
||||
icon.color=$SECONDARY_COLOUR \
|
||||
label.color=$SECONDARY_COLOUR \
|
||||
background.color=$BACKGROUND_COLOUR \
|
||||
background.height=32 \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
|
||||
# Backlight
|
||||
sketchybar --add item backlight right \
|
||||
--set backlight icon="" \
|
||||
icon.color=$TERTIARY_COLOUR \
|
||||
label.color=$TERTIARY_COLOUR \
|
||||
background.color=$BACKGROUND_COLOUR \
|
||||
background.height=32 \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
script="$PLUGIN_DIR/backlight.sh" \
|
||||
--subscribe backlight brightness_change \
|
||||
|
||||
# Volume
|
||||
sketchybar --add item audio right \
|
||||
--set audio icon = "" \
|
||||
icon.color=$TERTIARY_COLOUR \
|
||||
label.color=$TERTIARY_COLOUR \
|
||||
background.color=$BACKGROUND_COLOUR \
|
||||
background.height=32 \
|
||||
--set audio \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
script="$PLUGIN_DIR/volume.sh" \
|
||||
--subscribe audio volume_change \
|
||||
|
||||
# Wifi
|
||||
sketchybar --add item wifi right \
|
||||
--set wifi script="$PLUGIN_DIR/wifi.sh" \
|
||||
update_freq=60 \
|
||||
background.padding_right=0 \
|
||||
background.padding_left=0 \
|
||||
label.padding_left=0
|
||||
|
||||
##### Force all scripts to run the first time (never do this in a script) #####
|
||||
sketchybar --update
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue