From 565f89818957daede9434b9734ffa3dc6cde602d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=B6rber?= Date: Tue, 31 Mar 2020 16:23:42 +0200 Subject: [PATCH] i3: Add microphone management to i3bar --- i3/i3status.conf.j2 | 15 +++++++++++++-- i3/scripts/pa-volume | 29 +++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/i3/i3status.conf.j2 b/i3/i3status.conf.j2 index 9fe995f..9089343 100644 --- a/i3/i3status.conf.j2 +++ b/i3/i3status.conf.j2 @@ -19,7 +19,8 @@ general { } -order += volume_status +order += "volume_status output" +order += "volume_status input" order += spotify order += "wifi" order += "external_script presentation_mode" @@ -73,7 +74,7 @@ online_status { format = " {icon} " } -volume_status { +volume_status output { cache_timeout = 10 format = "  {percentage}% " format_muted = "  mute " @@ -81,3 +82,13 @@ volume_status { command = "pactl" color_muted = '#FFFFFF' } + +volume_status input { + cache_timeout = 10 + format = "  active " + format_muted = "  mute " + thresholds = [(0, 'good'), (1, 'bad')] + command = "pactl" + color_muted = '#FFFFFF' + is_input = True +} diff --git a/i3/scripts/pa-volume b/i3/scripts/pa-volume index 974c448..96666a5 100755 --- a/i3/scripts/pa-volume +++ b/i3/scripts/pa-volume @@ -3,10 +3,15 @@ # name of the sink. execute pactl list sinks to get a list SINKNAME="$(pactl info | grep '^Default Sink:' | cut -d ' ' -f 3-)" +# name of the sink. execute pactl list sinks to get a list +SOURCENAME="$(pactl info | grep '^Default Source:' | cut -d ' ' -f 3-)" + #SINKNAME="alsa_output.usb-Logitech_Logitech_Wireless_Headset_88C626354D45-00.analog-stereo" # this is the worst SINK=$(( $(pactl list sinks | grep "Name: " | grep -n "${SINKNAME}"$ | grep -o "^[[:digit:]]*") -1)) +SOURCE=$(( $(pactl list sources | grep "Name: " | grep -n "${SOURCENAME}"$ | grep -o "^[[:digit:]]*") -1)) + getvol() { echo $(pactl list sinks | grep "^[[:space:]]*Volume" | head -n $(( $SINK + 1 )) | tail -n 1 | grep -o "[[:digit:]]*%" | head -n 1 | cut -d "%" -f 1) @@ -62,6 +67,10 @@ mute-toggle() { pactl set-sink-mute $SINKNAME toggle } +mute-toggle-mic() { + pactl set-source-mute $SOURCENAME toggle +} + status() { if [[ $(ismuted) == "1" ]] ; then echo "mute" @@ -77,8 +86,12 @@ usage() { echo "$0 set-vol VOL_PERC" } -update_status_bar() { - ~/.i3/scripts/bar-update volume_status +update_status_bar_sink() { + ~/.i3/scripts/bar-update "volume_status output" +} + +update_status_bar_source() { + ~/.i3/scripts/bar-update "volume_status input" } case "$1" in @@ -95,19 +108,23 @@ case "$1" in else setvol "$2" fi - update_status_bar + update_status_bar_sink ;; "mute") mute - update_status_bar + update_status_bar_sink ;; "unmute") unmute - update_status_bar + update_status_bar_sink ;; "mute-toggle") mute-toggle - update_status_bar + update_status_bar_sink + ;; + "mute-toggle-mic") + mute-toggle-mic + update_status_bar_source ;; "is-muted") echo $(ismuted)