Выберите символы, удерживая клавишу в Linux (как в OSX)

18

Мне было интересно, есть ли какое-нибудь дополнение, доступное для Mac OS X. Мой родной язык - испанский, и сейчас я живу в среде франкоязычных, я также много говорю по-английски, поэтому мне нужны разные акценты Специально на французском я использую Linux уже два года и время от времени использую Mac OS X для тестирования.

Я считаю действительно полезной функциональность, доступную в Mac OS X, где вы продолжаете нажимать клавишу, и она отображает список доступных опций для одного и того же символа, разных акцентов или знаков препинания. Могу ли я сделать это на Linux?

Например:

введите описание изображения здесь

ximbal
источник
1
Это было бы рад. Можете ли вы опубликовать скриншот этой функции? Я думаю, что было бы полезно показать, как это круто ...
Джонатан Комар

Ответы:

3

Боюсь, я не знаю ни одного приложения, которое бы это делало. Разработка одного, вероятно, потребует создания собственного метода ввода (для замены XIM).

Тем не менее, я могу предложить вам альтернативу, которая может оказаться гораздо более полезной, чем просто изменение раскладки клавиш. X (through XIM) уже некоторое время предлагает утилиту под названием XCompose. XCompose позволяет вводить «экзотические» символы, нажимая начальную клавишу (которую вы назначаете), а затем настраиваемые последовательности клавиш. Например, Composee'возвращает персонажа é. Последовательности по умолчанию, по большей части, довольно интуитивно понятны, но самая мощная часть XCompose состоит в том, что вы можете добавлять (или изменять) последовательности, чтобы теоретически сгенерировать любой символ Юникода, который вы считаете подходящим.

Настройка последовательностей выполняется с помощью простых текстовых файлов (которые вы либо вставляете, либо помещаете в $HOME/.XComposeдругое место, но у которых есть $HOME/.XComposeисточник (вы можете посмотреть всю мою настройку здесь, если вам интересно; посмотрите конкретно XComposeи файлы в этом разделе compose/). Ниже приведен фрагмент моего личного $HOME/.XCompose:

include "%L"     # This enables all the default bindings
include "/home/halosghost/.compose/greek.compose" # some greek characters

А теперь приведенный фрагмент greek.composeвыше (имейте в виду, что это, конечно, не самые эргономичные или эффективные последовательности, которые вы могли бы использовать, это всего лишь пример):

# Lower case
<Multi_key> <a> <l> <p> <h> <a>     : "α"   U03B1   # Alpha
<Multi_key> <b> <e> <t> <a>         : "β"   U03B2   # Beta
<Multi_key> <d> <e> <l> <t> <a>     : "δ"   U03B4   # Delta
<Multi_key> <g> <a> <m> <m> <a>     : "γ"   U03B3   # Gamma
<Multi_key> <l> <a> <m> <b> <d> <a> : "λ"   U03BB   # Lambda
<Multi_key> <p> <i>                 : "π"   U03C0   # Pi
<Multi_key> <m> <u>                 : "µ"   U03BC   # Mu

Вы видите, что формат этих файлов на самом деле очень прост (хотя есть несколько случаев, когда вы используете не сам символ, а скорее его имя (например, <period>а не <.>)).

С учетом вышеизложенного я теперь могу печатать Capsmuдля генерации µ(обратите внимание, что мой ключ Compose установлен на Caps).

Вы не упомянули, какой дистрибутив вы используете (или изучаете), но XCompose поставляется с xorg, поэтому все, что вам нужно сделать, это настроить его. Соответствующее прочтение по настройке Compose up XIMможно найти здесь , но вы также должны заметить, что в XIMнаши дни оно становится довольно старым, и это может быть не лучшим вариантом. Кроме того, есть по крайней мере еще один IME, который поддерживает последовательности Compose (хотя он использует немного другую реализацию): IBus .

Лично я использую XIMи надеюсь сделать это до тех пор, пока не переключусь на Wayland (где, я надеюсь, меня ждет лучший IME), но это Linux; один размер подходит не всем, и вы должны использовать то, что лучше всего подходит для вашего рабочего процесса (в пределах разумного ).


  1. По этой ссылке вы обнаружите, что вы можете легко установить, какую клавишу вы используете для Compose (при условии, что ваша клавиатура недостаточно эзотерична, чтобы фактически иметь выделенную клавишу Compose), с помощью следующей команды (для Caps):

    setxkbmap -option compose:caps
    
  2. Я могу мечтать, верно?

В качестве забавного заключительного замечания, все «экзотические» символы в этом посте (включая é, «,», µ, ¹ и ²) были сгенерированы с использованием XCompose.

HalosGhost
источник
Каковы, на Ваш взгляд, различия между XIM и использованием ключа составления? Пожалуйста, не поймите меня неправильно, но похоже, что установка пользовательского сопоставителя последовательности клавиш вместо использования уже существующего является чем-то вроде накладных расходов, Для меня очевидно, что у меня есть Custom Keys, но я верю, что вы можете добиться этого и с помощью Compose Key, я использую Linux Mint на Debian Base в качестве Distro. Я, вероятно, в конечном итоге настрою что-то, как вы предлагаете, однако для меня было бы педагогически изучить различия. Спасибо за ответ.
ximbal
Я думаю, вы немного озадачены настройкой (которая вполне может быть моей ошибкой). XIMIME, который предлагает ключ Compose. Пользовательские последовательности, которые я упомянул и продемонстрировал, не являются отдельными от ключа Compose, они являются расширениями, которые я лично добавил. Итак, в первой includeстроке, которую я показал из этого .XComposeфрагмента, вы получаете все последовательности Compose по умолчанию, а затем я добавляю больше по своему усмотрению (иногда переопределяя некоторые значения по умолчанию).
HalosGhost
1
Я попробую, я вернусь к вам, спасибо за помощь
ximbal
0

Возможно, вы захотите включить свой Compose Key . Это позволяет вам составлять символы, используя символы, которые «похожи» на части композиции. Я использую в Alt Grкачестве своего ключа Compose, но обычно можно выбрать любой подходящий неиспользуемый ключ.

Например, Compose o /даст ø, Compose a `даст à, и так далее.

Это очень отличается от использования Мертвых Ключей , где символы акцента не появляются как отдельные символы, если дважды не ударяют подряд; это обычно очень расстраивает программистов.

Функциональность Compose Key существует уже давно (полагаю, она появилась на «настоящих» терминалах Sun). Он встроен в большинство (многие? Все?) Графических интерфейсов в системах на базе Linux. Я знаю и использую соответствующее программное обеспечение для Windows.

roaima
источник
1
Я знаю об использовании Compose Key, однако, я не нахожу очевидным запоминать 15 различных последовательностей клавиш для всех возможных символов, я знаю, что это решение работает, и оно существует уже давно, но Я попробовал это, и я в конечном итоге забыл последовательности клавиш, много других вещей, чтобы сосредоточиться. Спасибо за попытку ответить.
ximbal
1
Compose, как упомянуто в моем посте, является функцией XIM(модуля ввода X) IME. Несколько других редакторов методов имеют схожую функциональность (как IBUS), но и любой графический интерфейс , который использует XIMдля ввода (вы можете установить , как GTKи Qtк использованию XIM) будет поддерживать Compose , если вы его установки.
HalosGhost