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 удалять - залипает скомпилированная версия

Date: 2006-03-19 10:58 pm (UTC)
From: [identity profile] neveripe.livejournal.com
А без xxkb?

Date: 2006-03-19 11:04 pm (UTC)
From: [identity profile] neveripe.livejournal.com
Дык, xkb сам по себе делает раздельные состояния.
Насчёт индикатора - по лампочкам всегда видно.

Date: 2006-03-19 11:07 pm (UTC)
From: [identity profile] neveripe.livejournal.com
Caps - русский - Scroll - украинский. Немного только переделать твоё.

Date: 2006-03-20 06:35 am (UTC)
From: [identity profile] http://users.livejournal.com/_slw/
А где строки соответствующего конфига?

Date: 2006-03-19 11:16 pm (UTC)
From: [identity profile] ysae.livejournal.com
да, без раздельного состояния от xxkb давно не представляю себе, как работать.
только почему-то mplayer имеет свойство менять свое состояние в зависимости от состояния последнего окна, на котором побывал "фокус". хотя, не сильно-то и анноит.

Date: 2006-03-19 11:29 pm (UTC)
From: [identity profile] neveripe.livejournal.com
xkb раздельно сам по себе для каждого окна делает.

Date: 2006-03-19 11:32 pm (UTC)
From: [identity profile] neveripe.livejournal.com
АХЗ, я как-то не заметил :)
Возможно с собственно x.org, хотя не уверен.

Date: 2006-03-20 07:24 am (UTC)
From: [identity profile] geovit.livejournal.com
А когда в WindowMaker'е появилась доб. кнопка в заголовке окна, отображающая состояние XKB? По-моему, в версии 0.61, так что, вполне возможно, XKB умел это с самого рождения.
From: [identity profile] http://users.livejournal.com/_adept_/
... я это помню очень хорошо.

Появилась она там в районе 0.20, именно из-за того, что xkb этого не умел.

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 Dec. 29th, 2025 06:57 pm
Powered by Dreamwidth Studios