Hi,

I wrote my very first SDL 2.0 app, and it tells me:

Keyboard layout unknown, please send the following to the SDL mailing list (sdl at libsdl.org):

code = 1, sym = 0xFF1B (Escape) scancode = 41 (Escape)

code = 2, sym = 0x31 (1) scancode = 30 (1)

code = 3, sym = 0x32 (2) scancode = 31 (2)

code = 4, sym = 0x33 (3) scancode = 32 (3)

code = 5, sym = 0x34 (4) scancode = 33 (4)

code = 6, sym = 0x35 (5) scancode = 34 (5)

code = 7, sym = 0x36 (6) scancode = 35 (6)

code = 8, sym = 0x37 (7) scancode = 36 (7)

code = 9, sym = 0x38 (8) scancode = 37 (8)

code = 10, sym = 0x39 (9) scancode = 38 (9)

code = 11, sym = 0x30 (0) scancode = 39 (0)

code = 12, sym = 0x2B (plus) scancode not found

code = 13, sym = 0xFE51 (dead_acute) scancode = 0 ()

code = 14, sym = 0xFF08 (BackSpace) scancode = 42 (Backspace)

code = 15, sym = 0xFF09 (Tab) scancode = 43 (Tab)

code = 16, sym = 0x71 (q) scancode = 20 (Q)

code = 17, sym = 0x77 (w) scancode = 26 (W)

code = 18, sym = 0x65 (e) scancode = 8 (E)

code = 19, sym = 0x72 ® scancode = 21 ®

code = 20, sym = 0x74 (t) scancode = 23 (T)

code = 21, sym = 0x79 (y) scancode = 28 (Y)

code = 22, sym = 0x75 (u) scancode = 24 (U)

code = 23, sym = 0x69 (i) scancode = 12 (I)

code = 24, sym = 0x6F (o) scancode = 18 (O)

code = 25, sym = 0x70 § scancode = 19 §

code = 26, sym = 0xE5 (aring) scancode not found

code = 27, sym = 0xFE57 (dead_diaeresis) scancode = 0 ()

code = 28, sym = 0xFF0D (Return) scancode = 40 (Return)

code = 29, sym = 0xFFE3 (Control_L) scancode = 224 (Left Ctrl)

code = 30, sym = 0x61 (a) scancode = 4 (A)

code = 31, sym = 0x73 (s) scancode = 22 (S)

code = 32, sym = 0x64 (d) scancode = 7 (D)

code = 33, sym = 0x66 (f) scancode = 9 (F)

code = 34, sym = 0x67 (g) scancode = 10 (G)

code = 35, sym = 0x68 (h) scancode = 11 (H)

code = 36, sym = 0x6A (j) scancode = 13 (J)

code = 37, sym = 0x6B (k) scancode = 14 (K)

code = 38, sym = 0x6C (l) scancode = 15 (L)

code = 39, sym = 0xF6 (odiaeresis) scancode not found

code = 40, sym = 0xE4 (adiaeresis) scancode not found

code = 41, sym = 0xA7 (section) scancode not found

code = 42, sym = 0xFFE1 (Shift_L) scancode = 225 (Left Shift)

code = 43, sym = 0x27 (apostrophe) scancode = 52 (’)

code = 44, sym = 0x7A (z) scancode = 29 (Z)

code = 45, sym = 0x78 (x) scancode = 27 (X)

code = 46, sym = 0x63 © scancode = 6 ©

code = 47, sym = 0x76 (v) scancode = 25 (V)

code = 48, sym = 0x62 (b) scancode = 5 (B)

code = 49, sym = 0x6E (n) scancode = 17 (N)

code = 50, sym = 0x6D (m) scancode = 16 (M)

code = 51, sym = 0x2C (comma) scancode = 54 (,)

code = 52, sym = 0x2E (period) scancode = 55 (.)

code = 53, sym = 0x2D (minus) scancode = 45 (-)

code = 54, sym = 0xFFE2 (Shift_R) scancode = 229 (Right Shift)

code = 55, sym = 0xFFAA (KP_Multiply) scancode = 85 (Keypad *)

code = 56, sym = 0xFFE9 (Alt_L) scancode = 226 (Left Alt)

code = 57, sym = 0x20 (space) scancode = 44 (Space)

code = 58, sym = 0xFFE5 (Caps_Lock) scancode = 57 (CapsLock)

