Multiples fixes:
* [volume: Use '/usr/bin/env bash' as shebang](cd182fd4f2 (diff-210ab9e731c9c36c2c38db15c28a8d1c)
) On some systems (e.g. NixOS, openBSD) Bash isn't located or symlinked at `/bin/bash`. This change ensures that the correct path is used across different operating systems. * [volume: add LABEL support](be3f4ae715 (diff-210ab9e731c9c36c2c38db15c28a8d1c)
) * [volume: use injected properties](50b2b6ee53 (diff-210ab9e731c9c36c2c38db15c28a8d1c)
) See #132 * [volume: pulse-detection: explicitly try the "pulse" device](777a056cce (diff-210ab9e731c9c36c2c38db15c28a8d1c)
) Because it's available on some systems (for which pulse is the right option), but not the default, so `amixer info` will not give the right result. When this command succeeds, there is no more need to check the output. Additionally removed a wrong test bracket (not neccessary and not working for all bash versions). * [volume: don't check for pulse via lsmod but command](67dba4fca9 (diff-210ab9e731c9c36c2c38db15c28a8d1c)
) - check if command `pulseaudio` exists - check if pulse is running - in the case that pulse is detected, still check if the mixer name "pulse" exists - instruction for manual setting in README Fixes vivien/i3blocks#236 Fixes vivien/i3blocks#201 Fixes: vivien/i3blocks#281 * [volume: allow device names to include numbers](1b3efc6e44 (diff-210ab9e731c9c36c2c38db15c28a8d1c)
): Fixes: vivien/i3blocks#281
This commit is contained in:
parent
440d46fcc0
commit
c6a2d62411
7
config
7
config
@ -225,9 +225,10 @@ exec --no-startup-id conky
|
|||||||
# exec --no-startup-id aarchup
|
# exec --no-startup-id aarchup
|
||||||
|
|
||||||
# Pulse Audio controls
|
# Pulse Audio controls
|
||||||
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q -D pulse sset Master 5%+; exec pkill -SIGRTMIN+10 i3blocks #increase sound volume
|
exec --no-startup-id pulseaudio --start
|
||||||
bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q -D pulse sset Master 5%-; exec pkill -SIGRTMIN+10 i3blocks #decrease sound volume
|
bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -q -D pulse sset Master 5%+ && pkill -SIGRTMIN+10 i3blocks #increase sound volume
|
||||||
bindsym XF86AudioMute exec --no-startup-id amixer -q -D pulse sset Master toggle; exec pkill -SIGRTMIN+10 i3blocks # mute sound
|
bindsym XF86AudioLowerVolume exec --no-startup-id amixer -q -D pulse sset Master 5%- && pkill -SIGRTMIN+10 i3blocks #decrease sound volume
|
||||||
|
bindsym XF86AudioMute exec --no-startup-id amixer -q -D pulse sset Master toggle && pkill -SIGRTMIN+10 i3blocks # mute sound
|
||||||
|
|
||||||
# Enable devices USB
|
# Enable devices USB
|
||||||
# bindsym $mod+m exec --no-startup-id "udisksctl mount -b /dev/sdb1"
|
# bindsym $mod+m exec --no-startup-id "udisksctl mount -b /dev/sdb1"
|
||||||
|
@ -47,11 +47,12 @@ signal=10
|
|||||||
[volume]
|
[volume]
|
||||||
#label=VOL
|
#label=VOL
|
||||||
label=♪
|
label=♪
|
||||||
instance=Master
|
|
||||||
# instance=PCM
|
|
||||||
# interval=once
|
# interval=once
|
||||||
interval=5
|
interval=5
|
||||||
signal=10
|
signal=10
|
||||||
|
#STEP=5%
|
||||||
|
#MIXER=[determined automatically]
|
||||||
|
#SCONTROL=[determined automatically]
|
||||||
|
|
||||||
# Memory usage
|
# Memory usage
|
||||||
#
|
#
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/usr/bin/env bash
|
||||||
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
|
# Copyright (C) 2014 Julien Bonjean <julien@bonjean.info>
|
||||||
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
|
# Copyright (C) 2014 Alexander Keller <github@nycroth.com>
|
||||||
|
|
||||||
@ -18,26 +18,37 @@
|
|||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
# The second parameter overrides the mixer selection
|
# The second parameter overrides the mixer selection
|
||||||
# For PulseAudio users, use "pulse"
|
# For PulseAudio users, eventually use "pulse"
|
||||||
# For Jack/Jack2 users, use "jackplug"
|
# For Jack/Jack2 users, use "jackplug"
|
||||||
# For ALSA users, you may use "default" for your primary card
|
# For ALSA users, you may use "default" for your primary card
|
||||||
# or you may use hw:# where # is the number of the card desired
|
# or you may use hw:# where # is the number of the card desired
|
||||||
MIXER="default"
|
if [[ -z "$MIXER" ]] ; then
|
||||||
[ -n "$(lsmod | grep pulse)" ] && MIXER="pulse"
|
MIXER="default"
|
||||||
[ -n "$(lsmod | grep jack)" ] && MIXER="jackplug"
|
if command -v pulseaudio >/dev/null 2>&1 && pulseaudio --check ; then
|
||||||
MIXER="${2:-$MIXER}"
|
# pulseaudio is running, but not all installations use "pulse"
|
||||||
|
if amixer -D pulse info >/dev/null 2>&1 ; then
|
||||||
|
MIXER="pulse"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
[ -n "$(lsmod | grep jack)" ] && MIXER="jackplug"
|
||||||
|
MIXER="${2:-$MIXER}"
|
||||||
|
fi
|
||||||
|
|
||||||
# The instance option sets the control to report and configure
|
# The instance option sets the control to report and configure
|
||||||
# This defaults to the first control of your selected mixer
|
# This defaults to the first control of your selected mixer
|
||||||
# For a list of the available, use `amixer -D $Your_Mixer scontrols`
|
# For a list of the available, use `amixer -D $Your_Mixer scontrols`
|
||||||
SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols |
|
if [[ -z "$SCONTROL" ]] ; then
|
||||||
sed -n "s/Simple mixer control '\([A-Za-z ]*\)',0/\1/p" |
|
SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols |
|
||||||
head -n1
|
sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" |
|
||||||
)}"
|
head -n1
|
||||||
|
)}"
|
||||||
|
fi
|
||||||
|
|
||||||
# The first parameter sets the step to change the volume by (and units to display)
|
# The first parameter sets the step to change the volume by (and units to display)
|
||||||
# This may be in in % or dB (eg. 5% or 3dB)
|
# This may be in in % or dB (eg. 5% or 3dB)
|
||||||
STEP="${1:-5%}"
|
if [[ -z "$STEP" ]] ; then
|
||||||
|
STEP="${1:-5%}"
|
||||||
|
fi
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -51,12 +62,14 @@ volume() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
format() {
|
format() {
|
||||||
|
|
||||||
perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)'
|
perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)'
|
||||||
perl_filter+='{CORE::say $4 eq "off" ? "MUTE" : "'
|
perl_filter+='{CORE::say $4 eq "off" ? "MUTE" : "'
|
||||||
# If dB was selected, print that instead
|
# If dB was selected, print that instead
|
||||||
perl_filter+=$([[ $STEP = *dB ]] && echo '$3' || echo '$1')
|
perl_filter+=$([[ $STEP = *dB ]] && echo '$3' || echo '$1')
|
||||||
perl_filter+='"; exit}'
|
perl_filter+='"; exit}'
|
||||||
perl -ne "$perl_filter"
|
output=$(perl -ne "$perl_filter")
|
||||||
|
echo "$LABEL$output"
|
||||||
}
|
}
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user