volume widget support amixer with no device specified

This works on my setup without having pulseaudio installed.
This commit is contained in:
blix4 2019-08-27 00:20:08 -07:00 committed by streetturtle
parent 7997625cdc
commit dbee6f75f7
3 changed files with 42 additions and 5 deletions

View File

@ -15,6 +15,9 @@ local function getenv_bool(var_name, default_val)
end
local secrets = {
-- See volume-widget/README.md
volume_audio_controller = os.getenv('AWW_VOLUME_CONTROLLER') or 'pulse', -- 'pulse' or 'alsa_only'
-- Yandex.Translate API key - https://tech.yandex.com/translate/
translate_widget_api_key = os.getenv('AWW_TRANSLATE_API_KEY') or 'API_KEY',

View File

@ -31,6 +31,31 @@ s.mytasklist, -- Middle widget
sudo sed -i 's/bebebe/ed4737/g' ./audio-volume-muted-symbolic_red.svg
```
### Pulse or ALSA only
Try running this command:
```amixer -D pulse sget Master```
If that prints something like this, then the default setting of 'pulse' is probably fine:
```
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 64
Mono: Playback 64 [100%] [0.00dB] [on]
```
If it prints something like this:
```
$ amixer -D pulse sget Master
ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused
amixer: Mixer attach pulse error: Connection refused
```
then try setting the environment variable `AWW_VOLUME_CONTROLLER` to `alsa_only`.
## Control volume
To mute/unmute click on the widget. To increase/decrease volume scroll up or down when mouse cursor is over the widget.

View File

@ -13,12 +13,21 @@ local wibox = require("wibox")
local watch = require("awful.widget.watch")
local spawn = require("awful.spawn")
local secrets = require("awesome-wm-widgets.secrets")
local path_to_icons = "/usr/share/icons/Arc/status/symbolic/"
local GET_VOLUME_CMD = 'amixer -D pulse sget Master'
local INC_VOLUME_CMD = 'amixer -D pulse sset Master 5%+'
local DEC_VOLUME_CMD = 'amixer -D pulse sset Master 5%-'
local TOG_VOLUME_CMD = 'amixer -D pulse sset Master toggle'
if secrets.volume_audio_controller == 'pulse' then
device_arg = '-D pulse'
else
device_arg = ''
end
local GET_VOLUME_CMD = 'amixer ' .. device_arg .. ' sget Master'
local INC_VOLUME_CMD = 'amixer ' .. device_arg .. ' sset Master 5%+'
local DEC_VOLUME_CMD = 'amixer ' .. device_arg .. ' sset Master 5%-'
local TOG_VOLUME_CMD = 'amixer ' .. device_arg .. ' sset Master toggle'
local volume_widget = wibox.widget {
{
@ -64,4 +73,4 @@ end)
watch(GET_VOLUME_CMD, 1, update_graphic, volume_widget)
return volume_widget
return volume_widget