===========================
Il mio layout di tastiera
===========================
:CreationDate: 2009-09-15 13:20:11
:Id: SW/my-layout
:tags: - keyboard
- configs
Io uso un `layout Dvorak
<http://it.wikipedia.org/wiki/Tastiera_semplificata_Dvorak>`_, su una
`tastiera Apple Alluminio (A1243)
<http://it.wikipedia.org/wiki/Tastiere_Apple>`_, su un PC con Gentoo
Linux.
Avrei potuto *quasi* usare il layout dvorak di serie di `xorg`,
scrivendo questo in ``xorg.conf``::
Section "InputClass"
Identifier "keyboard-generic"
Driver "evdev"
Option "XkbOptions" "compose:ralt,altwin:meta_win,terminate:ctrl_alt_bksp"
Option "XkbLayout" "us"
Option "XkbModel" "evdev"
Option "XkbVariant" "dvorak"
MatchIsKeyboard "on"
EndSection
ma avrei avuto un po' di problemi: i tasti "tilde" e "sezione"
sarebbero stati scambiati, il tasto "fn" non sarebbe stato
riconosciuto, e la maggior parte dei tasti funzione non avrebbero
funzionato.
Per il tasto "fn" ho dovuto `scrivere un po' di codice
<../xf86-input-evdev/>`_, ma per il resto è bastato configurare per
bene `XKB`.
Ora il file ``xorg.conf`` contiene::
Section "InputClass"
Identifier "keyboard-generic"
Driver "evdev"
Option "XkbOptions" "compose:ralt,altwin:meta_win,terminate:ctrl_alt_bksp"
MatchIsKeyboard "on"
EndSection
Section "InputClass"
Identifier "keyboard-apple-alu"
Driver "evdev"
Option "XkbLayout" "dakkar"
Option "XkbModel" "applealu_iso"
Option "XkbVariant" "dvorak-apple-al"
Option "event_key_remap" "464=118 120=210 204=211"
MatchIsKeyboard "on"
MatchProduct "Apple, Inc Apple Keyboard"
EndSection
e ho un file ``/usr/share/X11/xkb/symbols/dakkar`` con::
default partial alphanumeric_keys
xkb_symbols "dvorak-apple-al" {
name[Group1] = "USA Dvorak Apple Aluminium keyboard";
include "us(dvorak)"
key <TLDE> { [ quoteleft, asciitilde ] };
key <LSGT> { [ section, plusminus ] };
key <I232> { [ XF86MonBrightnessDown, F1, F1, XF86_Switch_VT_1 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I233> { [ XF86MonBrightnessUp, F2, F2, XF86_Switch_VT_2 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I210> { [ XF86Launch3, F3, F3, XF86_Switch_VT_3 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I211> { [ XF86Launch4, F4, F4, XF86_Switch_VT_4 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I237> { [ XF86KbdBrightnessDown, F5, F5, XF86_Switch_VT_5 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I238> { [ XF86KbdBrightnessUp, F6, F6, XF86_Switch_VT_6 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I173> { [ XF86AudioPrev, F7, F7, XF86_Switch_VT_7 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I172> { [ XF86AudioPlay, F8, F8, XF86_Switch_VT_8 ] , type[Group1] = "FOUR_LEVEL_X" };
key <I171> { [ XF86AudioNext, F9, F9, XF86_Switch_VT_9 ] , type[Group1] = "FOUR_LEVEL_X" };
key <MUTO> { [ XF86AudioMute, F10, F10, XF86_Switch_VT_10 ] , type[Group1] = "FOUR_LEVEL_X" };
key <VOL-> { [ XF86AudioLowerVolume, F11, F11, XF86_Switch_VT_11 ] , type[Group1] = "FOUR_LEVEL_X" };
key <VOL+> { [ XF86AudioRaiseVolume, F12, F12, XF86_Switch_VT_12 ] , type[Group1] = "FOUR_LEVEL_X" };
key <FK13> { [ F13, F13, F13, F13 ] , type[Group1] = "FOUR_LEVEL_X" };
key <FK14> { [ F14, F14, F14, F14 ] , type[Group1] = "FOUR_LEVEL_X" };
key <FK15> { [ F15, F15, F15, F15 ] , type[Group1] = "FOUR_LEVEL_X" };
key <FK16> { [ F16, F16, F16, F16 ] , type[Group1] = "FOUR_LEVEL_X" };
key <FK17> { [ F17, F17, F17, F17 ] , type[Group1] = "FOUR_LEVEL_X" };
key <FK18> { [ F18, F18, F18, F18 ] , type[Group1] = "FOUR_LEVEL_X" };
key <FK19> { [ F19, F19, F19, F19 ] , type[Group1] = "FOUR_LEVEL_X" };
key <INS> { [ ISO_Level3_Shift, Insert ] };
};
Le prime due righe "key" scambiano "tilde" e "sezione", il resto è più
interessante. Vedete, su questa tastiera (su un Mac, almeno) "F1" …
"F18" si ottengono in combinazione con il tasto "fn", e l'uso
principale (senza modificatori) di quei tasti è di invocare programmi
(Exposé o Dashboard) e altri comandi (cambiare la luminosità dello
schermo, la traccia in riproduzione, il volume). Quindi ho fatto in
modo di avere lo stesso comportamento anche su X11. Il tipo
``FOUR_LEVEL_X`` definisce un tasto che ha 4 possibili simboli: da
solo, con ``LevelThree``, con ``Shift+LevelThree``, e con
``Control+Alt``; siccome mappo il tasto "ins" (in effetti, "fn") a
``ISO_Level3_Shift``, posso accedere ai tasti funzione con "fn", posso
accedere ai tasti comando da soli, e (piuttosto importante) posso pure
passare alle console testo ``:-)``.
Oh, e ``Shift+Fn`` produce ``Shift+Insert``, così che posso incollare
il testo dalla selezione primaria nel terminale senza prendere il
mouse.