A billentyűzetkiosztás módosítása
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.
/etc/conf.d/keymaps
Pé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:
/etc/conf.d/consolefont
Példakonfiguráció a cirill betűtípus számáraconsolefont="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:
/usr/share/keymaps/i386/qwerty/swap_slash_apostrophe.map.gz
Példa a billentyűkiosztásrainclude "us.map"
keycode 40 = slash question
keycode 53 = apostrophe quotedbl
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.
/etc/vconsole.conf
PéldabeállításokKEYMAP=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).
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.
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.
/etc/X11/xorg.conf.d/10-keyboard.conf
Példa az USA és a brazil billentyűzetkiosztásraSection "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.
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:
/etc/X11/xorg.conf.d/10-keyboard.conf
AltGr-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:
/etc/X11/xorg.conf.d/10-keyboard.conf
A 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:
/usr/share/X11/xkb/symbols/gb
Tipikus billentyűgomb bejegyzéskey <AE02> { [ 2, quotedbl, twosuperior, oneeighth] };
A kiegészítések után a szakasz így néz ki:
/usr/share/X11/xkb/symbols/gb
Példa a brit angol billentyűzet javításáradefault 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ő:
/usr/share/X11/xkb/symbols/srvr_ctrl
Meglévő bejegyzés az F1 számárakey <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. NincsXF86_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:
/usr/share/X11/xkb/types/pc
Új típus létrehozásatype "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:
/usr/share/X11/xkb/compat/xfree86
Művelet hozzárendelése egy szimbólumhozinterpret 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:
/usr/share/X11/xkb/symbols/srvr_ctrl
Funkcióbillentyű újradefiniálásakey <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.