X compose и русский [РЕШЕНО]

akorop
(while pressed) chooses the second keyboard group
При нажатии ( и только пока нажата) выбирает другую (second - второй, другой, дополнительный) раскладку.
Действие аналогично toggle но только на момент пока нажата.
смотрите какие опции у вас прописались могут быть нюансы с автозагрузкой
 setxkbmap -print -verbose 10
options: compose:ralt,grp:rwin_switch,grp:lwin_toggle,grp_led:scroll
symbols: pc+us+ru(winkeys):2+inet(evdev)+group(rwin_switch)+group(lwin_toggle)+capslock(none)+compose(ralt)
Для диагностики уберите все что у вас в автостарте для клавиатуры.
Перезагрузитесь.
В эмуляторе терминала
setxkbmap -layout us,ru -variant ,winkeys -option compose:caps grp:rwin_switch grp:lwin_toggle grp_led:scroll terminate:ctrl_alt_bksp
Включает us,ru раскладки с вин клавишами, переключение по кругу lwin, переключение при нажатой rwin, compose клавиша caps, индикация led:scroll, прибить иксы ctrl_alt_bksp
Проверяем
setxkbmap -print -verbose 10
Должно быть
[oleg@vs220 ~]$ setxkbmap -print -verbose 10
Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us,ru
variant:    ,winkeys
options:    compose:caps,grp:rwin_switch,grp:lwin_toggle,grp_led:scroll,terminate:ctrl_alt_bksp
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete+ledscroll(group_lock)
symbols:    pc+us+ru(winkeys):2+inet(evdev)+group(rwin_switch)+group(lwin_toggle)+compose(caps)+terminate(ctrl_alt_bksp)
geometry:   pc(pc105)
xkb_keymap {
	xkb_keycodes  { include "evdev+aliases(qwerty)"	};
	xkb_types     { include "complete"	};
	xkb_compat    { include "complete+ledscroll(group_lock)"	};
	xkb_symbols   { include "pc+us+ru(winkeys):2+inet(evdev)+group(rwin_switch)+group(lwin_toggle)+compose(caps)+terminate(ctrl_alt_bksp)"	};
	xkb_geometry  { include "pc(pc105)"	};
};
[oleg@vs220 ~]$

Иксы стандартные и все работает так как говорил
см man xkeyboard-config OPTIONS
Switching to another layout
Варианты переключателей групп:
grp:toggle - переключение правым Alt;
grp:shift_toggle - двумя клавишами shift;
grp:ctrl_shift_toggle - ctrl+shift;
grp:alt_shift_toggle - alt+shift;
grp:ctrl_alt_toggle - ctrl+alt;
grp:caps_toggle - переключение по CapsLock;
grp:lwin_toggle - переключение по левой "Win" клавише на Windows клавиатуре (для X Window старше 4.2);
grp:rwin_toggle - переключение по правой "Win" клавише на Windows клавиатуре (для X Window старше 4.2);
grp:menu_toggle - переключение по клавише "Контекстное меню" на Windows клавиатуре (для X Window старше 4.2);
grp:lctrl_toggle переключение по левой клавише Control;
grp:rctrl_toggle переключение по правой клавише Control;

grp:switch - переключение по правому Alt только на момент нажатия;
grp:lwin_switch - переключение по левой клавише Windows только на момент нажатия;
grp:rwin_switch - переключение по правой клавише Windows только на момент нажатия;
grp:win_switch - переключение по любой клавише Windows только на момент нажатия.

Варианты индикации переключения групп:
grp_led - использовать индикаторы на клавиатуре для показания изменения группы;
grp_led:num - индикатор Num_Lock показывает изменения группы;
grp_led:caps - индикатор Caps_Lock показывает изменение группы;
grp_led:scroll - индикатор Scroll_Lock показывает изменение группы 
И что бы не было проблем с автозагрузкой пропишите параметры по современному через localectl вики
localectl --no-convert set-x11-keymap us,ru pc105 winkeys "compose:caps, grp:rwin_switch, grp:lwin_toggle, grp_led:scroll, terminate:ctrl_alt_bksp"