code = 59, sym = 0xFFBE (F1) scancode = 58 (F1)

code = 60, sym = 0xFFBF (F2) scancode = 59 (F2)

code = 61, sym = 0xFFC0 (F3) scancode = 60 (F3)

code = 62, sym = 0xFFC1 (F4) scancode = 61 (F4)

code = 63, sym = 0xFFC2 (F5) scancode = 62 (F5)

code = 64, sym = 0xFFC3 (F6) scancode = 63 (F6)

code = 65, sym = 0xFFC4 (F7) scancode = 64 (F7)

code = 66, sym = 0xFFC5 (F8) scancode = 65 (F8)

code = 67, sym = 0xFFC6 (F9) scancode = 66 (F9)

code = 68, sym = 0xFFC7 (F10) scancode = 67 (F10)

code = 69, sym = 0xFF7F (Num_Lock) scancode = 83 (Numlock)

code = 70, sym = 0xFF14 (Scroll_Lock) scancode = 71 (ScrollLock)

code = 71, sym = 0xFF50 (Home) scancode = 74 (Home)

code = 72, sym = 0xFF97 (KP_Up) scancode = 96 (Keypad 8)

code = 73, sym = 0xFF55 (Prior) scancode = 75 (PageUp)

code = 74, sym = 0xFFAD (KP_Subtract) scancode = 86 (Keypad -)

code = 75, sym = 0xFF96 (KP_Left) scancode = 92 (Keypad 4)

code = 76, sym = 0xFF9D (KP_Begin) scancode = 93 (Keypad 5)

code = 77, sym = 0xFF98 (KP_Right) scancode = 94 (Keypad 6)

code = 78, sym = 0xFFAB (KP_Add) scancode = 87 (Keypad +)

code = 79, sym = 0xFF57 (End) scancode = 77 (End)

code = 80, sym = 0xFF99 (KP_Down) scancode = 90 (Keypad 2)

code = 81, sym = 0xFF56 (Next) scancode = 78 (PageDown)

code = 82, sym = 0xFF9E (KP_Insert) scancode = 98 (Keypad 0)

code = 83, sym = 0xFF9F (KP_Delete) scancode = 99 (Keypad .)

code = 84, sym = 0xFE03 (ISO_Level3_Shift) scancode = 0 ()

code = 86, sym = 0x3C (less) scancode not found

code = 87, sym = 0xFFC8 (F11) scancode = 68 (F11)

code = 88, sym = 0xFFC9 (F12) scancode = 69 (F12)

code = 90, sym = 0xFF26 (Katakana) scancode = 0 ()

code = 91, sym = 0xFF25 (Hiragana) scancode = 0 ()

code = 92, sym = 0xFF23 (Henkan_Mode) scancode = 0 ()

code = 93, sym = 0xFF27 (Hiragana_Katakana) scancode = 0 ()

code = 94, sym = 0xFF22 (Muhenkan) scancode = 0 ()

code = 96, sym = 0xFF8D (KP_Enter) scancode = 88 (Keypad Enter)

code = 97, sym = 0xFFE4 (Control_R) scancode = 228 (Right Ctrl)

code = 98, sym = 0xFFAF (KP_Divide) scancode = 84 (Keypad /)

code = 99, sym = 0xFF61 (Print) scancode = 70 (PrintScreen)

code = 100, sym = 0xFE03 (ISO_Level3_Shift) scancode = 0 ()

code = 101, sym = 0xFF0A (Linefeed) scancode = 0 ()

code = 102, sym = 0xFF50 (Home) scancode = 74 (Home)

code = 103, sym = 0xFF52 (Up) scancode = 82 (Up)

code = 104, sym = 0xFF55 (Prior) scancode = 75 (PageUp)

code = 105, sym = 0xFF51 (Left) scancode = 80 (Left)

code = 106, sym = 0xFF53 (Right) scancode = 79 (Right)

code = 107, sym = 0xFF57 (End) scancode = 77 (End)

code = 108, sym = 0xFF54 (Down) scancode = 81 (Down)

code = 109, sym = 0xFF56 (Next) scancode = 78 (PageDown)

code = 110, sym = 0xFF63 (Insert) scancode = 73 (Insert)

code = 111, sym = 0xFFFF (Delete) scancode = 76 (Delete)

code = 113, sym = 0x1008FF12 (XF86AudioMute) scancode = 0 ()

code = 114, sym = 0x1008FF11 (XF86AudioLowerVolume) scancode = 0 ()

code = 115, sym = 0x1008FF13 (XF86AudioRaiseVolume) scancode = 0 ()

code = 116, sym = 0x1008FF2A (XF86PowerOff) scancode = 0 ()

code = 117, sym = 0xFFBD (KP_Equal) scancode = 103 (Keypad =)

code = 118, sym = 0xB1 (plusminus) scancode not found

code = 119, sym = 0xFF13 (Pause) scancode = 72 (Pause)

code = 120, sym = 0x1008FF4A (XF86LaunchA) scancode = 0 ()

code = 121, sym = 0xFFAE (KP_Decimal) scancode = 99 (Keypad .)

code = 122, sym = 0xFF31 (Hangul) scancode = 0 ()

code = 123, sym = 0xFF34 (Hangul_Hanja) scancode = 0 ()

code = 125, sym = 0xFFEB (Super_L) scancode = 227 (Left GUI)

code = 126, sym = 0xFF20 (Multi_key) scancode = 0 ()

code = 127, sym = 0xFF67 (Menu) scancode = 118 (Menu)

code = 128, sym = 0xFF69 (Cancel) scancode = 120 (Stop)

code = 129, sym = 0xFF66 (Redo) scancode = 121 (Again)

code = 130, sym = 0x1005FF70 (SunProps) scancode = 0 ()

code = 131, sym = 0xFF65 (Undo) scancode = 122 (Undo)

code = 132, sym = 0x1005FF71 (SunFront) scancode = 0 ()

code = 133, sym = 0x1008FF57 (XF86Copy) scancode = 0 ()

code = 134, sym = 0x1005FF73 (SunOpen) scancode = 0 ()

code = 135, sym = 0x1008FF6D (XF86Paste) scancode = 0 ()

code = 136, sym = 0xFF68 (Find) scancode = 126 (Find)

code = 137, sym = 0x1008FF58 (XF86Cut) scancode = 0 ()

code = 138, sym = 0xFF6A (Help) scancode = 117 (Help)

code = 139, sym = 0x1008FF65 (XF86MenuKB) scancode = 0 ()

code = 140, sym = 0x1008FF1D (XF86Calculator) scancode = 0 ()

code = 142, sym = 0x1008FF2F (XF86Sleep) scancode = 0 ()

code = 143, sym = 0x1008FF2B (XF86WakeUp) scancode = 0 ()

code = 144, sym = 0x1008FF5D (XF86Explorer) scancode = 0 ()

code = 145, sym = 0x1008FF7B (XF86Send) scancode = 0 ()

code = 147, sym = 0x1008FF8A (XF86Xfer) scancode = 0 ()

code = 148, sym = 0x1008FF41 (XF86Launch1) scancode = 0 ()

code = 149, sym = 0x1008FF42 (XF86Launch2) scancode = 0 ()

code = 150, sym = 0x1008FF2E (XF86WWW) scancode = 0 ()

code = 151, sym = 0x1008FF5A (XF86DOS) scancode = 0 ()

code = 152, sym = 0x1008FF2D (XF86ScreenSaver) scancode = 0 ()

code = 154, sym = 0x1008FF74 (XF86RotateWindows) scancode = 0 ()

code = 155, sym = 0x1008FF19 (XF86Mail) scancode = 0 ()

code = 156, sym = 0x1008FF30 (XF86Favorites) scancode = 0 ()

code = 157, sym = 0x1008FF33 (XF86MyComputer) scancode = 0 ()

code = 158, sym = 0x1008FF26 (XF86Back) scancode = 0 ()

code = 159, sym = 0x1008FF27 (XF86Forward) scancode = 0 ()

code = 161, sym = 0x1008FF2C (XF86Eject) scancode = 0 ()

code = 162, sym = 0x1008FF2C (XF86Eject) scancode = 0 ()

code = 163, sym = 0x1008FF17 (XF86AudioNext) scancode = 0 ()

code = 164, sym = 0x1008FF14 (XF86AudioPlay) scancode = 0 ()

code = 165, sym = 0x1008FF16 (XF86AudioPrev) scancode = 0 ()

code = 166, sym = 0x1008FF15 (XF86AudioStop) scancode = 0 ()

code = 167, sym = 0x1008FF1C (XF86AudioRecord) scancode = 0 ()

code = 168, sym = 0x1008FF3E (XF86AudioRewind) scancode = 0 ()

