Круговая прокрутка а-ля iPod на тачпаде

    Всем известно, что мультитач и прочие удобные трюки тачпадов от фирмы Synaptics, которые стоят практически на всех ноутбуках, зачастую реализуются драйвером тачпада и от аппаратной составляющей мало что зависит. Вот только поддержка их на разных системах разная.
    Около полугода назад я, покопавшись в сети, настроил себе нажатие двумя пальцами на правую кнопку мыши, а тремя — на левую, после чего стал переносить руку на мышь гораздо реже. Но хотелось несколько большего.
    Порывшись в man synaptics, нашел там интересную вещь под названием CircularScrolling, что в переводе означает «круговая прокрутка». Многим она знакома по плеерам iPod — весьма и весьма удобна при прокрутке длинных документов. Естественно, мне захотелось себе такую же, ибо прокрутка по правому краю не лучший выбор.
    Итак, приступим к настройке. Попутно покажу, как реализуется обработка нажатий двумя и тремя пальцами.

    Открываем любимым редактором xorg.conf и ищем там секцию, отвечающую за тачпад:

    Section "InputDevice"
    Identifier "Synaptics Touchpad"
    Driver "synaptics"
    Option "SendCoreEvents" "true"
    Option "Device" "/dev/psaux"
    Option "Protocol" "auto-dev"
    Option "CircularScrolling" "on" # Включить круговую прокрутку
    Option "CircScrollTrigger" "2" # Привязка начала кругов на правый верхний угол
    Option "HorizEdgeScroll" "on" # Горизонталная прокрутка по нижнему краю
    Option "SHMConfig" "on" # Системная настройка, необходима для следующих строк
    Option "TapButton2" "3" # Два пальца - на правую кнопку
    Option "TapButton3" "2" # Три пальца - на среднюю (колесо)
    EndSection


    Привязки распределены следующим образом:
    0 Любой
    1 Верхняя кромка
    2 Правый верхний угол
    3 Правая кромка
    4 Правый нижний угол
    5 Нижняя кромка
    6 Левый нижний угол
    7 Левая кромка
    8 Левый верхний угол

    Прокрутка очень удобна, как я уже говорил, для длинных документов. Чтобы тачпад лучше распознавал круги, желательно «рисовать» их большими.

    Процесс прокрутки запечатлен на видео ниже.


    К слову, если порыться в man synaptics еще немного, можно найти еще порядочно «вкусных» вещей. Например, если поддерживается распознавание ладони, то можно включить опцию PalmDetect и навсегда забыть о случайных нажатиях на панель во время печати.

    Upd. По мотивам комментариев
    В случае, если настройки X определяются через HAL, необходимо поступить так, как написано здесь:
    beavis_1 9 марта 2009, 02:41

    Информация по использованию GUI-программы gsynaptics находится комментарии develop7 9 марта 2009, 15:08

    Всем спасибо.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 88

      +1
      Acer Aspire One 110, Ubuntu 8.10 — работать не хочет… либо я олень :)
        +1
        Вы правильно начинаете прокрутку, откуда указали? У меня сразу тоже не получалось почему-то, потом сделал.
          +1
          щас еще поковыряюсь… хотя TapButton2/3 тоже не работают… правда может где-то туплю…
            +1
            Конфиг иксов покажите. В 8.10 по умолчанию всем заведует HAL. Честно признаюсь, я не знаю, что это, но избавился от него сразу :)
              +2
              конфиг практически пустой:

              Section «Device»
              Identifier «Configured Video Device»
              EndSection

              Section «Monitor»
              Identifier «Configured Monitor»
              EndSection

              Section «Screen»
              Identifier «Default Screen»
              Monitor «Configured Monitor»
              Device «Configured Video Device»
              EndSection
                0
                Section «ServerLayout»
                InputDevice «Synaptics Touchpad»
                Identifier «Default Layout»
                Screen 0 «Default Screen» 0 0
                EndSection

                Попробуйте с этим вверху
                  +7
                  упали иксы :)
                    0
                    вроде заставил работать круговую прогрутку…
                    щас все до ума доведу, расскажу :)
                      +2
                      Спасибо GeniyZ`у за ссылку, помогла
                      Итак к чему я в итоге пришел:

                      1.) Открываем терминал, пишем «lshal», в списке ищем текст «touchpad» и узнаем производителя своего тачпада (у меня оказался таки Synaptics)

                      2.) Затем, в терминале «sudo gedit /etc/hal/fdi/policy/touchpad.fdi» и дальше все пишем в него

                      3.) Вот так выглядит этот файл у меня:

                      <?xml version="1.0" encoding="ISO-8859-1"?>
                      <deviceinfo version="0.2">
                      <device>
                      <match key="info.capabilities" contains="input.touchpad">
                      <match key="info.product" contains="Synaptics TouchPad">
                      <merge key="input.x11_driver" type="string">synaptics</merge>
                      <merge key="input.x11_options.CircularScrolling" type="string">1</merge>
                      <merge key="input.x11_options.CircScrollTrigger" type="string">8</merge>
                      <merge key="input.x11_options.SHMConfig" type="string">on</merge>

                      </match>
                      </match>
                      </device>
                      </deviceinfo>

                      3.1) В данном случае прокрутка начинается из верхнего левого угла

                      4.) Обратите внимание на строку:

                      <match key="info.product" contains="Synaptics TouchPad">

                      В вашем случае производитель может быть другой, в таком случае значение contains должно соответствовать вашему производителю (см. пункт 1), например так:

                      <match key="info.product" contains="AlpsPS/2 ALPS">

                      5.) Сохраняем, перезагружаемся, работает! :)
                        0
                        теперь также можно скачать gsynaptics и конфигурировать некоторые функции с помощью него:

                        sudo apt-get install gsynaptics
                          +3
                          5) Перезагружаться необязательно. Достаточно перезапустить HAL (sudo /etc/init.d/hal restart) и иксы (Ctrl+Alt+Backspace, например)
                +2
                Как и где настраивать свойства тачпада в HAL в Ubuntu:
                Создаём файл /etc/fdi/policy/synaptics.fdi такого вида:
                <?xml version="1.0" encoding="ISO-8859-1"?>
                <match key="info.product" contains="Synaptics TouchPad">
                  <merge key="input.x11_options.VertTwoFingerScroll" type="string">true</merge>
                  <merge key="input.x11_options.HorizTwoFingerScroll" type="string">true</merge>
                  <merge key="input.x11_options.PalmDetect" type="string">true</merge>
                </match>
                

                Так выглядит мой конфиг на IBM T41. Принцип, думаю, понятен.
                  0
                  и все? больше не надо никаких ссылок на этот файл делать?

                  я пока просто создал файл и сунул в него ваш конфиг… но пока так и не понял что это за — TwoFingerScroll такой и PalmDetect

                  щас остальные запихну, посмотрим…
                    0
                    Прописывать больше нигде не надо, я правда не помню, что надо передернуть, чтобы система отреагировала на изменения.

                    Описание всех опций есть в man synaptics. TwoFingerScroll — это «эппловская» прокрутка двумя пальцами.
                    (Впрочем, я все равно только трекпойнтом пользуюсь ;-)
                      0
                      Возможно, передёрнуть нужно так: sudo /etc/init.d/hal restart
                    +2
                    может быть в /etc/hal/fdi....?
                      0
                      Да-да, конечно, спасибо за поправку.
                        0
                        у меня все это лежит в /usr/share/hal/fdi/policy/20thirdparty/11-x11-synaptics.fdi

                        щас буду играться…
                          0
                          Это дефолтные настройки, поставленные пакетом xserver-xorg-input-synaptics (если вы тоже в убунте). При обновлении пакета всё сотрётся, так что копаться там не надо. Настройки из /etc/hal/fdi объединяются (merge) с этими.
                      0
                      А где почитать можно подробнее по настройке hal не подскажите?
                    +2
                    Очень клево, спасибо, теперь у меня полу-мак :)
                      +1
                      Жалко что не у всех тачпады Synaptic.
                        0
                        Кстати, всегда было интересно — какие еще фирмы выпускают сенсорные панели. Не поделитесь информацией?
                          +1
                          Alps. У меня на Делле Латитуде Е5400 такой
                            0
                            С Alps GlidePoint кругвой скроллинг так же работает на ура.
                            А вот с многопальцевостю не получится.
                            0
                            ой. не успел ответить =). у меня тоже Alps.
                              +1
                              На eee pc 900 Elantech. В 2.6.28 уже есть драйвер для него, конкретно CircularScrolling не проверял, но всё остальное вроде работает.
                                0
                                На MSI Wind выпущенных с августа-сентября тачпады производства Sentelic.
                                Причем размером меньше, чем дырка в корпусе под тачпад — в нижней части мертвая зона.
                                +1
                                На бюджетненькой Ленове тоже Alps.
                                +1
                                в связке Debian Lenny+ Acer Aspire One 110 все работает отлично, только я по-моему настраивал это с помощью gsynaptics
                                  +1
                                  А не могли бы вы свой xorg.conf показать? Человеку из комментария выше я помочь не смог :(
                                    +3
                                    Тут апять-таки HAL…
                                    xorg.conf — устарел и впринципе не используется, в дальнейшем вообще будет удалён, а конфиги разбросаны по куче XML- файлов.

                                    man xorg.conf:

                                    Xorg supports several mechanisms for supplying/obtaining configuration and run-time parameters: command line options, environment variables, the
                                    xorg.conf configuration file, auto-detection, and fallback defaults. When the same information is supplied in more than one way, the highest
                                    precedence mechanism is used. The list of mechanisms is ordered from highest precedence to lowest. Note that not all parameters can be supplied
                                    via all methods. The available command line options and environment variables (and some defaults) are described in the Xserver(1) and Xorg(1)
                                    manual pages. Most configuration file parameters, with their defaults, are described below. Driver and module specific configuration parameters
                                    are described in the relevant driver or module manual page.
                                      +5
                                      Блин… и нафига? XML для конфигов это ужасно.
                                        0
                                        …а злоупотребляют им в линуксе чем дальше тем больше :(
                                          +1
                                          ̶я так понимаю, что нормальные развитые парсеры есть только для XML…
                                            0
                                            А что лучше?
                                            XML — один из немногих вариантов, который можно править как и руками так и из приложений и при этом:
                                            а) останутся нетронутыми комментарии и проч счастье, которое написал пользователь
                                            б) для этого есть стандартные библиотеки и удобный API (тот же XPath)

                                            В любом случае, если этот XML парсится один раз при старте — оверхэда мало. Вот только беда есть в том, что парсер в libxml2 не однопроходной, кажется.
                                              0
                                              Ну, libxml2 — это не последний и не единственный xml-парсер в unix-мире. Есть ещё как минимум expat и очень удобный и быстрый XmlStream из QtCore4.
                                                0
                                                Сравнили тоже SAX с DOMом (expat/XmlStream и libxml2) — вещи на порядок разного удобства.
                                              0
                                              Почему? Предполагается, что туда вообще ручками никто не будет лазить. А для машинного парсинга xml очень хорош, ибо уже всевозможные грабли обнаружены и ликвидированы.
                                            0
                                            Section «ServerLayout»
                                            Identifier «Default Layout»
                                            InputDevice «Synaptics Mouse» «AlwaysCore»
                                            InputDevice «USB Mouse» «CorePointer»
                                            EndSection

                                            Section «InputDevice»
                                            Identifier «Synaptics Mouse»
                                            Driver «synaptics»
                                            Option «Device» "/dev/psaux"
                                            Option «SHMConfig» «on»
                                            EndSection

                                            Section «InputDevice»
                                            Identifier «USB Mouse»
                                            Driver «mouse»
                                            Option «Device» "/dev/input/mice"
                                            Option «SendCoreEvents» «true»
                                            Option «Protocol» «ExplorerPS/2»
                                            Option «ZAxisMapping» «4 5 6 7»
                                            Option «Buttons» «9»
                                            EndSection

                                            описание остальных пропускаю, но мышь оставил
                                            секция server layout обязательно должна быть, и естественно в ней должны быть и keyboard и screen
                                          0
                                          Ого, а для Windows я так понимаю, ничего подобного нету?
                                            0
                                            краем глаза где-то я видел программку для реализации, точнее, упоминание. т.е. найти реально.
                                              0
                                              Да вы в меня надежду вселили)) Приступаю к интенсивному гуглению)
                                                0
                                                Поделитесь, если найдете. Хочется попробовать)
                                                  +3
                                                  Тут есть кое-что — kamions.blogspot.com/2008/11/multitouch-synaptics-andretti-19-2008.html
                                                  Саму утилиту two-finger-scroll я уже скачал, на моей Toshiba Satellite A100 под Windows 7 beta без модифицированных драйверов не заработала. Сейчас эти драйвера пытаюсь выкачать.
                                                  Кстати, кажется, все ссылки на них, кроме sendspace'а, не работают.
                                                    0
                                                    На висте SP1 с родными дровами 9.1.15.0 заработало сразу же без «модифицированных» драйверов. Приятные впечатления)
                                                    Сейчас на семерке буду пробовать.
                                                      0
                                                      В семерке у меня вроде как стоят 11.2.4.0, но two-finger-scroll ругается «Synaptics kernel driver keys missing» и предлагает Reinstall Drivers) Так что я пока качаю мод. дрова.
                                                        0
                                                        Ого, оно таки заработало) Все хорошо, единственное, что не очень нравится — приходится сильно раскорячивать пальцы — иначе эта штука воспринимает два пальца как один)
                                                          +1
                                                          У меня под семеркой тоже мод. дрова потребовало (по первой ссылке скачались, кстати).
                                                          Жаль, что «Circular (future)» :)
                                                            0
                                                            В смысле? Работает же скроллинг по кругу в мод. двайверах — ChiralMotion scrolling.
                                                              0
                                                              Извиняюсь, не правильно выразился. Имел ввиду только программу TwoFingerScroll, в которой эта опция пока недоступна.
                                              0
                                              Есть, просто обновите драйвера, эта и ещё несколько фич появятся в настройках. Полный набор фич зависит от модели тачпада.
                                                0
                                                Засада. Скроллинг по кругу не работает в Firefox/Thunderbird :(
                                                  0
                                                  Видимо, только в Windows :)
                                                    0
                                                    У меня работает.
                                                      0
                                                      Простите, а какой именно драйвер вы используете?
                                                        0
                                                        Сейчас, под XP, v11.1.4.0.
                                                        Под W7 ставил v12.1.0.0, насколько помню, всё тоже работало.
                                                +1
                                                Ох спасибо десять раз, у меня вертикальная прокрутка работала очень туго, а так просто шикарно!
                                                  0
                                                  www.alphatek.info/2009/01/29/gsynaptics-touchpad-on-fedora-10-hal/#more-264

                                                  Тут немного инфы надыбал по конфигурированию ХЭЛЛа. У меня пока настроить это всё не удалось… мож кому пригодится … мож кто поможет мне с ААО 110 …
                                                    0
                                                    Хорошую фичу откопали, риспект :)
                                                    Жаль у меня ноут без тачпада, попробую запомнить что такая фича есть, когда появится ноут с тачпадом, надо будет заюзать :)
                                                      0
                                                      может быть я спрашиваю глупость… но всё же:
                                                      можно ли реализовать идею на мелкософтовской оси?
                                                        –2
                                                        Конечно, причем там оно работает без бубна. Просто обновите драйвера, эта и ещё несколько фич появятся в настройках.
                                                        0
                                                        Любопытно… Хотя есть некоторые сомнения в возможности реализации других, ставших уже стандартными для MultiTouch, «жестов».

                                                        Поправьте меня, если я зря сомневаюсь :)
                                                          0
                                                          Список бы этих жестов полный составил бы кто :) Многие ведь программно привязаны к определенным приложениям наверняка.
                                                        0
                                                        «Естественно, мне захотелось себе такую же, ибо прокрутка по правому краю не лучший выбор.»

                                                        почему не лучший?
                                                          +1
                                                          Видимо потому, что круговая — лучше.
                                                            0
                                                            вы демагогию в виде таблеток принимаете или в виде инъекций?
                                                            +1
                                                            Хотя бы потому, что страница может быть длинной, и прокрутить её нужно более чем на «один вертикальный тачпад» (т. е. от верхней кромки тачпада до нижней). А с круговой прокруткой — нарезаешь круги и радуешься :–)
                                                            0
                                                            прочитал сначала в заголовке как «круговая порука».
                                                            По первой недоумевал содержимому. Теперь исправился ;-)
                                                              0
                                                              В принципе, можно обойтись практически без правки hal-конфигов. Достаточно лишь включить там SHMConfig, а остальное регулировать в юзерспейсе, например, при старте WM, через synclient.
                                                                0
                                                                Можете поделиться конфигом?
                                                                Хочется попробовать такую прокрутку. Видел мануалы в инете — но у меня так не заработало.
                                                                  0
                                                                  А конфига как такового нет, просто нужно установить synclient и поиграться с ним. Через команду «synclient -l» получаем список параметров и их значений, после чего играемся.
                                                                    0
                                                                    Пробовал, но что-то не пашет.

                                                                    Поставил VertTwoFingerScroll = 1
                                                                    Но без толку — при попытке скролла двумя пальцами — курсор прыгает по экрану и ничего не прокручивается. Может нужно еще где-то включить?
                                                                      0
                                                                      Скорее всего, ваш тачпад это не поддерживает.
                                                                        0
                                                                        Странно. Т.к. обычный синаптик.
                                                                0
                                                                А для Windows возможна такая настройка?
                                                                0
                                                                Спрошу, пожалуй, здесь — как определить, поддерживает ли тачпад multitouch? В частности — какими характерными особенностями обладает вывод synclient -m если multitouch поддерживается (и пользователь касается тачпада 2+ пальцами)?
                                                                  +3
                                                                  К вопросу о бубнах и GUI:
                                                                  Раз: sudo aptitude install gsynaptics
                                                                  Два: Правим touchpad.fdi как здесь (А конкретно — включаем использование shared memory драйвером, благодаря чему появляется возможность его конфигурировать из сторонних программ и без перезагрузки иксов: <merge key="input.x11_options.SHMConfig" type="string">on</merge>)
                                                                  Профит: circular_scroll_in_gsynaptics.png - Picamatic - upload your images
                                                                    0
                                                                    Великолепно! Только зачем мне гуй для трех строк? :)
                                                                      0
                                                                      Для трёх — может и не нужен. Но этот гуй — для ~30-40 строк. И без перезагрузки иксов, чтобы увидеть изменения в действии.
                                                                    0
                                                                    humour = on
                                                                    Предлагаю сделать патч, позволяющий с помощью тачпада и знания азбуки морзе вводить символы.
                                                                    Дело подхватят и подобная функция распространится на устройства с сенсорным экраном (АйНад, АйФен и иже с ними) напрочь вытеснив виртуальную клавиатуру и граффити.
                                                                      0
                                                                      Для самых нетерпеливых добавил ссылки на пару полезных комментариев, не у всех хватает терпения читать длинный тред.
                                                                        0
                                                                        У меня, почему то, заработало только в случае установки стартовой позиции «верхняя кромка».
                                                                        Ноутбук dell1501, панель Synaptics TouchPad выбрал, ибо через lshal не нашел название (как-то обрезался сверху текст в консоли)…
                                                                        • UFO just landed and posted this here

                                                                          Only users with full accounts can post comments. Log in, please.