【问题标题】:How to manipulate a window in Linux如何在 Linux 中操作窗口
【发布时间】:2014-02-04 21:12:54
【问题描述】:

我多年来一直在 Linux 中编程,但在显示方面没有太多知识。现在我被要求编写一个单独的进程来监视用户关注的窗口(可能不是我的进程创建的窗口)并执行一些简单的操作,例如移动和调整大小。

有可能吗?有没有一种通用的方法来实现这一目标?有人可以给我任何提示吗?谢谢!

【问题讨论】:

标签: linux x11 window-management


【解决方案1】:

使用xdotool。它可以模拟击键、鼠标操作、查找活动窗口等。

示例:在您的(非最大化)终端窗口中运行此命令,它会向下和向右跳 10 个像素:

xdotool windowmove --relative $(xdotool getwindowfocus) 10 10

它应该在大多数发行版中都可用,即 sudo apt-get install xdotool 或类似的其他包管理器。

【讨论】:

    【解决方案2】:

    基本上是它的 XWindow 系统完成了这一切。但是,您可以使用简单的实用程序来控制很多。例如,如果我想更改 VLC 窗口的标题,我可以这样做:

    # this will ask me to point to a window and I will point to VLC player
    $ xwininfo -all | grep 'xwininfo: Window id:'
    xwininfo: Window id: 0x2000011 (has no name)
    

    这里0x2000011 是在我的系统上运行的 VLC Player 的窗口 ID。我们可以使用这个窗口来获取或设置属性。为此,我们可以使用xprop 实用程序:

    for p in _NET_WM_VISIBLE_NAME _NET_WM_NAME; \
       do xprop -id 0x2000011 -format $p 8s -set $p "MyVLC"; done
    

    这会将 VLC Player 的窗口标题更改为 MyVLC

    虽然 xdotool 在幕后也是这样做的,但这些命令级别相当低,很可能默认安装。

    参考资料:

    【讨论】:

      猜你喜欢
      • 2019-01-25
      • 2012-03-10
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多