1

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

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

4

2 回答 2

0

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

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

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

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

于 2014-02-04T21:28:39.770 回答
0

本质上是它的 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也是幕后的工作,但这些命令级别相当低,很可能默认安装。

参考:

于 2014-02-04T21:54:17.670 回答