code = 169, sym = 0x1008FF6E (XF86Phone) scancode = 0 ()

code = 171, sym = 0x1008FF81 (XF86Tools) scancode = 0 ()

code = 172, sym = 0x1008FF18 (XF86HomePage) scancode = 0 ()

code = 173, sym = 0x1008FF73 (XF86Reload) scancode = 0 ()

code = 174, sym = 0x1008FF56 (XF86Close) scancode = 0 ()

code = 177, sym = 0x1008FF78 (XF86ScrollUp) scancode = 0 ()

code = 178, sym = 0x1008FF79 (XF86ScrollDown) scancode = 0 ()

code = 179, sym = 0x28 (parenleft) scancode not found

code = 180, sym = 0x29 (parenright) scancode not found

code = 181, sym = 0x1008FF68 (XF86New) scancode = 0 ()

code = 182, sym = 0xFF66 (Redo) scancode = 121 (Again)

code = 183, sym = 0x1008FF81 (XF86Tools) scancode = 0 ()

code = 184, sym = 0x1008FF45 (XF86Launch5) scancode = 0 ()

code = 185, sym = 0x1008FF46 (XF86Launch6) scancode = 0 ()

code = 186, sym = 0x1008FF47 (XF86Launch7) scancode = 0 ()

code = 187, sym = 0x1008FF48 (XF86Launch8) scancode = 0 ()

code = 188, sym = 0x1008FF49 (XF86Launch9) scancode = 0 ()

code = 191, sym = 0x1008FFA9 (XF86TouchpadToggle) scancode = 0 ()

code = 192, sym = 0x1008FFB0 (XF86TouchpadOn) scancode = 0 ()

code = 193, sym = 0x1008FFB1 (XF86TouchpadOff) scancode = 0 ()

code = 195, sym = 0xFF7E (Mode_switch) scancode = 257 (ModeSwitch)

code = 200, sym = 0x1008FF14 (XF86AudioPlay) scancode = 0 ()

code = 201, sym = 0x1008FF31 (XF86AudioPause) scancode = 0 ()

code = 202, sym = 0x1008FF43 (XF86Launch3) scancode = 0 ()

code = 203, sym = 0x1008FF44 (XF86Launch4) scancode = 0 ()

code = 204, sym = 0x1008FF4B (XF86LaunchB) scancode = 0 ()

code = 205, sym = 0x1008FFA7 (XF86Suspend) scancode = 0 ()

code = 206, sym = 0x1008FF56 (XF86Close) scancode = 0 ()

code = 207, sym = 0x1008FF14 (XF86AudioPlay) scancode = 0 ()

code = 208, sym = 0x1008FF97 (XF86AudioForward) scancode = 0 ()

code = 210, sym = 0xFF61 (Print) scancode = 70 (PrintScreen)

code = 212, sym = 0x1008FF8F (XF86WebCam) scancode = 0 ()

code = 215, sym = 0x1008FF19 (XF86Mail) scancode = 0 ()

code = 216, sym = 0x1008FF8E (XF86Messenger) scancode = 0 ()

code = 217, sym = 0x1008FF1B (XF86Search) scancode = 0 ()

code = 218, sym = 0x1008FF5F (XF86Go) scancode = 0 ()

code = 219, sym = 0x1008FF3C (XF86Finance) scancode = 0 ()

code = 220, sym = 0x1008FF5E (XF86Game) scancode = 0 ()

code = 221, sym = 0x1008FF36 (XF86Shop) scancode = 0 ()

code = 223, sym = 0xFF69 (Cancel) scancode = 120 (Stop)

code = 224, sym = 0x1008FF03 (XF86MonBrightnessDown) scancode = 0 ()

code = 225, sym = 0x1008FF02 (XF86MonBrightnessUp) scancode = 0 ()

code = 226, sym = 0x1008FF32 (XF86AudioMedia) scancode = 0 ()

code = 227, sym = 0x1008FF59 (XF86Display) scancode = 0 ()

code = 228, sym = 0x1008FF04 (XF86KbdLightOnOff) scancode = 0 ()

code = 229, sym = 0x1008FF06 (XF86KbdBrightnessDown) scancode = 0 ()

code = 230, sym = 0x1008FF05 (XF86KbdBrightnessUp) scancode = 0 ()

code = 231, sym = 0x1008FF7B (XF86Send) scancode = 0 ()

