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:

partofboot.local (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


KategorieInstallation

CherryCyMotionMasterLinux (zuletzt geändert am 2007-12-23 22:48:16 durch localhost)