在Linux中,可以使用xwininfo
来获取窗口的位置。当窗口的位置改变时,可以再次运行该命令。但是,将命令放在循环中并且始终运行它并不是非常有效。是否可以在更改位置时收到通知,以便更少地运行命令?
答案 0 :(得分:2)
您需要侦听该窗口的ConfigureNotify事件。要订阅,请使用xlib XSelectInput(或低级别 - StructureNotify
X11请求)设置ConfigureWindow
使用JavaScript / node-x11的示例(在窗口的位置或几何图形更改后立即退出)
var x11 = require('x11');
var wid = Number(process.argv[2]);
x11.createClient(function(err, display) {
var X = display.client;
X.ChangeWindowAttributes(wid, { eventMask: x11.eventMask.StructureNotify });
X.on('event', function(ev) {
if (ev.name === 'ConfigureNotify') {
console.log(ev.x, ev.y, ev.width, ev.height);
X.close();
}
});
});