Upper left shoulder button as "Fn" key does not work


nubok

Still Fresh
Joined
Apr 30, 2016
Messages
6
Age
35
According to the documentation included with the Pyra, the upper left shoulder button is an alias for "Fn".

Unluckily, this does not work on my Pyra (the lower left should button as an alias for Shift does work, though).

To decide whether the functionality of this button is perhaps "broken" (i.e. my Pyra has a hardware issue), I ran xev. Result: No event was registered when I pressed the upper left shoulder button. But on the other hand also no event was registered when I simply pressed the (working) "Fn" key on the keyboard of my Pyra.

So two questions:
  1. Is the fact that the upper left shoulder button does not work as alias for the "Fn" a well-known bug in the software?
  2. How can I test whether the upper left shoulder button of my Pyra does work (in the "hardware issue" sense)?
 

Djoga'Ro

moonstruck
Joined
Apr 3, 2016
Messages
1,759
IIRC wireshark has a plugin to sniff USB packets - or it was a wireshark inspired tool for USB.
I may be wrong, but I always thought hosts never know about Fn-keys. That while depressing Fn you reach a different set of keas on the board, that aren't physically there. ?
Does it enable you to get to the Fn layer of the other keys?
 

FBnil

Pyraturi te salutant
Joined
Dec 14, 2012
Messages
3,705
Location
Yurp
@nubok Maybe you are not running the latest software. Did you do an apt-get update && apt-get upgrade? (might want to reboot after that). Then try again. For xev, each key is different, as you should be able to remap every key, they should be visible.
 

EvilDragon

Administrator
Staff member
Joined
Mar 4, 2003
Messages
29,670
Age
43
Location
Ingolstadt
Hm, hardware-wise it should be fine, as I'm doing a full input test for each Pyra. Unless I missed that one, it should work.

Fn is a special key though - it doesn't trigger events alone, not even on a laptop. It changes the keycode of other keys, so you need to press it together with a key that has a different function with Fn and see the result.
 

nubok

Still Fresh
Joined
Apr 30, 2016
Messages
6
Age
35
Did you do an apt-get update && apt-get upgrade? (might want to reboot after that).

Yes

For xev, each key is different, as you should be able to remap every key, they should be visible.
Now, what happens if you press a, and then fn+a, does xev register the same key press? (keep pressed to be able to read the keydown event)

I did two experiments:

Experiment 1:
  1. Press A
  2. Press upper left shoulder button
  3. Press upper left shoulder button + A
Result:

KeyPress event, serial 38, synthetic NO, window 0x2600001,
root 0x3af, subw 0x0, time 124717, (171,-13), root:(177,23),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x2600001,
root 0x3af, subw 0x0, time 124896, (171,-13), root:(177,23),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False

KeyPress event, serial 38, synthetic NO, window 0x2600001,
root 0x3af, subw 0x0, time 131815, (171,-13), root:(177,23),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x2600001,
root 0x3af, subw 0x0, time 132047, (171,-13), root:(177,23),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False


Experiment 2:
  1. Press A
  2. Press Fn (on the keyboard)
  3. Press Fn + A
Result:

KeyPress event, serial 38, synthetic NO, window 0x2800001,
root 0x3af, subw 0x0, time 403326, (174,-19), root:(186,53),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XmbLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x2800001,
root 0x3af, subw 0x0, time 403504, (174,-19), root:(186,53),
state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
XLookupString gives 1 bytes: (61) "a"
XFilterEvent returns: False

KeyPress event, serial 38, synthetic NO, window 0x2800001,
root 0x3af, subw 0x0, time 407911, (174,-19), root:(186,53),
state 0x0, keycode 222 (keysym 0x3f, question), same_screen YES,
XLookupString gives 1 bytes: (3f) "?"
XmbLookupString gives 1 bytes: (3f) "?"
XFilterEvent returns: False

KeyRelease event, serial 38, synthetic NO, window 0x2800001,
root 0x3af, subw 0x0, time 408090, (174,-19), root:(186,53),
state 0x0, keycode 222 (keysym 0x3f, question), same_screen YES,
XLookupString gives 1 bytes: (3f) "?"
XFilterEvent returns: False


As you can see, in none of the two experiments the press of "upper left shoulder button" or Fn, respectively, causes an KeyPress/KeyRelease event. But if I use Fn (but not for "upper left shoulder button"), the KeyPress/KeyRelease event of pressing 'A' is '?' instead of 'a'.
 
  • Wow
Reactions: rSl

EvilDragon

Administrator
Staff member
Joined
Mar 4, 2003
Messages
29,670
Age
43
Location
Ingolstadt
Hm, that's something we probably should check here then.
Either the CPU-Board or the mainboard seems to be bad :(
 

levi

Still fresh, damnit!
Joined
Oct 6, 2008
Messages
13,735
Location
Somewhere off the coast of the EU
Is this not working as intended? FN is not a real key, it's a pure modifier key that does not generate key events unless chorded with a valid key. And the code for fn+A on the keyboard is the question mark symbol (unicode 0x3f), so according to your logs both the keyboard FN and the shoulder button give that when chorded with the A key.
 

nubok

Still Fresh
Joined
Apr 30, 2016
Messages
6
Age
35
@EvilDragon
How shall we proceed?

The reason why I waited with a reply was that I originally planned to have a look by myself - unluckily, it turned out that the handle of my fitting screwdriver was too short for the screwholes of the Pyra.
 
Last edited:
Top