我正在尝试使用提取当前活动窗口的标题X11库。
我试图用xdotool代码来激励自己,但在getWindowProperty32
返回我无法处理的Foreign.C.Types.CLong
后,我陷入了困境。
我知道我可以用xdotool
创建一个新的进程并读取它的输出,但这不是我要实现的。如何在Haskell中通过直接的X服务器通信来实现?
这可以使用getInputFocus
和fetchName
。
代码看起来像
getActiveWindowTitle :: Display -> IO (Maybe String)
getActiveWindowTitle display = do
(window, _) = getInputFocus display
fetchName display window