KubuntuLaptopButtons
1294
Comment:
|
5570
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
* '''Contributors''': JonathanRiddell * '''Packages affected''': kmilo |
* '''Contributors''': JonathanRiddell, LukaRenko, JonathanJesse * '''Packages affected''': kmilo, amarok, konqueror |
Line 10: | Line 10: |
Make Kubuntu support for laptop buttons as good as in Ubuntu | Use the Ubuntu laptop buttons infrastructure in KDE. |
Line 18: | Line 18: |
Masie has a laptop with suspend and brightness buttons, she wants to make sure these work. | Masie has a laptop with suspend and brightness buttons, when pressing these buttons nothing happens and she doesn't know how to make them work. Bob notices that all his laptop buttons work in Ubuntu but none of them work in Kubuntu which would otherwise be his preferred environment. Daniel follows the complex kmilo thinkpad instructions to get his thinkpad buttons working, he has to enable nvram writing to get this to work but wonders if it is a security risk. |
Line 22: | Line 26: |
Specific laptops are the problem of acpi-support and hotkey-setup, this spec is for making sure KDE does the right thing with the output of hotkey-setup. |
|
Line 23: | Line 29: |
KDE has KMilo, a kde daemon module for handling laptop keys. KMilo has plugins for different types of laptop and each plugin for KMilo works in different ways and has different abilities. With the abstraction provided by hotkey-setup we no longer need different parts of KMilo for each laptop. We will create a new KMilo plugin for hotkey-support. |
|
Line 26: | Line 34: |
=== Code === | Our KMilo hotkey-setup plugin will run xmodmap on startup to map the xevents from hotkey-setup to X keys. We will setup global bindings in KMix, Konqueror, Amarok and KubuntuPowerManagement to handle volume up/down, play/pause, suspend/hibernate, screen brightness and web browser control. The KMilo plugin will also have global bindings for volume and screen brightness and will show its on screen display to give feedback to the user, it will get its values by querying KMix and KubuntuPowerManagement with DCOP. |
Line 28: | Line 36: |
=== Data preservation and migration === | The KMilo plugin will also have global keybindings to listen for the ''e-mail'' and ''web browser'' buttons, these will run the default application which the user can set in the normal KDE way. Other application buttons will run the default Kubuntu application. |
Line 30: | Line 38: |
== Outstanding issues == | The existing KMilo plugins will be moved to a new unsupported package. |
Line 32: | Line 40: |
== BoF agenda and discussion == | Unspecified buttons such as the "IBM Thinkpad" button will be mapped to X keys which can be set to almost any action using khotkeys, a standard part of KDE. |
Line 34: | Line 42: |
KMilo has modules for asus, delli8k, generic, vaio, powerbook, thinkpad, we should make sure these all work. | || '''Keycode''' || '''Keysym''' || '''Handler''' || || 229 || XF``86Search || KMilo run kfmexec for KDE's default search page || || 235 || XF``86MyComputer || KMilo run kfmexec $HOME || || 236 || XF``86Mail || KMilo, run default e-mail application || || 237 || XF``86AudioMedia || KMilo run Amarok || || 118 || XF``86Music || KMilo run Amarok || || 178 || XF``86WWW || KMilo run default web browser || || no reliable standard || XF``86Calculator || KMilo, run speedcrunch if installed else KCalc || || no reliable standard || XF``86Terminal || KMilo run Konsole || |
Line 36: | Line 52: |
The thinkpad one polls nvram and tells kmix to change, it should probably leave most of it to thinkpad-buttons and just offer an onscreen display, or if necessary a key event. | || '''Keycode''' || '''Keysym''' || '''Handler''' || || 162 || XF``86AudioPlay || Amarok || || 162 (same as play) || XF``86AudioPause || Amarok || || 164 || XF``86AudioStop || Amarok || || 144 || XF``86AudioPrev || Amarok || || 153 || XF``86AudioNext || Amarok || |
Line 38: | Line 59: |
KMix should listen to the key events and have working default bindings. | || '''Keycode''' || '''Keysym''' || '''Handler''' || || 160 || XF``86AudioMute || KMix to change, KMilo for on screen display || || 174 || XF``86AudioLowerVolume || KMix to change, KMilo for on screen display || || 176 || XF``86AudioRaiseVolume || KMix to change, KMilo for on screen display || |
Line 40: | Line 64: |
Questions: how the heck to fix for all these types of laptops? | || '''Keycode''' || '''Keysym''' || '''Handler''' || || 230 || XF``86Favorites || Konqueror || || 231 || XF``86Refresh || Konqueror || || 232 || XF``86Stop || Konqueror || || 233 || XF``86Forward || Konqueror || || 234 || XF``86Back || Konqueror || || no reliable standard || XF``86Go || Konqueror || |
Line 42: | Line 72: |
---- CategorySpec |
|| '''Keycode''' || '''Keysym''' || '''Handler''' || || 222 (but also HAL?) || XF``86PowerOff || KubuntuPowerManagement || || 223|| XF``86Standby || KubuntuPowerManagement || || 223 || XF``86Sleep || KubuntuPowerManagement || || nothing || XF``86ContrastAdjust || KubuntuPowerManagement || || nothing || XF``86BrightnessAdjust || KubuntuPowerManagement || || '''Keycode''' || '''Keysym''' || '''Handler''' || || 204 (mac only) || XF``86Eject || run ''eject'' || || 245 || XF86Launch0 || Help Key, launch KHelpCentre || || 159 (Thinkpad key) || XF``86LaunchA || none, user can set with KH``otKeys || || || XF``86LaunchB || none, user can set with KH``otKeys || || || XF``86LaunchC || none, user can set with KH``otKeys || || 132 (Thinkpad Light) || XF``86LightBulb || KMilo on screen display || == Comments == AchimBohnet * Lots of applications have Favorites, Stop, Forward, Back etc functionality. The special keys should not be globally assigned to just one app. Instead we should modify the keybindings of the apps where assignment of XF86<action> makes sense. I assume, that at least some of the XF86<*> keysyms can be assgined as a second Keybinding to a KDE STDAccel and are then automaticaly available in all apps that make use of them. * Full screen mode: check that globally bound keys work also in full screen mode. I once used a tool (not kmilo) where e.g. Mute, etc. didn't work in full screen mode. |
Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/kubuntu-laptop-buttons
Created: 2006-06-06 by JonathanRiddell
Contributors: JonathanRiddell, LukaRenko, JonathanJesse
Packages affected: kmilo, amarok, konqueror
Summary
Use the Ubuntu laptop buttons infrastructure in KDE.
Rationale
Many laptops and also desktops have extra feature buttons which handle power management, display controls and other features. These should work as well in Kubuntu as they do in Ubuntu.
Use cases
Masie has a laptop with suspend and brightness buttons, when pressing these buttons nothing happens and she doesn't know how to make them work.
Bob notices that all his laptop buttons work in Ubuntu but none of them work in Kubuntu which would otherwise be his preferred environment.
Daniel follows the complex kmilo thinkpad instructions to get his thinkpad buttons working, he has to enable nvram writing to get this to work but wonders if it is a security risk.
Scope
Specific laptops are the problem of acpi-support and hotkey-setup, this spec is for making sure KDE does the right thing with the output of hotkey-setup.
Design
KDE has KMilo, a kde daemon module for handling laptop keys. KMilo has plugins for different types of laptop and each plugin for KMilo works in different ways and has different abilities. With the abstraction provided by hotkey-setup we no longer need different parts of KMilo for each laptop. We will create a new KMilo plugin for hotkey-support.
Implementation
Our KMilo hotkey-setup plugin will run xmodmap on startup to map the xevents from hotkey-setup to X keys. We will setup global bindings in KMix, Konqueror, Amarok and KubuntuPowerManagement to handle volume up/down, play/pause, suspend/hibernate, screen brightness and web browser control. The KMilo plugin will also have global bindings for volume and screen brightness and will show its on screen display to give feedback to the user, it will get its values by querying KMix and KubuntuPowerManagement with DCOP.
The KMilo plugin will also have global keybindings to listen for the e-mail and web browser buttons, these will run the default application which the user can set in the normal KDE way. Other application buttons will run the default Kubuntu application.
The existing KMilo plugins will be moved to a new unsupported package.
Unspecified buttons such as the "IBM Thinkpad" button will be mapped to X keys which can be set to almost any action using khotkeys, a standard part of KDE.
Keycode |
Keysym |
Handler |
229 |
XF86Search |
KMilo run kfmexec for KDE's default search page |
235 |
XF86MyComputer |
KMilo run kfmexec $HOME |
236 |
XF86Mail |
KMilo, run default e-mail application |
237 |
XF86AudioMedia |
KMilo run Amarok |
118 |
XF86Music |
KMilo run Amarok |
178 |
XF86WWW |
KMilo run default web browser |
no reliable standard |
XF86Calculator |
KMilo, run speedcrunch if installed else KCalc |
no reliable standard |
XF86Terminal |
KMilo run Konsole |
Keycode |
Keysym |
Handler |
162 |
XF86AudioPlay |
Amarok |
162 (same as play) |
XF86AudioPause |
Amarok |
164 |
XF86AudioStop |
Amarok |
144 |
XF86AudioPrev |
Amarok |
153 |
XF86AudioNext |
Amarok |
Keycode |
Keysym |
Handler |
160 |
XF86AudioMute |
KMix to change, KMilo for on screen display |
174 |
XF86AudioLowerVolume |
KMix to change, KMilo for on screen display |
176 |
XF86AudioRaiseVolume |
KMix to change, KMilo for on screen display |
Keycode |
Keysym |
Handler |
230 |
XF86Favorites |
Konqueror |
231 |
XF86Refresh |
Konqueror |
232 |
XF86Stop |
Konqueror |
233 |
XF86Forward |
Konqueror |
234 |
XF86Back |
Konqueror |
no reliable standard |
XF86Go |
Konqueror |
Keycode |
Keysym |
Handler |
222 (but also HAL?) |
XF86PowerOff |
|
223 |
XF86Standby |
|
223 |
XF86Sleep |
|
nothing |
XF86ContrastAdjust |
|
nothing |
XF86BrightnessAdjust |
Keycode |
Keysym |
Handler |
204 (mac only) |
XF86Eject |
run eject |
245 |
XF86Launch0 |
Help Key, launch KHelpCentre |
159 (Thinkpad key) |
XF86LaunchA |
none, user can set with KHotKeys |
|
XF86LaunchB |
none, user can set with KHotKeys |
|
XF86LaunchC |
none, user can set with KHotKeys |
132 (Thinkpad Light) |
XF86LightBulb |
KMilo on screen display |
Comments
Lots of applications have Favorites, Stop, Forward, Back etc functionality. The special keys should not be globally assigned to just one app. Instead we should modify the keybindings of the apps where assignment of XF86<action> makes sense. I assume, that at least some of the XF86<*> keysyms can be assgined as a second Keybinding to a KDE STDAccel and are then automaticaly available in all apps that make use of them.
- Full screen mode: check that globally bound keys work also in full screen mode. I once used a tool (not kmilo) where e.g. Mute, etc. didn't work in full screen mode.
KubuntuLaptopButtons (last edited 2008-08-06 16:27:41 by localhost)