Initial Commit
This commit is contained in:
28
widget/volume/volume-slider.lua
Normal file
28
widget/volume/volume-slider.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
local wibox = require('wibox')
|
||||
local mat_list_item = require('widget.material.list-item')
|
||||
local mat_slider = require('widget.material.slider')
|
||||
local mat_icon_button = require('widget.material.icon-button')
|
||||
local icons = require('theme.icons')
|
||||
local watch = require('awful.widget.watch')
|
||||
local spawn = require('awful.spawn')
|
||||
|
||||
local slider = wibox.widget {read_only = false, widget = mat_slider}
|
||||
|
||||
slider:connect_signal('property::value', function()
|
||||
spawn('amixer -D pulse sset Master ' .. slider.value .. '%')
|
||||
end)
|
||||
|
||||
watch([[bash -c "amixer -D pulse sget Master"]], 1, function(_, stdout)
|
||||
local mute = string.match(stdout, '%[(o%D%D?)%]')
|
||||
local volume = string.match(stdout, '(%d?%d?%d)%%')
|
||||
slider:set_value(tonumber(volume))
|
||||
collectgarbage('collect')
|
||||
end)
|
||||
|
||||
local icon = wibox.widget {image = icons.volume, widget = wibox.widget.imagebox}
|
||||
|
||||
local button = mat_icon_button(icon)
|
||||
|
||||
local volume_setting = wibox.widget {button, slider, widget = mat_list_item}
|
||||
|
||||
return volume_setting
|
Reference in New Issue
Block a user