RUU
Русско-украинская совмещённая раскладка (RUU: «Russian-Ukrainian keyboard layout with additional Unicode symbols» или проще «Russian-Ukrainian United keyboard layout») — русская раскладка, содержащая в третьем слое буквы украинского и белорусского алфавитов, а также часто используемые Юникод-символы.
Поставляется xkeyboard-config с версии 2.3.
Содержание
Вступление
Данная статья базируется на записях «журнала создания клавиатурной раскладки», которые были собраны из различных, задействованных в этом процессе, источников (почтовых рассылок, переписок, багтрекеров и т. д.). В длительном процессе работы над раскладкой приходилось сталкиваться с разными ситуациями, варьирующимися по шкале абсурда от лёгкого недоразумения до полного бреда, из-за чего многие параграфы сквозят сарказмом. По этой причине некоторые выражения не стоит принимать всерьёз.
Неполитический аспект.
Схему, которая определяет основной набор вариантов языковых раскладок страны, условно можно представить так:
- страна >> народы >> языки >> раскладки
Ярким примером является российский «набор», содержащий следующие дополнительные варианты раскладок: Башкирская, Калмыцкая, Коми, Осетинская, Татарская, Удмуртская, Чувашская, Якутская и Сербская (правда, последний вариант немного не вписывается в приведённую схему). Такая же ситуация справедлива и для других стран, в то время как Украина, имеющая два основных языка — русский и украинский (причём в приблизительно равных пропорциях [2]), не имеет русского варианта раскладки (rstu_ru, по причинам, которые будут приведены далее, не в счёт).
О стандартах.
На момент написания статьи украинская раскладка содержит всего два варианта, соответствующих государственному стандарту — это rstu и rstu_ru, созданные по РСТ УССР 2019-91, который уже 15 лет как не существует (в 1996 году был заменён действующим поныне ДСТУ 3470-96). Поскольку стандарт РСТ УССР 2019-91 создавался на заре цивилизации да ещё и внушительной группой учёных мужей [3], на практике оказался невостребованным. Я ни разу не встречал клавиатуру с такой раскладкой.
ПРИМЕЧАНИЕ: Указанный источник содержит ошибку, связанную с тем, что электронная версия стандарта была ещё в ОЕМ кодировке (а их было две, CP866 и CP1125; и когда документ в CP1125 читать в CP866 то «Ґ» перейдёт в «Є», «Є» в «Ї», «І» в «Ў» и «Ї» в «°» [4]), поэтому не удивляйтесь «украинским буквам» «Ў» и «°».
При разработке действующего стандарта ДСТУ 3470-96 за основу был взят всё тот же
«первый блин» — РСТ УССР 2019-91. Тщательно перемешали символы, потеряли «№» и
вот вам новый стандарт.
ПРИМЕЧАНИЕ: ДСТУ 3470-96, заверенный жирными печатями ГП «Укрметртестстандарт», мне так и не удалось увидеть (не то что денег жалко, просто не за что их платить), поэтому свои познания о нём я черпал источника на terena.org [5], опубликованным неизвестными бойцами и слегка оплёванным автором rstu/rstu_ru [6]).
- Особенности стандартов
- Знаки препинания вынесены в первый ряд алфавитно-цифрового поля в нижнем регистре поэтому цифры придётся добывать при помощи Shift, и ещё, в процессе привыкания, каждый раз радоваться выскакивающей «Ё», вместо привычной точки или запятой.
- Соседство эндемичных букв осуществляется по разным затейливым принципам:
- одинаковые звуки: [укр. «И»] = [рус. «Ы»], [укр. «І»] = [рус. «И»];
- одинаковые умляуты: «Ї» и «Ё»;
- отражённые символы «Є» и «Э»;
- похожие хвостики: «Ґ» и «Ъ».
Очевиден вывод, если только Вас с раннего детства не заставляли работать в этой раскладке, то работа с ней может нанести серьёзный вред Вашему психическому здоровью.
И так, на момент написания этой статьи, действующему Государственному стандарту Украины не соответствует ни один из вариантов раскладки. Однако этот факт никого не расстраивает, впрочем, как и самого автора.
Украинская — Unicode.
«Это украинская раскладка, которая добавляет некоторые символы, часто используемые при наборе на украинском языке. Эта раскладка не разрабатывалась специально для работников типографий или программистов, и является попыткой обеспечить минимальный набор символов, который был бы полезен широкой общественности. Предложенные символы третьего уровня включают некоторые типографские символы, которые всё чаще необходимо вводить с развитием настольных издательских систем, а также некоторые символы из алфавитов других славянских языков».
— Перевод с украинского ресурса, посвящённого этой раскладке[7].
Была создана ориентировочно в 1999 году Леоном Кантером (leon at
geon.donetsk.ua) и AEN (aen at logic.ru). Базируется на «украинской стандартной
клавиатуре» с добавлением весьма полезного третьего слоя, содержащего часто
используемые Unicode-символы и буквы российского и белорусского алфавитов.
Государственному стандарту она не соответствует, но, несмотря на этот
«прискорбный» факт, является весьма функциональной и удобной, в основном
благодаря третьему слою, который избавляет он необходимости «скакать» между
раскладками из-за одной буквы или лезть куда-то за нужным символом. К сожалению,
большинство пользователей, как показывает мой опыт, даже не подозревает о
наличии такого удобства.
ПРИМЕЧАНИЕ: Следственный эксперимент: переключитесь на вашу «умолчательную» украинскую раскладку, зажмите правый Alt, нажмите клавишу с буквой «Ї»… ой, что это?! Это же «Ъ»! Откуда он здесь взялся? А из третьего слоя, о существовании которого Вы даже не подозревали!
Русско-украинская совмещённая раскладка.
Идея.
По моим наблюдениям, наиболее распространённый набор раскладок украинца состоит из английской (EN), русской (RU) и украинской (UA) в разных последовательностях. Также заметил, что многие из обладателей такого набора не используют RU и UA в равной степени — в таких случаях одна из них является основной (работа с основной документацией, деловая переписка, бухгалтерия и т. д.), а другая применяется лишь в редких случаях (некоторые поисковые запросы, регламентированные документы, отчёты и т. д.).
Зачем постоянно держать раскладку, которая нужна не всегда да и отличается от основной лишь несколькими символами? А незачем — можно перенести эти самые символы на третий уровень в основную раскладку! Для случаев, когда UA является основной раскладкой, а эндемичные буквы русского алфавита (Ё, Ъ, Ы и Э) нужны лишь изредка, решение существует уже давно — это Украинская Unicode раскладка. А вот для тех, у кого основная раскладка — RU (к числу которых отношусь и я) решение отсутствовало.
Что за зверь?
Базирующаяся на русской стандартной раскладке, по существу представляет собой «зеркальное» отражение Украинской Unicode раскладки с незначительной корректировкой («Ґ» переехала с «гуляющей» от модели к модели клавиши <BKSL> в интуитивно понятное место — к своей старшей сестре «Г») и расширением набора часто используемых символов. Присутствие в раскладке белорусского краткого «у» (Ўў) — делает её интересной и для носителей этого языка.
Преимущества.
- Легко настраивается — просто выбираете из списка раскладок (не надо никаких дополнительных клавиатурных примочек, kkbswitch'ей и прочего снаряжения).
- Отпадает необходимость держать три раскладки — нужные буквы всегда под рукой.
- Быстрый доступ к часто используемым символам.
- Xneur в диком восторге.
Кому не надо.
Тем, кто использует RU и UA приблизительно в равных соотношениях эта раскладка может не представлять особого интереса.
Трудности перевода
Описание RUU в английском варианте xkeyboard-config выглядит так: «Russian (with Ukrainian-Belorussian layout)»
ПРИМЕЧАНИЕ: Первоначальное описание [Russian (with UKR and BEL layout)] было изменено по причине неочевидности для многих пользователей сокращений UKR и BEL в предыдущем варианте, и возникновения казусов: из-за того, что BEL указан в верхнем регистре его восприняли не как предполагалось «bel»=«Belarusian» (ISO 639-3), а как «BEL»=«Belgium» (ISO 3166-1 alpha-3), в результате чего получалась диковинная Русско-украинско-бельгийская раскладка.
Переводы на «языки-участники» выглядят таким образом:
- RU: Русская (с укр. и беларус. буквами на 3-ем уровне)
- UA: Російська (з українськими літерами на 3-му рівні)
- BY: Руская (з беларускімі літарамі на 3-ім узроўні)
ПРИМЕЧАНИЕ: Белорусский перевод существует только в виде рекомендации, поскольку на данный момент в Белорусской команде переводчиков (translationproject.org) всего один активный участник на 182 проекта [8] и для xkeyboard-config перевода не существует вовсе.
Что за странный перевод на украинский и белорусский? Привожу аргументация «странного»
перевода из его обсуждения с Украинской Translation team:
На мой взгляд, перевод на определённый язык должен передавать суть объекта перевода любым способом, но максимально эффективным для понимания посредственным носителем этого языка, и нести только необходимую для него информацию. Перевод: если язык операционной системы — украинский, то пользователю такой системы будет глубоко безразлично присутствие белорусских букв (на самом деле одной единственной) на третьем уровне, точно также, как и белорусу в аналогичной ситуации — присутствие украинских букв; в то время как пользователь с русским языком ОС может оказаться как украинцем так и белорусом, поэтому должен быть проинформирован о наличии обоих языков.
ОРИГИНАЛ (укр.): На мій погляд, переклад на певну мову має передавати суть об’єкта перекладу _будь-яким_ чином, але максимально ефективним для розуміння пересічним носієм цієї мови, і нести лише необхідну для нього інформацію. Переклад: якщо мова операційної системи — українська, то користувачу такої системи буде глибоко байдуже на наявність білоруських літер (насправді однієї єдиної) на третьому рівні, так само, як і білорусу — в аналогічній ситуації — на українські літери, в той час як користувач з російською мовою ОС може виявитись як українцем, так і білорусом, тому повинен бути проінформованим про наявність обох мов.
Как это настроить?
По воле майнтейнера xkeyboard-config, место RUU (до подтверждения её полезности и популярности) было определено в extras, так что есть некоторые нюансы.
setxkbmap и Xkbmap
Самым быстрым способом будет выполнение следующей команды:
$ setxkbmap -layout us,ru -variant ,ruu
— это самый простой пример, лишённый дополнительных настроек, таких как: модель клавиатуры, клавиши-модификаторы и т. д. Кому надо — «man setxkbmap» в руки (а «-options» можно подсмотреть в /usr/share/X11/xkb/rules/*.lst). Моя команда, к примеру, выглядит так:
$ setxkbmap -layout us,ru -variant ,ruu -option grp:alt_shift_toggle,grp:rctrl_switch,nbsp:level3,lv3:ralt_switch -model logicd
Чтобы система стартовала с этими настройками, указанную строку (без setxkbmap) надо поместить в /etc/X11/xinit/Xkbmap — для всех пользователей либо в ~/.Xkbmap — для текущего пользователя (последний вариант считается более правильным):
$ cat << EOF >> ~/.Xkbmap -layout us,ru -variant ,ruu -option grp:alt_shift_toggle,grp:rctrl_switch,nbsp:level3,lv3:ralt_switch -model logicd EOF
(опции можно размещать в разных строках).
Результат:
$ cat ~/.Xkbmap -layout us,ru # выбор раскладки (в данном случае США и РФ) -variant ,ruu # выбор вариантов раскладки (для США выбран вариант по умолчанию, для РФ — вариант RUU) -option grp:alt_shift_toggle,grp:rctrl_switch,lv3:ralt_switch # настройки: # grp:alt_shift_toggle — переключать раскладки комбинацией Alt+Shift; # grp:rctrl_switch — переключить раскладку пока нажат правый Ctrl (очень удобно для быстрого добывания символов из соседней раскладки); # nbsp:level3 — неразрывный пробел на третьем уровне; # lv3:ralt_switch — включать третий уровень раскладки пока нажат правый Alt). -model logicd # модель клавиатуры (в данном случае это Logitech Cordless Desktop)
Есть ещё опции управления индикаторами, настройки цифровой клавиатуры, поведения
различных клавиш и т. д., которые в изобилии водятся в
/usr/share/X11/xkb/rules/*.lst и только и ждут, чтобы на них обратили внимание.
Описанный выше метод с файлом конфигурации Xkbmap работает в том случае, если Ваш DE не берёт на себя обязанность настройки раскладок.
GNOME
В gconf-editor необходимо активировать параметр /desktop/gnome/peripherals/keyboard/general/loadExtraItems, после чего дополнительные раскладки из «extras» (выделенные курсивом) появятся в диалоге выбора раскладок (Система / Параметры / Клавиатура или запуск gnome-keyboard-properties).
RUU будет доступна на вкладке «По стране» для Российской Федерации, а на вкладке «По языку» для русского, украинского и белорусского языков.
KDE4
Благодаря Andriy Rysin [arysin at gmail.com] с версии 4.6.3 дополнительные раскладки стали доступны (и без всяких переключателей) в «Параметры KDE / Устройства ввода / Клавиатура / Раскладки» (быстрее выполнить kcmshell4 kcm_keyboard).
Вариант RUU будет доступен при выборе русского, украинского или белорусского языка и русской раскладки.
Altlinux Alterator
Он же — «Центр управления системой» — пока не умеет [9].
MacOS X
Файлы раскладки и инструкции по установке можно взять на http://ruu.yuuzukiyo.net/
Windows
Добровольцы приветствуются. см пример на сайте http://r2u.org.ua/wiki/keyboard/UkrainianUnicode
Создано с помощью The Microsoft Keyboard Layout Creator: Файл:Ruu win.zip
Ubuntu
Ребята из Ubuntu показали пальцем на ребят из Gnome https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/1009995,
а ребята из Gnome сказали, что им неохота менять их крутой API из-за такой ерунды https://bugzilla.gnome.org/show_bug.cgi?id=682240,
поэтому дополнительные раскладки появятся в списке выбора источников ввода (Параметры системы / Ввод текста) только после активации параметра show-all-sources из командной строки:
$ gsettings set org.gnome.desktop.input-sources show-all-sources true
Как это работает?
Клавиши на представленных схемах клавиатурных раскладок делятся на следующие зоны:
- нижняя левая
- символ в нижнем регистре (простое нажатие на клавишу);
- верхняя левая
- символ в верхнем регистре (нажатие на клавишу с зажатой Shift);
- нижняя правая
- символ третьего уровня в нижнем регистре (нажатие на клавишу с зажатой клавишей LV3);
- верхняя правая
- символ третьего уровня в верхнем регистре (нажатие на клавишу с зажатыми LV3 и Shift).
Клавишей LV3 по умолчанию является Правый Alt. Для setxkbmap и Xkbmap она
определяется опцией «-option lv3:», варианты которой можно подсмотреть так:
$ grep lv3 /usr/share/X11/xkb/rules/base.lst lv3 Key to choose 3rd level lv3:switch Right Ctrl lv3:menu_switch Menu …
В KDE4 это также можно настроить всё в том же kcmshell4 kcm_keyboard на вкладке «Дополнительно», а в GNOME – Система / Параметры / Клавиатура (или запуск gnome-keyboard-properties) > Раскладки / Параметры раскладки / Клавиша для выбора 3-го ряда.
Как запомнить, что и где.
На первых этапах работы с новой раскладкой необходимо, чтобы её схема была постоянно на виду. Для себя я решил этот вопрос так: залил схему раскладки нехитрым прозрачным градиентом и без претензий на гениальный дизайн налепил её на любимые обои одного из рабочих столов.
Материалы
Предоставляю исходные изображения этой статьи в векторном формате *.svg, можете смело использовать их в своих целях:
- 1. Описание условных зон клавиши клавиатурной раскладки
- Файл:Keyboard layout Key zones definition.svg.zip
- 2. Сравнение раскладок клавиатуры, описанных в государственных стандартах РСТ УССР 2019-91 и ДСТУ 3470-96
- Файл:RSTU 2019-91 vs DSTU 2019-91 Layout.svg.zip
- 3. Схема Русско-украинской совмещённой раскладки
- Файл:RUU Layout.svg.zip
- 4. Схема Русско-украинской совмещённой раскладки (прозрачный градиент)
- Файл:RUU Layout transparent.svg.zip
- 5. Схема раскладки клавиатуры «Украинская — Unicode»
- Файл:UA Unicode Layout.svg.zip