Как запустить хук в окне Xmonad с помощью привязки клавиш

Я ищу способ воспроизвести поведение doCenterFloat в моем управляющем крючке для привязки клавиш. Я хотел бы сохранить окна «естественного» размера. Например, когда я создаю окно OpenGL размером 800x600, мне пришлось бы вручную добавлять заголовок окна в мою конфигурацию XMonad, иначе оно будет разбито на плитки, а содержимое окна будет растянуто.

Вот код, который я пытаюсь реплицировать на привязку ключа

myManageHook = composeAll
     [ title =? "OpenGL"              --> doCenterFloat ]

Приведенный выше код заставляет окно отображаться правильно. Я пробовал функции, которые переключают обычное плавание (не centerFloat), но они отображаются с размером плитки, например: windows-to-its-natural-size">Xmonad: перемещает окна и изменяет их размер до "естественного размера"

Любая помощь высоко ценится


person rial    schedule 02.05.2021    source источник
comment
Непонятно, к чему ваш вопрос. Я предполагаю, что это просто способ запуска запроса.   -  person Chris Stryczynski    schedule 04.05.2021


Ответы (1)


runQuery :: Query a -> Window -> X a

http://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Config-Prime.html#v:runQuery

withFocused :: (Window -> X ()) -> X ()

http://hackage.haskell.org/package/xmonad-contrib-0.16/docs/XMonad-Config-Prime.html#v:withFocused

Используя две вышеупомянутые функции, где myQuery будет установлен ваш Query (например, doCenterFloat).

myQuery = undefined :: Query
withFocused (\window -> runQuery myQuery window)
person Chris Stryczynski    schedule 04.05.2021