[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home] [volume] [parte]


Capitolo 227.   X: la tastiera e la sua configurazione «elementare»

La configurazione della tastiera con X è un problema molto delicato, che normalmente si risolve semplicemente utilizzando le opzioni che sono già state stabilite; tuttavia, manca una documentazione adeguata e coerente per le opzioni esistenti e ancora di più manca una documentazione sufficiente per poter gestire in proprio una mappa autonoma della tastiera.

Si tenga in considerazione che, a causa della complessità del sistema di gestione della tastiera di XFree86 e di X.Org, le indicazioni che appaiono in questo capitolo possono essere imprecise o troppo semplificate.

227.1   Livelli, tasti morti, composizione e gruppi

La tastiera dell'elaboratore deriva concettualmente da quella delle prime macchine da scrivere, con le quali ogni tasto poteva generare due simboli diversi, alzando o abbassando il blocco dei martelli. Per questa ragione, nelle tastiere per elaboratore di lingua inglese i tasti delle maiuscole si chiamano shift, perché spostano virtualmente questi martelli. Secondo lo standard ISO 9995, la selezione di un simbolo in base al meccanismo che normalmente è controllato attraverso il tasto delle maiuscole, avviene in base a dei livelli. In pratica, su uno stesso tasto ci può essere una lettera minuscola o maiuscola, o comunque due simboli differenti, in base alla selezione del livello appropriato.

Lo standard ISO 9995 considera che i livelli possano essere anche più di due; per esempio su diverse tastiere europee si ottiene la selezione di un terzo livello usando una combinazione con il tasto [AltGr]. Con XFree86 e X.Org si gestiscono normalmente quattro livelli, ma bisogna tenere premuto inizialmente il tasto [AltGr] e aggiungere eventualmente il tasto [Maiuscole] subito dopo, per raggiungere il quarto livello.

Generalmente, con l'uso dei vari livelli disponibili dovrebbe essere possibile esaurire l'insieme dei simboli necessari a una certa lingua; tuttavia spesso si utilizzano altre due tecniche per facilitare l'inserimento di caratteri particolari: tasti morti che servono ad accentare la lettera successiva e sequenze di composizione. Nel primo caso, la pressione di un tasto (direttamente o attraverso la selezione del livello appropriato) non genera alcun carattere, in attesa del tasto successivo: se l'associazione tra i due è valida si ottiene la lettera accentata corrispondente. Nel secondo caso viene utilizzato un tasto per richiedere espressamente una modalità di composizione, a cui segue l'inserimento di una sequenza di simboli appropriati: se la sequenza viene riconosciuta, si ottiene un carattere «composto».

Nelle mappe europee comuni, XFree86 e X.Org offrono la funzione di composizione nel livello due del tasto [AltGr], ovvero con la combinazione [Maiuscole AltGr]. Quello che si deve osservare è che la combinazione deve iniziare con la pressione di [Maiuscole], perché facendo il contrario, si selezionerebbe invece il quarto livello.

Per poter selezionare un insieme di simboli differente, si possono definire dei gruppi alternativi, da attivare a scelta. Per esempio, associando a un primo gruppo la mappa della tastiera italiana e a un secondo la mappa francese, in corrispondenza di un tasto si potrebbe ottenere sia la lettera «a» minuscola e maiuscola (tastiera italiana), sia la lettera «q» minuscola e maiuscola (tastiera francese).

Figura 227.1. Esempio di un tasto con due gruppi, ognuno con due livelli: la lettera «a» appartiene al primo livello del primo gruppo; la lettera «A» appartiene al secondo livello del primo gruppo; la lettera «q» appartiene al primo livello del secondo gruppo; la lettera «Q» appartiene al secondo livello del secondo gruppo.

livelli e gruppi

XFree86 e X.Org gestiscono facilmente fino a quattro gruppi, ma quello che conta è avere il mezzo per selezionarli.

Come è noto, quando i due livelli servono a selezionare la stessa lettera, ma in forma minuscola o maiuscola, di norma sul tasto fisico della tastiera appare solo il simbolo corrispondente alla lettera maiuscola.

Come si intende facilmente, per ottenere il passaggio a un livello o a un gruppo differente da quello attivo, si devono usare tasti o combinazioni di tasti appropriati. I tasti usati per questo scopo vengono chiamati normalmente modificatori.

Figura 227.2. Normalmente XFree86 e X.Org gestiscono quattro livelli. Quello che si vede in questa figura è il confronto tra il gruppo it e fr per lo stesso tasto.

livelli e gruppi

Riquadro 227.3. Confusione tra livelli e gruppi.

