netch: (Default)
[personal profile] netch
Caps - лат<->рус, Ctrl+Caps - укр->рус<->укр.
Не по Паскалю.


# cat types/nx_types 
partial default xkb_types "nx_types" {
  include "complete"
  type "CAPS" {
    modifiers = Shift+Control;
    map[Shift] = Level2;
    map[Control] = Level3;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Control";
  };
};



# cat symbols/nx_group 
partial modifier_keys
xkb_symbols "nx_caps_toggle" {
  key   <CAPS> {
    type = "CAPS",
    actions[Group1] = [ LockGroup(group=2), LockMods(mods=Lock), LockGroup(group=3) ],
    actions[Group2] = [ LockGroup(group=1), LockMods(mods=Lock), LockGroup(group=3) ],
    actions[Group3] = [ LockGroup(group=1), LockMods(mods=Lock), LockGroup(group=2) ]
  };
};


В конфиге иксов писать:


  XkbKeycodes "xfree86+aliases(qwerty)"
  XkbTypes "nx_types"
  XkbCompat "complete+leds(scroll)"
## для xorg 6.9.0 надо писать: complete+ledscroll(group_lock). -- 2006-07-12
  XkbSymbols "pc/pc(pc105)+pc/us+pc/ru:2+pc/ua:3+nx_group(nx_caps_toggle)"
## для xorg 7.2 надо писать: pc+us+ru:2+ua:3+nx_group(nx_caps_toggle). -- 2007-08-10
  XkbGeometry "pc(pc105)"


Или подключать на ходу:
/usr/local/bin/xkbcomp ~/lib/xkbmap1 "$DISPLAY"

$ less lib/xkbmap1
xkb_keymap {
        xkb_keycodes  { include "xfree86+aliases(qwerty)"       };
        xkb_types     { include "nx_types"      };
        xkb_compat    { include "complete+ledscroll(group_lock)" };
        xkb_symbols   { include "pc+us+ru:2+ua:3+nx_group(nx_caps_toggle)" };
        xkb_geometry  { include "pc(pc105)"     };
};


У xxkb не забыть выключить two_state.

P.S. А всё-таки путаница этот ваш XKB.

P.P.S. До досовского драйвера не дотянул - там запоминалось, какая из местных групп была выбрана перед латинской, и восстанавливалась она же; у меня всегда переходит на русскую. Но сначала мне было облом думать это, а потом я чуть переделал схему и решил, что мне это не нужно.

UPD: P.S.[3]: странно себя ведут приложения если на эту раскладку переключено на ходу: SIGSEGV, однако.

UPD[2006-07-12]: см. выше про 6.9.0

UPD[2007-08-10]: для Xorg 7.2 на фряхе путь - /usr/local/share/X11/xkb

UPD[2012-09-13]: OpenSuSE: /var/lib/xkb/compiled удалять - залипает скомпилированная версия
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

netch: (Default)
netch

December 2023

S M T W T F S
     12
3456789
10111213141516
171819 20212223
24252627282930
31      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 7th, 2026 07:56 am
Powered by Dreamwidth Studios