создастся файл /etc/X11/xorg.conf.d/00-keyboard.conf
cat /etc/X11/xorg.conf.d/00-keyboard.conf
# Written by systemd-localed(8), read by systemd-localed and Xorg. It's
# probably wise not to edit this file manually. Use localectl(1) to
# instruct systemd-localed to update it.
Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "us,ru"
        Option "XkbModel" "pc105"
        Option "XkbVariant" "winkeys"
        Option "XkbOptions" "compose:caps, grp:rwin_switch, grp:lwin_toggle,  grp_led:scroll, terminate:ctrl_alt_bksp"
EndSection
setxkbmap из автозагрузки разумеется убираем и ребут

Переключать раскладку кстати удобно s1kls
https://archlinux.org.ru/forum/topic/12878/
Сохранять раскладку для окон perWindowLayoutD
https://archlinux.org.ru/forum/topic/3124/
vs220
При нажатии ( и только пока нажата) выбирает другую (second - второй, другой, дополнительный) раскладку.
Вообще-то, second - это второй, а другой - another. Но дело оказалось в другом, да так интересно, что охренеть можно. Оказалось, что если раскладок две (en,ru), то таки действительно rwin_switch и ей подобные переключают на другую раскладку, что вообще-то не соответствует комментарию в файле group. Но если раскладок три (а у меня три), то она включает вторую раскладку, что соответствует написанному.
А посылка на маны выглядит смешно. В каком мане такое сказано, а?

Хоть своё что-то пиши. И написал бы (точнее, добавил бы в s1kls), если бы умел программно узнать, какая сейчас раскладка. Но не нашёл ничего, хотя искал. Может, подскажет кто?
Кому как, но лично для меня намного проще нажать комбинацию Ctrl+Shift+U - отпустить клавиши - и набрать 00b0 и Enter - получим ° градус
Ошибки не исчезают с опытом - они просто умнеют
vasek
проще нажать комбинацию Ctrl+Shift+U - отпустить клавиши - и набрать 00b0 и Enter - получим ° градус
С настроенным композе это всего два или три нажатия против восьми у вас. Если часто пользоваться удобнее настроить
akorop
(а у меня три), то она включает вторую раскладку, что соответствует написанному
Если это так то почему вы не поставите английскую второй;)
С тремя раскладками просто настройте ~/.XCompose

.точнее, добавил бы в s1kls), если бы умел программно узнать, какая сейчас раскладка.
устанавливать значение переменной при смене раскладки s1kls потом читать значение если надо
vs220
Если это так то почему вы не поставите английскую второй;)
Хм... а и правда. Это ж не винда, где первая раскладка лезет во все свежезапущенные программы.
Поставил ru,us,ua вместо us,ru,ua; повесил временное переключение на правый Alt - и опять чудеса. Теперь RAlt включает не вторую раскладку, а переключает на следующую по кругу. Такое меня не устравивает, я не хочу при вводе градуса задумываться о том, на какой я сейчас раскладке.
Гори оно огнём, разбираться в тонкостях поведения иксов, я не психиатр. Сдаюсь.

Правильное решение - чтобы временное переключение на латиницу делала сама клавиша Compose (Caps). Вот только иксовыми средствами это сходу не получается: готовой переключалки caps_switch нет, как создать свою не очень понятно, и, скорее всего, работать оно всё равно не будет: сомневаюсь, что в иксах можно повесить две функции на одну клавишу.
Так что вопрос о программном выяснении номера текущей раскладки остаётся в силе. В s1kls свою switch я бы добавил легко, если бы понимал, как вернуться обратно.
akorop
вопрос о программном выяснении номера текущей раскладки остаётся в силе
skb заюзать
aur/skb 0.4-3
https://github.com/polachok/skb
akorop
вопрос о программном выяснении номера текущей раскладки остаётся в силе
Может я как всегда не догоняю. Если нужна команда bash для определения текущей раскладки, то такая возможность имеется.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.