LinuxForum.Fans
Тема

Проблемы с мышью

Автор: drBatty 11 сообщений 3800 просмотров
#111349

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

Итак: начну с самого терминального варианта мыши НЕТ ВООБЩЕ (например ваша Религия не позволяет её использовать). Что делать?

Решение:

Нажимаем SHIFT+NumLock. Теперь у вас есть мыш. Управляется она кнопками

text
7 8 9
4    6
1 2 3

Например, 4 == влево, 9 == вправо-вверх. Кнопки на дополнительной, маленькой клавиатурке правее основной.
5 == одиночный клик. (ну или двойной, как нажмёте)
+ == двойной клик

Дополнительные фичи:

"мыщЪ" эта трёхкнопочная без колёсика. Управление нетривиальное. Имеется селектор кнопок - выбор, как будет реагировать мышЪ на нажатие кнопок:

/ == выбор левой кнопки. По умолчанию. Все дальнейшие действия будут для левой кнопки.
* == выбор средней кнопки.
- == выбор правой кнопки.

Таким образом, нажатие -5/ эквивалентно клику ПРАВОЙ кнопкой (переход к режиму правой кнопки -- клик -- возврат к обычному режиму).

0 == нажатие мышЪи без её отпускания.
.(точка) == отпускание кнопки мышЪи.

ноль и точка нужны например для выделения нескольких файлов, или для рисования линий в графическом режиме.

#111357

Как настроить мыш через HAL?

Для настройки мыше через HAL нужно создать файл /etc/hal/fdi/policy/10-x11-input.fdi такого содержания:

text
<?xml version="1.0" encoding="UTF-8"?>
    <deviceinfo version="0.2">
        <device>
            <!-- Mouse configuration -->
            <!--
            <match key="info.capabilities" contains="input.mouse">
                <merge key="input.device" type="string">/dev/ttyS0</merge>
                <merge key="linux.device_file" type="string">/dev/ttyS0</merge>
                <merge key="input.x11_driver" type="string">mouse</merge>
            </match>
            -->
            <!-- Для новых мышек -->
            <match key="info.capabilities" contains="input.mouse">
                <merge key="input.x11_driver" type="string">evdev</merge>
            </match>
            <!-- -->

<!-- Keyboard configuration Section "InputDevice" Driver "evdev" Option "XkbLayout" "en_US,ru(winkeys)" Option "XkbVariant" ",winkeys" Option "XkbRules" "xorg" Option "XkbModel" "pc104" Option "XkbOptions" "grp:shift_toggle,grp_led:scrool" EndSection --> <match key="info.capabilities" contains="input.keymap"> <append key="info.callouts.add" type="strlist">hal-setup-keymap</append> </match> <match key="info.capabilities" contains="input.keys"> <merge key="input.xkb.rules" type="string">xorg</merge> <merge key="input.x11_driver" type="string">evdev</merge> <merge key="input.xkb.layout" type="string">en_US,ru</merge> <merge key="input.xkb.model" type="string">pc104</merge> <merge key="input.xkb.variant" type="string">,winkeys</merge> <merge key="input.xkb.options" type="string">grp:caps_toggle,grp_led:scroll</merge> </match> </device> </deviceinfo>

Всё, что между <!-- и --> считается комментарием и игнорируется. Это позволяет отключать и/или включать в конфиге некоторые части. Например в данном файле есть строки:

text
            <!--
            <match key="info.capabilities" contains="input.mouse">
                <merge key="input.device" type="string">/dev/ttyS0</merge>
                <merge key="linux.device_file" type="string">/dev/ttyS0</merge>
                <merge key="input.x11_driver" type="string">mouse</merge>
            </match>
            -->

они закомментированны и ни на что не влияют. Если их раскоментировать, то мышкой будет считатся COM мышка (при этом нужно закомментировать строчки для новых, PS/2 мышек, и перезагрузится). Полезно, если ваша мышь ВНЕЗАПНО сдохла, а другой на PS2 нет. Кроме того, наверное также будут работать и USB мышки, но не проверял.

#111365
drBatty написал:
Как настроить мыш через HAL?

Несколько запоздалый совет получился: в последнее время современные дистрибутивы избавляются от использования hal.
К примеру, в Gentoo в версии xorg-server-1.7* появилась возможность отключить использование hal, версия же xorg-server-1.9* вообще исключает использование hal.

#111368
Lupo Alberto написал:
Несколько запоздалый совет получился: в последнее время современные дистрибутивы избавляются от использования hal.

Я в курсе. Но в Slackware именно так. Если вы знаете как настроить мыш в случае применения DeviceKit - напишите.

ЗЫЖ вот когда ВЫ найдёте все глюки вашего DeviceKit'а, и исправите, тогда МЫ будем его использовать. Не раньше wink

#111370
drBatty написал:
ЗЫЖ вот когда ВЫ найдёте все глюки вашего DeviceKit'а, и исправите, тогда МЫ будем его использовать. Не раньше wink

Возможно, я несколько путаюсь в понятиях и терминах, и не до конца представляю, что такое DeviceKit: но в Gentoo, сейчас происходит, что называется, возврат к истокам: так все устройства ввода создаются и настраиваются с помощью udev
P.S. А hal, начиная с его появления и до последнего времени, не ругал только ленивый. wink
P.S.S. drBatty, вероятно, вы приняли мой пост, как какой-то упрёк вам — это не так. Существуют дистрибутивы и работающие конфигурации, где ваш совет будет актуален ещё долгое время.

#111448

Лучше написали бы как пульт опредилящий как клава или мышь настроить через lirc :D
А так HAL выпиливают.

#111452
Kettler написал:
Лучше написали бы как пульт опредилящий как клава или мышь настроить через lirc big_smile

