заметки на «полях» клавиатуры (про xkb)

Полезные советы и программы от пользователей нашего форума.

Модератор: Модераторы разделов

Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: заметки на «полях» клавиатуры

Сообщение Hephaestus »

s.xbatob писал(а):
19.08.2015 09:44
Преобразование нажатий клавиш в символы - забота драйвера клавиатуры.
Ну от программы тоже что-то зависит.
Иначе та же Ctrl+S везде бы работала одинаково. А это явно не так.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: заметки на «полях» клавиатуры

Сообщение Bizdelnick »

QWERTYASDF писал(а):
19.08.2015 13:26
вот некоторые значки типа смайлика (который через пост выше) сюда сейчас почему-то не получается ввести, когда в xterm работает

Про раскладку не забывайте. В русской и английской двоеточие на разных клавишах.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: заметки на «полях» клавиатуры

Сообщение QWERTYASDF »

Во, заработало! ♪♪♪ Хотя смайлик пока ввести не могу, пытаюсь разобраться что за комбинация такая

<Multi_key> <colon> <parenright>


Двоеточие+курсор_вправо ничего не дают.
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: заметки на «полях» клавиатуры

Сообщение Hephaestus »

Bizdelnick писал(а):
19.08.2015 13:15
Например rxvt-unicode.
Во блин. Сколько времени пользуюсь этим эмулятором и не знал. А может знал да забыл.
Не вникал как-то, что это за штука - ISO14755SUPPORT.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: заметки на «полях» клавиатуры

Сообщение Bizdelnick »

QWERTYASDF писал(а):
19.08.2015 13:42
Двоеточие+курсор_вправо ничего не дают.

Всё проще.
:)
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: заметки на «полях» клавиатуры

Сообщение QWERTYASDF »

Ааа ☺
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3728
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: заметки на «полях» клавиатуры

Сообщение Hephaestus »

Bizdelnick писал(а):
19.08.2015 13:00
compose
По ссылке, как я понял, только часть символов, а ввести-то можно гораздо больше?
Как оно вообще? Удобно?
Это ж надо помнить комбинации символов или коды или шпаргалку перед глазами держать.
Ну две-три комбинации я ещё запомню.
Больше вряд ли.

Я такими штуками пользуюсь редко, иногда хочется ввернуть что-нибудь эдакое, но...
при слепой печати это неудобно - надо останавливаться, вспоминать/смотреть код, набирать дальше...
Короче, из-за одного-двух символов заморачиваться реально лень.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: заметки на «полях» клавиатуры

Сообщение Bizdelnick »

Hephaestus писал(а):
19.08.2015 13:56
Как оно вообще? Удобно?

Не особо.

Hephaestus писал(а):
19.08.2015 13:56
Это ж надо помнить комбинации символов или коды или шпаргалку перед глазами держать.
Ну две-три комбинации я ещё запомню.
Больше вряд ли.

Ну они довольно простые, так что с десяток-другой запомнить несложно (тем более что для многих символов определено по несколько комбинаций, например © можно ввести как oc, Oc, oC, OC, CO или Co — можно запомнить «приблизительно»). А часто нужны бывают от силы штук пять.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
QWERTYASDF
Сообщения: 989
Статус: Чайник со свистком
ОС: GNU/Linux

Re: заметки на «полях» клавиатуры

Сообщение QWERTYASDF »

А можете подсказать, как пользоваться т.н. "dead_greak"? Ну вот например для ввода "мю" там в этом файле задана комбинация "dead_greak m". Или хотя бы где почитать про подобные комбинаци...
Спасибо сказали:
voltron
Сообщения: 11
ОС: Slackware 14.0

Re: заметки на «полях» клавиатуры

Сообщение voltron »

Столкнулся проблемой при использовании нециклического переключения раскладок по мотивам заметки и этого поста.

Сразу после установки системы мультимедийные клавиши (XF86AudioMute и др.) определяются xev корректно. Но если я через setxkbmap+xkbcomp задаю независимое переключение раскладо, то мультимедиа клавиши перестают определяться. Конечно, можно задать соответствия через ~/.xmodmap, но мне интересно, можно ли как-то сделать без него?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21001
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: заметки на «полях» клавиатуры

Сообщение Bizdelnick »

voltron писал(а):
28.10.2015 12:33
если я через setxkbmap+xkbcomp задаю независимое переключение раскладо

Покажите, какие команды вводите.
У меня всё настроено просто:

Код: Выделить всё

setxkbmap -option
setxkbmap -option grp:win_menu_switch,grp_led:scroll,compose:menu
Левая win — первая раскладка, правая win — вторая, menu — compose.

Какой-нибудь дряни типа iBus не используется?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
voltron
Сообщения: 11
ОС: Slackware 14.0

Re: заметки на «полях» клавиатуры

Сообщение voltron »

Bizdelnick писал(а):
28.10.2015 12:51
Покажите, какие команды вводите.


Код: Выделить всё

setxkbmap -symbols "pc+us:1+ru:2+ua(winkeys):3+us(dvorak):4+compose(ralt)+mysymbol(caps_4)" -types "complete+mytype(four_groups)" -compat "complete+mycompat" -print | xkbcomp - $DISPLAY &>/dev/null


Собственно это небольшая модификация подхода из этого постаю

Bizdelnick писал(а):
28.10.2015 12:51
Какой-нибудь дряни типа iBus не используется?

Нет.
Спасибо сказали:
slava_k
Сообщения: 3

Re: заметки на «полях» клавиатуры

Сообщение slava_k »

Пытаюсь разобраться с настройкой нециклического переключения по "заметкам" и руководству Ивана Паскаля. Хочу сделать переключение между тремя раскладками следующим образом:
  • CapsLock переключает на первую
  • CapsLock + Shift переключает на вторую
  • CapsLock + Left Ctrl переключает на третью

В теме есть готовое решение, но, увы, не все понятно.

Насколько понял, файл mytype описывает какие модификаторы служат для переключения между уровнями сдвига (shift levels) и названия этих уровней.

Код: Выделить всё

partial xkb_types "three_groups" {
    type "THREE_GROUPS" {
        modifiers = Shift+Control;
        map[None] = Level1;
        map[Shift] = Level2;
        map[Control] = Level3;
        level_name[Level1] = "Base";
        level_name[Level2] = "Shift";
        level_name[Level3] = "Ctrl";
    };
};


Тут описывается тип клавиши, которая реализует переключение на третий уровень. Используемые модификаторы Ctlr и Shift. Если ни один из модификаторов не нажат, мы используем первый уровень (map[None] = Level1), при нажатом Shift включается второй уровень, при нажатом Ctrl активируется третий уровень. Если добавить строки

Код: Выделить всё

        map[Shift+Control] = Level4;
        Level_name[Level4] = "Shift Ctrl";

то получим еще и четвертый уровень по нажатию Shift+Ctrl+CapsLock.

Файл mycompat нужен, чтобы описать некое действие, которое должно выполниться при нажатии клавиши или комбинации клавиш. Т.е. если мне нужно реализовать переключение на третью раскладку, достаточно создать файл

Код: Выделить всё

default partial xkb_compatibility "default" {
    interpret ISO_Third_Group {
        action= LockGroup(group=3);
    };


Файл mysymbol описывает реакцию на нажатие клавиш, причем у каждой клавиши может быть несколько действий в зависимости от нажатых модификаторов. Т.е. чтобы описать реакцию на нажатие СapsLock (переключиться на первый уровень/раскладку) и Shift+CapsLock (переключиться на второй уровень/раскладку) мы должны добавить в файл строки

Код: Выделить всё

partial modifier_keys xkb_symbols "caps_1" {
    key <CAPS> {
        [ ISO_First_Group, ISO_Last_Group ]
    };
}


А вот дальше не очень понятно. Строки

Код: Выделить всё

partial modifier_keys xkb_symbols "caps_2" {
    key <CAPS> {
        [ ISO_First_Group ]
    };
    key <RCTL> {
        [ ISO_Last_Group ]
    };
};

как понимаю, описывают реакцию на Сtrl+CapsLock, но не понятен результат нажатия. Если судить по примеру sash-kan, то тут должен включаться третий уровень. Не могу разобраться как это достигается, ведь CapsLock включает первый уровень (ISO_First_Group), а Ctrl - второй уровень. Почему в результате получается третий?

Правильно ли я понимаю, что для случая трех раскладок, достаточно заменить ISO_Last_Group для Ctrl на ранее созданную ISO_Third_Group?
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: заметки на «полях» клавиатуры

Сообщение bormant »

Bizdelnick,
можно в одной команде setxkmmap и сбросить, и установить:

Код: Выделить всё

setxkbmap -option -option ...всё остальное...
Спасибо сказали:
entada
Сообщения: 223
ОС: Debian stable, IceWM

Re: заметки на «полях» клавиатуры

Сообщение entada »

Добрый день!

У меня на клавишу RALT назначен временный включатель латиницы (первой группы) на клавиатуре следующим образом:

Код: Выделить всё

partial modifier_keys xkb_symbols "mod_ralt_temp_lat" {
     replace key <RALT> {
    type[Group1]="ONE_LEVEL",
     symbols[Group1] = [  ],
        actions[Group1]=[ ],
        actions[Group2]=[ SetGroup(group=-1) ],
        actions[Group3]=[ SetGroup(group=-2) ],
        actions[Group4]=[ SetGroup(group=-3) ]
    };
    // ↑ в chromium не работает — уводит фокус   
};
Это работает в большинстве X-приложений, так что уже много лет я автоматически набираю точку и запятую как RALT+ю и RALT+б, независимо от раскладки.
Но вот в chromium, как выяснилось, нажатие Alt (в том числе в этих комбинациях) перебрасывает фокус в меню.
От chromium мне до отмены удалёнки не избавиться, отредактировать список его горячих клавиш мне тоже не удалось...

Может быть, можно как-то замаскировать RALT, чтобы он не определялся как, собственно, Alt?

P. S. setkeycodes не работает

Код: Выделить всё

# setkeycodes e038 160
setkeycodes: не удалось назначить скан-код b8 коду клавиши 160: ioctl KDSETKEYCODE: Недопустимый аргумент
Как выяснилось — потому что клавиатура USB.
Спасибо сказали: