A billentyűzetkiosztás módosítása

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Keyboard layout switching and the translation is 100% complete.

A billentyűzetkiosztás leképezi a billentyűzetről beküldött digitális jelsorozatokat (scancodes) karakterekre amelyeket egy alkalmazásnak küldtek be.

Megfelelő billentyűzetkiosztásra van szükség a QWERTY, és a nem QWERTY billentyűzetek támogatásához is annak érdekében, hogy a karaktereket az ASCII-készleten kívül is be lehessen írni.

A billentyűzetkiosztások összetettebb átalakításokat is végrehajthatnak. Például az úgynevezett halott billentyűkön keresztül, amelyek nem adják ki a karaktereket önmagukban, hanem módosítják a később lenyomott billentyűk kimenetét.

Szöveges mód

OpenRC

A parancssor alapértelmezett billentyűkiosztása az /etc/conf.d/keymaps fájlban van beállítva, a megfelelő billentyűkiosztásnak a keymap értékeként történő hozzárendelésével. A keymap értékek a /usr/share/keymaps fájlban vannak megadva, és a legtöbb felhasználó a /usr/share/keymaps/i386/qwerty/ könyvtárban található értékeket fogja használni. Opcionálisan állítsa be az extended_keymaps változó értékét a megfelelő include könyvtárból, például /usr/share/keymaps/i386/include. Például állítsa be az extended_keymaps="euro2" értéket, hogy Euro és cent értéket kapjon az Alt-Gr billentyűkkel azokon a helyeken, ahol sok billentyűzeten E és C van.

FILE /etc/conf.d/keymapsPéldakonfiguráció
keymap="us"
extended_keymaps=""

Végül indítsa újra a keymaps-t a módosítások alkalmazásához, és adja hozzá a keymaps-t a rendszerindítási futási szinthez:

root #rc-service keymaps restart
root #rc-update add keymaps boot

Ha szüksége van arra, hogy a parancssor nem ASCII karaktereket jelenítsen meg, akkor módosítania kell az //etc/conf.d/consolefont fájlban a betűtípust:

FILE /etc/conf.d/consolefontPéldakonfiguráció a cirill betűtípus számára
consolefont="cyr-sun16"

Indítsa újra a consolefont szolgáltatást, és adja hozzá a rendszerindítási futási szinthez:

root #rc-service consolefont restart
root #rc-update add consolefont boot

Egyéni billentyűzetkiosztás

Nézze meg a megadott billentyűleképezéseket a /usr/share/keymaps fájlban az egyéni billentyűkiosztás létrehozásához:

user $vi <keymap file>.map
user $gzip <keymap file>.map
root #mv <keymap file>.map /usr/share/keymaps/<some directory>

Íme egy példa egyéni billentyűkiosztásra, amely megegyezik az Egyesült Államok QWERTY billentyűkiosztásával, azzal a különbséggel, hogy a perjel és az aposztróf billentyűk fel vannak cserélve:

FILE /usr/share/keymaps/i386/qwerty/swap_slash_apostrophe.map.gzPélda a billentyűkiosztásra
include "us.map"
 
keycode  40 = slash            question
keycode  53 = apostrophe       quotedbl
Warning
A billentyűzetkódok valószínűleg rendszerenként eltérőek.

A billentyűkhöz társított billentyűzetkódok megtalálásához tekintse meg a dumpkeys kimenetét:

user $dumpkeys -l

Ha a billentyű nem található a fenti paranccsal, akkor futtassa:

user $showkey

Csak nyomja meg a billentyűt, és megjelenik a billentyűkódja. Ha kész, várjon néhány másodpercet, és a showkey bezárul.

systemd

A systemd az /etc/vconsole.conf fájlt használja, és tartalmazza a parancssor betűkészlet és billentyűzetkiosztási beállításait is, de hiányoznak az OpenRC-ben található speciális beállítások. Az érvényes értékeknek meg kell egyeznie azzal, amit az OpenRC a megfelelő változóhoz támogat.

