- Как скрыть указатель мыши под Linux/X11?
- ОТВЕТЫ
- Ответ 1
- Ответ 2
- Ответ 3
- Ответ 4
- Ответ 5
- альтернатива unclutter
- Ответ 6
- Ответ 7
- Ответ 8
- Ответ 9
- 🖱️ Автоматическое скрытие курсора мыши с помощью Unclutter через определенное время
- Как работает Unclutter
- Как установить Unclutter на Linux
- Как а втоматически убрать курсор мыши с помощью Unclutter через определенное время в Linux
- Автозапуск Unclutter при старте системы
Как скрыть указатель мыши под Linux/X11?
Как скрыть указатель мыши под X11? Я хотел бы использовать встроенные библиотеки для этого, а не что-то вроде SDL (SDL_ShowCursor (0)) или glut (glutSetCursor (GLUT_CURSOR_NONE)). Кроме того, указатель мыши должен быть скрыт независимо от местоположения указателя, а не только в его собственном окне.
ОТВЕТЫ
Ответ 1
Вы можете создать и установить невидимую тему курсора. Этот трюк используется maemo, потому что он довольно бессмыслен, чтобы иметь курсор на сенсорном устройстве.
К сожалению, возможность изменения темы глобального курсора во время выполнения неравномерна в приложениях и инструментах X11. Вы можете изменить ресурс сервера Xcursor.theme , и никто не заметит (обычно он запрашивается только при запуске); вы можете сообщить xsettings, который, по-видимому, влияет на программы Gtk +; KDE использует какое-то сообщение через свойства в корневом окне; и др.
По крайней мере, изменение курсора для вашего собственного приложения так же просто, как XDefineCursor, и если вы сделаете это в корневом окне, некоторые приложения могут следовать.
Ответ 2
Здесь описание, как это делает утилита unclutter .
Unclutter — это программа, которая постоянно работает на фоне X11 сессия. Он проверяет позицию указателя (курсора) X11 каждые несколько секунд, и когда он находит, что он не перемещен (и никаких кнопок нажимаются на мышь, а курсор не находится в корневом окне) он создает небольшое вспомогательное окно в качестве дочернего элемента окна, в котором находится курсор. В новом окне устанавливается курсор размера 1×1, но маска все 0, т.е. невидимый курсор. Это позволяет увидеть весь текст в например, xterm или xedit. Толпа человеческих факторов согласилась бы с этим должно сделать вещи менее отвлекающими.
После создания программа ждет, пока указатель покинет окно а затем уничтожает его, восстанавливая исходную ситуацию. События кнопок передаются прозрачно в родительское окно. Они, как правило, заставят курсор появляться, потому что активный захват будет выполняться программой, пока кнопка не работает, поэтому указатель по-видимому, покинет окно, хотя его положение x y не изменится.
Ответ 3
Я бы предпочел использовать более простой метод:
Вы почти не видите курсор, но он доступен. Чтобы отключить мышь:
Или полностью отключить модуль мыши где-нибудь в /etc/. См. Руководство по дистрибуции.
Ответ 4
В итоге я использовал XDefineCursor, как упоминалось выше. Приложение управления изменило курсор корневого окна по умолчанию, а другие приложения (которые находятся под моим контролем) унаследовали его.
Особенности кода выглядят следующим образом:
// Hide the cursor if (NULL==(display=XOpenDisplay(NULL))) < printf("Unable to open NULL display\n"); exit(1); >window = DefaultRootWindow(display); Cursor invisibleCursor; Pixmap bitmapNoData; XColor black; static char noData[] = < 0,0,0,0,0,0,0,0 >; black.red = black.green = black.blue = 0; bitmapNoData = XCreateBitmapFromData(display, window, noData, 8, 8); invisibleCursor = XCreatePixmapCursor(display, bitmapNoData, bitmapNoData, &black, &black, 0, 0); XDefineCursor(display,window, invisibleCursor); XFreeCursor(display, invisibleCursor); XFreePixmap(display, bitmapNoData);
Чтобы скрыть курсор, а затем после того, как я закончил
// Restore the X left facing cursor Cursor cursor; cursor=XCreateFontCursor(display,XC_left_ptr); XDefineCursor(display, window, cursor); XFreeCursor(display, cursor);
Чтобы восстановить X левый указатель мыши (так как это корневое окно, и я не хочу, чтобы он оставался невидимым. Я не уверен, но я также могу использовать
XUndefineCursor(display, window);
Ответ 5
альтернатива unclutter
Unclutter не работал у меня, так как он плохо работает с аппаратными ускоренными поверхностями (например, такими, которые создаются VA-API intels при декодировании видео). Поэтому я нашел программу, которая спрятала указатель мыши менее окольным способом, hhp и переписала его на C с минимальные зависимости, результат hhpc. Я сделал это, чтобы избавиться от необходимости иметь haskell для его компиляции и потому, что hhp иногда переставал скрывать указатель мыши.
hhpc, полагается только на glibc и xlib , поэтому его легко создавать, просто сделайте make release . Вы можете получить код и инструкции из моего репозитория. Это очень эффективная память и процессор (потому что почти ничего не делает).
Ответ 6
Существует опция -no-cursor для Xorg 1.7 и более поздних версий. https://www.x.org/wiki/AdvancedTopicsFAQ/
xinit — -nocursor или startx — -nocursor может работать.
Ответ 7
Использовать xbanish! Он «изгоняет курсор мыши при наборе текста»! Начните с
Ответ 8
Я думаю, что этот пост может быть немного старым, но если то, что я нашел, может помочь некоторым из нас, я определенно должен опубликовать его здесь;)
Я нашел себе чистое и простое решение, которое отлично работает, не используя «xcb» (для чего я пытался добиться этого, это было litte over-engineering (..)
Все, что вам нужно, это команда «xsetroot» с соответствующими аргументами/параметрами:
— > , чтобы скрыть указатель мыши, вам нужен дополнительный маленький файл (я назвал свой «blnk_ptr.xbm» )
#define blnk_ptr_width 1 #define blnk_ptr_height 1 #define blnk_ptr_x_hot 0 #define blnk_ptr_y_hot 0 static unsigned char blnk_ptr_bits[] = < 0x00 >;
Затем мы можем использовать две следующие команды:
— > , чтобы скрыть указатель мыши:
xsetroot -cursor blnk_ptr.xbm blnk_ptr.xbm
— > , чтобы снова отобразить курсор указателя мыши:
xsetroot -cursor_name left_ptr
(вы можете использовать курсор указателя мыши, отличный от «left_ptr», но этот, кажется, широко доступен в системах * nix (..)
Btw- > Я еще не знаю, как получить имя указателя, используемого в настоящее время системой, используя xsetroot → Я думаю, что я [как обычно] тоже найду digg, но я был бы рад есть кто-то, кто знает, как мне дать ответ (было бы хорошо;))
Ответ 9
Это мое решение. Он помещает курсор туда, где вы его не видите (в моем случае, в левом нижнем углу) — тогда он отключает мышь, поэтому вы не можете ее перемещать.
Примечание. Вы можете анализировать данные из xrandr или помещать эти данные в среду при входе в систему, а затем использовать ее; таким образом, вам не придется жестко закодировать. Но, что касается меня, я никогда не меняю разрешение экрана, поэтому 768 в порядке:)
setmouse () < DISPLAY=":0" xinput $1 `DISPLAY=":0" xinput | grep Mouse | tr -d " " | tr "\t" " " | cut -d" " -f2 | cut -d"=" -f2` >offmouse () < DISPLAY=":0" xdotool mousemove 0 768 # use xrandr to find out setmouse disable >onmouse ()
🖱️ Автоматическое скрытие курсора мыши с помощью Unclutter через определенное время
Мануал
Киоск-устройства работают с одним приложением 24/7 без какого-либо взаимодействия с пользователем.
В большинстве случаев им даже не нужна клавиатура или мышь.
Одна из распространенных проблем в киосках – указатель мыши.
Когда веб-приложение работает в режиме киоска, указатель мыши может отвлекать пользователей или блокировать область, на которую он смотрит.
Даже если вы уберете мышь, вы все равно увидите курсор мыши.
К счастью, мы можем автоматически скрыть указатель мыши с помощью приложения Unclutter через определенный период времени, когда на десктопах Linux нет движения мыши.
Unclutter постоянно работает в фоновом режиме сеанса X11.
Он отслеживает положение указателя мыши каждые несколько секунд.
Когда он обнаруживает, что мышь не перемещается, или никакие кнопки мыши не нажимались, или курсор не находится в корневом окне, он скрывает незанятое изображение курсора.
Это очень полезно в ситуациях когда вы редко используете мышь.
Чтобы вернуть указатель мыши, просто потрогайте мышку или нажмите любую кнопку мыши.
Как работает Unclutter
Технически говоря, приложение unclutter скрывает указатель мыши, создавая небольшое подокно как дочернее по отношению к окну, в котором находится курсор.
В новом окне устанавливается курсор размером 1×1, но с маской всего 0, то есть невидимым курсором.
После создания программа ждет, пока указатель покинет окно, а затем уничтожает его, восстанавливая исходную ситуацию.
События кнопок прозрачно передаются родительскому окну.
Обычно они вызывают повторное появление курсора, потому что активный захват будет выполняться программой, пока кнопка нажата, поэтому курсор, очевидно, покинет окно, даже если его положение x, y не изменится.
Как установить Unclutter на Linux
Приложение Unclutter доступно в репозиториях по умолчанию многих операционных систем Linux и Unix.
Чтобы установить Unclutter в Arch Linux и его вариантах, таких как Manjaro Linux, запустите:
$ sudo dnf copr enable nbeernink/unclutter-xfixes
$ sudo dnf install unclutter-xfixes
unclutter-xfixes также доступен в AUR, поэтому вы можете установить его с помощью любых вспомогательных программ AUR, таких как Yay.
# pkg install unclutter-xfixes
В других дистрибутивах Linux вы можете скомпилировать и установить его из исходного кода.
Убедитесь, что вы установили инструменты разработки на свой Linux.
Чтобы установить Unclutterpxfixes из исходного кода, выполните одну за другой следующие команды:
$ git clone https://github.com/Airblader/unclutter-xfixes $ cd unclutter-xfixes $ make $ sudo make install
Как а втоматически убрать курсор мыши с помощью Unclutter через определенное время в Linux
Чтобы автоматически скрыть указатель мыши или курсор через определенный интервал времени, например 10 секунд, запустите:
Или вы можете запустить его в фоновом режиме, как показано ниже:
Если курсор мыши не перемещался в течение заданного времени, то есть 10 секунд, приложение Unclutter автоматически скроет курсор с экрана.
Если вы не укажете значение тайм-аута, по умолчанию он автоматически скроет курсор через 5 секунд.
Чтобы вернуть его, просто переместите мышь или нажмите любую кнопку мыши.
Автозапуск Unclutter при старте системы
Вместо того, чтобы вручную запускать Unclutter при каждой перезагрузке, просто добавьте указанную выше команду в свой запуск.
Например, я добавил в свой файл ~/.bashrc следующую строку:
Для получения более подробной информации обратитесь к страницам руководства.
Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
- Аудит ИБ (49)
- Вакансии (12)
- Закрытие уязвимостей (105)
- Книги (27)
- Мануал (2 305)
- Медиа (66)
- Мероприятия (39)
- Мошенники (23)
- Обзоры (819)
- Обход запретов (34)
- Опросы (3)
- Скрипты (114)
- Статьи (352)
- Философия (114)
- Юмор (18)
Anything in here will be replaced on browsers that support the canvas element
В этой заметке вы узнаете о блокировке IP-адресов в Nginx. Это позволяет контролировать доступ к серверу. Nginx является одним из лучших веб-сервисов на сегодняшний день. Скорость обработки запросов делает его очень популярным среди системных администраторов. Кроме того, он обладает завидной гибкостью, что позволяет использовать его во многих ситуациях. Наступает момент, когда необходимо ограничить доступ к […]
Знаете ли вы, что выполняется в ваших контейнерах? Проведите аудит своих образов, чтобы исключить пакеты, которые делают вас уязвимыми для эксплуатации Насколько хорошо вы знаете базовые образы контейнеров, в которых работают ваши службы и инструменты? Этот вопрос часто игнорируется, поскольку мы очень доверяем им. Однако для обеспечения безопасности рабочих нагрузок и базовой инфраструктуры необходимо ответить […]
Одной из важнейших задач администратора является обеспечение обновления системы и всех доступных пакетов до последних версий. Даже после добавления нод в кластер Kubernetes нам все равно необходимо управлять обновлениями. В большинстве случаев после получения обновлений (например, обновлений ядра, системного обслуживания или аппаратных изменений) необходимо перезагрузить хост, чтобы изменения были применены. Для Kubernetes это может быть […]
Является ли запуск сервера NFS в кластере Kubernetes хорошей идеей или это ворота для хакеров Одним из многочисленных преимуществ сетевой файловой системы является ее способность выполнять многократное чтение-запись. И как и все в наши дни, NFS – это просто еще одна служба, которую можно запустить в своем кластере Kubernetes. Однако является ли сервер NFS подходящей […]
Репозитории Git хранят ценный исходный код и используются для создания приложений, работающих с конфиденциальными данными. Если злоумышленнику удастся скомпрометировать учетную запись GitHub с уязвимым репозиторием, он сможет перенести вредоносные коммиты прямо на производство. Подписанные коммиты помогают избежать этого. Что такое подписанные коммиты? Подписанные коммиты подразумевают добавление цифровой подписи к вашим коммитам с использованием закрытого криптографического […]