Стандартная тулза - та ещё жопа. Есть подозрение, что во многих дистрибутах (в частности, в редхатах ) без приложения напильника она не работает.
А я сделал так:
в X86Config:
Option "XkbKeymap" "xfree86(ru)"
в /usr/X11R6/lib/X11/xkb/keymap/xfree86:
xkb_keymap "ru" {
xkb_keycodes { include "xfree86" };
xkb_types { include "default" };
xkb_compatibility { include "default+leds(scroll)"}; # юзаем Scroll Lock как индикакер раскладок
xkb_symbols { include "en_US(pc105)+ru(winkeys)+inet(mitsumi)+group(alt_shift_toggle)" };
# юзаем win-клавиши, дополнительные инет-клавиши и <alt><shift> как переключатель
xkb_geometry { include "pc(pc102)" };
};
inet(mitsumi) - это дополнительная конфига, чтоб инет-клавиши работали. Делается таким образом: переключаешься в текстовый(именно текстовый!) режим, жмёшь первую клавишу, смотришь /var/log/messages - там появится строка "Unknown scancode ## " - это и есть код клавиши. Первый байт (0Е) отбрасываешь, второй записываешь. Выяснив коды всех клавиш, лезешь в файл /usr/X11R6/lib/X11/xkb/symbols/inet , берёшь там любую существующую конфигурацию и правишь под свои сканы - думаю, значения параметров типа XF86AudioPlay затруднений в понимании не вызовут. А еси посмотреть получше - возможно, что твоя клава там уже есть.
Единственный недостаток данной схемы - это то, что устанавливаемая раскладка глобальна по умолчанию, т.е. не зависит от переключения между окнами. Сколько я уже добрых слов сказал в адрес этой хрени - не сосчитать
но в текущем дистрибуте это не победить..
По желанию - можно не юзать keymap, а соответствующие строки воткнуть напрямую в X86Config. Я так делал, но на другой машине - здесь примера нет.