Видео ролики бесплатно онлайн

Смотреть 4k видео

Официальный сайт e-rus 24/7/365

Смотреть видео бесплатно

Minoru 25.12.2009 05:18

На заказCompose key

Написано по просьбе idler'а. По мотивам обрывочных воспоминаний о настройке сабжа…

Полагаю, если вы читаете это, то знаете, что клавиша Compose используется для ввода символов, которых нет на клавиатуре — например, «длинного тире» («—»), кавычек-елочек (“«” и “»”), символов копирайта («©») и торговой марки («™» и «®»), некоторых дробей (?, ? и т.д.) и проч. Для того, чтобы настроить такую радость у себя на компьютере, достаточно выполнить несколько простых шагов.

Назначение Compose key

В первую очередь нам нужно указать системе, какую клавишу следует понимать как Compose. Выбирать следует ту кнопку, которая не имеет других функций (т.е. вешать Compose на, скажем, «А» нельзя). Лично я использую левую Win-клавишу.

Методы настройки Compose key

Стоит отметить, что существует довольно много способов настройки Compose key. Самым универсальным из них является настройка через конфигурационный файл X.Org — его я и приведу. Если вы пользуетесь Gnome или другим DE, вы можете использовать графический интерфейс самого окружения и настроить всё там.

Лирическое отступление: как называются клавиши

Собственно, в качестве Compose key могут быть заюзаны следующие кнопки:
левый или правий Ctrl (lctrl и rctrl соответственно)левый или правый Alt (lalt и ralt)левая или правая Windows клавиша — клавиша с флажком Windows (lwin и rwin)клавиша контекстного меню — находится между правыми Win и Ctrl (menu)Выбирайте!


Определившись с клавишей, приступаем к правке /etc/X11/xorg.conf:
$ sudoedit /etc/X11/xorg.conf
Здесь надо найти секцию вашей клавиатуры. Выглядит она примерно так:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ua(winkeys),ru(winkeys)"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
EndSection
Compose key прописывается в поле XkbOptions:
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll,compose:lwin"
Обратите внимание на код, который я дописал в конце строки — он как раз и говорит системе о том, что функцию Compose теперь выполняет левая win (lwin).

Для тех же пользователей, иксы которых уже перешли на HAL, привожу инструкцию от ZogG:
cat /etc/hal/fdi/policy/10-x11-input.fdi
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<match key="info.capabilities" contains="input.keys">
<merge key="input.x11_options.XkbRules" type="string">base</merge>
<merge key="input.x11_options.XkbModel" type="string">evdev</merge>
<merge key="input.x11_options.XkbVariant" type="string">winkeys</merge>
<merge key="input.x11_options.XkbLayout" type="string">us,ru,il</merge>
<merge key="input.x11_options.XkbOptions" type="strlist">grp:caps_toggle</merge>
<append key="input.x11_options.XkbOptions" type="strlist">grp_led:scroll</append>
<append key="input.x11_options.XkbOptions" type="strlist">compose:lwin</append>
</match>
</deviceinfo>Т.е. нужно править файл /etc/hal/fdi/policy/10-x11-input.fdi, добавив в него последнюю строку (там где compose).

Учтите, что для применения изменений в xorg.conf вам потребуется перезапустить иксы. Если же хочется поюзать Compose здесь и немедленно, можете набрать в терминале следующее:
setxkbmap -option "compose:lwin"(с заменой lwin на свою клавишу, естественно). Эта команда назначит Compose key для текущей сессии. Таким методом, кстати, можно попробовать несколько разных клавиш, чтобы определить наиболее удобную.

Настройка работы Compose с GTK приложениями

По умолчанию GTK программы юзают какой-то свой метод ввода, поэтому надо совершить ещё одно телодвижение. В /etc/environment дописываем такую строку:
GTK_IM_MODULE="xim"Не забывайте, что права на файлы в /etc принадлежат руту, так что юзайте sudoedit.

Ввод символов, отсутствующих на клавиатуре

