Linux скрыть курсор мыши

Обновлено: 04.07.2024

Как скрыть указатель мыши под X11? Я хотел бы использовать встроенные библиотеки для этого, а не что-то вроде SDL (SDL_ShowCursor (0)) или glut (glutSetCursor (GLUT_CURSOR_NONE)). Кроме того, указатель мыши должен быть скрыт независимо от местоположения указателя, а не только в его собственном окне.

спросил(а) 2009-03-19T03:25:00+03:00 12 лет, 8 месяцев назад

Вы можете создать и установить невидимую тему курсора. Этот трюк используется maemo, потому что он довольно бессмыслен, чтобы иметь курсор на сенсорном устройстве.

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

ответил(а) 2009-03-19T04:00:00+03:00 12 лет, 8 месяцев назад

Здесь описание, как это делает утилита unclutter .

Unclutter - это программа, которая постоянно работает на фоне X11 сессия. Он проверяет позицию указателя (курсора) X11 каждые несколько секунд, и когда он находит, что он не перемещен (и никаких кнопок нажимаются на мышь, а курсор не находится в корневом окне) он создает небольшое вспомогательное окно в качестве дочернего элемента окна, в котором находится курсор. В новом окне устанавливается курсор размера 1x1, но маска все 0, т.е. невидимый курсор. Это позволяет увидеть весь текст в например, xterm или xedit. Толпа человеческих факторов согласилась бы с этим должно сделать вещи менее отвлекающими.

После создания программа ждет, пока указатель покинет окно а затем уничтожает его, восстанавливая исходную ситуацию. События кнопок передаются прозрачно в родительское окно. Они, как правило, заставят курсор появляться, потому что активный захват будет выполняться программой, пока кнопка не работает, поэтому указатель по-видимому, покинет окно, хотя его положение x y не изменится.


ответил(а) 2009-03-30T14:32:00+04:00 12 лет, 7 месяцев назад

Я бы предпочел использовать более простой метод:

Вы почти не видите курсор, но он доступен. Чтобы отключить мышь:

Или полностью отключить модуль мыши где-нибудь в /etc/. См. Руководство по дистрибуции.

Как скрыть указатель мыши под X11? Я хотел бы использовать встроенные библиотеки, чтобы сделать это, а не что-то вроде SDL (SDL_ShowCursor(0)) или glut (glutSetCursor(GLUT_CURSOR_NONE)). Кроме того, указатель мыши должен быть скрыт независимо от местоположения указателя, а не только в собственном окне.

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

к сожалению, возможность изменения темы глобального курсора во время выполнения неоднородна в приложениях и наборах инструментов X11. Вы можете изменить ресурс сервера Xcursor.theme , и никто не заметит (обычно это запрашивается только при запуске); вы можете сообщить xsettings который, похоже, влияет только на Gtk+ программы; KDE использует некоторую связь через свойства в корневом окне и т. д.

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

здесь описание как unclutter утилита делает это.

Unclutter-это программа, которая постоянно работает в фоновом режиме X11 сессия. Он проверяет положение указателя X11 (курсора) каждые несколько секунды, и когда он находит, что он не переместился (и нет кнопок нажатии на мышь, и курсор находится не в корневом окне) он создает небольшое подокно в качестве дочернего элемента окна, в котором находится курсор. Новое окно устанавливает курсор размера 1x1 но маска все 0, т. е. невидимый курсор. Это позволяет увидеть весь текст в например, xterm или xedit. Толпа людей согласится с этим. следует делать меньше отвлекает.

после создания программа ожидает, пока указатель покинет окно а потом уничтожает его, восстанавливая первоначальную ситуацию. События Button прозрачно передаются в родительское окно. Они обычно заставляют курсор появляться снова, потому что активный захват будет сделано программой пока кнопка вниз, поэтому указатель по-видимому, покинет окно, даже если его положение x y не изменится.

Я бы предпочел использовать более простой метод:

вы почти не видите курсор, все еще он доступен. Чтобы отключить мышь:

или отключить модуль мыши постоянно где-то в /etc/. Обратитесь к руководству по распределению.

альтернатива unclutter

Unclutter не работал для меня, так как он не хорошо играет с аппаратными ускоренными поверхностями (например, теми, которые производятся VA-API intels при декодировании видео). Поэтому я нашел программу, которая спрятала указатель мыши менее окольным путем,hhp, и переписал его в C с минимальными зависимостями, результат hhpc. Я сделал это, чтобы избавить Хаскелла от необходимости скомпилируйте его и потому, что hhp иногда перестает скрывать указатель мыши.

hhpc, полагается только на glibc и xlib , поэтому его легко построить, просто сделайте make release . Вы можете получить код и инструкции от мой репозиторий. Это очень эффективная память и процессор (потому что он почти ничего не делает).

Я закончил с использованием XDefineCursor как ephemient упомянул. Управляющее приложение изменило курсор корневого окна по умолчанию, а другие приложения (которые находятся под моим контролем) унаследовали его.

специфика кода выглядит так:

для того, чтобы скрыть курсор, а затем после того, как я

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

xinit -- -nocursor или startx -- -nocursor может работать.

используйте xbanish! Это "изгнать курсор мыши при вводе"! Начните с

Это мое решение. Он помещает курсор туда, где вы его не видите (в моем случае, в левом нижнем углу)-затем он отключает мышь, поэтому вы не можете ее перемещать.

Примечание вы можете анализировать данные из xrandr , или поместите эти данные в среду при входе в систему, а затем используйте ее; таким образом, вам не придется жестко кодировать. Но, что касается меня, я никогда не меняю разрешение экрана, поэтому 768 в порядке:)

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

Я нашел себе чистое и простое решение, которое отлично работает, без использования " xcb " (для того, что я пытался достичь, это было немного сверхинженерии (..)

все, что вам нужно, это команда "xsetroot" с соответствующими аргументами/параметрами:

- > чтобы скрыть курсор мыши, вы нужен дополнительный маленький файл (я назвал свой " blnk_ptr.cur и")

содержание этого файла:

затем, мы можем использовать две следующие команды:

- > чтобы скрыть курсор указателя мыши:

-> чтобы снова показать курсор указателя мыши:

(вы можете использовать курсор указателя мыши, отличный от "left_ptr", но этот, похоже, широко доступен в системах *nix (..)

Btw - > я еще не знаю, как получите имя указателя, используемого в настоящее время системой с помощью xsetroot --> я думаю, что я [как обычно] digg это тоже, но я был бы рад иметь кого-то, кто знает, как дать мне ответ ( было бы неплохо ;) )


Иногда нас раздражает, когда курсор мыши находится именно в том месте, где мы читаем или печатаем текст и особенно когда смотрим фильм/видео.
Это легко поправит Unclutter.

Unclutter, это небольшая, но очень нужная и полезная в данном случае программа, которая скрывает курсор при отсутствии активности. Если вы не используете мышь/тачпад, а заняты просмотром видео/фильма или печатаете текст, то нет необходимости держать его видимым на экране.


Установка Unclutter

Откройте терминал (Ctrl+Alt+T), скопируйте и выполните следующую команду:

sudo apt install unclutter

У программы Unclutter нет пользовательского интерфейса и запускается она только один раз в диалоге Выполнить программу - Alt+F2, где нужно ввести unclutter и выполнить (нажать Enter).
Либо в терминале выполните команду:

Теперь, если вы не будете двигать мышь, курсор пропадет после 5 секунд.

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

sudo gedit /etc/default/unclutter

Примечание.Измените в команде текстовый редактор gedit на текстовый редактор, установленный в вашем дистрибутиве по умолчанию.

В открывшемся фале, в сроке EXTRA_OPTS color: red;">1 -root" измените единственную цифру на ваш выбор (3, 4, 5 и т.д.), для того чтобы изменить время скрытия курсора.


Действие вступит в силу после следующего входа в систему.

Чтобы не выходить из системы для выполнения изменений, нужно убить процесс unclutter:

killall unclutter

А затем вновь запустите процесс unclutter, выполнив в терминале команду:

Для восстановления курсора на экране, вам нужно только коснуться мышки/тачпада.

Как скрыть указатель мыши под X11? Я хотел бы использовать для этого встроенные библиотеки, а не что-то вроде SDL (SDL_ShowCursor (0)) или перенасыщения (glutSetCursor (GLUT_CURSOR_NONE)). Кроме того, указатель мыши должен быть скрыт независимо от местоположения указателя, а не только в его собственном окне.

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

К сожалению, возможность изменения темы глобального курсора во время выполнения неодинакова для приложений и инструментов X11. Вы можете изменить ресурс сервера Xcursor.theme , и никто этого не заметит (обычно он запрашивается только при запуске); вы можете сообщить xsettings, который влияет только на программы Gtk +; KDE использует своего рода связь через свойства в корневом окне; и т.п.

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

Вот описание, как утилита unclutter делает Это.

Unclutter - это программа, которая постоянно работает в фоновом режиме сеанса X11. Он проверяет положение указателя (курсора) X11 каждые несколько секунд и, когда обнаруживает, что он не перемещается (и на мыши не нажимаются никакие кнопки, и курсор не находится в корневом окне), он создает небольшое подокно как дочерний элемент окна, в котором находится курсор. Новое окно устанавливает курсор размером 1x1, но с маской всего 0, то есть невидимым курсором. Это позволяет вам видеть весь текст, например, в xterm или xedit. Толпа, занимающаяся человеческим фактором, согласится, что это должно меньше отвлекать.

После создания программа ожидает, пока указатель покинет окно, а затем уничтожает его, восстанавливая исходную ситуацию. События кнопок прозрачно передаются родительскому окну. Обычно они вызывают повторное появление курсора, потому что активный захват будет выполнен программой, пока кнопка нажата, поэтому указатель, очевидно, покинет окно, даже если его положение x y не изменится.

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

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

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

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

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

4 ответа

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

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

sudo apt-get install unclutter

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

unclutter -idle 0.01 -root

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

Читайте также: