45 lines
1.1 KiB
Lua
45 lines
1.1 KiB
Lua
local naughty = require("naughty")
|
|
local wibox = require("wibox")
|
|
local awful = require("awful")
|
|
local su = require('su')
|
|
|
|
local ret = {}
|
|
|
|
local function try_noop()
|
|
|
|
awful.spawn.easy_async_with_shell('sleep 2s && music-client noop', function(stdout, stderr, reason, code)
|
|
|
|
if code == 1 then
|
|
try_noop()
|
|
elseif code == 0 then
|
|
ret.execute_command('noop')
|
|
end
|
|
end);
|
|
|
|
end
|
|
|
|
ret.execute_command = function(command, arg)
|
|
|
|
awful.spawn.easy_async({'music-client', command, arg}, function(stdout, stderr, reason, code)
|
|
|
|
local active_command =
|
|
su.starts_with(command, 'file') or
|
|
su.starts_with(command, 'next') or
|
|
su.starts_with(command, 'previous')
|
|
|
|
local start_server_command = active_command or
|
|
su.starts_with(command, 'play') or
|
|
su.starts_with(command, 'pause')
|
|
|
|
if code ~= 0 then
|
|
-- Start the server and re-exec the command
|
|
awful.spawn.easy_async({'music-server', 'command', command, arg}, function(stdout, stderr, reason, code)
|
|
end)
|
|
end
|
|
|
|
end)
|
|
|
|
end
|
|
|
|
return ret
|