Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[HowTo] Setup Tastiera Multimediale
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools)
View previous topic :: View next topic  
Author Message
comio
Advocate
Advocate


Joined: 03 Jul 2003
Posts: 2191
Location: Taranto

PostPosted: Thu Jun 08, 2006 7:41 pm    Post subject: [HowTo] Setup Tastiera Multimediale Reply with quote

Ciao a tutti,

Vi riporto la mia esperienza riguardo la configurazione del mio nuovo kit tastiera+mouse multimediale sotto Xorg 7.1 (ma per alcune modifiche credo che valga anche per Xorg 7.0).

Premessa
Il Kit da me acquistato è un Logitech Cordless UltraX Media Desktop. Le caratteristiche salienti del prodotto sono:
- Mouse Ottico Wireless con 4 pulsanti "classici" (2 canonici e 2 laterali), rotella con due assi (avanti, indietro, sinistra e destra) e con funzione di 3° tasto: Totale 9 Tasti
- Tastiera senza tasto INS (non capisco questa moda...), tasto [Fn] come i portatili per la sencoda funzione dei tasti Funzione e "cerchio" multimediale con 5 tasti (Play/Pause, Vol+, Vol-, Forward, BackForward) e tasto Mute: 15 tasti attivabili con Fn + 6 Tasti "Multimedia".

Il mio obiettivo, ambizioso, è stato quello di dare una funzione ad ogni tasto senza nessuna eccezione. Per raggiungere scopo è necessario:
- configurare il kernel Linux per il supporto evdev;
- installare Xorg 7.1 (anche se con alcune modifiche il tutto dovrebbe funzionare con Xorg 7.9);
- installare xev per catturare gli eventi associati alla pressione dei singoli tasti (operazione necessaria prima della configurazione vera e propria);
- installare xmodmap per associare gli eventi specifici ai tasti della tastiera (alcuni);
- installare bindkeys per associare ai tasti (alcuni della tastiera ed alcuni del mouse) particolari funzioni (tipo esecuzione di programmi, etc...).

Durante la configurazione ho notato che alcuni tasti della tastiera si comportano come tasti del mouse.

