XKB (X Keyboard) – со Linux:лэн юзчи котыретысьтыз нюртэтпулэз каньыл кутон понна кыл кутӥсез люкетыз. Солы луыса ик асьмелэн вань пӧртэм кылъёс но радъямъёс, кылсярысь.
Нимызъя ай валамон, со XFree86 юнман дыре кылдэм шуыса. Но али гинэ но, Wayland дорамы вуыса, XKB Linux-сӧзнэтъёсын кыле. Нош документъянэз ог куамын ар ортчыса кыдёке вуымтэ кадь.
Ужпум
Мон кемалась кутӥсько Илья Бирманлэсь тӥпограф радъямзэ (мыным дун ӧз тыре). Соин тарак каньыл пӧртэм пусъёс гожъяны луэ, удмуртъёссэ но. Нош Лӥнуксын со ӧвӧл кадь… ӧвӧл-а?
Кудняласен ке XKB:ын вань ни misc:typo
пуктэт, со тӥпограф радъям вылэ ик инъямын, пе. «Ваньмем нюртэтъёс» нош отын ӧвӧл (кудъёсыз собере зӥбем нюртэтэн ӵош сёто одӥг дӥакритӥкен пус, ⟨ӧ⟩ кадь). Ӧйтӧд, малы сыӵе каремын — оло, Илья Бирманлэсь ужзэ быдэсак кӧчыртонтэм вылысь (эрико небытбур ук!), оло, тырмыт калыккуспо ӧвӧл шуыса. Кыӵе бен малыез ӧй луысал, соин мар ке кароно вал.
Вотэс пӧлын вань Ubuntu:лы дасям радъям. Со но шектэм ӧвӧл вылэм, одӥг-ог пус ыштэм. Вылаз ик, сю арысь огпол XKB выльдӥськыку кышъетэз выльысь пуктыны. Соин ик ачим кыӵе-мар тодоно кариськи.
Тупатъян
Радъямъёс но пуктэтъёс ваньмыз пус люкамъёс луо. Со сяна XKB нюртэмъёсты возьма, нюртэтпул дорысь потась кодъёс валэктэ но мукетыз — асьмелы со тунсыко ӧвӧл.
Радъямъёс нюртэтъёсты ваньзэ тырем карисько, пуктэтъёс нош — куд-огзэс, нырысетӥезлы сыӵе сураськон луыса. Со сяна, соос одӥг арбери бере, огез пушкы мукетсэ пыртыны луэ.
/usr/share/X11/xkb/symbols/us
// Таиз радъям.
// Куинь нырысетӥез кыл тунсыко ӧвӧл, соос радъямлэсь кӧня ке куара-лыд пус
// тыремзэ гинэ пусъё.
partial alphanumeric_keys default
xkb_symbols "basic" {
keys <AD01> { [ q, Q ] };
keys <AD02> { [ w, W ] };
// но озьы азьлань
};
/usr/share/X11/xkb/symbols/typo
// Таиз пуктэт.
partial alphanumeric_keys
xkb_symbols "deadkeys" {
// Пуслюкамъёс троссэ ньыль пагӟалэсь пӧрмо. Котьку сямен соос тазьы сэзьдо:
// 1. 2. 3. 4.
// Shift AltGr Shift+AltGr
keys <AD01> { [ NoSymbol, NoSymbol, NoSymbol, dead_breve ] };
keys <AD04> { [ NoSymbol, NoSymbol, NoSymbol, dead_abovering ] };
// но озьы азьалнь
};
// Нош татын ваньзэ огазе кариськом
partial alphanumeric_keys
xkb_symbols "layout_extra" {
include "us(basic)+deadkeys+level3(ralt_switch)"
};
Вылӥысь гожтэм ватса layout_extra
радъямез. AltGr (бурпалась Alt) но бадӟым Q огдыре зӥбыса кылдоз олокыӵе отӥяз пыртэм пус вылэ лякиськоно бреве (Й гожпус вылысь кадь ик). layout_extra
шара пыртэ level3(ralt_switch)
пуктэтэз, AltGr куиньметӥ пагӟае выжтон мед луоз шуыса — вань мукетъёсыз пуктэтъёс (Windows:лэсь пӧртэм луыса, шонер луисько ке).
Таиз люкетыз секыт ӧвӧл — пусъёсты гожтыса кӧня ке пуконо луоз гинэ (но эн вунэтэ виштыкугӟетэз xkb_symbols
ялэм бере). Сӧзнэтлы сое адӟымон каронэз — маиз секытэз.
XKB:ысь ваньмыз сюре бадӟым эсэпрадъёсын лыдметэ. Котьку сямен со rules/evdev
, вань мукетъёсыз но. Та ужкагазын гожтэмын, ку, кызьы но кытын со-мар пуслюкамъёс итӥсько.
Радъямъёс понна азьвыл поттэм Ubuntu:лы радъямез учкемды луэ. Мон нош валэкто пуктэтъёслэн кызьы ужамзэс.
Эсэпрадъёс
Ваньмыз пуктэт evdev:ын ӧжытсэ одӥг люкетаз сюре:
/usr/share/X11/xkb/rules/evdev
! option = symbols
grp:shift_toggle = +group(shifts_toggle)
grp:switch = +group(grp_switch)
// но озьы азьлань
Тани, кыктэтӥ кесэгысь пуслюкамъёс адӟымон луо нырысетӥ кесэгысь нимын. Собере соосты setxkbmap
яке мукет юзчи азьдор пыр пуктыны луэ.
$ setxkbmap -option grp:shift_toggle
Нялтас вераса, та пуктэтъёс (grp:*
) пусгрупаез воштон амалэз пусъё. Ваньмыз пӧртэм радъямъёс зэмзэ огез вылэ мукетыз понэм пусгрупаос луо, со юзчилэсь умой ватэмын ке но. Со пусгрупаос огазе одӥг бадӟым радъямлы пӧрмо.
Тӥпограф радъямез лэсьтыны утчаса, мыным кулэ вал сое ӟуч но англи кылъёсын кутыны. Нош… со тазьы капчи ӧвӧл вылэм.
Ӟуч но англи радъямъёс пӧртэм пусгрупаос луыса, котькудӥзлы быдэ пуктэтэз нимаз поныны кулэ. Сотэк со англи пусгрупаын гинэ кутымон луоз (англиез нырысетӥез радъямды ке).
Эсэпрад лыдметын бугыртыса, шедьтӥ, misc:typo
но огез мукетыз пуктэт аспӧртэм луо шуыса. Соос вератэк котькудӥз пусгрупа борды итӥсько шуыса. Нош со тазьы гожтэмын лыдметын:
! layout option = symbols
* misc:typo +typo(base)
! layout[1] option = symbols
* misc:typo +typo(base):1
! layout[2] option = symbols
* misc:typo +typo(base):2
// но озьы ньылёзь
Мукет сямен вераса, ваньмыз пусгрупалы быдэ, misc:typo
пуктэмын ке, кулэ луись пуслюкам итӥське верам кеме мыныса (+...:n
).
Соин ик, выль ваньмем пусъёсты ваньмыз радъямын кутымон карыны понна, та чуръёсты ватсано (нимез но n
тупасьлы воштыса).
en <ним> = +typo(deadkeys):n
ru <ним> = +typo(deadkeys):n