aboutsummaryrefslogtreecommitdiff
path: root/src/Rahm/Desktop/Layout/Layout.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2022-04-12 01:05:48 -0600
committerJosh Rahm <joshuarahm@gmail.com>2022-10-09 12:19:46 -0600
commit7481428cc081a6e330d35ad01637addcb93c06c7 (patch)
tree8eacfed9c4f9b0eaecfa6bfd9ac428c7e08cc07d /src/Rahm/Desktop/Layout/Layout.hs
parentbb05b03906a60b1a4a87a454b750a698cda913e3 (diff)
downloadrde-7481428cc081a6e330d35ad01637addcb93c06c7.tar.gz
rde-7481428cc081a6e330d35ad01637addcb93c06c7.tar.bz2
rde-7481428cc081a6e330d35ad01637addcb93c06c7.zip
Move Rahm.Desktop.Layout.Layout to Rahm.Desktop.Layout
Diffstat (limited to 'src/Rahm/Desktop/Layout/Layout.hs')
-rw-r--r--src/Rahm/Desktop/Layout/Layout.hs103
1 files changed, 0 insertions, 103 deletions
diff --git a/src/Rahm/Desktop/Layout/Layout.hs b/src/Rahm/Desktop/Layout/Layout.hs
deleted file mode 100644
index 2719bea..0000000
--- a/src/Rahm/Desktop/Layout/Layout.hs
+++ /dev/null
@@ -1,103 +0,0 @@
-module Rahm.Desktop.Layout.Layout where
-
-import GHC.TypeLits
-
-import Data.Proxy (Proxy(..))
-import Control.Arrow (second)
-import XMonad.Hooks.ManageDocks
-import XMonad.Layout.Circle
-import XMonad.Layout.Accordion
-import Control.Applicative
-import XMonad.Layout.Spacing
-import Data.List
-import Data.Typeable (cast)
-import XMonad.Layout.Spiral
-import XMonad.Layout.ThreeColumns
-import XMonad.Layout.Grid
-import XMonad.Layout.Dishes
-import XMonad.Layout.MosaicAlt
-import XMonad.Layout.Fullscreen
-import qualified XMonad.Layout.Dwindle as D
-import XMonad.Layout
-import XMonad.Layout.LayoutModifier
-import XMonad
-import XMonad.Core
-import XMonad.Layout.NoBorders (smartBorders, noBorders)
-
-import Rahm.Desktop.Layout.CornerLayout (Corner(..))
-import Rahm.Desktop.Layout.LayoutList
-import Rahm.Desktop.Windows
-import Rahm.Desktop.Layout.ReinterpretMessage
-import Rahm.Desktop.Layout.Pop
-import Rahm.Desktop.Layout.Flip
-import Rahm.Desktop.Layout.Rotate
-import Rahm.Desktop.Layout.Redescribe
-
-import qualified Data.Map as M
-import qualified XMonad.StackSet as W
-
-mods = reinterpretResize . poppable . flippable . rotateable
-
-myLayout =
- fullscreenFull $
- avoidStruts $
- spacingRaw True (Border 5 5 5 5) True (Border 5 5 5 5) True $
- layoutZipper $
- mods (reinterpretIncMaster $ spiral (6/7)) |:
- mods (modifyMosaic (MosaicAlt M.empty :: MosaicAlt Window)) |:
- mods (reinterpretIncMaster $ Corner (3/4) (3/100)) |:
- mods (Redescribe UsingTall (Tall 1 (3/100) (1/2))) |:
- mods (Redescribe UsingThreeCol (ThreeCol 1 (3/100) (1/2))) |:
- mods Grid |:
- mods (Dishes 2 (1/6)) |:
- mods (reinterpretIncMaster $ D.Dwindle D.R D.CW 1.5 1.1) |:
- nil
-
--- Mosaic doesn't have the concept of a "Master Space", so reinterpret messages
--- intended to modify the master space and instead have those messages expand
--- and shrink the current window.
---
--- "ForMosaic" is an instance of the Symbol kind. This is some neat type-system
--- hacking one can do in Haskell.
-instance DoReinterpret "ForMosaic" where
-
- -- IncMaster message
- reinterpretMessage _ (fromMessage -> Just (IncMasterN n)) = do
- fmap (SomeMessage .
- (if n > 0
- then expandWindowAlt
- else shrinkWindowAlt)) <$> getFocusedWindow
-
- -- ResizeMaster message
- reinterpretMessage _ (fromMessage -> Just m) = do
- fmap (SomeMessage .
- (case m of
- Expand -> expandWindowAlt
- Shrink -> shrinkWindowAlt)) <$> getFocusedWindow
-
- -- Messages that don't match the above, just leave it unmodified.
- reinterpretMessage _ m = return (Just m)
-
-instance DoReinterpret "IncMasterToResizeMaster" where
- reinterpretMessage _ (fromMessage -> Just (IncMasterN n)) =
- return $ Just $
- if n > 0
- then SomeMessage Expand
- else SomeMessage Shrink
- reinterpretMessage _ m = return (Just m)
-
-modifyMosaic :: l a -> ModifiedLayout (ReinterpretMessage "ForMosaic") l a
-modifyMosaic = ModifiedLayout ReinterpretMessage
-
-reinterpretIncMaster ::
- l a -> ModifiedLayout (ReinterpretMessage "IncMasterToResizeMaster") l a
-reinterpretIncMaster = ModifiedLayout ReinterpretMessage
-
-data UsingTall = UsingTall deriving (Read, Show)
-instance Describer UsingTall Tall where
- newDescription _ (Tall mast _ _) _ = "Tall(" ++ show mast ++ ")"
-
-data UsingThreeCol = UsingThreeCol deriving (Read, Show)
-instance Describer UsingThreeCol ThreeCol where
- newDescription _ (ThreeCol mast _ _) _ = "ThreeCol(" ++ show mast ++ ")"
- newDescription _ (ThreeColMid mast _ _) _ = "ThreeColMid(" ++ show mast ++ ")"