=========================== Il mio layout di tastiera =========================== :CreationDate: 2009-09-15 13:20:11 :Id: SW/my-layout :tags: - keyboard - configs 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 <../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 { [ quoteleft, asciitilde ] }; key { [ section, plusminus ] }; key { [ XF86MonBrightnessDown, F1, F1, XF86_Switch_VT_1 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86MonBrightnessUp, F2, F2, XF86_Switch_VT_2 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86Launch3, F3, F3, XF86_Switch_VT_3 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86Launch4, F4, F4, XF86_Switch_VT_4 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86KbdBrightnessDown, F5, F5, XF86_Switch_VT_5 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86KbdBrightnessUp, F6, F6, XF86_Switch_VT_6 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86AudioPrev, F7, F7, XF86_Switch_VT_7 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86AudioPlay, F8, F8, XF86_Switch_VT_8 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86AudioNext, F9, F9, XF86_Switch_VT_9 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86AudioMute, F10, F10, XF86_Switch_VT_10 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86AudioLowerVolume, F11, F11, XF86_Switch_VT_11 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ XF86AudioRaiseVolume, F12, F12, XF86_Switch_VT_12 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ F13, F13, F13, F13 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ F14, F14, F14, F14 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ F15, F15, F15, F15 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ F16, F16, F16, F16 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ F17, F17, F17, F17 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ F18, F18, F18, F18 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ F19, F19, F19, F19 ] , type[Group1] = "FOUR_LEVEL_X" }; key { [ 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.