FAQ FreeBSD - Использование X Window
ОГЛАВЛЕНИЕ
8. Использование X Window
8.1. Я хочу запустить X, как это сделать?
Самый простой способ - это указать во время инсталляции, что вы хотите использо
вать X.
Затем следуйте указаниям в документации по утилите xf86config, которая
предназначена для конфигурирования работы XFree86(tm) с вашим графическим
адаптером/мышью/итд.
Вы можете также попробовать сервер Xaccel. За подробной информацией обратитесь
к разделу, посвящённому продуктам фирм Xi Graphics и Metro Link.
8.2. Почему моя мышь не работает с X?
Если вы используете syscons (стандартный драйвер консоли), то можете настроить
поддержку указателя мыши во всех виртуальных экранах. Во избежание конфликтов с
X, драйвер syscons поддерживает виртуальное устройство /dev/sysmouse. Все
события, получаемые от реальной мыши, пишутся в устройство sysmouse через
moused. Если вы хотите использовать вашу мышь на одной или нескольких в
иртуальных консолях, продолжая использовать X, посмотрите Q: 2.10. и настройте
moused.
Затем отредактируйте /etc/XF86Config так, чтобы в нём были следующие строки.
Section Pointer
Protocol "SysMouse"
Device "/dev/sysmouse"
.....
Пример выше предназначен для XFree86 3.3.2 и выше. Для более ранних версий
параметр Protocol должен быть MouseSystems.
Некоторые предпочитают использовать в X устройство /dev/mouse. Чтобы оно
работало, файл устройства /dev/mouse должен являться ссылкой на /dev/sysmouse:
# cd /dev
# rm -f mouse
# ln -s sysmouse mouse
8.3. У моей мыши есть колёсико. Могу ли я его использовать при работе в X?
Да. Но вам нужно будет настроить программы-клиенты для X. Посмотрите страничку
Коласа Наабу (Colas Nahaboo) (http://www.inria.fr/koala/colas/
mouse-wheel-scroll/).
Если вы собираетесь использовать программу imwheel, следуйте этим простым
указаниям:
1. Трансляция событий от колёсика
Работа программы imwheel основана на трансляции событий от кнопок мыши 4 и
5 в события от клавиатуры. То есть вам нужно заставить драйвер мыши
транслировать события от колёсика в события от кнопок 4 и 5. Есть два
способа сделать это, в первом из которых трансляцию выполняет moused(8). Во
втором методе трансляцию событий выполняет сам X-сервер.
a. Использование moused(8) для трансляции событий от колёсика
Для того, чтобы moused(8) выполнял преобразование событий, просто добав
ьте опцию -z 4 к команде, запускающей moused(8). Например, если обычно
вы запускаете moused(8) командой moused -p /dev/psm0, то теперь вы
должны будете использовать moused -p /dev/psm0 -z 4. Если moused(8)
запускается у вас автоматически во время загрузки через /etc/rc.conf,
то вы можете просто добавить опцию -z 4 к переменной moused_flags в
файле /etc/rc.conf.
Теперь вам нужно указать X, что вы используете 5-кнопочную мышь. Для
этого просто добавьте строчку Buttons 5 в секцию "Pointer" файла /etc/
XF86Config. Например, в вашем файле /etc/XF86Config секция "Pointer"
может принять такой вид:
Example 8-1. Секция "Pointer" файла XF86Config для мыши с колёсиком и
трансляцией через moused
Section "Pointer"
Protocol "SysMouse"
Device "/dev/sysmouse"
Buttons 5
EndSection
b. Использование X-сервера для трансляции событий от колёсика
Если moused(8) у вас не запущен или если вы не хотите, чтобы moused(8)
занимался трансляцией событий от колёсика, то это может сделать X-серв
ер. Это требует некоторых модификаций в вашем файле /etc/XF86Config. В
о-первых, вам нужно правильно выбрать протокол для вашей мыши.
Большинство манипуляторов с колёсиками используют протокол
"IntelliMouse". Однако XFree86 поддерживает другие протоколы, такие,
как "MouseManPlusPS/2" для мышей Logitech MouseMan+. После того, как вы
выберите используемый протокол, в секцию "Pointer" нужно будет добавить
строчку Protocol.
Во-вторых, вам нужно указать, что X-сервер будет переопределять события
от колёсика в события от кнопок 4 и 5. Это делается заданием опции
ZAxisMapping.
Например, если вы не используете moused(8) и ваша мышь IntelliMouse
подключена к порту для мыши PS/2, в вашем файле /etc/XF86Config должно
быть указано следующее:
Example 8-2. Секция "Pointer" для мыши с колёсиком из файла XF86Config
с трансляцией с помощью X-сервера
Section "Pointer"
Protocol "IntelliMouse"
Device "/dev/psm0"
ZAxisMapping 4 5
EndSection
2. Установка программы imwheel
Теперь установите программу Imwheel из Коллекции Портов. Она находится в
категории x11. Эта утилита будет преобразовывать события от колёсика вашей
мыши в события от клавиатуры. Например, она может послать в программу
последовательность Page Up, когда вы крутите колёсико вперёд. Для преобразо
вания событий от колёсика в нажатия клавиш imwheel использует
конфигурационный файл, причём для разных приложений возможна посылка разных
последовательностей. Конфигурационным файлом, используемым по умолчанию, яв
ляется /usr/X11R6/etc/imwheelrc. Вы можете скопировать его в ~/.imwheelrc и
отредактировать, если хотите изменить параметры работы imwheel. Формат
конфигурационного файла описан на странице Справочника о imwheel(1).
3. Настройка редактора Emacs для работы с Imwheel (по желанию)
Если вы используете emacs или Xemacs, то в ваш файл ~/.emacs нужно добавить
маленький раздел. Для редактора emacs, добавьте следующее:
Example 8-3. Конфигурация Emacs для работы с Imwheel
;;; For imwheel
(setq imwheel-scroll-interval 3)
(defun imwheel-scroll-down-some-lines ()
(interactive)
(scroll-down imwheel-scroll-interval))
(defun imwheel-scroll-up-some-lines ()
(interactive)
(scroll-up imwheel-scroll-interval))
(global-set-key [?\M-\C-\)] 'imwheel-scroll-up-some-lines)
(global-set-key [?\M-\C-\(] 'imwheel-scroll-down-some-lines)
;;; end imwheel section
Для редактора Xemacs, в ваш файл ~/.emacs добавьте следующее:
Example 8-4. Конфигурация Xemacs для работы с Imwheel
;;; For imwheel
(setq imwheel-scroll-interval 3)
(defun imwheel-scroll-down-some-lines ()
(interactive)
(scroll-down imwheel-scroll-interval))
(defun imwheel-scroll-up-some-lines ()
(interactive)
(scroll-up imwheel-scroll-interval))
(define-key global-map [(control meta \))] 'imwheel-scroll-up-some-lines)
(define-key global-map [(control meta \()] 'imwheel-scroll-down-some-lines)
;;; end imwheel section
4. Запуск Imwheel
Вы можете просто набрать команду imwheel в вашем в окне xterm после установ
ки. Она сама перейдёт в фоновый режим и немедленно начнёт работу. Если вы
хотите использовать imwheel всегда, просто добавьте её запуск в ваш
.xinitrc или .xsession. Все предупреждения о PID-файлах, которые выводит
imwheel, можно проигнорировать. Эти предупреждения имеют смысл только в
Linux-версии imwheel.
8.4. Меню и диалоговые окна в X Window работают неправильно!
Попробуйте выключить Num Lock.
Если клавиша Num Lock во время загрузки по умолчанию включена, добавьте в
секцию Keyboard файла XF86Config следующую строку.
# Let the server do the NumLock processing. This should only be
# required when using pre-R6 clients
ServerNumLock