20/02/2007
Cherry Cymotion Master Linux with Fluxbox
Some tips in getting Cherry Cymotion Master Linux (german layout image) to work with fluxbox (with Gentoo of course). This keyboard’s keys have a great feeling and a great “clickety click” sound. The 20% extra surface on the keys makes typing a lot easier but you need a couple of hours to get used to them. It’s worth it though.
First of all, don’t try to use the keyman software that Cherry provides. Just DON’T. Unless you ‘ve got LOTS of patience and some skills to fix the horrible configure/make scripts that it comes with. It’s horrible to set it up and you need to patch your kernel for it to work properly. What do you lose ? Just the K-key next to your Penguin Key (bye bye Windows Key) and the combinations that you can with the K-Key. This keyboard has SO many extra keys that you won’t need it (yet).
0) Create /etc/init.d/cherry with the following contents:
#!/sbin/runscript
start() {
  ebegin "Setting up Cherry Keyboard CyMotion Master on PS/2"
  #           Search    Eject     Home      An        Aus       Media
  #           Up/Right  Down/left Cut       Paste     Copy      Desktop1
  #           Desktop2  Desktop3  Redo      Undo
  #setkeycodes e065 136  e070 161  e032 172  e05f 143  e063 145  e06d 171 \
  #            e00b 177  e012 178  e017 137  e00a 135  e018 133  e071 148 \
  #            e02c 149  e072 202  e007 129  e008 131  e05b 200
  setkeycodes e065 136  e070 161  e032 172  e05f 143  e063 145  e06d 171 \
              e00b 177  e012 178  e017 137  e00a 135  e018 133  e071 148 \
              e02c 149  e072 202  e007 129  e008 131
  eend $?
}
stop() {
  ebegin "Restoring defaults for PS/2 keyboard"
  #           Search    Eject     Home      An        Aus       Media
  #           Up/Right  Down/left Cut       Paste     Copy      Desktop1
  #           Desktop2  Desktop3  Redo      Undo
  setkeycodes e065 217  e070 000  e032 150  e05f 142  e063 143  e06d 226 \
              e00b 000  e012 000  e017 000  e00a 000  e018 000  e071 000 \
              e02c 000  e072 000  e007 000  e008 000  e05b 125
  eend $?
}
Make it executable: chmod +x /etc/init.d/cherry
Start it: /etc/init.d/cherry
and add it to your default runlevel: rc-update add cherry default  (on gentoo)
1) Take a look at your /usr/share/X11/XKeysymDB. This file includes all the available keyboard mappings you can have.
2) Change your Keyboard Inputdevice in /etc/X11/xorg.conf to include these (works in my current Xorg 7.1):
Option      "XkbModel" "cymotionlinux"
Option      "XkbVariant" "nodeadkeys"
Restart your X server.
3) Create a .Xmodmap file in your home dir and fill it with mappings from /usr/share/X11/XKeysymDB. Mine looks like this:
! Internet-Keys (Back, Forward, Stop, Reload, Search)
keycode 234 = XF86Back
keycode 233 = XF86Forward
keycode 232 = XF86Stop
keycode 231 = XF86Refresh
keycode 122 = XF86Search
! Multimedia-Keys (Play/Pause, Stop, Back, Forward, Eject)
keycode 162 = XF86AudioPlay
keycode 164 = XF86AudioStop
keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 204 = XF86Eject
! XPress-Keys left (Up, Down, Cut, Paste, Copy)
keycode 220 = XF86ScrollUp
keycode 143 = XF86ScrollDown
keycode 188 = XF86Cut
keycode 192 = XF86Paste
keycode 248 = XF86Copy
! XPress-Keys right (List 1, List 2, List 3, Redo, Undo)
!keycode 159 = XF86Launch0
!keycode 151 = XF86Launch1
!keycode 171 = XF86Launch2
!keycode 138 = XF86Launch3
!keycode 135 = XF86Launch4
! Premium-Keys (Calculator, Email, Browser, On/Off)
keycode 161 = XF86Calculator
keycode 236 = XF86Mail
keycode 130 = XF86HomePage
keycode 199 = XF86LogOff
! Main-Keys (-, +, Mute, Media-Player)
keycode 174 = XF86AudioLowerVolume
keycode 176 = XF86AudioRaiseVolume
keycode 160 = XF86AudioMute
keycode 129 = XF86AudioMedia
! @-Key
keycode 116 = XF86Terminal
Do a:
xmodmap ~/.Xmodmap
You can test your multimedia keys using xev.
If you want fluxbox to automatically load these binding each time you logon, put “xmodmap ~/.Xmodmap” somewhere (NOT in the end) inside your ~/.fluxbox/startup
4) Edit your ~/.fluxbox/keys and map the new keys to actions like that:
None XF86Launch1 :Workspace 1
None XF86Launch2 :Workspace 2
None XF86Launch3 :Workspace 3
!
None XF86AudioPrev :ExecCommand audacious--rew
None XF86AudioPlay :ExecCommand audacious --play-pause
None XF86AudioNext :ExecCommand audacious --fwd
None XF86AudioStop :ExecCommand audacious --stop
None XF86Eject     :ExecCommand audacious -j
!
None XF86AudioLowerVolume :ExecCommand amixer sset PCM 2-
None XF86AudioMute :ExecCommand amixer sset "Audigy Analog/Digital Output Jack" toggle
None XF86AudioRaiseVolume :ExecCommand amixer sset PCM 2+
None XF86AudioMedia :ExecCommand gmplayer
!
None XF86Calculator :ExecCommand gcalctool
None XF86Mail :ExecCommand /usr/bin/thunderbird
None XF86HomePage :ExecCommand /usr/bin/firefox
!
None XF86Terminal :ExecCommand mrxvt --loginShell
Restart Fluxbox. You should now be able to start applications using your multimedia keys on top and on the bottom. If you are using Gnome or KDE you can do all this with their own programs. I think the proper program in KDE is called khotkeys.
5) In order to use the side keys for more advanced functions like copy,paste,unde,redo,etc  do the following:
Create /usr/share/X11/xkb/compat/cymotion with what you like. Mine looks like:
// $XFree86$
//  XFree86 special keysyms
default partial xkb_compatibility "basic"  {
    interpret.repeat= True;
//  Ctrl+C for Copy
    interpret  XF86Copy {
        action = Redirect(Key=<AB03>, modifiers=Control);
    };
//  Ctrl+V for Paste
    interpret  XF86Paste {
        action = Redirect(Key=<AB04>, modifiers=Control);
    };
//  Ctrl+X for Cut
    interpret  XF86Cut {
        action = Redirect(Key=<AB02>, modifiers=Control);
    };
//  Ctrl+Pos1 for ScrollUp
    interpret  XF86ScrollUp {
        action = Redirect(Key=<HOME>, modifiers=Control);
    };
//  Ctrl+End for ScrollDown
    interpret  XF86ScrollDown {
        action = Redirect(Key=<END>, modifiers=Control);
    };
//  Ctrl+Shift+Z for Redo
    interpret  Redo {
        action = Redirect(Key=<AB01>, modifiers=Shift+Control);
    };
//  Ctrl+Z for Undo
    interpret  Undo {
        action = Redirect(Key=<AB01>, modifiers=Control);
    };
//  Backspace for Back (Firefox)
    interpret  XF86Back {
        action = Redirect(Key=<BKSP>);
    };
//  Shift+Backspace for Forward (Firefox)
    interpret  XF86Forward {
        action = Redirect(Key=<BKSP>, modifiers=Shift);
    };
//  ESC for Stop (Firefox)
    interpret  XF86Stop {
        action = Redirect(Key=<ESC>);
    };
//  Ctrl+R for Reload (Firefox)
    interpret  XF86Reload {
        action = Redirect(Key=<AD04>, modifiers=Control);
    };
//  Ctrl+F for Search Page (Firefox and most other applications)
    interpret  XF86Search {
        action = Redirect(Key=<AC04>, modifiers=Control);
    };
};
6) Edit /usr/share/X11/xkb/compat/complete and add inside it:
augment "cymotion"
Restart X.
And you should be done.
The process is a bit complicated but the result is very rewarding. The Cut/Copy/Paste with just one click is amazing, especially for Greek users because when someone with another keyboard switches the keyboard language to greek, “ctrl+c” becomes “ctrl+ψ” (ctrl+greek_psi) and copy/paste does not work any more (ctrl+insert and shift+insert are not very efficient shortcuts) . You can easily program Cymotion Master Linux keyboard though to send the keystrokes you want (that was what I did in /usr/share/X11/xkb/compat/cymotion) because there are so many extra keys to use 🙂
Here comes the result of all these (click to maximize):
References:
a) http://forums.gentoo.org/viewtopic-t-261126-highlight-cymotion.html
b) http://www.ubuntu-forum.de/thread.php?threadid=11319
c) http://my.opera.com/netzpirat/blog/show.dml/505978
                                        Filed by kargig at 17:01 under Gentoo,Linux
                                        Filed by kargig at 17:01 under Gentoo,Linux
	       	               	 3 Comments	 	 |  17,093 views
 3 Comments	 	 |  17,093 views      
				






