Entry tags:
XKB & три языка
Caps - лат<->рус, 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 не проще?
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 не проще?
no subject
"Десятипальцыевый" набор используется?
no subject
no subject
Про десятипальцевый набор не понял.
no subject
печать "слепым методом". все пальцы задействованы.
назначение каждому пальцу строго определенного набора клавиш.
да почти все тренажеры клавиатурные на это положение пальцев упор делают: solo, babytype, gtypist... .
всмысле, используете этот метод, или печатаете как привыкли сами по себе?
no subject
Не использую - обломился ему учиться. Фактически у меня 2-4-6-пальцевый в зависимости от того как когда удобнее.
Re: а стандартным циклом на Ctrl-shift не проще?
Re: а стандартным циклом на Ctrl-shift не проще?
- XKB не позволяет назначать действия на клавишу только в том случае, если при ней ничего не нажато (как действовал например незабвенный драйвер latrusuk в DOS'е).
- На ноуте у меня RWin нет вообще, так же как и клавиши виндового меню.
- LWin у меня задействован под переключение десктопов (LWin+1...LWin+0), shade окна (LWin+S) и другие полезные действия.
no subject
no subject
no subject
Насчёт индикатора - по лампочкам всегда видно.
no subject
А на ноуте у меня лампочка вообще не работает.
no subject
no subject
Я лучше уберу grp_led:scroll, индикатора в заголовке достаточно, но лампочку caps оставлю на месте.
no subject
no subject
только почему-то mplayer имеет свойство менять свое состояние в зависимости от состояния последнего окна, на котором побывал "фокус". хотя, не сильно-то и анноит.
no subject
no subject
no subject
Возможно с собственно x.org, хотя не уверен.
no subject
поскольку я в тех краях пилил напильником...
Появилась она там в районе 0.20, именно из-за того, что xkb этого не умел.
no subject
Я сделал, но у меня xkb-конфиг переписан полностью. Можно попробовать отодрать.
А слать нужно не Паскалю а в xkb-devel
no subject
1) переписать всё действие на скриптовом языке (за что меня обоснованно и правильно пошлют куда-нибудь далеко)
2) сделать action типа "послать код из symbols[]" (чего сейчас нет и почему я вместо того чтобы оставить Caps_Lock в symbols делал LockMods() в actions)
3) включить данный переключатель в стандартную поставку иксов, чтобы не надо было свои файлы дописывать.
Третье - не уверен, потому что жестокий изврат. Второе - ну разве что...
no subject
2) не понял
3) Ну почему же изврат? Переключалка как переключалка.
no subject
actions оказались сильнее чем symbols, поэтому при наличии actions для группы описанные для неё symbols не сработали. А хотелось чтобы если NoAction() то чтобы сработал символ (Caps_Lock в моём случае). Для совместимости надо бы породить новый action для этого.
no subject
Кстати, я уже и не хочу это делать. Достаточно того что я помню какой режим мне нужен, и Ctrl+Caps переходит в украинский из латинского.
no subject
no subject
no subject
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)" };
};