Как я запрашиваю текущее состояние значка мыши?

Как я запрашиваю (из кода) текущий значок/состояние мыши?

enter image description here

Мышь могла нависать над ссылкой в браузере или показывать I-луч от терминала.
Я не забочусь о фактическом положении мыши, или какое приложение это идет - просто его визуальное состояние.

Как я могу запросить человечность для того, на что в настоящее время похожа моя мышь?

Я нахожусь на следующей версии Ubuntu:

lsb_release --all
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.3 LTS
Release:    16.04
Codename:   xenial

использование ретроспективного кадра гнома:

$echo $XDG_CURRENT_DESKTOP
GNOME-Flashback:Unity
$echo $GDMSESSION
gnome-flashback-metacity

(не уверенный, если какое-либо из этого релевантно).

Я собирался взять 32x32 снимок экрана, начинающий с моего местоположения мыши и затем сделать основное распознавание изображений для наблюдения, каково состояние, но это не работает также! Когда Вы делаете снимок экрана (с, говорят, снимок экрана гнома или затвор), он автоматически показывает мышь в своем нормальном состоянии значка несмотря на ее состояние значка, когда снимок экрана сделан.

1
задан 5 October 2017 в 06:53

1 ответ

Известная ошибка

Это, кажется, известная ошибка:

https://bugs.launchpad.net/ubuntu / + source/gnome-screenshot / + ошибка/659399
https://bugzilla.gnome.org/show_bug.cgi? id=571602

Согласно потоку мы должны установить пакет gnome-utils который на самом деле не помогает.


Решение

Используя shutter и xdotool командная строка, я смог получить рабочее решение:

  1. Сценарий:
    #!/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'
  1. Это сделало снимок экрана, но использование указателя курсора по умолчанию. НО это дало мне сообщение об ошибке:

    WARNING: XFIXES extension not found - using a default cursor image
    
  2. С той ошибкой у меня было направление. Я быстро сделал 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:~$
    
  3. Я просто установил все:

    subroot@subroot:~$ sudo apt install libxcb-xfixes0 libxfixes3 libxcb-xfixes0-dbg libxfixes-dev libxfixes3-dbg libxcb-xfixes0-dev libx11-protocol-other-perl
    . . .
    subroot@subroot:~$
    
  4. Я затем попробовал еще раз, и это работало::)

    subroot@subroot:~$ sh cursor.sh
    

Результат:

enter image description here enter image description here

Просто игра вокруг с размерами и размером снимка экрана для получения идеального изображения указателя курсора.Удачи.

0
ответ дан 8 December 2019 в 03:51

Другие вопросы по тегам:

Похожие вопросы: