dotfiles/awes2/widget/music/init.lua

92 lines
1.8 KiB
Lua
Executable file

-- # #
-- ## ## # # #### # ####
-- # # # # # # # # # #
-- # # # # # #### # #
-- # # # # # # #
-- # # # # # # # # #
-- # # #### #### # ####
local gears = require('gears')
local awful = require('awful')
local wibox = require('wibox')
local dpi = require('beautiful').xresources.apply_dpi
local config_dir = gears.filesystem.get_configuration_dir()
local widget_icon_dir = config_dir .. 'widget/music/icons/'
local clickable_container = require('widget.clickable-container')
local music_box = require('widget.music.music-box')
local toggle_music_box = music_box.toggle_music_box
local return_button = function()
local widget = wibox.widget {
{
id = 'icon',
image = widget_icon_dir .. 'music' .. '.svg',
widget = wibox.widget.imagebox,
resize = true
},
layout = wibox.layout.align.horizontal
}
local widget_button = wibox.widget {
{
widget,
margins = dpi(7),
widget = wibox.container.margin
},
widget = clickable_container
}
local music_tooltip = awful.tooltip
{
objects = {widget_button},
text = 'None',
mode = 'outside',
margin_leftright = dpi(8),
margin_topbottom = dpi(8),
align = 'right',
preferred_positions = {'right', 'left', 'top', 'bottom'}
}
widget_button:buttons(
gears.table.join(
awful.button(
{},
1,
nil,
function()
music_tooltip.visible = false
awesome.emit_signal('widget::music', 'mouse')
end
)
)
)
widget_button:connect_signal(
"mouse::enter",
function()
awful.spawn.easy_async_with_shell(
'mpc status',
function(stdout)
music_tooltip.text = string.gsub(stdout, '\n$', '')
end
)
end
)
return widget_button
end
return return_button