La complessità della configurazione della tastiera con XFree86 e X.Org è tale per cui tra gruppi e livelli si crea un po' di confusione. Infatti, di solito la definizione dei simboli associati ai livelli superiori al secondo avviene incorporando quelli di un altro gruppo. Pertanto, i gruppi vanno considerati in base al contesto e non in senso «assoluto», tenendo conto che il cambiamento di gruppo può voler dire che si sta passando al terzo livello, oppure che si sta scambiando la mappa attuale con quella di un'altra lingua.

È bene osservare che, a seconda di come è configurata la tastiera, il tasto [Fissamaiuscole] può avere funzionalità diverse, anche se intuitivamente ciò non si dovrebbe apprezzare. In pratica, in alcune tastiere europee, come nel caso di quella francese, la pressione di questo tasto attiva e mantiene il secondo livello, come se fosse sempre premuto il tasto delle maiuscole normale; in altri casi, come avviene nella tastiera statunitense e derivate (compresa quella italiana), il comportamento è diverso. Infatti, in questi casi ciò che si vuole è di ottenere le lettere maiuscole solo nella porzione alfanumerica della tastiera, mentre il resto dei simboli deve essere accessibile nella stessa modalità di prima; inoltre, se si preme il tasto delle maiuscole, si vuole che il risultato che si ottiene quando il tasto [Fissamaiuscole] è inserito sia di nuovo di lettere minuscole. Per questo tipo di trasformazioni, pertanto, il tasto [Fissamaiuscole] inserito non serve a richiedere il cambiamento di livello, ma la trasformazione della lettera da minuscola a maiuscola, o viceversa.

Questa caratteristica è molto importante e permette di capire il motivo, per cui, nella configurazione della tastiera italiana, si ottengono le lettere accentate maiuscole inserendo proprio il [Fissamaiuscole].

227.2   Configurazione elementare

La configurazione della mappa della tastiera si fa normalmente all'interno del file di configurazione di X (/etc/X11/XF86Config, XF86Config-4 o xorg.conf, a seconda dei casi) e si può alterare durante il funzionamento con l'aiuto del programma setxkbmap.(1) Nella situazione più semplice si fa riferimento a un modello di tastiera attraverso le indicazioni contenute nei file della directory /usr/lib/X11/xkb/rules/, ovvero /etc/X11/xkb/rules/. Per esempio, si potrebbero leggere le direttive seguenti nel file di configurazione di X:

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "Keyboard"

    Option "AutoRepeat" "500 30"

    Option "XkbRules"   "xorg"
    Option "XkbModel"   "pc102"
    Option "XkbLayout"  "it"
    Option "XkbVariant" "basic"
EndSection

Le direttive significative dell'esempio sono quelle riferite alle opzioni che iniziano con la sigla Xkb. L'opzione XkbRules dichiara delle «regole» generali; nella maggior parte dei casi va bene indicare la sigla xorg, che richiama l'utilizzo dei file xkb/rules/xorg e xkb/rules/xorg.lst.

Seguendo l'esempio, all'interno del file xkb/rules/xorg.lst si possono individuare tutte le voci che possono essere utilizzate per l'opzione XkbModel:

! model
  pc101         Generic 101-key PC
  pc102         Generic 102-key (Intl) PC
  pc104         Generic 104-key PC
  pc105         Generic 105-key (Intl) PC
...
...
  trust         Trust Wireless Keyboard Classic
  trustda       Trust Direct Access Keyboard
  yahoo         Yahoo! Internet Keyboard

Nell'esempio si vede la selezione di una tastiera a 102 tasti tradizionale (ovvero una tastiera AT europea senza i tasti «win» e «menù»). Proseguendo, si vede l'opzione XkbLayout a cui viene attribuita la voce it, che presumibilmente serve a individuare una mappa adatta alla lingua italiana. Anche la disponibilità di queste sigle dipende dal contenuto del file xkb/rules/xorg.lst, che a questo proposito si può mostrare così:

! layout
  us            U.S. English
  en_US         U.S. English w/ ISO9995-3
  us_intl       U.S. English w/ deadkeys
  al            Albanian
...
...
  it            Italian
  jp            Japanese
  kan           Kannada
...
...
  yu            Yugoslavian
  nec/jp        PC-98xx Series

La disposizione dei tasti associata alla sigla assegnata all'opzione XkbLayout può prevedere delle varianti e se necessario quella preferita va specificata con l'opzione XkbVariant. Nell'esempio la dichiarazione riferita all'opzione XkbVariant è perfettamente inutile, dal momento che con la parola chiave basic non si specifica alcunché. Eventualmente, nel file xkb/rules/xorg.lst si può vedere quali varianti sono disponibili, ammesso che funzionino:

! variant
  nodeadkeys    Eliminate dead keys

