====== Differences ====== This shows you the differences between two versions of the page.
— |
computing:xkb_cyrilik_translit [16.06.2010 19:35] (current) georg |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Russian Keyboard Emulation ====== | ||
+ | Since my wife is Russian I am writing in Cyrillic from time to time. However, not often enough to | ||
+ | learn the Russian keyboard layout. There are several options available under X (Linux) | ||
+ | which did not really satisfy me. The one that come closest is a phonetic version of the RU keyboard (variant: phonetic). There is also one from the US keyboard called rus. Both not brilliant in my eyes. | ||
+ | The point is that I got already a bit used to a Latin-Cyrillic transliteration that is used | ||
+ | by the Russians if they have to use Latin characters, e.g. with texting (SMS). You can find it at www.translit.ru. | ||
+ | |||
+ | Looks like a challenge to go for. | ||
+ | |||
+ | ===== Technical Details ===== | ||
+ | To write a keyboard layout for xkb, the X-keyboard tool is normally very easy, but now | ||
+ | comes the problem: consider the following key assignments: | ||
+ | |||
+ | j -> й | ||
+ | jo -> ё | ||
+ | ja -> я | ||
+ | |||
+ | And there are plenty of such things. | ||
+ | That means I need j to be a dead key. However we want to use j also as a | ||
+ | normal key. My workaround is to define a lot of compose rules, | ||
+ | which are normally used to create characters with ascents (e.g. german keyboard layout) | ||
+ | This means for any combination of j with another key X being | ||
+ | not "o" and "a" one has to create "йY" where Y is the corresponding character for key X. | ||
+ | Since one needs a rule for each other key on the keyboard for all the dead keys | ||
+ | this asks for a generating script. | ||
+ | The perl-script can be downloaded {{:computing:translitcompose.pl|here}}. | ||
+ | |||
+ | ===== Installation ===== | ||
+ | The installation is pretty easy. You download the {{:computing:us|us}} file and store it under | ||
+ | /use/share/X11/xkb/symbols. (You need superuser permissions for that.) | ||
+ | Then you also need to Compose rule which are in {{:computing:xcompose.gz|this zip archiv}}. | ||
+ | Unpack it and move to ~/.XCompose. | ||
+ | Then you have to select the us keyboard with variant "translit" and you are done. I use KDE keyboard tool for it | ||
+ | which works great. You can also set an alternative switching key for the keyboard layouts in your shortcut manager. In KDE this is in ''System Settings->Keyboard and Mouse''. Please note that you have to restart you X-applications | ||
+ | in order to activate the compose rules. | ||
+ | ===== Usage ===== | ||
+ | It really works like on www.translit.ru with a few little differences. First of all you can force a dead key to show by either pressing ''q''. The key ''q'' is not used otherwise. You need this if multiple deadkeys follow eachother, e.g. in two c in Россия (meaning Russia). Here is the translation table. | ||
+ | |||
+ | ^a^b^v^g^d^e^jo^zh^z^i^j^k^l^m^n^o^p^r^s^t^u^f^h,x^c^ch^sh^w^#^y^'^je^ju^ja^ | ||
+ | |а|б|в|г|д|е|ё |ж |х|и|й|к|л|м|н|о|п|р|с|т|у|ф|х |ц|ч |ш |щ|ъ|ы|ь|э|ю|я| | ||
+ | |||
+ | здорово! | ||
+ | |||
+ | {{tag>computing perl}} |