WestComp
Компания
29,94
рейтинг
19 января в 10:38

Разное → Про трекпоинт и эмуляцию мыши

Зачем это нужно и как реализовать программно


Много рассуждений


В предыдущей статье про настройку док-станций, я упоминал как тяжко, в свое время, мне было пользоваться лаптопами «потребительского» сегмента. Отсутствие docking-port'a и необходимость каждый раз по приходу домой или на работу подключать кучу кабелей — все это неприятно и раздражало, но что действительно вызывало страдания, так это отсутствие трекпоинта: той самой «красной пимпочки», которую можно встретить на лаптопах от IBM/Lenovo (синяя или серая в случае HP и DELL). Подробней можно почитать на той же Википедии.

Зачем он нужен? Когда большая часть операций производится с клавиатуры, будь то написание кода, либо работа в командной оболочке, необходимость переместить руку на мышь дабы переместить графический курсор и что-нибудь там кликнуть не вызывает особой радости.



Особую нелюбовь к использованию мыши создает привычка работать на достаточном удалении от монитора (до двух метров), расположив клавиатуру на коленях. Здесь на помощь и приходит замечательный мини-джойстик: для манипуляций графическим курсором, всей кисти нет нужды покидать пределы home row, требуется переместить лишь указательный палец правой или левой руки, а клавиши находятся под большими пальцами. Для наглядности, приведу старый ролик от IBM:



Проблема в том, что на данный момент найти приличную клавиатуру, оснащенную таким устройством становится все тяжелее: серийно их производит только Unicomp, при этом сами клавиатуры весьма громоздкие, с классической 104-key раскладкой.

Существуют модели от Lenovo, в основном ориентированные на использование в серверной стойке (то есть, большую часть времени, валяющиеся там, подключенные к консоли) с довольно низким качеством материалов (дешевый, быстро вытирающийся пластик, хлипкие ножки), плюс все эти клавиатуры мембранные.



Из трех клавиатур производства IBM/Lenovo, самые теплые чувства вызывает модель Space Saver 2: достаточно тяжелая, шероховатый пластик, прочные ножки и резиновые вставки, которые не отклеились за, приблизительно, восемь лет эксплуатации. Недостаток у данной клавиатуры ровно один: она тоже мембранная со всеми вытекающими.

Весьма удобных при использовании в Unix-среде так-называемых 60% клавиатур с трекпоинтом буквально единицы: Tex Yoda и Guru-board, да и те, скорее, являются кастомами, нежели серийно производимыми.




В общем, тяжко нынче любителям трекпоинта: выбор очень мал. Придется либо искать model M раритеты от IBM, либо приобретать Unicomp, либо довольствоваться ножничными мембранками от Lenovo (кстати, тоже весьма не дешевыми).



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

Мало настроек


Сразу вспомнилось, что в X-системе нужный функционал когда-то имелся: для управления графическим курсором можно использовать нампад (активация по Shift+Numlock).

Правда, клавиатурами с нампадом я давным-давно не пользуюсь, да и опять же туда-сюда дергать кисть — это не дело. Посему, способ этот не годится. Мы пойдем другим путем.

Есть такая утилита: xdotool, позволяющая эмулировать нажатия клавиш и движения мыши. Годится она не только для имитации движений мыши, но и для автоматизации каких-либо мышинно-клавиатурных действий.

И так, сценарий прост: забиндить вызов xdotool с нужными параметрами на хоткеи, либо ввести дополнительный режим клавиатуры.

Устанавливаем:
#apt-get install xdotool


Так как я пользуюсь оконным менеджером i3, покажу на его примере. Создавать режимы клавиатуры, которые могут использоваться как для кейчейнов, так и модифицированного ввода, в этом WM одно удовольствие:
mode "name"{
bindsym <key> action
bindsym <key> mode "default" #для выхода
}
bindsym <key> mode "name" #для вызова режима


Для того, чтобы передвинуть курсор мыши, на заданную позицию относительно текущего местоположения, нужно выполнить следующую команду:
xdotool mousemove_relative x y


