Як я можу додати спеціальну послідовність складання ключів?


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 імітував багато складових ключових послідовностей, але не той, який я створив.


Як ви зараз вводите символ? Можливо, ви зможете зіставити команду, яку використовуєте для введення символу до певних клавіш у розкладці клавіатури. Щоб знайти точну клавішу певного ключа, ви можете скористатися xev. Але звичайно, це лише моя здогадка.
Нітін Венкатеш

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

Відповіді:


7

Створіть файл ~/.XCompose(тобто файл, названий .XComposeу вашій домашній папці), який містить наступне:

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

Докладніше man 5 Composeпро формат цього файлу див.


2
Акуратно! Чи є спосіб перечитати цей файл без перезавантаження X?
Джеремі Керр

1
Це звучить багатообіцяюче, але, здається, мій ~/.XComposeфайл не має жодного ефекту навіть після перезавантаження. Ви змусили це працювати?
ændrük

@Jeremy: Я не впевнений, але, можливо, змінити розкладку клавіатури на інший макет і потім назад може працювати.
JanC

1
@ ændrük: Я, мабуть, пам’ятаю, що Gtk / GNOME нерозумно змішується з налаштуваннями клавіш compose (ви можете перевірити, чи працює нова комбінація клавіш Compose у xterm, щоб підтвердити, що це так). Я, мабуть, пам’ятаю, що вирішення стосувалося вибору альтернативного методу введення, який обходив проблематичну проблему; можливо, поставте нове запитання з цього приводу, тому що це не тільки корисно для цього, але і IIRC, він також фіксує специфічні для місцевості карти
складання

1
За принаймні , 18,04 LTS ця відповідь тепер повинен працювати без необхідності методів введення змін.
ændrü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. Або перезавантажте.


3
Я помітив, що за допомогою цього рішення я більше не можу використовувати Ctrl-Shift-u для вставки символів unicode за кількістю; тож я вважаю, що це перемикає щось загальне від речі 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).
Вказані вуха

Дякую! Так що ви тільки apt-getв uimпакеті або ви повинні налаштувати що - щось інше?
Алфе

1
Я намагався запустити це деякий час зараз, але безрезультатно. Було б дуже корисно почути, що саме ви зробили, окрім встановлення пакету uim. Принаймні, це може допомогти переконатися, що ваш шлях не працює на Ubuntu 12.04.
Алфе

@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

Примітка: Перезапуск здається необхідним лише після зміни ~/.profileфайлу, зміни ~/.XComposeвступлять в силу при наступному запуску програми (Terminal, Gedit тощо).

Щоб перевірити, чи змінені параметри навколишнього середовища правильно, введіть у свій термінал наступну команду:

$ printenv | grep IM_MODULE

Велике спасибі:

Про спеціальні ключові послідовності складання:

Про спеціальне відображення клавіатури:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.