mirobouma / MusicControl

Spotify music control plugin for https://github.com/SteamDeckHomebrew/decky-loader
MIT License
21 stars 3 forks source link

Lack of Information #2

Closed OdinVex closed 2 years ago

OdinVex commented 2 years ago

More information in-app would be nice to display, such as “supported players/protocols: ...”. I prefer Rhythmbox non-flatcrap (I hate sandboxing), myself.

mirobouma commented 2 years ago

The reason that there is not a specific list of players it because it should support any running app, that you can launch through gamemode, that implements MPRIS. I'm pretty new to linux so I haven't tested anything besides flatpaks, but feel free to try non-flatpak rythmbox and see if it works (It should automatically detect any media player that has MPRIS in the dbus). Altough it would be nice to have some more details in the plugin itself, I would rather not bloat the already-full plugin tab. If in the future decky would add something like a info button from decky-loaders side that we can implement, I can take a look at making some more detailed notes

mirobouma commented 2 years ago

Hmm on second thought, i can add a small text explanation if there is no connected player yet like so: 20220822115658_1 Will include it in a next release

OdinVex commented 2 years ago

The reason that there is not a specific list of players it because it should support any running app, that you can launch through gamemode, that implements MPRIS. I'm pretty new to linux so I haven't tested anything besides flatpaks, but feel free to try non-flatpak rythmbox and see if it works (It should automatically detect any media player that has MPRIS in the dbus). Altough it would be nice to have some more details in the plugin itself, I would rather not bloat the already-full plugin tab. If in the future decky would add something like a info button from decky-loaders side that we can implement, I can take a look at making some more detailed notes

Any app that supports MPRIS, yes. Not immediately obvious from the Plugin description or in-app information, it can be disorienting for other users. Plenty of Reddit posts of non-Linux users borking their Steam Deck, trying to do things with them. As for myself, Steam Deck and Rhythmbox don't get along and because of Gnome's stupid as **** approach of CSDs, there isn't any close button or menu options to close, so Rhythmbox is entirely unusable on the Steam Deck unless you use the Steam Menu to close it. The plugin tab could simply use one tiny button with a question mark to show a message about how everything works. Perhaps you could launch detected players in the background instead of relying on gamemode to launch. It's entirely unclear to me (someone that does kernel work) how I could use a media player and other game at the same time. I'm currently looking for three things: Music & Video Players that supports a library and an option to play from those libraries in the background (in the case of video in the background, it'd just be the audio stream alone). Maybe change “MusicControl” to “Music Control” in any user-read text.

mirobouma commented 2 years ago

Launching detected players in the background is a possibility, but not all of them implement mpris correctly, or react to the play button unless you manually select a song first. I can look into improving the plugin description as well. Steams implementation of multiple apps running can be a bit wonky but for now you just have to start your media app (if it even works, granted you switch to a mouse simulation control scheme). I have something in the works that can detect installed flatpaks (yes, sorry its flatpaks again), and add a button to start/stop them in the background, but those app ids would probably have to be hardcoded as there is no way to know they implement MPRIS without having them started yet. An example that works well is spotify as it populates the last played song and immediately allows for MPRIS control (granted you logged in before in desktop mode), but other apps (eg. Strawberry) do not.

About the package name, MusicControl, I chose that due to decky having issues with names with spaces during development popping up twice with both spacing and no spacing, so i'm just sticking to MusicControl.

I could make space for something like an info button in the header of the tab, but unfortunately at the time of writing this, decky has that stuff hardcoded 🥴

I will consider your requests but I might not get to them as i'm working on this in my spare time.

OdinVex commented 2 years ago

About the package name, MusicControl, I chose that due to decky having issues with names with spaces during development popping up twice with both spacing and no spacing, so i'm just sticking to MusicControl.

I meant using a space in the title, such as what is shown, not in the actual file/code names.

I could make space for something like an info button in the header of the tab, but unfortunately at the time of writing this, decky has that stuff hardcoded

A button at the bottom for help/info/tips? At least during this stage of development, it might help some.

I will consider your requests but I might not get to them as i'm working on this in my spare time.

It's all good. :)

mirobouma commented 2 years ago

About the package name, MusicControl, I chose that due to decky having issues with names with spaces during development popping up twice with both spacing and no spacing, so i'm just sticking to MusicControl.

I meant using a space in the title, such as what is shown, not in the actual file/code names.

Yeah unfortunately this is hardcoded to the plugin name in the plugin.json which is also tied to a bunch of different functionality. If i could modify the title alone I would add a space there :)

A button at the bottom for help/info/tips? At least during this stage of development, it might help some.

Will consider how i can integrate this in the best way

mirobouma commented 2 years ago

v1.1.1 will have a dedicated info/usage/troubleshooting section when clicking an info button, its still in PR but will get merged sometime soon. Will close this issue for now unless new info is required after v1.1.1

OdinVex commented 2 years ago

I did try ... Flatpak Rhythmbox. Played a song, kept flickering detection of what was going on. As if there was a timer set for 10ms detecting Rhythmbox and then not detecting it, all controls kept acting as if detected and then not detected, looping.

mirobouma commented 2 years ago

Flickering detection was something that went wrong with if the MPRIS interface would not report any values in the meta data, but as a valid meta data object, i believe this was already fixed in 1.1.0

OdinVex commented 2 years ago

Flickering detection was something that went wrong with if the MPRIS interface would not report any values in the meta data, but as a valid meta data object, i believe this was already fixed in 1.1.0

The songs being played had complete metadata, Picard-level. I'm also certain it was on 1.1.0. Tried just now, no interface update for MusicControl, detects Rhythmbox, but isn't catching the MPRIS or something (thinks not playing).

Edit: I let it play for about a minute, then the interface seemed to catch up. Edit: Now it's skipping around on the trackbar.

OdinVex commented 2 years ago

On a side note, beautiful update with 1.1.1. :)

mirobouma commented 2 years ago

I didn't seem to repro the issue of the flickering media player detection in Rythmbox, but it was very difficult for me to even get Rythmbox to work properly in game mode without freezing.