Есть ли в Linux международная раскладка клавиатуры для Linux, которая имитирует поведение Windows?
Я привык использовать US International в качестве раскладки клавиатуры. Тем не менее, реализация, кажется, сильно отличается в Windows и Linux (в моем случае Gnome - вполне может быть проблемой GTK, так как GTK ведет себя одинаково в Windows).
В макете используются мертвые клавиши, например, для таких клавиш, как ', ", ^ и т. Д., Позволяющие легко вводить символы с диакритическими знаками. В Windows нажатие мертвой клавиши, а затем клавиши, с которой нет связанной пары, приводит к появлению символа мертвой клавиши (в сочетании с пробелом) и символом второй клавиши. Пример: нажатие " a" приводит к появлению "ä", а нажатие ", s приводит к" s ", так как для ' и s нет парного соединения.
Теперь есть язык под названием английский, который часто использует именно эти два символа, и, поскольку он работает в Windows, просто печатая их как обычно, для меня сейчас это мышечная память. Что подводит меня к моей проблеме:
В Linux (и GTK в Windows) существует пара для ' и s (среди многих других), что приводит к ś
(что, в свою очередь, приводит к тому, что я часто печатаю "это"). Таким образом, набрав "это" требует от меня напечатать ', в конце.
Есть несколько других комбинаций, к которым я привык, которые не работают. Среди тех, что для несуществующих пар просто ничего не является результатом. Ввод "Я" приводит к "Я". Двойное нажатие на одну из этих клавиш приводит к непостоянному диакритическому знаку, который ломает мою привычку печатать строки, сначала печатая обе кавычки (что теперь приводит к неразрывному острому акценту или макрону).
Короче говоря: ни одна из поставляемых в США международных макетов не работает так же, как в Windows - есть ли такие, которые работают одинаково? Или есть возможность настроить его таким образом? Хотя может быть неплохо набирать буквы s с острым акцентом или диакритическими знаками без пробелов, для меня это не совсем общие потребности.
3 ответа
В настоящее время существует репозиторий github, который предоставляет файл.deb, который решает эту проблему:
Windows ™ США Международный XCompose для Linux
Это основано на настроенном файле.XCompose, как предложили другие ответы.
Одна из возможностей состоит в том, чтобы избежать использования мертвых ключей и вместо них набирать акцентированные буквы с помощью клавиши 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" # так далее...
Синтаксис довольно прост: последовательность клавиш слева от :
превращается в строку между ""
справа от :
, Дополнительное слово справа - это ключ (то есть имя ключа), соответствующий этой последовательности ключей; это не очень важно. Что-нибудь из #
до конца строки игнорируется.
Измените первую строку, чтобы она указывала на системный файл, если ваш дистрибутив помещает его в другое место. Вы можете посмотреть в этом файле больше примеров синтаксиса. <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
Я знаю, что этот вопрос был "решен" некоторое время. Тем не менее, я хочу представить свое решение, которое объединяет результаты этой страницы с большим количеством испытаний и экспериментов.
Win US Intl для Linux - это серия сценариев, которые я написал, чтобы решить проблему, связанную с проблемами с собственной раскладкой клавиатуры Linux в США, аналогично тому, как писал OP. Я использую его в основном потому, что мой родной язык - испанский, и я до сих пор использую множество английских форумов, текстов, чатов и т. Д. (Например, этот сайт).
На заметку: это на самом деле похоже (не полностью совпадает) на поведение Windows XP US - Международная раскладка клавиатуры.
Вы можете перейти на http://tamh.info/en/win-us-intl-4-linux/ чтобы проверить это. Я нахожусь в процессе улучшения, добавляя больше записей XCompose для нескольких других пограничных случаев, среди других изменений.
Итак, есть решение, поскольку кто-то разместил здесь, есть репозиторий github, который может сделать эту работу: https://github.com/raelgc/win_us_intl Вот что вы хотите сделать:
скачать zip файл
извлеките куда хотите, ваше внимание должно быть сосредоточено на файле XCompose.
Откройте файл XCompose с помощью предпочитаемого вами текстового редактора, а затем поместите ниже include "/usr/share/X11/locale/en_US.UTF-8/Compose" такую строку: include "%L"
Переместите файл XCompose в ~/ каталог
РЕДАКТИРОВАТЬ:
- Этот шаг больше не нужен. Он будет работать без него во всех новых выпусках Linux. Если он не работает для вас, выполняйте этот шаг только в том случае, если вы знаете, что делаете, потому что у XIM есть некоторые известные проблемы.
- Отредактируйте свой ~/.profile и поместите export GTK_IM_MODULE="xim" в конец файла.
РЕДАКТИРОВАТЬ:
- Если вы используете GNOME: IBus предустановлен в этой среде, и переход на другой метод ввода не будет иметь никакого эффекта, потому что GNOME все равно запустит его и настроит важные переменные.
- Если вы не хотите использовать IBus, введите следующую команду в терминале:im-config -n uim
перезагружать
Примечание. Для меня это решение не работает без шага 5, поэтому, если вы знаете, как помочь мне и другим в той же ситуации, что и я, это ссылка на другой вопрос, который я поднял: Моя система не читает.XCompose файл