Volendo gestire più gruppi di simboli, si possono indicare più alternative tra le opzioni di XkbLayout, come nell'esempio seguente:

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "Keyboard"

    Option "AutoRepeat" "500 30"

    Option "XkbRules"   "xorg"
    Option "XkbModel"   "pc102"
    Option "XkbLayout"  "it,fr,de"
    Option "XkbVariant" "basic,basic,basic"
    Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

In questa circostanza, si vogliono gestire tre mappe alternative: italiana, francese e tedesca (se ne possono gestire al massimo quattro). Per passare da un gruppo al successivo si deve usare la combinazione di tasti [Alt Maiuscole] (è indifferente se si tratta di quelli a sinistra o a destra), come si intuisce dall'opzione XkbOptions. Anche per sapere cosa si può usare per selezionare un gruppo si deve consultare il file xkb/rules/xorg.lst:

! option
  grp                   Group Shift/Lock behavior
  grp:switch            R-Alt switches group while pressed
  grp:lwin_switch       Left Win-key switches group while pressed
  grp:rwin_switch       Right Win-key switches group while pressed
  grp:win_switch        Both Win-keys switch group while pressed
  grp:toggle            Right Alt key changes group
  ...
  ...
  grp:ctrl_alt_toggle   Alt+Control changes group
  grp:alt_shift_toggle  Alt+Shift changes group
  grp:menu_toggle       Menu key changes group
  ...

Con l'aggiunta di diverse voci nell'opzione XkbLayout, è stata ampliata nello stesso modo la voce relativa alle varianti. Nel caso una delle disposizioni richiedesse una variante particolare, si potrebbe inserire rispettando l'ordine:

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "Keyboard"

    Option "AutoRepeat" "500 30"

    Option "XkbRules"   "xorg"
    Option "XkbModel"   "pc102"
    Option "XkbLayout"  "it,fr,de"
    Option "XkbVariant" "basic,nodeadkeys,basic"
    Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

In questo caso si specifica la variante nodeadkeys per la disposizione francese, che in pratica annulla l'uso dei tasti morti in quel contesto.

In caso di difficoltà, l'opzione XkbOptions può servire per specificare cosa usare per richiamare il terzo livello:

Section "InputDevice"
    Identifier  "Keyboard1"
    Driver      "Keyboard"

    Option "AutoRepeat" "500 30"

    Option "XkbRules"   "xorg"
    Option "XkbModel"   "pc102"
    Option "XkbLayout"  "it,fr,de"
    Option "XkbVariant" "basic,basic,basic"
    Option "XkbOptions" "grp:alt_shift_toggle,lv3:switch"
EndSection

In questo caso si dichiara che si vuole usare il tasto [Ctrl] alla destra per passare al terzo livello (quello che nel caso della tastiera italiana consente di ottenere simboli come la chiocciola e il cancelletto). Ecco cosa si vede a questo proposito nel file xkb/rules/xorg.lst, si tenga presente comunque che non è detto che tutte le alternative funzionino effettivamente:

! option
  ...
  ...
  lv3                   Third level choosers
  lv3:switch            Press Right Control to choose 3rd level
  lv3:menu_switch       Press Menu key to choose 3rd level
  lv3:win_switch        Press any of Win-keys to choose 3rd level
  lv3:lwin_switch       Press Left Win-key to choose 3rd level
  lv3:rwin_switch       Press Right Win-key to choose 3rd level
  ...

Per fare tutte queste cose durante il funzionamento di X (ammesso che la tastiera sia utilizzabile in qualche modo), si può usare il comando setxkbmap, come nell'esempio seguente, equivalente all'ultima situazione mostrata. Se si usa il comando al di fuori dell'ambiente grafico, occorre aggiungere l'opzione -display, per far sapere al programma dove intervenire.

setxkbmap -rules xorg -model pc102 -layout "it,fr,de" \
  \          -variant basic -option "" -option "grp:alt_shift_toggle" \
  \          -option "lv3:switch"
[Invio]

Si può comprendere come è stata usata l'opzione -option: la prima volta ha un argomento nullo per azzerare le opzioni; la seconda volta dichiara la combinazione da usare per cambiare gruppo; la terza volta dichiara l'uso del tasto [Ctrl] destro per accedere al terzo livello.

In conclusione è bene osservare che ci sono delle disposizioni di tasti, come quella canadese (ca) che definiscono autonomamente più di un gruppo. In questi casi diventa difficile o impossibile abbinarne altre in modo efficace. Eventualmente, dal momento che si tratta presumibilmente della sovrapposizione della disposizione statunitense con quella francese, si possono usare queste definizioni affiancate (Option "XkbLayout" "us,fr").

