| |||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ю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. Во-вторых, можно решить вопрос более глобально, создав некую утилиту, которая преобразует выбранные пользователем комбинации клавиш в нужные ему знаки, используемые прикладными программами. Оба способа имеют плюсы и минусы. Плюс способа с использованием макросов – в его относительной простоте. Для того, чтобы настроить программу для получения нужных символов, не нужно знать основ программирования. Кроме того, манипуляции остаются на уровне отдельных прикладных программ, и влияние на всю остальную систему маловероятно. Это, однако, является и минусом. Макросы для каждой отдельной программы необходимо создавать заново, и в какой-то момент освоение еще одного механизма макросов, для еще одной прикладной программы, теряет свою привлекательность. Унификация пользовательского интерфейса (набора «горячих» клавиш) возможна, но имеет свои пределы.
Однако самый радикальный способ – это переход на другую операционную систему, в данном случае UNIX или Linux, в которых существует иной, на мой взгляд более простой и понятный, механизм присвоения физическим клавишам генерируемых ими символов (ключевое слово – xmodmap). К слову сказать, дистрибутив Linux Ubuntu по простоте свoего использования и настройки вплотную приблизился к Windows. Не стоит забывать, что xmodmap существует и в Mac OS X. Краткая характеристикаФункциональность Ю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, были подвергнуты тщательному тестированию, автор не может гарантировать отсутствие в них ошибок. По этой причине использование программы может осуществляться пользователем лишь при условии готовности нести риск этого. Сообщения об ошибках приветствуются.
| |||||||||||||||||||||||
| |||||||||||||||||||||||