Hello!
Iโve just created a romanian keymap file, wich follows the rules of ro_std used these days by Windows, Linux and BSD. The actual one which is present in the current Haiku version is a verry old one, and it was used in the past, in Win95 (it is based on typewritter machine) and is not used anymore in Romania. Can you tell me where can I sent the file to be evaluated by the Haiku team to be (I hope) included in the future version the os?
Thanks!
6 Likes
If the code review tool is too complicated (not everyone is a developper and willing to set up all of this), you can also attach the keymap file here or in a ticket at dev.haiku-os.org (the latter will be better to make sure it is not lost, but it requires creating another account there if you donโt have one already).
3 Likes
Hi! Thanks for your reply. Unfortunatelly, I donโt have enough time to install the code review tool, so I choose to attach the file here, as you suggested. As I mentioned, my keymap file follows the Windows ro_std standards, which is present also on Linux and BSD and is used all over the country as a standard. But I want to inform you that both Linux and BSD (Windows does not use it) has also another kind of keymap, which is based on US standard keyboard, with โฤลลฃรฎรขโ characters (diacritics) mapped on ALT+A, ALT+S, ALT+T, ALT+I and ALT+Q. I can also generate that keymap, for the Linux/BSD people which are confortable with this keymapping (I used it 15 years ago in Linux, but Iโm not a Linux user anymore). I remember that keymap was called ro_standard_cedilla or something similar. I should check for the real name on a friend Linux mint box and I will go back with that keymap here. Thanks agan, glad to find you!
LE: It seems the forum interface does not let me upload the file. Olny JPG, PNG or GIF are allowed and if I change the filename to .JPG for example, it does not recognize it. So please, point me to an e-mail address in order to send the file.
As itโs a text file, canโt you just paste it here?
You can upload just the contents inline as a code block since this is only a plaintext file.
Be aware that stuff shared over the forums gets lost easily, which is the reason for the code review tool in the first place.
edit: damn ninja : )
Actually is not a txt file, it was generated directly with the Keymapp app and then was saved as a binary file. In the beginning I searched for a text file with some keymap contents, knowing from unices that text files are used for that kind of stuff, but because I did not find anything like that in Haiku, I used the Keymapp app which is included into the os. If you can point me to the text files for keymaps, I can change them and put them here. Otherwise, I guess the binary file can be easely reverted to a txt input file, because the guys who wrote the Keymapp app knows exactely what format they use. Or I can take an eye on the Keymap app code to see how this binary format works. Hmmโฆ
zuMi
April 20, 2024, 10:24am
8
You can use the cli keymap to dump the current keymap into a plain text file
https://www.haiku-os.org/docs/userguide/en/preferences/keymap.html
Ok, thanks for the tip! Here it is!
#!/bin/keymap -s
#
# Raw key numbering for 102-key keyboard...
# [sys] [brk]
# 0x7e 0x7f
# [esc] [ f1] [ f2] [ f3] [ f4] [ f5] [ f6] [ f7] [ f8] [ f9] [f10] [f11] [f12] [prn] [scr] [pau]
# 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 K E Y P A D K E Y S
#
# [ ` ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 0 ] [ - ] [ = ] [ bck ] [ins] [hme] [pup] [num] [ / ] [ * ] [ - ]
# 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25
#
# [ tab ] [ q ] [ w ] [ e ] [ r ] [ t ] [ y ] [ u ] [ i ] [ o ] [ p ] [ [ ] [ ] ] [ \ ] [del] [end] [pdn] [ 7 ] [ 8 ] [ 9 ] [ + ]
# 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a
#
# [ caps ] [ a ] [ s ] [ d ] [ f ] [ g ] [ h ] [ j ] [ k ] [ l ] [ ; ] [ ' ] [ enter ] [ 4 ] [ 5 ] [ 6 ]
# 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a
#
# [shft] [ \ ] [ z ] [ x ] [ c ] [ v ] [ b ] [ n ] [ m ] [ , ] [ . ] [ / ] [ shift ] [ up] [ 1 ] [ 2 ] [ 3 ] [ent]
# 0x4b 0x69 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b
#
# [ ctrl ] [ cmd ] [ space ] [ cmd ] [ ctrl ] [lft] [dwn] [rgt] [ 0 ] [ . ]
# 0x5c 0x5d 0x5e 0x5f 0x60 0x61 0x62 0x63 0x64 0x65
#
# NOTE: Key 0x69 does not exist on US keyboards
# NOTE: On a Microsoft Natural Keyboard:
# left option = 0x66
# right option = 0x67
# menu key = 0x68
# NOTE: On an Apple Extended Keyboard:
# left option = 0x66
# right option = 0x67
# keypad '=' = 0x6a
# power key = 0x6b
Version = 3
CapsLock = 0x3b
ScrollLock = 0x0f
NumLock = 0x22
LShift = 0x4b
RShift = 0x56
LCommand = 0x5c
RCommand = 0x67
LControl = 0x5d
RControl = 0x60
LOption = 0x66
ROption = 0x5f
Menu = 0x68
#
# Lock settings
# To set NumLock, do the following:
# LockSettings = NumLock
#
# To set everything, do the following:
# LockSettings = CapsLock NumLock ScrollLock
#
LockSettings =
# Legend:
# n = Normal
# s = Shift
# c = Control
# C = CapsLock
# o = Option
# Key n s c o os C Cs Co Cos
Key 0x00 = '' '' '' '' '' '' '' '' ''
Key 0x01 = 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b
Key 0x02 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x03 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x04 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x05 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x06 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x07 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x08 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x09 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0a = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0b = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0c = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0d = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0e = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0f = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x10 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x11 = ']' '[' '' ' ' '' ']' '[' ' ' ''
Key 0x12 = '1' '!' '' '~' '' '1' '!' '~' ''
Key 0x13 = '2' '@' '' 0xcb87 '' '2' '"' 0xcb87 ''
Key 0x14 = '3' '#' '' '^' '' '3' '#' '^' ''
Key 0x15 = '4' '$' '' 0xcb98 '' '4' 0xc2a4 0xcb98 ''
Key 0x16 = '5' '%' '' 0xc2b0 '' '5' '%' 0xc2b0 ''
Key 0x17 = '6' '^' '' 0xcb9b '' '6' '&' 0xcb9b ''
Key 0x18 = '7' '&' '' '`' '' '7' '/' '`' ''
Key 0x19 = '8' '*' '' 0xcb99 '' '8' '(' 0xcb99 ''
Key 0x1a = '9' '(' '' 0xc2b4 '' '9' ')' 0xc2b4 ''
Key 0x1b = '0' ')' '' 0xcb9d '' '0' '=' 0xcb9d ''
Key 0x1c = '-' '_' '' 0xc2a8 '' '+' '?' 0xc2a8 ''
Key 0x1d = '=' '+' '' 0xc2b8 '' '\'' '*' 0xc2b8 ''
Key 0x1e = 0x08 0x08 0x1c 0x08 0x08 0x08 0x08 0x08 0x08
Key 0x1f = 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05
Key 0x20 = 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
Key 0x21 = 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b
Key 0x22 = '' '' '' '' '' '' '' '' ''
Key 0x23 = '/' '/' '/' '/' '/' '/' '/' '/' '/'
Key 0x24 = '*' '*' '*' '*' '*' '*' '*' '*' '*'
Key 0x25 = '-' '-' '-' '-' '-' '-' '-' '-' '-'
Key 0x26 = 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09
Key 0x27 = 'q' 'Q' 0x11 '\\' '' 'Q' 'q' '\\' ''
Key 0x28 = 'w' 'W' 0x17 '|' '' 'W' 'w' '|' ''
Key 0x29 = 'e' 'E' 0x05 0xe282ac '' 'E' 'e' 0xe282ac ''
Key 0x2a = 'r' 'R' 0x12 ' ' '' 'R' 'r' ' ' ''
Key 0x2b = 't' 'T' 0x14 ' ' '' 'T' 't' ' ' ''
Key 0x2c = 'y' 'Y' 0x1a ' ' '' 'Z' 'z' ' ' ''
Key 0x2d = 'u' 'U' 0x15 ' ' '' 'U' 'u' ' ' ''
Key 0x2e = 'i' 'I' 0x09 ' ' '' 'I' 'i' ' ' ''
Key 0x2f = 'o' 'O' 0x0f ' ' '' 'O' 'o' ' ' ''
Key 0x30 = 'p' 'P' 0x10 ' ' '' 'P' 'p' ' ' ''
Key 0x31 = 0xc483 0xc482 '' '[' '' 0xc482 0xc483 0xc3b7 ''
Key 0x32 = 0xc3ae 0xc38e '' ']' '' 0xc38e 0xc3ae 0xc397 ''
Key 0x33 = 0xc3a2 0xc382 '' ' ' '' 0xc382 0xc3a2 ' ' ''
Key 0x34 = 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f
Key 0x35 = 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04
Key 0x36 = 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c
Key 0x37 = 0x01 '7' 0x01 0x01 '7' 0x01 '7' 0x01 '7'
Key 0x38 = 0x1e '8' 0x1e 0x1e '8' 0x1e '8' 0x1e '8'
Key 0x39 = 0x0b '9' 0x0b 0x0b '9' 0x0b '9' 0x0b '9'
Key 0x3a = '+' '+' '+' '+' '+' '+' '+' '+' '+'
Key 0x3b = '' '' '' '' '' '' '' '' ''
Key 0x3c = 'a' 'A' 0x01 ' ' '' 'A' 'a' ' ' ''
Key 0x3d = 's' 'S' 0x13 0xc491 '' 'S' 's' 0xc491 ''
Key 0x3e = 'd' 'D' 0x04 0xc490 '' 'D' 'd' 0xc490 ''
Key 0x3f = 'f' 'F' 0x06 '[' '' 'F' 'f' '[' ''
Key 0x40 = 'g' 'G' 0x07 ']' '' 'G' 'g' ']' ''
Key 0x41 = 'h' 'H' 0x08 ' ' '' 'H' 'h' ' ' ''
Key 0x42 = 'j' 'J' 0x0a ' ' '' 'J' 'j' ' ' ''
Key 0x43 = 'k' 'K' 0x0b 0xc582 '' 'K' 'k' 0xc582 ''
Key 0x44 = 'l' 'L' 0x0c 0xc581 '' 'L' 'l' 0xc581 ''
Key 0x45 = 0xc59f 0xc59e '' ';' '' 0xc59e 0xc59f '$' ''
Key 0x46 = 0xc5a3 0xc5a2 '' '\'' '"' 0xc5a2 0xc5a3 0xc39f ''
Key 0x47 = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a
Key 0x48 = 0x1c '4' 0x1c 0x1c '4' 0x1c '4' 0x1c '4'
Key 0x49 = '' '5' '' '' '5' '' '5' '' '5'
Key 0x4a = 0x1d '6' 0x1d 0x1d '6' 0x1d '6' 0x1d '6'
Key 0x4b = '' '' '' '' '' '' '' '' ''
Key 0x4c = 'z' 'Z' 0x19 ' ' '' 'Y' 'y' ' ' ''
Key 0x4d = 'x' 'X' 0x18 ' ' '' 'X' 'x' ' ' ''
Key 0x4e = 'c' 'C' 0x03 ' ' '' 'C' 'c' ' ' ''
Key 0x4f = 'v' 'V' 0x16 '@' '' 'V' 'v' '@' ''
Key 0x50 = 'b' 'B' 0x02 '{' '' 'B' 'b' '{' ''
Key 0x51 = 'n' 'N' 0x0e '}' '' 'N' 'n' '}' ''
Key 0x52 = 'm' 'M' 0x0d 0xc2a7 '' 'M' 'm' 0xc2a7 ''
Key 0x53 = ',' ';' '' '<' '' ',' ';' '<' ''
Key 0x54 = '.' ':' '' '>' '' '.' ':' '>' ''
Key 0x55 = '/' '?' 0x1f ' ' '' '-' '_' ' ' ''
Key 0x56 = '' '' '' '' '' '' '' '' ''
Key 0x57 = 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e
Key 0x58 = 0x04 '1' 0x04 0x04 '1' 0x04 '1' 0x04 '1'
Key 0x59 = 0x1f '2' 0x1f 0x1f '2' 0x1f '2' 0x1f '2'
Key 0x5a = 0x0c '3' 0x0c 0x0c '3' 0x0c '3' 0x0c '3'
Key 0x5b = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a
Key 0x5c = '' '' '' '' '' '' '' '' ''
Key 0x5d = '' '' '' '' '' '' '' '' ''
Key 0x5e = ' ' ' ' 0x00 ' ' ' ' ' ' ' ' ' ' ' '
Key 0x5f = '' '' '' '' '' '' '' '' ''
Key 0x60 = '' '' '' '' '' '' '' '' ''
Key 0x61 = 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c
Key 0x62 = 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f
Key 0x63 = 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d
Key 0x64 = 0x05 '0' 0x05 0x05 '0' 0x05 '0' 0x05 '0'
Key 0x65 = 0x7f ',' 0x7f 0x7f ',' 0x7f ',' 0x7f ','
Key 0x66 = '' '' '' '' '' '' '' '' ''
Key 0x67 = '' '' '' '' '' '' '' '' ''
Key 0x68 = '' '' '' '' '' '' '' '' ''
Key 0x69 = '<' '>' 0x1c ' ' '' '<' '>' ' ' ''
Key 0x6a = '' '' '' '' '' '' '' '' ''
Key 0x6b = '' '' '' '' '' '' '' '' ''
Key 0x6c = '' '' '' '' '' '' '' '' ''
Key 0x6d = '' '' '' '' '' '' '' '' ''
Key 0x6e = '' '' '' '' '' '' '' '' ''
Key 0x6f = '' '' '' '' '' '' '' '' ''
Key 0x70 = '' '' '' '' '' '' '' '' ''
Key 0x71 = '' '' '' '' '' '' '' '' ''
Key 0x72 = '' '' '' '' '' '' '' '' ''
Key 0x73 = '' '' '' '' '' '' '' '' ''
Key 0x74 = '' '' '' '' '' '' '' '' ''
Key 0x75 = '' '' '' '' '' '' '' '' ''
Key 0x76 = '' '' '' '' '' '' '' '' ''
Key 0x77 = '' '' '' '' '' '' '' '' ''
Key 0x78 = '' '' '' '' '' '' '' '' ''
Key 0x79 = '' '' '' '' '' '' '' '' ''
Key 0x7a = '' '' '' '' '' '' '' '' ''
Key 0x7b = '' '' '' '' '' '' '' '' ''
Key 0x7c = '' '' '' '' '' '' '' '' ''
Key 0x7d = '' '' '' '' '' '' '' '' ''
Key 0x7e = '' '' '' '' '' '' '' '' ''
Key 0x7f = '' '' '' '' '' '' '' '' ''
Acute ' ' = 0xc2b4
Acute 'A' = 0xc381
Acute 'E' = 0xc389
Acute 'I' = 0xc38d
Acute 'O' = 0xc393
Acute 'U' = 0xc39a
Acute 'Y' = 0xc39d
Acute 'a' = 0xc3a1
Acute 'e' = 0xc3a9
Acute 'i' = 0xc3ad
Acute 'o' = 0xc3b3
Acute 'u' = 0xc3ba
Acute 'y' = 0xc3bd
AcuteTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift
Grave ' ' = '`'
Grave 'A' = 0xc380
Grave 'E' = 0xc388
Grave 'I' = 0xc38c
Grave 'O' = 0xc392
Grave 'U' = 0xc399
Grave 'a' = 0xc3a0
Grave 'e' = 0xc3a8
Grave 'i' = 0xc3ac
Grave 'o' = 0xc3b2
Grave 'u' = 0xc3b9
GraveTab =
Circumflex ' ' = '^'
Circumflex 'A' = 0xc382
Circumflex 'E' = 0xc38a
Circumflex 'I' = 0xc38e
Circumflex 'O' = 0xc394
Circumflex 'U' = 0xc39b
Circumflex 'a' = 0xc3a2
Circumflex 'e' = 0xc3aa
Circumflex 'i' = 0xc3ae
Circumflex 'o' = 0xc3b4
Circumflex 'u' = 0xc3bb
CircumflexTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift
Diaeresis ' ' = 0xc2a8
Diaeresis 'A' = 0xc384
Diaeresis 'E' = 0xc38b
Diaeresis 'I' = 0xc38f
Diaeresis 'O' = 0xc396
Diaeresis 'U' = 0xc39c
Diaeresis 'Y' = 0xc5b8
Diaeresis 'a' = 0xc3a4
Diaeresis 'e' = 0xc3ab
Diaeresis 'i' = 0xc3af
Diaeresis 'o' = 0xc3b6
Diaeresis 'u' = 0xc3bc
Diaeresis 'y' = 0xc3bf
DiaeresisTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift
Tilde ' ' = '~'
Tilde 'A' = 0xc383
Tilde 'O' = 0xc395
Tilde 'N' = 0xc391
Tilde 'a' = 0xc3a3
Tilde 'o' = 0xc3b5
Tilde 'n' = 0xc3b1
TildeTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift
2 Likes
Iโve sent it as the following proposed change: https://review.haiku-os.org/c/haiku/+/7624
Edit: notice that Iโve reverted the Ctrl<->Cmd switch, just to make it match the rest of the default .keymaps (users can always do the switch back if they desire, I normally do ).
2 Likes
andianton:
But I want to inform you that both Linux and BSD (Windows does not use it) has also another kind of keymap, which is based on US standard keyboard, with โฤลลฃรฎรขโ characters (diacritics) mapped on ALT+A, ALT+S, ALT+T, ALT+I and ALT+Q. I can also generate that keymap, for the Linux/BSD people which are confortable with this keymapping (I used it 15 years ago in Linux, but Iโm not a Linux user anymore). I remember that keymap was called ro_standard_cedilla or something similar. I should check for the real name on a friend Linux mint box and I will go back with that keymap here. Thanks agan, glad to find you!
If wikipedia is to be believed this keymap would be called โSecondaryโ. It would probably be nice to have both available.
The current Romanian National Standard SR 13392:2004 establishes two layouts for Romanian keyboards: a "primary" one and a "secondary" one.
The "primary" layout is intended for more traditional users that learned long ago how to type with older, Microsoft-style implementations of the Romanian keyboard. The "secondary" layout is mainly used by programmers and it does not contradict the physical arrangement of keys on a US-style keyboard. The "secondary" arrangement is used as the default one by t...
The other ro keymap (programmers keymap) is done. I will put it here as soon as possible.
1 Like
Pulkomandy left a review comment on the change request BiPolar uploaded.
You can see it here: https://review.haiku-os.org/c/haiku/+/7624
1 Like
Here it is the romanian (programmers) keymap. The ฤลลฃรฎรข diacritics ar mapped as ALT+A, ALT+S, ALT+T, ALT+I and ALT+Q. The other keys are the same as in the standard US Keyboard.
#!/bin/keymap -s
Raw key numbering for 102-key keyboardโฆ
[sys] [brk]
0x7e 0x7f
[esc] [ f1] [ f2] [ f3] [ f4] [ f5] [ f6] [ f7] [ f8] [ f9] [f10] [f11] [f12] [prn] [scr] [pau]
0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 K E Y P A D K E Y S
[ ` ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 0 ] [ - ] [ = ] [ bck ] [ins] [hme] [pup] [num] [ / ] [ * ] [ - ]
0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25
[ tab ] [ q ] [ w ] [ e ] [ r ] [ t ] [ y ] [ u ] [ i ] [ o ] [ p ] [ ] [ \ ] [del] [end] [pdn] [ 7 ] [ 8 ] [ 9 ] [ + ]
0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a
[ caps ] [ a ] [ s ] [ d ] [ f ] [ g ] [ h ] [ j ] [ k ] [ l ] [ ; ] [ โ ] [ enter ] [ 4 ] [ 5 ] [ 6 ]
0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a
[shft] [ \ ] [ z ] [ x ] [ c ] [ v ] [ b ] [ n ] [ m ] [ , ] [ . ] [ / ] [ shift ] [ up] [ 1 ] [ 2 ] [ 3 ] [ent]
0x4b 0x69 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b
[ ctrl ] [ cmd ] [ space ] [ cmd ] [ ctrl ] [lft] [dwn] [rgt] [ 0 ] [ . ]
0x5c 0x5d 0x5e 0x5f 0x60 0x61 0x62 0x63 0x64 0x65
NOTE: Key 0x69 does not exist on US keyboards
NOTE: On a Microsoft Natural Keyboard:
left option = 0x66
right option = 0x67
menu key = 0x68
NOTE: On an Apple Extended Keyboard:
left option = 0x66
right option = 0x67
keypad โ=โ = 0x6a
power key = 0x6b
Version = 3
CapsLock = 0x3b
ScrollLock = 0x0f
NumLock = 0x22
LShift = 0x4b
RShift = 0x56
LCommand = 0x5d
RCommand = 0x67
LControl = 0x5c
RControl = 0x60
LOption = 0x66
ROption = 0x5f
Menu = 0x68
Lock settings
To set NumLock, do the following:
LockSettings = NumLock
To set everything, do the following:
LockSettings = CapsLock NumLock ScrollLock
LockSettings =
Legend:
n = Normal
s = Shift
c = Control
C = CapsLock
o = Option
Key n s c o os C Cs Co Cos
Key 0x00 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x01 = 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b
Key 0x02 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x03 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x04 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x05 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x06 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x07 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x08 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x09 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0a = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0b = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0c = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0d = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0e = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x0f = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x10 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10
Key 0x11 = โ' '~' '' '
โ โ~โ โ' '~' '
โ โ~โ
Key 0x12 = โ1โ โ!โ โโ 0xc2a1 0xc2b9 โ1โ โ!โ 0xc2b9 0xc2a1
Key 0x13 = โ2โ โ@โ 0x00 0xc2b2 0xc2ba โ2โ โ@โ 0xc2ba 0xc2b2
Key 0x14 = โ3โ โ#โ โโ 0xc2b3 0xc2aa โ3โ โ#โ 0xc2aa 0xc2b3
Key 0x15 = โ4โ โ$โ โโ 0xc2a4 0xc2a3 โ4โ โ$โ 0xc2a3 0xc2a4
Key 0x16 = โ5โ โ%โ โโ 0xe282ac โโ โ5โ โ%โ โโ 0xe282ac
Key 0x17 = โ6โ โ^โ 0x1e 0xc2bc โ^โ โ6โ โ^โ 0xc2bc โ^โ
Key 0x18 = โ7โ โ&โ โโ 0xc2bd โโ โ7โ โ&โ โโ 0xc2bd
Key 0x19 = โ8โ โโ โโ 0xc2be โโ โ8โ ' โ โโ 0xc2be
Key 0x1a = โ9โ โ(โ โโ 0xe28098 โโ โ9โ โ(โ โโ 0xe28098
Key 0x1b = โ0โ โ)โ โโ 0xe28099 0xc2b1 โ0โ โ)โ 0xc2b1 0xe28099
Key 0x1c = โ-โ โโ 0x1f 0xc2a5 0xc2af โ-โ ' โ 0xc2af 0xc2a5
Key 0x1d = โ=โ โ+โ โโ 0xc397 0xc3b7 โ=โ โ+โ 0xc3b7 0xc397
Key 0x1e = 0x08 0x08 0x7f 0x08 0x08 0x08 0x08 0x08 0x08
Key 0x1f = 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05
Key 0x20 = 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01
Key 0x21 = 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b
Key 0x22 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x23 = โ/โ โ/โ โ/โ โ/โ โ/โ โ/โ โ/โ โ/โ โ/โ
Key 0x24 = โโ ' โ โโ ' โ โโ ' โ โโ ' โ โ*โ
Key 0x25 = โ-โ โ-โ โ-โ โ-โ โ-โ โ-โ โ-โ โ-โ โ-โ
Key 0x26 = 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09
Key 0x27 = โqโ โQโ 0x11 0xc3a2 0xc382 โQโ โqโ 0xc384 0xc3a4
Key 0x28 = โwโ โWโ 0x17 0xc3a5 0xc385 โWโ โwโ 0xc385 0xc3a5
Key 0x29 = โeโ โEโ 0x05 0xc3a9 0xc389 โEโ โeโ 0xc389 0xc3a9
Key 0x2a = โrโ โRโ 0x12 0xc2ae โโ โRโ โrโ โโ 0xc2ae
Key 0x2b = โtโ โTโ 0x14 0xc5a3 0xc5a2 โTโ โtโ 0xc39e 0xc3be
Key 0x2c = โyโ โYโ 0x19 0xc3bc 0xc39c โYโ โyโ 0xc39c 0xc3bc
Key 0x2d = โuโ โUโ 0x15 0xc3ba 0xc39a โUโ โuโ 0xc39a 0xc3ba
Key 0x2e = โiโ โIโ 0x09 0xc3ae 0xc38e โIโ โiโ 0xc38d 0xc3ad
Key 0x2f = โoโ โOโ 0x0f 0xc3b3 0xc393 โOโ โoโ 0xc393 0xc3b3
Key 0x30 = โpโ โPโ 0x10 0xc3b6 0xc396 โPโ โpโ 0xc396 0xc3b6
Key 0x31 = โ[โ โ{โ 0x1b 0xc2ab โโ โ[โ โ{โ โโ 0xc2ab
Key 0x32 = โ]โ โ}โ 0x1d 0xc2bb โโ โ]โ โ}โ โโ 0xc2bb
Key 0x33 = โ\โ โ|โ 0x1c 0xc2ac 0xc2a6 โ\โ โ|โ 0xc2a6 0xc2ac
Key 0x34 = 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f
Key 0x35 = 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04
Key 0x36 = 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c
Key 0x37 = 0x01 โ7โ 0x01 0x01 โ7โ 0x01 โ7โ โ7โ 0x01
Key 0x38 = 0x1e โ8โ 0x1e 0x1e โ8โ 0x1e โ8โ โ8โ 0x1e
Key 0x39 = 0x0b โ9โ 0x0b 0x0b โ9โ 0x0b โ9โ โ9โ 0x0b
Key 0x3a = โ+โ โ+โ โ+โ โ+โ โ+โ โ+โ โ+โ โ+โ โ+โ
Key 0x3b = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x3c = โaโ โAโ 0x01 0xc483 0xc482 โAโ โaโ 0xc381 0xc3a1
Key 0x3d = โsโ โSโ 0x13 0xc59f 0xc59e โSโ โsโ 0xc2a7 0xc39f
Key 0x3e = โdโ โDโ 0x04 0xc3b0 0xc390 โDโ โdโ 0xc390 0xc3b0
Key 0x3f = โfโ โFโ 0x06 โโ โโ โFโ โfโ โโ โโ
Key 0x40 = โgโ โGโ 0x07 โโ โโ โGโ โgโ โโ โโ
Key 0x41 = โhโ โHโ 0x08 โโ โโ โHโ โhโ โโ โโ
Key 0x42 = โjโ โJโ 0x0a โโ โโ โJโ โjโ โโ โโ
Key 0x43 = โkโ โKโ 0x0b โโ โโ โKโ โkโ โโ โโ
Key 0x44 = โlโ โLโ 0x0c 0xc3b8 0xc398 โLโ โlโ 0xc398 0xc3b8
Key 0x45 = โ;โ โ:โ โโ 0xc2b6 0xc2b0 โ;โ โ:โ 0xc2b0 0xc2b6
Key 0x46 = โ'โ โ"โ โโ 0xc2b4 0xc2a8 โ'โ โ"โ 0xc2b4 0xc2a8
Key 0x47 = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a
Key 0x48 = 0x1c โ4โ 0x1c 0x1c โ4โ 0x1c โ4โ โ4โ 0x1c
Key 0x49 = โโ โ5โ โโ โโ โ5โ โโ โ5โ โ5โ โโ
Key 0x4a = 0x1d โ6โ 0x1d 0x1d โ6โ 0x1d โ6โ โ6โ 0x1d
Key 0x4b = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x4c = โzโ โZโ 0x1a 0xc3a6 0xc386 โZโ โzโ 0xc386 0xc3a6
Key 0x4d = โxโ โXโ 0x18 โโ โโ โXโ โxโ โโ โโ
Key 0x4e = โcโ โCโ 0x03 0xc2a9 0xc2a2 โCโ โcโ 0xc2a9 0xc2a2
Key 0x4f = โvโ โVโ 0x16 0xe2889a โโ โVโ โvโ โโ 0xe2889a
Key 0x50 = โbโ โBโ 0x02 โโ โโ โBโ โbโ โโ โโ
Key 0x51 = โnโ โNโ 0x0e 0xc3b1 0xc391 โNโ โnโ 0xc391 0xc3b1
Key 0x52 = โmโ โMโ 0x0d 0xc2b5 โโ โMโ โmโ โโ 0xc2b5
Key 0x53 = โ,โ โ<โ โโ 0xc3a7 0xc387 โ,โ โ<โ 0xc387 0xc3a7
Key 0x54 = โ.โ โ>โ โโ 0xc2b7 0xc2b8 โ.โ โ>โ 0xc2b8 0xc2b7
Key 0x55 = โ/โ โ?โ โโ โโ โโ โ/โ โ?โ โโ โโ
Key 0x56 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x57 = 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e
Key 0x58 = 0x04 โ1โ 0x04 0x04 โ1โ 0x04 โ1โ โ1โ 0x04
Key 0x59 = 0x1f โ2โ 0x1f 0x1f โ2โ 0x1f โ2โ โ2โ 0x1f
Key 0x5a = 0x0c โ3โ 0x0c 0x0c โ3โ 0x0c โ3โ โ3โ 0x0c
Key 0x5b = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a
Key 0x5c = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x5d = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x5e = โ โ โ โ 0x00 โ โ โโ โ โ โ โ โโ โ โ
Key 0x5f = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x60 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x61 = 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c
Key 0x62 = 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f
Key 0x63 = 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d
Key 0x64 = 0x05 โ0โ 0x05 0x05 โ0โ 0x05 โ0โ โ0โ 0x05
Key 0x65 = 0x7f โ.โ 0x7f 0x7f โ.โ 0x7f โ.โ โ.โ 0x7f
Key 0x66 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x67 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x68 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x69 = โ\โ โ|โ 0x1c 0xc2ac 0xc2a6 โ\โ โ|โ 0xc2a6 0xc2ac
Key 0x6a = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x6b = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x6c = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x6d = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x6e = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x6f = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x70 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x71 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x72 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x73 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x74 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x75 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x76 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x77 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x78 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x79 = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x7a = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x7b = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x7c = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x7d = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x7e = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Key 0x7f = โโ โโ โโ โโ โโ โโ โโ โโ โโ
Acute โ โ = 0xc2b4
Acute โAโ = 0xc381
Acute โCโ = 0xc387
Acute โEโ = 0xc389
Acute โIโ = 0xc38d
Acute โOโ = 0xc393
Acute โUโ = 0xc39a
Acute โYโ = 0xc39d
Acute โaโ = 0xc3a1
Acute โcโ = 0xc3a7
Acute โeโ = 0xc3a9
Acute โiโ = 0xc3ad
Acute โoโ = 0xc3b3
Acute โuโ = 0xc3ba
Acute โyโ = 0xc3bd
AcuteTab = Option CapsLock-Option
Grave โ โ = โ`โ
Grave โAโ = 0xc380
Grave โEโ = 0xc388
Grave โIโ = 0xc38c
Grave โOโ = 0xc392
Grave โUโ = 0xc399
Grave โaโ = 0xc3a0
Grave โeโ = 0xc3a8
Grave โiโ = 0xc3ac
Grave โoโ = 0xc3b2
Grave โuโ = 0xc3b9
GraveTab = Option CapsLock-Option
Circumflex โ โ = โ^โ
Circumflex โAโ = 0xc382
Circumflex โEโ = 0xc38a
Circumflex โIโ = 0xc38e
Circumflex โOโ = 0xc394
Circumflex โUโ = 0xc39b
Circumflex โaโ = 0xc3a2
Circumflex โeโ = 0xc3aa
Circumflex โiโ = 0xc3ae
Circumflex โoโ = 0xc3b4
Circumflex โuโ = 0xc3bb
CircumflexTab = Option-Shift
Diaeresis โ โ = 0xc2a8
Diaeresis โAโ = 0xc384
Diaeresis โEโ = 0xc38b
Diaeresis โIโ = 0xc38f
Diaeresis โOโ = 0xc396
Diaeresis โUโ = 0xc39c
Diaeresis โYโ = 0xc5b8
Diaeresis โaโ = 0xc3a4
Diaeresis โeโ = 0xc3ab
Diaeresis โiโ = 0xc3af
Diaeresis โoโ = 0xc3b6
Diaeresis โuโ = 0xc3bc
Diaeresis โyโ = 0xc3bf
DiaeresisTab = Option-Shift
Tilde โ โ = โ~โ
Tilde โAโ = 0xc383
Tilde โOโ = 0xc395
Tilde โNโ = 0xc391
Tilde โaโ = 0xc3a3
Tilde โoโ = 0xc3b5
Tilde โnโ = 0xc3b1
TildeTab = Option-Shift