Right now a lot of special keys on laptops as on so called internet keyboards do not work. Some do not work at all, some need manual configuration. Goal of this effort is to make all these keys work out of the box or at least by only configuring the keyboard type.
See /KeyProcessing for technical background information There is a list of /SoftWare dealing with this issue.
As keypresses move through several layers it is necessary to make all these layers work.
Areas of Work
AT and PS/2 keyboard configuration
- make the keyboard type configurable (no auto detection possible, sorry)
- get settings to select keyboard from (scripts calling setkeycodes?)
- create or convert from other keyboard projects
- Autodetect laptops and configure their keyboard
- Richard Hughes is currently putting that into HAL
- see http://people.freedesktop.org/~hughsient/quirk/index.html
- hotkey-setup (Ubuntu)
- http://svn.berlios.de/wsvn/hotkey-setup/trunk/tools/?rev=0&sc=0 varous scripts for handling key codes
- AT raw emulation - Hans de Goede
- add Microsoft Keyboard scan codes
- better error messages for (USB) HID problems to make it easier to support new devices
- improve (USB) HID support - implement the relevent parts of the HUT
- support more quirky hardware
- Kernel key cross reference: http://pack.suse.cz/sbrabec/keyboards/input_cross_reference_kernel.txt (auto-generated)
- Kernel key codes that need to be changed
- Duplicated key codes
- AGAIN <- REDO
- HP <- VENDOR
- EMAIL <- MAIL
- FAVORITES <- BOOKMARKS
- EXIT - STOP???
- PLAYCD - PLAY???
- SOUND - AUDIO - PLAYER
- MSDOS -> TERMINAL
- ISO, MOVE???
- make evdev driver work
- add XKeysyms matching the hotkeys
- provide xkbd maps using them
- File:SIGs Laptop HotKeys evdev.txt - xkbd keycodes file
- File:SIGs Laptop HotKeys linux.txt - xkbd symbols for kbd and evdev driver
- see also: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=245576
- Work by Stanislav Brabec:
- Proposed mapping table between kernel and X: http://pack.suse.cz/sbrabec/keyboards/input_linux_map_fixed.txt
- Proposed logical categories of keys: http://pack.suse.cz/sbrabec/keyboards/keymap_editor/keys.txt
- Scancode scripts for kernel (generated from X symbols/inet and table above): http://pack.suse.cz/sbrabec/keyboards/scancode_tables/
- Proposed code snippet to evdev_key.c driver (generated from the table above): http://pack.suse.cz/sbrabec/keyboards/evdev_key_c_table.txt
- Proposed X keycodes/evdev for evdev driver (generated from the table above): http://pack.suse.cz/sbrabec/keyboards/keycodes_evdev
- Proposed common extended basic keymap for X: http://pack.suse.cz/sbrabec/keyboards/symbols_evdev
- Proposed X keycodes/inet for RAW and SOFTRAW drivers (generated from X symbols/inet and table above): http://pack.suse.cz/sbrabec/keyboards/keycodes_inet
Most hotkeys should invoke programs or trigger actions insted of producing characters. This is desktop environment specific.
- Preconfigure actions on hotkeys
- Allow multiple keys per action to have a <CTRL> + letter and hotkey at once
- Related information about keybindings in GNOME here
- Create a list of hotkeys to map (/DesktopActions outdated, redo)
Support for hotkeys on default actions. That way programmer would not have to care about the hotkeys. This is a long term thing. Lets see if we ever get to this...