Page MenuHomeLubuntu

Fix shortcuts related to Super key
Open, Unbreak Now!Public

Description

So we made the Super key the default shortcut for opening the menu. This is a no brainer. Unfortunately, I discovered this makes the Openbox Super key combos not work. So I'd like to propose a multi-tiered solution:

  1. As much as possible, we move shortcuts defined by Openbox to being defined by lxqt-globalkeys. This won't work for the window manager specific stuff.
  2. Redefine the remaining Super key combos in Openbox to not use the Super key. This will unfortunately violate the way things have been done in the past, but at least we'll have functionality.
  3. Get upstream to fix it so that Super combos pass through to Openbox (this will obviously come later).
  4. If reasonable, apply the above as much as possible to 18.10, too. It's been brought up a few times.

Event Timeline

wxl created this task.Thu, Nov 1, 4:53 PM
wxl triaged this task as Unbreak Now! priority.
wxl updated the task description. (Show Details)
wxl renamed this task from Fix shortcuts to Fix shortcuts related to Super key.Thu, Nov 1, 4:58 PM
wxl added a comment.EditedThu, Nov 1, 5:28 PM

We could delete these

	  <keybind key="W-F1">
	    <action name="GoToDesktop"><to>1</to></action>
	  </keybind>
	  <keybind key="W-F2">
	    <action name="GoToDesktop"><to>2</to></action>
	  </keybind>
	  <keybind key="W-F3">
	    <action name="GoToDesktop"><to>3</to></action>
	  </keybind>
	  <keybind key="W-F4">
	    <action name="GoToDesktop"><to>4</to></action>
	  </keybind>
`

These are currently defined as Ctrl + F-key using client command /panel/desktopswitch/desktop_#.

	  <keybind key="W-d">
	    <action name="ToggleShowDesktop"/>
	  </keybind>

This is currently defined as Ctrl + Alt + D using panel/showdesktop/show_hide.

	  <!--  Lubuntu specific : Keybindings -->
	
	  <!-- Keybindings for running applications on Home + E -->
	  <keybind key="W-e">
	    <action name="Execute">
	      <startupnotify>
	        <enabled>true</enabled>
	        <name>File manager</name>
	      </startupnotify>
	      <command>pcmanfm-qt</command>
	    </action>
	  </keybind>

This is currently set to Ctrl + Alt + E.

	  <!-- Keybindings for running Run menu from Lxpanel on Home + R-->
	  <keybind key="W-r">
	    <action name="Execute">
	      <command>lxqt-runner</command>
	    </action>
	  </keybind>

This is currently set to Alt + F2 with /runner/show_hide_dialog.

	  <!-- Keybindings for window switching with the arrow keys -->
	  <keybind key="W-S-Right">
	    <action name="DirectionalCycleWindows">
	      <direction>right</direction>
	    </action>
	  </keybind>
	  <keybind key="W-S-Left">
	    <action name="DirectionalCycleWindows">
	      <direction>left</direction>
	    </action>
	  </keybind>
	  <keybind key="W-S-Up">
	    <action name="DirectionalCycleWindows">
	      <direction>up</direction>
	    </action>
	  </keybind>
	  <keybind key="W-S-Down">
	    <action name="DirectionalCycleWindows">
	      <direction>down</direction>
	    </action>
	  </keybind>

You can activate different "tasks" with Meta + # with /panel/taskbar/task_# although that's not really the same.

On the other hand, ( +) Alt + is likely sufficient.

These are unique and deserve discussion

	    <!--
	        Lubuntu specific.
	        Keybindings for window tiling
	    -->
	    <!--
	        # HalfLeftScreen
	    -->
	  <keybind key="W-Left">
	    <action name="UnmaximizeFull"/>
	    <action name="MoveResizeTo">
	      <x>0</x>
	      <y>0</y>
	      <height>100%</height>
	      <width>50%</width>
	    </action>
	  </keybind>
	    <!--
	        # HalfRightScreen
	    -->
	  <keybind key="W-Right">
	    <action name="UnmaximizeFull"/>
	    <action name="MoveResizeTo">
	      <x>-0</x>
	      <y>0</y>
	      <height>100%</height>
	      <width>50%</width>
	    </action>
	  </keybind>
	    <!--
	        # HalfUpperScreen
	    -->
	  <keybind key="W-Up">
	    <action name="UnmaximizeFull"/>
	    <action name="MoveResizeTo">
	      <x>0</x>
	      <y>0</y>
	      <width>100%</width>
	      <height>50%</height>
	    </action>
	  </keybind>
	    <!--
	        # HalfLowerScreen
	    -->
	  <keybind key="W-Down">
	    <action name="UnmaximizeFull"/>
	    <action name="MoveResizeTo">
	      <x>0</x>
	      <y>-0</y>
	      <width>100%</width>
	      <height>50%</height>
	    </action>
	  </keybind>
kc2bez added a comment.Thu, Nov 1, 6:04 PM

It should be further noted that the Super that was used for the menu was the left one. The right Super functions normally as far as Openbox. Not every keyboard has a right Super however. I think we will still want to make sure the bindings match in the end.

wxl added a comment.Thu, Nov 1, 6:07 PM

It seems that in combinations, lxqt-globalkeys makes no distinction between right and left Super keys and instead refers to them all as Meta.

wxl added a comment.Thu, Nov 1, 6:31 PM

Actually, looking above, it seems like we've got nearly everything covered. Window tiling? Get a tiling window manager!

marneu added a subscriber: marneu.Thu, Nov 1, 7:21 PM
marneu removed a subscriber: marneu.

Window tiling? Get a tiling window manager!

That's a really horrible cop-out if we ship Openbox by default...

We could delete these


ACK on all of these.

wxl added a comment.Tue, Nov 6, 3:03 PM

A cop out? Even KWin doesn't really handle tiling. There's a script out there to make it work but reading some discussion on it, it's not foolproof. The Lubuntu "solution" wasn't really ideal, either (and was not an Openbox one, but one we developed) and is probably best described a window arrangement hack that vaguely resembled tiling. We should support the things we know we can support and that work well. That's not one of them.

  1. In the past Alt+F1 was used for the menu, and now Alt+F2 for runner. How about W+space for menu and W+F for runner? It mimics Alt+space for windows menu and Ctrl+F for find.
  2. I think we should add a un/maximize window hotkey, Maybe W+return or W+m
wxl added a comment.Wed, Nov 7, 6:44 PM

@Steedalion

  1. We wanted to use the Windows/Super key for the menu because it mimics Windows and just makes sense. We could do something different, but there was a general feeling that this just made sense. That said, do you have a non-Windows/Super key suggestion for the runner? I think Alt + R would be nice, personally.
  2. The idea is good but the suggested hotkeys won't work if we keep the Windows/Super key for the menu as I'm suggesting above since this requires Openbox commands. If you make a suggestion that does not use the Windows/Super key, I'll be happy to implement it.

Any other suggestions?

I thought we had the W +R key for runner and alt +f2. I personally use the menu key on my keyboard.

Steedalion added a comment.EditedWed, Nov 7, 7:06 PM
  1. I think the runner and the menu should use the same key, they are related and should be kept together.
    • If we are going in the windows direction W = menu, then W+r should probably = runner, as it is 'run' in windows. I feel like using Alt discourages windows users from using the runner. Also I've tried W = menu and W+ff = runner they are both in globkeys so no problems there.
    • That means we will have to change the resizing keys. I'm not a fan of changing these but it seems like one or the other. I think Ctrl +Shift + arrow is a good candidate because of its position, but a one key (+arrow) hotkey will be ideal. I think numpad is the best place but will exclude some users.
wxl added a comment.Wed, Nov 7, 7:29 PM

BTW here's what we have in lxqt-globalkeys:

Comment=Switch to desktop 7
Comment=Switch to desktop 10
Comment=Switch to desktop 11

The above are all unset.

Comment=Show/hide runner dialog

This one does not show in globalkeys.conf (bug) but it's set to Alt+F2.

An aside: @lynorian Openbox sets this to Super+R but ideally we remove that as discussed above since it doesn't actually work (unless you use the right Super key with it or unset the left Super key for the menu).

[Control+Alt+D]
Comment=Show desktop
[Super_L]
Comment=Show/hide main menu

There's desktopy stuff.

[XF86AudioLowerVolume]
Comment=Decrease sound volume
[XF86AudioMute]
Comment=Mute/unmute sound volume
[XF86AudioRaiseVolume]
Comment=Increase sound volume

There's audio stuff

[XF86MonBrightnessDown]
Comment=\x2600 \x2193
[XF86MonBrightnessUp]
Comment=\x2600 \x2191
[Shift+Control+F6]
Comment=\x2600 \x2193
[Shift+Control+F7]
Comment=\x2600 \x2191

There's two options for raising/lowering the brightness (expressed as ☀ ↑ and ☀ ↓).

[Control+Alt+E]
Comment=Pcmanfm
[Control+Alt+I]
Comment=Web browser
[Control+Alt+L]
Comment=lockscreen
[Print]
Comment=screen shot

There's programs run by hotkeys

[Control+F1]
Comment=Switch to desktop 1
[Control+F12]
Comment=Switch to desktop 12
[Control+F2]
Comment=Switch to desktop 2
[Control+F3]
Comment=Switch to desktop 3
[Control+F4]
Comment=Switch to desktop 4
[Control+F5]
Comment=Switch to desktop 5
[Control+F6]
Comment=Switch to desktop 6
[Control+F8]
Comment=Switch to desktop 8
[Control+F9]
Comment=Switch to desktop 9
[Meta+0]
Comment=Activate task 10
[Meta+1]
Comment=Activate task 1
[Meta+2]
Comment=Activate task 2
[Meta+3]
Comment=Activate task 3
[Meta+4]
Comment=Activate task 4
[Meta+5]
Comment=Activate task 5
[Meta+6]
Comment=Activate task 6
[Meta+7]
Comment=Activate task 7
[Meta+8]
Comment=Activate task 8
[Meta+9]
Comment=Activate task 9

There's all the desktops and windows (or tasks).

wxl added a comment.Wed, Nov 7, 7:32 PM

@Steedalion oh, I'm sorry, I'm wrong. We can set lxqt-runner to anything. I like Super + R and have my machines set up this way.

Regarding resizing, you mean that weird "tiling" garbage I mentioned above?

wxl added a comment.EditedWed, Nov 7, 7:38 PM

Absolutely weird finding: it seems that Control + F10 and Control + F11 want to run xbacklight for some reason but they're not even defined and xbacklight isn't installed. Interestingly no such problems with the ones that control the brightness. Why????

This comment was removed by Steedalion.
In T154#3204, @wxl wrote:

@Steedalion oh, I'm sorry, I'm wrong. We can set lxqt-runner to anything. I like Super + R and have my machines set up this way.

Regarding resizing, you mean that weird "tiling" garbage I mentioned above?

Lol, I am referring the Openbox tiling keys yes. I have found those tiling keys very useful, especially when working on a laptop. They allow easy resizing without touching the touch-pad, basically turning me into keyboard ninja.

Anyway, the tiling keys (left and right) are also windows standard hotkeys so I think it is best to implement them too.

Also i don't think a maximize key in necessary as F11 does something similar.

Another option is to disable global keys and use the openbox keys for now. Wouldn't that solve all the problems mentioned here?

wxl added a comment.Thu, Nov 8, 3:29 PM

@Steedalion unfortunately there are options that lxqt-globalkeys provides that Openbox simply cannot accomplish. Plus, it theoretically can be used as the place to look for most shortcuts. Application specific shortcuts (such as window manager ones) would be in those applications. Not to mention the fact that it's easy to graphically edit shortcuts in lxqt-globalkeys but it is simply not possible in Openbox. Openbox requires manually editing an XML file, knowing all of its particular quirks (such as the name of the actions and the ways to depict certain keys) and manually forcing Openbox to reconfigure. That's a lot to ask if what we're trying to produce is something usable and intuitive. I'd like to use it less and less because of that. And then there's the fact that should someone (myself included) choose to use a different window manager, non-window manager shortcuts are not removed.

So if you want those goofy tiling things (I'd just use a tiling window manager, as aforementioned; these require you to constantly readjust as you open more applications; even the half-assed solution for KWin isn't that bad), we need a binding that's not using Super/Windows. Right now, we're using Control + Alt + arrow keys for desktop switching and + Alt + arrow keys for sending to desktop. The much simpler Alt + arrow keys is not used. I suggest that we use it for desktop switching and one of the others for the goofy tiling thing.

It looks like Alt + arrows are the next best solution for now.
These tiling keyboard shortcuts are (to me) one of Lubuntu's big (OS that gets out of the way) features. One of the main reasons I still use it.
I know this may seem like a stretch but it may be best to take it to Facebook. Shortlist a few suggestions, post it as a survey/poll on the Facebook page, and let the users decide. This may be an effort but I'm sure it will increase user pride, bonding and make them feel included.

Other notes:

  • In two releases keyboard shortcuts for menu and tiling have changed
  • It makes sense to keep all (most in this case) of the hotkeys in one place, global-keys
  • I understand your points but external windows managers are beyond the scope of this discussion.

P.S. I know this is out there but I think it's a good opportunity to gain some attention.

wxl added a comment.Thu, Nov 8, 5:02 PM

Well we don't really have an official Facebook. We have had it, but none of us really want to maintain it, so we don't consider it an official resource. I don't even have a Facebook account. That said, perhaps we could push it through the mailing list/other forms of social media. The socialite amongst us is @tsimonq2 so I'll leave that in his hands.

Otherwise, I think I'll move forward with Alt + arrow keys for tiling. Or maybe Control + Alt + + arrow keys. I don't consider it a "top level" shortcut. It would be nicer to use Alt + arrow keys for something most everyone is going to use.

wxl added a comment.Thu, Nov 8, 5:38 PM

Also here's ones not involving the Super key we should just move out of Openbox based on the notion of using the Openbox configuration only for Openbox thing:

Add to lxqt-globalkeys

	  <!-- Keybindings for desktop switching -->
	  <keybind key="C-A-Left">
	    <action name="GoToDesktop"><to>left</to><wrap>no</wrap></action>
	  </keybind>
	  <keybind key="C-A-Right">
	    <action name="GoToDesktop"><to>right</to><wrap>no</wrap></action>
	  </keybind>
	  <keybind key="C-A-Up">
	    <action name="GoToDesktop"><to>up</to><wrap>no</wrap></action>
	  </keybind>
	  <keybind key="C-A-Down">
	    <action name="GoToDesktop"><to>down</to><wrap>no</wrap></action>
	  </keybind>

	  <keybind key="A-space">
	    <action name="ShowMenu"><menu>client-menu</menu></action>
	  </keybind>

	  <!-- Launch task manager on Ctrl + Alt + Del-->
	  <keybind key="C-A-Delete">
	    <action name="Execute">
	      <command>qps</command>
	    </action>
	  </keybind>
	
	  <!-- Launch a terminal on Ctrl + Alt + T-->
	  <keybind key="C-A-T">
	    <action name="Execute">
	      <command>qterminal</command>
	    </action>
	  </keybind>
	
	  <!-- Keybinding for terminal button-->
	  <keybind key="XF86WWW">
	    <action name="Execute">
	      <command>qterminal</command>
	    </action>
	  </keybind>
	  <keybind key="XF86Terminal">
	    <action name="Execute">
	      <command>qterminal</command>
	    </action>
	  </keybind>

	  <!-- Keybinding for computer button-->
	  <keybind key="XF86MyComputer">
	    <action name="Execute">
	      <command>pcmanfm-qt</command>
	    </action>
	  </keybind>

Keep these as is.

	  <!-- Keybindings for Multimedia Keys and LCD Backlight (alternative when not using gnome-power-manager or xfce4-volumed) -->
	  <keybind key="C-F10">
	    <action name="Execute">
	      <command>xbacklight -dec 10</command>
	    </action>
	  </keybind>
	  <keybind key="C-F11">
	    <action name="Execute">
	      <command>xbacklight -inc 10</command>
	    </action>
	  </keybind>

You'll note the C-F10 and C-F11's in there are the xbacklight commands I mentioned earlier, so we'd want to swap those out for the appropriate lxqt-config-brightness command. Also maybe we should set these to switch to the 10th and 11th desktops and come up with new solutions for the actual keystroke.

	  <keybind key="C-F7">
	    <action name="Execute">
	      <command>xset dpms force off</command>
	    </action>
	  </keybind>

This is a monitor shutdown. There may be a better way to do this.

Miscellaneous

	  <keybind key="S-A-Left">
	    <action name="SendToDesktop"><to>left</to><wrap>no</wrap></action>
	  </keybind>
	  <keybind key="S-A-Right">
	    <action name="SendToDesktop"><to>right</to><wrap>no</wrap></action>
	  </keybind>
	  <keybind key="S-A-Up">
	    <action name="SendToDesktop"><to>up</to><wrap>no</wrap></action>
	  </keybind>
	  <keybind key="S-A-Down">
	    <action name="SendToDesktop"><to>down</to><wrap>no</wrap></action>
	  </keybind>

I wonder if we can get upstream to support these.

Commented out - let's delete

	  <!-- Keybindings for running Menu from Lxpanel -->
	<!--
	  <keybind key="A-F1">
	    <action name="Execute">
	      <command>lxpanelctl menu</command>
	    </action>
	  </keybind>
	  <keybind key="C-Escape">
	    <action name="Execute">
	      <command>lxpanelctl menu</command>
	    </action>
	  </keybind>
	-->

These we could just add as alternatives to Alt + Space and Super. I kind of feel like maybe that's ALOT, but who knows.

	  <!-- Lock the screen on Ctrl + Alt + l-->
	  <!--
	  <keybind key="C-A-l">
	    <action name="Execute">
	      <command>lxsession-default lock</command>
	    </action>
	  </keybind>
	-->

We already have this set in lxqt-globalkeys.

	  <!-- Keybinding for calculator button-->
	  <!--
	  <keybind key="XF86Calculator">
	    <action name="Execute">
	      <command>lxsession-default calculator</command>
	    </action>
	  </keybind>
	-->
	
	  <!--
	      Take a screenshot of the current window with scrot when Alt+Print are pressed
	  -->
	  <!--
	  <keybind key="Print">
	    <action name="Execute">
	      <command>lxsession-default screenshot</command>
	    </action>
	  </keybind>
	  <keybind key="A-Print">
	    <action name="Execute">
	      <command>lxsession-default screenshot window</command>
	    </action>
	  </keybind>
	  -->
	
	  <!-- Launch logout when push on the shutdown button -->
	  <!--
	  <keybind key="XF86PowerOff">
	    <action name="Execute">
	      <command>lxsession-default quit</command>
	    </action>
	  </keybind>
	-->

Not sure why we even have these if they're commented out. Maybe we should add them? They are LXDE commands, so whatevery they are, they're old.