Cherry CyMotion Master Linux
Vor kurzem hat Cherry in der CyMotion-Serie die Linux-Multimedia-Tastatur CyMotion Master Linux herausgebracht, die mit der CyMotion Master XPress technisch identisch ist.
Cherry liefert eine Keymanager-Software für SuSE 9.1 mit, die aber auch mit SuSE 9.2 verwendet werden kann, jedoch nur in einer 32bittigen Version vorliegt.
Für SuSE 9.0, 9.1, 9.2 und 10.0 (für x86_64 nur 9.2 und 10.0) gibt es LinEAK RPMs von Packman. Die SuSE 10.1 enthält LinEAK 0.8.4 sowohl in 32-als auch 64bittigen Version. Allerdings wurde mir berichtet, dass die 64bit-Version die Keyboarddefinitionsdatei nicht findet und daher nicht startet.
Auf einer SuSE 10.1 muss in Yast ein generischen Standard-Keyboard ausgewählt werden, damit LinEAK überhaupt zum Zuge kommt.
Bei Verwendung von LinEAK lassen sich jedoch auch alle Sondertasten nutzen, wie die folgende Anleitung zeigen wird. Alle Tasten ist ein wenig übertrieben, weil eine scheinbar keinen Scancode erzeugt. Es handelt sich um die K-Taste links neben der Pinguin-Taste, die ich bisher nicht konfigurieren konnte.
Auf einem x86_64-System ist LinEAK ab Version 0.8.3 erforderlich, ansonsten in einer Version >=0.8.1, da ich im folgenden auch von dem neuen Lineak-Feature Media-Detect Gebrauch machen werde.
Die folgende Anleitung sollte - eventuell mit kleineren Anpassungen - auf beliebigen Linux-Distributionen funktionieren.
Notwendige Änderungen beim Bootvorgang
Einige Tasten der Tastatur erzeugen zwar einen Scancode, jedoch findet im Kernel keine Umsetzung auf Keycodes statt. Auf der Fehlerkonsole oder in /var/log/messages finden sich Meldungen, wenn eine solche Taste gedrückt wird.
Dies läßt sich allerdings sehr leicht beheben, indem man beim Bootvorgang mittels setkeycodes eine Zuordnung von Scancodes zu Keycodes vornimmt. Die Keycodes sind identisch zu denen, wie sie auch Cherry für die hauseigene Keymanager-Software beim Booten setzt.
Ein guter Platz für den folgenden Konfigurationscode ist die Datei /etc/init.d/boot.local, es spricht aber auch nichts dagegen, dafür ein echtes Startscript zu schreiben:
(wegen möglicher Zeilenumbrüche in der Darstellung besser den Code downloaden)
Danach erzeugen alle, bis auf die zusätzliche "K"-Taste links von der Pinguin-Taste Tastencodes, was mit xev überprüft werden kann.
Tastaturdefinition für LinEAK
Nun geht es daran, eine Tastaturdefinition für LinEAK zu erzeugen, die in die Datei /etc/lineakkb.def eingefügt wird:
################ # From: Marcus Röckrath <marcus.roeckrath at gmx.de> # For: the Cherry CyMotion Master Linux [CCMML] brandname = "Cherry" modelname = "CyMotion Master Linux" [KEYS] WebBack = 234 WebForward = 233 WebStop = 232 WebReload = 231 Search = 122 Play|Pause = 162 Stop = 164 Previous = 144 Next = 153 Eject = 204 Calculator = 161 Mail = 236 Home = 130 Power = 199 VolumeDown = 174 VolumeUp = 176 Mute = 160 Media = 129 Internet = 116 Pinguin = 168 Menu = 117 UserDefined1 = 220 UserDefined2 = 143 UserDefined3 = 188 UserDefined4 = 192 UserDefined5 = 248 UserDefined6 = 159 UserDefined7 = 151 UserDefined8 = 171 UserDefined9 = 133 UserDefined10 = 135 [END KEYS] [END CCMML] ################
Konfiguration von LinEAK
Nachdem zunächst mittels lineakd -c CCMML eine vorläufige Konfigurationsdatei ~/.lineak/lineakd.conf erzeugt wurde, kann diese den eigenen Wünschen angepasst werden. Es wird im folgenden Konfigurationsbeispiel, das natürlich den eigenen Bedürfnissen und insbesondere im Bezug auf Verzeichnispfade anzupassen ist, schon das Media-Detect-Plugin genutzt, weshalb mindestens LinEAK 0.8.1 notwendig, sowie die Erstellung der Media-Detect-Konfigurations-Datei (siehe den nachfolgenden Abschnitt) erforderlich ist:
# LinEAK - Linux support for Easy Access and Internet Keyboards # Copyright (c) 2001,2002, 2003 Sheldon Lee Wen <leewsb@hotmail.com> # and Mark Smulders <Mark@PIRnet.nl> # http://lineak.sourceforge.net # # lineakd configuration file # # example key configuration: # play = "xmms --play-pause" # eject = EAK_EJECT # # Lineakd supports the following modifier keys: # control alt shift mod2 mod3 mod4 mod5 CdromDevice = /dev/cdrom Display_align = center Display_color = 0aff00 Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-* Display_hoffset = 0 Display_plugin = internal Display_pos = bottom Display_soffset = 1 Display_timeout = 3 Display_voffset = 50 KeyboardType = CCMML MixerDevice = /dev/mixer Screensaver = conffilename = /home/marcus/.lineak/lineakd.conf keystate_capslock = keystate_numlock = keystate_scrolllock = Calculator = gcalctool Eject = EAK_OPEN_TRAY_SCSI(/dev/dvd) Home = konqueror file:/home/marcus Internet = opera Mail = kmail Media = konqueror drives:/ Mute = KMIX_MUTE Next = EAK_MEDIADETECT(NEXT) Play|Pause = EAK_MEDIADETECT(PLAYPAUSE) Power = KDE_LOCK_DESKTOP Previous = EAK_MEDIADETECT(PREVIOUS) Search = Stop = EAK_MEDIADETECT(STOP) Pinguin = KMENU Menu = KDESKTOP_EXECUTE UserDefined1 = UserDefined10 = KDESKTOP_PREVIOUS UserDefined2 = UserDefined3 = UserDefined4 = UserDefined5 = UserDefined6 = UserDefined7 = UserDefined8 = UserDefined9 = KDESKTOP_NEXT VolumeDown = KMIX_VOLDOWN VolumeUp = KMIX_VOLUP WebBack = KONQUEROR_BACK WebForward = KONQUEROR_FORWARD WebReload = KONQUEROR_RELOAD WebStop = KONQUEROR_STOP
Die Media-Detect Konfigurationsdatei
Nun folgt noch die Media-Detect-Konfigurationsdatei ~/.lineak/media-detect.conf:
############################################################################# # Media Detect configuration file. # # The Media Detect lineak plugin is inspired by the Media-Detect scripts # created by Daemon Kaswell, and is copyright the lineak project and # Sheldon Lee-Wen October 22, 2004. # # Each entry in this configuration file must adhere to the format # given below. The entries are case sensitive. # # [IDENTIFIER] # NAME = This is a plain text description of the program. # PROGRAM = This is the command line name of the program. It will be # used to run the program or as the dcop identifier. # The following commands are those used to issue to the program identified in # the PROGRAM configuration directive above. The entries for the commands will # vary depending on the type given under the TYPE directive. # For TYPE = macro, these are the macros hat you want to be run for each command. # For TYPE = dcop, these are the actual dcop command minus the dcop part. # For TYPE = program, the command is whatever options would be given to the # program PROGRAM on the command line to produce the desired effect. # # PLAY = # STOP = # PAUSE = # PLAYPAUSE = # NEXT = # PREVIOUS = # TYPE = This is the entry type. There are three valid types. macro, dcop or # program. # PRIORITY = This is the priority to be given to this entry if there is more # than one of the configured programs running. If two entries # with the same priority are found the first one found running # will be selected. # [END] # # The following entries are examples of each type. [XMMS] NAME = X Multi Media System PROGRAM = xmms PLAY = --play STOP = --stop PAUSE = --pause PLAYPAUSE = --play-pause NEXT = --fwd PREVIOUS = --rew TYPE = program PRIORITY = 1 [END] [JUK] NAME = Juk Media Player PROGRAM = juk PLAY = JUK_PLAY STOP = JUK_STOP PAUSE = JUK_PAUSE PLAYPAUSE = JUK_PLAYPAUSE NEXT = JUK_FORWARD PREVIOUS = JUK_BACK TYPE = macro PRIORITY = 2 [END] [AMAROK] NAME = Amarok Media Player PROGRAM = amarok PLAY = AMAROK_PLAY STOP = AMAROK_STOP PAUSE = AMAROK_PAUSE PLAYPAUSE = AMAROK_PLAYPAUSE NEXT = AMAROK_FORWARD PREVIOUS = AMAROK_BACK TYPE = macro PRIORITY = 3 [END] [KSCD] NAME = KSCD CD-Player PROGRAM = kscd PLAY = KSCD_PLAY STOP = KSCD_STOP PAUSE = KSCD_PAUSE PLAYPAUSE = KSCD_PLAY NEXT = KSCD_NEXT PREVIOUS = KSCD_PREVIOUS TYPE = macro PRIORITY = 4 [END]
LinEAK starten
Nach diesen Vorarbeiten muss noch dafür gesorgt werden, dass der LinEAK-Daemon startet. Ich habe auf meinem System einen Eintrag für das Programm lineakd im KDE-Autostart-Ordner vorgenommen. Es ist allerdings darauf zu achten, dass vor dem Abmelden des Accounts der Daemon mit lineakd -x wieder entladen wird.
Eine elegantere Methode ist mir bisher nicht eingefallen, bin für sachdienliche Hinweise aber dankbar.
Fazit
Die Cherry CyMotion Master Linux bzw. Cherry CyMotion Master XPress Tastaturen können mit LinEAK ohne Einschränkungen benutzt werden.
Weiterhin kann diese Anleitung auch zum Betrieb anderer Komfort-Tastaturen als Vorlage dienen.
Jeder Leser ist herzlich eingeladen, selbst Korrekturen oder Ergänzungen in diesem Text anzubringen.
Ich wünsche viel Spaß bei der Verwendung einer Multimedia-Tastatur unter Linux.
-- MarcusRoeckrath 2005-03-22 13:58:34