Для эмуляции клика:
xdotool click [123]

Где 1 — левая кнопка, 2 — средняя, 3 — правая.

А конфиг для i3 будет выглядеть так:
mode "rat" {

		bindsym f exec --no-startup-id  xdotool click --delay 100 1
		bindsym --release a exec --no-startup-id xdotool click --delay 100 3
		
		bindsym --release i exec --no-startup-id xdotool key --clearmodifiers --delay 20 Shift+Insert

		bindsym --release l exec --no-startup-id xdotool mousemove_relative 20 0
		bindsym --release h exec --no-startup-id xdotool mousemove_relative -- -20 0
		bindsym --release j exec --no-startup-id xdotool mousemove_relative 0 20
		bindsym --release k exec --no-startup-id xdotool mousemove_relative 0 -20
        
		bindsym Return exec --no-startup-id  xdotool click --delay 100 1; mode "default"
		
        bindsym Escape mode "default"
		bindsym Mod1+Escape mode "default"
}

bindsym Mod1+Escape mode "rat"

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

К сожалению, реализовать ускорение курсора навскидку не удалось.

Для тех, кто пользуется другими оконными менеджерами или DE, могу порекомендовать утилиту xbindkeys.

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

У кого-то может возникнуть вопрос: если работаем за лаптопом, то почему бы не использовать тачпад? Во-первых, лично мне использовать его тяжело, вплоть до возникновения болевых ощущений: без отрыва пальцев от home row, управление производится большим пальцем сильной руки, вывернутым под тупым углом. В таком положении палец довольно быстро начинает болеть. Если тыкать указательным пальцем, то опять возникает проблема переноса кисти и в этом случае куда проще и логичнее взяться уже, в конце концов, за мышь. Также жутко раздражали ложные срабатывания при наборе текста, отключаться при наборе тачпады научились не так давно, да и то не все.

На этом пока все. Такое решение вполне сгодится как временная мера. А в качестве постоянной, планирую восстановить IBM SpaceSaver 2 и переделать ее в механику.
Ваше отношение к трекпоинту:

Проголосовало 399 человек. Воздержалось 84 человека.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Автор: @d7s2di
WestComp
рейтинг 29,94
Компания прекратила активность на сайте

