#!/usr/bin/env bash # create a template for the dell d830 # split into header, deflayer, defcfg and defsrc to allow composition. # This is sourced by 020_kmonad.sh # NB 'Fn', Vol up', 'Vol down' and 'Mute' do not give keycodes. # The Fn key is intercepted by the Embedded Controller ("EC") of your laptop. # It doesn't produce a normal key symbol # /usr/bin/acpi_listen # button/volumedown VOLDN 00000080 00000000 K # button/volumeup VOLUP 00000080 00000000 K # button/mute MUTE 00000080 00000000 K # button/suspend SUSP 00000080 00000000 K # button/battery BAT 00000080 00000000 K # Fn F7 == video/switchmode VMOD 00000080 00000000 K # # UK ISO Layout # https://www.toptal.com/developersvdcode # /usr/bin/xev - for x events # xev | grep -A2 --line-buffered '^KeyRelease' \ # | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p' # Once you have the keycode you don't need the Fn to map the key. # # /usr/bin/showkey -S - for kernel level (multimedia keys) # /usr/bin/xkeycaps - for keymaps and events. # # /usr/share/X11/locale/en_US.UTF-8/Compose gives all the available characters # available through AltGr ## numbersign Non-US Hash key : 1 numbersign/51 asciitilde # # * HID Usage ID: 0x070031 (Usage Page 0x07 = Keyboard, Usage ID 0x31 for Keyboard 3 and #) # * Linux keycode: 51 (maps to KEY_3 or KEY_HASH) # * USB HID code: Backslash (via event.code, us position for \ key) # * X11 keysym: numbersign # * Unicode: U+0023 (#) # * Location: On UK/ISO keyboards, left of the enter key. ## backslash Non-US Back Slash : 94 backslash/4 bar # # * HID Usage ID: 0x070064 (Usage Page 0x07 = Keyboard, Usage ID 0x64) # * Linux keycode: 94 (maps to KEY_102ND or KEY_BACKSLASH) # * USB HID code: IntlBackslash (via event.code) # * X11 keysym: backslash # * Unicode: U+005C (character \) # * Location: 102nd key on ISO keyboards (between Left Shift and Z) ## sterling £ rather than # for shift 3 : 12 3/12 sterling # # * Linux keycode: 12 (on UK ISO layout, maps to KEY_3) # * USB HID code: Digit3 (via event.code) # * X11 keysym: sterling (when layout is set to gb) # * HID Usage ID: 0x070031 (Keyboard 3 and #, interpreted as £ via layout mapping) # * Unicode: U+00A3 (British pound sign) ## EuroSign key as third key on 4 : 3 4/13 dollar/13 EuroSign # # * Linux keycode: 13 (maps to KEY_4 on most layouts) # * USB HID code: Digit4 (via event.code) # * X11 keysym: EuroSign # * HID Usage ID: 0x070034 (Keyboard 4 and Dollar) # * Unicode: U+20AC (€) # ## Fn key in blue # # Moon - Fn F1 == # * Linux keycode: 213 # * X11 keysym: XF86Suspend | 0x1008ffa7 # # Battery Fn F3 # * Linux keycode: 244 # * X11 keysym: XF86Battery | 0x1008ff93 # # Screen = Fn F7 # * Linux keycode: # * X11 keysym: # * ACPI: video/switchmode VMOD 00000080 00000000 K # # CRT/LCD = Fn F8 # * Linux keycode: # * X11 keysym: # * ACPI: video/switchmode VMOD 00000080 00000000 # # SysRq = Fn Prnt Scrn # * Linux keycode: # * X11 keysym: # * ACPI: # # Scroll Lk = Fn Num Lk # * Linux keycode: # * X11 keysym: # * ACPI: # # Break = Fn Pause # * Linux keycode: # * X11 keysym: # * ACPI: # # Auto Brightness = Fn Left Arrow # * Linux keycode: 248 should be 244 # * X11 keysym: NoSymbol should be # * ACPI: # # Keyboard Light = Fn Right Arrow # * Linux keycode: # * X11 keysym: # * ACPI: conf_print_dell_d830_template_header() { # # Brightness Up = Fn Up Arrow # * Linux keycode: 233 # * X11 keysym: XF86MonBrightnessUp # * ACPI: video/brightnessup BRTUP 00000086 00000000 K # # Brightness Down = Fn Down Arrow # * Linux keycode: 232 # * X11 keysym: XF86MonBrightnessDown # * ACPI: video/brightnessdown BRTDN 00000087 00000000 K # # Plus = Fn / # * Linux keycode: 86 # * X11 keysym: KP_Add # * 77 Num_Lock: KP_Add # # Minus = Fn ; # * Linux keycode: 82 # * X11 keysym: KP_Subtract # * 77 Num_Lock: KP_Subtract: # # DOT = Fn . # * Linux keycode: 91 # * X11 keysym: KP_Decimal # * 77 Num_Lock: KP_Decimal # # Multiply = Fn P # * Linux keycode: 63 # * X11 keysym: KP_Multiply # * 77 Num_Lock: KP_Multiply # # Divide = Fn 0 # * Linux keycode: 106 # * X11 keysym: KP_Divide # * 77 Num_Lock: : KP_Divide # Numbers # # Zero = Fn M # * Linux keycode: 90 # * X11 keysym: KP_Insert # * 77 Num_Lock: KP_0 # # One = Fn J # * Linux keycode: 87 # * X11 keysym: KP_End # * 77 Num_Lock: KP_1 # # Two = Fn K # * Linux keycode: 88 # * X11 keysym: KP_Down # * 77 Num_Lock: KP_2 # # Three = Fn L # * Linux keycode: 89 # * X11 keysym: KP_Next # * 77 Num_Lock: LP_3 # # Four = Fn U # * Linux keycode: 83 # * X11 keysym: KP_Left # * 77 Num_Lock: KP_4 # # Five = Fn I # * Linux keycode: 84 # * X11 keysym: KP_Begin # * 77 Num_Lock: KP_5 # # Six = Fn O # * Linux keycode: 85 # * X11 keysym: KP_Right # * 77 Num_Lock: KP_6 # # Seven = Fn 7 # * Linux keycode: 79 # * X11 keysym: KP_Home # * 77 Num_Lock: KP_7 # # Eight = Fn 8 # * Linux keycode: 80 # * X11 keysym: KP_Up # * 77 Num_Lock: KP_8 # # Nine = Fn 9 # * Linux keycode: 81 # * X11 keysym: KP_Prior # * 77 Num_Lock: KP_9 conf_print_dell_d830_template_header() { cat < right == keyboard light (missing) ;; Fn ↑ up == increase screen brightness ;; Fn ↓ down == increase screen brightness (deflayer fn ;; vold volu mute - syrq slck pause - - - - ssrq - f3 - - - f7 f8 - - - - - - - - - - - - - - kp7 kp8 kp9 kp/ - - - - - - - - - - kp4 kp5 kp6 kp* - - - - - - - - - kp1 kp2 kp3 kp- - - - - - - - - - - - kp0 - kp. kp+ - - - - - - - - up left down rght ) EOF } #conf_print_dell_d830_template_deflayer_fn | tee -a ${DEST}/.config/kmonad/keymap/template/dell_D830_iso.kbd conf_print_dell_d830_template_deflayer_empty() { cat <