FILE /etc/vconsole.confPéldabeállítások
KEYMAP=pl2
FONT=LatArCyrHeb-16

X11

A modern X11 alkalmazások általában az x11-libs/libxklavier programcsomagot használják ("keyboard" ami németül "klavier"), és a setxkbmap használatával állíthatók be. Ezenkívül az X11 a virtuális parancssoroknál sokkal szélesebb billentyűzetkiosztásokat támogat.

Nem szabad megfeledkezni arról, hogy egy megfelelő asztali környezet saját maga kezeli a billentyűzetkiosztást. Nincs szükség közvetlenül a fent említett alkalmazás használatára, de jól jöhet, ha hibás vagy hiányos billentyűzetkiosztás kezelést kap.

KDE Plasma

Nyissa meg a Rendszerbeállítások részt, és keresse meg a Beviteli eszközök modult.

Ha további nyelveket szeretne elérhetővé tenni az SDDM bejelentkezéskezelőben, akkor kövesse az egyéni billentyűkiosztás hozzáadására vonatkozó utasításokat.

Általános asztali környezet

Szerkessze az ~/.xprofile fájlt, és onnan hívja meg a setxkbmap parancsot, vagy állítsa be a billentyűzetet az Xorg konfigurációs fájljában (tekintse meg a lenti példákat).

Note
A GNOME 3 legújabb verziói már nem használják az x11-libs/libxklavier programcsomagot, ezért előfordulhat, hogy ez egyáltalán nem működik, vagy valószínűleg felülírja azt a GNOME. Hasonlóképpen bármely más asztali környezet is felülírhatja az x11-libs/libxklavier konfigurációt az inicializálás vagy az elrendezés módosítása során.
Warning
A ~/.xprofile egy nem szabványos fájl, amely csak akkor jön létre, ha bejelentkezik egy olyan display manager -en keresztül, amely támogatja (csak GDM-en, LightDM-en, LXDM-en és SDDM-en tesztelve), és lehet, hogy disztribúcióspecifikus, bár úgy tűnik, hogy minden általános disztribúció támogatja ezt fájlt.

Általános X11

A setxkbmap használata

Ezek a változtatások nem állandóak, és csak addig maradnak fenn, amíg a felhasználó nem indítja újra az X11-et. A parancs természetesen meghívható egy indító parancsfájlból, hogy beállítsa a megfelelő paramétereket az X szerver minden indításakor.

A meglévő konfiguráció lekérdezéséhez:

user $setxkbmap -query

Billentyűzetkiosztás beállítása:

user $setxkbmap lv

Billentyűzetkiosztás, változatának és modelljének beállítása:

user $setxkbmap lv apostrophe -model logiultrax

Két billentyűzetkiosztás beállítása LED jelzőfénnyel:

user $setxkbmap -layout us,ru -option grp:shifts_toggle -option grp_led:caps

Javasoljuk, hogy olvassa el az xkeyboard-config kézikönyvet a billentyűzet konfigurációs opcióinak teljes listájáért:

user $LESS=--chop-long-lines man xkeyboard-config

Úgy tűnik, hogy ezzel az alkalmazással nem lehet megtalálni a támogatott elrendezéseket és más xkb tulajdonságok változatait vagy értékeit, bár ezek többsége az /usr/share/X11/xkb/rules/base.lst fájlban található. Úgy tűnik, hogy a legteljesebb listát csak az /usr/share/X11/xkb/ könyvtár többi fájljának vizsgálatával lehet elérni. A józanság kedvéért célszerű megfelelő asztali környezetet használni, saját billentyűzetkiosztás-kezeléssel.

Rendszerszintű konfigurált elrendezések és gyors átváltások használata

