joewing / jwm

Joe's Window Manager
http://joewing.net/projects/jwm
MIT License
531 stars 86 forks source link

Enhancement: Ability to access root menu from anywhere #531

Open msmigiel opened 3 years ago

msmigiel commented 3 years ago

In my current JWM setup, I have a tray with a tasklist and a clock - I do not have a root menu icon as I prefer to access my applications by right clicking. However, I find that the right click to access the root menu only works on the desktop - for example if I try to right click on the tray I get nothing and if I right click on a running application, I get Send To, Layer, etc... This is a problem if my windows are maximized and my desktop is not visible.

Please consider adding the option to access the root menu by clicking anywhere.

joewing commented 3 years ago

I think this should be supported already (as of 2.4.0) with mouse bindings (see http://joewing.net/projects/jwm/config.html#mouse), for example:

<Mouse context="border" button="3">root:1</Mouse>
<Mouse context="title" button="3">root:1</Mouse>
msmigiel commented 3 years ago

Thank you for the reply. That does help as now I can click on window titles and borders to get the root menu. However, is it currently possible to right click on empty space in the tray or to append to the right click menu of a running application a root menu?

joewing commented 3 years ago

If you use TrayButton instead of Spacer you can make the tray respond to clicks in empty spaces, but otherwise that's not currently configurable.

STrRedWolf commented 3 years ago

Overriding a right-click menu inside applications would have horrible effects on many applications, like web browsers and even Gimp (which in the beginning was exclusively right-click menu).

Overriding an application's right-click menu is very dependent on the toolkit being used (GTK+, QT, Motif, TK, FLTK, whatever is hand-rolled into an application...). It's a herculean task to undertake... if it's possible to do with said toolkits.

msmigiel commented 3 years ago

STrRedWolf, I agree - we should not be overriding anything in applications as that would be a mistake for the reasons you mention. I was more interested in making use of the empty space in the tray and/or to add a root menu to the existing right-click running application menu. I try to keep my UI as clean as possible so my root menu is only accessible via right click and as of now, that right click only works on the desktop (and with Joe's advice, now on the title/border of apps, which is a nice workaround).

Joe, I'm not really sure what you mean. I am not using Spacer in my Tray. My tray looks like this. How are you suggesting I enable a root menu on clicking on empty spaces?

  <Tray valign="top" height="42">
    <TaskList maxwidth="384"/>
    <Clock format="%m-%d-%Y %H:%M"></Clock>
  </Tray>
joewing commented 3 years ago

Each of the components on a tray can be configured separately. With Clock you can do:

<Clock format="%m-%d-%Y %H:%M">root:1</Clock>

Unfortunately, TaskList doesn't allow you to configure mouse bindings.

msmigiel commented 3 years ago

Thank you - I wasn't aware you could that. Please consider adding this ability to TaskList as well.

Is it possible to configure different mouse buttons or modifiers to do different actions on things like the Clock? For example, left click to bring up calendar, right click to bring up change time, etc... If not then please consider adding that as well.

keshto commented 2 years ago

+1 to adding ability to configure mouse bindings for TaskList