Скрытие курсора мыши динамически при использовании сенсорного экрана

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

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

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

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

2 Solutions collect form web for “Скрытие курсора мыши динамически при использовании сенсорного экрана”

Вы можете использовать

Чтобы использовать, установите его

 sudo apt-get install unclutter 

затем запустите его

 unclutter -idle 0.01 -root 

Обратите внимание, что число после простоя означает время до его скрытия. В этом случае его значение равно 1/100 секунды. Вы можете попробовать изменить его на значение, которое всегда будет скрыто.

Это скроет курсор, когда вы его не переместите. Я уверен, что есть возможность полностью скрыть это.

Я полагаю, вы используете сенсорный экран, когда у вас нет мыши, и подключите его в системе, когда вы хотите его использовать. В этом случае вы можете использовать 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" 

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

  • джойстик как мышь с Fedora
  • Включить прокрутку с помощью trackpoint + middleclick на wayland
  • Начать X как пользователь, отличный от root
  • Самый быстрый способ получить символ евро в подсказке?
  • Настройка Multiseat X с помощью одной видеокарты с двумя головками
  • Консольные TTY-дисплеи на встроенном мониторе Intel HD3000 вместо монитора NVidia GPU
  • xorg не обнаруживает мой AMD Radeon 8600 из-за «Недопустимый ATI BIOS от int10, адаптер не поддерживает VGA»
  • Однокнопочный аудиозахват в Linux (за исключением ключевого релиза)
  • Установка минимальной скорости указателя без использования GNOME GUI
  • urxvt не загружает шрифт xft из ~ / .Xdefaults
  • Где Xkb получает свою конфигурацию?
  • Interesting Posts

    Как-то удалось отключить mplayer и не могу понять, как восстановить звук

    LVM Ontop из LUKS с использованием Grub

    Найти источник всех установленных пакетов в системах на базе Debian

    Как ядро ​​знает, какой файловый дескриптор записывать данные после fork () на параллельном сервере?

    Журнал, если нет сети

    Иконки иконок для значков Linux

    Как определить, будет ли запущенный tar вызвать диск для заполнения

    Как установить значение по умолчанию для CPU для всех демонов в systemd?

    Bash, когда нужно использовать $ @, "$ @" и $ {1 + "$ @"}

    Могу ли я печатать через CUPS на устройстве ARM без драйверов, установив CUPS на сервер x86 с драйверами?

    Переход на суперпользователь при запуске скрипта оболочки

    Как кодировать огромные файлы FLAC в MP3 и другие файлы, такие как AAC?

    Как служба с PrivateTmp = true получает доступ к сокету unix в каталоге / tmp (например, для отправки заданий Torque из PHP, работающего в Apache)

    Linux IO Flow – VFS для блокировки устройства

    Что такое «Charlie &» в поле gecos на OpenBSD для root?

    Linux и Unix - лучшая ОС в мире.