Я понимаю, что мне нужно добавить что-то вроде:
composeOne [ isFullscreen -?> doFullFloat ]
на мой ManageHook. По крайней мере, согласно этой странице.
Но я не совсем уверен, где добавить его в моем конфиге xmonad. Мои знания Haskell относительно незначительны, и поскольку я использую xmonad с KDE, файл конфигурации выглядит не совсем стандартно.
Мой xmonad.hs выглядит так:
import XMonad
import XMonad.Config.Kde
import qualified XMonad.StackSet as W -- to shift and float windows
import XMonad.Hooks.ManageHelpers
main = xmonad $ kdeConfig
{ modMask = mod4Mask -- use the Windows button as mod
, manageHook = manageHook kdeConfig <+> myManageHook
}
where
myManageHook = composeAll . concat $
[ [ className =? c --> doFloat | c <- myFloats]
, [ title =? t --> doFloat | t <- myOtherFloats]
, [ className =? c --> doF (W.shift "3") | c <- webApps]
, [ className =? c --> doF (W.shift "4") | c <- ircApps]
]
myFloats = ["MPlayer", "Gimp", "Skype", "Plasma-desktop", "VirtualBox"]
myOtherFloats = ["alsamixer"]
webApps = ["Firefox-bin", "Opera"] -- open on desktop 3
ircApps = ["Ksirc"] -- open on desktop 4
Где бы я ни пытался это выразить, я просто получал загадочные сообщения об ошибках, которыми Haskell известен.