I've got a Logitech Internet Keyboard on my SuSE PC, and there are some multimedia keys like play, forward and so.
First I had to activate them by using my own Xmodmap
Example 3.1. /home/cweiske/.Xmodmap for the Logitech Internet Keyboard
keycode 160 = XF86AudioMute keycode 174 = XF86AudioLowerVolume keycode 176 = XF86AudioRaiseVolume keycode 162 = XF86AudioPlay keycode 164 = XF86AudioStop keycode 144 = XF86AudioPrev keycode 153 = XF86AudioNext keycode 236 = XF86Mail keycode 229 = XF86Search keycode 230 = XF86Go keycode 178 = XF86HomePage keycode 223 = XF86Sleep
Now the keys were automatically loaded on my SuSE system, but not on
my gentoo; I had to find a way that the modmap is started when X is
started. I changed the file
$KDEDIR/share/config/kdm/Xsession and inserted the
following code after the shebang (#!/bin/sh):
Example 3.2. $KDEDIR/share/config/kdm/Xsession
...
if [ -f $HOME/.Xmodmap ]; then
/usr/X11R6/bin/xmodmap $HOME/.Xmodmap
fi
...Now the Xmodmap should be loaded everytime you log into your KDE.
As I use several programs to play videos, music and TV I made some scripts which control every program - but not at the same time, only the one which is active. All of the scripts are activated by the KHotkeys daemon from KDE.
Example 3.3. /home/cweiske/scripts/play
#!/bin/sh
#check if kaffeine is running
kaffeine=`dcop | grep kaffeine -c`
if [ $kaffeine = '1' ]; then
#kaffeine is running, control it
dcop kaffeine Kaffeine togglePlayPause
elif [ `pgrep tvtime` ]
then
#tvtime
tvtime-command TOGGLE_PAUSE
tvtime-command TOGGLE_MUTE
else
#no kaffeine, no tvtime
#xmms play-pause
xmms -t
fiThis code does the following: - if Kaffeine (KDE video player) is running, a play/pause signal is sent to it - if tvtime (TV application) is running (but not kaffeine), the picture is paused and the sound is muted in tvtime - if none of the above, XMMS shall play/pause.