diff options
Diffstat (limited to 'home-config/waybar/custom_cmus.lua')
-rwxr-xr-x | home-config/waybar/custom_cmus.lua | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/home-config/waybar/custom_cmus.lua b/home-config/waybar/custom_cmus.lua deleted file mode 100755 index e7ee033..0000000 --- a/home-config/waybar/custom_cmus.lua +++ /dev/null @@ -1,58 +0,0 @@ -#!/usr/bin/env lua - -json = require("dkjson") -posix = require("posix") - -function htmlescape(s) - s = string.gsub(s, "&", "&") - s = string.gsub(s, "<", "<") - s = string.gsub(s, ">", ">") - return s -end - -function timefmt(n) - local s = n % 60 - local m = math.floor(n / 60) - return string.format("%d:%02d", m, s) -end - -function output(text, tooltip) - text = htmlescape(text) - tooltip = htmlescape(tooltip) - print(json.encode{text=text, tooltip=tooltip, class="custom-cmus"}) -end - -function getstat(status, name) - for _, line in ipairs(status) do - if string.match(line, "^" .. name) then - return string.sub(line, string.len(name)+2) - end - end -end - -while true do - local pipe = io.popen("cmus-remote -Q") - local status = {} - for line in pipe:lines() do - table.insert(status, line) - end - local success = pipe:close() - if not success then - output(" Not running", "Not running") - elseif getstat(status, "status") == "stopped" then - output(" Not running", "Not running") - else - local playing = getstat(status, "status") - local symbol = ({playing="", paused=""})[playing] - local title = getstat(status, "tag title") - local artist = getstat(status, "tag artist") - local duration = getstat(status, "duration") - local position = getstat(status, "position") - local text = string.format("%s %s (%s)", symbol, title, timefmt(position)) - local tooltip = string.format("%s - %s (%s / %s)", - artist, title, timefmt(position), timefmt(duration) - ) - output(text, tooltip) - end - posix.sleep(1) -end |