| ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ЮNICODE Keyboard Enhancer (ЮNIK)Ввод символов Unicode в произвольной программеЗадачаПорой возникает необходимость в регулярном использовании нескольких знаков, отсутствующих на стандартной клавиатуре (например, американской или русской). Это могут быть дополнительные символы национальных алфавитов (немецкие умлауты и эс-цэт, французские аксанты и седиль). Могут это быть и другие знаки, скажем, (полу)длинное тире (–, —), знак параграфа (§), франко-русские кавычки («,», ‹, ›), знаки иностранных денежных единиц (₫, ₡, ₢, ₯, и т.д.) или смешные рожицы (☺, ☻). Любителям русской старины может понадобиться быстрая набивка дореформенных букв, таких как і, ѣ, ѳ, ѵ, или даже более древних: ѧ или ѯ. У кого-то может возникнуть необходимость в более интенсивном использовании надстрочных знаков, например, тривиального знака ударения «за́мок закрыли на замо́к» или чуть менее тривиальной тильды: [latɛ̃] (транскрипция слова «латинский» на французском).
Простые способы вставки с помощью (1) таблицы символов или (2) комбинации <Alt>+<код> (код набирается на цифровой клавиатуре; на ноутбуках без таковой, как правило, эмулируемой с помощью клавиши Fn) слишком трудоемки. Переключение на другую раскладку тоже устроит не всех, так как при этом происходит смена позиций и многих других символов. Например, на немецких клавиатурах буквы Z и Y расположены наоборот; многие служебные знаки также находятся на других позициях, причем – на мой взгляд – менее удобных (классический пример: важные для HTML-кодирования знаки < и >). Возможные решенияМногих пользователей устроило бы использование «горячих» клавиш (hotkeys), что выглядело бы следующим образом: Есть некий набор комбинаций клавиш, которые приводят к генерированию нужных символов. Например, <клавиша-модификатор>+<A> может генерировать строчную немецкую букву «a умлаут» (ä), <клавиша-модификатор>+<Shift>+<A> – заглавную (Ä), и т.д. Благодаря этим комбинациям при печати немецкого (французского и т.д.) текста достигается скорость, мало отличающаяся от использования национальной клавиатуры, а расположение латинских букв и служебных символов остается неизменным. Достичь этого можно несколькими способами. Во-первых, можно воспользоваться механизмом макросов, имеющимся в некоторых прикладных программах, например, Notepad++ и OpenOffice, см. http://www.law.net.ru/technologies/umlaute/index.htm. Во-вторых, можно решить вопрос более глобально, создав некую утилиту, которая преобразует выбранные пользователем комбинации клавиш в нужные ему знаки, используемые прикладными программами. Оба способа имеют плюсы и минусы. Плюс способа с использованием макросов – в его относительной простоте. Для того, чтобы настроить программу для получения нужных символов, не нужно знать основ программирования. Кроме того, манипуляции остаются на уровне отдельных прикладных программ, и влияние на всю остальную систему маловероятно. Это, однако, является и минусом. Макросы для каждой отдельной программы необходимо создавать заново, и в какой-то момент освоение еще одного механизма макросов, для еще одной прикладной программы, теряет свою привлекательность. Унификация пользовательского интерфейса (набора «горячих» клавиш) возможна, но имеет свои пределы.
Что касается второго, «глобального», способа, то и здесь возможны варианты. Вариант радикального решения – создание собственного драйвера клавиатуры (точнее раскладки). Для этого Microsоft предлагает специальную утилиту – Microsoft Keyboard Layout Creator (MKLC), которую можно бесплатно скачать с сайта компании: https://www.microsoft.com/en-us/download/details.aspx?id=102134. Образец того, что можно получить с ее помощью, показан на этой странице. Использование MKLC можно рекомендовать в тех случаях, когда набор нестандартных символов носит фиксированный характер и изменяется нечасто. Если регулярно возникает необходимость в быстром внесении новых знаков, то можно взглянуть на представленную ниже программу ЮNICODE Keyboard Enhancer (ЮNIK). По «чистоте» и «глобальности» решения она находится где-то посередине между макросами в отдельных программах и созданием драйвера клавиатуры. Операционные системы UNIX/Linux также предлагают функционально сравнимый механизм произвольного присвоения физическим клавишам генерируемых ими символов (ключевые слова – xmodmap, xkb). ![]() Краткая характеристикаФункциональность ЮNIK вкратце можно охарактеризовать как «третий» (или «второй», как считать) Shift. После некоторых манипуляций с реестром Windows и запуска ЮNIK клавишу-модификатор в комбинации с символьными клавишами можно использовать для генерации любых знаков из набора Unicode-16. В этот набор входят 65 килобайт символов (реально чуть меньше), в том числе подавляющее большинство букв национальных алфавитов, построенных на латинской основе, кириллица в разных видах, арабский, индийские алфавиты, ДОС-овская псевдографика, знаки денежных единиц и многое другое. ![]() Утилита «Таблица символов», идущая в поставке с Windows, дает определенное представление о возможностях Unicode. Сразу оговоримся, что для этой цели особенно годятся шрифты с максимальным набором символов, например, Lucida Sans Unicode или Arial Unicode MS. Установка программыНеобходимые файлы содержатся в zip-архиве unik.zip (или unik64.zip), который можно скачать с этого сайта:
Утилита install.exe может быть использована и для внесения ЮNIK в число программ, запускаемых автоматически при загрузке Windows. Захотите вы это сделать или нет – вопрос исключительно удобства, так как ЮNIK можно запускать и выгружать в любое время вручную. Нужно оговориться, что install.exe имеет ограниченную функциональность при работе с реестром и справляется лишь со стандартными задачами. Если на вашем компьютере уже действует сложная система переопределения клавиш, то, возможно, в этом случае реестр придется править вручную либо с помощью специальных программ. С механизмом переопределения клавиш можно ознакомиться в следующем материале, необходимые для этого технические детали приведены в файле readme.txt. Работа с программойПосле запуска файла unik.exe в системном трее (находящемся по умолчанию в правом нижнем углу экрана) появится значок программы – буква «Ю умлаут/трема» на красном фоне. Для вставки требуемого символа необходимо нажать на выбранную вами клавишу-модификатор и, не отпуская ее, на символьную клавишу, которая согласно схеме замен, вызывает генерацию нужного символа. Программа не осуществляет проверки, была ли назначена клавиша-модификатор, о чем пользователь должен позаботиться сам. Для проверки можно воспользоваться утилитой KeyCode.exe, после нажатия на клавишу-модификатор правое поле в сегменте «Virtual-key Code» должно принять значение «125». Настройка программы
В поле (точнее – поля) «Input» вносятся данные о символе, который вводится с клавиатуры. В поле «Output» вносятся данные о символе, который пользователь хочет получить. В одиночных полях содержатся собственно символы, в четырехзначных полях – их шестнадцатеричные коды согласно Unicode-16. Вводить можно либо сам символ, либо код. Другое поле при этом автоматически обновляется. Ввод можно осуществлять с клавиатуры, либо вставкой через буфер. Коды, а также сами символы можно получить из «Таблицы символов» либо из других источников информации о Unicode-16, например: http://unicode.org/charts, http://www.utf8-chartable.de или http://www.alanwood.net/unicode. Если ваш браузер показал какой-то интересный символ, то вы можете просто скопировать его в буфер и вставить в одиночное поле «Output». ![]() Какие символы могут вводиться с клавиатуры непосредственно, а какие нет, зависит от клавитуры и/или выбранной раскладки. Так на американской или русской клавиатуре нет умлаутов, которые по этой причине будут использоваться лишь в «Output» диалога «Config». Напротив, если у вас немецкая клавиатура (либо установлена немецкая раскладка), то вы можете использовать умлауты в «Input» как символы, которые будут приводить к генерации каких-то других знаков.
После редактирования каждая строка замены должна быть подтверждена командой «Change». Изменения вступают в силу сразу же после закрытия диалога при условии их предварительного сохранения командой «Save». Информация о заменах хранится в файле unik.ini, который может быть отредактирован вручную (см. readme.txt). Вопрос: Как быть, если вызываемые символы по каким-то причинам располагаются произвольным образом, в результате чего ассоциативные связи отсутствуют и запомнить схему расположения затруднительно? Работа под Линуксом
Естественно, программой, куда будут вставляться символы, может быть лишь другое приложение для Windows, также запущенное с помощью Wine, например, Notepad++. Обмен отдельными символами и фрагментами текста между приложениями Windows и нативными приложениями Linux осуществляется через буфер (clipboard) с помощью стандартных команд соответствующих приложений (например, <Ctrl>+<C>/<V>). Пустые поля программы KeyCode.exe на скриншоте вызваны тем, что, судя по всему, Wine, как минимум в версии 1.1.42, не поддерживает Raw Input API. Возможные ограниченияЮNIK работает с программами для Windows, поддерживающими Unicode. Многие старые прикладные программы, особенно 16-битные, написанные для Windows 3.xx, Unicode не поддерживают. Результат работы с такими программами будет непредсказуем, иногда позитивным, иногда – нет (многое зависит от выбранного шрифта/кодировки). Особенность (= недостаток) текущей реализации ЮNIK заключается в том, что диалог «Config» показывает не все знаки Unicode. В случае более редких, экзотических знаков, в одиночных полях строчек списка или даже в полях редактирования могут показываться квадратики, символизирующие неотображаемые символы. Это, однако, «косметический» недостаток, так как в нужном вам месте вставляется код символа. Если он определен верно, то символ, вполне возможно, будет отображаться. Иными словами, факт того, что какие-то символы не показываются в диалоге «Config», не оказывает никакого влияния на вставку символов в другие программы. Естественно, эти другие программы также имеют разные способности по отображению символов Unicode. Многое зависит и от версий шрифтов, установленных на компьютере. По моему опыту, наибольший спектр символов Unicode показывают браузеры.
Отсутствие гарантииХотя файлы, входящие в состав ЮNIK, были подвергнуты тщательному тестированию, автор не может гарантировать отсутствие в них ошибок. По этой причине использование программы может осуществляться пользователем лишь при условии готовности нести риск этого. Сообщения об ошибках приветствуются.
| ||||||||||||||||||||||
|