From 9c416de3087655af9db2bccd7a2988b33ecf5835 Mon Sep 17 00:00:00 2001 From: Federico Rossi Date: Sat, 18 Nov 2023 20:56:03 +0100 Subject: [PATCH] Updated dotfiles --- .skhdrc | 11 +++ .yabairc | 2 +- .zshrc | 120 +++++++++++++++++++++++ bottom_bar/#sketchybarrc# | 104 ++++++++++++++++++++ bottom_bar/plugins/battery.sh | 28 ++++++ bottom_bar/plugins/battery.sh~ | 28 ++++++ bottom_bar/plugins/clock.sh | 8 ++ bottom_bar/plugins/clock.sh~ | 8 ++ bottom_bar/plugins/cpu.sh | 7 ++ bottom_bar/plugins/cpu.sh~ | 7 ++ bottom_bar/plugins/front_app.sh | 10 ++ bottom_bar/plugins/memory.sh | 5 + bottom_bar/plugins/memory.sh~ | 5 + bottom_bar/plugins/space.sh | 7 ++ bottom_bar/plugins/space.sh~ | 7 ++ bottom_bar/plugins/temp_sensor | Bin 0 -> 52712 bytes bottom_bar/plugins/temperature.sh | 7 ++ bottom_bar/plugins/temperature.sh~ | 7 ++ bottom_bar/plugins/volume.sh | 20 ++++ bottom_bar/plugins/volume.sh~ | 20 ++++ bottom_bar/plugins/wifi.sh | 11 +++ bottom_bar/plugins/wifi.sh~ | 11 +++ bottom_bar/sketchybarrc | 104 ++++++++++++++++++++ {sketchybar => bottom_bar}/sketchybarrc~ | 49 +++++---- sketchybar/plugins/cpu.sh | 7 ++ sketchybar/plugins/memory.sh | 5 + sketchybar/plugins/temp_sensor | Bin 0 -> 52712 bytes sketchybar/plugins/temperature.sh | 25 +---- sketchybar/plugins/wifi.sh | 11 +++ sketchybar/plugins/windows.py | 48 +++++++++ sketchybar/sketchybarrc | 65 ++---------- 31 files changed, 641 insertions(+), 106 deletions(-) create mode 100644 .zshrc create mode 100755 bottom_bar/#sketchybarrc# create mode 100755 bottom_bar/plugins/battery.sh create mode 100755 bottom_bar/plugins/battery.sh~ create mode 100755 bottom_bar/plugins/clock.sh create mode 100755 bottom_bar/plugins/clock.sh~ create mode 100755 bottom_bar/plugins/cpu.sh create mode 100755 bottom_bar/plugins/cpu.sh~ create mode 100755 bottom_bar/plugins/front_app.sh create mode 100755 bottom_bar/plugins/memory.sh create mode 100755 bottom_bar/plugins/memory.sh~ create mode 100755 bottom_bar/plugins/space.sh create mode 100755 bottom_bar/plugins/space.sh~ create mode 100755 bottom_bar/plugins/temp_sensor create mode 100755 bottom_bar/plugins/temperature.sh create mode 100755 bottom_bar/plugins/temperature.sh~ create mode 100755 bottom_bar/plugins/volume.sh create mode 100755 bottom_bar/plugins/volume.sh~ create mode 100755 bottom_bar/plugins/wifi.sh create mode 100755 bottom_bar/plugins/wifi.sh~ create mode 100755 bottom_bar/sketchybarrc rename {sketchybar => bottom_bar}/sketchybarrc~ (72%) create mode 100755 sketchybar/plugins/cpu.sh create mode 100755 sketchybar/plugins/memory.sh create mode 100755 sketchybar/plugins/temp_sensor create mode 100755 sketchybar/plugins/wifi.sh create mode 100755 sketchybar/plugins/windows.py diff --git a/.skhdrc b/.skhdrc index d266e91..a7afad4 100644 --- a/.skhdrc +++ b/.skhdrc @@ -163,6 +163,9 @@ cmd - return : /Applications/kitty.app/Contents/MacOS/kitty --single-instance -d # restart yabai shift + cmd - r: yabai --restart-service +# restart skhd +shift + cmd - s: skhd --restart-service + # send to next display cmd + shift - l : yabai -m window --display next; yabai -m display --focus next @@ -177,3 +180,11 @@ ctrl - right : yabai -m space --focus next; ctrl - left : yabai -m space --focus prev; +# Open dmenu +cmd - space: open -a dmenu-mac + +# Delete curr space +cmd + ctrl - backspace: yabai -m space --destroy + +# Open finder +cmd - e: open -a Finder \ No newline at end of file diff --git a/.yabairc b/.yabairc index bb466fc..9bb15e1 100755 --- a/.yabairc +++ b/.yabairc @@ -10,7 +10,7 @@ yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa" sudo yabai --load-sa # - +#open -a dmenu-mac # global settings yabai -m config \ mouse_follows_focus on \ diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..8e65427 --- /dev/null +++ b/.zshrc @@ -0,0 +1,120 @@ +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +# Path to your oh-my-zsh installation. +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +ZSH_THEME="robbyrussell" # set by `omz` + +# Set list of themes to pick from when loading at random +# Setting this variable when ZSH_THEME=random will cause zsh to load +# a theme from this variable instead of looking in $ZSH/themes/ +# If set to an empty array, this variable will have no effect. +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment one of the following lines to change the auto-update behavior +# zstyle ':omz:update' mode disabled # disable automatic updates +# zstyle ':omz:update' mode auto # update automatically without asking +# zstyle ':omz:update' mode reminder # just remind me to update when it's time + +# Uncomment the following line to change how often to auto-update (in days). +# zstyle ':omz:update' frequency 13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# You can also set it to another string to have that shown instead of the default red dots. +# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" +# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +# if [[ -n $SSH_CONNECTION ]]; then +# export EDITOR='vim' +# else +# export EDITOR='mvim' +# fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" + +eval $(/opt/homebrew/bin/brew shellenv) + + +export PATH="/opt/homebrew/opt/llvm/bin:$PATH" +export LDFLAGS="-L/opt/homebrew/opt/llvm/lib" +export CPPFLAGS="-I/opt/homebrew/opt/llvm/include" + +export CLANGPATH="" + +alias cat=bat + + + + + + +alias xo=open +alias em="emacs -nw" diff --git a/bottom_bar/#sketchybarrc# b/bottom_bar/#sketchybarrc# new file mode 100755 index 0000000..9addc8c --- /dev/null +++ b/bottom_bar/#sketchybarrc# @@ -0,0 +1,104 @@ +# This is a demo config to show some of the most important commands more easily. +# This is meant to be changed and configured, as it is intentionally kept sparse. +# For a more advanced configuration example see my dotfiles: +# https://github.com/FelixKratz/dotfiles +CONFIG_DIR="/Users/federico/.config/bottom_bar" +PLUGIN_DIR="$CONFIG_DIR/plugins" + +##### Bar Appearance ##### +# Configuring the general appearance of the bar, these are only some of the +# options available. For all options see: +# https://felixkratz.github.io/SketchyBar/config/bar +# If you are looking for other colors, see the color picker: +# https://felixkratz.github.io/SketchyBar/config/tricks#color-picker + +bottom_bar --bar height=28 \ + position=bottom \ + sticky=off \ + padding_left=10 \ + padding_right=10 \ + color=0x15ffffff + + + + +##### Changing Defaults ##### +# We now change some default values that are applied to all further items +# For a full list of all available item properties see: +# https://felixkratz.github.io/SketchyBar/config/items + +bottom_bar --default icon.font="Hack Nerd Font:Bold:17.0" \ + icon.color=0xffffffff \ + label.font="Hack Nerd Font:Regular:14.0" \ + label.color=0xffffffff \ + padding_left=5 \ + padding_right=5 \ + label.padding_left=4 \ + label.padding_right=4 \ + icon.padding_left=4 \ + icon.padding_right=4 + + + +##### Adding Mission Control Space Indicators ##### +# Now we 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)) + bottom_bar --add space space.$sid left \ + --set space.$sid space=$sid \ + icon=${SPACE_ICONS[i]} \ + icon.font="Hack Nerd Font:Regular:17.0" \ + background.color=0x44ffffff \ + background.height=20 \ + background.drawing=off \ + label.drawing=off \ + script="$PLUGIN_DIR/space.sh" \ + click_script="yabai -m space --focus $sid" +done + + + +##### Adding Right Items ##### +# In the same way as the left items we can add items to the right side. +# Additional position (e.g. center) are available, see: +# https://felixkratz.github.io/SketchyBar/config/items#adding-items-to-sketchybar + +# Some items refresh on a fixed cycle, e.g. the clock runs its script once +# every 10s. Other items respond to events they subscribe to, e.g. the +# volume.sh script is only executed once an actual change in system audio +# volume is registered. More info about the event system can be found here: +# https://felixkratz.github.io/SketchyBar/config/events + +bottom_bar --add item clock right \ + --set clock update_freq=10 \ + icon= \ + script="$PLUGIN_DIR/clock.sh" \ + \ + --add item volume right \ + --set volume script="$PLUGIN_DIR/volume.sh" \ + --subscribe volume volume_change \ + \ + --add item battery right \ + --set battery script="$PLUGIN_DIR/battery.sh" \ + update_freq=120 \ + --subscribe battery system_woke power_source_change \ + --add item temp right \ + --set temp script="$PLUGIN_DIR/temperature.sh" \ + update_freq=10 \ + --add item wifi right \ + --set wifi script="$PLUGIN_DIR/wifi.sh" \ + --subscribe wifi wifi_change \ + --add item cpu right \ + --set cpu script="$PLUGIN_DIR/cpu.sh" \ + update_freq=10 \ +##### Finalizing Setup ##### +# The below command is only needed at the end of the initial configuration to +# force all scripts to run the first time, it should never be run in an item script. + +bottom_bar --update diff --git a/bottom_bar/plugins/battery.sh b/bottom_bar/plugins/battery.sh new file mode 100755 index 0000000..f960fa4 --- /dev/null +++ b/bottom_bar/plugins/battery.sh @@ -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 +bottom_bar --set $NAME icon="$ICON" label="${PERCENTAGE}%" diff --git a/bottom_bar/plugins/battery.sh~ b/bottom_bar/plugins/battery.sh~ new file mode 100755 index 0000000..d29768b --- /dev/null +++ b/bottom_bar/plugins/battery.sh~ @@ -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}%" diff --git a/bottom_bar/plugins/clock.sh b/bottom_bar/plugins/clock.sh new file mode 100755 index 0000000..1fce847 --- /dev/null +++ b/bottom_bar/plugins/clock.sh @@ -0,0 +1,8 @@ +#!/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 + +bottom_bar --set $NAME label="$(date '+%d/%m %H:%M')" + diff --git a/bottom_bar/plugins/clock.sh~ b/bottom_bar/plugins/clock.sh~ new file mode 100755 index 0000000..1a99c61 --- /dev/null +++ b/bottom_bar/plugins/clock.sh~ @@ -0,0 +1,8 @@ +#!/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 '+%d/%m %H:%M')" + diff --git a/bottom_bar/plugins/cpu.sh b/bottom_bar/plugins/cpu.sh new file mode 100755 index 0000000..5394d24 --- /dev/null +++ b/bottom_bar/plugins/cpu.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cpu_percent=$(top -l 2 | grep -E "^CPU" | tail -1 | awk '{ print $3 + $5"%" }') + +bottom_bar --set $NAME icon=󰍛 label="${cpu_percent}" + + diff --git a/bottom_bar/plugins/cpu.sh~ b/bottom_bar/plugins/cpu.sh~ new file mode 100755 index 0000000..2264857 --- /dev/null +++ b/bottom_bar/plugins/cpu.sh~ @@ -0,0 +1,7 @@ +#!/bin/bash + +cpu_percent=$(top -l 2 | grep -E "^CPU" | tail -1 | awk '{ print $3 + $5"%" }') + +sketchybar --set $NAME icon=󰍛 label="${cpu_percent}" + + diff --git a/bottom_bar/plugins/front_app.sh b/bottom_bar/plugins/front_app.sh new file mode 100755 index 0000000..cdfc137 --- /dev/null +++ b/bottom_bar/plugins/front_app.sh @@ -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" +fi diff --git a/bottom_bar/plugins/memory.sh b/bottom_bar/plugins/memory.sh new file mode 100755 index 0000000..1b3c6ce --- /dev/null +++ b/bottom_bar/plugins/memory.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +MEMORY=$(memory_pressure | tail -n 1 | awk '{print $5}') + +bottom_bar --set $NAME icon=󰍛 label="${MEMORY}" diff --git a/bottom_bar/plugins/memory.sh~ b/bottom_bar/plugins/memory.sh~ new file mode 100755 index 0000000..bbf812d --- /dev/null +++ b/bottom_bar/plugins/memory.sh~ @@ -0,0 +1,5 @@ +#!/bin/bash + +MEMORY=$(memory_pressure | tail -n 1 | awk '{print $5}') + +sketchybar --set $NAME icon=󰍛 label="${MEMORY}" diff --git a/bottom_bar/plugins/space.sh b/bottom_bar/plugins/space.sh new file mode 100755 index 0000000..2ac2248 --- /dev/null +++ b/bottom_bar/plugins/space.sh @@ -0,0 +1,7 @@ +#!/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 + +bottom_bar --set $NAME background.drawing=$SELECTED diff --git a/bottom_bar/plugins/space.sh~ b/bottom_bar/plugins/space.sh~ new file mode 100755 index 0000000..3ae63f9 --- /dev/null +++ b/bottom_bar/plugins/space.sh~ @@ -0,0 +1,7 @@ +#!/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 + +sketchybar --set $NAME background.drawing=$SELECTED diff --git a/bottom_bar/plugins/temp_sensor b/bottom_bar/plugins/temp_sensor new file mode 100755 index 0000000000000000000000000000000000000000..39ba8233b5f36cc16ac9856cc147a51085a0d541 GIT binary patch literal 52712 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 A2mk;8 literal 0 HcmV?d00001 diff --git a/bottom_bar/plugins/temperature.sh b/bottom_bar/plugins/temperature.sh new file mode 100755 index 0000000..63b469b --- /dev/null +++ b/bottom_bar/plugins/temperature.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +TEMP=$(~/.config/sketchybar/plugins/temp_sensor) + +# The item invoking this script (name $NAME) will get its icon and label +# updated with the current battery status +bottom_bar --set $NAME icon= label="${TEMP}°" diff --git a/bottom_bar/plugins/temperature.sh~ b/bottom_bar/plugins/temperature.sh~ new file mode 100755 index 0000000..150d605 --- /dev/null +++ b/bottom_bar/plugins/temperature.sh~ @@ -0,0 +1,7 @@ +#!/bin/sh + +TEMP=$(~/.config/sketchybar/plugins/temp_sensor) + +# The item invoking this script (name $NAME) will get its icon and label +# updated with the current battery status +sketchybar --set $NAME icon= label="${TEMP}°" diff --git a/bottom_bar/plugins/volume.sh b/bottom_bar/plugins/volume.sh new file mode 100755 index 0000000..96df9f8 --- /dev/null +++ b/bottom_bar/plugins/volume.sh @@ -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 + + bottom_bar --set $NAME icon="$ICON" label="$VOLUME%" +fi diff --git a/bottom_bar/plugins/volume.sh~ b/bottom_bar/plugins/volume.sh~ new file mode 100755 index 0000000..0c9c1b0 --- /dev/null +++ b/bottom_bar/plugins/volume.sh~ @@ -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 diff --git a/bottom_bar/plugins/wifi.sh b/bottom_bar/plugins/wifi.sh new file mode 100755 index 0000000..4a721dc --- /dev/null +++ b/bottom_bar/plugins/wifi.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env sh + +CURRENT_WIFI="$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I)" +SSID="$(echo "$CURRENT_WIFI" | grep -o "SSID: .*" | sed 's/^SSID: //')" + + +if [ "$SSID" = "" ]; then + bottom_bar --set $NAME icon=󰤮 label="DISC" +else + bottom_bar --set $NAME icon= label="CONN" +fi diff --git a/bottom_bar/plugins/wifi.sh~ b/bottom_bar/plugins/wifi.sh~ new file mode 100755 index 0000000..bff433b --- /dev/null +++ b/bottom_bar/plugins/wifi.sh~ @@ -0,0 +1,11 @@ +#!/usr/bin/env sh + +CURRENT_WIFI="$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I)" +SSID="$(echo "$CURRENT_WIFI" | grep -o "SSID: .*" | sed 's/^SSID: //')" + + +if [ "$SSID" = "" ]; then + sketchybar --set $NAME icon=󰤮 label="DISC" +else + sketchybar --set $NAME icon= label="CONN" +fi diff --git a/bottom_bar/sketchybarrc b/bottom_bar/sketchybarrc new file mode 100755 index 0000000..8618d90 --- /dev/null +++ b/bottom_bar/sketchybarrc @@ -0,0 +1,104 @@ +# This is a demo config to show some of the most important commands more easily. +# This is meant to be changed and configured, as it is intentionally kept sparse. +# For a more advanced configuration example see my dotfiles: +# https://github.com/FelixKratz/dotfiles +CONFIG_DIR="/Users/federico/.config/bottom_bar" +PLUGIN_DIR="$CONFIG_DIR/plugins" + +##### Bar Appearance ##### +# Configuring the general appearance of the bar, these are only some of the +# options available. For all options see: +# https://felixkratz.github.io/SketchyBar/config/bar +# If you are looking for other colors, see the color picker: +# https://felixkratz.github.io/SketchyBar/config/tricks#color-picker + +bottom_bar --bar height=28 \ + position=bottom \ + sticky=off \ + padding_left=10 \ + padding_right=10 \ + color=0x15ffffff + + + + +##### Changing Defaults ##### +# We now change some default values that are applied to all further items +# For a full list of all available item properties see: +# https://felixkratz.github.io/SketchyBar/config/items + +bottom_bar --default icon.font="Hack Nerd Font:Bold:17.0" \ + icon.color=0xffffffff \ + label.font="Hack Nerd Font:Regular:14.0" \ + label.color=0xffffffff \ + padding_left=5 \ + padding_right=5 \ + label.padding_left=4 \ + label.padding_right=4 \ + icon.padding_left=4 \ + icon.padding_right=4 + + + +##### Adding Mission Control Space Indicators ##### +# Now we 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)) + bottom_bar --add space space.$sid left \ + --set space.$sid space=$sid \ + icon=${SPACE_ICONS[i]} \ + icon.font="Hack Nerd Font:Regular:17.0" \ + background.color=0x44ffffff \ + background.height=20 \ + background.drawing=off \ + label.drawing=off \ + script="$PLUGIN_DIR/space.sh" \ + click_script="yabai -m space --focus $sid" +done + + + +##### Adding Right Items ##### +# In the same way as the left items we can add items to the right side. +# Additional position (e.g. center) are available, see: +# https://felixkratz.github.io/SketchyBar/config/items#adding-items-to-sketchybar + +# Some items refresh on a fixed cycle, e.g. the clock runs its script once +# every 10s. Other items respond to events they subscribe to, e.g. the +# volume.sh script is only executed once an actual change in system audio +# volume is registered. More info about the event system can be found here: +# https://felixkratz.github.io/SketchyBar/config/events + +bottom_bar --add item clock right \ + --set clock update_freq=10 \ + icon= \ + script="$PLUGIN_DIR/clock.sh" \ + \ + --add item volume right \ + --set volume script="$PLUGIN_DIR/volume.sh" \ + --subscribe volume volume_change \ + \ + --add item battery right \ + --set battery script="$PLUGIN_DIR/battery.sh" \ + update_freq=120 \ + --subscribe battery system_woke power_source_change \ + --add item temp right \ + --set temp script="$PLUGIN_DIR/temperature.sh" \ + update_freq=10 \ + --add item wifi right \ + --set wifi script="$PLUGIN_DIR/wifi.sh" \ + --subscribe wifi wifi_change \ + --add item cpu right \ + --set cpu script="$PLUGIN_DIR/cpu.sh" \ + update_freq=10 \ +##### Finalizing Setup ##### +# The below command is only needed at the end of the initial configuration to +# force all scripts to run the first time, it should never be run in an item script. + +bottom_bar --update diff --git a/sketchybar/sketchybarrc~ b/bottom_bar/sketchybarrc~ similarity index 72% rename from sketchybar/sketchybarrc~ rename to bottom_bar/sketchybarrc~ index 64663e6..0a91c26 100755 --- a/sketchybar/sketchybarrc~ +++ b/bottom_bar/sketchybarrc~ @@ -2,7 +2,7 @@ # This is meant to be changed and configured, as it is intentionally kept sparse. # For a more advanced configuration example see my dotfiles: # https://github.com/FelixKratz/dotfiles -CONFIG_DIR="/Users/federico/.config/sketchybar" +CONFIG_DIR="/Users/federico/.config/bottom_bar" PLUGIN_DIR="$CONFIG_DIR/plugins" ##### Bar Appearance ##### @@ -12,21 +12,24 @@ PLUGIN_DIR="$CONFIG_DIR/plugins" # If you are looking for other colors, see the color picker: # https://felixkratz.github.io/SketchyBar/config/tricks#color-picker -sketchybar --bar height=32 \ - position=top \ +bottom_bar --bar height=28 \ + position=bottom \ sticky=off \ padding_left=10 \ padding_right=10 \ color=0x15ffffff + + + ##### Changing Defaults ##### # We now change some default values that are applied to all further items # For a full list of all available item properties see: # https://felixkratz.github.io/SketchyBar/config/items -sketchybar --default icon.font="Hack Nerd Font:Bold:17.0" \ +bottom_bar --default icon.font="Hack Nerd Font:Bold:17.0" \ icon.color=0xffffffff \ - label.font="Hack Nerd Font:Bold:14.0" \ + label.font="Hack Nerd Font:Regular:14.0" \ label.color=0xffffffff \ padding_left=5 \ padding_right=5 \ @@ -35,6 +38,8 @@ sketchybar --default icon.font="Hack Nerd Font:Bold:17.0" \ icon.padding_left=4 \ icon.padding_right=4 + + ##### Adding Mission Control Space Indicators ##### # Now we add some mission control spaces: # https://felixkratz.github.io/SketchyBar/config/components#space----associate-mission-control-spaces-with-an-item @@ -45,32 +50,18 @@ SPACE_ICONS=("1" "2" "3" "4" "5" "6" "7" "8" "9" "10") for i in "${!SPACE_ICONS[@]}" do sid=$(($i+1)) - sketchybar --add space space.$sid left \ + bottom_bar --add space space.$sid left \ --set space.$sid space=$sid \ icon=${SPACE_ICONS[i]} \ background.color=0x44ffffff \ - background.corner_radius=5 \ - background.height=20 \ + background.height=20 \ background.drawing=off \ label.drawing=off \ script="$PLUGIN_DIR/space.sh" \ click_script="yabai -m space --focus $sid" done -##### Adding Left Items ##### -# We add some regular items to the left side of the bar -# only the properties deviating from the current defaults need to be set -sketchybar --add item space_separator left \ - --set space_separator icon= \ - padding_left=10 \ - padding_right=10 \ - label.drawing=off \ - \ - --add item front_app left \ - --set front_app script="$PLUGIN_DIR/front_app.sh" \ - icon.drawing=off \ - --subscribe front_app front_app_switched ##### Adding Right Items ##### # In the same way as the left items we can add items to the right side. @@ -83,7 +74,7 @@ sketchybar --add item space_separator left \ # volume is registered. More info about the event system can be found here: # https://felixkratz.github.io/SketchyBar/config/events -sketchybar --add item clock right \ +bottom_bar --add item clock right \ --set clock update_freq=10 \ icon= \ script="$PLUGIN_DIR/clock.sh" \ @@ -95,10 +86,18 @@ sketchybar --add item clock right \ --add item battery right \ --set battery script="$PLUGIN_DIR/battery.sh" \ update_freq=120 \ - --subscribe battery system_woke power_source_change - + --subscribe battery system_woke power_source_change \ + --add item temp right \ + --set temp script="$PLUGIN_DIR/temperature.sh" \ + update_freq=10 \ + --add item wifi right \ + --set wifi script="$PLUGIN_DIR/wifi.sh" \ + --subscribe wifi wifi_change \ + --add item cpu right \ + --set cpu script="$PLUGIN_DIR/cpu.sh" \ + update_freq=10 \ ##### Finalizing Setup ##### # The below command is only needed at the end of the initial configuration to # force all scripts to run the first time, it should never be run in an item script. -sketchybar --update +bottom_bar --update diff --git a/sketchybar/plugins/cpu.sh b/sketchybar/plugins/cpu.sh new file mode 100755 index 0000000..2264857 --- /dev/null +++ b/sketchybar/plugins/cpu.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cpu_percent=$(top -l 2 | grep -E "^CPU" | tail -1 | awk '{ print $3 + $5"%" }') + +sketchybar --set $NAME icon=󰍛 label="${cpu_percent}" + + diff --git a/sketchybar/plugins/memory.sh b/sketchybar/plugins/memory.sh new file mode 100755 index 0000000..bbf812d --- /dev/null +++ b/sketchybar/plugins/memory.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +MEMORY=$(memory_pressure | tail -n 1 | awk '{print $5}') + +sketchybar --set $NAME icon=󰍛 label="${MEMORY}" diff --git a/sketchybar/plugins/temp_sensor b/sketchybar/plugins/temp_sensor new file mode 100755 index 0000000000000000000000000000000000000000..39ba8233b5f36cc16ac9856cc147a51085a0d541 GIT binary patch literal 52712 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 A2mk;8 literal 0 HcmV?d00001 diff --git a/sketchybar/plugins/temperature.sh b/sketchybar/plugins/temperature.sh index d29768b..150d605 100755 --- a/sketchybar/plugins/temperature.sh +++ b/sketchybar/plugins/temperature.sh @@ -1,28 +1,7 @@ #!/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 +TEMP=$(~/.config/sketchybar/plugins/temp_sensor) # 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}%" +sketchybar --set $NAME icon= label="${TEMP}°" diff --git a/sketchybar/plugins/wifi.sh b/sketchybar/plugins/wifi.sh new file mode 100755 index 0000000..bff433b --- /dev/null +++ b/sketchybar/plugins/wifi.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env sh + +CURRENT_WIFI="$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -I)" +SSID="$(echo "$CURRENT_WIFI" | grep -o "SSID: .*" | sed 's/^SSID: //')" + + +if [ "$SSID" = "" ]; then + sketchybar --set $NAME icon=󰤮 label="DISC" +else + sketchybar --set $NAME icon= label="CONN" +fi diff --git a/sketchybar/plugins/windows.py b/sketchybar/plugins/windows.py new file mode 100755 index 0000000..d26ec2a --- /dev/null +++ b/sketchybar/plugins/windows.py @@ -0,0 +1,48 @@ +#!/opt/homebrew/bin/python3 + +import os +import json + +def get_current_space_index(): + space_obj = json.loads(os.popen("yabai -m query --spaces --space").read()) + return space_obj["index"] + +def get_space_windows(idx): + windows_obj = json.loads(os.popen("yabai -m query --windows --space "+str(idx)).read()) + return windows_obj + +def clear_sketchybar_items_string(): + bar_obj = json.loads(os.popen("sketchybar --query bar").read()) + bar_items = bar_obj["items"] + cmd = "" + for item in bar_items: + if item == "window_handler": + continue + cmd+=" --remove "+item + return cmd + + +def add_sketchybar_items(windows): + cmd = "sketchybar " + clear_sketchybar_items_string() + for i,w in enumerate(windows): + title = (w["title"][:28] + '..') if len(w["title"]) > 30 else w["title"] + cmd+=" --add item window_"+str(i)+" left" + cmd+=" --set window_"+str(i)+" label='"+title+"'" + cmd+=" click_script='yabai -m window --focus "+str(w["id"])+"'" + if w["has-focus"]: + cmd+=" label.color=0xff7ed321" + os.system(cmd) + + + + + +idx=get_current_space_index() +windows = get_space_windows(idx) +#windows = sorted(windows,key=lambda x: x["id"]) + +print("---") +add_sketchybar_items(windows) +print("---") + + diff --git a/sketchybar/sketchybarrc b/sketchybar/sketchybarrc index 7839df5..7c2948d 100755 --- a/sketchybar/sketchybarrc +++ b/sketchybar/sketchybarrc @@ -26,79 +26,30 @@ sketchybar --bar height=28 \ sketchybar --default icon.font="Hack Nerd Font:Bold:17.0" \ icon.color=0xffffffff \ - label.font="Hack Nerd Font:Bold:14.0" \ + label.font="Hack Nerd Font:Regular:14.0" \ label.color=0xffffffff \ - padding_left=5 \ padding_right=5 \ + padding_left=5 \ label.padding_left=4 \ label.padding_right=4 \ icon.padding_left=4 \ icon.padding_right=4 -##### Adding Mission Control Space Indicators ##### -# Now we 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)) - sketchybar --add space space.$sid left \ - --set space.$sid space=$sid \ - icon=${SPACE_ICONS[i]} \ - background.color=0x44ffffff \ - background.corner_radius=5 \ - background.height=20 \ - background.drawing=off \ - label.drawing=off \ - script="$PLUGIN_DIR/space.sh" \ - click_script="yabai -m space --focus $sid" -done + + + ##### Adding Left Items ##### # We add some regular items to the left side of the bar # only the properties deviating from the current defaults need to be set -sketchybar --add item space_separator left \ - --set space_separator icon= \ - padding_left=10 \ - padding_right=10 \ - label.drawing=off \ - \ - --add item front_app left \ - --set front_app script="$PLUGIN_DIR/front_app.sh" \ +sketchybar --add item window_handler left \ + --set window_handler script="$PLUGIN_DIR/windows.py" \ icon.drawing=off \ - --subscribe front_app front_app_switched + --subscribe window_handler front_app_switched space_windows_change space_change display_change -##### Adding Right Items ##### -# In the same way as the left items we can add items to the right side. -# Additional position (e.g. center) are available, see: -# https://felixkratz.github.io/SketchyBar/config/items#adding-items-to-sketchybar -# Some items refresh on a fixed cycle, e.g. the clock runs its script once -# every 10s. Other items respond to events they subscribe to, e.g. the -# volume.sh script is only executed once an actual change in system audio -# volume is registered. More info about the event system can be found here: -# https://felixkratz.github.io/SketchyBar/config/events - -sketchybar --add item clock right \ - --set clock update_freq=10 \ - icon= \ - script="$PLUGIN_DIR/clock.sh" \ - \ - --add item volume right \ - --set volume script="$PLUGIN_DIR/volume.sh" \ - --subscribe volume volume_change \ - \ - --add item battery right \ - --set battery script="$PLUGIN_DIR/battery.sh" \ - update_freq=120 \ - --subscribe battery system_woke power_source_change - -##### Finalizing Setup ##### -# The below command is only needed at the end of the initial configuration to -# force all scripts to run the first time, it should never be run in an item script. sketchybar --update