Add sound to waybar on FreeBSD.

This commit is contained in:
Tom Alexander 2022-11-13 16:39:34 -05:00
parent 0a49fc16b6
commit d8049e932d
Signed by: talexander
GPG Key ID: D3A179C9A53C0EDE
5 changed files with 68 additions and 25 deletions

View File

@ -2,29 +2,29 @@
vars: vars:
ansible_become: True ansible_become: True
roles: roles:
# - sudo - sudo
- users - users
# - package_manager - package_manager
# - zrepl - zrepl
# - zsh - zsh
# - network - network
# - sshd - sshd
# - base - base
# - firewall - firewall
# - cpu - cpu
# - ntp - ntp
# - build - build
# - graphics - graphics
# - gpg - gpg
# - fonts - fonts
# - alacritty - alacritty
# - sway - sway
# - emacs - emacs
# - firefox - firefox
# - devfs - devfs
# - ssh_client - ssh_client
- jail - jail
# - fuse - fuse
# - autofs - autofs
# - exfat - exfat
- bhyve - bhyve

View File

@ -53,6 +53,7 @@
#custom-available_memory, #custom-available_memory,
#custom-battery, #custom-battery,
#custom-clock, #custom-clock,
#custom-sound,
#idle_inhibitor, #idle_inhibitor,
#memory, #memory,
#mode, #mode,

View File

@ -1,7 +1,7 @@
{ {
// "height": 10, // Waybar height (to be removed for auto height) // "height": 10, // Waybar height (to be removed for auto height)
"modules-left": ["sway/workspaces", "sway/mode"], "modules-left": ["sway/workspaces", "sway/mode"],
"modules-right": ["custom/available_memory", "custom/battery", "idle_inhibitor", "custom/clock", "tray"], "modules-right": ["custom/sound", "custom/available_memory", "custom/battery", "idle_inhibitor", "custom/clock", "tray"],
"sway/workspaces": { "sway/workspaces": {
"disable-scroll": true "disable-scroll": true
}, },
@ -33,6 +33,10 @@
"exec": "waybar_custom_available_memory", "exec": "waybar_custom_available_memory",
"return-type": "json", "return-type": "json",
"restart-interval": 30 "restart-interval": 30
},
"custom/sound": {
"exec": "waybar_custom_sound",
"return-type": "json",
"restart-interval": 30
} }
} }

View File

@ -0,0 +1,36 @@
#!/usr/bin/env bash
#
# Read volume status in FreeBSD
set -euo pipefail
IFS=$'\n\t'
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SLEEP_INTERVAL=${SLEEP_INTERVAL:-30}
while true; do
current_vol_mixer=$(mixer -S vol)
vol_left=$(cut -d ':' -f 2 <<<"$current_vol_mixer")
vol_right=$(cut -d ':' -f 3 <<<"$current_vol_mixer")
avg_vol=$(((vol_left + vol_right) / 2))
tooltip="<tt>$(mixer)</tt>"
class=""
icon=""
if [ $avg_vol -eq 0 ]; then
icon="🔇"
elif [ $avg_vol -le 50 ]; then
icon="🔉"
else
icon="🔊"
fi
jq --unbuffered --compact-output <<EOF
{
"text":"${avg_vol}% ${icon}",
"tooltip":"${tooltip//$'\n'/\\n}",
"percentage":${avg_vol},
"class":"${class}"
}
EOF
sleep $SLEEP_INTERVAL
done

View File

@ -51,3 +51,5 @@
dest: /usr/local/bin/waybar_custom_battery dest: /usr/local/bin/waybar_custom_battery
- src: waybar_available_memory_freebsd.bash - src: waybar_available_memory_freebsd.bash
dest: /usr/local/bin/waybar_custom_available_memory dest: /usr/local/bin/waybar_custom_available_memory
- src: waybar_sound_freebsd.bash
dest: /usr/local/bin/waybar_custom_sound