web-dev-qa-db-ja.com

xpropまたはxwininfo Gnome-Doを実行するにはどうすればよいですか?

この質問 に関して以前に尋ねたGnome-DoポップアップウィンドウのXプロパティを確認する必要があります。問題は、Gnome-Doウィンドウがフォーカスを失うとすぐに閉じるため、ターミナルにフォーカスを変更してxpropを実行できないことです。私がインターネットで見続ける答えは次のとおりです。

sleep 5; xprop

次に、Gnome-Doウィンドウを開き、xpropが開始するのを待ちます。それは賢いようですが、単に機能しません:

$睡眠5; xprop 
 xprop:エラー:マウスをつかめません。

xwininfoについても同じことが言えます:

$睡眠5; xwininfo 
 
 xwininfo:そのウィンドウで
マウスをクリックして、情報が必要なウィンドウを選択してください。
 xwininfo:エラー:マウスをつかむことができません。

また、Awesome WMでMod+Rショートカットを使用してxpropを実行しようとしましたが、Gnome-Doウィンドウが開いている間はショートカットが機能しません。検索ボックスにrを入力するだけです。

これ以上のアイデアはありません。どうすればいいですか?

1
Hubro

以下のスクリプトを実行すると、最前面のウィンドウでxpropコマンドの出力(xprop -rootコマンドの実行)が10秒間(または設定した他の時間)記録されます。その後、時間が経過した後、出力をファイルに書き込みます:outfile.txt
スクリプトが終了するまでGnome-Doウィンドウをアクティブにしておくと、最後のレコードがGnome-Doウィンドウに対応していることを確認できます。

それを使用するには

  • 次のスクリプトを空のファイルにコピーし、ヘッドセクションで出力ファイルへの目的のパスを設定します(outfile =absolute pathを使用します)。 record_xprop.pyとして保存します
  • 次のコマンドでスクリプトを開始します。

    python3 /path/to/record_xprop.py
    
  • Gnome-Doウィンドウ(またはデータが必要な他のアプリケーション)を呼び出します。

  • 時間が経過すると、出力ファイルにはxprop -rootコマンドの5倍の出力が点線で区切られて表示されます。

注意

さらに時間が必要な場合は、行の「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 -rootwmctrl -l(スクリプト内)、最初に名前でウィンドウを識別するため。
完了したら、-nameオプションを指定してxpropを再度実行し、必要な情報を取得します:xprop -name <windowname>

両方のコマンドについて、sleepコマンドを実行するか、さらに時間が必要な場合はスクリプトを再度実行します。

1
Jacob Vlijm

ジェイコブはコメントでそれを得ました!

sleep 1; wmctrl -lコマンド、Gnome-Doを開くと、次の出力が得られました。

0x00e000b9 0 bonus-debian Do

Gnome-Doウィンドウの名前が表示されます。次に、名前を使用してxpropのウィンドウを識別できます。

sleep 1; xprop -name "Do"

それは私が後になっていた出力を私に与えました:

$スリープ1; xprop -name "Do" 
 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):ウィンドウID#0xe00004 
 DER_WIND 。] _ NET_WM_PID(CARDINAL)= 6708 
 WM_LOCALE_NAME(STRING)= "en_US.UTF-8" 
 WM_CLIENT_MACHINE(STRING)= "bonus-debian" 
 WM_NORMAL_HINTS(WM_SIZE_HINTS): 
プログラムが指定した最小サイズ:19 x 19 
ウィンドウの重力:NorthWest 
 WM_PROTOCOLS(ATOM):プロトコルWM_DELETE_WINDOW、WM_TAKE_FOCUS、_NET_WM_PING、_NET_WM_SYNC_REQUEST 
 WM_CLASS(STRING)= "Do"、 "Do" 
 WM_ICON_NAME(STRING)= "Do" 
 _ NET_WM_ICON_NAME(UTF8_STRING)= "Do" 
 WM_NAME(STRING)= "Do" 
 _NET_WM_NAME(UTF8_STRING)=「する」
1
Hubro