about summary refs log tree commit diff
path: root/.config/luastatus/playerctl.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/luastatus/playerctl.lua')
-rw-r--r--.config/luastatus/playerctl.lua43
1 files changed, 43 insertions, 0 deletions
diff --git a/.config/luastatus/playerctl.lua b/.config/luastatus/playerctl.lua
new file mode 100644
index 0000000..a3e743c
--- /dev/null
+++ b/.config/luastatus/playerctl.lua
@@ -0,0 +1,43 @@
+local player = 'jellyfin-tui'
+
+widget = {
+  plugin = 'timer',
+  opts = { period = 2 },
+  cb = function()
+
+    local handle = io.popen('playerctl -p ' .. player .. ' status')
+    local playerctl_status = string.sub(handle:read("*a"), 1, -2)
+    handle:close()
+
+    local symbol = '󰏤'
+
+    if (playerctl_status == 'Playing') or (playerctl_status == 'Paused') then
+      local handle = io.popen('playerctl -p ' .. player ..' metadata title')
+      local playerctl_title = string.sub(handle:read("*a"), 1, -2)
+      handle:close()
+
+      local handle = io.popen('playerctl -p ' .. player .. ' metadata artist')
+      local playerctl_artist = string.sub(handle:read("*a"), 1, -2)
+      handle:close()
+
+      if playerctl_status == 'Playing' then
+        symbol = '󰐊'
+      end
+
+      return {
+        { full_text = string.format('%s - %s %s', playerctl_artist, playerctl_title, symbol), color = "#f2cdcd" }
+      }
+    end
+
+    return {
+      { full_text = " "}
+    }
+  end,
+  -- TODO: Figure out if this can stop being hardcoded
+  event = [[
+        local t = ...
+        if t.button == 1 then
+            os.execute('playerctl -p jellyfin-tui play-pause')
+        end
+    ]],
+}