Ez a módszer asztali környezet nélküli konfigurációkhoz ajánlott, más szóval csak ablakkezelővel rendelkező X11-hez. Mivel a Gnome eltávolította a billentyűzetkiosztás megváltoztatásának lehetőségét a GDM-ben a gnome-control-center segítségével, a GDM a systemd nélküli rendszereken is erre a módszerre támaszkodik. Hozza létre a 10-keyboard.conf fájlt, és konfigurálja a megfelelő billentyűzetbeállításokkal. Ha nem létezik, hozza létre az /etc/X11/xorg.conf.d/ könyvtárat.

FILE /etc/X11/xorg.conf.d/10-keyboard.confPélda az USA és a brazil billentyűzetkiosztásra
Section "InputClass"
    Identifier "keyboard-all"
    Driver "evdev"
    Option "XkbLayout" "us,br"
    Option "XkbVariant" ",abnt2"
    Option "XkbOptions" "grp:shifts_toggle,grp_led:scroll"
    MatchIsKeyboard "on"
EndSection

A fenti példa az egyesült államokbeli, és brazil billentyűzetkiosztást úgy konfigurálja, hogy a Bal Shift+Jobb Shift billentyűk lenyomásával gyorsan lehet váltani a kettő között. A brazil nyelvű billentyűzetkiosztás működését a Scroll Lock LED jelzi a billentyűzeten.

Note
Ha Ön cirill nyelvű elrendezést használ, és a billentyűzeten megtalálhatóak a "Windows®" billentyűgombok, akkor szükség lehet a reszponzív ",winkeys" hozzáadására az XkbVariant opcióhoz.
További konfigurációs lehetőségek

Számos változat és opció áll rendelkezésre, amelyek használhatók a billentyűzetkiosztások konfigurálásakor. Ezek többsége az /usr/share/X11/xkb/rules/base.lst fájlban található.

Például az Egyesült Államokbeli elrendezés néhány nemzetközi karakter írásának lehetőségével konfigurálható az altgr-intl változat használatával:

FILE /etc/X11/xorg.conf.d/10-keyboard.confAltGr-nemzetközi változat az USA billentyűzetkiosztására
...
    Option "XkbLayout" "us,br"
    Option "XkbVariant" "altgr-intl,abnt2"
...

Az Right Alt billentyűgomb ezután módosítóként használható a nemzetközi karakterek beírásához.

Az Xorg lehetőséget biztosít nemzetközi és különböző szimbólumkarakterek összetétel szerinti begépelésére – ami azt jelenti, hogy megnyomja a kompozíció billentyűzetgombot, majd egy karaktersorozatot. Adja hozzá a compose:<compose_key> opciót a kompozíció engedélyezésének az érdekében:

FILE /etc/X11/xorg.conf.d/10-keyboard.confA kompozíciós billentyűzetgomb lehetőségének az engedélyezése
...
Option "XkbOptions" "grp:shifts_toggle,grp_led:scroll,compose:sclk"
...

A fenti compose:sclk beállítás a Scroll Lock billentyűgombot kompozíciós gombként (beíró billentyűgombként) konfigurálja. Ezzel a beállítással:

  • Lenyomni a Scroll Lock gombot, majd be kell írni a 'oo' -t, hogy megkapjuk a "fok" jelet. '°'
  • Lenyomni a Scroll Lock gombot, majd be kell írni a 'oc' -t, hogy megkapjuk a "szerzői jog" jelet. '©'
  • Lenyomni a Scroll Lock gombot, majd be kell írni a ':)' -t, hogy megkapjuk a "mosolygó arc" jelet. '☺'
  • Lenyomni a Scroll Lock gombot, majd be kell írni a '^2' -t, hogy megkapjuk a "felső index" jelet. X'²'
  • Lenyomni a Scroll Lock gombot, majd be kell írni a '_2' -t, hogy megkapjuk a "alsó index" jelet. X'₂'
  • Lenyomni a Scroll Lock gombot, majd be kell írni a 'di' -t, hogy megkapjuk az "átmérő jelet". '⌀'

... és még sok más. Az /usr/share/X11/locale/compose.dir fájl felsorolja az összes lehetséges kompozíciós forrást.

Egy X billentyűzetkiosztás javítása

Erre akkor van szükség, ha nagyobb horderejű változtatásokat kell végrehajtani a billentyűzetkiosztáson, például billentyű-hozzárendeléseket vagy műveleteket kell hozzáadni a funkcióbillentyűkhöz. Mivel az ilyen változtatások valójában a programcsomagok forrásfájljainak a továbbfejlesztései, ezért javasolt a Felhasználói javítási mechanizmus használata, hogy ezek a módosítások a programcsomag következő frissítésekor megmaradjanak.

Az alapok

A vonatkozó Gentoo programcsomag az x11-misc/xkeyboard-config. A billentyűzet X alatti konfigurálása bonyolultabb, mint egy virtuális parancssoron. A vonatkozó konfigurációs fájlok a /usr/share/X11/xkb könyvtárban találhatóak meg, méghozzá ezekben az alkönyvtárakban:

keycodes
Ezek a fájlok a billentyűgombok kódjait szimbolikus nevekkel társítják – nem valószínű, hogy bárki is meg akarná változtatni ezt.
geometry
Ez a billentyűzet fizikai formája, amelyet egyes szoftverek diagramok rajzolására használnak róla - szintén nem valószínű, hogy bárki is szeretne ezen változtatni.
types
Az itt található fájlok "típusokat" hoznak létre. A billentyűgomb deklarációban használt típus határozza meg, hogy a Shift billentyűk mely kombinációi használhatók a billentyűvel.
symbols
Ezek a fájlok határozzák meg a tényleges billentyűgomb-hozzárendeléseket.
compat
Az itt található fájlok "műveleteket" határoznak meg (például váltás egy virtuális parancssorra), neveket adva nekik, amelyek billentyűgombokhoz rendelhetők.
rules
Ezek a fájlok olyan paraméterekkel, mint például a billentyűzet típusa és a nyelv, aktiválják a megfelelő specifikációkat a többi könyvtárban.

Az ezekben a könyvtárakban található fájlok részletesebb leírása az An Unreliable Guide to XKB Configuration by Doug Palmer című részben található. Sokkal jobb, mint ahogy azt a neve sugallja. További dokumentáció az xkeyboard-config honlapján, a freedesktop.org webcímen található.

Az xkb olyan billentyűneveket ad, mint az "<AC01>", ami azt jelenti, hogy "billentyű az Alfanumerikus területen, a C sorban (azaz alulról a harmadik sor, a CapsLock sorban be van kapcsolva), és a 01-es billentyű, az első billentyű a billentyűsortól balra". Ez a kulcs angol elrendezésben A. A többi billentyűgomboknak más nevei is vannak, mint például az "<FK05>" név az F5 billentyűgombhoz, vagy az "<RCTL>" név a jobboldali CTRL gombnak.

Billentyűzet hozzárendelések hozzáadása

Példaként ez a rész javítja a brit angol billentyűzetkiosztást, így az a, o vagy u AltGr billentyűgombbal történő beírása a német ä, ö és ü umlaut betűket fogja előállítani. A nagybetűs verziók esetében is a megfelelőket kell létrehoznia. A javítandó gombok az A (<AC01>), O (<AD09>) és U (<AD07>). (A ß karakter már hozzá van rendelve az AltGr+S billentyűkombinációhoz).

Az xkb-ben lévő umlaut betűk neve "adiaeresis" és így tovább. Ezek a nevek az /usr/include/X11/keysymdef.h fájlban találhatók, bár az első "XK_"-okat el kell távolítani a nevek eléréséhez.

Keresse meg a megfelelő fájlt a symbols könyvtárban. A legtöbb ilyen fájlok kétbetűs országkódként vannak elnevezve (például gb a Nagy-Britanniának), ezért találja ki azt, amelyik megfelel az X-ben jelenleg kiválasztott billentyűzetkiosztásnak. Ebben a példában a symbols/gb van feljavítva.

A fenti információk birtokában hozzon létre új bejegyzéseket a meglévő séma symbols/gb formátumban történő másolásával. Ebben a példában ezeket a bejegyzéseket hozzá kell adni az "basic" nevű szakaszhoz. Tartalmából könnyen kitalálható, hogy az egyes billentyűk bejegyzésében a kapcsos zárójelben lévő négy elem a normál (más billentyűkombinációk nélkül), Shift, AltGr, és Shift+AltGr billentyűkre vonatkozik:

FILE /usr/share/X11/xkb/symbols/gbTipikus billentyűgomb bejegyzés
key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth]	};

A kiegészítések után a szakasz így néz ki:

FILE /usr/share/X11/xkb/symbols/gbPélda a brit angol billentyűzet javítására
default  partial alphanumeric_keys
xkb_symbols "basic" {
 
    // Describes the differences between a very simple en_US
    // keyboard and a very simple U.K. keyboard layout defined by
    // the SVR4 European Language Supplement and sometimes also
    // known as the IBM 166 layout.
 
    include "latin"
 
    name[Group1]="English (UK)";
 
    key <AE02>	{ [         2,   quotedbl,  twosuperior,    oneeighth ]	};
    key <AE03>	{ [         3,   sterling, threesuperior,    sterling ]	};
    key <AE04>	{ [         4,     dollar,     EuroSign,   onequarter ]	};
 
    key <AC11>	{ [apostrophe,         at, dead_circumflex, dead_caron]	};
    key <TLDE>	{ [     grave,    notsign,          bar,          bar ]	};
 
    key <BKSL>	{ [numbersign, asciitilde,   dead_grave,   dead_breve ]	};
    key <LSGT>	{ [ backslash,        bar,          bar,    brokenbar ]	};
 
// Keys inserted by ACM, 2015-10-23.
    key <AD07>  { [         u,          U,   udiaeresis,   Udiaeresis ] };
    key <AD09>  { [         o,          O,   odiaeresis,   Odiaeresis ] };
    key <AC01>  { [         a,          A,   adiaeresis,   Adiaeresis ] };
// End of insertion 2015-10-23
    include "level3(ralt_switch_multikey)"
};

A fájl mentése után indítsa újra az X Windows rendszert. Egy tipikus asztali környezet (például az XFCE) minden indításkor újraolvassa a fenti konfigurációs fájlokat. Ha hibák lépnek fel, akkor a hibaüzenetek a normál stderr hibakimenetre íródnak – ha az X Windows parancssorból indul, akkor a stderr lesz az a virtuális parancssor, ahonnan elindult.

Műveletek hozzáadása a funkcióbillentyűkhöz

Példaként adja hozzá a "váltás az n virtuális parancssorra" műveleteket (ahol n > 12) az F1 - F12 funkcióbillentyűkhöz, ha a Ctrl, Alt és a Shift mind ki van választva. Ugyanez a hatás érvényesül az AltGr és az Fn kiválasztásakor is.

Először keresse meg azt a fájlt a symbols könyvtárban, amely kezeli a funkcióbillentyűk meglévő hozzárendeléseit. Ez a fájl a symbols/srvr_ctrl. Ebben a fájlban az F1 bejegyzése, amelyet módosítani szándékozunk, a következő:

FILE /usr/share/X11/xkb/symbols/srvr_ctrlMeglévő bejegyzés az F1 számára
key <FK01> {
	type="CTRL+ALT",
	symbols[Group1]= [ F1, F1, F1, F1, XF86_Switch_VT_1 ]
    };

