Linux Mint Forums
Forum rules
Before you post please read how to get help. Topics in this forum are automatically closed 6 months after creation.
Compose Key in Mate
Post by ccornchip » Thu Mar 08, 2012 3:28 pm
Quite simply:
How do I set the compose key in MATE?
(. or alternatively, how do I write accented letters?)
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
[SOLVED] Compose Key in Mate
Post by LorinRicker » Fri Mar 23, 2012 2:07 pm
ccornchip wrote: Quite simply:
How do I set the compose key in MATE?
(. or alternatively, how do I write accented letters?)
It is «quite simply», and it’s set up much like you’d do in Ubuntu/Debian — main menu select:
Menu | Preferences | Keyboard (Set your keyboard preferences)
brings up the Keyboard Preferences applet. Select the Layouts tab, click the Options. button to open the Keyboard Layout Options dialog; click the arrow left-beside Compose key position, and select the key(s) you want to activate the Compose Key functionality. I like «Left Win» and «Right Win» (you can have more than one), as I don’t use those «Windoze» keys for anything else, and they’re convenient (like the «Compose» key used to be on a VT220 terminal. Oops, dating myself again).
To use: To create an accented character, like say » å «, first press/type your Compose Key (by itself), then enter a two-keystroke sequence that activates (displays) that accented character: Compose (Left Win) — a — * to produce «å«, Compose — o (oh) — c to produce «©«, Compose — s — s to produce «ß«, Compose — e — » (double-quote-mark) to produce «ë» etc.
LM 16 Cinnamon: Ввод нестандартных символов с клавиатуры
Вроде бы инструкций и описаний этого дела в интернете до фига. Но странно, что они либо какие-то сложные или запутанные, либо касаются олдскульных систем, с «правильным» расположением «правильного» /etc/X11/xorg.conf, чего на Ubuntu-based осях давно уже нет.
В ОС LinuxMint 16 «Petra» Cinnamon данная задача решается не просто и даже не очень просто, а примитивно.
Открываем «Центр управления» → «Региональные настройки».
Там открываем вкладку «Раскладки клавиатуры», а в ней – «Параметры», где:
- 1) Открываем «Положение клавиши Compose» и выбираем клавишу (я выбрал Pause/Break)
Конкретный пример использования
Чтобы, к примеру, получить такое:
нужно в LibreOffice либо в Gedit или в чем там вы печатаете, набрать всё до знака градуса, затем (переключившись в eng-раскладку) нажать однократно Pause/Break и дважды нажать «o», т.е., иными словами, набрать комбинацию «о-о». В результате напечатается знак градуса, а действие compose-клавиши Pause/Break будет сброшено до следующего нажатия.
Note: Для vim-юзеров есть свои, независимые от системы приемы ввода нестандартных символов (см. справку по команде в vim :h digrafs, или по-русски, например, здесь: http://habrahabr.ru/post/29282/
Сочетания клавиш для нестандартных символов
Даже ежу понятно, что главное в этом деле — иметь под рукой список кейбиндов для символов, либо лошадиную память для их хранения. Второе, как вы понимаете, отпадает, поскольку противоречит концепции сайта MintMem.com
Самый популярный в интернете список расположен здесь. Разумно добавить эту страницу в закладки, или сделать из нее удобную выжимку для личных нужд, как это сделал Алекс Эфрос aka Powerman.
Совет: дотошные юзеры могут найти полный список в файле /usr/share/X11/locale/en_US.UTF-8/Compose, в котором около 6 000 строк.
Как настроить кейбинды «под себя», выяснить «истинные» имена клавиш и написать свой конфиг, смотрите статью автора под ником «о_О Тынц» на Хабре.
Еще несколько полезных ссылок:
Ввод произвольных символов при помощи Compose Key: настройка
Многие знают, что в Linux есть специальная кнопка: Compose. Её действие аналогично виндовым сочетаниям Alt+NumPad (Например, нажатие Alt+0169 даёт символ ©), но не требует хранить перед глазами таблицу кодов символов 🙂 Если настроить правый Alt как Compose Key, то нажав RAlt+O+C получаем тот же значок копирайта: ©.
Включаем
Первое что нужно сделать чтобы получить доступ к Compose Key – включить его 🙂 Достаточно удобно установить правый Alt в качестве составной кнопки: вряд ли он часто используется. Примеры будут для Ubuntu, в других дистрибутивах не должно быть большого отличия.
- xorg.conf: Compose Key можно назначить в секции «InputDevice» конфига /etc/X11/xorg.conf. Например, так:
Section «InputDevice»
Driver «kbd»
Option «CoreKeyboard»
Option «XkbRules» «xorg»
Option «XkbModel» «pc105»
Option «XkbLayout» «us,ru»
Option «XkbOptions» «grp:alt_shift_toggle,grp_led:scroll,compose:ralt»
EndSection - Если у вас установлен Gnome, топаем по меню в System→Preferences→Keyboard→Layouts→[Layout Options] и устанавливаем «Compose key position» на правый Alt. У меня нет Gnome под рукой, списал отсюда 🙂
- Если у вас KDE4, то в System Settings→Regional&Language→Keyboard Layout→[Advanced] и в секции «Compose key position» ставим галку напротив «Right Alt»
- John_Minorityподсказывает, что можно в файле ~/.xinitrc указать следующее: setxkbmap -options «compose:ralt. «
Конфиг
В инете полно списков доступных сочетаний, но ни один не описывает их полностью. Мы же будет умнее и не будет ничего запоминать: настроим всё под себя 🙂
Сочетания по умолчанию лежат в гигантском файле /usr/share/X11/locale/en_US.UTF-8/Compose. Его можно использовать как шпаргалку 🙂 Трогать там ничего не надо: в домашней папке создаём файл ~/.XCompose и будем описывать там свои сочетания клавиш, которые отменят все стандартные.
Синтаксис файла прост: каждая строка описывает сочетание, комментарии начинаются с символа ‘#’. Рассмотрим на примере: добавляем в пустой файл ~/.XCompose строку:
: «℃» U2103 # DEGREE CELSIUS и сохраняем файл.
В угловых скобках подряд описывается сочетание клавиш. Compose в терминах X-сервера называется «Multi_key». Дальше идёт двоеточие, и в кавычках указывается символ (или строка!), получающийся при нажатии этих клавиш. Последний – Unicode код символа, его вводить не обязательно. Хорошим тоном считается в комментарии дать оригинальное название символа, которое можно подсмотреть в таблице символов.
Добавленный символ будет доступен без перезагрузки иксов, но – только в новых приложениях. Поэтому запускаем новый текстовый редактор, и проверяем, нажимая и сразу же отпуская сочетания: RAlt, o, Shift+c. Ура 🙂
Важный момент: все названия клавиш в конфиге регистрозависимы: так, и – разные клавиши, причём, второй вариант не будет распознан иксами. Внимательно!
Имена клавиш для литиницы и цифр совпадают с одиночной буквой: -,-,- нам доступны. Стрелки ,,, (первая буква – большая!) – тоже можно использовать. Но как же догадаться, что тильда называется и никак иначе?
Узнаём названия клавиш
Открываем консоль, и выполняем следующее:
xev | fgrep «keysym»
Откроется окно xev. Делаем его активным, проверяем текущую раскладку и нежно нажимаем тильду (да, с шифтом). В консоли теперь видно название клавиши:
state 0x11, keycode 49 (keysym 0x7e, asciitilde), same_screen YES,
Для русских букв тоже есть названия:
state 0x2010, keycode 47 (keysym 0x6d6, Cyrillic_zhe), same_screen YES,
Настраиваем
Вооружившись всей этой информацией, можно сразу легко забацать целое семейство стрелочек, вводимых кнопкой «минус» и двойным нажатием стрелки в нужном направлении:
: «→»
: «←»
: «↑»
: «↓»
Однако сразу будет видно, что «минус» на цифровой клавиатуре не работает. Лезем в xev, и обнаруживаем, что он называется иначе: «KP_Subtract». Внимательно!
Можно добавить ещё алиасов для NumPad:
: «→»
: «←»
: «↑»
: «↓»
Теперь всё работает.
Есть ещё одни грабли: допустим, мы запишем в файл следующее:
: «–» U2013 # EN DASH
: «—» U2014 # EM DASH
И попробуем ввести EM-DASH (длинное тире): уже на втором нажатии минуса выдастся короткое тире. Причина в том, что X-сервер выбирает первую удавшуюся последовательность (EN DASH) и пишет её. При составлении файла нужно внимально следить чтобы ни одно сочетание не перекрывало другие!
Поэтому делаем так: для короткого тире добавляет точку:
: «–» U2013 # EN DASH
: «—» U2014 # EM DASH
И последнее: если хочется просто расширить существующий набор символов и ничего не менять, в начале файла инклюдим стандартный:
include «/usr/share/X11/locale/en_US.UTF-8/Compose»
Готовое решение
Не буду приводить всю таблицу и расписывать её создание, лишь дам ссылку на проект на гуглокоде где можно скачать моё творение и подправить под себя. Файл будет обновляться в процесса расширения набора символов и поиска багов 🙂
Уклон выбранных символов весьма хабрахабровский: IT и математика 🙂
UPD: исправил баг с пересекающимися © и Ⓒ. На гуглокоде лежит обновлённый файл и пхп скрипт, проверяющий все последовательности на пересечения.