Plexamp - Linux & Tiling Window Managers


#1

I am loving Plexamp on Linux (more than I am loving it on macOS, since I can change audio sources manually).

A Plex supported audio player that has working media controls and HiDPI support in Linux

However, I have run into a hiccup: Tiling window managers.

Currently, it seems as Plexamp does not launch its application windows in "floating" mode by default, leading to views like:
tiling view
full album for your viewing pleasure

This view exposes a slew of bugs, however I am aware that your application is not designed to be viewed in that mode so I will not cover them. However, launching this way by default exposes users to a broken experience.

Currently, I am remedying this by manually "floating" the windows, however I do not think that is a long term solution.


#2

You can force plexamp to float by adding this to your i3 config:

for_window [class="plexamp" instance="plexamp"] floating enable

I don’t currently use i3 myself (ratpoison up in here) but it should work.


#3

Thanks! That is a much better short term remedy than what I’m doing.

However, regarding steps Plex should take to address the bug, I am under the impression that there should be a way for the application to declare that it is of the floating type.

Whether the bug’s fix is a priority or not is a different story, though.


#4

Got Plexamp floating by default with the following:
for_window [class="Plexamp"] floating enable
(note case sensitivity).

If anyone using i3 also wants to maintain the window across workspaces, you can place the following in addition to the command for floating:
for_window [class="Plexamp"] sticky enable


#5

If there’s an official way to do this via Electron I’m all for it, don’t have enough knowledge of i3, ratpoison or tiling window managers :sweat_smile:


#6

I think that the classification in Electron is “splash” (at least that’s what it’s named in BrowserWindow)

Slack and Discord both use Electron, to my knowledge, and their ‘loading’ screens on application startup are both of that floating type by default in i3, so I know it’s possible. It makes sense for the window type in Electron to be named “splash” since that is the classification of those loading window types in their use cases for applications.

Edit:

It looks like I was mistaken about splash being the type, as that is just a ‘max size’ for the window, and it’s platform dependent. Upon a little investigation, it might just be a customized notification window that is a child of a main window that is hidden (which makes sense, since there would have to be another window that is being instantiated for Slack or Discord).

I’m unsure if that’s acceptable or not, to have a child window be the main window that is interacted with for an application, but it might be the only way to get that functionality with the current Electron API.

If that is indeed the only way to get that functionality in Electron, that seems like a good place to improve their API.


#7

Thanks for the info, will have a look!


#8

Just did a little experiment with Electron, and setting type: 'splash' when creating a BrowserWindow does indeed create it as floating. I do not see an equivalent window style for non-linux, but hopefully that helps a little bit.

Edit: just trying it out on macOS, it seems the documentation of the API is correct, and it has no noticeable effect (a good thing). So any logic you have currently, unless you are specifying the window type as something else, should not be affected on non-linux operating systems.


#9

@fortiter ~ much appreciated, thanks so much!