Configurer les touches mutimédia

Auteur : Olivier BOYER - oboyer () ajoute ! org

Mots clés

Linux, mutimédia, clavier, lineakd, esay access, dell, inspiron 6000

Introduction

Le but de ce document est d'expliquer comme associer des actions aux 8 touches multimédia de façade sur un portable DELL Inspiron 6000.

J'utilise LinEAK (Linux support for Easy Access and Internet Keyboards) de Sheldon Lee Wen et Mark Smulders. Le projet est à l'adresse http://lineak.sourceforge.net

Normalement ce daemon est lancé par chaque utilisateur lors de son ouverture de session graphique. Cela impose d'avoir un fichier de configuration par utilisateur. Dans la configuration qui suit, j'ai voulu :

  • avoir un fichier de configuration général, utilisé par défaut
  • avoir un fichier propre à un utilisateur, utilisé s'il existe
  • que lineakd soit lancé automatiquement à l'ouverture de la session graphique d'un utilisateur
  • que lineakd s'exécute sous l'identité de l'utilisateur qui a ouvert la session X.

Voici les étapes à suivre.

Modifier le fichier /etc/lineakkb.def

Dans l'installation standard de la Ubuntu, lineakd est déjà installé. Il faut cependant ajouter la définition du clavier du DELL Inspiron 6000 à son fichier de configuration /etc/lineakkb.def.

Ajouter les lignes suivantes pour définir les touches multimédia :

#### Aditionnal Keyboards ####
[DELL-6000]
 brandname = "Dell"
 modelname = "Dell Inspiron 6000"
 [KEYS]
   Play        = 162
   Previous    = 144
   Next        = 153
   Stop        = 164
   VolumeUp    = 176
   VolumeDown  = 174
   Mute        = 160
 [END KEYS]
[END DELL-6000]
#### END Aditionnal Keyboards ####

Créer le fichier /etc/lineak/lineakd.conf

J'ai décidé que le fichier /etc/lineak/lineakd.conf serait le fichier général de lineakd (option '-f' du daemon).

Créez le répertoire :

# mkdir /etc/lineak

Puis, créez le fichier comme suit :

# /etc/lineak/lineakd.conf
#
# Created by Olivier BOYER 
# This is system wide definitions for Linux Easy Access Keybord daemon
# See lineakd(1)
# This file is optional. It has been created to provide system wide
# lineakd settings. Lineakd is started at SessionTime, if local users 
# don't have a $HOME/lineak/lineakd.conf file.
# See /etc/X11/Xsession.d/80-lineakd_start file

# LinEAK - Linux support for Easy Access and Internet Keyboards
#  Copyright (c) 2001,2002, 2003  Sheldon Lee Wen <leewsb@hotmail.com>
#  	and Mark Smulders <Mark@PIRnet.nl>
#  http://lineak.sourceforge.net
#
# lineakd configuration file
#
# example key configuration:
# 	play	= "xmms --play-pause"
# 	eject	= EAK_EJECT
#
# Lineakd supports the following modifier keys:
#    control alt shift mod2 mod3 mod4 mod5

CdromDevice = /dev/cdrom
Display_align = center
Display_color = 0aff00
Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-*
Display_hoffset = 0
Display_plugin = internal
Display_pos = bottom
Display_soffset = 1
Display_timeout = 3
Display_voffset = 50
KeyboardType = DELL-6000
MixerDevice = /dev/mixer
RAWCommands = 
Screensaver = 
conffilename = /etc/lineak/lineakd.conf
keystate_capslock = 
keystate_numlock = 
keystate_scrolllock = 

Mute = "amixer sset Master toggle"
Next = "xmms -f"
Play = "xmms --play-pause"
Previous = "xmms -r"
Stop = "xmms -s"
VolumeDown = "amixer sset Master 5%-"
VolumeUp = "amixer sset Master 5%+ unmute"

#EOF

Créer le fichier /etc/X11/Xsession.d/80-lineakd_start

Le mécanisme d'ouverture de session X utilisé (Xsession) exécute, à chaque ouverture, les scripts du répertoire /etc/X11/Xsession.d sous l'identité de l'utilisateur.

Ainsi, pour lancer lineakd à chaque ouverture de session pour tous les utilisateurs, créez le fichier /etc/X11/Xsession.d/80-lineakd_start, comme suit :

/etc/X11/Xsession.d/80-lineakd_start

# Start lineakd(1) [Linux Easy Access Keys] daemon,
# at every gdm session, for all users
# If user doesn't have $HOME/lineak/lineakd.conf file, start default one
# default conf : /etc/lineak/lineakd.conf

[ -z "$HOME" ] && exit 0
_sysconf=/etc/lineak/lineakd.conf
_userconf=$HOME/lineak/lineakd.conf
_lineakd=/usr/bin/lineakd

if [ -r ${_userconf} ] ; then
	echo "Start lineakd with user'configuration"
	${_lineakd} &
elif [ -r ${_sysconf} ] ; then
		echo "Start lineakd with system configuration"
		${_lineakd} -f ${_sysconf} &
	else
		echo
		echo "ERROR in /etc/X11/Xsession.d/80-lineakd_start file"
		echo "ERROR: Can not start lineakbd"
		echo "ERROR:${_sysconf}: no such file or directory"
		echo
	fi
fi

#EOF

Le daemon lineakd sera donc lancé sous l'identité de l'utilisateur à chaque ouverture de sessionX. Si l'utilisateur possède son propre fichier de configuration de lineakd, alors il sera lu, sinon, c'est celui par défaut qui sera pris en compte.

 
doc/linux/lineakd.txt · Dernière modification: 2009/12/23 22:36 (édition externe)     Haut de page