Есть ли в Linux международная раскладка клавиатуры для Linux, которая имитирует поведение Windows?


13

Я привык использовать US International в качестве раскладки клавиатуры. Тем не менее, реализация, кажется, сильно отличается в Windows и Linux (в моем случае Gnome - вполне может быть проблемой GTK, так как GTK ведет себя одинаково в Windows).

Схема использует мертвые клавиши, например , для ключей , таких как ', ", ^, & с. позволяет легко вводить символы с диакритическими знаками. В Windows нажатие мертвой клавиши, а затем клавиши, с которой нет связанной пары, приводит к символу мертвой клавиши (в сочетании с пробелом) и к символу второй клавиши. Пример: Нажатие ", aвыходы «А», тем не менее, при нажатии ', sвыходы «'S», так как нет спаривания для 'и s.

Теперь есть язык под названием английский, который часто использует именно эти два символа, и, поскольку он работает в Windows, просто печатая их как обычно, для меня сейчас это мышечная память. Что подводит меня к моей проблеме:

В Linux (и GTK на Windows), то есть спаривание для 'и s(среди многих других), в результате чего ś(что, в свою очередь, приводит к мне часто набрав «ИТС»). Так , набрав «это» требует , чтобы я типа ',         , sв конце концов.

Есть несколько других комбинаций, к которым я привык, которые не работают. Среди тех, что для несуществующих пар просто ничего не является результатом. Ввод «Я» приводит к «Я». Двойное нажатие на одну из этих клавиш приводит к непостоянному диакритическому знаку, который ломает мою привычку печатать строки, сначала печатая обе кавычки (что теперь приводит к неразрывному острому акценту или макрону).

Короче говоря: Ни один из поставляемых появится США раскладок функционировать так же , как в Windows - не есть ли что сделать работу одинаково? Или есть возможность настроить его таким образом? Хотя может быть неплохо набирать буквы s с острым акцентом или диакритическими знаками без пробелов, для меня это не совсем общие потребности.


1
Для всех, кто интересуется, почему я использую US International, а не что-то другое: я из Германии и мне нужно время от времени печатать такие вещи, как ä, ö, ü, ß. Но большинство разработчиков языков программирования разрабатывают свои языки только для одной раскладки, поэтому людям приходится прибегать к переломным комбинациям клавиш для ввода таких символов, как фигурные скобки или обратный слеш.
Джои

Ответы:


6

Одна возможность состоит в том, чтобы избежать мертвых ключей и вместо них набирать акцентированные буквы клавишей Compose. Например, введите Compose " aдля ввода ä. Вам придется выбрать вариант раскладки клавиатуры, который включает в себя Composeклавишу; общий выбор - ключ слева от правой Ctrlклавиши (которую, я думаю, называет Windows Menu). Преимущество Composeзаключается в том, что вы можете набирать много необычных символов без изменения основного макета. Недостатком является то, что для акцентированного письма требуется три нажатия вместо двух.

Кроме того, вы можете настроить эффект мертвых ключей, создав файл с именем .XCompose(обратите внимание на CApitalization) в своем домашнем каталоге и перечислив комбинации, которые вы хотите. Что-то типа:

include "/usr/share/X11/locale/en_US.UTF-8/Compose"

<dead_acute> <пробел>: "апостроф"
<dead_acute> <exclam>: "'!"
<dead_acute> <quotedbl>: "'\" "
# и т.д...
<dead_acute> <a>: "а"
<dead_acute> <b>: "'b"
# и т.д...

Синтаксис довольно прост: последовательность клавиш слева от :буквы превращается в строку между ""справа от :. Дополнительное слово справа - это ключ (то есть имя ключа), соответствующий этой последовательности ключей; это не очень важно. Все от a #до конца строки игнорируется.

Измените первую строку, чтобы указать на системный файл, если ваш дистрибутив помещает его в другое место. Вы можете посмотреть в этом файле больше примеров синтаксиса. <Multi_key>другое имя для Composeключа.

Слева имена в <угловых скобках >обозначают ключевые слова. Вы можете найти список ключевых символов в /usr/include/X11/keysymdef.h(этот файл находится в пакете разработки, например, x11proto-core-devв Ubuntu).

Да, это много печатает, но вы должны быть в состоянии автоматизировать большую часть этого путем вставки фрагментов keysymdef.hи выполнения нескольких умных массовых замен. Что поможет, так это то, что вы можете повторно использовать шестнадцатеричный код справа для создания правой строки благодаря синтаксису "\ x dd ": включите, например,

#define XK_exclam 0x0021 / * U + 0021 ИСКЛЮЧИТЕЛЬНАЯ МАРКА * /

в

<dead_acute> <exclam>: "'\ x21"

Наконец, вы можете настроить раскладку клавиатуры с мертвыми клавишами и Composeклавишей. Будучи немцем, вы можете установить только "как мертвый ключ. Если вы идете по этому пути, самый простой вариант - использовать графический интерфейс для настройки клавиатуры без мертвой клавиши и .Xmodmapфайла для мертвой клавиши, содержащего что-то вроде

keyym апостроф = апостроф dead_quotedbl

1
Хорошо, я посмотрю на это (не на другой машине прямо сейчас). Использование Compose не вариант, так как мне придется заново изучать мышечную память, а Linux в любом случае не является моей основной системой. И не думайте, что только потому, что я немец, мне больше ничего не понадобится, кроме умлаутов ;-). Есть много слов, импортированных из других языков, которые также используют серьезный или острый акцент.
Джои

Вероятно, было бы лучше начать с переопределения именно тех комбинаций, с которыми у вас возникли проблемы, и добавить их в таблицу, когда вы найдете новые вещи, которые вас <dead_acute> <s> : "'s"
беспокоят

Возможно, вам также придется GTK_IM_MODULE=ximиспользовать последовательности составления, определенные в ~/.XCompose, а не встроенные модули GTK (!).
RolKau

3

Я знаю, что этот вопрос был "решен" некоторое время. Тем не менее, я хочу представить свое решение, которое сочетает в себе результаты этой страницы с большим количеством испытаний и экспериментов.

Win US Intl для Linux - это серия сценариев, которые я написал, чтобы решить проблему, связанную с проблемами с собственной раскладкой клавиатуры Linux в США, как писал OP. Я использую его главным образом потому, что мой родной язык - испанский, и я до сих пор использую множество английских форумов, текстов, чатов и так далее (например, этот сайт).

На заметку: это на самом деле похоже (не полностью совпадает) на поведение Windows XP US - Международная раскладка клавиатуры.

Вы можете перейти на http://tamh.info/en/win-us-intl-4-linux/, чтобы проверить это. Я нахожусь в процессе улучшения, добавляя больше записей XCompose для нескольких других пограничных случаев, среди других изменений.


3
Ссылка не работает.
Тинк


1

Таким образом, есть решение, так как кто-то разместил здесь репозиторий github, который может сделать эту работу: https://github.com/raelgc/win_us_intl Вот что вы хотите сделать:

  1. скачать почтовый файл

  2. распакуйте куда хотите, ваш фокус должен быть на файле XCompose.

  3. Откройте файл XCompose в предпочитаемом вами текстовом редакторе, а затем вставьте ниже строку «/usr/share/X11/locale/en_US.UTF-8/Compose» примерно так: include «% L»

  4. Переместите файл XCompose в ~ / каталог

  5. Отредактируйте ваш ~ / .profile и поместите экспорт GTK_IM_MODULE = "xim" в конец файла.

  6. Если вы не хотите использовать IBus, введите эту команду в терминале: im-config -n uim

  7. перезагружать

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.