September 7, 2010

Правила для окон в XMonad

Задача - сделать так чтобы все диалоговые окна, некоторые окна по имени класса, некоторые по заголовку и некоторые по ресурсу появлялись плавающими (floating), т.е. не были "тайловыми".

Решение - приводим ~/.xmonad/xmonad.hs в соответствие с нижеследующим примером.

import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
...
main = do
...
xmonad $ myUrgencyHook $ defaultConfig {
...
manageHook = myManageHook <+> manageDocks <+> manageHook defaultConfig,
...
}
...
-- Window rules
myManageHook = composeAll . concat $ [
[isDialog --> doFloat],
[className =? c --> doFloat | c <- myCFloats],
[title =? t --> doFloat | t <- myTFloats],
[resource =? r --> doFloat | r <- myRFloats],
[resource =? i --> doIgnore | i <- myIgnores]
]
where
myCFloats = ["Xmessage"]
myTFloats = ["Save As...", "Save File"]
myRFloats = []
myIgnores = ["XXkb"]


В переменную myCFloats прописываем имена всех классов окон, которые нужно отображать плавающими, соответственно в myTFloats заголовки и в myRFloats ресурсы.

Мою последнюю конфигурацию Xmonad и всё её сопровождающее найдёте здесь Xmonad/Config_archive (поищите gray_hemp).

No comments:

Post a Comment