[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
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.
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.
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».
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).
|
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.
|
È 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]. |
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:
|
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:
|
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ì:
|
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:
|
Volendo gestire più gruppi di simboli, si possono indicare più alternative tra le opzioni di XkbLayout, come nell'esempio seguente:
|
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
:
|
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:
|
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:
|
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:
|
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").
|
|
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.
|
Vengono mostrati alcuni esempi di utilizzo del programma xkbprint; successivamente appaiono alcune figure ottenute dalla configurazione di una mappa italiana a 102 tasti.
$
xkbprint -color -label symbols -ll 1 -pict all :0 tastiera.ps
[Invio]
Genera il file PostScript tastiera.ps
, con il disegno della tastiera, usando il colori previsti, mostrando i simboli in corrispondenza dei tasti, partendo dal primo livello (predefinito), usando i pittogrammi standard per tutti i tasti con funzioni speciali. La mappa che si ottiene fa riferimento alle coordinate dello schermo :0, ovvero :0.0.
$
xkbprint -eps -color -label symbols -ll 1 -pict all
\
\:0 tastiera.eps
[Invio]
Come nell'esempio precedente, ma creando invece il file EPS tastiera.eps
.
$
xkbprint -eps -color -label symbols -ll 1 -pict all :0
[Invio]
Rispetto all'esempio precedente, non viene indicato il nome del file da creare, pertanto si ottiene il file server-0.eps
.
$
xkbprint -color -label symbols -ll 3 -pict all :0 tastiera.ps
[Invio]
Questo esempio è simile al primo, dal quale si distingue per specificare la richiesta di utilizzare i simboli a partire dal terzo livello. In pratica, per la tastiera italiana e per altre tastiere europee, si tratta di quei simboli che si ottengono tenendo premuto il tasto [AltGr].
$
xkbprint -color -label code :0 tastiera.ps
[Invio]
Rispetto al primo esempio, viene generato un disegno contenente i codici numerici dei tasti.
|
|
|
ISO/IEC 9995:1994, Information technology -- Keyboard layouts for text and office systems
Pictogrammes ISO 9995-7
Erik Fortune, The X keyboard extension: protocol specification
Kamil Toman, Ivan U. Pascal, The XKB configuration guide
Kamil Toman, Ivan U. Pascal, How to further enhance XKB configuration
Doug Palmer, An unreliable guide to XKB configuration
Ivan U. Pascal, X keyboard extension
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
1) X MIT più altre licenze per porzioni particolari di codice
2) X MIT più altre licenze per porzioni particolari di codice
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] [translators] [docinfo] [indice analitico]