Tastiere multimediali con lineakd

Questo mini-howto descrive passo passo la procedura per attivare i tasti multimediali sulle multimedia keyboards usando il tool lineak.

Le fonti

Il sito di lineak http://lineak.sourceforge.net sezione Documentation.

Passo 1: installare lineak

Scaricate lineak dal sito http://lineak.sourceforge.net/index.php?nav=download , compilatelo e installatelo nella maniera che preferite (SlackBuild o altro). Non sono richieste particolari opzioni per il configure.

Attenzione : Ci sono un sacco di sorgenti da scaricare e compilare, lineak a parte (richiesto) tutti gli altri sono opzionali, si tratta perlopiù di macro già fatte per fare il binding di particolari comandi sui tasti o avere l'OSD, io ci ho provato e non mi funzionava nulla, così ho deciso di installare solo lineak e tutto fila liscio. I comandi si possono scrivere anche a mano nel file di configurazione.

Passo 2: Verificare se la vostra tastiera è già supportata

Eseguite

lineakd -l

Vi comparirà la lista delle tastiere già supportate, se la vostra tastiera è nell'elenco andate al passo 4, altrimenti proseguite al passo 3.

Passo 3: Aggiungere il supporto per la vostra tastiera

Ci vuole un po' di pazienza, ma non è una procedura molto lunga.

Ottenere i keycodes

Armatevi carta e penna o di un editor di testo, aprita una shell e digitate

xev

che è il programma di Xorg per la notifica di eventi. Stiamo per catturare i keycodes dei tasti multimediali. Alla pressione di ognuno dei tasti multimediali, xev stampa nella shell una cosa di questo tipo:

     KeyPress event, serial 23, synthetic NO, window 0x5a00001,
         root 0x36, subw 0x0, time 2407465070, (146,-62), root:(719,272),
         state 0x0, keycode 234 (keysym 0x0, NoSymbol), same_screen YES,
         XLookupString gives 0 characters:  ""

Annotatevi il numerino del keycode (quello che nell'esempio corrisponde a 234). Ripetete per tutti i tasti multimediali.

Aggiungere la vostra tastiera al file di definizione

Aprite il file delle definizioni di lineak

nano /etc/lineakkb.def

e aggiungete una sezione per la vostra tastiera. Ad esempio per la mia Mediacom CX-4100 ho aggiunto:

[MC-CX4100]
  brandname = "Mediacom"
  modelname = "CX-4100"
  [KEYS]
    Refresh          = 231
    MyComputer       = 235
    Calculator       = 161
    Media            = 237
    Play|Pause       = 162
    VolumeDown       = 174
    VolumeUp         = 176
    Search           = 229
    favorites        = 230
    Mail             = 236
    WWW              = 178
    Sleep            = 223
    Mute             = 160
  [END KEYS]
[END MC-CX4100]

Vediamo di spiegare la sintassi:

[MC-CX4100]

Identifica il modello della tastiera e deve essere unico nel file di definizione, questo lo inventate voi.

  brandname = "Mediacom"
  modelname = "CX-4100"

Cambiate i valori dei due attributi in modo che combacino con la vostra tastiera.

  [KEYS]
    Refresh          = 231
    MyComputer       = 235
    Calculator       = 161
    Media            = 237
    Play|Pause       = 162
    VolumeDown       = 174
    VolumeUp         = 176
    Search           = 229
    favorites        = 230
    Mail             = 236
    WWW              = 178
    Sleep            = 223
    Mute             = 160
  [END KEYS]

Questa sezione è obbligatoria e identifica i tasti della vostra tastiera. I numeri sono i keycodes che avete annotato prima, i nomi sono predefiniti, cercate il nome che vi serve nello stesso file di definizione, nelle altre tastiere trovate sicuramente il nome del tasto che vi serve, non cambiate il nome, pena il mancato funzionamento di lineakd. Per spiegarmi meglio, il tasto per alzare il volume deve chiamarsi per forza VolumeUp e non Vol+ o altro. Una volta finito, salvate il file e uscite. Provate a lanciare di nuovo il comando

lineakd -l

dovrebbe apparire nell'elenco la definizione della vostra tastiera, se non c'è o ricevete errori, probabilmente avete fatto un errore di battitura. Ricontrollate.


Passo 4: Verifica e setup

Lanciate il comando

lineakd -c TYPE

dove TYPE è il modello della vostra tastiera, quello che avete inventato nel file di configurazione (nel mio caso era MC-CX4100), questo comando crea un file di configurazione vuoto nella vostra $HOME.

Lanciate il comando

lineakd -v

questo comando lancia lineakd in verbose mode provate a digitare tutti i tasti per vedere se lineakd reagisce alla pressione. Ovviamente vi dirà che il comando associato al tasto è vuoto, ma va bene così.

Killate lineakd con CTRL-C (^C) e cominciamo a editare il file di configurazione.

nano $HOME/.lineak/lineakd.conf

ecco il mio:

# LinEAK - Linux support for Easy Access and Internet Keyboards
#  Copyright (c) 2001,2002, 2003  Sheldon Lee Wen <leewsb@hotmail.com> (Current Maintainer)
#       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

Calculator = "kcalc"
Mail = "kmail"
Media = "dcop `dcop | grep amarok` player showOSD 2>/dev/null"
Mute ="dcop `dcop | grep amarok` player mute  2>/dev/null"
MyComputer = "kfmclient openProfile filemanagement"
Play|Pause = "dcop `dcop | grep amarok` player playPause 2>/dev/null"
Refresh =
Search = "kfind"
Sleep = "killall kdesktop_lock; dcop kdesktop KScreensaverIface lock"
VolumeDown = "dcop `dcop | grep amarok` player volumeDown 2>/dev/null"
VolumeUp = "dcop `dcop | grep amarok` player volumeUp 2>/dev/null"
WWW = "firefox"
favorites =

Potrebbe esserci dell'altro nel file di configurazione, ma la parte importante è quella che ho riportato su. Associate ad ogni tasto (o a quelli che volete) un comando da shell, non aggiungete & per mandarlo in background, lineakd lo fa già da solo. Notate le chiamate dcop per le regolazioni di amarok. Una volta finito, salvate e uscite. Rilanciate

lineakd -v

e verificate il corretto funzionamento del setup.

Passo 5: Lanciare lineakd all'avvio di kde

Aggiungete il seguente script in $HOME/.kde/Autostart :

#!/bin/bash
lineakd &

e buon divertimento !!


Gianco 11:09, 3 Mag 2007 (CEST)