1 votes

Faire en sorte que les fenêtres en plein écran ne soient pas en mosaïque dans xmonad + KDE

Je comprends, que j'ai besoin d'ajouter quelque chose comme:

composeOne [ isFullscreen -?> doFullFloat ]

à mon ManageHook. Au moins selon cette page.

Mais je ne suis pas vraiment sûr où le mettre dans ma configuration xmonad. Ma connaissance en Haskell est relativement faible et comme j'utilise xmonad avec KDE, le fichier de configuration n'a pas une apparence très standard.

Mon xmonad.hs ressemble à ceci:

import XMonad
import XMonad.Config.Kde
import qualified XMonad.StackSet as W -- pour décaler et flotter les fenêtres
import XMonad.Hooks.ManageHelpers

main = xmonad $ kdeConfig

 { modMask = mod4Mask -- utilisez le bouton Windows comme 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"] -- ouvre sur le bureau 3
   ircApps       = ["Ksirc"]                -- ouvre sur le bureau 4

Où que j'essaie de le mettre, je reçois juste des messages d'erreur cryptiques, pour lesquels Haskell est célèbre.

1voto

Droidme Points 111

Vous ne pouvez pas le brancher directement car les types ne correspondent pas:

ghci> :t isFullscreen -?> doFullFloat
isFullscreen -?> doFullFloat :: MaybeManageHook
ghci> :t composeAll
composeAll :: \[ManageHook\] -> ManageHook

Notez, cependant

ghci> :t composeOne 
composeOne :: \[MaybeManageHook\] -> ManageHook

Cela prend une liste de gestions de tâches qui peuvent ou non s'exécuter et les combine en une seule action.

MaybeManageHook s'adapte également parfaitement avec

\*Main> :t maybeToDefinite 
maybeToDefinite :: MaybeManageHook -> ManageHook

Ajoutez soit

, [ maybeToDefinite (isFullscreen -?> doFullFloat) ]

ou

, [ composeOne [ isFullscreen -?> doFullFloat ] ]

à la définition de myManageHook.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X