@ -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 |