Клавиши управления курсором прямо в раскладке

Ранее для добавления удобных клавиш управления курсором на основном алфавитном блоке клавиатуры использовалась утилита xbindkeys совсместно с xvkbd. К сожалению, это решение оказалось практически неработоспособным в Unity, который используется в Ubuntu, начиная с версии 11.04.

Сейчас придумал более совершенный способ, который будет работать во всех операционных системах. Заключается он в том, что мы вешаем клавиши управления курсором прямо в раскладку на место клавиш с нажатой AltGr (используется для дополнительных букв национальных алфавитов, не помещающихся в стандартную клавиатуру). Работает это решение во всех программах, без задержек (в отличие от прошлого решения), позволяет использовать совместно с этими клавишами любые модификаторы, навроде Ctrl и Shift. Единственный минус — придется модифицировать все используемые вами раскладки.

Напоминаю используемую мною схему расположения клавиш:

В Microsoft Windows в раскладках нельзя использовать эмуляцую спецклавиш, только различные символы из юникод-таблицы можно добавить, поэтому нужна программа, которая перехватывает нажатия клавиш и переназначает по-своему, например KeyMan (ссылка на сайт радиолюбителя Steve Key, так как официальный сайт видимо уже давно сломался).

Пример конфигурирования в Ubuntu Linux файлов с раскладками, например файл /usr/share/X11/xkb/symbols/ru

partial hidden alphanumeric_keys
xkb_symbols «common» {
    key	<AD07> {	[    Cyrillic_ghe,    Cyrillic_GHE, Home, Home	]	};
    key	<AD08> {	[    Cyrillic_sha,    Cyrillic_SHA, Up, Up	]	};
    key	<AD09> {	[  Cyrillic_shcha,  Cyrillic_SHCHA, End, End	]	};
    key	<AD10> {	[     Cyrillic_ze,     Cyrillic_ZE, Prior, Prior	]	};
    //...

    key	<AC07> {	[      Cyrillic_o,	Cyrillic_O, Left, Left	]	};
    key	<AC08> {	[     Cyrillic_el,     Cyrillic_EL, Down, Down	]	};
    key	<AC09> {	[     Cyrillic_de,     Cyrillic_DE, Right, Right	]	};
    key	<AC10> {	[    Cyrillic_zhe,    Cyrillic_ZHE, Next, Next	]	};
    //...

    key	<AB07> {	[Cyrillic_softsign,Cyrillic_SOFTSIGN, Delete, Delete	]	};
    key	<AB08> {	[     Cyrillic_be,     Cyrillic_BE, Insert, Insert	]	};
    //...

    include «level3(ralt_switch)»
};

/usr/share/X11/xkb/symbols/us

partial hidden alphanumeric_keys 
xkb_symbols «common» {
    key <AD07> { [         u,	U, Home, Home               ] };
    key <AD08> { [         i,	I, Up, Up               ] };
    key <AD09> { [         o,	O, End, End               ] };
    key <AD10> { [         p,	P, Prior, Prior               ] };
    //...
    key <AC07> { [         j,	J, Left, Left               ] };
    key <AC08> { [         k,	K, Down, Down               ] };
    key <AC09> { [         l,	L, Right, Right               ] };
    key <AC10> { [ semicolon,    colon, Next, Next           ] };
    //...
    key <AB07> { [         m,	M, Delete, Delete               ] };
    key <AB08> { [         comma,	less, Insert, Insert               ] };
    //...
    include «level3(ralt_switch)»
};

13 октября 2011

keyboard linux idea