FAQ FreeBSD
Страница 42. Использование 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) (https://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

 
« Предыдущая статья