Я настроил так:

text

...
Section "InputClass"
        Identifier "lirc-all"
        Driver "evdev"
        MatchProduct "cx88 IR (TeVii S460 DVB-S/S2)"
        Option "Ignore" "on"
EndSection
...

P.S. xorg-server-1.9.2.902

#111465
Lupo Alberto написал:
Возможно, я несколько путаюсь в понятиях и терминах, и не до конца представляю, что такое DeviceKit: но в Gentoo, сейчас происходит, что называется, возврат к истокам: так все устройства ввода создаются и настраиваются с помощью udev

нет. И я могу это доказать: в Slackware HAL работает поверх udev. Т.е. можно hal не ставить (правда тогда начнутся танцы с бубном в попытках сделать автомонтирование внешних устройств. Но всякие мышки можно будет сделать. Хотя придётся покрасноглазить).

Lupo Alberto написал:
P.S. А hal, начиная с его появления и до последнего времени, не ругал только ленивый.

я в курсе. Но вот ведь какая штука: HAL появился давно, но в Slacky только недавно. И в ней он прекрасно работает. DeviceKit уже закопали, в итоге вернулись "к истокам", а именно к тому, что каждая программа, и каждый драйвер работает как хочет. В итоге, при их сопряжении (программ и дров) возникают крупные и мелкие баги. Вот что пишет по этому поводу вика:

В настоящее время, HAL является устаревшим и не применяется. Основные причины -монолитность и трудность настройки (deprecated)[3] и не рекомендуется к использованию.

Изначально большинство логики HAL было перенесено в Udev, а правила в новый модуль - DeviceKit(не имеет ничего общего с PolicyKit или ConsoleKit). Преймущество udev над HAL в том, что первый является событийно-управляемым модулем, а HAL - периодически опрашивает ядро. Таким образом использование событийно-управляемого udev значительно снижает нагрузку на систему, а значит и электропотребление.

Однако вскоре схема udev+DeviceKit несколько изменилась - разработчики обнаружили, что большинство аппаратуры уже управляется различными программными компонентами и необходимы только правила для дисков(udisks)[4] и питания(upower)[5]. Проект DeviceKit был разбит на несколько более мелких частей и больше не используется и не упоминается.[6]

Таким образом современные дистрибутивы используют только Udev и правила к нему(udisks, upower). Однако ввиду инерционности кода, многие программы все еще требуют устаревший HAL (в основном для обнаружения дисков) и поэтому дистрибутивы вынуждены поставлять HAL, фактически дублируя логику(в частности, KDE 4.5.2 все еще зависит от HAL через Solid. Бэкенды для udev+udisks еще не предоставлены).

Многие дистрибутивы (например, Ubuntu[7], Debian[8] и Fedora[9]) уже приступили к использованию вместо него Udev.

http://ru.wikipedia.org/wiki/HAL_%28freedesktop.org%29

Но это не важно. Я считаю, что мануал должен быть всеобъемлющем, и если кто настраивал мышку с DeviceKit'ом или новым Udev'вом - прошу в студию.

Kettler написал:
Лучше написали бы как пульт опредилящий как клава или мышь настроить через lirc big_smile
А так HAL выпиливают.

приносите мне пульт и lirc - пощупаем. Как я могу писать про то, чего у меня нет? Кстати, а причём тут мыш? Открывайте новую тему, спрашивайте, или рассказывайте, если удалось сделать.

Lupo Alberto, вы-бы писали, куда это вписывать. Вы думаете, все здесь телепаты?

#111496
drBatty написал:
Lupo Alberto, вы-бы писали, куда это вписывать. Вы думаете, все здесь телепаты?

В /etc/X11/xorg.conf:

Показать

Section "Extensions"
Option "Composite" "Disable"
EndSection

Section "Files"
ModulePath "/usr/lib64/xorg/modules"
ModulePath "/usr/lib64/opengl/nvidia"
ModulePath "/usr/lib64/opengl/xorg-x11/extensions"
FontPath "/usr/share/fonts/liberation-fonts/"
FontPath "/usr/share/fonts/corefonts/"
FontPath "/usr/share/fonts/droid/"
FontPath "/usr/share/fonts/dejavu/"
FontPath "/usr/share/fonts/misc/:unscaled"
EndSection

Section "InputClass"
Identifier "keyboard-all"
Driver "evdev"
Option "XkbLayout" "us,ru(winkeys)
Option "XkbOptions" "grp:lwin_toggle,grp:switch,grp_led:caps,compose:ralt,terminate:ctrl_alt_bksp"
MatchIsKeyboard "on"
EndSection

Section "InputClass"
Identifier "mouse-all"
Driver "evdev"
MatchIsPointer "on"
EndSection

Section "InputClass"
Identifier "lirc-all"
Driver "evdev"
MatchProduct "cx88 IR (TeVii S460 DVB-S/S2)"
Option "Ignore" "on"
EndSection

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0"
EndSection

Section "ServerFlags"
Option "AllowEmptyInput" "True"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "Samsung"
ModelName "HD"
Option "DPMS"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
Option "UseEDIDDpi" "FALSE"
BoardName "GeForce GT 220"
Option "NvAGP" "1"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubSection
EndSection
#111541

Lupo Alberto а вы случаем на www.forum.free-x.de не постили?
И скажите вы на gentoo vdr собрали?

Сорри конечно что не по теме.

#111551
Kettler написал:
Lupo Alberto а вы случаем на www.forum.free-x.de не постили?
И скажите вы на gentoo vdr собрали?

Не постил; да, собрал, точнее, установил с помощью portage — системы управления программным обеспечением Gentoo.

Войдите или зарегистрируйтесь, чтобы ответить.