Страницы

Поиск по вопросам

понедельник, 16 декабря 2019 г.

Ввод знака ударения и других интересных символов в Ubuntu

#ubuntu #faq #xcompose


Как в Ubuntu наименее трудозатратным способом вводить символы, которых нет на клавиатуре?

Можно назначить клавишу Compose, онa же Multi_key.
Она дает всякие тире —,–, кавычки-елочки «», знак ударения ý и другие классные символы ☭,☺!
Например, Multi_key - - - печатает "—".
Но эти символы не всегда дружат с русской клавиатурой.   

Файл /usr/share/X11/locale/en_US.UTF-8/Compose содержит определения для клавиши Compose.
Гугл говорит, что можно добавить свои определения в ~/.XCompose. Команда xev | fgrep
"keysym" показывает названия клавиш в системе.

И вот я написала много интересных определений в ~/.XCompose, но они не заработали
даже после перезагрузки.
Тогда я скопировала их в /usr/share/X11/locale/en_US.UTF-8/Compose, но и это не помогло.  

И вот что получается: то, что было определено для русской раскладки в /usr/share/X11/locale/en_US.UTF-8/Compose,
например

    : "§"   section # SECTION SIGN  


работает, то есть Compose-п-а печатает "§",
а те определения, что я добавила, типа

   : "«" guillemotleft # левая кавычка-ёлочка    
     : "а́" # CYRILLIC SMALL LETTER a WITH COMBINING
ACUTE ACCENT


не работают!
(Почему-то в Firefoxе знак ударения сдвинулся вправо, но на моем компьютере он на
месте).  


В данный момент меня беспокоят следующие символы:


Кавычки-елочки.
Multi_key < < дает нам "«", а Multi_key > > — "»".
С русской клавиатуры ввести это невозможно, потому что нет знаков "<" и ">".
То есть чтобы ввести кавычки, которые используются в русском, нужно переключиться
на английскую раскладку, нажать на клавиши, а потом переключится обратно.
Ударение в русской раскладке получается совсем криво. С Compose не работает, но можно
использовать Unicode:  


переключиться на английский;
после буквы, на которую нужно поставить ударение, нажать одновременно Ctrl-Shift-u.
Появится подчеркнутая буква u.
ввести "301". Это Unicode знака dead_acute — ударения, которое не сдвигает каретку.
Ввод. Появляется ударение над буквой.
поменять язык обратно на русский.  



Что я делаю не так с Compose?
Есть ли еще способы добавить символы? Мне нужно, чтобы легко запоминалось и быстро
нажималось.
    


Ответы

Ответ 1



попробуйте добавить в конец файла ~/.profile строку: export GTK_IM_MODULE="xim" и перзапустите сеанс. после этого в программах, использующих gtk (например, firefox), должно заработать то, что написано в вашем ~/.XCompose. обновление хотя, вероятно, более «правильно-дистрибутивный» метод — это запустить программу im-config (если у неё есть возможность, она «нарисует» gui-окно, иначе — текстовое меню), где дойти до выбора вариантов конфигурации input methods и выбрать xim (этот пункт ближе к концу). после чего, опять-таки, надо перезапустить сеанс.

Ответ 2



Этот ответ содержит обновленную информацию для Ubuntu 18.04 и упорядоченные инструкции (на случай. что мне придется делать это еще раз, и я опять все забуду). Определяем клавишу Compose. Прежде всего, нам надо проверить, определена ли клавиша Compose, и если да. то где. Нажимаем на значок переключения языка, затем Показать раскладку клавиатуры. Если клавиши Compose нету, то его можно установить с помощью пакета gnome tweaks. (См.) (Раньше это делалось через Параметры → Клавиатура). Устанавливаем: sudo apt install gnome-tweaks или sudo apt install gnome-tweak-tool Либо в Менеджер приложений Ubuntu устанавливаем Доп. настройки gnome (можно написать в поисковой строке gnome tweaks и он найдет). Запускаем. Открываем Клавиатура и мышь Нажимаем на кнопку Композиционная клавиша и выбираем, на какую клавишу ее назначить. Ставим английскую раскладку и проверяем, что клавиша Compose работает. Например, Compose - - - должно напечатать длинное тире: —. Создаем свои комбинации клавиш. Свои комбинации определяются в файле ~/.XCompose. Как сообщает нам man XCompose, мы можем включать в него другие файлы определений командой include. В общем случае лучше всего включить системный файл своей локали: include "%L" Но в нашем случае /usr/share/X11/locale/ru_RU.UTF-8/Compose содержит только одну строчку include "/usr/share/X11/locale/en_US.UTF-8/Compose" Примечание. Все это сделано плохо. Английский файл содержит определения для кириллических гласных с ударением, вроде : "А́" но пользоваться ими в русской раскладке невозможно, потому что клавиша в русской раскладке превращается в , она же "э". (В Гугле сказали, что из более 50-ти кириллических языков апостроф существует только в украинском и белорусском.) Там также есть определение для печати символа "№" с помощью , но в русской раскладке он и так есть. Хорошо бы сделать минимальный /usr/share/X11/locale/ru_RU.UTF-8/Compose с ударениями над гласными и со всеми русскими кавычками и распространять его вместе с Ubuntu, но я не знаю, как. Теперь давайте добавим в ~/.XCompose свои определения. Для этого нам нужно узнать названия клавиш в раскладке. Запускаем команду xev | fgrep "keysym". Открывается окошечко. Печатаем туда символы, а в терминале нам показывают их названия. Например, мы хотим добавить в русскую раскладку квадратные скобки, чтоб было удобнее редактировать свои тексты на stackoverflow. Нажимаем на клавишу [ в окошке xev. В терминале, откуда был запущен xev, нам сообщают: keysym 0x5b, bracketleft. То есть эта клавиша называется bracketleft и заодно мы узнали ее юникод U005B. Выставляем русскую раскладку, печатаем то же самое. Теперь клавиша называется Cyrillic_ha. Добавляем в ~/.XCompose строчку : "[" U005B # левая квадратная скобка Таким же образом добавляем : "]" U005D # правая квадратная скобка : "`" U0027 # апостр́оф (на Multi_key+Ё+!) Мы можем также скопировать готовый .XCompose, например, отсюда или отсюда. Они содержат гигантское количество определений комбинаций клавиш. После изменения .XCompose перезапустите сеанс, чтобы увидеть результаты. Добавлять в ~/.profile строку export GTK_IM_MODULE="xim" больше не нужно. Еще полезность: В man Compose написано, что вместо файла ~/.XCompose можно использовать любой другой файл, и сообщить о нем системе с помощью переменной $XCOMPOSEFILE. Как это может пригодиться? Например, у одного пользователя есть классный ~/.XCompose. Другой пользователь может использовать его, если вставит в свой ~/.profile строку export XCOMPOSEFILE="$HOME/..//.XCompose" Так у вас есть только одна копия .XCompose, которую используют несколько пользователей. И про сдвиг ударения. Оказывается, в нем виноват шрифт Verdana, см. Хабр.

Комментариев нет:

Отправить комментарий