Как я могу запросить (из кода) текущий значок / состояние мыши?
Мышь может зависать по ссылке в браузере или показывать I-лучу от терминала. Я не забочусь о фактическом положении мыши или о том, в каком приложении она находится, - только о ее визуальном состоянии.
Как я могу запросить ubuntu для того, как выглядит моя мышь?
Я использую следующую версию Ubuntu:
lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
, используя gnome flashback :
$echo $XDG_CURRENT_DESKTOP
GNOME-Flashback:Unity
$echo $GDMSESSION
gnome-flashback-metacity
(не уверен, что это важно).
Я собирался снять снимок экрана 32x32, начиная с моего местоположения мыши, а затем сделать базовое распознавание образов, чтобы узнать, что такое состояние, но это тоже не работает! Когда вы делаете скриншот (скажем, gnome-screenshot или shutter), он автоматически отображает мышь в своем обычном состоянии значка, несмотря на его состояние значка, когда снимок сделан.
Кажется, это известная ошибка:
https://bugs.launchpad.net/ubuntu/+source/gnome-screenshot/+bug/659399 https://bugzilla.gnome.org/show_bug.cgi?id=571602
В соответствии с потоком нам нужно установить пакет gnome-utils, который на самом деле не помогает.
Используя командную строку shutter и xdotool, я смог получить рабочее решение:
Сценарий: #!/bin/bash
# Get current cursor position using xdotool and eval them as variables
eval $(xdotool getmouselocation --shell)
# We need the X and Y coordinates. Minus 10 pixels to create some padding around the cursor
xc=$(($X-10))
yc=$(($Y-10))
# Use shutter to capture a screenshot of the area around the cursor 32px by 32px and save it in the current directory
shutter -s=$xc,$yc,32,32 -c -e -o './%y-%m-%d_$w_$h_$RRRR.png'
Сценарий: С этой ошибкой у меня было направление. Я быстро сделал apt-cache search xfixes, и это получилось: subroot@subroot:~$ apt-cache search xfixes
libxcb-xfixes0 - X C Binding, xfixes extension
libxcb-xfixes0-dbg - X C Binding, xfixes extension, debugging symbols
libxcb-xfixes0-dev - X C Binding, xfixes extension, development files
libxfixes-dev - X11 miscellaneous 'fixes' extension library (development headers)
libxfixes3 - X11 miscellaneous 'fixes' extension library
libxfixes3-dbg - X11 miscellaneous 'fixes' extension library (debug package)
libx11-protocol-other-perl - miscellaneous X11::Protocol helpers
subroot@subroot:~$
Я только что установил все: subroot@subroot:~$ sudo apt install libxcb-xfixes0 libxfixes3 libxcb-xfixes0-dbg libxfixes-dev libxfixes3-dbg libxcb-xfixes0-dev libx11-protocol-other-perl
. . .
subroot@subroot:~$
Затем я снова попытался, и это сработало: :) subroot@subroot:~$ sh cursor.sh
Результат:
https://bugs.launchpad.net/ubuntu/+source/gnome-screenshot/+bug/659399
Просто поиграйте с размерами и размером экрана для получения идеального изображения указателя курсора. Приветствия.
Кажется, это известная ошибка:
https://bugs.launchpad.net/ubuntu/+source/gnome-screenshot/+bug/659399 https://bugzilla.gnome.org/show_bug.cgi?id=571602
В соответствии с потоком нам нужно установить пакет gnome-utils, который на самом деле не помогает.
Используя командную строку shutter и xdotool, я смог получить рабочее решение:
Сценарий: #!/bin/bash
# Get current cursor position using xdotool and eval them as variables
eval $(xdotool getmouselocation --shell)
# We need the X and Y coordinates. Minus 10 pixels to create some padding around the cursor
xc=$(($X-10))
yc=$(($Y-10))
# Use shutter to capture a screenshot of the area around the cursor 32px by 32px and save it in the current directory
shutter -s=$xc,$yc,32,32 -c -e -o './%y-%m-%d_$w_$h_$RRRR.png'
Сценарий: С этой ошибкой у меня было направление. Я быстро сделал apt-cache search xfixes, и это получилось: subroot@subroot:~$ apt-cache search xfixes
libxcb-xfixes0 - X C Binding, xfixes extension
libxcb-xfixes0-dbg - X C Binding, xfixes extension, debugging symbols
libxcb-xfixes0-dev - X C Binding, xfixes extension, development files
libxfixes-dev - X11 miscellaneous 'fixes' extension library (development headers)
libxfixes3 - X11 miscellaneous 'fixes' extension library
libxfixes3-dbg - X11 miscellaneous 'fixes' extension library (debug package)
libx11-protocol-other-perl - miscellaneous X11::Protocol helpers
subroot@subroot:~$
Я только что установил все: subroot@subroot:~$ sudo apt install libxcb-xfixes0 libxfixes3 libxcb-xfixes0-dbg libxfixes-dev libxfixes3-dbg libxcb-xfixes0-dev libx11-protocol-other-perl
. . .
subroot@subroot:~$
Затем я снова попытался, и это сработало: :) subroot@subroot:~$ sh cursor.sh
Результат:
https://bugs.launchpad.net/ubuntu/+source/gnome-screenshot/+bug/659399
Просто поиграйте с размерами и размером экрана для получения идеального изображения указателя курсора. Приветствия.