Комментарии (69)

  • +5
    Интересный костыль, требующий использования, во-первых, двух рук, во-вторых, всех пальцев.
    А вот за список клавиатур с трекпойнтами — спасибо.
    • +4
      Так этот костыль и предназначен для тех, кто использует обе руки и все пальцы.
  • +3
    Уж извините, но я действительно не понимаю всех этих заморочек!
    Трекболы, управление мышью с клавиатуры, вертикальные мыши, изогнутые клавиатуры, трекпоинты, неудобство тачпада, туннельный синдром…
    Программирую последние 20 лет и ни разу не замечал проблем с этими вещами.
    На работе обычная клавиатура + мышь, дома ноутбук с тачпадом — руки «перестраиваются» автоматически, неудобств не замечаю, никогда ничего не болит. Может со мной что-то не так?
    • +5
      Это просто привычка.
      Вас вполне устраивает, что надо отрывать руки от клавиатуры, чтобы потыкать тачпад, потом вернуть их обратно и работать дальше. Это медленнее, но Вы так привыкли. Это кому-то, например мне, неудобно, но Вам так привычнее.
      На моем Thinkpad есть и тачпад, и трекпоинт, так вот тачпадом почти не пользуюсь, и никак не могу понять, почему многие производители перестали делать клавиатуры с трекпоинтами и перешли полностью на тачпады — ну вот реально неудобно…
      • –3
        Полагаю, дело в том, что вы свой опыт обобщаете на всех людей за компьютером :)
        Мне вот, например, тачпад сильно удобнее (если, он, конечно, нормального размера, а не с пятачок).
      • 0
        Я в свою очередь предпочитаю мышь, но когда ее нет использую трекпоинт, тачпад только когда нет ни того ни другого.
        И я тоже терпеть не могу потребительские лэптопы, сплошное недоразумение и понты в одном флаконе.
    • 0
      Каждому свое. Мне проблематично держать дополнительный столик под мышь, а тянуться за мышью на основном столе далеко и придется сильно менять положение (например, убрать со стола ногу).
    • 0
      Поиграйте как-нибудь в osu! месяцок на мыши.
      • 0
        Зачем? Так-то для игрулек у меня есть геймпад.
        • 0
          На геймпаде в эту игру играть нельзя.

          • 0
            Ох, суровая игра. Пожалуй, не буду даже пробовать.
  • +9
    У меня Lenovo X220 и я оценил трекпоинт с самых первых дней. Тачпад выключил и не включал ни разу за три года.
    Мне кажется, нужно голосование вставить:
    * у меня нет трекпоинта и я не понимаю зачем он нужен
    * трекпоинта нет, очень страдаю
    * трекпоинт есть, но не использую
    * у меня есть трекпоинт и я его люблю
    • +1
      Плюсую, но думаю, что безоговорочным лидером будет первый вариант.
    • 0
      А как вы скроллите текст при выключенном точпаде? Я вот к двум пальцам привык — удобно.
      • +7
        Большим пальцем зажимается средняя кнопка, а указательным тычется трекпоинт в нужном направлении.
        • 0
          Листать текст так неудобно. Я имею в виду, на большой скорости, когда двумя пальцами скребётся по точпаду с частотой 2-3 раза в секунду.
          • +1
            Листать трекпоинтом, когда можно листать с клавиатуры?
            • 0
              Не всюду и не всегда работает. Например, когда открывается хабр для коммента, у него курсор в поле ввода — pgup/pgdn не работают. А два пальца/колесо — работают.
              • 0
                Попробовал, действительно. Можно повесить еще пару хоткеев на эмуляцию скролла, но мне проще покинуть поле ввода, нажав один раз .
          • +1
            У вашего трекпоинта нет градации силы нажатия?
            Я на своем thinkpad t430u могу и медленно проскроллить и от начала в конец за долю секунды перелететь и любую скорость пролистывания между этими двумя крайностями получить.
        • 0
          Круто! Может дадите ссылку на какой-нибудь список того что можно делать с трэкпоинтом?
      • +2
        Я скрою клавишами hjkl в браузере и m-hjkl в GTK-окружении.
      • +2
        У X220 тачпад ужасно неудобный, ИМХО. Он короткий по длине и пупырчатый (!). Ощущения не те. Да и нет привычки скроллить пальцами.
        Зато средняя кнопка под большой палец ложится очень удобно, в то время как указательный на трекпоинте.
        Уже после недели использования привыкаешь к трекпоинту так, что не понимаешь зачем вообще этот тачпад, который все время задеваешь ладонями случайно и курсор сбивается.

        Надо сказать, что мышка, на мой взгляд — как устройство ввода удобнее. Но ей нужна ровная поверхность, а ее у меня рядом дефицит в 90% случаев. Да и, как правильно тут говорили, переносить руку с клавиатуры очень неудобно.
        Я пробовал разные устройства, втч устройства типа "мышь на палец". Это совсем игрушки, как оказалось.

        я уже сейчас уверен, что мой следующий ноутбук будет Lenovo именно как один из немногих, поддерживающих трекпоинт. Ну еще по многим причинам, но это один из важных.
        • 0
          Не мучайте так себя — тачпад в настройках отключается, после чего совершенно не мешает.
    • +1
      Вот скажите, как brother in arms — случайно у него не сталкивались с дрейфом курсора?
      То есть, такое впечатление, что курсор тянет куда-то.
      Мало того, что в одну сторону едет легче, чем в другую, так ещё и сам иногда плывёт после того, как отпускаю TP.
      Может нужна какая-то калибровка?
      А то я даже в результате купил маленькую мышку и перестал пользоваться TP, хотя очень нравился он мне.
      • 0
        Бывает такое. Наблюдалось на usb travel keyboard, на беспроводной, IBM'овской и лаптопах не сталкивался.
      • 0
        Бывает, замечал. Пару раз покачать посильнее трекпоинт — и все нормально становится.
        Возможно датчик слишком чувствительный — там отклонения же чрезвычайно маленькие — вот и «залипает».
        Кстати, у обычных оптических мышей тоже такое замечал, когда мышка не плотно к поверхности прилегает.
      • +1
        Это ожидаемое поведение, которое много раз описывалось на форумах леново. После длительного удержания трекпойнта в одном положении (не нулевом — например, при продолжительном скролле) происходит дрейф курсора в противоположную сторону, это как-то связано с автокалибровкой трекпойнта.
        Хотя вот на T440 я такого поведения не припоминаю за год эксплуатации. На старых, в т.ч. домашнем X230, было.
  • 0
    Я старый пользователь клавиатур Unicomp и мышек. Печатать учился ещё на печатной машинке, так что ударять с силой по клавишам привык с детства. Как кисть правой руки начала болеть, попробовал trackpoint, но потом перешёл на трекболы. Купил себе четыре разных трекбола, поигрался со всеми и выбрал Logitech Marble Mouse под левую руку.
  • +1
    Если не возражаете, приведу пример похожей настройки под мак (два первых пункта):

    Никогда не имел трекпоинт, но эмуляцию оценил, периодически пользуюсь.
    • 0
      Конечно не возражаю, картинку сохраню, пожалуй: вдруг когда-нибудь опять придется работать за маком.
  • +1
    Guru-board. Синяя механика да ещё и трекпоинт. Всё хорошо, только нет в продаже…
    • +1
      Ну да. Как и tex-yoda существует в единичных экземплярах.
  • +3
    Давно уже прешёл исключительно на ноуты, так что стенаний по поводу клавиатур не сильно понимаю. Сейчас у меня и тачпад и трекпоинт. Пользуюсь и тем и тем в зависимости от ситуации. Трекпоинт хорош в преодолении больших дистанций — это получается быстро и без «перехватов». Тачпад же при этом приходится «перехватывать» и «возюкать» по нему пропорционально расстоянию. С другой стороны тачпад хорош на коротких дистанциях — он позволяет быстро и точно спозиционировать курсор, а с трекпоинтом из-за регулировки скорости перемещения, а не позиции, приходится постоянно идти на компромис между скоростью и точностью позиционирования. Попробуйте трекпоинтом быстро нарисовать ровный круг и сравните с тачпадом. Ещё у тачпада есть костыли типа регулировки скорости перемещения курсора с помощью модификаторов, продолжение движения по достижении края, его даже можно превратить в «трекпад», заставив изменять не позицию, а скорость. Кроме того у тачпада есть скроллбары и жесты. А трекпоинт — штука не расширяемая, да ещё и «залипает» периодически, и тогда приходится несколько секунд теребонькать его, чтобы он не уводил курсор в угол. С другой стороны современные тачпады повадились делать нажимаемыми, без физических кнопок. Хочется найти того человека, что это придумал, и плюнуть ему в лицо. Но нынешний lenovo-thinkpad-yoga в смысле средств управления — шикарен. Тачпад хоть и нажимаемый, но рядом с ним и три мышиные кнопки есть, по середине клавы клитор, да ещё и по экрану можно пальцем елозить.
    • 0
      Его надо не «теребонькать несколько секунд», а оставить полностью в покое — тогда он за полсекунды в норму вернётся…
      • 0
        Если бы всё было так просто, я бы даже не заикнулся об этой проблеме :-) Меня больше другая напрягает — каждую секунду курсор затыкается. Что с тачпада, что с трекпоинта. Находил в инете похожие проблемы — там было это из-за какого-то сервиса от интел, но у меня такого нет.
  • +1
    Можно ещё заказать UHK, она будет управлять мышью на аппаратном уровне (и к ней будет дополнительный трекпоинт)
    • 0
      Что такое UHK?
      • +1
        • 0
          Охренительная идея (особенно с дополнительными модулями). Но блин, зачем они кнопки ступеньками сделали :(
          • +1
            а это у них спрашивали уже
            Говорят, если пойдёт хорошо, то могут и версию с typeMatrix раскладкой.
            Из раздельных ещё ErgoDox, но без трекпоинта и собирать самому.
          • 0
            И не сделали беспроводной? Этот шнур по центру — ну архаизм же.
    • 0
      Думается, что у нее та же самая проблема, что у tex-yoda и guruboard: единичные экземпляры. В общем, кому хочется, надо ловить на массдропе. Но с нынешним курсом… А если учесть, что брать их, по-хорошему, нужно две: для работы и дома, то становится совсем грустно.

      А идея разделяемой модульной клавиатуры очень хороша.
      • 0
        её ещё не сделали, так что можно присоединиться к заказу. Дорогая, конечно.
  • 0
    В конфиге не хватает эмуляции колесика (не плохо для прокрутки), а также режима выделения. Пойду посмотрю man по xdotool, реально ли такое. А так, я тоже использую i3, возможность оценил.
  • +1
    Пользуюсь мембранкой с трекпоинтом от леновы. Не очень понимаю почему они так всем не нравятся.
    • 0
      ну это просто — если привык к механике, то мембранки не подходят. По себе скажу, что мне не нравится нажимать клавиши до упора для срабатывния.
      • 0
        Нет, не всё так просто.

        Если брать такую, то там не нужно нажимать до упора для срабатывания. Там короткий ход и во время нажатия кнопку «уносит» в крайнее нажатое положение. Скорее надо постараться, чтобы нажать не до упора. У меня к ней 3 минуса: тактильный «клик» слишком сильный и отдаётся в палец; сам механизм туговатый, можно было бы помягче; расположение клавиш ступеньками. В остальном очень удобная. Я ей уже несколько лет пользуюсь.

        Возможно, вы имеете в виду красные Cherry, там действительно можно умудриться нажать «не до упора». Мне лично нравятся коричневые Cherry с амортизирующими резинками — ход клавиш получается достаточно короткий, почти как у ноутбучных мембранок и очень лёгкий механизм с мягким тихим тактильным кликом.
        • 0
          У меня такая есть, с точки зрения хода это обычный "rubber dome". Он срабатывает в самом конце хода.
          Мембранка — это не про ход, а про регистрацию срабатывания.

          Я пользуюсь cherry brown switches на pok3r III и нажимаю их не до конца, а только до тактильного клика; так что клавиши не упираются в подложку. Поэтому я печатаю тише, чем коллеги на эппловских алюминьках.

    • 0
      У меня две клавиатуры от lenovo: беспроводная kt1255 и «консольная» travel-keyboard, видеть их можно на фото. Проблемы у них следующие: очень быстро отломались ноги (ладно, черт бы с ними), пластик вытерся не то, что до блеска а до стирания рисок на f и j. На проводной до блеска также стерся палмрест. На ней же появился заметный люфт клавиш в разные стороны. А самое грустное, что все это не лечится: износились клавиши, покупай новую клавиатуру вместо того, чтобы заменить кейкапы. Попала влага, выбрасывай всю клаву: лечить мембранку бесполезно. Такие дела.

      На лаптопах, к слову, пластик гораздо лучше. Мой старенький X61T в куда более приличном состоянии.
      • 0
        Хм. У меня Lenovo SK-8855 (55Y9003), у неё влагозащита и дренажные отверстия.
  • 0
    Неплохой компромиссный вариант Rapoo E9080. Область справа — тачпад или тач-нампад.

    image

    Если когда-то умрет моя E9050, новая будет именно Е9080.
    • 0
      По-моему, ужасный вариант. Все минусы тачпада и необходимость переноса кисти.
      • 0
        Может по вашему и ужасный. По моему — нет. Кисть переносится ближе, чем к мышке, а иногда можно и безымянным-мизинцем елозить, перенос кисти минимальный, 3-4 клавиши, не многим дальше, чем к трекпоинту. А по поводу самого тачпада — дело привычки.

        Однако, с такой клавиатурой пропадает необходимость держать на столе мышку дополнительно. Идея примерно равна этой:
        image
        • +3
          Как писал выше, каждому свое. А так, то при использовании трекпоинта не требуется перенос кисти, двигается только указательный палец на расстояние как при наборе символа b, а с такой панелькой, рука однозначно будет покидать home-row.

          Это все я вижу как основную проблему тачпадов: или перемещаем кисть, или выгибаем пальцы под неестественными углами. А при расположении под клавиатурой, еще и ложные срабатывания: самая жуткая пытка — это воспользоваться чужим лаптопом, где стоит неутапливаемый тачпад, но настроен «тап»: перескоки тестового курсора, спонтанная потеря фокуса окна — бесит до зубовного скрежета.

          Если уж такое решение радует, могу посоветовать не вестись на «все в одном», а приобрести хорошую клавиатуру и отдельно wacom с функцией тачпада. Хотя, wacom вместе с клавой на коленки не положить, то да.
          • 0
            Ложные срабатывания более-менее фильтруются программно. Да и перемещение кисти почти как до бекспейса, хотя да, больше, чем к трекпоинту, но меньше, чем к мышке.

            2 девайса низя, много и часто переезжаю, еще и ваком таскать с собой… нет. =)
            • 0
              Про бекспейс да. Я тут заметил, что практически им не пользуюсь, проще выжать ^h. Туда же всякие стрелочки, функциональные клавиши и, тем более, нампад. Так и пришел к 60% клавиатуре.
              • 0
                Наверняка в VIM код пишете? =)

                Эти Рапушки хороши тем, что и есть 60% клавиатура, но вот только с трекпедом.

                ^h хорошо, но не везде работает. А вспоминать каждый раз как в этом конкретном приложнении нужно удалять символ — мой мозг отказывается. Ему проще запомнить Backspace, даже если это более энергозатратно.
                • +2
                  Ага, и не только код — даже этот вот пост набираю в VIM'e, вызванном из браузера, как внешний редактор. Я вообще вимозависимый, первые две публикации на хабре были посвящены вимиизации рабочего окружения. В паре с тем же i3 и xdotool, можно сделать так:
                  bindsym --release Ctrl+h exec xdotool key Backspace

                  И сочетание будет работать во всех приложениях, выполняющихся внутри i3 (за редкими исключениями, вроде полноэкранной x2go-сессии).
                  • 0
                    1) Таки с редкими исключениями
                    2) А как же я хистори буду открывать в Хроме?
                    • 0
                      О, вот насчет чего-чего, а про хром точно ничего не знаю. Думаю, там есть какой-нибудь аналог vimperator'a.
              • 0
                та же самая история с 60%, но только vim я так много не использую, а просто pok3r III позволяет всем управлять аппаратно (и переназначать клавиши).
                • 0
                  Кстати, а переназначаются там не только модификаторы, а вообще все и можно аппаратно забивать кастомные раскладки?
                  • 0
                    Там четыре слоя + FN, из них переназначаются три. Всё, кроме [m] [,] [.] [/] [fn] [pn] можно переназначить аппаратно. Не зависит от софта и ОС

                    И на каждую клавишу можно вешать последовательность до 32 нажатий
                    • 0
                      Удобно. Я взял ducky, там переназначаются только модификаторы.
                      • 0
                        я купил просто то, что было из хорошего на местном амазоне
  • 0
    Маусроллеры есть жи, для тех кодеров что не могут припаять тензодатчик к ps/2 проводу

    филиал /hw ¤ поехали
  • +1
    Предлагаю попробовать воспользоваться утилитой keynav.
    • 0
      Отличная утилитка, спасибо!

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разное