Ну что же, клавишу настроили — пора бы научиться ею пользоваться. Все символы вводятся по единой схеме: нажимаете Compose key, а затем вводите два-три символа, в результате получая необходимый знак. Спешу обратить ваше внимание на тот факт, что Compose key достаточно просто нажать, т.е. не обязательно удерживать её на протяжении ввода всей комбинации.

Что касается самих цепочек символов, набираемых после нажатия Compose, они достаточно интуитивны и легко запоминаются. Приведу наиболее используемые:

Сочетание Символ
Compose - - -
Compose < < «
Compose > > »
Compose o o °
Compose < "
Compose > "
Compose , "
Compose t m
Compose o r ®
Compose o c ©

Этого вам точно хватит на первое время :)

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

Где система хранит сочетания для Compose key

Так как за обработку Compose отвечают иксы, идём в /usr/share/X11 и в директории locale находим свою локаль (если не знаете, какая у вас, сделайте echo $LANG — ответом будет искомое значение). Если конкретно вашей нету — ищите ближайшую (у меня, например, локаль ru_UA.UTF-8, но в /usr/share/locales есть только ru_RU.UTF-8). В директории своей локали находим файлик Compose, в котором наверняка будет всего одна строка, а именно:
include "/usr/share/X11/locale/en_US.UTF-8/Compose"Несложно догадаться, что теперь мы идём в /usr/share/X11/locale/en_US.UTF-8 и читаем местный Compose. Он содержит записи вида:
<Multi_key> <что-то> <что-то_ещё> : "символ" код # комментарий
Запомните, этот файл — ваш наипервейший источник ответов на вопросы вида «как мне ввести такой-то символ». Если увидели где-то какой-то знак и хотите уметь его вводить, делайте grep 'знак' /usr/share/X11/en_US.UTF-8/Compose и читайте вывод. Думаю, не нужно объяснять, что <что-то> и <что-то_ещё> — это символы, которые следует набрать после нажатия Compose.

Может возникнуть ситуация, когда вы не нашли нужного символа в существующих комбинациях compose. Не нужно отчаиваться — сейчас вы узнаете

Как создавать собственные Compose комбинации

Спешу заявить: не надо править файлы Compose в поддиректориях /usr/share/X11/locales! Для назначения собственных сочетаний достаточно создать в своей домашней директории файлик .XCompose (заметьте, что заглавными являются две первых буквы), который имеет тот же формат, что и рассмотренные выше файлы Compose. Не забудьте о строке include, если не допишете её, общесистемные комбинации задействованы не будут. Идеологически верным вариантом было бы написать в первой строке .XCompose такое:
include "/usr/share/X11/locale/ru_RU.UTF-8/Compose"то есть ссылаться на свою (или ближайшую к ней) локаль.

При добавлении собственных правил для Compose вы столкнётесь с одной маленькой проблемкой — вам нужен будет код символа. Тут можно развернуться по полной — гуглите, читайте стандарт Unicode, гадайте :) Лично я использую Unicode Code Converter — вбиваю в поле «Mixed» символ и копирую из поля «Unicode U+hex notation» искомый код (не забывая потом убрать из него плюс, иначе работать не будет).

Собственно, после написания нового правила и сохранения файла изменения вступают в силу немедленно, правда, действуют они только для вновь созданных окон (т.е. в уже запущенных приложениях комбинация работать не будет, пока вы их не перезапустите).

Послесловие

Кто-то может спросить — «а зачем всё это? Зачем мучиться, что-то настраивать, вырабатывать новые привычки?..». Я бы ответил на эти вопросы так: я хочу, чтобы мой текст выглядел грамотно с точки зрения типографики. Если вам интересно почитать о традициях набора русского текста подробнее, советую Параграфы Артемия Лебедева, в частности §97, повествующий о тире, минусе и дефисе, а также §104, рассказывающий о кавычках.

Фидбеки и исправления решительно приветствуются. За сим, разрешите откланяться.


Тэги:
+ 12 -
Похожие Поделиться

kindigo 25.12.2009 05:56 #
+ 4 -
В гноме клавиша compose настраивается через параметры раскладки.
У мня на CapsLock стоит =)
Minoru 25.12.2009 06:22 #
+ 0 -
Да, в DE Compose может настраиваться какими-то внутренними методами — я приводил вариант настройки через иксы как универсальный рецепт. Надо будет погуглить ссылки на инструкции для Gnome и KDE (а также XFCE и прочих) и добавить в статью — просто как альтернативу. Пока что просто добавлю упоминание о том, что можно настраивать и не через xorg.conf.
ZogG 25.12.2009 13:57 #
+ 0 -
хоть и мала вероятность того, что ты будешь часто менять ДЕ, все равно настраивать клавиатуру и вещи, которые не зависимы от ДЕ (в консоли мне тоже может надо два языка или у меня есть брат и он юзает другой ДЕ), не кошерно ИМХО
ZogG 25.12.2009 08:15 #
+ 4 -
а у меня, как я писал уже давно через хал настроено.
cat /etc/hal/fdi/policy/10-x11-input.fdi
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
<match key="info.capabilities" contains="input.keys">
<merge key="input.x11_options.XkbRules" type="string">base</merge>
<merge key="input.x11_options.XkbModel" type="string">evdev</merge>
<merge key="input.x11_options.XkbVariant" type="string">winkeys</merge>
<merge key="input.x11_options.XkbLayout" type="string">us,ru,il</merge>
<merge key="input.x11_options.XkbOptions" type="strlist">grp:caps_toggle</merge>
<append key="input.x11_options.XkbOptions" type="strlist">grp_led:scroll</append>
<b><append key="input.x11_options.XkbOptions" type="strlist">compose:lwin</append></b>
</match>
</deviceinfo>
Minoru 25.12.2009 22:25 #
+ 0 -
Кстати, спасибо — о HAL я не знал, как настроить, т.к. у меня в Debian иксы на него пока не пересели :) Добавлю в статью.
Minoru 25.12.2009 22:32 #
+ 0 -
Думаю, <b> в последней строке — попытка выделить строку, а вовсе не синтаксис файла, поэтому в статье я этот тег убрал. Если я ошибся — сообщите, верну тег обратно.
ZogG 25.12.2009 22:39 #
+ 0 -
да, хотел выделить, этого там не надо.
ZogG 25.12.2009 22:42 #
+ 0 -
ZogG 25.12.2009 08:16 #
+ 0 -
последняя строчка
bosha 25.12.2009 09:02 #
+ 0 -
Хыы. У меня настройка XCompose уложилась в три команды ?
kindigo 25.12.2009 15:11 #
+ 0 -
сволочь!
muhas 25.12.2009 09:58 #
+ 0 -
setxkbmap -layout us,ru -variant ,winkeys -option grp:caps_toggle,grp_led:scroll,compose:ralt
ZogG 25.12.2009 13:58 #
+ 0 -
и ты каждый рестар делаешь?(то что не рестартишь не считается) или же скриптом(зачем делать новый , если есть готовые конфиги для этого?
muhas 25.12.2009 15:48 #
+ 0 -
~/.xinit же... там путь к скрипту... правда сейчас закоменчен ибо hal

зы. не понял чего рестарт и чего конфиг...
Username 25.12.2009 10:53 #
+ 0 -
слушайте, че-то только щас озадачился. А как набрать, допустим четыре символа после Compose? ну например серп и молот
ZogG 25.12.2009 14:00 #
+ 1 -
серп и молот три, просто надо с шифтом, так как заглавные буквы — ?
Username 25.12.2009 14:12 #
+ 0 -
да, уже допер.
m0nhawk 25.12.2009 13:17 #
+ 0 -
dumpkeys | grep compose
Не показывает те которые я добавил в .XCompose, даже после перезапуска иксов.
И да. как набирать СССР? :)
ZogG 25.12.2009 14:02 #
+ 0 -
я выше писал, для композита имеет различие заглавная буква или нет, я думаю так как он юзает код буквы самой, а у заглавной он другой, потому композит_кей, шифт+c, шифт+c, шифт+c, шифт+p
m0nhawk 25.12.2009 16:41 #
+ 0 -
А я что ли не знаю? :) У меня он на после второй С отваливается.
ZogG 25.12.2009 20:43 #
+ 0 -
точно латиницей пишешь? у меня всё ок
m0nhawk 25.12.2009 21:00 #
+ 0 -
Он от языка не зависит.
Может глюк какой-то. Хотя этот значок мне и не очень нужен :).
ZogG 25.12.2009 21:04 #
+ 0 -
конечно от языка зависит, у каждой буквы свой код, это не по кодам кнопки =) У меня на русском тоже после второй С отваливается, а на латинице все ок.
m0nhawk 25.12.2009 21:22 #
+ 0 -
Точно :) Но блин, я ведь именно ради того, что бы оно было универсальным и от языка не зависело :(
Username 25.12.2009 21:27 #
+ 0 -
может тупо медленно пишешь?
m0nhawk 25.12.2009 21:28 #
+ 0 -
Тока-что проверил - с англ. делает значок, а с русским - нет.
ZogG 25.12.2009 21:28 #
+ 0 -
да нет, говорю десятый раз, оно по кодам буквы делает, а не кнопки, потому раскладка решает, даже заглавная буква не одно и тоже, что обычная
m0nhawk 25.12.2009 22:07 #
+ 0 -
То что от регистра зависит очевидно, но
в директории locale находим свою локаль
и
echo $LANG

у меня выдаёт одну локаль, а у Вас?
m0nhawk 25.12.2009 22:08 #
+ 0 -
При том, что всего 3 есть:
en_GB.UTF-8
ru_RU.UTF-8
uk_UA.UTF-8
ZogG 25.12.2009 22:14 #
+ 0 -
может потому что en_GB.UTF-8, у меня вроде en_US.UTF-8
m0nhawk 25.12.2009 22:47 #
+ 0 -
Не катит. Пробовал и с en_US.UTF-8 уже.
Minoru 25.12.2009 22:27 #
+ 0 -
Не показывает те которые я добавил в .XCompose, даже после перезапуска иксов.
У меня тоже не показывает, тем не менее, сочетания работают.
m0nhawk 25.12.2009 22:47 #
+ 0 -
А у меня не работают :(
m0nhawk 25.12.2009 17:08 #
+ 0 -
А я могу как-то ВСЕ стандартные отключить?
Minoru 25.12.2009 22:24 #
+ 0 -
Да, запросто. В домашней директории создаёшь пустой .XCompose и ничего в него не пишешь. Тогда ничего из стандартных сочетаний работать не будет. Я, кстати, забыл сказать про первую строку в .XCompose — по-хорошему, там надо сделать include. Сейчас поправлю статью.
m0nhawk 25.12.2009 22:47 #
+ 0 -
У меня в .XCompose сейчас только
<Multi_key> <o> <c> : "©" copyright
но почему-то работает и СССР, и кавычки, и тире, и многие другие по умолчанию...
Minoru 25.12.2009 23:33 #
+ 0 -
Что за система у вас такая хитрая? Просто для справки спрашиваю — на самом деле, не понимаю, как так может быть…
m0nhawk 25.12.2009 23:54 #
+ 0 -
Arch Linux - но какой-то странный.
Я даже переименовывал /usr/share/X11/locale и перезагружался (на всякий случай) и у меня всё-равно дефолтные оставались.
m0nhawk 26.12.2009 12:23 #
+ 0 -
Наконец-то решил эту проблему.
1. Перенёс GTK_IM_MODULE="xim" из /etc/environment в .xinitrc. В последнем выглядит так:
GTK_IM_MODULE="xim" ;
export GTK_IM_MODULE

2. Добавил в ,XCompose нужные сочетания.
3. Перезапустил X'сы.
4. ?????
5. PROFIT!

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн