Vollbildfenster werden in xmonad + KDE nicht gekachelt

2925
Rene Saarsoo

Ich verstehe, dass ich etwas hinzufügen muss:

composeOne [ isFullscreen -?> doFullFloat ] 

zu meinem ManageHook. Zumindest laut dieser Seite.

Ich bin mir aber nicht sicher, wo ich es in meine xmonad config einfügen soll. Mein Haskell-Wissen ist relativ gering, und da ich xmonad mit KDE verwende, wirkt die Konfigurationsdatei nicht sehr normal.

Mein xmonad.hs sieht so aus:

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 

Wo immer ich versuche, es zu platzieren, bekomme ich nur kryptische Fehlermeldungen, für die Haskell berühmt ist.

1
Wenn Sie eine Fehlermeldung von Haskell über den Code (in der .hs-Datei) erhalten, kann dies für StackOverflow gut passen? (insb. wenn Sie den Fehler angeben) Michael Easter vor 14 Jahren 0
Ich habe selbst darüber nachgedacht, aber ich möchte nicht wirklich Cross-Post. Vor allem jetzt, dass es eine Prämie offen hat. Rene Saarsoo vor 14 Jahren 0

1 Antwort auf die Frage

1
Greg Bacon

Sie können es nicht direkt anschließen, da die Typen nicht übereinstimmen:

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

Beachten Sie jedoch

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

Dies erfordert eine Liste von verwalteten Hooks, die möglicherweise ausgeführt werden oder nicht, und kombiniert sie in einer Aktion.

MaybeManageHook passt auch gut zu

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

Entweder hinzufügen

, [ maybeToDefinite (isFullscreen -?> doFullFloat) ] 

oder

, [ composeOne [ isFullscreen -?> doFullFloat ] ] 

zur Definition von myManageHook.