5

I need use Fn + CTRL as a key combination, but it doesn't work in openbox (works in XFCE / KDE4`).

<keybind key="Fn-C">
  <action name="ToggleMaximize">
      </action>
</keybind>

The action name is totally right, it works with other key combination, e.g W-3.

So, any ideas?

  • Might I ask how you tried configure the key binding with XF86WakeUp? – Raphael Ahrens Oct 23 '13 at 7:54
3

Different window managers can use different keyboard mappings, and the keymapping defines how your Fn key is recognized. This is why what works in XFCE doesn't necessarily work in Openbox.

To check how X (and Openbox) interpret your Fn key, follow this guide.

Based on the results, you can either use the appropriate key symbol in rc.xml instead of Fn.
Fn on my Thinkpad is recognized as XF86WakeUp for instance. If it has no symbol assigned, you can assign one manually with xmodmap as per this guide and then use that symbol in rc.xml.

Investigating further, it turns out that Fn is a special key on some notebooks (like IBM/Lenovo Thinkpads) in that the Keypress and Keyrelease events (or Keydown and Keyup in Microsoft terms) are generated simultaneously and only when the key is released. Further keypresses while Fn is depressed are simply not registered*. With xev, you can easily check if this is the case with your system as well.

This means that Fn cannot be used as a modifier key (combined with other keys like Alt, Ctrl or Shift). It can be assigned as a shortcut on its own though. Combined with Openbox's keychains, this is almost as good as using it as a modifier. You just have to release it before pressing the key you combine it with.

* There must be some way of registering keys combined with Fn though at least on Thinkpads, as Lenovo's own Windows tools do react to Fn plus other keys. But this seems to happen at a very low level. When I am in a VMWare guest on a Windows host, pressing Fn plus a key opens the appropriate tool in the Windows host, not in the guest OS. It would be interesting to look into the implementation of similar Thinkpad tools on Linux to see how they cope with Fn.

Here you find more Thinkpad-specific info on how Fn+Fx key combos generate ACPI events, which is what the Thinkpad tools react to. However, I suppose those events are only generated for specific combinations with Fx keys and not for other key combinations.

The page also describes how you can make ACPI events trigger key events. However, if Fn keydown and keyup don't generate separate events of their own (I believe they don't on Thinkpads), this doesn't really get you any further.

  • Yep, It was recognized as XF86WakeUp, but doesn't work either ;-( – daisy Sep 17 '13 at 23:29
  • Updated my answer with info on why you cannot combine XFWakeUp with other keys. – Endre Both Sep 18 '13 at 12:58
  • What I overlooked was that Fn+Ctrl worked for you in XFCE/KDE. It would be really interesting to see if xev output is different between those two and Openbox. What's the make of your notebook (or keyboard if it's not a notebook) anyway? – Endre Both Sep 18 '13 at 13:34
0

It's been a while since I left minimalisting window managers like fluxbox/openbox and such, but here's some tips I recall:

  1. You can actually see what keycode a certain keystroke combination rises using xev(1)

  2. You can use use xmodmap(1) to bind certain keycodes to X events.

Look look at manpages for xev and xmodmap ;)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.