Keymat Layout - the Final Poll!

What layout would you prefer? Multiple layouts can be chosen.

  • Layout 1

    Votes: 66 34.4%
  • Layout 2

    Votes: 13 6.8%
  • Layout 3

    Votes: 15 7.8%
  • Layout 4

    Votes: 28 14.6%
  • Layout 5

    Votes: 22 11.5%
  • Layout 6

    Votes: 29 15.1%
  • Layout 7

    Votes: 83 43.2%
  • Layout 8

    Votes: 10 5.2%
  • Layout 9

    Votes: 7 3.6%
  • Layout 10

    Votes: 53 27.6%
  • Layout 11

    Votes: 22 11.5%

  • Total voters
    192

Status
Not open for further replies.
I feel sorry for Ed too. A big part of the discussion isn't even interesting for other readers than those discussing so maybe it's better to go find a private room somewhere and fight it out there. :p
Does that means reign of IRC (and IRC bots)?
 
Grench, Comradekingu: You two are arguing about different things. Grench is talking about key events (for which there are only right and left alt) and Comradekingu is talking about X mappings, for which you can map how many third level shifts as you want. Comradekingu, what key events do your two alts and two altgr keys emit? Check your local <linux/input.h> for possible values. Keep in mind that no two keys should emit the same codes for the same reasons stated for the three-shift layouts.

ED:

My reasons for liking #7:

- Dedicated tab and esc

- Tab, esc and backspace in places I consider good

- Correct amount of modifier keys (2 per modifier)

- ÄÖ on meta layer

- Dedicated number keys

What I would reconsider in #7:

- Putting F11/F12 on pause/capslock, moving pause on meta-p and capslock to maybe meta-enter or meta-backspace

About sticky modifiers:

"xkbset sticky -twokey -latchlock" makes modifiers sticky. No need to have this in layout.
 
Last edited by a moderator:
I voted for Layout 1 because of the natural placement of the German Umlauts. I also voted for Layout 7, mainly because I think ESC should be a seperate key. All other keys which I think I may need are well placed on both, and also the functions on the shoulder- and game-butttons make sense to me.
 
To make it easier to type /? with the lower keyboard only (no shoulder modifiers), here's how to modify layout 1:

http://www.keyboard-layout-editor.com/#/layouts/81311d37a08ca831c053d206836cfdc1

If caps is a requirement, or a dedicated esc, layout 1 can move in this direction (though you lose pause for a minimal change):

http://www.keyboard-layout-editor.com/#/layouts/b9d15fd98241cbb5ab86b5b734d77752

thanks also for helping me rethink the bottom row, _wb_!  this way, you can also do certain escape combos easier:  \', \", \$, and \/ 

(also, layout 1 allows you to have meta+" a hidden umlaut key, without using up another key, since meta+' is dead forward tick.)

[edit]

in response to _wb_'s post below, we also can put F11/F12 up top to keep things off of Backspace/Enter.

http://www.keyboard-layout-editor.com/#/layouts/fa838e5aebcafdb391d2b23b5e35e687

but i do expect the accidental presses of F11/F12 will be minimized (on the original layout 1) because of the way we put ;: on shift instead of meta.
 
Last edited by a moderator:
i'd move a few things around in _wb_'s compromise:

http://www.keyboard-layout-editor.com/#/layouts/09c597baa4fad7f3d47b7d532f5e0d4b


this makes some coding combos a bit easier, i think.

Perfect!


This is the perfect blend of #7 and #1 if you ask me.

I wish people would give more information about why they like the ones that they do - just a few qualitative color pieces to go with the stark quantitative nature of the poll results. Emphasis on what features/themes/placements people -like- about a given layout or layouts. Enough of the negative campaigning against the 'others' though.
That would be perfect to finalize the Layout in the end.


What I love about Layout 11 is the F11 key up there. It might be weird at first, but for X, it's basically a Fullscreen toggle key, which is a neat feature :D


Well, there are quite a few designs I like, I also voted for multiple ones, as some are really good :)
F11 up top as a primary key is indeed probably more useful than Pause as a primary key.

