«Кто владеет информацией — тот владеет миром.» — Уинстон Черчилль.
Вот правильное оформление фразы. Да, я в курсе, что на самом деле не всё так гладко (речь идёт о так называемых «тире»), но в целом это выглядит явно лучше и читабельней (не зря же придумали знаки), к тому же убирает некоторую двусмысленность… В общем, речь пойдёт о наборе нестандартных символов, которых нет на клавиатуре, но нужных для качественного и грамотного оформления текста. Для начала назначим compose-клавишу, после нажатия которой (и некоторой последовательности после), мы получаем символы.
Добавьте в /etc/X11/xorg.conf (или, если вы перешли на новые рельсы, в конфигах HAL) в разделе настройки клавиатуры:
Option "XkbOptions" "grp:caps_toggle,grp_led:caps,compose:menu"
menu — на мой взгляд самая логичная клавиша, так как используется крайне редко, но вы можете забиндить compose, к примеру, на ralt…
В принципе, всё готово. Посмотреть готовые комбинации можно в /usr/share/X11/locale/en_US.UTF-8/Compose. Но лично мне такое огромное количество просто не нужно, поэтому я выбрал для себя самые востребованные символы:
$ cat .XCompose <Multi_key> <bar> <bar> : "¦" brokenbar <Multi_key> <exclam> <equal> : "≠" U2260 <Multi_key> <asciitilde> <equal> : "≈" U2248 <Multi_key> <plus> <minus> : "±" plusminus <Multi_key> <x> <x> : "×" multiply <Multi_key> <less> <minus> : "←" U2190 <Multi_key> <minus> <greater> : "→" U2192 <Multi_key> <less> <greater> : "↔" U2194 <Multi_key> <less> <equal> : "≤" U2264 <Multi_key> <greater> <equal> : "≥" U2265 <Multi_key> <e> <less> : "∈" U2208 <Multi_key> <exclam> <e> <less> : "∉" U2209 <Multi_key> <c> <less> <less> : "⊂" U2282 <Multi_key> <c> <less> <equal> : "⊆" U2286 <Multi_key> <exclam> <c> <less> : "⊄" U2284
<Multi_key> <o> <o> : "°" degree <Multi_key> <minus> <minus> : "—" U2014 <Multi_key> <space> <space> : " " nobreakspace <Multi_key> <period> <period> : "…" ellipsis <Multi_key> <o> <c> : "©" copyright <Multi_key> <o> <r> : "®" registered <Multi_key> <t> <m> : "™" U2122 <Multi_key> <less> <less> : "«" guillemotleft <Multi_key> <greater> <greater> : "»" guillemotright <Multi_key> <s> <o> : "§" section
<Multi_key> <question> <question> : "¿" questiondown <Multi_key> <exclam> <exclam> : "¡" exclamdown <Multi_key> <less> <3> : "♥" U2665 # <3 <Multi_key> <asterisk> : "★" U2605 # star <Multi_key> <colon> <parenright> : "☺" U263A # :) <Multi_key> <C> <C> <C> <P> : "☭" U262D # USSR
<Multi_key> <1> : " :)"
<Multi_key> <2> : " :("
<Multi_key> <3> : " ;)"
<Multi_key> <4> : " :|"
<Multi_key> <5> : " :/"
<Multi_key> <6> : " :D"
<Multi_key> <7> : " O.o"
Осталось позволить графическим приложениям использовать compose. Нужно экспотнуть переменную:
$ cat .xinitrc | grep export
export GTK_IM_MODULE=xim
Теперь можно перезапускать «иксы». Как видите, всё очень просто :)
Скопировав конфиг полностью, вы можете обнаружить, что стандартные комбинации не работают. Если требуется их включить — добавьте следующую строчку в конфиг:
include "/usr/share/X11/locale/en_US.UTF-8/Compose"
Еще пару слов о кодировке: все символы из секции «оформление текста» (кроме ‘™’) есть и в KOI8-R и в CP1251 — так, что можете не бояться что вас не поймут в физическом смысле :)
P.S. Огромное спасибо x3al с #archlinux-ru@freenode.org за раскрытие моих глаз и помощь в настройке.