Added music stuff
This commit is contained in:
parent
673279173d
commit
a431c4a257
|
@ -0,0 +1,107 @@
|
||||||
|
local naughty = require("naughty")
|
||||||
|
local wibox = require("wibox")
|
||||||
|
local awful = require("awful")
|
||||||
|
|
||||||
|
local ret = {}
|
||||||
|
ret.widget = wibox.widget.textbox()
|
||||||
|
ret.widget:set_align("right")
|
||||||
|
ret.widget.font = "Ubuntu Mono"
|
||||||
|
|
||||||
|
local total_text = ""
|
||||||
|
local position = 1
|
||||||
|
local width = 30
|
||||||
|
local dots = 3
|
||||||
|
|
||||||
|
local last_notification = nil
|
||||||
|
|
||||||
|
local function string_starts_with(String,Start)
|
||||||
|
return string.sub(String,1,string.len(Start))==Start
|
||||||
|
end
|
||||||
|
|
||||||
|
local function string_split(str, delimiter)
|
||||||
|
if str == nil then
|
||||||
|
return {}
|
||||||
|
end
|
||||||
|
local ret = {''}
|
||||||
|
count = 1
|
||||||
|
for i = 1, string.len(str) do
|
||||||
|
local c = str:sub(i,i)
|
||||||
|
if c == delimiter then
|
||||||
|
count = count + 1
|
||||||
|
ret[count] = ''
|
||||||
|
else
|
||||||
|
ret[count] = ret[count] .. c
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return ret
|
||||||
|
end
|
||||||
|
|
||||||
|
local function pad(str, len, char)
|
||||||
|
if char == nil then char = ' ' end
|
||||||
|
return str .. string.rep(char, len - #str)
|
||||||
|
end
|
||||||
|
|
||||||
|
local function set_text(text)
|
||||||
|
|
||||||
|
total_text = text[1]
|
||||||
|
|
||||||
|
if last_notification ~= nil then
|
||||||
|
naughty.destroy(last_notification)
|
||||||
|
end
|
||||||
|
|
||||||
|
if text[2] == nil then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
elts = string_split(text[1], '-')
|
||||||
|
artist = string.sub(elts[1], 1, -1)
|
||||||
|
album = string.sub(elts[2], 2, -1)
|
||||||
|
song = string.sub(elts[3], 2)
|
||||||
|
notification_text = '\n' .. album .. '\n' .. song .. '\n'
|
||||||
|
|
||||||
|
if string.len(total_text) >= width then
|
||||||
|
position = math.floor((width - string.len(total_text)) / 2)
|
||||||
|
end
|
||||||
|
|
||||||
|
update_widget()
|
||||||
|
end
|
||||||
|
|
||||||
|
ret.execute_command = function(command)
|
||||||
|
local fd = io.popen('music-client ' .. command)
|
||||||
|
local text = string_split(fd:read('*all'), '\n')
|
||||||
|
local rc = {fd:close()}
|
||||||
|
if rc[3] == 0 then
|
||||||
|
if string_starts_with(command, 'file') or string_starts_with(command, 'next') or string_starts_with(command, 'previous') then
|
||||||
|
set_text(text)
|
||||||
|
elseif string_starts_with(command, 'noop') then
|
||||||
|
total_text = text[1]
|
||||||
|
position = math.floor((width - string.len(total_text)) / 2)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
set_text({'music-server not running'})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function update_widget()
|
||||||
|
if string.len(total_text) < width then
|
||||||
|
ret.widget:set_text(pad(total_text, width, ' '))
|
||||||
|
else
|
||||||
|
local pos = math.min(position, string.len(total_text) - width)
|
||||||
|
pos = math.max(1, pos)
|
||||||
|
ret.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.widget.timer = timer({timeout=0.2})
|
||||||
|
ret.widget.timer:connect_signal("timeout", update_widget)
|
||||||
|
ret.widget.timer:start()
|
||||||
|
|
||||||
|
ret.widget = ret.widget
|
||||||
|
|
||||||
|
return ret
|
|
@ -18,6 +18,13 @@ home = os.getenv('HOME')
|
||||||
os.execute('xset m 16/1 0')
|
os.execute('xset m 16/1 0')
|
||||||
os.setlocale("fr_FR.UTF-8")
|
os.setlocale("fr_FR.UTF-8")
|
||||||
|
|
||||||
|
-- Set maximum size for notifactions
|
||||||
|
naughty.config.notify_callback = function(args)
|
||||||
|
if args.icon_size == nil or args.icon_size > 128 then
|
||||||
|
args.icon_size = 128
|
||||||
|
end
|
||||||
|
return args
|
||||||
|
end
|
||||||
-- awful.util.spawn_with_shell("xcompmgr -cF &")
|
-- awful.util.spawn_with_shell("xcompmgr -cF &")
|
||||||
|
|
||||||
naughty.config.presets.normal.bg = "#000000"
|
naughty.config.presets.normal.bg = "#000000"
|
||||||
|
@ -180,6 +187,7 @@ local battery = require('battery')
|
||||||
local volume = require('volume')
|
local volume = require('volume')
|
||||||
local calendar = require('calendar')
|
local calendar = require('calendar')
|
||||||
local launchbar = require('launchbar')
|
local launchbar = require('launchbar')
|
||||||
|
local music = require('music')
|
||||||
local delimiter = wibox.widget.textbox(" | ")
|
local delimiter = wibox.widget.textbox(" | ")
|
||||||
|
|
||||||
local function set_wallpaper(s)
|
local function set_wallpaper(s)
|
||||||
|
@ -238,6 +246,8 @@ 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.widget,
|
||||||
|
-- delimiter,
|
||||||
volume_widget,
|
volume_widget,
|
||||||
delimiter,
|
delimiter,
|
||||||
battery_widget,
|
battery_widget,
|
||||||
|
@ -388,23 +398,19 @@ globalkeys = awful.util.table.join(
|
||||||
end, {description = "Shutdown", group="custom"}),
|
end, {description = "Shutdown", group="custom"}),
|
||||||
|
|
||||||
awful.key({ }, "XF86AudioPlay", function()
|
awful.key({ }, "XF86AudioPlay", function()
|
||||||
awful.util.spawn("music-client play", false)
|
music.execute_command('play')
|
||||||
update_volume()
|
|
||||||
end, {description = "play or pause the current music", group="custom"}),
|
end, {description = "play or pause the current music", group="custom"}),
|
||||||
|
|
||||||
awful.key({ }, "XF86AudioStop", function()
|
awful.key({ }, "XF86AudioStop", function()
|
||||||
awful.util.spawn("music-client stop", false)
|
music.execute_command('stop')
|
||||||
update_volume()
|
|
||||||
end, {description = "stop the current music", group="custom"}),
|
end, {description = "stop the current music", group="custom"}),
|
||||||
|
|
||||||
awful.key({ }, "XF86AudioNext", function()
|
awful.key({ }, "XF86AudioNext", function()
|
||||||
awful.util.spawn("music-client next", false)
|
music.execute_command('next')
|
||||||
update_volume()
|
|
||||||
end, {description = "skip to the next music", group="custom"}),
|
end, {description = "skip to the next music", group="custom"}),
|
||||||
|
|
||||||
awful.key({ }, "XF86AudioPrev", function()
|
awful.key({ }, "XF86AudioPrev", function()
|
||||||
awful.util.spawn("music-client previous", false)
|
music.execute_command('previous')
|
||||||
update_volume()
|
|
||||||
end, {description = "skip to the previous music", group="custom"}),
|
end, {description = "skip to the previous music", group="custom"}),
|
||||||
|
|
||||||
awful.key({ }, "Print", function ()
|
awful.key({ }, "Print", function ()
|
||||||
|
|
Loading…
Reference in New Issue