Как спрятать курсор мыши

40

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

Моя лучшая ставка была бы темой курсора, состоящей только из прозрачных курсоров. Я немного удивлен тем, что не могу найти пользовательский интерфейс для переключения и, возможно, установить темы курсора в пользовательском интерфейсе Unity по умолчанию, но поскольку я не буду использовать Unity, это не является большой проблемой. Похоже, что все перечисленные альтернативы update-alternatives --list x-cursor-themeотносятся к .themeфайлам, поэтому я искал их в списке пакетов . В результирующем списке не указаны возможные кандидаты, т.е. нет пакетов, содержащих в своем имени «невидимые» или «прозрачные».

До сих пор, мой лучший выбор - какой-то результат в Google , получивший readme для «XCursor Transparent Theme» . Это будет означать сбор этих источников самостоятельно, возможно, включение их в мой PPA. Я также немного скептически отношусь к этому результату, так как readme датируется 2003 годом. И я не уверен, что не усложняю ситуацию. В конце концов, в Precise есть некоторая поддержка сенсорных устройств, поэтому я не верю, что я первый, кто хочет избавиться от курсора мыши.

  • Есть ли другой способ, который не использует скомпилированный пользователем двоичный код?
  • Есть ли пакет тем для прозрачных курсоров, который я пропустил?
  • Есть ли какой-то другой механизм, чтобы курсор исчезал без изменения темы курсора?

Я буду использовать апплеты Matchbox WM , Firefox и Java, поэтому я буду рад любому решению, работающему в такой конфигурации. Меня не интересуют какие-либо решения, связанные с Gnome или Compiz, так как я тоже не буду работать.

MVG
источник

Ответы:

41

Попробуйте 'unclutter'

Цель этой программы - скрыть указатель, если мышь некоторое время не двигалась. Используя его, вы можете заставить указатель появляться только тогда, когда пользователь касается экрана, и исчезать сразу после него. (возможно, это было не совсем то, к чему вы стремились. Но это намного проще, чем ваша альтернатива = P)

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

sudo apt-get install unclutter

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

unclutter -idle 0.01 -root

число - это количество секунд до исчезновения указателя (в данном случае 1/100 секунды)

josinalvo
источник
1
Если вы комбинируете это решение с темой значков, которая выглядит как небольшое кольцо, она должна выглядеть довольно хорошо даже с задержкой в ​​0,1 секунды. В этом случае задержка будет служить визуальным подтверждением того, что дисплей обнаружил касание.
Микко Ранталайнен
классная идея! у тебя есть такая тема? Я хотел бы добавить рекомендацию к ответу
josinalvo
1
Извините, я не в курсе существующей темы. Не должно быть слишком сложно создать такую ​​тему вручную. Создайте подходящий файл PNG и используйте его xcursorgenдля создания файла курсора X11. Затем вам нужно написать cursor.themeфайл, поместить файлы курсора в подкаталог cursorsи создать ZIP-файл из всего этого. См. Ehow.com/how_5026012_make-cursors-file-ubuntu.html и freedesktop.org/wiki/Specifications/cursor-spec/?action=print и некоторые существующие темы gnome-look.org/?xcontentmode=36 для получения дополнительной информации.
Микко Ранталайнен,
удивительный, идеальный симбиоз с NoMachine! Спасибо!
Водолей Power
Иногда использование unclutter может привести к потере фокуса приложения, например, при просмотре веб-страниц колесо мыши может не работать, пока вы не нажмете или не переместите указатель мыши. Просто имейте это в виду, чтобы вы не думали, что это ошибка в веб-браузере, как я сделал;)
golimar
22

Если вы не хотите, чтобы курсор появлялся (подходит для сенсорных экранов), моего опыта будет недостаточно. Вместо этого вы можете использовать use -nocursorпри запуске X.

Пример:

startx -nocursor

См. Http://www.x.org/wiki/AdvancedTopicsFAQ/#index1h2.

Gibbs
источник
1
Отличный ответ! У меня это работало только так:startx -- -nocursor
czerasz
6
Есть ли способ изменить эту переменную после запуска X?
Аарон Франке
12

Если вы используете lightdm:

Изменить /etc/lightdm/lightdm.conf, добавив:

xserver-command=X -bs -core -nocursor

если вы используете nodm:

Изменить /etc/default/nodm, заменив:

NODM_X_OPTIONS='-nolisten tcp'

с

NODM_X_OPTIONS='-nolisten tcp -nocursor'

Это здание от Гиббса очень полезный ответ

Питер
источник
Действительно ли нужны -bs и -core? По умолчанию мой комментарий с lightdm прост X, а установка xserver-command=X -nocursorскрывает курсор.
Андреас
1
@ Андреас, аргументы "-bs -core" были в моем файле lightdm.conf на момент написания статьи. Если они не в твоем, я бы предположил, что они не нужны. Мне просто нужно было добавить "nocursor", чтобы сделать эту работу.
Петр
1

Ubuntu 16.04

Откройте /usr/share/lightdm/lightdm.conf.d/50-xserver-command.confи отредактируйте эту строку:

xserver-command=X -core

Добавьте -nocursorк этому. Так:

xserver-command=X -core -nocursor

Сохраните и перезапустите.

Предупреждение : Как и другие ответы на этот вопрос, ошибки в этом файле будут препятствовать инициализации Xorg. В любом случае, вы все равно можете войти в терминал и вернуться.

Раэль Гугельмин Кунья
источник
ПРИМЕЧАНИЕ: это может привести к сбою входа в систему на вашем компьютере. Используйте с осторожностью.
Игорь
1
@ Игорь, хотя и допустимая точка, ошибка в этом файле предотвратит инициализацию Xorg. Таким образом, пользователь все еще может войти в терминал и вернуться. Во всяком случае, я добавлю упоминание об этом.
Раэль Гугельмин Кунья