code = 232, sym = 0x1008FF72 (XF86Reply) scancode = 0 ()

code = 233, sym = 0x1008FF90 (XF86MailForward) scancode = 0 ()

code = 234, sym = 0x1008FF77 (XF86Save) scancode = 0 ()

code = 235, sym = 0x1008FF5B (XF86Documents) scancode = 0 ()

code = 236, sym = 0x1008FF93 (XF86Battery) scancode = 0 ()

code = 237, sym = 0x1008FF94 (XF86Bluetooth) scancode = 0 ()

code = 238, sym = 0x1008FF95 (XF86WLAN) scancode = 0 ()

It didn’t ask me to tell anything about the platform, but I guess

you want to know at least something.

This is on Gentoo Linux on an Asus G50V laptop, SDL version

media-libs/libsdl-2.0.0_pre9999 (steam overlay) which should mean

it gets the tip from hg or equivalent snapshot.

Running under X, which says the following about my keys:

[ 51.634] (II) config/udev: Adding input device Asus Laptop extra buttons (/dev/input/event0)

[ 51.634] (**) Asus Laptop extra buttons: Applying InputClass “evdev keyboard catchall”
[ 51.634] (**) Asus Laptop extra buttons: Applying InputClass “Keyboard-finnish-all”

[ 51.634] (II) Using input driver ‘evdev’ for ‘Asus Laptop extra buttons’

[ 51.634] (

**) Asus Laptop extra buttons: always reports core events**

[ 51.634] () evdev: Asus Laptop extra buttons: Device: “/dev/input/event0”

[ 51.634] (

[ 51.634] (–) evdev: Asus Laptop extra buttons: Vendor 0 Product 0

[ 51.634] (–) evdev: Asus Laptop extra buttons: Found keys

[ 51.634] (II) evdev: Asus Laptop extra buttons: Configuring as keyboard

[ 51.634] (

**) Option “config_info” “udev:/sys/devices/platform/asus_laptop/input/input0/event0”**

[ 51.634] (II) XINPUT: Adding extended input device “Asus Laptop extra buttons” (type: KEYBOARD, id 10)

[ 51.634] () Option “xkb_rules” “evdev”

[ 51.634] (II) XINPUT: Adding extended input device “Asus Laptop extra buttons” (type: KEYBOARD, id 10)

[ 51.634] (

[ 51.634] (

**) Option “xkb_model” “evdev”**

[ 51.634] () Option “xkb_layout” “fi”

[ 51.634] (

[ 51.635] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event1)

[ 51.635] (

**) AT Translated Set 2 keyboard: Applying InputClass “evdev keyboard catchall”**

[ 51.635] () AT Translated Set 2 keyboard: Applying InputClass “Keyboard-finnish-all”

[ 51.635] (

[ 51.635] (II) Using input driver ‘evdev’ for ‘AT Translated Set 2 keyboard’

[ 51.635] (

**) AT Translated Set 2 keyboard: always reports core events**

[ 51.635] () evdev: AT Translated Set 2 keyboard: Device: “/dev/input/event1”

[ 51.635] (

[ 51.635] (–) evdev: AT Translated Set 2 keyboard: Vendor 0x1 Product 0x1

[ 51.635] (–) evdev: AT Translated Set 2 keyboard: Found keys

[ 51.635] (II) evdev: AT Translated Set 2 keyboard: Configuring as keyboard

[ 51.635] (

**) Option “config_info” “udev:/sys/devices/platform/i8042/serio0/input/input1/event1”**

[ 51.635] (II) XINPUT: Adding extended input device “AT Translated Set 2 keyboard” (type: KEYBOARD, id 11)

[ 51.635] () Option “xkb_rules” “evdev”

[ 51.635] (II) XINPUT: Adding extended input device “AT Translated Set 2 keyboard” (type: KEYBOARD, id 11)

[ 51.635] (

[ 51.635] (

**) Option “xkb_model” “evdev”**

[ 51.635] () Option “xkb_layout” “fi”

[ 51.635] (

Plus some others like “Sleep Button”, “Power Button”, and “Video

Bus”, that are all configured as keyboards by the evdev DDX.

There you go. I tried quickly on googling, searching your mailing

list archives (whose search index was last updated in 2012), and

manually skimming through the topics on the last couple of months

without finding any mention of this.

I’m also not subscribed to the list.

Cheers,

pq