AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 578547
Accepted
Hubro
Hubro
Asked: 2015-01-28 13:31:32 +0800 CST2015-01-28 13:31:32 +0800 CST 2015-01-28 13:31:32 +0800 CST

我怎样才能 xprop 或 xwininfo Gnome-Do?

  • 772

关于我之前提出的这个问题,我需要查看 Gnome-Do 弹出窗口的 X 属性。问题是一旦 Gnome-Do 窗口失去焦点它就会关闭,所以我无法将焦点转移到终端上运行xprop。我一直在网上看到的答案是:

sleep 5; xprop

然后打开Gnome-Do窗口等待xprop启动。这看起来很聪明,但根本行不通:

$ 睡 5; xprop
xprop: 错误: 无法抓取鼠标。

这同样适用于xwininfo:

$ 睡 5; xwin信息

xwininfo: 请选择您所关注的窗口
          想通过点击信息
          鼠标在该窗口中。
xwininfo: 错误: 无法抓取鼠标。

我也试过xprop使用Mod+RAwesome WM 中的快捷方式运行,但是当 Gnome-Do 窗口打开时,快捷方式不起作用。它只是在搜索框中键入一个 r。

我没有更多的想法。我该怎么做呢?

xorg
  • 2 2 个回答
  • 4844 Views

2 个回答

  • Voted
  1. Best Answer
    Jacob Vlijm
    2015-01-28T14:02:42+08:002015-01-28T14:02:42+08:00

    xprop如果您运行下面的脚本,它会在最前面的窗口(运行命令)上记录命令的输出 10 秒(或您设置的任何其他时间xprop -root)。随后,它会在时间过去后将输出写入文件:outfile.txt
    如果确保Gnome-Do在脚本完成之前保持窗口处于活动状态,则可以确定最后一条记录对应于该Gnome-Do窗口。

    使用它

    • 只需将下面的脚本复制到一个空文件中,在 head 部分中设置输出文件的所需路径(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-namexprop -name <windowname>

    对于这两个命令,您可以运行sleep命令,或者,如果您需要更多时间,则再次运行脚本。

    • 2
  2. Hubro
    2015-01-28T14:50:12+08:002015-01-28T14:50:12+08:00

    雅各布在评论中得到了它!

    使用sleep 1; wmctrl -l命令,然后打开 Gnome-Do,我得到了这个输出:

    0x00e000b9 0 bonus-debian 做

    其中显示了 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(红衣主教)= 14680093
    _XEMBED_INFO(_XEMBED_INFO) = 0x1, 0x1
    _NET_WM_USER_TIME_WINDOW(WINDOW):窗口 ID # 0xe00004
    WM_CLIENT_LEADER(WINDOW):窗口 id # 0xe00001
    _NET_WM_PID(红衣主教)= 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) = "做", "做"
    WM_ICON_NAME(STRING) = "做"
    _NET_WM_ICON_NAME(UTF8_STRING) = "做"
    WM_NAME(STRING) = "做"
    _NET_WM_NAME(UTF8_STRING) = "做"
    • 2

相关问题

  • 如何从命令行重新启动 X Window Server?

  • xorg 中是否有用于更改视频驱动程序的 GUI?

  • 类似于 Eyefinity 的东西?

  • 如何重置我的键盘布局?

  • 帮助让 Flash 播放器在第二个屏幕上工作?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve