Динамічно приховуючи курсор миші під час використання сенсорного екрану


21

У мене ноутбук із сенсорним екраном, і я хочу приховати вказівник кожного разу, коли торкаюся екрана. Я знаю рішення , як Unclutter і startx -nocursorале я хочу покажчик , щоб приховати / показати динамічно, приховування , якщо я використовувати сенсорний екран і показують , коли я використовую апаратний курсор.

Я думав про те, щоб зробити два окремих вказівника та застосувати одне з двох вищезазначених рішень до вказівника сенсорного екрану, але жодне з цих рішень не згадує, як орієнтуватися на один вказівник, а наявність кількох покажчиків робить речі дивними, і це не приховувало б апаратне забезпечення курсор миші.

Я вважаю , що я можу найбільш розумно зробити це робити що - щось на зразок цього , відстеження поточного механізму введення і виконання , xinput -cursor [transparent cursor]коли сенсорний екран використовується і xinput -cursor [normal cursor]всякий раз , коли використовується звичайна миша.

Я дивився на xinput, і це виглядає так, як і апаратна миша, і сенсорний екран підкоряються одному і тому ж вказівнику, вони обидва реєструють однакові події в xev, тому я не дуже впевнений, де б я отримав інформацію, необхідну для диференціації дотику від клацання миші. Це можливо?

Відповіді:


5

Ви можете використовувати

Для використання встановіть його

sudo apt-get install unclutter

потім запустіть його

unclutter -idle 0.01 -root

Зверніть увагу, що число після простою означає час, який він ховає. У цьому випадку його встановлюють на 1/100 секунди. Ви можете спробувати змінити його на значення, яке завжди буде приховано.

Це дозволить приховати курсор, коли ви не перемістите його. Я впевнений, що також є варіант повністю приховати це.


Я бачив рішення, що використовують неполадки, але це не відрізняє використання сенсорного екрана та миші.
erp

2

Я вважаю, що ви користуєтеся сенсорним екраном, коли у вас немає миші, і підключіть його до системи, коли ви хочете ним користуватися. У цьому випадку ви можете використовувати udevправила для відповідного керування вказівником:

ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/user/.Xauthority", ENV{REMOVE_CMD}="/usr/bin/xinput -cursor [transparent cursor]", RUN+="/usr/bin/xinput -cursor [normal cursor]"

Умови, які використовуються для розрізнення миші, запозичені з цієї відповіді .

Майте на увазі, що окремі програми можуть динамічно переглядати курсор, щоб ваш курсор знову став видимим, коли ви наведіть на них вікна. Ви можете запустити / зупинити unclutterнатомість, якщо хочете, щоб усі курсори були сховані скрізь:

ACTION=="add", ATTRS{bInterfaceProtocol}=="02", ATTRS{bInterfaceClass}=="03", ATTRS{bInterfaceSubClass}=="01", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/user/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c unclutter&", RUN+="/usr/bin/killall unclutter"

Особисто я також би взагалі відключив сенсорний екран під час підключення миші, щоб випадкове торкання його не заважало курсору, коли ви очікуєте, що він буде слідувати за мишкою.


це хороший варіант, за винятком того, що я хочу, щоб така поведінка була для мого трекпада, а не тільки для підключених мишей. Я вважаю, що udev впливає лише на пристрої, які динамічно додаються / видаляються?
erp

Ви маєте на увазі, що ваш трекпад - ваша "апаратна миша"? Я б сказав, що вам доведеться спробувати і перевірити, чи працює він. Тачпад може насправді udevвидалятися видаленим, коли ви вимикаєте його за допомогою кнопки Fn (якщо у вас є).
Дмитро Григор’єв

1

Тут доступна роздрібнення інструменту unclutter-fixs, який зараз доступний . Ця версія додає -touchопцію автоматичного приховування курсора кожного разу, коли буде виявлено сенсорний вхід. (Оригінальне сховище unclutter-xfixes знаходиться тут )

Потрібно пам’ятати, що вона все ще включає поведінку приховування курсору через визначений проміжок часу. Ви можете просто встановити --timeoutпараметр на дуже високе значення, щоб обійти це.

Це повинно працювати вам ідеально. У моєму випадку у мене був зовнішній сенсорний екран, і коли я повернусь до звичайного монітора, курсор буде на сенсорному екрані, тому мені доведеться перенести його назад на монітор, звідки я торкнувся. Приємно те, що після запуску миші курсор з’явиться, тому я знаю, де знаходиться.

Приємною перевагою цього варіанту є те, що я все ще можу використовувати свою мишу як звичайну на сенсорному екрані, якщо хочу, але приховати її, коли я цього не роблю.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.