Tutte le informazioni le ho trovate nel Howto Use Multimedia Keys presente su Gentoo-Wiki (http://gentoo-wiki.com/HOWTO_Use_Multimedia_Keys). Consiglio vivamente di utilizzare tale documento.

Configurazione X.org
Come già indicato, è stato utilizzato per la configurazione il server Xorg 7.1 (Xserver 1.1). Non vi è un particolare motivo, ma l'opzione "Phys" funziona solo con questa versione: in caso di utilizzo di versioni precedenti bisogna utilizzare l'opzione "Device" come alternativa.

La configurazione del file /etc/X11/xorg.conf risulta:
Code:

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "evdev"
        Option      "Phys" "usb-0000:00:10.3-2/input0" # Valida solo con Xorg 7.1
        Option      "XkbRules" "xorg"
        Option      "XkbModel" "evdev"
        Option      "XkbLayout" "it"
        Option      "CustomKeycodes" "on"
#       Option      "Device" "/dev/input/event0" # Valida con Xorg 7.0
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "evdev"
        Option      "SendCoreEvents"
        Option      "Phys" "usb-0000:00:10.3-2/input1" # Valida solo con Xorg 7.1
        Option      "Protocol" "auto"
#       Option      "Device" "/dev/input/event1" # Valida con Xorg 7.0
EndSection

Per ottenere l'indirizzo fisico del device di input (Opzione "Phy") della tastiera è utilizzabile il comando:
Code:

udevinfo -a -p /sys/class/input/event0|grep phys

In modo simile per il mouse:
Code:

udevinfo -a -p /sys/class/input/event1|grep phys

Bisogna ricordarsi di inserire l'option "SendCoreEvents" dato che alcuni tasti della tastiera sono in realtà gestiti dal mouse, e senza tale opzione non funzionano.

NB Per qualche strano motivo sulla tastiera non funzionava il tasto "<": per risolvere il problema ho inserito nel file /usr/share/X11/xkb/keycodes/evdev la stringa:
Code:

 <LSGT> = 94;

Finita la configurazione il server X dovrebbe essere pronto per l'avvio.

Individuazione degli eventi: utility xev
Prima di procedere oltre, si è necessario sondare tramite xev i tasti della tastiera.
Avviato il tool, si aprirà una finestra con un quadrato. Con molta pazienza bisogna premere ad uno ad uno i tasti a cui si vuole dare una funzione.

Si avranno due tipi di output. Il primo:
Code:

KeyRelease event, serial 31, synthetic NO, window 0x2400001,
    root 0x5b, subw 0x0, time 2959447723, (674,372), root:(678,397),
    state 0x0, keycode 167 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Si avrà in caso di tasto con un keycode associato (prendere nota del keycode 167). Nel secondo caso:
Code:

ButtonRelease event, serial 31, synthetic NO, window 0x2200001,
    root 0x5b, subw 0x0, time 2959687301, (141,37), root:(145,62),
    state 0x0, button 43, same_screen YES

Si avrà l'indicazione di un button (prendere nota del button 43).
Con un attimino di pazienza bisogna compilare una tabella con i codici associati ai singoli tasti. Per la tastiera in oggetto si è ottenuto:
Code:

"Cerchio" multimediale

keycode 173 = Traccia precedente
keycode 172 = Play/Pause
keycode 171 = Traccia successiva
keycode 123 = Volume +
keycode 122 = Volume -
keycode 121 = Tasto Mute

Combinazioni tasti [Fn] + [Fx]

keycode 180 = [Fn] + [F1]
button   39 = [Fn] + [F2]
button   21 = [Fn] + [F3]
button   40 = [Fn] + [F4]

button   25 = [Fn] + [F5]
button   23 = [Fn] + [F6]
button   24 = [Fn] + [F7]
keycode 179 = [Fn] + [F8]

button   43 = [Fn] + [F9]
button   41 = [Fn] + [F10]
button   42 = [Fn] + [F11]
keycode 174 = [Fn] + [F12]

keycode 118 = [Fn] + [Stamp] (Già assegnato alla funzione di INSERT)
keycode 166 = [Fn] + [Bloc Scorr]
keycode 167 = [Fn] + [Pausa Interr]


NB: Non sono riuscito ad assegnare un keycode a tutti tasti. Sembra che la maggior parte delle combinazioni [Fn] + [Fx] sia gestita come pressione di un tasto del mouse.

Assegnazione degli eventi XF86xxxx
Tramite il programma xmodmap è possibile associare ai tasti con un keycode degli eventi XF86xxxx da generare alla pressione dei tasti. Tali eventi sono inviati alle applicazioni e tradotti in azioni.
Per esempio, l'evento XF86AudioPlay normalmente è associato alla pressione del tasto Play del lettore musicale. Per una lista di tutti gli eventi generabili è possibile vedere il file /usr/share/X11/XKeysymDB.

Con xmodmap è possibile eseguire tale associazione, un esempio di configurazione è il seguente (il simbolo "!" indica un commento):
Code:

! "Cerchio" multimediale

keycode 173 = XF86AudioPrev
keycode 172 = XF86AudioPlay
keycode 171 = XF86AudioNext
keycode 123 = XF86AudioRaiseVolume
keycode 122 = XF86AudioLowerVolume
keycode 121 = XF86AudioMute

! Combinazioni tasti [Fn] + [Fx]

keycode 180 = XF86HomePage
! button 39 Non assegnabile a questo livello
! button 21 Non assegnabile a questo livello
! button 40 Non assegnabile a questo livello

! button 25 Non assegnabile a questo livello
! button 23 Non assegnabile a questo livello
! button 24 Non assegnabile a questo livello
keycode 179 = XF86Terminal

! button 43 Non assegnabile a questo livello
! button 41 Non assegnabile a questo livello
! button 42 Non assegnabile a questo livello
keycode 174 = XF86Stop

! Impostazione Mouse
! Scambio l'asse X della rotellina
pointer = 1 2 3 4 5 7 6 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99

La configurazione va salvata in un file ~/.Xmodmap e caricata all'avvio con una istruzione del tipo (si veda l'Howto Use Multimedia Keys):
Code:

