Дата последнего обновления: 2005-04-28
В этой статье описываются возможные способы "тонкой" настройки вашей
GNU/Linux-системы. Здесь отражён наш опыт работы с дистрибутивами
localedef -i ru_RU -f koi8-r ru_RU.koi8r
LC_CTYPE=ru_RU.koi8r
LC_COLLATE=ru_RU.koi8r
export LC_CTYPE LC_COLLATE
(Измените ru_RU.koi8r в соответствии с вашей locale, файл для которой должен быть скомпилирован (см. выше). Чтобы изменения вступили в силу необходимо заново войти в систему (logout/login)).
Совет. Лучше использовать кодировку KOI8-R. Не связывайтесь с кодировкой
CP1251 (
Во-первых, существует recode -- прекрасный инструмент для перекодировки, поддерживающий огромное количество кодировок. Для того, чтобы прочитать текстовый файл в "неродной" кодировке, удобно пользоваться следующей командой:
recode cp1251..koi8r < file.txt | less
Можно даже поместить подобную команду в скрипт, если вам приходится часто читать файлы в какой-то кодировке.
Во-вторых, для редактирования файлов в кодировках CP1251 и CP866 (а также многих других) можно пользоваться программой Emacs. См. Поддержка русского языка / Emacs.
SYSFONT="koi8u_8x16"
SYSFONTACM="koi8-r"
а также /etc/sysconfig/keyboard -- например так:
KEYBOARDTYPE="pc"
KEYTABLE="ru1"
(Возможно вам придётся указать другие названия файлов для шрифта / клавиатуры.)
Во время следующей перезагрузки вашей системы скрипт /etc/init.d/keytable прочитает и включит сделанные установки. Как переключаться между кириллицей / латинским режимом зависит от загруженной клавиатурной таблицы (keymap). Обычно назначенная клавиша указывается в начале файла клавиатурной таблицы. Можно также создать свою собственную клавиатурную таблицу, если вас не устраивают какие-либо из назначенных по умолчанию клавиш.
set input-meta on
set convert-meta off
set output-meta on
(Их значение описывается в man 3 readline).
И ещё один совет на эту тему: если вам надоела терминальная пищалка, её можно выключить следующей командой:
set bell-style visible
Заметьте, что это сработает только для программ, которые используют readline для терминального ввода.
Для того, чтобы можно было создавать и/или корректно отображать кириллические названия файлов в файловых системах FAT и ISO9660 (файловая система компакт-дисков), вам нужно настроить консоль (см. Поддержка русского языка / Консоль) и драйверы файловых систем. Чтобы смонтировать разделы vfat или iso9660 с кириллическими названиями файлов, передайте следующий параметр драйверу:
iocharset=XXXX
где XXXX нужно заменить на название нужной кодировки. Например, у меня прописаны следующие параметры в файле /etc/fstab для чтения и/или записи файлов с кириллическими названиями на гибких дисках и CD:
/dev/fd0 /mnt/floppy vfat user,noauto,iocharset=koi8-r 0 0
/dev/cdrom /mnt/cdrom iso9660 ro,user,noauto,iocharset=koi8-r 0 0
Прим. Чтобы можно было воспользоваться этими настройками, нужно не забыть включить поддержку языков (Native Language Support) в разделе "Файловые системы" (`File systems') и выбрать соответствующую кодировку при компиляции ядра. Насколько мне известно, также поддерживается (с ограничениями) NTFS, но я никогда этой поддержкой не пользовался.
Emacs использует свой собственный механизм для поддержки международных наборов символов. Независимо от того, используете вы Emacs или XEmacs, просто включить поддержку кириллицы в консоли / X Window недостаточно, чтобы обеспечить поддержку кириллицы в Emacs.
Для внутреннего представления текста Emacs использует единую многобайтовую кодировку символов, позволяя, таким образом, использовать символы из разных кодировок в одном буфере или строке. Во время загрузки и сохранения файла Emacs перекодирует текст в/из своей кодировки из/в другие кодировки.
Для ввода Emacs определяет "методы ввода" (`input methods'). Сидя за терминалом, вы можете набирать латинские символы, не используя поддержку кириллицы, предоставляемую вашей консолью / X Window, но включённый в данный момент метод ввода определяет, как Emacs обрабатывает (переводит) латинские символы в многобайтовую кодировку, используемую Emacs для внутреннего представления текста.
Для того, чтобы Emacs корректно отображал текст на вашем терминале, необходимо также сообщить Emacs, какая кодировка используется терминалом. Emacs перекодирует текст из внутреннего многобайтового представления в вашу кодировку при отображении символов на экране терминала (независимо от того, консоль это или программа эмулятора терминала X Window).
Одним из следствий этого подхода является то, что для использования кириллицы в Emacs совсем необязательно настраивать клавиатуру терминала для ввода кириллицы; необходимо только загрузить кириллический шрифт.
Если вы пользуетесь XEmacs, можно указать ему использовать нужный вам шрифт либо добавив следующую инструкцию в ваш файл ~/.Xresources:
emacs*font: -misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r
либо добавив следующую строку в ваш файл ~/.emacs:
(cond (window-system (set-frame-font "-misc-fixed-medium-r-normal--15-140-75-75-c-90-koi8-r")))
(Вторая настройка отменит предыдущую. Измените название шрифта на название вашего -- не забудьте, что он должен поддерживать кодировку, выбранную вами для вывода на экран терминала (см. ниже). Если вы решите использовать первый метод, вам нужно будет перезапустить X-сервер для того, чтобы новые настройки вступили в силу).
Вообще в Emacs предусмотрены следующие команды и переменные для подобных настроек:
В документации по Emacs'у можно найти дополнительные переменные/команды (если документация по Emacs'у в формате info установлена на вашей системе, загрузите ее с помощью команды info emacs).
Все эти команды / переменные можно запускать / устанавливать в вашем файле инициализации Emacs, чтобы они загружались при каждом запуске Emacs. Добавьте в ваш файл ~/.emacs следующие строки:
(Замените системы кодировок на нужные вам. Для того чтобы эти установки
вступили в силу, перезапустите Emacs).
Некоторые полезные команды, имеющие отношение к кодировкам:
(set-language-environment 'Cyrillic-KOI8)
(set-terminal-coding-system 'koi8)
(set-keyboard-coding-system nil)
(setq default-buffer-file-coding-system 'koi8)
(set-selection-coding-system 'koi8)
(codepage-setup 1251)
Описываемый метод работает в
Option "XkbDisable"
Это включит клавиатурные расширения X Window, обеспечивающие поддержку национальных клавиатур. Теперь добавьте
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us,ru"
Option "XkbOptions" "grp:menu_toggle,grp:rwin_toggle,grp:switch"
Эта настройка включит две клавиатурные раскладки (для США и России) и назначит клавиши Menu и правую Windows на вашей Windows-клавиатуре переключателями раскладки клавиатуры, а правую клавишу Alt клавишей временного переключения раскладки. Если вам повезло и у вас не Windows-клавиатура, то можно назначить "grp:toggle" (правый Alt) переключателем раскладок. См. /etc/X11/xkb/rules/xfree86, чтобы узнать о других опциях. За дополнительной информацией обратитесь к /etc/X11/xkb/README.config.
И конечно не забудьте установить кириллические шрифты, если они еще не установлены.
Я здесь опишу версию 1.4.0.6. В окне Preferences установите
Open IM (input method)
и уберите
Swap Delete/Backspace
Delete generates DEL/^H
Enable multibyte support
Meta sets the eighth bit
А также выберите кириллический шрифт в соответствующей кодировке.
Для поддержки русского языка я загрузил xpdf-cyrillic.tar.gz и запустил следующие команды (и опять вам, возможно, придётся изменить пути)
tar xzf xpdf-cyrillic.tar.gz
cd xpdf-cyrillic
install -d /usr/share/xpdf/cyrillic
cp Bulgarian.nameToUnicode KOI8-R.unicodeMap /usr/share/xpdf/cyrillic
cat add-to-xpdfrc >> /etc/xpdfrc
Если необходимо, отредактируйте /etc/xpdfrc и поменяйте /usr/local/share/xpdf/cyrillic/ на /usr/share/xpdf/cyrillic/.
Если вы хотите иметь доступ к шрифтам ghostscript, отредактируйте /etc/xpdfrc и раскомментируйте строки, начинающиеся с displayFontT1, а также поменяйте пути шрифтов ghostscript в соответствии с путями в вашей системе (в Debian это /usr/share/fonts/type1/gsfonts/).
Русский перевод ещё не закончен. См. английский вариант.
Основная проблема с мышью заключается в том, что gpm(8) (драйвер
мыши для текстовой консоли) и
Я использую следующие настройки для моей мыши (трехкнопочная мышь A4 Tech с колесом). Для других мышей вам, возможно, придётся выбрать другой тип мыши для gpm. См. man 8 gpm.
repeat_type=raw
type=imps2
append=" -2 "
Option "Buttons" "5"
Option "Protocol" "IMPS/2"
Option "Device" "/dev/gpmdata"
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "yes"
Откомпилируйте ядро с поддержкой соответствующего драйвера. Если вы откомпилируете этот драйвер как модуль, то добавьте в файл /etc/modules.conf (в Debian, отредактируйте файлы в /etc/modutils, а затем запустите update-modules(8)) следующие строки (здесь мы предполагаем, что драйвер вашей звуковой карты называется emu10k1, см. /lib/modules/2.4.XX/kernel/drivers/sound):
alias sound-slot-0 emu10k1
Вам также, возможно, придётся добавить следующую строку (для программы-микшера):
alias sound-service-0-0 emu10k1
Если вы откомпилировали драйвер для вашей сетевой карты в виде модуля, добавьте в файл /etc/modules.conf (в Debian, отредактируйте файлы в /etc/modutils, а затем запустите update-modules(8)) (здесь мы предполагаем, что драйвер называется ne, см. /lib/modules/2.4.XX/kernel/drivers/net):
alias eth0 ne
Вам, возможно, также придётся добавить следующую строку для (ISA) карты:
options ne io=0xXXX irq=XX