#!/bin/bash
################################################################################
# Fichier : kde3_media_kb.sh
# Auteur : Sebastien Beaugrand
# Date : 17/03/2009
# Url : http://www.chez.com/beaugrand/
################################################################################
user=`whoami`
if [ $user != "root" ]; then
echo "you must be root"
exit -1
fi
echo -n "user ? "
read user
kde=`ls -d /home/$user/.kde* | tail -n 1`
loadprg=mp3load.sh # Montage du disque puis appel a mp3rand.sh
loadprg=mp3rand.sh # Selection aleatoire de l'album
loadprg="mp3term.sh -x" # Interface pour mp3rand.sh
loadkey=129 # Keycode a verifier avec xev
loadkey=237 # Pour le Logitec MX3000
commands=(\
"/home/$user/install/bin/$loadprg"\
"xmms-shell -e previous"\
"xmms-shell -e next"\
"/home/$user/install/bin/mute.sh"\
"/home/$user/install/bin/playpause.sh"\
"xmms-shell -e stop"\
"aumix-text -d/dev/mixer -w-1"\
"aumix-text -d/dev/mixer -w+1")
names=(\
"MediaLoad" "MediaPrev" "MediaNext" "MediaMute"\
"MediaPlay" "MediaStop" "MediaDown" "MediaUp")
file=/usr/share/X11/XKeysymDB
if ! grep MediaLoad $file > /dev/null; then
cat >> $file << EOF
MediaLoad:10090000
MediaPrev:10090001
MediaNext:10090002
MediaMute:10090003
MediaPlay:10090004
MediaStop:10090005
MediaDown:10090006
MediaUp :10090007
EOF
else
echo "la configuration semble deja faite dans $file"
fi
file=/etc/X11/Xmodmap
if ! grep MediaLoad $file > /dev/null; then
cat >> $file << EOF
keycode $loadkey = MediaLoad
keycode 144 = MediaPrev
keycode 153 = MediaNext
keycode 160 = MediaMute
keycode 162 = MediaPlay
keycode 164 = MediaStop
keycode 174 = MediaDown
keycode 176 = MediaUp
EOF
else
echo "la configuration semble deja faite dans $file"
fi
echo -e '#!/bin/bash\nxmodmap /etc/X11/Xmodmap' > $kde/Autostart/Xmodmap
chmod 755 $kde/Autostart/Xmodmap
mkdir -p /home/$user/install/bin
file=/home/$user/install/bin/mute.sh
if [ ! -x $file ]; then
cat > $file << EOF
vol=\`aumix-text -vq | cut -d " " -f 2 | cut -d "," -f 1\`
if [ \$vol = 0 ]; then
aumix-text -v100
else
aumix-text -v0
fi
EOF
chown $user.$user $file
chmod 755 $file
fi
file=/home/$user/install/bin/playpause.sh
if [ ! -x $file ]; then
cat > $file << EOF
status=\`xmms-shell -e status 2>/dev/null | head -n 1 | cut -c-7\`
if [ "\$status" = "Playing" ]; then
xmms-shell -e pause
else
xmms-shell -e play
fi
EOF
chown $user.$user $file
chmod 755 $file
fi
xmodmap /etc/X11/Xmodmap
file=$kde/share/config/khotkeysrc
if ! grep MediaLoad $file > /dev/null; then
cp $file $file.bak
offset=`grep DataCount $file | head -n 1 | cut -d '=' -f 2`
total=$(($offset+${#commands[*]}))
sed "1,4s/DataCount=$offset/DataCount=$total/" $file.bak > $file
offset=$(($offset+1))
for ((i=0;$i<${#commands[*]};i++)); do
echo -e "${names[$i]}"":\t""${commands[$i]}"
n=$(($i+$offset))
cat >> $file << EOF
[Data_$n]
Comment=
Enabled=true
Name=${names[$i]}
Type=COMMAND_URL_SHORTCUT_ACTION_DATA
[Data_${n}Actions]
ActionsCount=1
[Data_${n}Actions0]
CommandURL=${commands[$i]}
Type=COMMAND_URL
[Data_${n}Conditions]
Comment=
ConditionsCount=0
[Data_${n}Triggers]
Comment=Simple_action
TriggersCount=1
[Data_${n}Triggers0]
Key=${names[$i]}
Type=SHORTCUT
EOF
done
chown $user.$user $file
else
echo "la configuration semble deja faite dans $file"
echo "exemple de commandes:"
for ((i=0;$i<${#commands[*]};i++)); do
echo -e "${names[$i]}"":\t""${commands[$i]}"
done
echo "essayez: kcmshell khotkeys"
fi
# Fin du fichier kde3_media_kb.sh