diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-04-13 17:00:20 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-04-13 17:00:20 +0200 |
commit | 4ed396d438554c2dea8521b0e5a7ee51826d4125 (patch) | |
tree | 7a57570eca76c50937cc5eb20c2ef1553cd8c594 /sys/src/cmd/aux | |
parent | 8ff802d07ec97de60f0fbe8fa491cb215459c829 (diff) |
kbdfs: add shift+altgr table 7 for polish keymaps
Diffstat (limited to 'sys/src/cmd/aux')
-rw-r--r-- | sys/src/cmd/aux/kbdfs/kbdfs.c | 55 |
1 files changed, 35 insertions, 20 deletions
diff --git a/sys/src/cmd/aux/kbdfs/kbdfs.c b/sys/src/cmd/aux/kbdfs/kbdfs.c index 17716afbc..c4dd3362a 100644 --- a/sys/src/cmd/aux/kbdfs/kbdfs.c +++ b/sys/src/cmd/aux/kbdfs/kbdfs.c @@ -264,6 +264,26 @@ Rune kbtabctl[Nscan] = [0x78] 0, '', 0, '\b', 0, 0, 0, 0, }; +Rune kbtabshiftaltgr[Nscan] = +{ +[0x00] 0, 0, 0, 0, 0, 0, 0, 0, +[0x08] 0, 0, 0, 0, 0, 0, 0, 0, +[0x10] 0, 0, 0, 0, 0, 0, 0, 0, +[0x18] 0, 0, 0, 0, 0, 0, 0, 0, +[0x20] 0, 0, 0, 0, 0, 0, 0, 0, +[0x28] 0, 0, 0, 0, 0, 0, 0, 0, +[0x30] 0, 0, 0, 0, 0, 0, 0, 0, +[0x38] 0, 0, 0, 0, 0, 0, 0, 0, +[0x40] 0, 0, 0, 0, 0, 0, 0, 0, +[0x48] 0, 0, 0, 0, 0, 0, 0, 0, +[0x50] 0, 0, 0, 0, 0, 0, 0, 0, +[0x58] 0, 0, 0, 0, 0, 0, 0, 0, +[0x60] 0, 0, 0, 0, 0, 0, 0, 0, +[0x68] 0, 0, 0, 0, 0, 0, 0, 0, +[0x70] 0, 0, 0, 0, 0, 0, 0, 0, +[0x78] 0, 0, 0, 0, 0, 0, 0, 0, +}; + char* dev(char *file) { @@ -347,6 +367,8 @@ kbdputsc(Scan *scan, int c) key.r = kbtabshiftesc1[c]; else if(scan->esc1) key.r = kbtabesc1[c]; + else if(scan->shift && scan->altgr && kbtabshiftaltgr[c] != 0) + key.r = kbtabshiftaltgr[c]; else if(scan->shift) key.r = kbtabshift[c]; else if(scan->altgr) @@ -1011,26 +1033,19 @@ ctlproc(void *) Rune* kbmapent(int t, int sc) { - if(sc < 0 || sc >= Nscan) - return nil; - switch(t){ - default: - return nil; - case 0: - return &kbtab[sc]; - case 1: - return &kbtabshift[sc]; - case 2: - return &kbtabesc1[sc]; - case 3: - return &kbtabaltgr[sc]; - case 4: - return &kbtabctl[sc]; - case 5: - return &kbtabctrlesc1[sc]; - case 6: - return &kbtabshiftesc1[sc]; - } + static Rune *tabs[] = { + /* 0 */ kbtab, + /* 1 */ kbtabshift, + /* 2 */ kbtabesc1, + /* 3 */ kbtabaltgr, + /* 4 */ kbtabctl, + /* 5 */ kbtabctrlesc1, + /* 6 */ kbtabshiftesc1, + /* 7 */ kbtabshiftaltgr, + }; + if(t >= 0 && t < nelem(tabs) && sc >= 0 && sc < Nscan) + return &tabs[t][sc]; + return nil; } void |