Két dolgot érdemes megjegyezni ezzel a bejegyzéssel kapcsolatban:

  • A "CTRL+ALT" típusú: Így a standard négy Shift billentyűbeállítást használja a Shift és a AltGr billentyűgombokkal, valamint egy ötödik Ctrl+Alt beállítást. Mivel a cél a Ctrl+Alt+Shift használata, és nincs megfelelő meglévő típus, ezért újat kell készíteni.
  • Az XF86_Switch_VT_1 "akció" csak egy meghatározott szimbólum az xkb rendszerben. A szemantikáját a compat könyvtárban található fájlban található bejegyzés adja meg, nevezetesen a compat/xfree86 könyvtárban. Nincs XF86_Switch_VT_13 (vagy magasabb) szimbólum – ehelyett lopja el az egyébként nem használt F13, F14, ..., F24 szimbólumokat.
Új típusú CTRL+ALT+SHIFT létrehozása

Miután megtalálta a "CTRL+ALT" types/pc-t, elég könnyű átmásolni, átnevezni a másolatot "CTRL+ALT+SHIFT"-re, és kiterjeszteni ezt, hogy lehetővé tegye a Ctrl+Alt+Shift módosító billentyűkombinációt. Az eredmény így néz ki:

FILE /usr/share/X11/xkb/types/pcÚj típus létrehozása
type "CTRL+ALT+SHIFT" {
        modifiers = Control+Alt+Shift+LevelThree;
        map[None] = Level1;
        map[Shift] = Level2;
        map[LevelThree] = Level3;
        map[Shift+LevelThree] = Level4;
        map[Control+Alt] = Level5;
        map[Shift+Control+Alt] = Level6;
        preserve[Shift] = Shift;
        preserve[Shift+LevelThree] = Shift;
        level_name[Level1] = "Base";
        level_name[Level2] = "Shift";
        level_name[Level3] = "Alt Base";
        level_name[Level4] = "Shift Alt";
        level_name[Level5] = "Ctrl+Alt";
        level_name[Level6] = "Ctrl+Alt+Shift";
    };
Az f13, ..., f24 szimbólumok aktiválása

Az XF86_Switch_VT_1 szimbólum gyorsan megtalálható a compat/xfree86 fájlban. A formáját egyszerű másolni, hozzárendeléseket létrehozva az F13, ..., F24 szimbólumokhoz. Az első szimbólum, az F13 definíciója a compat/xfree86-ban így néz ki:

FILE /usr/share/X11/xkb/compat/xfree86Művelet hozzárendelése egy szimbólumhoz
interpret  F13 {
        action = SwitchScreen(Screen=13, !SameServer);
    };

Az F14, ..., F24 analóg definícióit is be kell helyezni a fájlba.

az F1, ..., F12 billentyűk szimbólumaiban szereplő bejegyzések módosítása

Most, hogy az új típusú CTRL+ALT+SHIFT és az F13, ..., F24 szimbólumok meghatározásai megvannak, módosítsa a funkcióbillentyűk kulcsdefinícióit a symbols/srvr_ctrl fájlban. Az F1 billentyűzetgombhoz tartozót az alábbiakban említjük, a többi funkcióbillentyűhöz is hasonló definíciókat kell beilleszteni:

FILE /usr/share/X11/xkb/symbols/srvr_ctrlFunkcióbillentyű újradefiniálása
key <FK01> {
	type="CTRL+ALT+SHIFT",
	symbols[Group1]= [ F1, F1, F13, F1, XF86_Switch_VT_1, F13 ]
    };

Miután elvégezte ezeket a módosításokat a types/pc, compat/xfree86 és symbols/srvr_ctrl paramétereken, és újraindította az X szervert, most már lehetséges az X-ről közvetlenül a 13-as és újabb virtuális parancssororkra váltani – feltéve, hogy ezek be vannak állítva az /etc/inittab fájlban (vagy a systemd megfelelőjében) természetesen.

További olvasnivaló a témában

  • Key repeat rate — controls how quickly a key press on the keyboard will repeat if the key is pressed and held for a period of time.