Получить заголовок активного окна в библиотеке X11 Haskell - PullRequest
1 голос
/ 05 марта 2020

Я пытаюсь извлечь заголовок текущего активного окна, используя библиотеку X11 .

Я пытался вдохновить себя кодом xdotool , но я получил застрял после getWindowProperty32 вернул Foreign.C.Types.CLong, что я никак не мог обработать.

Я знаю, что мог бы просто создать новый процесс с xdotool и прочитать его вывод, но это не то, что я собираюсь добиться. Как я могу сделать это через прямую связь с X-сервером в Haskell?

1 Ответ

2 голосов
/ 06 марта 2020

Это возможно, используя getInputFocus и fetchName.

Код будет выглядеть примерно так:

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