Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

player-mpris-tail.py does not print icon-none on startup. #389

Open
takase1121 opened this issue Sep 17, 2022 · 4 comments
Open

player-mpris-tail.py does not print icon-none on startup. #389

takase1121 opened this issue Sep 17, 2022 · 4 comments

Comments

@takase1121
Copy link
Contributor

takase1121 commented Sep 17, 2022

The script doesn't display anything when no player is connected initially.
--icon-none will only be displayed after at least one player has connected and disconnected, as the code responsible for it is put in removePlayer().

I currently have this workaround to make it work:

--- /usr/share/polybar/scripts/player-mpris-tail.py	2022-09-16 13:04:47.000000000 +0800
+++ player-mpris-tail.py	2022-09-17 19:48:07.365836908 +0800
@@ -30,6 +30,8 @@
         self.connected = False
         self.player_states = {}
 
+        _printFlush(ICON_NONE)
+
         self.refreshPlayerList()
 
         if self._connect:

If this is the correct way, I can PR it.
If it's wrong and there's already some magical polybar way to do it, please point me to it.

@x70b1
Copy link
Member

x70b1 commented Sep 17, 2022

Thats the awesome work of @Cybolic.
Maybe he has an idea.

@Cybolic
Copy link
Contributor

Cybolic commented Sep 17, 2022

I need to clean up my local copy of this repo before I submit a PR, but does this solve the issue?

--- a/polybar-scripts/player-mpris-tail/player-mpris-tail.py
+++ b/polybar-scripts/player-mpris-tail/player-mpris-tail.py
@@ -138,7 +138,7 @@ class PlayerManager:
             if current_player != None:
                 _printFlush(self.player_states[current_player.bus_name])
             else:
-                _printFlush(ICON_STOPPED)
+                _printFlush(ICON_NONE)
         else:
             self.print_queue.append([status, player])

@takase1121
Copy link
Contributor Author

I need to clean up my local copy of this repo before I submit a PR, but does this solve the issue?

It does solve another kind of issue when the player stops and the stop icon is displayed instead of none, but that is not the issue I'm reporting.

My issue is that when the script starts up no players are around at all.
Try disabling all mpris clients on autostart and you'll probably see what I mean.
From what I can make sense from the code, glib main loop simply sits idly waiting for connections and before that nothing is printed.

@takase1121
Copy link
Contributor Author

demo.mp4

This is a demo with @Cybolic 's patch applied. As you can see, the status only starts rolling in after chromium has started playing. Before that, it's empty.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants