diff options
Diffstat (limited to 'experiments')
| -rw-r--r-- | experiments/volume/utils.lua | 1 | ||||
| -rw-r--r-- | experiments/volume/volume.lua | 19 | ||||
| -rw-r--r-- | experiments/volume/widgets/arc-widget.lua (renamed from experiments/volume/arc-widget.lua) | 4 | ||||
| -rw-r--r-- | experiments/volume/widgets/icon-and-text-widget.lua (renamed from experiments/volume/icon-and-text-widget.lua) | 1 | ||||
| -rw-r--r-- | experiments/volume/widgets/icon-widget.lua | 35 | 
5 files changed, 53 insertions, 7 deletions
| diff --git a/experiments/volume/utils.lua b/experiments/volume/utils.lua index 02742ec..dcaeb84 100644 --- a/experiments/volume/utils.lua +++ b/experiments/volume/utils.lua @@ -99,7 +99,6 @@ function utils.extract_sinks_and_sources(pacmd_output)              ports[key] = t[2]          end      end -    print(json.encode(sources))      return sinks, sources  end diff --git a/experiments/volume/volume.lua b/experiments/volume/volume.lua index 2e9bc18..9110a45 100644 --- a/experiments/volume/volume.lua +++ b/experiments/volume/volume.lua @@ -14,8 +14,6 @@ local gears = require("gears")  local beautiful = require("beautiful")  local watch = require("awful.widget.watch")  local utils = require("awesome-wm-widgets.experiments.volume.utils") -local arc_widget = require("awesome-wm-widgets.experiments.volume.arc-widget") -local icon_and_text_widget = require("awesome-wm-widgets.experiments.volume.icon-and-text-widget")  local LIST_DEVICES_CMD = [[sh -c "pacmd list-sinks; pacmd list-sources"]] @@ -25,6 +23,12 @@ local DEC_VOLUME_CMD = 'amixer -q -D pulse sset Master 5%-'  local TOG_VOLUME_CMD = 'amixer -q -D pulse sset Master toggle' +local widget_types = { +    icon_and_text = require("awesome-wm-widgets.experiments.volume.widgets.icon-and-text-widget"), +    icon = require("awesome-wm-widgets.experiments.volume.widgets.icon-widget"), +    arc = require("awesome-wm-widgets.experiments.volume.widgets.arc-widget") +} +  local volume_widget = wibox.widget{}  local rows  = { layout = wibox.layout.fixed.vertical } @@ -156,8 +160,15 @@ end  local function worker(args) -    volume_widget = arc_widget.get_widget() -    -- volume_widget = icon_and_text_widget.get_widget() +    local args = args or {} + +    local widget_type = args.widget_type + +    if widget_types[widget_type] == nil then +        volume_widget = widget_types['icon_and_text'].get_widget() +    else +        volume_widget = widget_types[widget_type].get_widget() +    end      volume_widget:buttons(              awful.util.table.join( diff --git a/experiments/volume/arc-widget.lua b/experiments/volume/widgets/arc-widget.lua index 85cc20a..d7a3b1f 100644 --- a/experiments/volume/arc-widget.lua +++ b/experiments/volume/widgets/arc-widget.lua @@ -1,6 +1,8 @@  local wibox = require("wibox")  local beautiful = require('beautiful') +local ICON_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/' +  local widget = {}  function widget.get_widget() @@ -8,7 +10,7 @@ function widget.get_widget()      return wibox.widget {          {              id = "icon", -            image = '/usr/share/icons/Arc/status/symbolic/audio-volume-muted-symbolic.svg', +            image = ICON_DIR .. 'audio-volume-high-symbolic.svg',              resize = true,              widget = wibox.widget.imagebox,          }, diff --git a/experiments/volume/icon-and-text-widget.lua b/experiments/volume/widgets/icon-and-text-widget.lua index 929d32d..5ea626b 100644 --- a/experiments/volume/icon-and-text-widget.lua +++ b/experiments/volume/widgets/icon-and-text-widget.lua @@ -10,7 +10,6 @@ function widget.get_widget()          {              {                  id = "icon", -                image = '/usr/share/icons/Arc/status/symbolic/audio-volume-muted-symbolic.svg',                  resize = false,                  widget = wibox.widget.imagebox,              }, diff --git a/experiments/volume/widgets/icon-widget.lua b/experiments/volume/widgets/icon-widget.lua new file mode 100644 index 0000000..6725e6d --- /dev/null +++ b/experiments/volume/widgets/icon-widget.lua @@ -0,0 +1,35 @@ +local wibox = require("wibox") + +local widget = {} + +local WIDGET_DIR = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/experiments/volume/icons/' + +function widget.get_widget() + +    return wibox.widget { +        { +            id = "icon", +            resize = false, +            widget = wibox.widget.imagebox, +        }, +        valign = 'center', +        layout = wibox.container.place, +        set_volume_level = function(self, new_value) +            local new_value_num = tonumber(new_value) +            local volume_icon_name = '' +            if (new_value_num >= 0 and new_value_num < 33) then +                volume_icon_name="audio-volume-low-symbolic" +            elseif (new_value_num < 66) then +                volume_icon_name="audio-volume-medium-symbolic" +            else +                volume_icon_name="audio-volume-high-symbolic" +            end +            self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. volume_icon_name .. '.svg') +        end, +        mute = function(self) self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. 'audio-volume-muted-symbolic.svg') end, +        unmute = function() end, +    } + +end + +return widget
\ No newline at end of file | 
