XKB & три языка
Mar. 20th, 2006 12:28 amCaps - лат<->рус, Ctrl+Caps - укр->рус<->укр.
Не по Паскалю.
В конфиге иксов писать:
Или подключать на ходу:
/usr/local/bin/xkbcomp ~/lib/xkbmap1 "$DISPLAY"
У 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 удалять - залипает скомпилированная версия
Не по Паскалю.
# 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 удалять - залипает скомпилированная версия
а стандартным циклом на Ctrl-shift не проще?
Date: 2006-03-19 10:40 pm (UTC)Identifier "Keyboard0"
Driver "keyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us,ru,uk"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection
Левый CS крутит цикл в одну сторону, правый - в другую
Re: а стандартным циклом на Ctrl-shift не проще?
Date: 2006-03-19 10:43 pm (UTC)no subject
Date: 2006-03-19 10:58 pm (UTC)no subject
Date: 2006-03-19 11:01 pm (UTC)no subject
Date: 2006-03-19 11:03 pm (UTC)"Десятипальцыевый" набор используется?
no subject
Date: 2006-03-19 11:04 pm (UTC)Насчёт индикатора - по лампочкам всегда видно.
no subject
Date: 2006-03-19 11:05 pm (UTC)no subject
Date: 2006-03-19 11:05 pm (UTC)Про десятипальцевый набор не понял.
no subject
Date: 2006-03-19 11:05 pm (UTC)А на ноуте у меня лампочка вообще не работает.
no subject
Date: 2006-03-19 11:07 pm (UTC)no subject
Date: 2006-03-19 11:09 pm (UTC)Я лучше уберу grp_led:scroll, индикатора в заголовке достаточно, но лампочку caps оставлю на месте.
no subject
Date: 2006-03-19 11:16 pm (UTC)только почему-то mplayer имеет свойство менять свое состояние в зависимости от состояния последнего окна, на котором побывал "фокус". хотя, не сильно-то и анноит.
no subject
Date: 2006-03-19 11:29 pm (UTC)no subject
Date: 2006-03-19 11:29 pm (UTC)no subject
Date: 2006-03-19 11:32 pm (UTC)Возможно с собственно x.org, хотя не уверен.
no subject
Date: 2006-03-19 11:32 pm (UTC)печать "слепым методом". все пальцы задействованы.
назначение каждому пальцу строго определенного набора клавиш.
да почти все тренажеры клавиатурные на это положение пальцев упор делают: solo, babytype, gtypist... .
всмысле, используете этот метод, или печатаете как привыкли сами по себе?
no subject
Date: 2006-03-20 02:05 am (UTC)Я сделал, но у меня xkb-конфиг переписан полностью. Можно попробовать отодрать.
А слать нужно не Паскалю а в xkb-devel
no subject
Date: 2006-03-20 06:35 am (UTC)no subject
Date: 2006-03-20 07:00 am (UTC)1) переписать всё действие на скриптовом языке (за что меня обоснованно и правильно пошлют куда-нибудь далеко)
2) сделать action типа "послать код из symbols[]" (чего сейчас нет и почему я вместо того чтобы оставить Caps_Lock в symbols делал LockMods() в actions)
3) включить данный переключатель в стандартную поставку иксов, чтобы не надо было свои файлы дописывать.
Третье - не уверен, потому что жестокий изврат. Второе - ну разве что...
no subject
Date: 2006-03-20 07:06 am (UTC)Кстати, я уже и не хочу это делать. Достаточно того что я помню какой режим мне нужен, и Ctrl+Caps переходит в украинский из латинского.
no subject
Date: 2006-03-20 07:12 am (UTC)Не использую - обломился ему учиться. Фактически у меня 2-4-6-пальцевый в зависимости от того как когда удобнее.
no subject
Date: 2006-03-20 07:24 am (UTC)no subject
Date: 2006-03-20 07:36 am (UTC)2) не понял
3) Ну почему же изврат? Переключалка как переключалка.
поскольку я в тех краях пилил напильником...
Date: 2006-03-20 08:08 am (UTC)Появилась она там в районе 0.20, именно из-за того, что xkb этого не умел.
no subject
Date: 2006-03-20 08:27 am (UTC)actions оказались сильнее чем symbols, поэтому при наличии actions для группы описанные для неё symbols не сработали. А хотелось чтобы если NoAction() то чтобы сработал символ (Caps_Lock в моём случае). Для совместимости надо бы породить новый action для этого.
no subject
Date: 2006-03-20 08:54 pm (UTC)Re: а стандартным циклом на Ctrl-shift не проще?
Date: 2006-03-22 04:27 pm (UTC)Re: а стандартным циклом на Ctrl-shift не проще?
Date: 2006-03-22 09:19 pm (UTC)- XKB не позволяет назначать действия на клавишу только в том случае, если при ней ничего не нажато (как действовал например незабвенный драйвер latrusuk в DOS'е).
- На ноуте у меня RWin нет вообще, так же как и клавиши виндового меню.
- LWin у меня задействован под переключение десктопов (LWin+1...LWin+0), shade окна (LWin+S) и другие полезные действия.
no subject
Date: 2006-03-30 02:22 am (UTC)no subject
Date: 2009-06-26 03:30 pm (UTC)xkb_keymap {
xkb_keycodes { include "evdev+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(pc104)" };
};