Also, I like it if we can avoid having Fn labels on Backspace and Enter.

Here is a version of the layout #7 + layout #1 blend, with the F11 key up top as a dedicated key like in layout #11.


http://www.keyboard-layout-editor.com/#/layouts/4aed6f1367282b9b486cc41052dbb15f
 
Grench, Comradekingu: You two are arguing about different things. Grench is talking about key events (for which there are only right and left alt) and Comradekingu is talking about X mappings, for which you can map how many third level shifts as you want. Comradekingu, what key events do your two alts and two altgr keys emit? Check your local <linux/input.h> for possible values. Keep in mind that no two keys should emit the same codes for the same reasons stated for the three-shift layouts.
Press AltGr (108, it does thirdlevelshift. press 66 the caps lock key, it does fifthlevelshift and is in mod5)

KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152004, (32,-8), root:(903,515),


state 0x10, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152169, (32,-8), root:(903,515),


state 0x90, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XFilterEvent returns: False


KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152677, (32,-8), root:(903,515),


state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152806, (32,-8), root:(903,515),


state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XFilterEvent returns: False

keycode    keysymvalue  keysymname


50              0xffe1              (Shift_L) 0x0000 (NoSymbol) 0xffe1 (Shift_L)


62              0xffe2              (Shift_R) 0x0000 (NoSymbol) 0xffe2 (Shift_R)

66              0xfe11             (ISO_Level5_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

92              0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)


105            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

108            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)
 
Grench, Comradekingu: You two are arguing about different things. Grench is talking about key events (for which there are only right and left alt) and Comradekingu is talking about X mappings, for which you can map how many third level shifts as you want. Comradekingu, what key events do your two alts and two altgr keys emit? Check your local <linux/input.h> for possible values. Keep in mind that no two keys should emit the same codes for the same reasons stated for the three-shift layouts.
Press AltGr (108, it does thirdlevelshift. press 66 the caps lock key, it does fifthlevelshift and is in mod5)


KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152004, (32,-8), root:(903,515),


state 0x10, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152169, (32,-8), root:(903,515),


state 0x90, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XFilterEvent returns: False


KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152677, (32,-8), root:(903,515),


state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152806, (32,-8), root:(903,515),


state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XFilterEvent returns: False


keycode    keysymvalue  keysymname


50              0xffe1              (Shift_L) 0x0000 (NoSymbol) 0xffe1 (Shift_L)


62              0xffe2              (Shift_R) 0x0000 (NoSymbol) 0xffe2 (Shift_R)

66              0xfe11             (ISO_Level5_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

92              0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)


105            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

108            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)
Please note that you have TWO shift keys there (Shift_L and Shift_R), but only ONE altgr (ISO_Level3_Shift). If I understand correctly, you have Left Alt, Right Alt, Left AltGr and Right AltGr in your layout. What are the key event codes for these? You're using xev, that tells what X sees. I want to know what they are before they get to X. Look at the input.h and forget about the keysyms and such interpreted values that xev gives you when answering :)
 
Grench, Comradekingu: You two are arguing about different things. Grench is talking about key events (for which there are only right and left alt) and Comradekingu is talking about X mappings, for which you can map how many third level shifts as you want. Comradekingu, what key events do your two alts and two altgr keys emit? Check your local <linux/input.h> for possible values. Keep in mind that no two keys should emit the same codes for the same reasons stated for the three-shift layouts.
Press AltGr (108, it does thirdlevelshift. press 66 the caps lock key, it does fifthlevelshift and is in mod5)


KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152004, (32,-8), root:(903,515),


state 0x10, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152169, (32,-8), root:(903,515),


state 0x90, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XFilterEvent returns: False


KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152677, (32,-8), root:(903,515),


state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152806, (32,-8), root:(903,515),


state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XFilterEvent returns: False


keycode    keysymvalue  keysymname


50              0xffe1              (Shift_L) 0x0000 (NoSymbol) 0xffe1 (Shift_L)


