Нерусская кириллица для X Window

Все описанное приложимо не только для русского языка. Надо изменить только клавиатурные раскладки, ну и шрифты, естественно, будут иметь другую кодировку.

Возможно, найденные вами шрифты окажутся в отличной от нужной вам кодировки. Для перекодировки BDF-шрифтов можно использовать программу trbdf из пакета trscripts.

Эта программа поддерживает кодовые страницы ibm855, ibm866, iso-8859-5, koi8-c, koi8-r, koi8-u, mac-cyrillic, mik, unicode и ecma-cyrillic. Символы, отсутствующие в исходной кодировке, аппроксимируются, так что её можно использовать, например, для генерации KOI8-U шрифтов из KOI8-R.

Начиная с версии 4.0.3 XFree официально поддерживает кодировку cp1251. Если версия вашей XFree меньше 4.0.3, то поддержку cp1251 можно получить тремя способами:

  1. Использовать дистрибутив, поддерживающий cp1251.

  2. Патчить XFree. Патч поддержки cp1251 для XFree 3.3.5 и 4.0 сделан Алексеем Новодворским.

  3. Идеологически неверное решение, но работает везде и легко осуществимо: Добавьте в конце файла locale.alias (обычно он находится в каталоге /usr/X11R6/lib/X11/locale) строку вида

    be_BY.CP1251            en_US.ISO8859-1
    

    Конечно, вместо be_BY.CP1251 здесь Вы можете поставить строку для используемой Вами локали. (Однако имейте ввиду, что имеющаяся уже в этом файле строка о Болгарской локали bg_BG неверна и её нужно удалить.)

Если для кириллизации клавиатуры используете метод через утилиту xmodmap, то этим все и кончится. Если же вы захотите использовать Xkb метод, то в клавиатурной раскладке вместо символических имён нужно использовать коды символов согласно cp1251. Например, для белорусской раскладки вместо

    key <AD01> {        [               q,               Q      ],
                        [ Cyrillic_shorti, Cyrillic_SHORTI      ]       };

нужно использовать

    key <AD01> {        [               q,               Q      ],
                        [            0xe9,            0xc9      ]       };

Замечание. Только версии XFree после 4.0.0 поддерживают KOI8-U. Если у вас отсутствует поддержка KOI8-U, а вам нужна именно эта кодировка, то вы можете воспользоваться всем вышеописанным про cp1251.