{"id":247,"date":"2007-02-20T17:01:41","date_gmt":"2007-02-20T14:01:41","guid":{"rendered":"http:\/\/www.void.gr\/kargig\/blog\/?p=247"},"modified":"2008-06-06T01:22:34","modified_gmt":"2008-06-05T22:22:34","slug":"cherry-cymotion-master-linux","status":"publish","type":"post","link":"https:\/\/www.void.gr\/kargig\/blog\/2007\/02\/20\/cherry-cymotion-master-linux\/","title":{"rendered":"Cherry Cymotion Master Linux with Fluxbox"},"content":{"rendered":"<p>Some tips in getting <a href=\"http:\/\/www.cherry.de\/deutsch\/produkte\/tastaturen_master-linux.htm\">Cherry Cymotion Master Linux<\/a> (<a href=\"http:\/\/www.easylinux.de\/Artikel\/ausgabe\/2004\/11\/010-news\/tastatur_frei.png\">german layout image<\/a>) to work with <a href=\"http:\/\/fluxbox.sourceforge.net\/\">fluxbox<\/a> (with Gentoo of course). This keyboard&#8217;s keys have a great feeling and a great &#8220;clickety click&#8221; 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&#8217;s worth it though.<\/p>\n<p>First of all, don&#8217;t try to use the keyman software that Cherry provides. Just DON&#8217;T. Unless you &#8216;ve got LOTS of patience and some skills to fix the horrible configure\/make scripts that it comes with. It&#8217;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&#8217;t need it (yet).<\/p>\n<p>0) Create \/etc\/init.d\/cherry with the following contents:<br \/>\n<code>#!\/sbin\/runscript<br \/>\nstart() {<br \/>\n  ebegin \"Setting up Cherry Keyboard CyMotion Master on PS\/2\"<br \/>\n  #           Search    Eject     Home      An        Aus       Media<br \/>\n  #           Up\/Right  Down\/left Cut       Paste     Copy      Desktop1<br \/>\n  #           Desktop2  Desktop3  Redo      Undo<br \/>\n  #setkeycodes e065 136  e070 161  e032 172  e05f 143  e063 145  e06d 171 \\<br \/>\n  #            e00b 177  e012 178  e017 137  e00a 135  e018 133  e071 148 \\<br \/>\n  #            e02c 149  e072 202  e007 129  e008 131  e05b 200<br \/>\n  setkeycodes e065 136  e070 161  e032 172  e05f 143  e063 145  e06d 171 \\<br \/>\n              e00b 177  e012 178  e017 137  e00a 135  e018 133  e071 148 \\<br \/>\n              e02c 149  e072 202  e007 129  e008 131<br \/>\n  eend $?<br \/>\n}<br \/>\nstop() {<br \/>\n  ebegin \"Restoring defaults for PS\/2 keyboard\"<br \/>\n  #           Search    Eject     Home      An        Aus       Media<br \/>\n  #           Up\/Right  Down\/left Cut       Paste     Copy      Desktop1<br \/>\n  #           Desktop2  Desktop3  Redo      Undo<br \/>\n  setkeycodes e065 217  e070 000  e032 150  e05f 142  e063 143  e06d 226 \\<br \/>\n              e00b 000  e012 000  e017 000  e00a 000  e018 000  e071 000 \\<br \/>\n              e02c 000  e072 000  e007 000  e008 000  e05b 125<br \/>\n  eend $?<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Make it executable: chmod +x \/etc\/init.d\/cherry<br \/>\nStart it: \/etc\/init.d\/cherry<br \/>\nand add it to your default runlevel: rc-update add cherry default  (on gentoo)<\/p>\n<p>1)  Take a look at your \/usr\/share\/X11\/XKeysymDB. This file includes all the available keyboard mappings you can have.<\/p>\n<p>2) Change your Keyboard Inputdevice in \/etc\/X11\/xorg.conf to include these (works in my current Xorg 7.1):<br \/>\n<code>Option      \"XkbModel\" \"cymotionlinux\"<br \/>\nOption      \"XkbVariant\" \"nodeadkeys\"<br \/>\n<\/code><\/p>\n<p>Restart your X server.<\/p>\n<p>3) Create a .Xmodmap file in your home dir and fill it with mappings from \/usr\/share\/X11\/XKeysymDB. Mine looks like this:<br \/>\n<code>! Internet-Keys (Back, Forward, Stop, Reload, Search)<br \/>\nkeycode 234 = XF86Back<br \/>\nkeycode 233 = XF86Forward<br \/>\nkeycode 232 = XF86Stop<br \/>\nkeycode 231 = XF86Refresh<br \/>\nkeycode 122 = XF86Search<br \/>\n! Multimedia-Keys (Play\/Pause, Stop, Back, Forward, Eject)<br \/>\nkeycode 162 = XF86AudioPlay<br \/>\nkeycode 164 = XF86AudioStop<br \/>\nkeycode 144 = XF86AudioPrev<br \/>\nkeycode 153 = XF86AudioNext<br \/>\nkeycode 204 = XF86Eject<br \/>\n! XPress-Keys left (Up, Down, Cut, Paste, Copy)<br \/>\nkeycode 220 = XF86ScrollUp<br \/>\nkeycode 143 = XF86ScrollDown<br \/>\nkeycode 188 = XF86Cut<br \/>\nkeycode 192 = XF86Paste<br \/>\nkeycode 248 = XF86Copy<br \/>\n! XPress-Keys right (List 1, List 2, List 3, Redo, Undo)<br \/>\n!keycode 159 = XF86Launch0<br \/>\n!keycode 151 = XF86Launch1<br \/>\n!keycode 171 = XF86Launch2<br \/>\n!keycode 138 = XF86Launch3<br \/>\n!keycode 135 = XF86Launch4<br \/>\n! Premium-Keys (Calculator, Email, Browser, On\/Off)<br \/>\nkeycode 161 = XF86Calculator<br \/>\nkeycode 236 = XF86Mail<br \/>\nkeycode 130 = XF86HomePage<br \/>\nkeycode 199 = XF86LogOff<br \/>\n! Main-Keys (-, +, Mute, Media-Player)<br \/>\nkeycode 174 = XF86AudioLowerVolume<br \/>\nkeycode 176 = XF86AudioRaiseVolume<br \/>\nkeycode 160 = XF86AudioMute<br \/>\nkeycode 129 = XF86AudioMedia<br \/>\n! @-Key<br \/>\nkeycode 116 = XF86Terminal<br \/>\n<\/code><\/p>\n<p>Do a:<br \/>\n<code>xmodmap ~\/.Xmodmap<\/code><\/p>\n<p>You can test your multimedia keys using <a href=\"http:\/\/www.xfree86.org\/current\/xev.1.html\">xev<\/a>.<br \/>\nIf you want fluxbox to automatically load these binding each time you logon, put &#8220;xmodmap ~\/.Xmodmap&#8221; somewhere (NOT in the end) inside your ~\/.fluxbox\/startup<\/p>\n<p>4) Edit your ~\/.fluxbox\/keys and map the new keys to actions like that:<br \/>\n<code>None XF86Launch1 :Workspace 1<br \/>\nNone XF86Launch2 :Workspace 2<br \/>\nNone XF86Launch3 :Workspace 3<br \/>\n!<br \/>\nNone XF86AudioPrev :ExecCommand audacious--rew<br \/>\nNone XF86AudioPlay :ExecCommand audacious --play-pause<br \/>\nNone XF86AudioNext :ExecCommand audacious --fwd<br \/>\nNone XF86AudioStop :ExecCommand audacious --stop<br \/>\nNone XF86Eject     :ExecCommand audacious -j<br \/>\n!<br \/>\nNone XF86AudioLowerVolume :ExecCommand amixer sset PCM 2-<br \/>\nNone XF86AudioMute :ExecCommand amixer sset \"Audigy Analog\/Digital Output Jack\" toggle<br \/>\nNone XF86AudioRaiseVolume :ExecCommand amixer sset PCM 2+<br \/>\nNone XF86AudioMedia :ExecCommand gmplayer<br \/>\n!<br \/>\nNone XF86Calculator :ExecCommand gcalctool<br \/>\nNone XF86Mail :ExecCommand \/usr\/bin\/thunderbird<br \/>\nNone XF86HomePage :ExecCommand \/usr\/bin\/firefox<br \/>\n!<br \/>\nNone XF86Terminal :ExecCommand mrxvt --loginShell<br \/>\n<\/code><\/p>\n<p>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.<\/p>\n<p>5) In order to use the side keys for more advanced functions like copy,paste,unde,redo,etc  do the following:<br \/>\nCreate \/usr\/share\/X11\/xkb\/compat\/cymotion with what you like. Mine looks like:<br \/>\n<code>\/\/ $XFree86$<br \/>\n\/\/  XFree86 special keysyms<br \/>\ndefault partial xkb_compatibility \"basic\"  {<br \/>\n    interpret.repeat= True;<br \/>\n\/\/  Ctrl+C for Copy<br \/>\n    interpret  XF86Copy {<br \/>\n        action = Redirect(Key=&lt;AB03&gt;, modifiers=Control);<br \/>\n    };<br \/>\n\/\/  Ctrl+V for Paste<br \/>\n    interpret  XF86Paste {<br \/>\n        action = Redirect(Key=&lt;AB04&gt;, modifiers=Control);<br \/>\n    };<br \/>\n\/\/  Ctrl+X for Cut<br \/>\n    interpret  XF86Cut {<br \/>\n        action = Redirect(Key=&lt;AB02&gt;, modifiers=Control);<br \/>\n    };<br \/>\n\/\/  Ctrl+Pos1 for ScrollUp<br \/>\n    interpret  XF86ScrollUp {<br \/>\n        action = Redirect(Key=&lt;HOME&gt;, modifiers=Control);<br \/>\n    };<br \/>\n\/\/  Ctrl+End for ScrollDown<br \/>\n    interpret  XF86ScrollDown {<br \/>\n        action = Redirect(Key=&lt;END&gt;, modifiers=Control);<br \/>\n    };<br \/>\n\/\/  Ctrl+Shift+Z for Redo<br \/>\n    interpret  Redo {<br \/>\n        action = Redirect(Key=&lt;AB01&gt;, modifiers=Shift+Control);<br \/>\n    };<br \/>\n\/\/  Ctrl+Z for Undo<br \/>\n    interpret  Undo {<br \/>\n        action = Redirect(Key=&lt;AB01&gt;, modifiers=Control);<br \/>\n    };<br \/>\n\/\/  Backspace for Back (Firefox)<br \/>\n    interpret  XF86Back {<br \/>\n        action = Redirect(Key=&lt;BKSP&gt;);<br \/>\n    };<br \/>\n\/\/  Shift+Backspace for Forward (Firefox)<br \/>\n    interpret  XF86Forward {<br \/>\n        action = Redirect(Key=&lt;BKSP&gt;, modifiers=Shift);<br \/>\n    };<br \/>\n\/\/  ESC for Stop (Firefox)<br \/>\n    interpret  XF86Stop {<br \/>\n        action = Redirect(Key=&lt;ESC&gt;);<br \/>\n    };<br \/>\n\/\/  Ctrl+R for Reload (Firefox)<br \/>\n    interpret  XF86Reload {<br \/>\n        action = Redirect(Key=&lt;AD04&gt;, modifiers=Control);<br \/>\n    };<br \/>\n\/\/  Ctrl+F for Search Page (Firefox and most other applications)<br \/>\n    interpret  XF86Search {<br \/>\n        action = Redirect(Key=&lt;AC04&gt;, modifiers=Control);<br \/>\n    };<br \/>\n};<br \/>\n<\/code><\/p>\n<p>6) Edit \/usr\/share\/X11\/xkb\/compat\/complete and add inside it:<br \/>\n<code>augment \"cymotion\"<\/code><\/p>\n<p>Restart X.<\/p>\n<p>And you should be done. <\/p>\n<p>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, &#8220;ctrl+c&#8221; becomes &#8220;ctrl+\u03c8&#8221; (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 \ud83d\ude42<\/p>\n<p>Here comes the result of all these (click to maximize):<\/p>\n<p><a href=\"http:\/\/void.gr\/kargig\/blog\/wp-content\/navigation.jpg\" rel=\"lightbox\" title=\"Cymotion Master Linux  - Navigation Keys\"><img src='http:\/\/void.gr\/kargig\/blog\/wp-content\/navigation.jpg' alt='' width=160 height=100 \/><\/a><\/p>\n<p><a href=\"http:\/\/void.gr\/kargig\/blog\/wp-content\/multimediaapplications.jpg\" rel=\"lightbox\" title=\"Cymotion Master Linux  - Multimedia and Application Keys\"><img src='http:\/\/void.gr\/kargig\/blog\/wp-content\/multimediaapplications.jpg' alt='' width=160 height=100 \/><\/a><\/p>\n<p><a href=\"http:\/\/void.gr\/kargig\/blog\/wp-content\/left_keys.jpg\" rel=\"lightbox\" title=\"Cymotion Master Linux  - Left Keys\"><img src='http:\/\/void.gr\/kargig\/blog\/wp-content\/left_keys.jpg' alt='' width=160 height=100 \/><\/a><\/p>\n<p><a href=\"http:\/\/void.gr\/kargig\/blog\/wp-content\/right_keys.jpg\" rel=\"lightbox\" title=\"Cymotion Master Linux  - Right Keys\"><img src='http:\/\/void.gr\/kargig\/blog\/wp-content\/right_keys.jpg' alt='' width=160 height=100 \/><\/a><\/p>\n<p><a href=\"http:\/\/void.gr\/kargig\/blog\/wp-content\/lower_higher_volume.jpg\" rel=\"lightbox\" title=\"Cymotion Master Linux  - Volume Keys\"><img src='http:\/\/void.gr\/kargig\/blog\/wp-content\/lower_higher_volume.jpg' alt='' width=160 height=100 \/><\/a><\/p>\n<p><a href=\"http:\/\/void.gr\/kargig\/blog\/wp-content\/mute_mplayer.jpg\" rel=\"lightbox\" title=\"Cymotion Master Linux  - Mute\/Media Keys\"><img src='http:\/\/void.gr\/kargig\/blog\/wp-content\/mute_mplayer.jpg' alt='' width=160 height=100 \/><\/a><\/p>\n<p>References:<br \/>\na) http:\/\/forums.gentoo.org\/viewtopic-t-261126-highlight-cymotion.html<br \/>\nb) http:\/\/www.ubuntu-forum.de\/thread.php?threadid=11319<br \/>\nc) http:\/\/my.opera.com\/netzpirat\/blog\/show.dml\/505978<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Some tips in getting Cherry Cymotion Master Linux (german layout image) to work with fluxbox (with Gentoo of course). This keyboard&#8217;s keys have a great feeling and a great &#8220;clickety click&#8221; sound. The 20% extra surface on the keys makes typing a lot easier but you need a couple of hours to get used to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ep_exclude_from_search":false,"footnotes":""},"categories":[12,3],"tags":[],"class_list":["post-247","post","type-post","status-publish","format-standard","hentry","category-gentoo","category-linux"],"aioseo_notices":[],"views":18504,"_links":{"self":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/comments?post=247"}],"version-history":[{"count":0,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/posts\/247\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/media?parent=247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/categories?post=247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.void.gr\/kargig\/blog\/wp-json\/wp\/v2\/tags?post=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}