Tabella 227.13. Alcuni modelli comuni di tastiera.

Denominazione Descrizione
pc101
La tastiera tradizionale di lingua inglese degli elaboratori «AT», in cui il tasto [Alt] destro viene usato normalmente con la stessa funzione di quello sinistro.
pc102
La tastiera tradizionale europea degli elaboratori «AT», in cui il tasto [Alt] destro serve normalmente per ottenere un terzo livello di simboli.
pc104
La tastiera di lingua inglese degli elaboratori «AT» con estensioni per MS-Windows (tre tasti in più), in cui il tasto [Alt] destro viene usato normalmente con la stessa funzione di quello sinistro.
pc105
La tastiera europea degli elaboratori «AT» con estensioni per MS-Windows (tre tasti in più), in cui il tasto [Alt] destro serve normalmente per ottenere un terzo livello di simboli.

Tabella 227.14. Alcune mappe di disposizione dei simboli.

Mappa Descrizione Mappa Descrizione
al
Albanese.
am
Armena.
ar
Araba.
az
Azerbagiana.
be
Belga.
bg
Bulgara.
br
Brasiliana.
bs
Bosniaca.
by
Bielorussa.
ca
Canadese.
cz
Ceca.
de
Tedesca.
dk
Danese.
ee
Estone.
el
Greca
es
Spagnola.
fi
Finlandese.
fr
Francese.
gb
Britannica.
hr
Croata.
hu
Ungherese.
il
Israeliana.
ir
Iraniana.
is
Islandese.
it
Italiana.
mk
Macedone.
mn
Mongola.
mt
Maltese.
nl
Olandese.
no
Norvegese.
pl
Polacca.
pt
Portoghese.
ro
Rumena.
ru
Russa.
se
Svedese.
si
Slovena.
sk
Slovacca.
sr
Serba.
tr
Turca.
ua
Ucraina.
us
Statunitense.
us_intl
Statunitense con accenti morti.
en_US
Inglese generalizzato con estensioni ISO 9995.

227.3   Geometria

Tra i file che descrivono i vari tipi di tastiera disponibili con X, ne esiste un gruppo che serve a ottenere una mappa stampata della disposizione dei tasti, con l'aiuto del programma xkbprint.(2) Questo programma, oltre alle opzioni eventuali, prevede l'indicazione obbligatoria delle coordinate dello schermo dal quale si vuole ottenere la mappa della configurazione attuale:

xkbprint [opzioni] schermo [file_da_generare]

Se non si indica il nome di un file da generare, il programma crea un file nella directory corrente che corrisponde al modello server-n.estensione, dove n descrive le coordinate dello schermo. La tabella successiva descrive alcune opzioni di xkbprint.

Tabella 227.15. Alcune opzioni.

Opzione Descrizione
-color
-mono
Genera un risultato con o senza colorazione dei tasti.
-eps
Genera un risultato in formato EPS, altrimenti si ottiene un formato PostScript.
-fit
-full
L'opzione -fit, che è predefinita, fa in modo che il risultato sia contenuto in una pagina; con l'opzione -full si ottiene un risultato delle dimensioni normali.
-label none|name|code|symbols
Consente di stabilire cosa si vuole vedere sui tasti: nulla, il nome, il codice numerico o il simbolo.
-ll n
Richiede di mostrare i simboli a partire dal livello n.
-o file
Si tratta di un modo alternativo per indicare il file da generare.
-pict all|none|common
Controlla la visualizzazione dei pittogrammi (secondo lo standard ISO 9995-7). Con i tre argomenti alternativi si ottengono rispettivamente: tutti i pittogrammi, nessun pittogramma, solo quelli comuni.

Vengono mostrati alcuni esempi di utilizzo del programma xkbprint; successivamente appaiono alcune figure ottenute dalla configurazione di una mappa italiana a 102 tasti.

Figura 227.16. xkbprint -color -label symbols -ll 1 -pict all :0

xkbprint -color -label symbols -ll 1 -pict all :0

Figura 227.17. xkbprint -color -label symbols -ll 3 -pict all :0

xkbprint -color -label symbols -ll 3 -pict all :0

Figura 227.18. xkbprint -color -label code :0

xkbprint -color -label code :0

227.4   Riferimenti


1) X   MIT più altre licenze per porzioni particolari di codice

2) X   MIT più altre licenze per porzioni particolari di codice


Appunti di informatica libera 2008 --- Copyright © 2000-2008 Daniele Giacomini -- <appunti2 (ad) gmail·com>


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome x_la_tastiera_e_la_sua_configurazione_171_elementare_187.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [home]

Valid ISO-HTML!

CSS validator!

Gjlg Metamotore e Web Directory