Plexamp Desktop Player Window Controls (minimize, maximize, exit)

From searching the forums I know that the Plexamp desktop player intentionally omits window controls for “aesthetic” reasons, but I believe this functionality would be very helpful to have. I am horrible at remembering keyboard shortcuts and I believe myself and other users would benefit from having window controls available.

Currently whenever I want to close Plexamp I start by trying to click in the top right like I do for EVERY other application I use. I then realize there isn’t a button to close it. Then I need locate Plexamp in my task bar, right click it, and then click close. This isn’t that much of a hassle, but it confuses me for a bit every time and it would be a great quality of life improvement to have this basic feature.

Its rarely a good idea to sacrifice functionality for aesthetics, but if you REALLY want to avoid having any extra elements on the screen, then I think you should only make it render the buttons when the mouse is near the top right corner of the screen. For example we start off with a completely standard Plexamp desktop window with a minimalistic aesthetic.

Once the mouse nears the top right though, the buttons appear:

This solution would also work for the windowed player as well. There is already a bar above the album artwork/visualizer for people to grab the window and let them move it around. Why not also add buttons here when the mouse is near it?

This solution would:

  1. Make the Plexamp desktop experience easier and more intuitive for users by being more consistent with other applications
  2. Improve quality of life and save time of users.
  3. Not change the overall aesthetic or design in anyway except when the buttons are being used.

This would also be a very easy improvement to make. I hope others will agree.

I don’t believe it’s possible to have those buttons appear on demand. It’s either always there or not. You can right click in the header and get the options you are looking for.
image

Not possible? It definitely is possible to have those buttons appear on demand. We have the technology. Plexamp is using React Native and Electron for the desktop app. It is clearly already running in frameless mode. For the desktop version, just add a fixed div which contains the buttons. I’m not certain of this, but it’s likely that there is already a div tag defining the drag-region since it’s already possible to click in this region. So either add the buttons in there or create a new div like this:

<div id="drag-region">
    <div id="window-controls">

      <div class="button" id="min-button">
        <img class="icon" srcset="icons/min-w-10.png 1x, icons/min-w-12.png 1.25x, icons/min-w-15.png 1.5x, icons/min-w-15.png 1.75x, icons/min-w-20.png 2x, icons/min-w-20.png 2.25x, icons/min-w-24.png 2.5x, icons/min-w-30.png 3x, icons/min-w-30.png 3.5x" draggable="false" />
      </div>

      <div class="button" id="max-button">
        <img class="icon" srcset="icons/max-w-10.png 1x, icons/max-w-12.png 1.25x, icons/max-w-15.png 1.5x, icons/max-w-15.png 1.75x, icons/max-w-20.png 2x, icons/max-w-20.png 2.25x, icons/max-w-24.png 2.5x, icons/max-w-30.png 3x, icons/max-w-30.png 3.5x" draggable="false" />
      </div>

      <div class="button" id="restore-button">
        <img class="icon" srcset="icons/restore-w-10.png 1x, icons/restore-w-12.png 1.25x, icons/restore-w-15.png 1.5x, icons/restore-w-15.png 1.75x, icons/restore-w-20.png 2x, icons/restore-w-20.png 2.25x, icons/restore-w-24.png 2.5x, icons/restore-w-30.png 3x, icons/restore-w-30.png 3.5x" draggable="false" />
      </div>

      <div class="button" id="close-button">
        <img class="icon" srcset="icons/close-w-10.png 1x, icons/close-w-12.png 1.25x, icons/close-w-15.png 1.5x, icons/close-w-15.png 1.75x, icons/close-w-20.png 2x, icons/close-w-20.png 2.25x, icons/close-w-24.png 2.5x, icons/close-w-30.png 3x, icons/close-w-30.png 3.5x" draggable="false" />
      </div>

    </div>
  </div>

Then it just takes a little bit of code to get this working. Each button could be a React Component and you could easily write a function to detect the distance from the mouse to the button. Then use this function in the components render function to conditionally determine whether or not it should be rendered. Hell you could go wild and make the buttons fade in based on the distance to the button.

This isn’t just possible, it’s easy. I’m a software engineer and I know that I could do this. The suggestion I proposed is much more elegant and intuitive than right clicking on the menu bar. That’s just a bandage on the wider problem which is that Plexamp doesn’t have a good set of controls. Adding this would make Plexamp just that much better and wouldn’t interfere with anyone who prefers to use keyboard shortcuts or who want a clean aesthetic.

2 Likes

There’s already an existing feature suggestion addressing this.
Please search before posting duplicate suggestions in order to avoid distracting votes/comments.

Therefore closing this thread. Please vote/comment in the existing thread instead.