ЮNICODE Keyboard Enhancer (ЮNIK)
Type Unicode characters everywhere
Sometimes you need to type characters that aren’t available on the keyboard. That can be additional Latin letters (e.g., German Umlaute or French Accents), various symbols which make the text look more refined (–, —, «,», §, №, etc.), currency signs (₫, ₡, ₢, ₯, etc.), funny smiles (☺, ☻), diacritical marks like ́, ̃, ̊, etc., etc., etc.
The simple and known methods by means of (1) the Windows Character Map (Copy+Paste) or (2) the key combination <Alt>+<Code> (the code is to be typed on the numeric keypad; by notebooks without it, the numeric keypad usually can be emulated by Fn-key) are too slow. Changing to a different keyboard layout is also not the best way to solve the problem because in this case some keys can change their locations, e.g., on German keyboards Y and Z are swapped as well as many other keys.
Most users would be satisfied if they could use shortcuts or hotkeys, like the combination <modifier key>+<character key>. For example, the combination of <modifier key>+<A> generates the small letter «a Umlaut» (ä), <modifier key>+<Shift>+<A> generates the capital letter «A Umlaut» (Ä), <modifier key>+<P> generates the section or paragraph sign (§), etc. The use of shortcuts allows you to type in German or French at the speed equivalent to the use of the German or French keyboard layout but without changing in position of standard characters.
There are many ways to do so. First, you can create a macro if the application supports that (e.g., OpenOffice or Notepad++). Second, you can provide a «global» solution by writing a tool that will translate shortcuts to characters for input everywhere.
Both methods have (dis-)advantages. The advantage of the macro-method is that it’s easy. You don’t need to have any programming skills to record a macro. Moreover, changes hit only the application that gets a new macro. The (maybe unwished) influence on other programs and the OS is nearly impossible. But this is also a disadvantage. You must record or write macros for each application from scratch. One day you don’t have fun to do this again. Giving the user interface more uniformity, that means the use of one and the same set of shortcuts, is possible but has limits.
The second method has also many variants. A very radical solution is creating a new keyboard driver (or, more precisely, a new keyboard layout). For doing so, you can use the free tool Microsoft Keyboard Layout Creator: http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx; see an example of use. This is the preferable method if your set of non-standard symbols is constant and you needn’t change it often. If the opposite is true, you can take a look at the also free tool ЮNICODE Keyboard Enhancer (ЮNIK), which is presented at this page. On the axis «purity and range of the solution», it is somewhere between macros and an own keyboard driver.
The X Window System, used in UNIX/Linux, provides similar functionality for making assignments/remapping keys (see xmodmap and xkb).
In short, the functionality of ЮNIK can be described as «Third» (or «Second», it depends on the enumeration method) Shift. After making a change to the Windows registry and starting ЮNIK you can use the ЮNIK-related modifier key combined with visible (= printable) character keys for generating any characters from the set Unicode-16. This set includes almost 65 K of characters, among them additional Latin letters, Cyrillic, Arabic, (various) Indian alphabets, DOS-pseudographics, currency signs and a lot of other things.
The Character Map, which is provided with Windows, can give you first impression of Unicode. For this purpose you should use a font providing a more extended set of characters like Lucida Sans Unicode or Arial Unicode MS.
The downloadable zip-file contains all the necessary files:
The 64-bit version of ЮNIK has been compiled for Windows 7 und works only with 64-bit applications. All the information below and the file names are valid for both the 32-bit version and the 64-bit version of this program as far as this is compatible with the previously mentioned limitation.
The first step is remapping any key to the special, ЮNIK-related modifier key. The «modifier key» in the sense of this description is not a particular key, but rather a function of a key. Generally you can assign this function to (almost) every key that has its own scancode. After the remapping the key will lose its original function (you can undo this change). This is the reason for taking a key that isn’t used intensively or that is double present. For example, this could be one of the following four keys: (1) Left or (2) Right Windows, (3) Application, (4) Right Ctrl. You have to change an item in the Windows registry for remapping. If you’ve chosen one of the keys mentioned above, you can use the provided tool install.exe for this purpose. Important: Under Windows Vista and Windows 7 you must execute install.exe as Administrator. After the «Change» button has been pressed the computer must be restarted.
The tool install.exe can also be used to add ЮNIK to programs that run automatically after every launching of Windows. Whether you do that or not is a question of comfort because you can manually start and exit ЮNIK at any time. install.exe provides limited capability for changing the Windows registry and works well only in standard situations. If your computer already uses a complex key remapping scheme, install.exe may ask you to change the registry manually or with a special tool. Some technical details can be found in readme_e.txt.
How to work
After the file unik.exe has been started the program’s icon – the character «Ю Umlaut/Trema» on the red background – appears in the system tray (= notification) area (by default in the bottom right hand corner of the desktop). In order to type the wished character, press and hold the modifier key and then press the character key that has been selected for this purpose by configuring ЮNIK.
The program doesn’t test whether the modifier key has been remapped or not. The user should take care for that. You can use the tool KeyCode.exe for this purpose. The correctly remapped modifier key produces a value of 125 in the right field of the area «Virtual-key Code».
Right mouse click on the program’s icon starts a popup menu. The command «Config» calls the dialog showing the assignment map. You can manage the assignment settings here.
Data about the character typed on the keyboard are to be placed into the field (better: fields) «Input». Data about the character that you wish to appear in your program are to be placed into the field «Output». The single fields contain characters themselves, the fields of four symbols contain their hexadecimal codes according to Unicode-16. You can enter a character or its code. The corresponding field will be changed automatically. For input you can use the keyboard or you can paste data from the clipboard. In order to get the codes, you can consult the Windows Character Map or any Internet sources, e.g., http://unicode.org/charts, http://www.utf8-chartable.de or http://www.alanwood.net/unicode. If your browser has displayed an interesting symbol, you can simply copy it to the clipboard and then paste into the single field «Output».
What characters can be typed on the keyboard depends on the keyboard unit or layout. For example, the US-American or the Russian keyboard hasn’t got specific German letters, which for this reason can be used only in the field «Output». And vice versa, if you have a German keyboard (or have selected the German keyboard layout), you can use German letters in the field «Input» in order to trigger the insertion of wished characters.
[If you needn’t switch between many keyboard layouts, you’d better not read this paragraph except the two last sentences, because it might be misleading to people without the appropriated background]. By the way, this is an important idea. ЮNIK works with characters/symbols and not with physical keys. That means, for example, if you insert the character «ä» in the «Input» field, the corresponding insertion by press of the key second to the right from «L» will work well only if your keyboard layout has been changed to the German format. The US-American layout has on this place the key with «"» and «’». If you switch between many layouts and want to use a special key for inserting one and the same character, you may have to set more then one assignment. Don’t forget that capital and small letters have different codes. In opposite to the right column (or columns), the double-entries on the left side are useless because the second, third, etc. entry cannot be selected.
When you have finished setting up an assignment, you have to confirm changes by pressing the «Change» button. The changed assignment map takes effect just after the dialog window has been closed, provided that you’ve pressed the «Save» button before. The assignments are stored in the file unik.ini, which can be edited manually (consult readme_e.txt).
Working under Linux
It has proved that ЮNIK works well under Wine/Linux. For remapping any key to your modifier key, you can use the tool/command xmodmap mentioned above. The following commands remap Left Windows key to the modifier key:
Of course, symbols can be typed only into another Windows applications that are also running under Wine, e.g., Notepad++. Symbols or text pieces can be transferred between Windows and Linux applications by using common clipboard commands of particular applications (e.g., <Ctrl>+<C>/<V>). The edit fields in the program KeyCode.exe shown on the screenshot are empty because Wine, at least in the version 1.1.42, seems not to support the Raw Input API.
ЮNIK works well with most Windows applications that support Unicode. Many older applications, especially 16-bit ones created for Windows 3.xx, don’t support Unicode. The effect of the use with such applications is uncertain, sometimes it’s positive, sometimes not (it could depend on the selected font script).
An implementation detail (a drawback, in fact) of the current version of ЮNIK is that the «Config» dialog cannot display some Unicode characters. In the case of some characters the list single fields or even the edit single field can display squares only. This is just a «cosmetic» defect because not the symbol «itself» is inserted but its code. If the code has been correctly defined, the character should be displayed by the destination application. In other words, the fact that the «Config» dialog cannot display some characters hasn’t any influence on typing. Otherwise among applications that generally support Unicode exist some that can do this better or worse. Installed fonts also influence the display capability. In my experience, Internet browsers display the largest amount of Unicode characters.
ЮNIK stores its settings in the file unik.ini. When security policies on your computer prevent the program from reading and/or writing, the affected functions do not work at all, or not properly. Using «Config» dialog you get feedback: If previously changed settings have been successfully saved, the «Save»-button changes status from enabled to grayed.
In spite to the fact that the executable files of ЮNIK have been extensively tested, they may contain «bugs», therefore the author cannot make any warranties. The software is licensed «as is». Suggestions and error reports are welcome.