diff options
Diffstat (limited to '.config/awesome/ui/statusbar/panel/widgets/music.lua')
-rw-r--r-- | .config/awesome/ui/statusbar/panel/widgets/music.lua | 187 |
1 files changed, 49 insertions, 138 deletions
diff --git a/.config/awesome/ui/statusbar/panel/widgets/music.lua b/.config/awesome/ui/statusbar/panel/widgets/music.lua index 3eedb55..eea7335 100644 --- a/.config/awesome/ui/statusbar/panel/widgets/music.lua +++ b/.config/awesome/ui/statusbar/panel/widgets/music.lua @@ -1,28 +1,10 @@ -local cairo = require "lgi".cairo -local gcolor = require "gears.color" -local gsurface = require "gears.surface" -local imagebox = require "ui.statusbar.panel.widgets.imagebox" -local phosphor = require "assets.phosphor" -local playerctl = require "services.playerctl" local qnative = require "quarrel.native" local qui = require "quarrel.ui" local qvars = require "quarrel.vars" local wibox = require "wibox" -local default_cover = phosphor.vinyl_record_fill local default_text = "Nothing playing" -local function faded_cover(cover) - local surface = gsurface(cover) - local w,h = gsurface.get_size(surface) - local cr = cairo.Context(surface) - local pattern = gcolor(qvars.colors.bg .. "aa") - cr:rectangle(0, 0, w, h) - cr:set_source(pattern) - cr:fill_preserve() - return surface -end - local w_title = wibox.widget { widget = wibox.widget.textbox, text = "Nothing playing", @@ -33,20 +15,8 @@ local w_artist = wibox.widget { fg = qvars.colors.dim.fg, { widget = wibox.widget.textbox, - text = "" - } -} - -local w_cover = wibox.widget { - widget = imagebox, - image = default_cover, - stylesheet = qui.recolor(qvars.colors.bright.black), - forced_height = qvars.char_height * 6 + qvars.big_padding * 2, - forced_width = qvars.expanded_bar_size - qvars.big_padding, - horizontal_fit_policy = "cover", - vertical_fit_policy = "cover", - valign = "center", - halign = "center" + text = "", + }, } local w_progress_bar = wibox.widget { @@ -54,100 +24,22 @@ local w_progress_bar = wibox.widget { max_value = 0, value = 0, forced_height = qvars.char_height / 2, - forced_width = qvars.expanded_bar_size - (qvars.big_padding + qvars.big_padding * 2 + qvars.padding * 2) - (qvars.char_height / 1.25 + qvars.padding) * 3, + forced_width = qvars.expanded_bar_size + - (qvars.big_padding + qvars.big_padding * 2 + qvars.padding * 2) + - (qvars.char_height / 1.25 + qvars.padding) * 3, color = qvars.colors.yellow, background_color = qvars.colors.black, shape = qvars.shape, } -local w_play_pause = qui.toggle { - widget = { - forced_height = qvars.char_height / 1.25, - forced_width = qvars.char_height / 1.25 - }, - off = phosphor.play_fill, - on = phosphor.pause_fill, - manual = true, - press = function() - playerctl:play_pause() - end -} - -local w_skip_forward = qui.button { - widget = { - forced_height = qvars.char_height / 1.25, - forced_width = qvars.char_height / 1.25 - }, - image = phosphor.skip_forward_fill, - press = function() - playerctl:next() - end -} - -local w_skip_back = qui.button { - widget = { - forced_height = qvars.char_height / 1.25, - forced_width = qvars.char_height / 1.25 - }, - image = phosphor.skip_back_fill, - press = function() - playerctl:previous() - end -} - local music = wibox.widget(qui.styled { widget = wibox.container.background, { + widget = wibox.container.margin, + margins = qvars.big_padding, { - widget = wibox.container.background, - bg = qvars.colors.black - }, - w_cover, - { - widget = wibox.container.margin, - margins = qvars.big_padding, { { - { - widget = wibox.container.background, - bg = qvars.colors.bg, - shape = qvars.shape, - { - widget = wibox.container.margin, - margins = qvars.padding, - { - { - widget = wibox.container.constraint, - width = qvars.expanded_bar_size - (qvars.big_padding + qvars.big_padding * 2 + qvars.padding * 2), - height = qvars.char_height, - { - widget = wibox.container.scroll.horizontal, - speed = 50, - step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth, - w_title - } - }, - { - widget = wibox.container.constraint, - width = qvars.expanded_bar_size - (qvars.big_padding + qvars.big_padding * 2 + qvars.padding * 2), - height = qvars.char_height, - { - widget = wibox.container.scroll.horizontal, - speed = 50, - step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth, - w_artist - } - }, - layout = wibox.layout.fixed.vertical - } - } - }, - nil, - nil, - layout = wibox.layout.align.horizontal - }, - nil, - { widget = wibox.container.background, bg = qvars.colors.bg, shape = qvars.shape, @@ -155,29 +47,53 @@ local music = wibox.widget(qui.styled { widget = wibox.container.margin, margins = qvars.padding, { - w_play_pause, - w_skip_back, { - widget = wibox.container.place, - w_progress_bar + widget = wibox.container.constraint, + width = qvars.expanded_bar_size + - (qvars.big_padding + qvars.big_padding * 2 + qvars.padding * 2), + height = qvars.char_height, + { + widget = wibox.container.scroll.horizontal, + speed = 50, + step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth, + w_title, + }, }, - w_skip_forward, - layout = wibox.layout.fixed.horizontal, - spacing = qvars.padding - } - } + { + widget = wibox.container.constraint, + width = qvars.expanded_bar_size + - (qvars.big_padding + qvars.big_padding * 2 + qvars.padding * 2), + height = qvars.char_height, + { + widget = wibox.container.scroll.horizontal, + speed = 50, + step_function = wibox.container.scroll.step_functions.waiting_nonlinear_back_and_forth, + w_artist, + }, + }, + layout = wibox.layout.fixed.vertical, + }, + }, }, - layout = wibox.layout.align.vertical - } + nil, + nil, + layout = wibox.layout.align.horizontal, + }, + nil, + { + widget = wibox.container.background, + bg = qvars.colors.bg, + shape = qvars.shape, + w_progress_bar, + }, + layout = wibox.layout.align.vertical, }, - layout = wibox.layout.stack - } + }, }) awesome.connect_signal("services::playerctl::metadata", function(title, artist, album_path) - w_title.text = title ~= "" and qnative.decode_html(title) or default_text - w_artist.widget.text = qnative.decode_html(artist) - w_cover.image = faded_cover(album_path) + w_title.text = title ~= "" and qnative.util.decode_html(title) or default_text + w_artist.widget.text = qnative.util.decode_html(artist) end) awesome.connect_signal("services::playerctl::position", function(position, length) @@ -186,15 +102,10 @@ awesome.connect_signal("services::playerctl::position", function(position, lengt end) awesome.connect_signal("services::playerctl::no_players", function() - w_title = default_text - w_artist = "" - w_cover.image = default_cover + w_title.text = default_text + w_artist.text = "" w_progress_bar.value = 0 w_progress_bar.max_value = 0 end) -awesome.connect_signal("services::playerctl::playback_status", function(playing) - w_play_pause:silent_press(playing) -end) - return music |