echo "/usr/bin/xmodmap /home/comio/.Xmodmap" >> ~/.xprofile

Non è detto che gli eventi associati siano interpretati dall'applicativo preferito: di solito è necessario un tool per associare delle azioni agli eventi. L'associazione delle azioni agli eventi (come il lancio di applicativi) è effettuabile con programmi tipo xbindkeys, hotkeys oppure khotkeys (quello integrato in KDE in Centro di controllo/Regionali e accesso Facilitato/Azioni di immisioni).

Associazione delle azioni agli eventi ai tasti senza keycode ed ai tasti mouse
Per associare degli eventi o direttamente delle azioni ai tasti mouse è possibile utilizzare xbindkeys.
Si riporta una configurazione di esempio:
Code:

# Tasto button 39 - [Fn] + [F2]
# Invio un evento XF86WebCam che sarà gestito da KHotKeys
"xvkbd -xsendevent -text "\[XF86WebCam]""
  b:39 + Release

# Tasto button 21 - [Fn] + [F3]
# Eseguo direttamente l'applicazione kopete
"kopete"
  b:21 + Release

# Tasto button 40 - [Fn] + [F4]
# Invio un evento XF86Away che sarà gestito da KHotKeys per dire a Kopete che sono non disponibile
"xvkbd -xsendevent -text "\[XF86Away]""
  b:40 + Release

# Tasto button 25 - [Fn] + [F5]
# Eseguo direttamente l'applicativo gimp per disegnare
"gimp"
  b:25 + Release

# Tasto button 23 - [Fn] + [F6]
# Eseguo direttamente l'applicativo amarok per ascoltare musica
"amarok"
  b:23 + Release

# Tasto button 24 - [Fn] + [F7]
# Eseguo direttamente l'applicativo xine per vedere film
"xine"
  b:24 + Release

# Tasto button 43 - [Fn] + [F9]
# Invio un evento XF86Eject che sarà gestito da KHotKeys per aprire il cassetto del CD
"xvkbd -xsendevent -text "\[XF86Eject]""
  b:43 + Release

# Tasto button 41 - [Fn] + [F10]
# Invio un evento XF86AudioRecord che sarà gestito da KHotKeys per eseguire la registrazione audio
"xvkbd -xsendevent -text "\[XF86AudioRecord]""
  b:41 + Release

# Tasto button 42 - [Fn] + [F11]
# Eseguo direttamente l'applicativo kcalc per fare qualche calcolo
"kcalc"
  b:42 + Release

# Azioni associate ai bottoni laterali del mouse:
# "xvkbd -xsendevent -text "Prova""
#  b:9

# Azioni associate ai bottoni laterali del mouse:
# "xvkbd -xsendevent -text "Prova2""
#  b:8


La configurazione va salvata in un file ~/.xbindkeysrc e caricata all'avvio con una istruzione del tipo (si veda l'Howto Use Multimedia Keys):
Code:

echo "/usr/bin/xbindkeys" >> ~/.xprofile


NB: E' da notare l'uso del comando xvkbd (da installare) per simulare l'invio eventi della tastiera: tale comando è molto lento nell'esecuzione, sarebbe utile trovare un sostituto più performante.

A questo punto è possibile associare con KHotKeys od altri tool le azioni preferite agli eventi generati dalla tastiera: si rimanda all'Howto Use Multimedia Keys.

Luigi Mantellini
07/06/2006
_________________
RTFM!!!!

e

http://www.comio.it
:)
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Thu Jun 08, 2006 9:04 pm    Post subject: Reply with quote

Moved from Forum italiano (Italian) to Risorse italiane (documentazione e tools).

Interessante howto ;-)
_________________
Ciao da me!
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Risorse italiane (documentazione e tools) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum