Как я могу xprop или xwininfo Gnome-Do?

Мне нужно увидеть свойства X всплывающего окна Gnome-Do в отношении этого вопроса, который я задавал ранее. Проблема в том, что как только окно Gnome-Do теряет фокус, оно закрывается, поэтому я не могу изменить фокус на терминал для запуска xprop, Ответ, который я продолжаю видеть в Интернете:

sleep 5; xprop

Затем откройте окно Gnome-Do и дождитесь xprop начать. Это кажется умным, но просто не работает:

 $ спать 5; xprop
xprop: error: не могу схватить мышь. 

То же самое касается xwininfo:

 $ спать 5; xwininfo 

xwininfo: пожалуйста, выберите окно, о котором вы
          хотел бы получить информацию, нажав на
          мышь в этом окне.
xwininfo: ошибка: не удается схватить мышь. 

Я тоже пробовал бегать xprop с использованием Mod+R ярлык в Awesome WM, но пока открыто окно Gnome-Do, ярлык не работает. Он просто вводит г в поле поиска.

У меня больше нет идей. Как мне это сделать?

2 ответа

Решение

Если вы запустите скрипт ниже, он будет записывать в течение 10 секунд (или в любое другое установленное время) вывод xprop Команда на переднем окне (запуск xprop -root команда). Впоследствии он записывает вывод по истечении времени в файл: outfile.txt
Если вы убедитесь, что сохранили Gnome-Do окно активно, пока скрипт не завершится, вы можете быть уверены, что последняя запись соответствует Gnome-Do окно.

Использовать его

  • Просто скопируйте приведенный ниже скрипт в пустой файл, установите в разделе заголовка желаемый путь к выходному файлу (outfile =, используйте абсолютный путь). Сохранить как record_xprop.py
  • Запустите скрипт командой:

    python3 /path/to/record_xprop.py
    
  • Позвони Gnome-Do окно (или любое другое приложение, из которого вам нужны данные).

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

Заметка

Если вам нужно больше времени, просто измените "5" в строке:

 while t < 5:

в любое другое значение, которое вам нужно

Сценарий

#!/usr/bin/env python3
import subprocess
import time

outfile = "/home/jacob/Bureaublad/outfile.txt"
data = []; t = 0
while t < 5:
    data.append(subprocess.check_output(["/bin/bash", "-c", "xprop -root"]).decode("utf-8"))
    time.sleep(2)
    t = t + 1
with open(outfile, "wt") as out:
    for rec in data:
        out.write(rec+"\n"+"-"*20+"\n\n")

редактировать

Если это не работает по какой-либо причине (по-видимому, окно не является передним, как признано xprop), мы могли бы сделать то же самое с wmctrl -l команда (заменить xprop -root от wmctrl -l в сценарии), чтобы сначала идентифицировать окно по его имени.
Как только это будет сделано, мы можем запустить снова xpropс -name опция, чтобы получить необходимую информацию: xprop -name <windowname>

Для обеих команд вы можете запустить sleep или, если вам нужно больше времени, снова запустите скрипт.

Джейкоб получил это в комментариях!

С использованием sleep 1; wmctrl -l Команда, затем открыв Gnome-Do, я получил этот вывод:

0x00e000b9 0 бонус-дебиан До

Который показывает название окна Gnome-Do. Тогда я мог бы использовать имя, чтобы идентифицировать окно для xprop:

sleep 1; xprop -name "Do"

Который дал мне вывод, который я был после:

$ сон 1; xprop -имя "До"
WM_STATE (WM_STATE):
        состояние окна: снято
        окно иконки: 0x0
GDK_TIMESTAMP_PROP(GDK_TIMESTAMP_PROP) = 0x61
_NET_WM_SYNC_REQUEST_COUNTER(CARDINAL) = 14680093
_XEMBED_INFO(_XEMBED_INFO) = 0x1, 0x1
_NET_WM_USER_TIME_WINDOW(WINDOW): идентификатор окна # 0xe00004
WM_CLIENT_LEADER(WINDOW): идентификатор окна # 0xe00001
_NET_WM_PID(CARDINAL) = 6708
WM_LOCALE_NAME(STRING) = "en_US.UTF-8"
WM_CLIENT_MACHINE(STRING) = "бонус-дебиан"
WM_NORMAL_HINTS(WM_SIZE_HINTS):
        программа указала минимальный размер: 19 на 19
        гравитация окна: Северо-Запад
WM_PROTOCOLS(ATOM): протоколы WM_DELETE_WINDOW, WM_TAKE_FOCUS, _NET_WM_PING, _NET_WM_SYNC_REQUEST
WM_CLASS(STRING) = "Делать", "Делать"
WM_ICON_NAME (STRING) = "Делать"
_NET_WM_ICON_NAME(UTF8_STRING) = "Делать"
WM_NAME (STRING) = "Делать"
_NET_WM_NAME(UTF8_STRING) = "Делать"
Другие вопросы по тегам