Playing With Sid

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Wednesday, 30 January 2008

Multimedia/Internet Keyboards in GNU/Linux

Posted on 10:16 by Unknown

As the resident Gnu/Linux guru, I sometimes help new users making transition from other OS’s.Over the years I’d ask anyone who installed Gnu/Linux about what hardware devices didn’t work for them,most often it is Multimedia/Internet keyboards. In this article, we’ll configure one such keyboard using Hotkeys.



Anthony Wong’s Hotkeys program is written to handle all those special keys provided by the multimedia/Internet keyboards and launch programs associated with them.Though there are numerous ways to configure these keyboards in Gnu/Linux,Hotkeys is easier to configure and its osd (on-screen display) is very simillar to those available on other OS’s.



You can visit Hotkeys site to download the latest version of the program as tarball or as a debian package.



The installation on Debian machine can be done using the apt-get.




$ apt-get install hotkeys




Configuration



Hotkeys starts a daemon process,usually started with xinit process,it uses a global configuration file /etc/hotkeys.conf and user configuration’s can be stored in $HOME/.hotkeysrc.



The hotkeys.conf configuration is well commentted, should not present any problems to new users.Its contains can be summed up as



1) Device Settings




Keyboard Type (kbd=”“)
CD Drive (CDROM=”“)





The supported keyboards can be checked with ‘hotkeys -l’.

2) Key Behaviour




Tag = ‘command’ (Play = “xmms —play-pause”)





The complete list of tags can be found in /usr/share/doc/hotkeys/sample.xml file.The users can also create their own tags.



3) On-Screen Display Properties




Font (osd_font=”“)
Color (osd_color=”“)
Position (osd_position=”“)



#Sample /etc/hotkeys.conf file.
#########################


  1. Global configuration for hotkeys #
    #########################



    1. These are the default values.

    2. A line starting with # is a comment.

    3. Specify the default keyboard (without the .def extension) so you


    4. don’t need to specify -t every time

      Kbd=hp5181

      CDROM=/dev/cdrom # use ‘none’ if don’t have a CDROM Drive
      PrevTrack=xmms —rew
      Play=xmms —play-pause
      Stop=xmms —stop
      Pause=xmms —pause
      NextTrack=xmms —fwd
      Rewind=
      WebBrowser=mozilla
      Email=mozilla -mail
      Calculator=xcalc
      FileManager=gmc
      MyComputer=gmc
      MyDocuments=gmc
      Favorites=gnome-moz-remote —remote=openBookmarks
      Transfer=gtp
      Record=grecord
      Shell=xterm -rv
      ScreenSaver=xscreensaver-command -activate
      NewsReader=mozilla -news
      Communities=mozilla -remote ‘openURL(http://slashdot.org)’

      Search=mozilla -remote ‘openURL(http://google.com)’
      Idea=mozilla -remote ‘openURL(http://sourceforge.net)’
      Shopping=mozilla -remote ‘openURL(http://thinkgeek.com)’
      Go=mozilla -remote ‘openURL(http://linux.com)’
      Print=lpr
      Rotate=


      osd_font=-arphic-ar pl kaitim big5-bold-i-normal—0-250-0-0-c-0-*-*

    5. For the color, you can either use the strings in /etc/X11/rgb.txt,

    6. or use the RGB syntax #RRGGBB, e.g. ##A086FF

      osd_color=LawnGreen

      osd_timeout=3

    7. osd_position is either ‘top’ or ‘bottom’


      osd_position=bottom

      osd_offset=25





Configure Unsupported Multimedia/Internet keyboard



The Hotkeys program is still under development,you may not find your keyboard in the default list.To configure your keyboard, find out the keycodes of the all special keys on your keyboard.



Use the xev program to capture the keycodes and save it to file.Move your cursor to square on the xev window and press the special keys in a sequence.




$ xev 2>&1 >mykeys




Search the file for the keycodes.




$ grep ‘keycode’ mykeys | cut -d “ “ -f7,8 >mykeycodes




Check the file to see the keycodes.




$ cat mykeycodes

keycode 223

keycode 166

keycode 151

keycode 232

keycode 159

keycode 153


keycode 144

keycode 165

keycode 158

keycode 146

keycode 178

keycode 150

keycode 148

keycode 149

keycode 173


keycode 164

keycode 163

keycode 162

keycode 161

keycode 152

keycode 160

keycode 174

keycode 176

keycode 64





Hotkeys uses XML to define keycodes and their functionality.These are stored as ‘.def’ files in /usr/share/hotkeys directory.Let’s use the sample.xml file provided by the hotkeys to build a custom keyboard definition file.




$ cp /usr/share/doc/hotkeys/sample.xml /usr/share/hotkeys/custom.def





The hotkeys support various pre-defined ‘tags’ like Sleep, Search, Shopping andvarious CD/DVD player controls

(See /usr/share/doc/hotkeys/sample.xml). Each ‘tag’ has a behaviour assigned, Sleep uses APM to turn your computer into hibrnatio.Many other special function keys can also be configured.



For example the half-moon key on my keyboard is configured using ‘Sleep’ tag.


<Sleep keycode=“223”/>




And un-defined Shortcut key is set with.



<code>
<userdef keycode="232" command="xterm">Xterm</userdef>
</code>


Here is how the custom.def appears with the above examples.



<?xml version="1.0"?>
<definition>
<config model="My custom keyboard">
<!-- Support Tags functions -->
<!-- half-moon key -->

<Sleep keycode="223"/>
<!-- User define functions -->
<userdef keycode="232" command="xterm">Xterm</userdef>
</config>

<contributor>
<name>your-name</name>
<email>your-email</email>
</contributor>
<definition>


Now test the custom.def by using it as your keyboard type.




$ hotkeys -t custom




A lot more keys can be set using the same custom.def file, a little effort pays off really well.If you have configured a new Multimedia/Internet keyboard using hotkeys, do take time to send it project developers, it would help many other users with same keyboards.



Web Resources



Hotkeys Help Forum



Hotkeys Project

Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in cut, debian, grep, hardware, hotkeys, keyboard, keycode, xev | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Gitbox Git GUI tool
    Here is another post in the series of the posts about tools that makes developers life simpler. Git was developed as distributed revision c...
  • Vietnamese Language Tools: Developing Keyboards and Spell-checker
    Mentoring Mozilla Vietnamese localization team to develop Vietnamese keyboard and spell checker for Firefox OS . We built and tested Vietna...
  • Install CyanogenMod 10.1 (Android Jellybean 4.2.2) on Samsung Galaxy S2 (GT-I9100G)
    In this post we'll install Cyanogenmod CM 10.1.x on Samsung Galaxy SII mobile phone. Please note this instructions apply to Samsung Gal...
  • New Year's Post
    What a year it was, a little high and little lows and whole bunch of controversies of course. And to top it all I decided to stay back in ke...
  • Change Samba Password Expiry Setting with pdbedit
    We have a Zentyal (Formerly EBox) Linux Small Business Server running as our office file/print server. Its runs smoothly hardly needs any ...
  • How to Install LibreOffice in Ubuntu
    In my last post I talked about LibreOffice. In case you wondering how to install LibreOffice on your ubuntu computer. Here are the instruct...
  • Barcamp Phnom Penh 5
    Last year we kick-started Mozilla Firefox Aurora Khmer localization effort at Barcamp Phnom Penh 4 . Now a year later, Thanks to efforts of ...
  • Dots braille editor for Linux
    Dots is braille typesetting program for gnu/Linux, it can translate XML and MS DOC files and displays it both ASCII and braille dot notati...
  • Postfix Log Entry Summarizer
    Everyday I manage a Postfix mail server that handles emails from 20 mailing-lists. On days like this when there lot of email traffic, I ke...
  • Healthy Fruit Juices In Trivandrum
    For most visitors to Kerala the tender coconut juice seems to be standard choice. If you are feeling adventurous visit Chitra Juice Palace ...

Categories

  • "Blog Action Day 08 - Poverty"
  • "blog action day"
  • "Compiz Extras "
  • "compiz-fusion"
  • "film making"
  • "FSUG-Bangalore"
  • "GISS"
  • "Graphic Design"
  • "Linux"
  • "martial art"
  • "New Media"
  • "open movie editor"
  • "OpenCV"
  • "web authentication"
  • "web automation"
  • "web testing"
  • 01-18-2012
  • 10.04
  • 10.10
  • 3dprinting
  • 9.04
  • a
  • a11y
  • accerciser
  • accessibility
  • acpi
  • Activism
  • adobe
  • adzap
  • aegis
  • africa
  • AIR
  • ajax
  • alsa
  • AMD64
  • Andhra Pradesh
  • android
  • angling
  • Animals
  • anusaaraka
  • apache
  • apertium
  • api
  • apm
  • apple
  • apport
  • Apps Script
  • apt-get
  • apt-key
  • architecture
  • archmage
  • ardour
  • arduino
  • ARM
  • art
  • asterisk
  • atom
  • audio description
  • backlinks
  • bangalore
  • barcamp
  • barcamphanoi
  • barcampkl
  • barcamppp
  • barcampsaigon
  • barcampvte
  • bash
  • bbc
  • bcy2011
  • beagle
  • beercamp
  • Beryl
  • big buck bunny
  • biofuel
  • bittorrent
  • blackout
  • blender
  • blind
  • blogger
  • blogging
  • book
  • Boot-Process
  • boot2gecko
  • bootparam
  • braille
  • brazil
  • breakpad
  • broadcom
  • bugs
  • bzr
  • Calicut
  • cambodia
  • canon
  • Canopy
  • cartoons
  • cat
  • CC
  • CDAC
  • CDMA
  • celliax
  • censorship
  • CES 2008
  • CES08
  • CHDK
  • chennai
  • children
  • china
  • CHM
  • chmsee
  • Chromium
  • classmate PC
  • cleaning
  • Climate Change
  • cloud computing
  • cms
  • codec
  • Comedy
  • comics
  • command line
  • CommandLine
  • compiz
  • Computational Linguistics
  • console
  • cpan
  • Creative Commons
  • cron
  • css
  • curl
  • cut
  • cyanogenmod
  • DAISY
  • debian
  • debian documentation
  • debian upgrade-system
  • Debian-IN
  • deborphan
  • delhi
  • design
  • dhvani
  • django
  • DJvu
  • dmesg
  • documentation
  • dontzap
  • dots
  • dpatch
  • drupal
  • drush
  • earth hour
  • easy_install
  • ebay
  • eclipse
  • Ecuador
  • education
  • eee pc
  • eeepc
  • elinks
  • Elinks2
  • emacs
  • embedded linux
  • Environment
  • equivs
  • espeak
  • etch
  • events
  • fennec
  • ffmpeg
  • fiction
  • film
  • film making
  • find
  • findutils
  • firefox
  • firefox3
  • firefox4
  • firefoxOS
  • firmware
  • fishing
  • flying
  • foss.in
  • fossasia
  • fossin2008
  • FOSSMeet
  • free culture
  • free software
  • FreeNode
  • fsf
  • fsfs
  • fx4
  • G1
  • gadgets
  • gdm
  • gedit
  • geek humour
  • geocoding
  • Gimp
  • GISS
  • GIST
  • git
  • gnewsense
  • gnochm
  • gnome
  • google
  • google app engine
  • google earth
  • gplv3
  • grep
  • grub
  • GSM
  • gstreamer
  • gta02
  • GUI Testing
  • habba.in
  • hack
  • hackable1
  • hacker
  • handbrake
  • hanoi
  • hanoitweetup
  • hardware
  • hardy heron
  • HCU
  • hindi
  • hipatia
  • history
  • hosting
  • hotkeys
  • how to
  • HowTo
  • html
  • html5
  • HTTP
  • humour
  • hunspell
  • hyderabad
  • i810
  • ICANN41
  • iceweasel
  • identi.ca
  • IEEE
  • iffk
  • iframe
  • IISE
  • ILS
  • ILUG-D
  • IM
  • imacros
  • india
  • india_engg_students
  • Indian Languages
  • indic
  • indlinux
  • initscripts
  • Inkscape
  • intel
  • interaction design
  • internet
  • internet kiosk
  • intersat
  • Intrepid
  • Intrepid Ibex
  • ipod
  • IRC
  • jam
  • jaunty
  • Java
  • Javascript
  • Jet Man
  • josm
  • jquery
  • JSSH
  • Kannada
  • karmic
  • Kchm
  • kerala
  • kernel
  • keyboard
  • keycode
  • kid
  • kiddy video
  • kids
  • kinect
  • kiosk
  • koha
  • l10n
  • laos
  • launchpad
  • layout
  • ldap
  • lenny
  • less
  • lftp
  • libchm
  • library
  • libreoffice
  • lilo
  • Linux
  • lisp
  • local weather
  • locate
  • logging
  • lttoolbox
  • lucid
  • lv
  • machine translation system
  • madras
  • maemo
  • mailing-list
  • mallard
  • MALT
  • malware
  • man
  • manga
  • maps
  • maverick
  • mediawiki
  • meego
  • mencoder
  • merkaartor
  • Mibbit
  • micro-blogging
  • midori
  • mlocate
  • Mobile
  • moblin
  • mod_pagespeed
  • modem
  • more
  • most
  • mother
  • mozcamp
  • mozilla
  • Mozilla Crash Reporter
  • mplayer
  • MT
  • mukt.in
  • music
  • mwc2012
  • myanmar
  • mymozl10n
  • mysql
  • n70
  • nature
  • nedumangad
  • neo freerunner
  • Neo1973
  • nepal
  • netbooks
  • newbies
  • news
  • NGO
  • NITC
  • NLP
  • NLTK
  • Nokia
  • Nonprofits
  • notify-osd
  • novell
  • NUI
  • nvda
  • OCR
  • oddmuse
  • OLPC
  • ooffice
  • open movie
  • openDNS
  • openmoko
  • openNI
  • openOffice
  • openoffice.org
  • OpenStreetMap
  • opensuse
  • openvt
  • orca
  • OS
  • oscar
  • OSM
  • Package-Management
  • packaging
  • pager
  • parenting
  • patents
  • pbx
  • PDF
  • people
  • perl
  • Pets
  • Phatch
  • photography
  • php
  • php-nuke
  • phpnuke
  • pidgin
  • PIL
  • pipa
  • podcast
  • podcasting
  • pokhara
  • POS Tagger
  • postfix
  • potlatch
  • poweroff
  • powershot
  • proc
  • programming
  • pune
  • puppylinux
  • pyCairo
  • python
  • pythonegg
  • QA
  • Qmail
  • radio show
  • Recycling
  • red nose day
  • redhat
  • regex
  • RFC
  • RHEL
  • rms
  • RND
  • robots
  • rockbox
  • RSS
  • RSS/XML
  • rtorrent
  • rubber
  • ruby
  • rural
  • s60
  • sahana
  • samba
  • sampada
  • samsung
  • sbcl
  • science
  • scipy
  • search
  • security
  • SFD2011
  • shell
  • short-stories
  • shutdown
  • silk
  • singapore
  • sitecopy
  • skype
  • slocate
  • social media
  • software patents
  • software-center
  • softwarefreedomday
  • solar
  • solar eclipse
  • sopa
  • space
  • spam
  • SPE editor
  • speakers
  • spins
  • squid
  • stallman
  • stanford parser
  • startups
  • startx
  • stumpwm
  • SUSE
  • system-adminstration
  • sysvinit
  • t-shirt
  • tablet
  • tactile watch
  • tea shops
  • teacher
  • technology
  • tee
  • telugu
  • terminal
  • terminal Tags: command line
  • Tesseract
  • Testing
  • The IT Crowd
  • theatre
  • tibet
  • tracker
  • travel
  • trek
  • trekking
  • tux4kids
  • tuxmath
  • tv
  • tweets
  • twitter
  • ubuntu
  • UMPC
  • unicode
  • UNR
  • uptime
  • urdu
  • User friendly
  • uTouch
  • UX
  • UXA
  • vagrant
  • VCS
  • veli
  • vidarbha
  • video
  • video hamming
  • video hams
  • video-ham
  • vim
  • virutalization
  • visualization
  • voip
  • vsat
  • w3c
  • watches
  • water from dew
  • WATiR
  • weather stations
  • weave
  • web automation
  • web standards
  • web testing
  • web-browser
  • web2py
  • webmaker
  • wget
  • Wiki
  • wikia
  • wikipedia
  • Windows
  • Windows XP
  • wmv
  • Word Press
  • wordpress
  • worm
  • wrapzap
  • writing
  • wvdial
  • X-Window-System
  • X11
  • xchm
  • xev
  • xml
  • xmlstarlet
  • XO Laptop
  • xorg
  • xserver
  • xvidcap
  • yahoo groups
  • yahoo maps
  • yelp
  • Yves Rossy
  • Zii
  • ZTE

Blog Archive

  • ►  2013 (23)
    • ►  December (3)
    • ►  November (3)
    • ►  September (1)
    • ►  August (1)
    • ►  July (1)
    • ►  June (2)
    • ►  May (3)
    • ►  April (1)
    • ►  March (1)
    • ►  February (5)
    • ►  January (2)
  • ►  2012 (26)
    • ►  December (3)
    • ►  November (1)
    • ►  October (1)
    • ►  July (1)
    • ►  June (3)
    • ►  May (6)
    • ►  April (1)
    • ►  March (8)
    • ►  January (2)
  • ►  2011 (43)
    • ►  December (2)
    • ►  November (7)
    • ►  October (8)
    • ►  September (4)
    • ►  August (5)
    • ►  June (1)
    • ►  February (6)
    • ►  January (10)
  • ►  2010 (73)
    • ►  December (17)
    • ►  November (5)
    • ►  October (10)
    • ►  September (3)
    • ►  August (8)
    • ►  July (9)
    • ►  June (4)
    • ►  March (5)
    • ►  February (7)
    • ►  January (5)
  • ►  2009 (108)
    • ►  December (7)
    • ►  November (10)
    • ►  October (8)
    • ►  September (6)
    • ►  August (8)
    • ►  July (4)
    • ►  June (5)
    • ►  May (6)
    • ►  April (15)
    • ►  March (15)
    • ►  February (9)
    • ►  January (15)
  • ▼  2008 (223)
    • ►  December (45)
    • ►  November (28)
    • ►  October (32)
    • ►  September (4)
    • ►  August (11)
    • ►  July (6)
    • ►  June (11)
    • ►  May (3)
    • ►  April (11)
    • ►  March (7)
    • ►  February (3)
    • ▼  January (62)
      • OLPC XO-1 demo-ed at ILUG-Goa Meet
      • If Operating Systems Ran The Airlines
      • Wake up to the music
      • Volunteer with Free Software Foundation of India (...
      • Raw Control Characters In Less pager
      • Free Website Uptime Monitoring Service
      • Upgrade problems for sysvinit (2.86.ds1-16 | 2.86....
      • RFC Humour: Really Funny Collection
      • OI! Move over, The IT Crowd is here
      • Logging PHPnuke Database Connection Failures
      • What works in Yahoo! Groups spam control ?
      • Handling CHM files in GNU/Debian Linux
      • How to Block Ads With Adzap
      • Multimedia/Internet Keyboards in GNU/Linux
      • Website file Uploads With lftp
      • GNU GPL version 3 released ( GPLv3 )
      • Yahoo! India maps now offers Geocoding service
      • BitTorrent "INFO : duplicate connection (id collis...
      • Its party time for Debian camp
      • libTorrent / rTorrent 0.7.0 debian packages available
      • Smart URL 's in Elinks
      • Error messages on the console screen
      • Download High Quality Movie Trailers
      • GNU/Debian Linux don't power off after shutdown
      • What is Video-Hams
      • Understanding The Free Software Philosophy
      • The Indian Linux Community
      • !Just Another Source Forge.net Project
      • GNU Debian upgrade-system script deborphan purge w...
      • Coders And SysAdmins
      • New CD Writing Tools in Debian "Etch"
      • Hacker High School
      • BitTorrent 4.20.x python2.4 packages on Debian
      • Debian NEW and BYHAND Packages
      • Advanced Ad-blocking in Firefox
      • Debian and mplayer FAQ
      • Christian Marillat's Debian packages moves to ...
      • Google Earth Under Linux
      • Faux Columns: Javascript solution
      • WCAG2 objections, threats, unprintables
      • Python2.4 only debian setup
      • All The Moneys Worth
      • House of Dancing Lights
      • Debian Dpatch How To
      • Asus Eee PC goes on Sale in India
      • Visual Guide to Debian Release Code Names
      • Top 5 Reasons Why Mike Loves Debian
      • Guide to Unix/Linux Commands
      • Cheap laptops (15k) in India
      • EeePC with Every Hack Possible (GPS, Bluetooth, 80...
      • The Debian System by Martin F. Krafft
      • Device To Tackle Digg Addiction Disorder
      • Initscripts Package: mountnfs shell script errors
      • Running WATiR On gnu/Debian Linux
      • Open Street Map Workshops In India
      • New Blog Design
      • Debian Changing Default Cursor Theme
      • Le Grand Content
      • Iceweasel Display Problem
      • Compiling Threadless SBCL for Stumpwm on Debian Sid
      • Emacs 'Save All'
      • Book Asus Eeepc online in India
  • ►  2007 (2)
    • ►  December (2)
Powered by Blogger.

About Me

Unknown
View my complete profile