在 X11 Haskell 库中获取活动 window 标题

Get active window title in X11 Haskell library

我正在尝试使用提取当前活动 window 的标题 X11图书馆。

我试图用 xdotool code 来激励自己,但在 getWindowProperty32 返回 Foreign.C.Types.CLong 之后我陷入了困境,我无法以任何方式处理。

我知道我可以用 xdotool 创建一个新进程并读取它的输出,但这不是我要实现的目标。我怎样才能通过 Haskell 中的直接 X 服务器通信来做到这一点?

这可以使用 getInputFocus and fetchName

代码看起来像

getActiveWindowTitle :: Display -> IO (Maybe String)
getActiveWindowTitle display = do
  (window, _) = getInputFocus display
  fetchName display window