diff options
Diffstat (limited to '.config/sway/status.sh')
-rwxr-xr-x | .config/sway/status.sh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/.config/sway/status.sh b/.config/sway/status.sh new file mode 100755 index 0000000..c15f498 --- /dev/null +++ b/.config/sway/status.sh @@ -0,0 +1,51 @@ +# The Sway configuration file in ~/.config/sway/config calls this script. +# You should see changes to the status bar after saving this script. +# If not, do "killall swaybar" and $mod+Shift+c to reload the configuration. + +# The abbreviated weekday (e.g., "Sat"), followed by the ISO-formatted date +# like 2018-10-06 and the time (e.g., 14:01). Check `man date` on how to format +# time and date. +date_formatted=$(date "+%a %F %I:%M") + +# "upower --enumerate | grep 'BAT'" gets the battery name (e.g., +# "/org/freedesktop/UPower/devices/battery_BAT0") from all power devices. +# "upower --show-info" prints battery information from which we get +# the state (such as "charging" or "fully-charged") and the battery's +# charge percentage. With awk, we cut away the column containing +# identifiers. i3 and sway convert the newline between battery state and +# the charge percentage automatically to a space, producing a result like +# "charging 59%" or "fully-charged 100%". +battery_info=$(upower --show-info $(upower --enumerate |\ +grep 'BAT') |\ +egrep "state|percentage" |\ +awk '{print $2}') + +# "amixer -M" gets the mapped volume for evaluating the percentage which +# is more natural to the human ear according to "man amixer". +# Column number 4 contains the current volume percentage in brackets, e.g., +# "[36%]". Column number 6 is "[off]" or "[on]" depending on whether sound +# is muted or not. +# "tr -d []" removes brackets around the volume. +# Adapted from https://bbs.archlinux.org/viewtopic.php?id=89648 +audio_volume=$(amixer -M get Master |\ +awk '/Mono.+/ {print $6=="[off]" ?\ +$4" 🔇": \ +$4" 🔉"}' |\ +tr -d []) + +# Network +ip_addr=$(ip route get 1.1.1.1 | head -1 | cut -d' ' -f7) +network=$(ip route get 1.1.1.1 | grep -Po '(?<=dev\s)\w+' | cut -f1 -d ' ') +# interface_easyname grabs the "old" interface name before systemd renamed it +interface_easyname=$(dmesg | grep $network | grep renamed | awk 'NF>1{print $NF}') +ping=$(ping -c 1 www.google.es | tail -1| awk '{print $4}' | cut -d '/' -f 2 | cut -d '.' -f 1) + +# CPU temp +cpu_temp=$(sensors | grep -oP 'Package.*?\+\K[0-9.]+') + +# Additional emojis and characters for the status bar: +# Electricity: ⚡ ↯ ⭍ 🔌 +# Audio: 🔈 🔊 🎧 🎶 🎵 🎤 +# Separators: \| ❘ ❙ ❚ +# Misc: 🐧 💎 💻 💡 ⭐ 📁 ↑ ↓ ✉ ✅ ❎ +echo $network $ip_addr \| $cpu_temp \| $battery_info 🔋 \| $date_formatted |