Open musjj opened 1 year ago
I made a minimal reproduction:
local gears = require("gears")
local lgi = require("lgi")
local wibox = require("wibox")
local widget = wibox.widget.textbox()
local Playerctl = lgi.Playerctl
gears.timer.delayed_call(function()
local manager = Playerctl.PlayerManager()
function manager:on_name_appeared(name)
local player = Playerctl.Player.new_from_name(name)
manager:manage_player(player)
function player:on_metadata(metadata)
if self:get_title() then
widget:set_text(self:get_artist() .. " – " .. self:get_title())
else
widget:set_text("-")
end
end
function player:on_playback_status()
if self:get_title() then
widget:set_text(self:get_artist() .. " – " .. self:get_title())
else
widget:set_text("-")
end
end
widget:connect_signal("button::press", function() player:play_pause() end)
end
end)
It seems that the issue only happens when you use Playerctl.PlayerManager
. If you use Playerctl.Player
directly, the issue no longer occurs. This is probably an upstream issue, but the repo has not been active for almost 2 years now...
EDIT: Oops sorry. I thought we were in the Awesome repository. Feel free to dismiss my comment.
Hello @musjj,
This issue sounds unrelated to Awesome.
LGI (https://github.com/lgi-devs/lgi) is a Lua binding to GObject based libraries. It can be used independently from Awesome. So you could try to make the minimal example be a simple script.
Also, when reporting issues, stack strace/error messages/logs are useful to understand what's going on.
No worries, that's actually helpful. This time, AwesomeWM didn't crash, but the player still took a long time to launch. So I looked at AwesomeWM's stderr and I found this:
2023-08-24 15:13:52 W: awesome: a_glib_poll:477: Last main loop iteration took
25.012281 seconds! Increasing limit for this warning to that value.
It looks like it got stuck in a loop somewhere? This might be an AwesomeWM issue, rather than playerctl
, but I'm not so sure.
This error basically means that something blocked the Awesome process for a long period of time. It is problematic because while Awesome is blocked, the computer feels frozen to the user.
I guess the something blocking Awesome is the Payerctl stuff, but I also can't guarantee it's that. 🤷
The error disappears if I remove the playerctl
part. So I guess either lgi
or playerctl
is the culprit here.
When you have the
mpris
plugin installed onmpv
and aplayerctl
signal active in the background, trying to open a video withmpv
will freeze and crash AwesomeWM.To reproduce:
mpris
plugin (https://github.com/hoyon/mpv-mpris)playerctl
signal in your configmpv