Fix music lua
This commit is contained in:
parent
edf1cd6989
commit
9a71f1ea5c
61
music.lua
61
music.lua
|
@ -4,28 +4,6 @@ local awful = require("awful")
|
||||||
local su = require('su')
|
local su = require('su')
|
||||||
|
|
||||||
local ret = {}
|
local ret = {}
|
||||||
ret.text_widget = wibox.widget.textbox()
|
|
||||||
ret.text_widget:set_align("right")
|
|
||||||
ret.text_widget.font = "Ubuntu Mono"
|
|
||||||
|
|
||||||
ret.icon_widget = wibox.widget.textbox()
|
|
||||||
ret.icon_widget:set_align("right")
|
|
||||||
ret.icon_widget.font = "Ubuntu Mono"
|
|
||||||
|
|
||||||
|
|
||||||
local icon = ""
|
|
||||||
local total_text = ""
|
|
||||||
local position = 1
|
|
||||||
local width = 30
|
|
||||||
local dots = 3
|
|
||||||
|
|
||||||
local function set_text(text)
|
|
||||||
total_text = text
|
|
||||||
|
|
||||||
if string.len(total_text) >= width then
|
|
||||||
position = math.floor((width - string.len(total_text)) / 2)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function try_noop()
|
local function try_noop()
|
||||||
|
|
||||||
|
@ -44,7 +22,6 @@ ret.execute_command = function(command, arg)
|
||||||
|
|
||||||
awful.spawn.easy_async({'music-client', command, arg}, function(stdout, stderr, reason, code)
|
awful.spawn.easy_async({'music-client', command, arg}, function(stdout, stderr, reason, code)
|
||||||
|
|
||||||
local text = su.split(stdout, '\n')
|
|
||||||
local active_command =
|
local active_command =
|
||||||
su.starts_with(command, 'file') or
|
su.starts_with(command, 'file') or
|
||||||
su.starts_with(command, 'next') or
|
su.starts_with(command, 'next') or
|
||||||
|
@ -54,50 +31,14 @@ ret.execute_command = function(command, arg)
|
||||||
su.starts_with(command, 'play') or
|
su.starts_with(command, 'play') or
|
||||||
su.starts_with(command, 'pause')
|
su.starts_with(command, 'pause')
|
||||||
|
|
||||||
if code == 0 then
|
if code ~= 0 then
|
||||||
|
|
||||||
if active_command then
|
|
||||||
set_text(text[1])
|
|
||||||
elseif su.starts_with(command, 'noop') then
|
|
||||||
total_text = text[1]
|
|
||||||
position = math.floor((width - string.len(total_text)) / 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
elseif start_server_command then
|
|
||||||
-- Start the server and re-exec the command
|
-- Start the server and re-exec the command
|
||||||
awful.spawn.easy_async({'music-server', 'command', command, arg}, function(stdout, stderr, reason, code)
|
awful.spawn.easy_async({'music-server', 'command', command, arg}, function(stdout, stderr, reason, code)
|
||||||
end)
|
end)
|
||||||
else
|
|
||||||
set_text('music-server not running')
|
|
||||||
end
|
|
||||||
|
|
||||||
if text[2] ~= nil then
|
|
||||||
icon = text[2]
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end)
|
end)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function update_widget()
|
|
||||||
ret.icon_widget:set_text(' ' .. icon .. ' ')
|
|
||||||
if string.len(total_text) < width then
|
|
||||||
ret.text_widget:set_text(' ' .. su.pad(total_text, width + 1, ' '))
|
|
||||||
else
|
|
||||||
local pos = math.min(position, string.len(total_text) - width)
|
|
||||||
pos = math.max(1, pos)
|
|
||||||
ret.text_widget:set_text(' ' .. string.sub(total_text, pos, pos + width))
|
|
||||||
position = position + 1
|
|
||||||
if position > string.len(total_text) then
|
|
||||||
position = math.floor((width - string.len(total_text)) / 2)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
ret.execute_command('noop')
|
|
||||||
|
|
||||||
ret.timer = timer({timeout=0.2})
|
|
||||||
ret.timer:connect_signal("timeout", update_widget)
|
|
||||||
ret.timer:start()
|
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
3
rc.lua
3
rc.lua
|
@ -274,9 +274,6 @@ awful.screen.connect_for_each_screen(function(s)
|
||||||
{ -- Right widgets
|
{ -- Right widgets
|
||||||
layout = wibox.layout.fixed.horizontal,
|
layout = wibox.layout.fixed.horizontal,
|
||||||
delimiter,
|
delimiter,
|
||||||
music.icon_widget,
|
|
||||||
music.text_widget,
|
|
||||||
delimiter,
|
|
||||||
email_widget.icon,
|
email_widget.icon,
|
||||||
delimiter2,
|
delimiter2,
|
||||||
email_widget.widget,
|
email_widget.widget,
|
||||||
|
|
Loading…
Reference in New Issue