62              0xffe2              (Shift_R) 0x0000 (NoSymbol) 0xffe2 (Shift_R)

66              0xfe11             (ISO_Level5_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

92              0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)


105            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

108            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)
Please note that you have TWO shift keys there (Shift_L and Shift_R), but only ONE altgr (ISO_Level3_Shift). If I understand correctly, you have Left Alt, Right Alt, Left AltGr and Right AltGr in your layout. What are the key event codes for these? You're using xev, that tells what X sees. I want to know what they are before they get to X. Look at the input.h and forget about the keysyms and such interpreted values that xev gives you when answering :)
I think those stop making sense once you select Norwegian Layout I'll include the corresponding  /usr/include/linux/input.h things in bold

Both my caps lock

#define KEY_F8            66

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3582354, (63,-17), root:(934,506),


    state 0x10, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3582439, (63,-17), root:(934,506),


    state 0x90, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


    XLookupString gives 0 bytes:


    XFilterEvent returns: False

and AltGr key

#define KEY_DOWN        108

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3599745, (12,199), root:(883,722),


    state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


    XKeysymToKeycode returns keycode: 92


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3599821, (12,199), root:(883,722),


    state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


    XKeysymToKeycode returns keycode: 92


    XLookupString gives 0 bytes:


    XFilterEvent returns: False

(#define KEY_HENKAN        92 )

do łþ€®łþł ł®þł®€þł€  and £@½$@£$@£@ £½@£½@£½$@£½  (thats what i call AltGr)

I set up numpad - to be R_alt,

#define KEY_KP0            82

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3622359, (-59,229), root:(812,752),


    state 0x10, keycode 82 (keysym 0xffea, Alt_R), same_screen YES,


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3622445, (-59,229), root:(812,752),


    state 0x18, keycode 82 (keysym 0xffea, Alt_R), same_screen YES,


    XLookupString gives 0 bytes:


    XFilterEvent returns: False

and that works with things like alt+tab

and then there is normal alt

#define KEY_F6            64

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3644092, (37,313), root:(908,836),


    state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3644217, (37,313), root:(908,836),


    state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,


    XLookupString gives 0 bytes:


    XFilterEvent returns: False
 
keeping meta-symbols off enter/backspace does have a certain cleanness about it.

http://www.keyboard-layout-editor.com/#/layouts/fa838e5aebcafdb391d2b23b5e35e687

for those that don't like caps-lock (like myself), we can remap Caps to Esc (or some other useful key).
I like this layout more than the ones in the poll. One of the main reasons I voted for #10 was that there was no second functions on backspace/enter. This is also included here. Additionally, the more I think about having F11 on a button in the top row, the more I like it. I don't think it is necessary to have a wifi / bluetooth whatever toggle because that is just one click in the gui.

I miss SysRq a bit because that key is very useful in case the system hangs. I had that situation sometimes on my desktop and couldn't even use the keyboard anymore to get into a console. With SysRq you can still cleanly finish filesystem syncs, terminate process, reboot and whatever, most of the time. This could be useful because i don't trust binary driver blobs (that will be used for the powervr afaik) and buggy drivers can cause such hangs.
 
I miss SysRq a bit because that key is very useful in case the system hangs. I had that situation sometimes on my desktop and couldn't even use the keyboard anymore to get into a console. With SysRq you can still cleanly finish filesystem syncs, terminate process, reboot and whatever, most of the time. This could be useful because i don't trust binary driver blobs (that will be used for the powervr afaik) and buggy drivers can cause such hangs.
We've managed to live without it so far on the Pandora. 
 
While I can agree with the sentiment, we're trying to take the motivations into account in our brainstorming.  (At least, some of us.)  To me, it sounds more like, "Please stop evolving, we'd rather have a less-than-best keyboard."
 
Last edited by a moderator:
Grench, Comradekingu: You two are arguing about different things. Grench is talking about key events (for which there are only right and left alt) and Comradekingu is talking about X mappings, for which you can map how many third level shifts as you want. Comradekingu, what key events do your two alts and two altgr keys emit? Check your local <linux/input.h> for possible values. Keep in mind that no two keys should emit the same codes for the same reasons stated for the three-shift layouts.
Press AltGr (108, it does thirdlevelshift. press 66 the caps lock key, it does fifthlevelshift and is in mod5)


KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152004, (32,-8), root:(903,515),


state 0x10, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152169, (32,-8), root:(903,515),


state 0x90, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


XLookupString gives 0 bytes:


XFilterEvent returns: False


KeyPress event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152677, (32,-8), root:(903,515),


state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XmbLookupString gives 0 bytes:


XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


root 0x2c0, subw 0x0, time 152806, (32,-8), root:(903,515),


state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


XKeysymToKeycode returns keycode: 92


XLookupString gives 0 bytes:


XFilterEvent returns: False


keycode    keysymvalue  keysymname


50              0xffe1              (Shift_L) 0x0000 (NoSymbol) 0xffe1 (Shift_L)


62              0xffe2              (Shift_R) 0x0000 (NoSymbol) 0xffe2 (Shift_R)

66              0xfe11             (ISO_Level5_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

92              0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)


105            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)

