summaryrefslogtreecommitdiff
path: root/.config/sway/status.sh
diff options
context:
space:
mode:
Diffstat (limited to '.config/sway/status.sh')
-rwxr-xr-x.config/sway/status.sh51
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