XFree86-Second-Mouse mini-HOWTO (Использование второй мыши в системе X)

Аннотация

Краткие инструкции об использовании второй мыши в системе X Window.


Введение

Данный mini-HOWTO был создан на основе доступной информации из интернет, телеконференций и других HOWTO. Я добивался одновременной работы USB мыши и встроенного трэкпойнта на моей портативной ЭВМ Thinkpad.

Примеры, приведенные в данном mini-HOWTO, соответствуют моей аппаратной конфигурации: первичное устройство - PS/2 мышь, дополнительное - USB мышь с колесом прокрутки. Конечно, возможны и другие варианты, например и PS/2 и последовательная мышь. Будут изменяться два параметра - протокол мыши и тип мыши. Везде, где это будет возможно, я постараюсь приводить примеры.

Команды для системы X разделены на два раздела: один для XFree версии 3, другой для XFree версии 4. Формат файла XF86Config в разных версиях имеет значительные различия. В XFree 3.x вторая мышь определяется в секции Xinput, имеющей синтаксис, слегка отличающийся от синтаксиса обычной секции Pointer. В XFree 4.x вторая мышь определяется еще одним указателем.


Авторское право и Лицензия

Авторские права на данный документ принадлежат Greg Wierzchowski. Он выпущен в соответствии с лицензией GNU Free Documentation License. Связь с автором: [email protected].

Авторские права на русский перевод этого текста принадлежат 2001 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но так или иначе автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: , или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу


Протоколы мыши

Два очень важных параметра, отвечающих за корректную работу мыши, содержатся в файле XF86Config. Это параметр Protocol и параметр Device.

Относительно содержания параметра Protocol: очевидно, это имя протокола, поддерживаемого gpm. Далее приводится выдержка из справочной страницы по gpm. (Наиболее распространенные типы):

Таблица 1. Most Common Mouse Protocols in X

Имя протоколаОписание
MicrosoftСтандартная мышь Microsoft.
MouseSystemsСтандартный протокол для трехкнопочных последовательных устройств.
MMSeriesНазвание говорит само за себя. Это декодер для мыши, в любом случае принимающий стандартные последовательные команды.
LogitechПротокол, используемый старыми версиями последовательных мышей Logitech.
BusMouseНекоторые шинные устройства используют этот протокол, включая устройства от Logitech.
PS/2Протокол, используемый большинством мышей для шинного контроллера.
IMPS/2"IntelliMouse" для порта ps/2. Аналогично для USB мыши


XFree 3.x

В системе XFree 3.x дополнительные указательные устройства типа мыши или планшетного указателя определены в секции Xinput. Первичная мышь обычно определена так:

Section "Pointer"
    Protocol    "PS/2"
    Device      "/dev/mouse"
EndSection
В данном случае это обычная, хорошо себя зарекомендовавшая трехкнопочная мышь PS/2. Теперь, для USB мыши:
    Section "Xinput"
  SubSection "Mouse"
    DeviceName "USB Mice"
    Protocol "IMPS/2"
    ZAxisMapping 4 5
    Port "/dev/input/mice"
    Alwayscore
  EndSubSection
EndSection
Моя мышь с колесом прокрутки, таким образом, протокол - IMPS/2. Строка ZAxisMapping необходима для работы колеса прокрутки. Так же я желаю, чтобы данная мышь работала совместно с другими указательными устройствами. Это обеспечивает опция AlwaysCore. Если бы это была последовательная мышь, то Port считывал бы "/dev/ttyS0" для COM1.


XFree 4.x

В системе XFree 4.x еще проще. Первая мышь обычно уже прописана в файле конфигурации:

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "mouse"
        Option      "Device" "/dev/mouse"
        Option      "Protocol" "PS/2"
        Option      "Emulate3Buttons" "off"
        Option      "ZAxisMapping" "4 5"
EndSection
Для добавления еще одной мыши просто скопируйте данную секцию и измените данные примерно так, как указано ниже:
Section "InputDevice"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Device" "/dev/input/mice"
        Option      "Protocol" "IMPS/2"
        Option      "Emulate3Buttons" "off"
        Option      "ZAxisMapping" "4 5"
EndSection
Таким образом Вы можете определить разные дополнительные указательные устройства, то же самое применимо к джойстикам и планшетным указателям.

Для того, чтобы заставить работать мыши совместно, в конфигурационном файле XF86Config необходимо сделать еще одно изменение в секции ServerLayout, где определены все компоненты. Так выглядит содержимое секции перед тем, как мы решили добавить вторую мышь:

Section "ServerLayout"
        Identifier "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection
И так она выглядит после добавления второй мыши:
Section "ServerLayout"
        Identifier "XFree86 Configured"
        Screen      0  "Screen0" 0 0
        InputDevice    "Mouse0" "CorePointer"
        InputDevice    "Mouse1" "AlwaysCore"
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection


Альтернативные способы

Другой метод одновременного использования двух (или более) мышей состоит в использовании программы MultiMouse, созданной Takashi Manabe. Это демон, осуществляющий мультиплексирование мышей, и делающий их доступными как MouseSystems-совместимык мыши через особое устройство /dev/mumse.

От автора: "Данная программа позволяет использовать несколько мышей одновременно. Она разрабатывалась для пользователей, желающих пользоваться подключенными устройствами совместно с внешней мышью, присоединенной к последовательному порту."

Я не уверен, будет ли программа поддерживать мышь, присоединенную не к последовательному порту, MultiMouse можно найти на сайте Sun (sunsite.unc.edu /pub/Linux/system/Misc) и Tucows (www.tucows.com Linux Console -> Utilities).


Благодарности

Большое спасибо всем, кто внес свой вклад в развитие Linux и сделал возможным создание данного HOWTO.