@ -0,0 +1,34 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function to show the master volume of ALSA | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: alsa-utils | |||||
dwm_alsa () { | |||||
VOL=$(amixer get Master | tail -n1 | sed -r "s/.*\[(.*)%\].*/\1/") | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
if [ "$VOL" -eq 0 ]; then | |||||
printf "[🔇 %s]\n" "$VOL]\n" | |||||
elif [ "$VOL" -gt 0 ] && [ "$VOL" -le 33 ]; then | |||||
printf "[🔈 %s]\n" "$VOL" | |||||
elif [ "$VOL" -gt 33 ] && [ "$VOL" -le 66 ]; then | |||||
printf "[🔉 %s]\n" "$VOL" | |||||
else | |||||
printf "[🔊 %s]\n" "$VOL" | |||||
fi | |||||
else | |||||
if [ "$VOL" -eq 0 ]; then | |||||
printf "[VOL %s]\n" "$VOL]\n" | |||||
elif [ "$VOL" -gt 0 ] && [ "$VOL" -le 33 ]; then | |||||
printf "[VOL %s]\n" "$VOL" | |||||
elif [ "$VOL" -gt 33 ] && [ "$VOL" -le 66 ]; then | |||||
printf "[VOL %s]\n" "$VOL" | |||||
else | |||||
printf "[VOL %s]\n" "$VOL" | |||||
fi | |||||
fi | |||||
} | |||||
dwm_alsa |
@ -0,0 +1,51 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function that shows the current artist, track, position, duration, and status from cmus | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: cmus | |||||
dwm_cmus () { | |||||
if ps -C cmus > /dev/null; then | |||||
ARTIST=$(cmus-remote -Q | grep -a '^tag artist' | awk '{gsub("tag artist ", "");print}') | |||||
TRACK=$(cmus-remote -Q | grep -a '^tag title' | awk '{gsub("tag title ", "");print}') | |||||
POSITION=$(cmus-remote -Q | grep -a '^position' | awk '{gsub("position ", "");print}') | |||||
DURATION=$(cmus-remote -Q | grep -a '^duration' | awk '{gsub("duration ", "");print}') | |||||
STATUS=$(cmus-remote -Q | grep -a '^status' | awk '{gsub("status ", "");print}') | |||||
SHUFFLE=$(cmus-remote -Q | grep -a '^set shuffle' | awk '{gsub("set shuffle ", "");print}') | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
if [ "$STATUS" = "playing" ]; then | |||||
STATUS="▶" | |||||
else | |||||
STATUS="⏸" | |||||
fi | |||||
if [ "$SHUFFLE" = "true" ]; then | |||||
SHUFFLE=" 🔀" | |||||
else | |||||
SHUFFLE="" | |||||
fi | |||||
else | |||||
if [ "$STATUS" = "playing" ]; then | |||||
STATUS="PLA" | |||||
else | |||||
STATUS="PAU" | |||||
fi | |||||
if [ "$SHUFFLE" = "true" ]; then | |||||
SHUFFLE=" S" | |||||
else | |||||
SHUFFLE="" | |||||
fi | |||||
fi | |||||
printf "[%s %s - %s " "$STATUS" "$ARTIST" "$TRACK" | |||||
printf "%0d:%02d/" $((POSITION%3600/60)) $((POSITION%60)) | |||||
printf "%0d:%02d" $((DURATION%3600/60)) $((DURATION%60)) | |||||
printf "%s]\n" "$SHUFFLE" | |||||
fi | |||||
} | |||||
dwm_cmus |
@ -0,0 +1,23 @@ | |||||
#!/bin/sh | |||||
# A dwm_status function that displays the status of countdown.sh | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: https://github.com/joestandring/countdown | |||||
dwm_countdown () { | |||||
for f in /tmp/countdown.*; do | |||||
if [ -e "$f" ]; then | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
printf "[⏳ %s]\n" "$(tail -1 /tmp/countdown.*)" | |||||
else | |||||
printf "[CDN %s]\n" "$(tail -1 /tmp/countdown.*)" | |||||
fi | |||||
break | |||||
fi | |||||
done | |||||
} | |||||
dwm_countdown |
@ -0,0 +1,16 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function that shows the current date and time | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Date is formatted like like this: "[Mon 01-01-00 00:00:00]" | |||||
dwm_date () { | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
printf "[📆 %s]\n" "$(date "+%a %d-%m-%y %T")" | |||||
else | |||||
printf "[DAT %s]\n" "$(date "+%a %d-%m-%y %T")" | |||||
fi | |||||
} | |||||
dwm_date |
@ -0,0 +1,17 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function that displays the current keyboard layout | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: xorg-setxkbmap | |||||
dwm_keyboard () { | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
printf "[⌨ %s]\n" "$(setxkbmap -query | awk '/layout/{print $2}')" | |||||
else | |||||
printf "[KEY %s]\n" "$(setxkbmap -query | awk '/layout/{print $2}')" | |||||
fi | |||||
} | |||||
dwm_keyboard |
@ -0,0 +1,23 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function to display the number of emails in an inbox | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# To count mail in an inbox, change "/path/to/inbox" below to the location of your inbox. For example, "/home/$USER/.mail/new" | |||||
dwm_mail () { | |||||
MAILBOX=$(ls /path/to/inbox | wc -l) | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
if [ "$MAILBOX" -eq 0 ]; then | |||||
printf "[📪 %s]\n" "$MAILBOX" | |||||
else | |||||
printf "[📫 %s]\n" "$MAILBOX" | |||||
fi | |||||
else | |||||
printf "[MAI %s]\n" "$MAILBOX" | |||||
fi | |||||
} | |||||
dwm_mail |
@ -0,0 +1,21 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function to show the current network connection, private IP, and public IP | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: NetworkManager, curl | |||||
dwm_network () { | |||||
CONNAME=$(nmcli -a | grep 'Wired connection' | awk 'NR==1{print $1}') | |||||
PRIVATE=$(nmcli -a | grep 'inet4 192' | awk '{print $2}') | |||||
PUBLIC=$(curl -s https://ipinfo.io/ip) | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
printf "[🌐 %s %s | %s]\n" "$CONNAME" "$PRIVATE" "$PUBLIC" | |||||
else | |||||
printf "[NET %s %s | %s]\n" "$CONNAME" "$PRIVATE" "$PUBLIC" | |||||
fi | |||||
} | |||||
dwm_network |
@ -0,0 +1,34 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function to show the master volume of PulseAudio | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: pamixer | |||||
dwm_pulse () { | |||||
VOL=$(pamixer --get-volume) | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
if [ "$VOL" -eq 0 ]; then | |||||
printf "[🔇 %s]\n" "$VOL]\n" | |||||
elif [ "$VOL" -gt 0 ] && [ "$VOL" -le 33 ]; then | |||||
printf "[🔈 %s]\n" "$VOL" | |||||
elif [ "$VOL" -gt 33 ] && [ "$VOL" -le 66 ]; then | |||||
printf "[🔉 %s]\n" "$VOL" | |||||
else | |||||
printf "[🔊 %s]\n" "$VOL" | |||||
fi | |||||
else | |||||
if [ "$VOL" -eq 0 ]; then | |||||
printf "[VOL %s]\n" "$VOL]\n" | |||||
elif [ "$VOL" -gt 0 ] && [ "$VOL" -le 33 ]; then | |||||
printf "[VOL %s]\n" "$VOL" | |||||
elif [ "$VOL" -gt 33 ] && [ "$VOL" -le 66 ]; then | |||||
printf "[VOL %s]\n" "$VOL" | |||||
else | |||||
printf "[VOL %s]\n" "$VOL" | |||||
fi | |||||
fi | |||||
} | |||||
dwm_pulse |
@ -0,0 +1,25 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function to display information regarding system memory, CPU temperature, and storage | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
dwm_resources () { | |||||
# Used and total memory | |||||
MEMUSED=$(free -h | awk '(NR == 2) {print $3}') | |||||
MEMTOT=$(free -h |awk '(NR == 2) {print $2}') | |||||
# CPU temperature | |||||
CPU=$(sysctl -n hw.sensors.cpu0.temp0 | cut -d. -f1) | |||||
# Used and total storage in /home (rounded to 1024B) | |||||
STOUSED=$(df -h | grep '/home$' | awk '{print $3}') | |||||
STOTOT=$(df -h | grep '/home$' | awk '{print $2}') | |||||
STOPER=$(df -h | grep '/home$' | awk '{print $5}') | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
printf "[💻 MEM %s/%s CPU %s STO %s/%s: %s]\n" "$MEMUSED" "$MEMTOT" "$CPU" "$STOUSED" "$STOTOT" "$STOPER" | |||||
else | |||||
printf "[STA | MEM %s/%s CPU %s STO %s/%s: %s]\n" "$MEMUSED" "$MEMTOT" "$CPU" "$STOUSED" "$STOTOT" "$STOPER" | |||||
fi | |||||
} | |||||
dwm_resources |
@ -0,0 +1,23 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function to show VPN connections (if any are active) | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: NetworkManager-openvpn | |||||
dwm_vpn () { | |||||
VPN=$(nmcli -a | grep 'VPN connection' | sed -e 's/\( VPN connection\)*$//g') | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
if [ "$VPN" != "" ]; then | |||||
printf "[🔒 %s]\n" "$VPN" | |||||
fi | |||||
else | |||||
if [ "$VPN" != "" ]; then | |||||
printf "[VPN %s]\n" "$VPN" | |||||
fi | |||||
fi | |||||
} | |||||
dwm_vpn |
@ -0,0 +1,19 @@ | |||||
#!/bin/sh | |||||
# A dwm_bar function to print the weather from wttr.in | |||||
# Joe Standring <git@joestandring.com> | |||||
# GNU GPLv3 | |||||
# Dependencies: curl | |||||
# Change the value of LOCATION to match your city | |||||
dwm_weather() { | |||||
LOCATION=city | |||||
if [ "$IDENTIFIER" = "unicode" ]; then | |||||
printf "[%s]\n" "$(curl -s wttr.in/$LOCATION?format=1)" | |||||
else | |||||
printf "[WEA %s]\n" "$(curl -s wttr.in/$LOCATION?format=1 | grep -o "[0-9].*")" | |||||
fi | |||||
} | |||||
dwm_weather |