diff options
Diffstat (limited to 'src/Rahm/Desktop/Layout')
| -rw-r--r-- | src/Rahm/Desktop/Layout/ConsistentMosaic.hs | 22 | ||||
| -rw-r--r-- | src/Rahm/Desktop/Layout/Draw.hs | 21 | ||||
| -rw-r--r-- | src/Rahm/Desktop/Layout/Flip.hs | 11 | ||||
| -rw-r--r-- | src/Rahm/Desktop/Layout/Hole.hs | 9 | ||||
| -rw-r--r-- | src/Rahm/Desktop/Layout/List.hs | 13 | ||||
| -rw-r--r-- | src/Rahm/Desktop/Layout/Pop.hs | 16 | ||||
| -rw-r--r-- | src/Rahm/Desktop/Layout/Redescribe.hs | 7 | ||||
| -rw-r--r-- | src/Rahm/Desktop/Layout/Rotate.hs | 12 |
8 files changed, 94 insertions, 17 deletions
diff --git a/src/Rahm/Desktop/Layout/ConsistentMosaic.hs b/src/Rahm/Desktop/Layout/ConsistentMosaic.hs index 0d95c8f..026a7dd 100644 --- a/src/Rahm/Desktop/Layout/ConsistentMosaic.hs +++ b/src/Rahm/Desktop/Layout/ConsistentMosaic.hs @@ -4,13 +4,29 @@ -- still work as expected. module Rahm.Desktop.Layout.ConsistentMosaic where -import Data.Map (Map) -import qualified Data.Map as Map +import Data.Map () +import qualified Data.Map as Map (fromList, lookup) import Data.Maybe (mapMaybe) -import Rahm.Desktop.Logger +import Rahm.Desktop.Logger () import qualified Rahm.Desktop.StackSet as W + ( Screen (..), + Stack (..), + StackSet (..), + Workspace (..), + integrate, + ) import XMonad + ( LayoutClass (description, handleMessage, runLayout), + MonadState (..), + Window, + X, + XState (..), + ) import XMonad.Layout.MosaicAlt + ( HandleWindowAlt, + expandWindowAlt, + shrinkWindowAlt, + ) newtype MosaicWrap l a = MosaicWrap (l a) deriving (Read, Show) diff --git a/src/Rahm/Desktop/Layout/Draw.hs b/src/Rahm/Desktop/Layout/Draw.hs index 49921b0..95a34eb 100644 --- a/src/Rahm/Desktop/Layout/Draw.hs +++ b/src/Rahm/Desktop/Layout/Draw.hs @@ -6,15 +6,20 @@ module Rahm.Desktop.Layout.Draw (drawLayout) where import Control.Arrow (second) -import Control.Concurrent (threadDelay) -import Control.Exception (handle) -import Control.Monad +import Control.Concurrent () +import Control.Exception () +import Control.Monad (foldM, forM_, unless) import Control.Monad.Writer (execWriter, tell) import Data.Foldable (find) import Data.Maybe (fromMaybe) import Rahm.Desktop.Hash (quickHash) import Rahm.Desktop.Layout.Pop (setPop) import qualified Rahm.Desktop.StackSet as S + ( Screen (..), + StackSet (..), + Workspace (..), + differentiate, + ) import System.Directory (createDirectoryIfMissing, doesFileExist) import System.FilePath ((</>)) import Text.Printf (printf) @@ -28,7 +33,15 @@ import XMonad X, ) import qualified XMonad as X -import XMonad.Layout.MosaicAlt (expandWindowAlt, shrinkWindowAlt) + ( Directories' (cfgDir), + LayoutClass (description, handleMessage, runLayout), + MonadIO (liftIO), + XConf (directories), + XState (windowset), + asks, + gets, + ) +import XMonad.Layout.MosaicAlt (expandWindowAlt) import XMonad.Layout.Spacing (Border (..), SpacingModifier (..)) -- Draws and returns an XPM for the current layout. diff --git a/src/Rahm/Desktop/Layout/Flip.hs b/src/Rahm/Desktop/Layout/Flip.hs index 5942a4a..8ebe9ac 100644 --- a/src/Rahm/Desktop/Layout/Flip.hs +++ b/src/Rahm/Desktop/Layout/Flip.hs @@ -11,10 +11,19 @@ module Rahm.Desktop.Layout.Flip where import Control.Arrow (second) -import Data.Default (Default (..)) +import Data.Default () import Data.List (intercalate) import XMonad + ( Default (..), + LayoutClass (description), + Message, + Rectangle (Rectangle), + fromMessage, + ) import XMonad.Layout.LayoutModifier + ( LayoutModifier (modifyDescription, pureMess, pureModifier), + ModifiedLayout (..), + ) -- A flipped layout is either flipped horizontally or vertically. data Flip a = Flip diff --git a/src/Rahm/Desktop/Layout/Hole.hs b/src/Rahm/Desktop/Layout/Hole.hs index 42bac48..7f19e4c 100644 --- a/src/Rahm/Desktop/Layout/Hole.hs +++ b/src/Rahm/Desktop/Layout/Hole.hs @@ -4,9 +4,16 @@ -- Delegates to a lower layout, but leaves a hole where the next window will go. module Rahm.Desktop.Layout.Hole (hole, toggleHole) where -import Data.Maybe (mapMaybe) +import Data.Maybe () import qualified Rahm.Desktop.StackSet as W + ( Stack (Stack), + Workspace (Workspace), + ) import XMonad + ( LayoutClass (handleMessage, runLayout), + Message, + fromMessage, + ) data Hole (l :: * -> *) (a :: *) = Hole Bool (l a) diff --git a/src/Rahm/Desktop/Layout/List.hs b/src/Rahm/Desktop/Layout/List.hs index 787697e..48c2ab5 100644 --- a/src/Rahm/Desktop/Layout/List.hs +++ b/src/Rahm/Desktop/Layout/List.hs @@ -28,11 +28,18 @@ import Control.Applicative ((<|>)) import Control.Arrow (second, (>>>)) import Control.Monad.Identity (runIdentity) import Data.Maybe (fromJust, fromMaybe) -import Data.Proxy -import Data.Void -import GHC.TypeLits +import Data.Proxy (Proxy (..)) +import Data.Void () +import GHC.TypeLits (KnownNat, Nat, natVal, type (+)) import qualified Rahm.Desktop.StackSet as W + ( Workspace (Workspace), + ) import XMonad + ( LayoutClass (description, handleMessage, runLayout), + Message, + Typeable, + fromMessage, + ) -- Type-level lists. LNil is the final of the list. LCons contains a layout and a -- tail. diff --git a/src/Rahm/Desktop/Layout/Pop.hs b/src/Rahm/Desktop/Layout/Pop.hs index b518ee8..ee277fb 100644 --- a/src/Rahm/Desktop/Layout/Pop.hs +++ b/src/Rahm/Desktop/Layout/Pop.hs @@ -14,11 +14,21 @@ module Rahm.Desktop.Layout.Pop ) where -import Data.Default (Default (..)) -import Rahm.Desktop.Layout.ReinterpretMessage +import Data.Default () +import Rahm.Desktop.Layout.ReinterpretMessage () import qualified Rahm.Desktop.StackSet as W + ( Stack (focus), + Workspace (Workspace), + ) import XMonad -import XMonad.Layout.LayoutModifier (LayoutModifier (..), ModifiedLayout (..)) + ( LayoutClass (handleMessage, runLayout), + Message, + Rectangle (Rectangle), + Resize (Expand, Shrink), + SomeMessage (SomeMessage), + fromMessage, + ) +import XMonad.Layout.LayoutModifier () data Poppable (l :: * -> *) (a :: *) = Poppable { -- True if the current window is popped out or not. diff --git a/src/Rahm/Desktop/Layout/Redescribe.hs b/src/Rahm/Desktop/Layout/Redescribe.hs index f5e51b7..4a1a918 100644 --- a/src/Rahm/Desktop/Layout/Redescribe.hs +++ b/src/Rahm/Desktop/Layout/Redescribe.hs @@ -3,9 +3,14 @@ -- to generate the new description. module Rahm.Desktop.Layout.Redescribe where -import Data.Typeable (Typeable) +import Data.Typeable () import qualified Rahm.Desktop.StackSet as W + ( Workspace (Workspace), + ) import XMonad + ( LayoutClass (description, handleMessage, runLayout), + Typeable, + ) -- Type-class to modify the description of a layout. class Describer m l where diff --git a/src/Rahm/Desktop/Layout/Rotate.hs b/src/Rahm/Desktop/Layout/Rotate.hs index e6f9a64..467ed96 100644 --- a/src/Rahm/Desktop/Layout/Rotate.hs +++ b/src/Rahm/Desktop/Layout/Rotate.hs @@ -11,9 +11,19 @@ module Rahm.Desktop.Layout.Rotate where import Control.Arrow (second) -import Data.Default (Default (..)) +import Data.Default () import XMonad + ( Default (..), + LayoutClass (description), + Message, + Rectangle (Rectangle), + fromMessage, + mirrorRect, + ) import XMonad.Layout.LayoutModifier + ( LayoutModifier (modifyDescription, pureMess, pureModifier), + ModifiedLayout (..), + ) -- Just a wrapper over a Bool. newtype Rotate a = Rotate Bool |