XKB тупатъян тамуг

X Keyboard гожъян амалдэ тупатыны паськыт луонлыкъёс сётэ — но соосты кутыны нырысь ик амал шедьтоно луэ.

Коӵыш Микайло 4 минут лыдӟон English

Нюртэтпул, шорысьтыз куинь нюртэт шуэ «X K B»

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:*) пусгрупаез воштон амалэз пусъё. Ваньмыз пӧртэм радъямъёс зэмзэ огез вылэ мукетыз понэм пусгрупаос луо, со юзчилэсь умой ватэмын ке но. Со пусгрупаос огазе одӥг бадӟым радъямлы пӧрмо.

Улӥын англи пусгрупа +en:1, вылӥяз — ӟуч +ru:2
Улӥын англи пусгрупа +en:1, вылӥяз — ӟуч +ru:2

Тӥпограф радъямез лэсьтыны утчаса, мыным кулэ вал сое ӟуч но англи кылъёсын кутыны. Нош… со тазьы капчи ӧвӧл вылэм.

Ӟуч но англи радъямъёс пӧртэм пусгрупаос луыса, котькудӥзлы быдэ пуктэтэз нимаз поныны кулэ. Сотэк со англи пусгрупаын гинэ кутымон луоз (англиез нырысетӥез радъямды ке).

Эсэпрад лыдметын бугыртыса, шедьтӥ, 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

Коментаръёс