diff --git a/XMonad/Layout/IndependentScreens.hs b/XMonad/Layout/IndependentScreens.hs new file mode 100644 index 00000000..fe86a405 --- /dev/null +++ b/XMonad/Layout/IndependentScreens.hs @@ -0,0 +1,8 @@ +module IndependentScreens where + +marshall (S sc) ws = show sc ++ '_':ws +unmarshall = ((S . read) *** drop 1) . break (=='_') +workspaces' = nub . map (snd . unmarshall) . workspaces +withScreens n workspaces = [marshall sc ws | ws <- workspaces, sc <- [0..n-1]] +onScreen f workspace = screen . current >>= f . flip marshall workspace +countScreens = fmap genericLength $ openDisplay "" >>= getScreenInfo