Как добавить пользовательскую последовательность клавиш?

40

Как добавить пользовательскую последовательность клавиш?

Например, я хотел бы Compose, |, >чтобы ввести символ.

Я попытался добавить следующее к ~/.XCompose:

# Import default rules from the system Compose file
include "%L"

# Custom definitions
<Multi_key> <bar> <greater> : "▸" U25B8 # Black right-pointing small triangle

но новая последовательность не может использоваться нигде, кроме xterm.

Установка ibus-table-compose и последующее включение метода ввода Compose в IBus не решили проблему; IBus имитировал множество последовательностей клавиш, но не ту, которую я создал.

ændrük
источник
Как вы печатаете символ сейчас? Вероятно, вы можете сопоставить команду, которую вы используете для ввода символа, с конкретными клавишами в раскладке клавиатуры. Чтобы найти точный ключ конкретного ключа, вы можете использовать xev. Но, конечно, это только мое предположение.
Нитин Венкатеш
3
@nitstorm я напечатал его, нажав AltGr +>, который является заказным отображением , которое я установил, добавив символ клавиши U25B8к клавиатурному 60в ~/.xmodmaprc. Я не спрашиваю, как печатать ▸; Я спрашиваю, как создать последовательность ключей для него.
rndrük

Ответы:

7

Создайте файл ~/.XCompose(это файл с именем .XComposeв вашей «домашней» папке), который содержит следующее:

include "%L"   # import the default Compose file for your locale
<Multi_key> <bar> <greater>     : "▸"

Смотрите man 5 Composeдля получения дополнительной информации о формате этого файла.

Janc
источник
2
Ухоженная! Есть ли способ перечитать этот файл без перезапуска X?
Джереми Керр
1
Это звучит многообещающе, но мой ~/.XComposeфайл, кажется, не имеет никакого эффекта даже после перезагрузки. Вы получили это на работу?
ændrük
@ Джереми: я не уверен, но, возможно, смена раскладки клавиатуры на другую раскладку, а затем обратно может работать.
JanC
1
@ rndrük: Кажется, я помню, что Gtk / GNOME тупо портит настройки ключа композитинга (вы можете проверить, работает ли новая комбинация клавиш Compose, например, в xterm, чтобы убедиться, что это так). Кажется, я помню, что обходной путь имел отношение к выбору альтернативного метода ввода, который обходит проблемное вмешательство; возможно, задайте новый вопрос об этом, потому что это не только полезно для этого, но IIRC также исправляет специфичные для локали карты Compose и т. д .;)
JanC
1
По крайней мере 18.04 LTS этот ответ теперь должен работать без необходимости изменения методов ввода.
rndrük
22
  1. Создайте файл с именем .XComposeв вашем домашнем каталоге ( ~/.XCompose), который содержит:

    # import the default Compose file for your locale
    include "%L"
    
    <Multi_key> <bar> <greater>  : "▸"
    

    Смотрите man 5 Composeдля получения дополнительной информации о формате этого файла.

  2. Добавьте следующее к ~/.profile:

    export GTK_IM_MODULE="xim"
    

    В Ubuntu 18.04 (возможно, в других) вам может понадобиться следующее:

    export GTK_IM_MODULE="gtk-im-context-simple"
    
  3. Выйдите и снова включите. Или перезапустите X. Или перезагрузите компьютер.

dan_waterworth
источник
3
Я заметил, что в этом решении я больше не могу использовать Ctrl-Shift-u для вставки символов Юникода по номерам; поэтому я предполагаю, что это переключает что-то общее с Gnome на X, которое настраивается этим файлом ~ / .XCompose. Есть ли способ изменить материал Gnome? Я хотел бы сохранить эту функцию Ctrl-Shift-u.
Альфе
2
@Alfe Использование UIM, как предлагается в нижней части форумов Ubuntu: файл .XCompose, не прочитанный в 11.04. GNOME работает для меня с настройками по умолчанию в Debian jessie / sid (см. im-config(8) для настройки). То есть настройки .XCompose работают как в приложениях GTK (GNOME), так и в Qt (KDE), а .XCompose и Ctrl + Shift + U работают в приложениях GTK (например, Eclipse).
PointedEars
Спасибо! Так что вы только apt-getв uimпакете или вы должны настроить что - то другое?
Alfe
1
Я пытался запустить это в течение некоторого времени, но безрезультатно. Было бы очень полезно услышать, что именно вы сделали, кроме установки пакета uim. По крайней мере, это может помочь убедиться, что ваш путь не работает в Ubuntu 12.04.
Alfe
@dan_waterford Привет, я только что задал этот вопрос здесь , и у него было "возможное дублирование" на этот вопрос. Однако я попробовал ваш ответ и не смог заставить его работать. Любые идеи? :)
Owen_R
9

На Ubuntu 14.04 я сделал следующее:

1) установлено с uimпомощью программного обеспечения диспетчера, другие пакеты , такие как uim-xim, uim-gtk2, uim-gtk3и uim-qtявляются автоматически установлено. Смотрите https://launchpad.net/ubuntu/+source/uim .

2) Определил переменные среды, добавив следующие строки ~/.profile, таким образом, пользовательские последовательности ключей составления применяются только к текущему пользователю:

# Restart the X-server after making alterations using:
# $ sudo restart lightdm
# It seems only GTK_IM_MODULE or QT_IM_MODULE needs to be defined.
export GTK_IM_MODULE="uim"
export QT_IM_MODULE="uim"

~/.XCompose-File от OP должен работать после перезапуска 1) Ubuntu или 2) только X-сервер с помощью runnung следующей команды в терминале:

$ sudo restart lightdm

NB. Перезапуск кажется необходимым только после изменения ~/.profileфайла, изменения ~/.XComposeвступят в силу при следующем запуске приложения (Terminal, Gedit и т. Д.).

Чтобы проверить, правильно ли заданы переменные среды, введите в своем терминале следующую команду:

$ printenv | grep IM_MODULE

Большое спасибо:

О настраиваемых последовательностях клавиш

О пользовательских раскладках клавиатуры:

Примеры .Xcomposeфайлов для имитации Window US Internationalклавиатуры:

lmeurs
источник