Test — различия между версиями

Материал из OpenWiki
Перейти к: навигация, поиск
(Новая: — - — « " « » " » – ' – ’ ' ’ ‘ ' ‘)
 
(проверка после обновления движка)
 
(не показано 5 промежуточных версии 2 участников)
Строка 1: Строка 1:
— - —
+
'''Русско-украинская совмещённая раскладка''' ('''RUU''': ''«'''R'''ussian-'''U'''krainian keyboard layout with additional '''U'''nicode symbols»''
« " «
+
или проще ''«'''R'''ussian-'''U'''krainian '''U'''nited keyboard layout»'') —
» " »
+
русская раскладка, содержащая в третьем слое буквы украинского и белорусского
– ' –
+
алфавитов, а также часто используемые Юникод-символы.
’ ' ’  
+
 
‘ ' ‘
+
Поставляется xkeyboard-config с версии 2.5.
 +
 
 +
 
 +
= Вступление =
 +
Данная статья базируется на записях «журнала создания клавиатурной раскладки»,
 +
которые были собраны из различных, задействованных в этом процессе, источников
 +
(почтовых рассылок, переписок, багтрекеров и т. д.). В длительном процессе
 +
работы над раскладкой приходилось сталкиваться с разными ситуациями,
 +
варьирующимися по шкале абсурда от лёгкого недоразумения до полного бреда, из-за
 +
чего многие параграфы сквозят сарказмом. По этой причине некоторые выражения не
 +
стоит принимать всерьёз.
 +
 
 +
== Неполитический аспект. ==
 +
Схему, которая определяет основной набор вариантов языковых раскладок страны,
 +
условно можно представить так:
 +
 
 +
:страна >> народы >> языки >> раскладки
 +
 
 +
Ярким примером является российский «набор», содержащий следующие дополнительные
 +
варианты раскладок: Башкирская, Калмыцкая, Коми, Осетинская, Татарская,
 +
Удмуртская, Чувашская, Якутская и Сербская (правда, последний вариант немного не
 +
вписывается в приведённую схему). Такая же ситуация справедлива и для других
 +
стран, в то время как Украина, имеющая два основных языка — русский и украинский
 +
(причём в приблизительно равных пропорциях <sup>[http://ru.wikipedia.org/wiki/Языки_Украины]</sup>), не имеет
 +
русского варианта раскладки (rstu_ru, по причинам, которые будут приведены
 +
далее, не в счёт).
 +
 
 +
== О стандартах. ==
 +
[[Изображение:RSTU_2019-91_vs_DSTU_3470-96_Layout.png|right|thumb|500px|
 +
'''Сравнение раскладок клавиатуры, описанных государственными стандартами РСТ УССР 2019-91 и ДСТУ 3470-96.'''<br /><small>
 +
''&#171;Синий&#187;'' &#8212; значение для украинской раскладки согласно РСТ УССР 2019-91;<br />
 +
''&#171;Красный&#187;'' &#8212; значение для русской раскладки согласно РСТ УССР 2019-91;<br />
 +
''&#171;Зелёный&#187;'' &#8212; изменения, внесённые стандартом ДСТУ 3470-96.</small>]]
 +
 
 +
На момент написания статьи украинская раскладка содержит всего два варианта,
 +
соответствующих государственному стандарту &#8212; это rstu и rstu_ru, созданные по
 +
РСТ УССР 2019-91, который уже 15 лет как не существует (в 1996 году был заменён
 +
действующим поныне ДСТУ 3470-96).
 +
Поскольку стандарт  РСТ УССР 2019-91 создавался на заре цивилизации да ещё и
 +
внушительной группой учёных мужей <sup>[http://www.terena.org/activities/multiling/koi8-u/kbdstd-old.html]</sup>, на практике
 +
оказался невостребованным. Я ни разу не встречал клавиатуру с такой раскладкой.
 +
 
 +
<small>
 +
'''ПРИМЕЧАНИЕ:''' Указанный источник содержит ошибку, связанную с тем, что
 +
электронная версия стандарта была ещё в ОЕМ кодировке (а их было две, CP866 и
 +
CP1125; и когда документ в CP1125 читать в CP866 то &#171;&#1168;&#187; перейдёт в &#171;&#1028;&#187;, &#171;&#1028;&#187; в
 +
&#171;&#1031;&#187;, &#171;&#1030;&#187; в &#171;&#1038;&#187; и &#171;&#1031;&#187;  в &#171;°&#187;
 +
<sup>[https://bugs.freedesktop.org/show_bug.cgi?id=30658#c32]</sup>), поэтому не
 +
удивляйтесь &#171;украинским буквам&#187; &#171;&#1038;&#187; и &#171;°&#187;.
 +
</small>
 +
 
 +
 
 +
При разработке действующего стандарта ДСТУ 3470-96 за основу был взят всё тот же
 +
&#171;первый блин&#187; &#8212; РСТ УССР 2019-91. Тщательно перемешали символы, потеряли &#171;&#8470;&#187; и
 +
вот вам новый стандарт.
 +
 
 +
<small>
 +
'''ПРИМЕЧАНИЕ:''' ДСТУ 3470-96, заверенный жирными печатями ГП &#171;Укрметртестстандарт&#187;,
 +
мне так и не удалось увидеть (не то что денег жалко, просто не за что их
 +
платить), поэтому свои познания о нём я черпал источника на terena.org
 +
<sup>[http://www.terena.org/activities/multiling/koi8-u/DSTU_3470rus.html]</sup>,
 +
опубликованным неизвестными бойцами и слегка оплёванным автором rstu/rstu_ru
 +
<sup>[https://bugs.freedesktop.org/show_bug.cgi?id=30658#c32]</sup>).
 +
</small>
 +
 
 +
 
 +
;Особенности стандартов:
 +
# Знаки пунктуации вынесены в первый ряд алфавитно-цифрового поля в нижнем регистре поэтому цифры придётся добывать при помощи Shift, и ещё, в процессе привыкания, каждый раз радоваться выскакивающей &#171;Ё&#187;, вместо привычной точки или запятой.
 +
# Соседство эндемичных букв осуществляется по разным затейливым принципам:
 +
::* одинаковые звуки: [укр. &#171;И&#187;] = [рус. &#171;Ы&#187;], [укр. &#171;&#1030;&#187;] = [рус. &#171;И&#187;];
 +
::* одинаковые умляуты: &#171;&#1031;&#187; и &#171;Ё&#187;;
 +
::* отражённые символы &#171;&#1028;&#187; и &#171;Э&#187;;
 +
::* похожие хвостики: &#171;&#1168;&#187; и &#171;Ъ&#187;.
 +
Очевиден вывод, если только Вас с раннего детства не заставляли работать в этой
 +
раскладке, то работа с ней может нанести серьёзный вред Вашему психическому
 +
здоровью.
 +
 
 +
И так, на момент написания этой статьи, действующему Государственному стандарту
 +
Украины не соответствует ни один из вариантов раскладки. Однако этот факт никого
 +
не расстраивает, впрочем, как и самого автора.
 +
 
 +
 
 +
=  Украинская &#8212; Unicode. =
 +
[[Изображение:UA_Unicode_Layout.png|right|thumb|500px|
 +
'''Схема раскладки клавиатуры &#171;Украинская &#8212; Unicode&#187;.'''
 +
]]
 +
<blockquote>
 +
&#171;Это украинская раскладка, которая добавляет некоторые символы, часто
 +
используемые при наборе на украинском языке. Эта раскладка не разрабатывалась
 +
специально для работников типографий или программистов, и является попыткой
 +
обеспечить минимальный набор символов, который был бы полезен широкой
 +
общественности. Предложенные символы третьего уровня включают некоторые
 +
типографские символы, которые всё чаще необходимо вводить с развитием настольных
 +
издательских систем, а также некоторые символы из алфавитов других славянских
 +
языков&#187;.
 +
</blockquote>
 +
 
 +
<p align="right"><small>&#8212; Перевод с украинского ресурса, посвящённого этой раскладке<sup>[http://dict.linux.org.ua/other/ua_layout_uni.html]</sup>.</small></p>
 +
 
 +
 
 +
Была создана ориентировочно в 1999 году Леоном Кантером (leon at
 +
geon.donetsk.ua) и AEN (aen at logic.ru). Базируется на &#171;украинской стандартной
 +
клавиатуре&#187; с добавлением весьма полезного третьего слоя, содержащего часто
 +
используемые Unicode-символы и буквы российского и белорусского алфавитов.
 +
Государственному стандарту она не соответствует, но, несмотря на этот
 +
&#171;прискорбный&#187; факт, является весьма функциональной и удобной, в основном
 +
благодаря третьему слою, который избавляет он необходимости &#171;скакать&#187; между
 +
раскладками из-за одной буквы или лезть куда-то за нужным символом. К сожалению,
 +
большинство пользователей, как показывает мой опыт, даже не подозревает о
 +
наличии такого удобства.
 +
 
 +
<small>
 +
'''ПРИМЕЧАНИЕ:''' Следственный эксперимент: переключитесь на вашу &#171;умолчательную&#187;
 +
украинскую раскладку, зажмите правый Alt, нажмите клавишу с буквой &#171;&#1031;&#187;&hellip; ой, что
 +
это?! Это же &#171;Ъ&#187;! Откуда он здесь взялся? А из третьего слоя, о существовании
 +
которого Вы даже не подозревали!
 +
</small>
 +
 
 +
 
 +
= Русско-украинская совмещённая раскладка. =
 +
 
 +
== Идея. ==
 +
По моим наблюдениям, наиболее распространённый набор раскладок украинца состоит
 +
из английской (EN), русской (RU) и украинской (UA) в разных последовательностях.
 +
Также заметил, что многие из обладателей такого набора не используют RU и UA в
 +
равной степени &#8212; в таких случаях одна из них является основной (работа с
 +
основной документацией, деловая переписка, бухгалтерия и т. д.), а другая
 +
применяется лишь в редких случаях (некоторые поисковые запросы,
 +
регламентированные документы, отчёты и т. д.).
 +
 
 +
Зачем постоянно держать раскладку, которая нужна не всегда да и отличается от
 +
основной лишь несколькими символами? А незачем &#8212; можно перенести эти самые
 +
символы на третий уровень в основную раскладку! Для случаев, когда UA является
 +
основной раскладкой, а эндемичные буквы русского алфавита (Ё, Ъ, Ы и Э) нужны
 +
лишь изредка, решение существует уже давно &#8212; это Украинская Unicode раскладка. А
 +
вот для тех, у кого основная раскладка &#8212; RU (к числу которых отношусь и я)
 +
решение отсутствовало.
 +
 
 +
== Что за зверь? ==
 +
[[Изображение:RUU_Layout.png|right|thumb|500px|
 +
'''Схема Русско-украинской совмещённой раскладки. '''
 +
]]
 +
 
 +
Базирующаяся на русской стандартной раскладке, по существу представляет собой
 +
&#171;зеркальное&#187; отражение Украинской Unicode раскладки с незначительной
 +
корректировкой (&#171;&#1168;&#187; переехала с &#171;гуляющей&#187; от модели к модели клавиши <BKSL> в
 +
интуитивно понятное место &#8212; к своей старшей сестре &#171;Г&#187;) и расширением набора
 +
часто используемых символов. Присутствие в раскладке белорусского краткого &#171;у&#187;
 +
(&#1038;&#1118;) &#8212; делает её интересной и для носителей этого языка.
 +
 
 +
== Преимущества. ==
 +
* Легко настраивается &#8212; просто выбираете из списка раскладок (не надо никаких дополнительных клавиатурных примочек, kkbswitch'ей и прочего снаряжения).
 +
* Отпадает необходимость держать три раскладки &#8212; нужные буквы всегда под рукой.
 +
* Быстрый доступ к часто используемым символам.
 +
* Xneur в диком восторге.
 +
 
 +
== Кому не надо. ==
 +
Тем, кто использует RU и UA приблизительно в равных соотношениях эта раскладка
 +
может не представлять особого интереса.
 +
 
 +
== Трудности перевода ==
 +
Описание RUU в английском варианте xkeyboard-config выглядит так:
 +
'''&#171;Russian (with Ukrainian-Belorussian layout)&#187;'''
 +
 
 +
<small>
 +
'''ПРИМЕЧАНИЕ:''' Первоначальное описание ''[Russian (with UKR and BEL layout)]'' было
 +
изменено по причине неочевидности для многих пользователей сокращений UKR и BEL
 +
в предыдущем варианте, и возникновения казусов: из-за того, что BEL указан в
 +
верхнем регистре его восприняли не как предполагалось &#171;bel&#187;=&#171;Belarusian&#187; (ISO
 +
639-3), а как &#171;BEL&#187;=&#171;Belgium&#187; (ISO 3166-1 alpha-3), в результате чего получалась
 +
диковинная Русско-украинско-бельгийская раскладка.
 +
</small>
 +
 
 +
 
 +
Переводы на &#171;языки-участники&#187; выглядят таким образом:
 +
* '''RU''': Русская (с укр. и беларус. буквами на 3-ем уровне)
 +
* '''UA''': Рос&#1110;йська (з укра&#1111;нськими л&#1110;терами на 3-му р&#1110;вн&#1110;)
 +
* '''BY''': Руская (з беларуск&#1110;м&#1110; л&#1110;тарам&#1110; на 3-&#1110;м узро&#1118;н&#1110;)
 +
 
 +
<small>
 +
'''ПРИМЕЧАНИЕ:''' Белорусский перевод существует только в виде рекомендации, поскольку
 +
на данный момент в Белорусской команде переводчиков (translationproject.org)
 +
всего один активный участник на 182 проекта <sup>[http://translationproject.org/team/be.html]</sup>
 +
и для xkeyboard-config перевода не существует вовсе.
 +
</small>
 +
 
 +
 
 +
Что за странный перевод на украинский и белорусский? Привожу аргументация &#171;странного&#187;
 +
перевода из его обсуждения с Украинской Translation team:
 +
<blockquote>
 +
На мой взгляд, перевод на определённый язык должен передавать суть объекта
 +
перевода любым способом, но максимально эффективным для понимания посредственным
 +
носителем этого языка, и нести только необходимую для него информацию. Перевод:
 +
если язык операционной системы &#8212; украинский, то пользователю такой системы будет
 +
глубоко безразлично присутствие белорусских букв (на самом деле одной
 +
единственной) на третьем уровне, точно также, как и белорусу в аналогичной
 +
ситуации &#8212; присутствие украинских букв; в то время как пользователь с русским
 +
языком ОС может оказаться как украинцем так и белорусом, поэтому должен быть
 +
проинформирован о наличии обоих языков.
 +
</blockquote>
 +
 
 +
<small>
 +
'''ОРИГИНАЛ (укр.):''' На м&#1110;й погляд, переклад на певну мову ма&#1108; передавати суть об&#8217;&#1108;кта
 +
перекладу _будь-яким_ чином, але максимально ефективним для розум&#1110;ння перес&#1110;чним
 +
нос&#1110;&#1108;м ц&#1110;&#1108;&#1111; мови, &#1110; нести лише необх&#1110;дну для нього &#1110;нформац&#1110;ю. Переклад: якщо
 +
мова операц&#1110;йно&#1111; системи &#8212; укра&#1111;нська, то користувачу тако&#1111; системи буде глибоко
 +
байдуже на наявн&#1110;сть б&#1110;лоруських л&#1110;тер (насправд&#1110; одн&#1110;&#1108;&#1111; &#1108;дино&#1111;) на третьому
 +
р&#1110;вн&#1110;, так само, як &#1110; б&#1110;лорусу &#8212; в аналог&#1110;чн&#1110;й ситуац&#1110;&#1111; &#8212; на укра&#1111;нськ&#1110; л&#1110;тери,
 +
в той час як користувач з рос&#1110;йською мовою ОС може виявитись як укра&#1111;нцем, так &#1110;
 +
б&#1110;лорусом, тому повинен бути про&#1110;нформованим про наявн&#1110;сть обох мов.
 +
</small>
 +
 
 +
== Как это настроить? ==
 +
По воле майнтейнера xkeyboard-config, место RUU (до подтверждения её полезности
 +
и популярности) было определено в ''extras'', так что есть некоторые нюансы.
 +
 
 +
===  setxkbmap и Xkbmap ===
 +
Самым быстрым способом будет выполнение следующей команды:
 +
 
 +
<code>
 +
$ setxkbmap -layout us,ru -variant ,ruu
 +
</code>
 +
 
 +
&#8212; это самый простой пример, лишённый дополнительных настроек, таких как: модель
 +
клавиатуры, клавиши-модификаторы и т. д. Кому надо &#8212; &#171;man setxkbmap&#187; в руки (а
 +
&#171;-options&#187; можно подсмотреть в ''/usr/share/X11/xkb/rules/*.lst'').
 +
Моя команда, к примеру, выглядит так:
 +
 
 +
<code>
 +
$ setxkbmap -layout us,ru -variant ,ruu -option grp:alt_shift_toggle,grp:rctrl_switch,nbsp:level3,lv3:ralt_switch -model logicd
 +
</code>
 +
 
 +
Чтобы система стартовала с этими настройками, указанную строку (без  setxkbmap)
 +
надо поместить в ''/etc/X11/xinit/Xkbmap'' &#8212; для всех пользователей либо в ''~/.Xkbmap''
 +
&#8212; для текущего пользователя (последний вариант считается более правильным):
 +
 
 +
<code>
 +
$ cat << EOF >> ~/.Xkbmap
 +
-layout us,ru
 +
-variant ,ruu
 +
-option grp:alt_shift_toggle,grp:rctrl_switch,nbsp:level3,lv3:ralt_switch
 +
-model logicd
 +
EOF
 +
</code>
 +
(опции можно размещать в разных строках).
 +
 
 +
Результат:
 +
<code>
 +
$ cat ~/.Xkbmap
 +
-layout us,ru  <small>''# выбор раскладки (в данном случае США и РФ)''</small>
 +
-variant ,ruu  <small>''# выбор вариантов раскладки (для США выбран вариант по умолчанию, для РФ &#8212; вариант RUU)''</small>
 +
-option grp:alt_shift_toggle,grp:rctrl_switch,lv3:ralt_switch  <small>''# настройки:
 +
        ''# grp:alt_shift_toggle &#8212; переключать раскладки комбинацией Alt+Shift;
 +
        ''# grp:rctrl_switch &#8212; переключить раскладку пока нажат правый Ctrl (очень удобно для быстрого добывания символов из соседней раскладки);
 +
        ''# nbsp:level3 &#8212; неразрывный пробел на третьем уровне;
 +
        ''# lv3:ralt_switch &#8212; включать третий уровень раскладки пока нажат правый Alt).''</small>
 +
-model logicd  <small>''# модель клавиатуры (в данном случае это Logitech Cordless Desktop)''</small>
 +
</code>
 +
 
 +
 
 +
Есть ещё опции управления индикаторами, настройки цифровой клавиатуры, поведения
 +
различных клавиш и т. д., которые в изобилии водятся в
 +
''/usr/share/X11/xkb/rules/*.lst''  и только и ждут, чтобы на них обратили внимание.
 +
 
 +
Описанный выше метод с файлом конфигурации Xkbmap работает в том случае, если
 +
Ваш DE не берёт на себя обязанность настройки раскладок.
 +
 
 +
=== GNOME ===
 +
В gconf-editor необходимо активировать параметр
 +
''/desktop/gnome/peripherals/keyboard/general/loadExtraItems'', после чего
 +
дополнительные раскладки из &#171;extras&#187; (выделенные курсивом) появятся в диалоге
 +
выбора раскладок (''Система / Параметры / Клавиатура'' или запуск
 +
<small>gnome-keyboard-properties</small>).
 +
 
 +
RUU будет доступна на вкладке ''&#171;По стране&#187;'' для Российской Федерации, а на вкладке
 +
''&#171;По языку&#187;'' для русского, украинского и белорусского языков.
 +
 
 +
=== KDE4 ===
 +
Благодаря Andriy Rysin [arysin at gmail.com] с версии 4.6.3 дополнительные
 +
раскладки стали доступны (и без всяких переключателей) в ''&#171;Параметры KDE / Устройства ввода / Клавиатура / Раскладки&#187;''
 +
(быстрее выполнить <small>kcmshell4 kcm_keyboard</small>).
 +
 
 +
Вариант RUU будет доступен при выборе русского, украинского или белорусского
 +
языка и русской раскладки.
 +
 
 +
=== Altlinux Alterator ===
 +
Он же &#8212; &#171;Центр управления системой&#187; &#8212; пока не умеет <sup>[https://bugzilla.altlinux.org/show_bug.cgi?id=25603]</sup>.
 +
 
 +
=== Windows / Mac OS ===
 +
Добровольцы приветствуются.
 +
 
 +
 
 +
== Как это работает? ==
 +
 
 +
[[Изображение:Keyboard_layout_Key_zones_definition.png|right]]
 +
Клавиши на представленных схемах клавиатурных раскладок делятся на следующие
 +
зоны:
 +
:;нижняя левая: символ в нижнем регистре (простое нажатие на клавишу);
 +
:;верхняя левая: символ в верхнем регистре (нажатие на клавишу с зажатой Shift);
 +
:;нижняя правая: символ третьего уровня в нижнем регистре (нажатие на клавишу с зажатой клавишей LV3);
 +
:;верхняя правая: символ третьего уровня в верхнем регистре (нажатие на клавишу с зажатыми LV3 и Shift).
 +
 
 +
Клавишей LV3 по умолчанию является Правый Alt. Для setxkbmap и Xkbmap она
 +
определяется опцией &#171;-option lv3:&#187;, варианты которой можно подсмотреть так:
 +
<code>
 +
$ grep lv3 /usr/share/X11/xkb/rules/base.lst
 +
  lv3                  Key to choose 3rd level
 +
  lv3:switch          Right Ctrl
 +
  lv3:menu_switch      Menu
 +
  &hellip;
 +
</code>
 +
 
 +
В KDE4 это также можно настроить всё в том же <small>kcmshell4 kcm_keyboard</small> на
 +
вкладке ''&#171;Дополнительно&#187;'', а в GNOME &#8211; ''Система / Параметры / Клавиатура'' (или
 +
запуск <small>gnome-keyboard-properties</small>) ''> Раскладки / Параметры раскладки / Клавиша для выбора 3-го ряда''.
 +
 
 +
== Как запомнить, что и где. ==
 +
[[Изображение:RUU_Layout_transparent.png|right|thumb|500px|'''Схема Русско-украинской совмещённой раскладки (прозрачный градиент).''']]
 +
[[Изображение:RUU_Wallpaper_preview.jpg|right|thumb|500px|'''Обои со схемой Русско-украинской совмещённой раскладки. (Оригинал 1680&times;1650<sup>[http://www.10pix.ru/img1/156924/4678516.jpg]</sup>)''']]
 +
 
 +
На первых этапах работы с новой раскладкой необходимо, чтобы её схема была
 +
постоянно на виду. Для себя я решил этот вопрос так: залил схему раскладки
 +
нехитрым прозрачным градиентом и без претензий на гениальный дизайн налепил её
 +
на любимые обои одного из рабочих столов.
 +
 
 +
 
 +
= Материалы =
 +
 
 +
Предоставляю исходные изображения этой статьи в векторном формате *.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. Схема раскладки клавиатуры &#171;Украинская &#8212; Unicode&#187;: [[Изображение:UA_Unicode_Layout.svg.zip]]

Текущая версия на 17:32, 30 января 2014

Русско-украинская совмещённая раскладка (RUU: «Russian-Ukrainian keyboard layout with additional Unicode symbols» или проще «Russian-Ukrainian United keyboard layout») — русская раскладка, содержащая в третьем слое буквы украинского и белорусского алфавитов, а также часто используемые Юникод-символы.

Поставляется xkeyboard-config с версии 2.5.


Вступление

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

Неполитический аспект.

Схему, которая определяет основной набор вариантов языковых раскладок страны, условно можно представить так:

страна >> народы >> языки >> раскладки

Ярким примером является российский «набор», содержащий следующие дополнительные варианты раскладок: Башкирская, Калмыцкая, Коми, Осетинская, Татарская, Удмуртская, Чувашская, Якутская и Сербская (правда, последний вариант немного не вписывается в приведённую схему). Такая же ситуация справедлива и для других стран, в то время как Украина, имеющая два основных языка — русский и украинский (причём в приблизительно равных пропорциях [2]), не имеет русского варианта раскладки (rstu_ru, по причинам, которые будут приведены далее, не в счёт).

О стандартах.

Сравнение раскладок клавиатуры, описанных государственными стандартами РСТ УССР 2019-91 и ДСТУ 3470-96.
«Синий» — значение для украинской раскладки согласно РСТ УССР 2019-91;
«Красный» — значение для русской раскладки согласно РСТ УССР 2019-91;
«Зелёный» — изменения, внесённые стандартом ДСТУ 3470-96.

На момент написания статьи украинская раскладка содержит всего два варианта, соответствующих государственному стандарту — это 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]).


Особенности стандартов
  1. Знаки пунктуации вынесены в первый ряд алфавитно-цифрового поля в нижнем регистре поэтому цифры придётся добывать при помощи Shift, и ещё, в процессе привыкания, каждый раз радоваться выскакивающей «Ё», вместо привычной точки или запятой.
  2. Соседство эндемичных букв осуществляется по разным затейливым принципам:
  • одинаковые звуки: [укр. «И»] = [рус. «Ы»], [укр. «І»] = [рус. «И»];
  • одинаковые умляуты: «Ї» и «Ё»;
  • отражённые символы «Є» и «Э»;
  • похожие хвостики: «Ґ» и «Ъ».

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

И так, на момент написания этой статьи, действующему Государственному стандарту Украины не соответствует ни один из вариантов раскладки. Однако этот факт никого не расстраивает, впрочем, как и самого автора.


Украинская — Unicode.

Схема раскладки клавиатуры «Украинская — 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].

Windows / Mac OS

Добровольцы приветствуются.


Как это работает?

Keyboard layout Key zones definition.png

Клавиши на представленных схемах клавиатурных раскладок делятся на следующие зоны:

нижняя левая
символ в нижнем регистре (простое нажатие на клавишу);
верхняя левая
символ в верхнем регистре (нажатие на клавишу с зажатой 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-го ряда.

Как запомнить, что и где.

Схема Русско-украинской совмещённой раскладки (прозрачный градиент).
Обои со схемой Русско-украинской совмещённой раскладки. (Оригинал 1680×1650[1])

На первых этапах работы с новой раскладкой необходимо, чтобы её схема была постоянно на виду. Для себя я решил этот вопрос так: залил схему раскладки нехитрым прозрачным градиентом и без претензий на гениальный дизайн налепил её на любимые обои одного из рабочих столов.


Материалы

Предоставляю исходные изображения этой статьи в векторном формате *.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