From 2d7f01f035c0b475027f06bf43437cd9ec7a209b Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 12 Nov 2021 09:49:00 +0100 Subject: [PATCH 1/3] pkgs: change-audio: 0.1.1 -> 0.1.2 Show if volume is currently muted. --- pkgs/change-audio/change-audio | 8 +++++++- pkgs/change-audio/default.nix | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/pkgs/change-audio/change-audio b/pkgs/change-audio/change-audio index 22479d4..836e0c1 100755 --- a/pkgs/change-audio/change-audio +++ b/pkgs/change-audio/change-audio @@ -10,8 +10,14 @@ fi pamixer --allow-boost "$upDown" "$2" newVolume="$(pamixer --get-volume || true)" +[ "$(pamixer --get-volume-human)" = "muted" ] && isMuted=true + +MSG="Set volume to $newVolume%" +if [ "${isMuted:-false}" = true ]; then + MSG="$MSG (muted)" +fi notify-send -u low \ -h string:x-canonical-private-synchronous:change-audio \ -h "int:value:$newVolume" \ - -- "Set volume to $newVolume%" + -- "$MSG" diff --git a/pkgs/change-audio/default.nix b/pkgs/change-audio/default.nix index c931ee6..de050ff 100644 --- a/pkgs/change-audio/default.nix +++ b/pkgs/change-audio/default.nix @@ -1,7 +1,7 @@ { lib, libnotify, makeWrapper, pamixer, shellcheck, stdenvNoCC }: stdenvNoCC.mkDerivation rec { pname = "change-audio"; - version = "0.1.1"; + version = "0.1.2"; src = ./change-audio; From 119504d0b587e97ca6a2130b665b7cb6d9ba8c67 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 12 Nov 2021 10:17:39 +0100 Subject: [PATCH 2/3] pkgs: change-audio: 0.1.2 -> 0.2.0 Allow muting microphone and speakers, with refactor to make it DRY. --- pkgs/change-audio/change-audio | 71 ++++++++++++++++++++++++++-------- pkgs/change-audio/default.nix | 2 +- 2 files changed, 56 insertions(+), 17 deletions(-) diff --git a/pkgs/change-audio/change-audio b/pkgs/change-audio/change-audio index 836e0c1..5bb1588 100755 --- a/pkgs/change-audio/change-audio +++ b/pkgs/change-audio/change-audio @@ -2,22 +2,61 @@ set -euo pipefail -if [ "$1" = "up" ]; then - upDown="-i" -else - upDown="-d" -fi +NOTIFY=( + notify-send + -u low + -h string:x-canonical-private-synchronous:change-audio +) -pamixer --allow-boost "$upDown" "$2" -newVolume="$(pamixer --get-volume || true)" -[ "$(pamixer --get-volume-human)" = "muted" ] && isMuted=true +do_change_volume() { + if [ "$1" = "up" ]; then + upDown="-i" + else + upDown="-d" + fi -MSG="Set volume to $newVolume%" -if [ "${isMuted:-false}" = true ]; then - MSG="$MSG (muted)" -fi + pamixer --allow-boost "$upDown" "$2" + newVolume="$(pamixer --get-volume || true)" + [ "$(pamixer --get-volume-human)" = "muted" ] && isMuted=true -notify-send -u low \ - -h string:x-canonical-private-synchronous:change-audio \ - -h "int:value:$newVolume" \ - -- "$MSG" + MSG="Set volume to $newVolume%" + if [ "${isMuted:-false}" = true ]; then + MSG="$MSG (muted)" + fi + "${NOTIFY[@]}" \ + -h "int:value:$newVolume" \ + -- "$MSG" +} + +do_toggle() { + args=() + if [ "${2:-audio}" = mic ]; then + args+=(--default-source) + MSG="Toggled microphone" + else + MSG="Toggled audio output" + fi + + pamixer "${args[@]}" --toggle-mute + + if [ "$(pamixer "${args[@]}" --get-mute)" = true ]; then + MSG="$MSG (muted)" + else + MSG="$MSG (unmuted)" + fi + + "${NOTIFY[@]}" -- "$MSG" +} + +case "$1" in + up|down) + do_change_volume "$@" + ;; + toggle) + do_toggle "$@" + ;; + *) + echo "No suche option '$1'" >&2 + exit 1 + ;; +esac diff --git a/pkgs/change-audio/default.nix b/pkgs/change-audio/default.nix index de050ff..bf0f45c 100644 --- a/pkgs/change-audio/default.nix +++ b/pkgs/change-audio/default.nix @@ -1,7 +1,7 @@ { lib, libnotify, makeWrapper, pamixer, shellcheck, stdenvNoCC }: stdenvNoCC.mkDerivation rec { pname = "change-audio"; - version = "0.1.2"; + version = "0.2.0"; src = ./change-audio; From 6f643052e14c71ea6824593da2c6de01e2e0e206 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Fri, 12 Nov 2021 10:21:25 +0100 Subject: [PATCH 3/3] home: wm: i3: show notification on toggling mute --- home/wm/i3/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/home/wm/i3/default.nix b/home/wm/i3/default.nix index 4465bb0..9b1dd44 100644 --- a/home/wm/i3/default.nix +++ b/home/wm/i3/default.nix @@ -249,8 +249,8 @@ in "XF86AudioLowerVolume" = "exec --no-startup-id ${changeAudio} down 5"; "Control+XF86AudioRaiseVolume" = "exec --no-startup-id ${changeAudio} up 1"; "Control+XF86AudioLowerVolume" = "exec --no-startup-id ${changeAudio} down 1"; - "XF86AudioMute" = "exec pamixer --toggle-mute"; - "XF86AudioMicMute" = "exec pamixer --default-source --toggle-mute"; + "XF86AudioMute" = "exec --no-startup-id ${changeAudio} toggle"; + "XF86AudioMicMute" = "exec --no-startup-id ${changeAudio} toggle mic"; "XF86AudioPlay" = "exec playerctl play-pause"; "XF86AudioNext" = "exec playerctl next";