[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Per configurare la propria tastiera si usa generalmente loadkeys con file di mappa già predisposti; tuttavia può essere utile comprendere come si realizzano questi file per una propria personalizzazione.
All'interno del file sono ammessi i commenti, prefissati con un punto esclamativo (!) oppure con il simbolo #; nello stesso modo sono ignorate le righe vuote e quelle bianche. Le righe che definiscono qualcosa possono essere continuate con una barra obliqua inversa (\) che precede il codice di interruzione di riga.
Possono essere usate diverse definizioni; in particolare quelle descritte nella tabella seguente.
Tabella 79.1. Direttive principali. |
I modificatori sono quei tasti che si possono usare per ottenere delle combinazioni. La tabella 79.2 ne mostra l'elenco e il peso.
Tabella 79.2. Elenco dei tasti modificatori e del loro peso.
|
I modificatori sono otto, a cui si somma la situazione normale in cui nessun modificatore viene utilizzato. Volendo indicare tutte le combinazioni possibili di modificatori, queste sarebbero 255, ma di solito ci si limita a configurarne solo un sottoinsieme.
Attraverso il numero del peso, si può fare riferimento a un modificatore o a una combinazione di modificatori, in modo molto semplice: sommandone i valori. Per esempio, uno rappresenta Shift, due rappresenta AltGr e tre rappresenta Shift+AltGr. Si osservi comunque che si sta facendo riferimento a nomi che poi devono essere associati alla tastiera reale: si presume che l'associazione avvenga nel modo «corretto», ma occorre sapere a cosa si sta facendo riferimento. In pratica, nulla vieta di dare la funzione di AltGr a un tasto [Win], o [Menù].
Quando si specifica la funzione di un tasto attraverso l'istruzione keycode, si indicano una serie di funzioni in sequenza. Il significato di questa sequenza dipende dai tipi di modificatori e dalle loro combinazioni che si intendono utilizzare. Questo viene definito attraverso un'istruzione keymaps iniziale.
keymaps peso[,peso]... |
Per esempio, l'istruzione seguente indica l'utilizzo dei pesi 0, 1, 2, 4, 6, 8, 9 e 12:
|
Come si vede nell'esempio, si fa riferimento anche a intervalli, quindi, 0-2 rappresenta tutti i valori da zero a due, ovvero, zero, uno e due. La stessa cosa avrebbe potuto essere dichiarata in un modo più esplicito come nell'esempio seguente:
|
Questi valori indicano che nella mappa definita dalle direttive successive, si fa riferimento ai tasti premuti da soli, in combinazione con i modificatori Shift, AltGr, Ctrl (indifferentemente sinistro o destro), Ctrl+AltGr, Alt, Alt+Shift e Ctrl+Alt. Le istruzioni keycode successive all'istruzione keymaps dell'esempio vengono interpretate di conseguenza. L'esempio seguente dovrebbe chiarirlo:
|
In questo caso, premendo il tasto corrispondente alla lettera è, nella tastiera italiana, si ottiene esattamente questa lettera (egrave). In combinazione con:
Shift si ottiene la lettera é;
AltGr si ottiene la parentesi quadra aperta (sinistra);
Ctrl+AltGr non si ottiene alcunché;
Alt si ottiene la funzione <Meta_braketleft>.
In tutti i casi rimanenti non si ottiene alcun risultato.
L'istruzione keycode permette di indicare in sequenza il significato di un certo tasto, in funzione dell'eventuale combinazione con i modificatori previsti con l'istruzione keymaps.
Quando si vuole indicare un'azione nulla, si usa il nome VoidSymbol; inoltre, ciò che non viene scritto nella parte finale vale come se fosse sempre VoidSymbol.
Per facilitare l'indicazione del risultato di combinazioni si possono usare dichiarazioni keycode successive, precedute dai nomi dei modificatori coinvolti, che valgono per una singola situazione. L'esempio seguente è identico, per risultato, a quello visto in precedenza; la differenza sta nel fatto che così ci si limita a indicare un'istruzione keycode normale per le situazioni comuni (tasto premuto da solo, oppure in combinazione con il modificatore Shift, o anche AltGr), aggiungendo sotto, eventualmente, le altre combinazioni utili.
|
Volendo essere precisi e dettagliati, si può indicare il modificatore plain per fare riferimento alla pressione del tasto senza modificatori. L'esempio appena mostrato si traduce in quello seguente:
|
Quando si usa la direttiva keycode si fa riferimento ai caratteri e alle funzioni speciali attraverso dei nomi, che eccezionalmente corrisponde alla lettera quando questa nell'ambito di quelle dell'alfabeto inglese, senza accenti. I nomi disponibili si possono consultare nell'elenco che si ottiene con il programma dumpkeys, utilizzato con l'opzione -l:
$
dumpkeys -l
[Invio]
... Symbols recognized by dumpkeys: (numeric value, symbol) 0x0000 nul 0x0001 Control_a 0x0002 Control_b ... 0x00fe thorn 0x00ff ydiaeresis 0x0100 F1 0x0101 F2 ... 0x0112 F19 0x0113 F20 0x0114 Find 0x0115 Insert 0x0116 Remove ... 0x01fe F245 0x01ff F246 0x0200 VoidSymbol 0x0201 Return ... 0x0404 dead_diaeresis 0x0405 dead_cedilla 0x0500 Console_1 0x0501 Console_2 ... 0x0c06 SCtrlL 0x0c07 SCtrlR The following synonyms are recognized: Control_h for BackSpace Control_i for Tab ... Recognized modifier names and their column numbers: shift 1 altgr 2 control 4 alt 8 shiftl 16 shiftr 32 ctrll 64 ctrlr 128 |
Quando si tratta di caratteri tipografici particolari, può capitare di non riconoscere un nome già previsto, oppure questo può mancare del tutto. In quel caso, si può indicare il punto di codifica Unicode, secondo la notazione seguente:
U+hhhh |
Per esempio, ecco come potrebbe apparire la definizione relativa al tasto [o], quando non si sa che la chiocciola si identifica con il nome at:
|
In pratica, con il modificatore AltGr si intende ottenere il simbolo «@», ma non sapendo come fare, si utilizza la notazione U+00F6.
La notazione attraverso l'indicazione del punto di codifica va bene sempre, anche se si usa una codifica del tipo ISO 8859 (a soli 8 bit).
Studiando un file di mappa della tastiera si possono trovare alcune cose interessanti, come la definizione di combinazioni particolari. Gli estratti riportati di seguito provengono dalla mappa italiana normale: /usr/share/keymaps/i386/qwerty/it.kmap
. I modificatori utilizzati sono quelli degli esempi precedenti, ovvero: 0, 1, 2, 4, 6, 8, 9 e 12.
|
Nell'esempio appena mostrato si nota che la combinazione [Ctrl Spazio] genera un carattere <NUL>.
|
Quello che appare sopra è la dichiarazione del comportamento dei tasti funzionali. I nomi di questi tasti non sono riconosciuti e quindi si dichiara più avanti la stringa che deve essere generata quando si fa riferimento a questi.
Si può osservare che la combinazione [Maiuscole F1] genera l'equivalente di [F11].
La combinazione [Alt F1] o [Ctrl Alt F1] serve notoriamente per selezionare la prima console virtuale, cosa che viene definita chiaramente con le istruzioni alt keycode 59 = Console_1 e control alt keycode 59 = Console_1. Nello stesso modo si può osservare che la combinazione [AltGr F1] seleziona la tredicesima console virtuale (ammesso che ci sia).
|
Da questa dichiarazione, si osserva che la combinazione [Maiuscole BlocScorr] visualizza la situazione dell'uso della memoria, la combinazione [AltGr BlocScorr] mostra la situazione dei registri e la combinazione [Ctrl BlocScorr] mostra lo stato.
L'esempio seguente è tratto da una mappa per una tastiera russa, che prevede i primi due livelli con un alfabeto latino, mentre il terzo livello può essere fissato utilizzando il tasto [Ctrl] destro:
|
Si può osservare l'uso della definizione AltGr_Lock per ottenere il passaggio stabile al terzo livello, come se qualcuno tenesse sempre premuto il tasto [AltGr]. Naturalmente, per sbloccare la selezione del terzo livello basta ripremere lo stesso tasto già usato per inserirlo.
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome personalizzazione_della_mappa_della_tastiera.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]