如何在Linux中操作窗口

时间:2014-02-04 21:12:55

标签: linux x11 window-management

我已经在Linux上编程了多年,但从显示的角度来看,我没有太多的知识。现在我被要求编写一个单独的进程来监视哪个窗口(可能不是我的进程创建的窗口)被用户聚焦并进行一些简单的操作,如移动和调整大小。

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分: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播放器的窗口ID。我们可以使用此窗口来获取或设置属性。为此,我们可以使用xprop实用程序:

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

这会将VLC播放器的窗口标题更改为 MyVLC

虽然这也是xdotool在幕后的作用,但这些命令水平相当低,很可能默认安装。

参考文献: