From dbee6f75f727b68092890d814d24b84136363e75 Mon Sep 17 00:00:00 2001 From: blix4 Date: Tue, 27 Aug 2019 00:20:08 -0700 Subject: [PATCH] volume widget support amixer with no device specified This works on my setup without having pulseaudio installed. --- secrets.lua | 3 +++ volume-widget/README.md | 25 +++++++++++++++++++++++++ volume-widget/volume.lua | 19 ++++++++++++++----- 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/secrets.lua b/secrets.lua index 381f04d..5e3b988 100644 --- a/secrets.lua +++ b/secrets.lua @@ -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', diff --git a/volume-widget/README.md b/volume-widget/README.md index 118abc6..494be24 100644 --- a/volume-widget/README.md +++ b/volume-widget/README.md @@ -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. diff --git a/volume-widget/volume.lua b/volume-widget/volume.lua index 8124bcf..04f1c26 100644 --- a/volume-widget/volume.lua +++ b/volume-widget/volume.lua @@ -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 \ No newline at end of file +return volume_widget