我想在用户刚打开窗口时更改它的属性。在
在本例中,我只是尝试处理CreateNotify
事件:
#!/usr/bin/python
import Xlib
from Xlib import X, display, error
import time
disp = Xlib.display.Display()
root = disp.screen().root
root.change_attributes(event_mask=Xlib.X.SubstructureNotifyMask)
def getProp(win, prop):
p = win.get_full_property(disp.intern_atom('_NET_WM_' + prop), 0)
return [None] if (p is None) else p.value
while True:
event = disp.next_event()
if event.type == X.CreateNotify:
newWin = event.window
try:
newWinName = getProp(newWin, 'NAME')
newWinPID = getProp(newWin, 'PID')[0]
if newWinName and newWinPID:
print time.strftime('%H:%M:%S'), "- new window:", newWinPID, newWinName
else:
print 'NAME or PID property not found.'
print
except Xlib.error.BadWindow:
print "BadWindow error"
此脚本正确捕获“新窗口”事件。 但是这个脚本并没有完全输出我的想法,所以我有一些问题。在这个例子中,我打开了两次Firefox窗口。在
_NET_WM_ID
和_NET_WM_NAME
属性?在我使用Linux薄荷肉桂(松饼窗口管理器)。在
输出如下:
^{pr2}$
当鼠标悬停在一个按钮上时,会出现一个弹出窗口。此弹出窗口计为“窗口”。在
弹出窗口。在
只有带有边框的窗口才具有_NET_WM_ID和_NET_WM_NAME属性。在
没有边框的窗口没有它们。在
弹出窗口是没有边框的窗口。在
相关问题 更多 >
编程相关推荐