Il mio layout di tastiera

Altre lingue

Io uso un layout Dvorak, su una tastiera Apple Alluminio (A1243), 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, 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.

DateCreato: 2009-09-15 13:20:11 Ultima modifica: 2023-02-10 12:45:24