mirror of
https://github.com/elenapan/dotfiles.git
synced 2026-01-25 09:37:14 +08:00
145 lines
4.2 KiB
Lua
145 lines
4.2 KiB
Lua
-- Text buttons for mpd control using "Material Design Icons" font
|
|
local gears = require("gears")
|
|
local awful = require("awful")
|
|
local wibox = require("wibox")
|
|
local helpers = require("helpers")
|
|
|
|
local mpd_prev_symbol = wibox.widget.textbox()
|
|
mpd_prev_symbol.markup = helpers.colorize_text("", x.foreground)
|
|
mpd_prev_symbol.font = "Material Icons Bold 18"
|
|
mpd_prev_symbol.align = "center"
|
|
mpd_prev_symbol.valign = "center"
|
|
local mpd_next_symbol = wibox.widget.textbox()
|
|
mpd_next_symbol.markup = helpers.colorize_text("", x.foreground)
|
|
mpd_next_symbol.font = "Material Icons Bold 18"
|
|
mpd_next_symbol.align = "center"
|
|
mpd_next_symbol.valign = "center"
|
|
|
|
local note_symbol = ""
|
|
local big_note = wibox.widget.textbox(note_symbol)
|
|
big_note.font = "Material Icons Bold 16"
|
|
big_note.align = "center"
|
|
local small_note = wibox.widget.textbox()
|
|
small_note.align = "center"
|
|
small_note.markup = helpers.colorize_text(note_symbol, x.foreground)
|
|
small_note.font = "Material Icons Bold 11"
|
|
-- small_note.valign = "bottom"
|
|
local double_note = wibox.widget {
|
|
big_note,
|
|
-- small_note,
|
|
{
|
|
small_note,
|
|
top = dpi(8),
|
|
widget = wibox.container.margin
|
|
},
|
|
spacing = dpi(-10),
|
|
layout = wibox.layout.fixed.horizontal
|
|
}
|
|
|
|
local mpd_toggle_icon = wibox.widget {
|
|
double_note,
|
|
-- bg = "#00000000",
|
|
widget = wibox.container.background
|
|
}
|
|
mpd_toggle_icon:buttons(gears.table.join(
|
|
awful.button({ }, 1, function ()
|
|
awful.spawn.with_shell("mpc -q toggle")
|
|
end),
|
|
awful.button({ }, 3, function ()
|
|
awful.spawn.with_shell("mpvc toggle")
|
|
end),
|
|
awful.button({ }, 8, function ()
|
|
sidebar.visible = false
|
|
awful.spawn.with_shell("~/scr/Rofi/rofi_mpdtube")
|
|
end),
|
|
awful.button({ }, 9, function ()
|
|
awful.spawn.with_shell("~/scr/info/mpd-query.sh")
|
|
end)
|
|
))
|
|
|
|
local mpd_prev_icon = wibox.widget {
|
|
mpd_prev_symbol,
|
|
shape = gears.shape.circle,
|
|
widget = wibox.container.background
|
|
}
|
|
mpd_prev_icon:buttons(gears.table.join(
|
|
awful.button({ }, 1, function ()
|
|
awful.spawn.with_shell("mpc -q prev")
|
|
end),
|
|
awful.button({ }, 3, function ()
|
|
awful.spawn.with_shell("mpdc prev")
|
|
end)
|
|
))
|
|
|
|
local mpd_next_icon = wibox.widget {
|
|
mpd_next_symbol,
|
|
shape = gears.shape.circle,
|
|
widget = wibox.container.background
|
|
}
|
|
mpd_next_icon:buttons(gears.table.join(
|
|
awful.button({ }, 1, function ()
|
|
awful.spawn.with_shell("mpc -q next")
|
|
end),
|
|
awful.button({ }, 3, function ()
|
|
awful.spawn.with_shell("mpdc next")
|
|
end)
|
|
))
|
|
|
|
local music_playing_counter = 0
|
|
local last_artist
|
|
local last_title
|
|
local music_playing_colors = {
|
|
x.color1,
|
|
x.color2,
|
|
x.color3,
|
|
x.color4,
|
|
x.color5,
|
|
x.color6,
|
|
}
|
|
local last_color = music_playing_colors[1]
|
|
|
|
awesome.connect_signal("evil::mpd", function(artist, title, paused)
|
|
local accent, small_note_color
|
|
if paused then
|
|
accent = x.foreground.."33"
|
|
small_note_color = x.foreground.."55"
|
|
else
|
|
if artist ~= last_artist and title ~= last_title then
|
|
accent = music_playing_colors[(music_playing_counter % #music_playing_colors) + 1]
|
|
music_playing_counter = music_playing_counter + 1
|
|
else
|
|
accent = last_color
|
|
end
|
|
last_artist = artist
|
|
last_title = title
|
|
last_color = accent
|
|
small_note_color = x.foreground
|
|
end
|
|
|
|
big_note.markup = helpers.colorize_text(note_symbol, accent)
|
|
small_note.markup = helpers.colorize_text(note_symbol, small_note_color)
|
|
-- mpd_prev_icon.bg = accent
|
|
-- mpd_next_icon.bg = accent
|
|
mpd_prev_symbol.markup = helpers.colorize_text(mpd_prev_symbol.text, accent)
|
|
mpd_next_symbol.markup = helpers.colorize_text(mpd_next_symbol.text, accent)
|
|
end)
|
|
|
|
local mpd_buttons = wibox.widget {
|
|
nil,
|
|
{
|
|
mpd_prev_icon,
|
|
mpd_toggle_icon,
|
|
mpd_next_icon,
|
|
spacing = dpi(14),
|
|
layout = wibox.layout.fixed.horizontal
|
|
},
|
|
expand = "none",
|
|
layout = wibox.layout.align.horizontal,
|
|
}
|
|
|
|
-- Add clickable mouse effects on some widgets
|
|
helpers.add_hover_cursor(mpd_next_icon, "hand1")
|
|
helpers.add_hover_cursor(mpd_prev_icon, "hand1")
|
|
helpers.add_hover_cursor(mpd_toggle_icon, "hand1")
|
|
|
|
return mpd_buttons
|