Отключить курсор мыши linux

Скрипт, скрывающий курсор мышки

Просто оставлю это здесь, потому как сам долго искал/пытался запилить скрипт на хоткей, который бы скрывал курсор мышки, а специальная для этого софтина unclutter, последняя версия которой вышла в 1994 году — уже не работает на современных wm/de, например на осоме и bspwm оно либо сегфолтится, либо течет.

Автор скрипта, Винсент Загарра II, не считал нужным публиковать его где-либо по причине уверенности в том, что это никому не нужно кроме него. Поделился кодом только после переписки по почте.

#!/bin/zsh ############################################################################ # author: milomouse # # detail: banish the mouse cursor to bottom-right corner of the screen and # # disable touchpad (optional); also undo this by returning mouse # # to last position (or center of screen) and enabling touchpad. # ############################################################################ # depend: xdotool: for controlling the mouse # # xdpyinfo: for finding screen dimensions # # synclient: for controlling the touchpad in laptops (optional) # ############################################################################ unsetopt nomatch scriptname=$(print - $0(^:t)) ## VARIABLE: set a temporary file for storing mouse position. FILE="/tmp/user-keep/$/.$" ## CODE: do not edit below this line unless you know what you are doing. function _help() < << EOF usage: $[option] options: -t | --toggle Enable or disable mouse -d | --disable Force disabling of mouse -e | --enable Force enabling of mouse -s | --show Display \$FILE location -h | --help Display this message depends: xdotool ($(print $/=*/not found>/\/*/installed>)) xdpyinfo ($(print $/=*/not found>/\/*/installed>)) synclient ($(print $/=*/not found>/\/*/installed>)) [optional] EOF exit > function __dimensions() < for exe in xdotool xdpyinfo; do which $&>/dev/null || < print "Missing required program: $" ; _err=1 > done [[ $ == 1 ]] && exit 1 xy=$<$<$<$<$<(M)$<"$(xdpyinfo 2>/dev/null)">#*dimensions:*\)>#*dimensions*:>/pixels*>// >/x/ > x=$<$<(s: :)xy>[1]> y=$<$<(s: :)xy>[2]> > function _mayberat() < if [[ $== "0" ]]; then print "You must set a temp file; see source code." && exit 1 fi if [[ ! -d $ ]]; then print "Directory for file does not existing, attempting to create. " mkdir -p $ || < print "Could not create \"$\", make sure you have proper write permissions." ; exit 1 > fi if [[ -f $ ]]; then _yesrat else _norat fi > function _yesrat() < __dimensions if [[ $== 1 ]]; then if [[ -f $ && $<#$(<$)> -eq 2 ]]; then xdotool mousemove $(<$) &>/dev/null rm -f $ &>/dev/null else xdotool mousemove $(($(print $)/2)) $(($(print $)/2)) &>/dev/null rm -f $ &>/dev/null fi which synclient &>/dev/null && synclient TouchpadOff=0 &>/dev/null else print "\$DISPLAY unavailable, aborting." exit 1 fi > function _norat() < __dimensions if [[ $== 1 ]]; then print $<$<$<$(xdotool getmouselocation 2>/dev/null)[1,2]//:/>#x>#y> >>! $ xdotool mousemove $(print $) &>/dev/null which synclient &>/dev/null && synclient TouchpadOff=1 &>/dev/null else print "\$DISPLAY unavailable, aborting." exit 1 fi > [[ -z $1 ]] && _help case $1 in '-t'|'--toggle') _mayberat ;; '-d'|'--disable') _norat ;; '-e'|'--enable') _yesrat ;; '-s'|'--show') print $ ; exit ;; '-h'|'--help') _help ;; *) [[ -z $@ ]] && _help || < print "unrecognized operation: $@ (see --help for usage)" ; exit 1 >;; esac 

Источник

Как скрыть указатель мыши под 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 ()

Источник

shell bash скрыть курсор

Shell-процедуру на bash
Нужно написать на bash следующий скрипт. Написать shell-процедуру, которая: • все почтовые.

Шифрование Bash Shell
Ребят, как зашифровать файл .sh в .x ? Скачивал тут http://www.datsi.fi.upm.es/~frosal/ .

bash/shell подстановка символа *
Здравствуйте! Проблема с подстановкой символа *, который интерпретируется оболочкой как "любой.

Изменить конфигурационный файл командного интерпретатора / Shell, Bash
Необходимо написать скрипт. К сожалению нету времени что бы разобраться. Помогите кто может. .

tput reset tput civis #~ отключаем курсор tput reset tput cnorm #~ включаем курсор

Изменить конфигурационный файл командного интерпретатора / Shell, Bash
Изменить конфигурационные файлы вашего командного интерпретатора таким образом, что бы формировался.

С чего лучше всего начать изучения написания скриптов Bash/Shell
Имею кое-какой опыт программирования на С++ и Qt, но довольно слабо представляю себе написание.

Скрыть курсор
В общем-то задача проста в некотором смысле. Нужно скрыть курсор на всей области Рабочего стола.

Скрыть курсор в консоли
Доброго времени суток. Есть вопрос. Как можно скрыть курсор в консоли, в win 7. Дело в том, что.

Как скрыть курсор?
Для Edit’а в событии OnEnter пишу HideCaret(Edit1.Handle); а она возвращает false (т.е. не.

Скрыть мигающий курсор
Есть один-единственный edit на всю форму. Я добился того, чтобы фокус всегда был на нем, но нужно.

Источник

Читайте также:  Чем консоль отличается от терминала linux
Оцените статью
Adblock
detector