108            0xfe03             (ISO_Level3_Shift) 0x0000 (NoSymbol) 0xfe03 (ISO_Level3_Shift)
Please note that you have TWO shift keys there (Shift_L and Shift_R), but only ONE altgr (ISO_Level3_Shift). If I understand correctly, you have Left Alt, Right Alt, Left AltGr and Right AltGr in your layout. What are the key event codes for these? You're using xev, that tells what X sees. I want to know what they are before they get to X. Look at the input.h and forget about the keysyms and such interpreted values that xev gives you when answering :)
I think those stop making sense once you select Norwegian Layout I'll include the corresponding  /usr/include/linux/input.h things in bold



Both my caps lock

#define KEY_F8            66

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3582354, (63,-17), root:(934,506),


    state 0x10, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3582439, (63,-17), root:(934,506),


    state 0x90, keycode 66 (keysym 0xfe11, ISO_Level5_Shift), same_screen YES,


    XLookupString gives 0 bytes:


    XFilterEvent returns: False

and AltGr key

#define KEY_DOWN        108

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3599745, (12,199), root:(883,722),


    state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


    XKeysymToKeycode returns keycode: 92


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3599821, (12,199), root:(883,722),


    state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,


    XKeysymToKeycode returns keycode: 92


    XLookupString gives 0 bytes:


    XFilterEvent returns: False

(#define KEY_HENKAN        92 )

do łþ€®łþł ł®þł®€þł€  and £@½$@£$@£@ £½@£½@£½$@£½  (thats what i call AltGr)

I set up numpad - to be R_alt,

#define KEY_KP0            82

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3622359, (-59,229), root:(812,752),


    state 0x10, keycode 82 (keysym 0xffea, Alt_R), same_screen YES,


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3622445, (-59,229), root:(812,752),


    state 0x18, keycode 82 (keysym 0xffea, Alt_R), same_screen YES,


    XLookupString gives 0 bytes:


    XFilterEvent returns: False

and that works with things like alt+tab

and then there is normal alt

#define KEY_F6            64

KeyPress event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3644092, (37,313), root:(908,836),


    state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,


    XLookupString gives 0 bytes:


    XmbLookupString gives 0 bytes:


    XFilterEvent returns: False


KeyRelease event, serial 37, synthetic NO, window 0x2800001,


    root 0x2c0, subw 0x0, time 3644217, (37,313), root:(908,836),


    state 0x18, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,


    XLookupString gives 0 bytes:


    XFilterEvent returns: False


You're still looking at the wrong values. Try using evtest. It gives you something like this:


Event: time 1437245766.742565, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1437245766.742565, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: time 1437245766.742565, -------------- EV_SYN ------------
Event: time 1437245766.837781, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1437245766.837781, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 0
Event: time 1437245766.837781, -------------- EV_SYN ------------
Event: time 1437245767.116348, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9d
Event: time 1437245767.116348, type 1 (EV_KEY), code 97 (KEY_RIGHTCTRL), value 1
Event: time 1437245767.116348, -------------- EV_SYN ------------
Event: time 1437245767.191083, type 4 (EV_MSC), code 4 (MSC_SCAN), value 9d
Event: time 1437245767.191083, type 1 (EV_KEY), code 97 (KEY_RIGHTCTRL), value 0
Event: time 1437245767.191083, -------------- EV_SYN ------------
Event: time 1437245770.547382, type 4 (EV_MSC), code 4 (MSC_SCAN), value 1d
Event: time 1437245770.547382, type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1

There the "code" corresponds to the input.h. If I go and check those values (29 and 97) in my input.h, I'll find left and right control. If I do the same with xev I get:


KeyPress event, serial 40, synthetic NO, window 0x1e00001,
root 0x2c0, subw 0x0, time 19870969, (-522,831), root:(4832,860),
state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x1e00001,
root 0x2c0, subw 0x0, time 19871060, (-522,831), root:(4832,860),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

KeyPress event, serial 40, synthetic NO, window 0x1e00001,
root 0x2c0, subw 0x0, time 19871396, (-522,831), root:(4832,860),
state 0x0, keycode 105 (keysym 0xffe4, Control_R), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

KeyRelease event, serial 40, synthetic NO, window 0x1e00001,
root 0x2c0, subw 0x0, time 19871479, (-522,831), root:(4832,860),
state 0x4, keycode 105 (keysym 0xffe4, Control_R), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

As you can see, the key codes given by xev are different. The transformations that AFAIK occur are:

  • Keyboard generates scan code
  • Keyboard driver reads scan codes to generate event codes (as defined in input.h)
  • X reads the keyboard device events, and maps them to key codes
  • Key codes are interpreted using a layout into keysyms
  • Application receives keysym and does whatever with it
You are giving me the results of the third and fourth phase. I'm asking for the second.
 
About sticky modifiers:

"xkbset sticky -twokey -latchlock" makes modifiers sticky. No need to have this in layout.
If I understand correctly that affects all modifiers. Is there an easy way to make just L_SHIFT and L_META sticky, while leaving R_SHIFT and R_META unaffected?
-Neelix
 
While I can agree with the sentiment, we're trying to take the motivations into account in our brainstorming.  (At least, some of us.)  To me, it sounds more like, "Please stop evolving, we'd rather have a less-than-best keyboard."
Evolution is no thing of perfection. Something gets changes, will be tried in nature and either succeeds or fails.

Lets give the Pyra the chance to succeed in nature.

We also dont lock human kind away just because evolution is still happening. Some of us want the Pyra in their hand this decade. No need to wait another for more perfectionism.
 
While I can agree with the sentiment, we're trying to take the motivations into account in our brainstorming.  (At least, some of us.)  To me, it sounds more like, "Please stop evolving, we'd rather have a less-than-best keyboard."
Which is fine, my point was to keep the design discussion out of this thread. There is an entire section of the boards dedicated for this type of discussion.

Keep in mind that EvilDragon has to read through all this, and keyboard layout design discussions have several properties that scales the thread size VERY fast:

  • It is an iterative process, going back and forth between designers adding, tweaking, refining until the specialists more or less reach a consensus on an improvement.
  • Each iteration generates at least one new layout. Studying a keyboard layout takes a lot of time if done properly, I personally spent over 2 hours on my vote.
  • It is highly opinionated and to a large degree a matter of varying taste and targets, which triggers some strong discussion which sometimes gets a bit emotional because of the passion of people involved.
EvilDragon has decided to end all this, gathered several layouts and is now collecting votes on them. He did not request another dozen of layouts.
If we really want to aid EvilDragon in improving the layout presented based on the poll-results, then let's take all the iterations and discussions back into the keyboard design threads and report back with results (e.g. lessons learned) from the discussion instead of dumping the discussion itself in the middle of the votes.

<edit>Added quote.</edit>
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top