content: {-# OPTIONS_GHC -Wno-missing-signatures #-}
  
  module Custom.MyLayouts where
  
  import           Custom.MyDecorations
  import           XMonad
  import           XMonad.Hooks.ManageDocks
  import           XMonad.Layout.Accordion
  import           XMonad.Layout.BinarySpacePartition
  import           XMonad.Layout.BoringWindows
  import           XMonad.Layout.Column
  import           XMonad.Layout.MultiToggle
  import           XMonad.Layout.MultiToggle.Instances
  import           XMonad.Layout.NoBorders
  import           XMonad.Layout.PerScreen
  import           XMonad.Layout.Renamed               as XLR
  import           XMonad.Layout.ResizableTile
  import           XMonad.Layout.ShowWName
  import           XMonad.Layout.SimplestFloat
  import           XMonad.Layout.Spacing
  import           XMonad.Layout.SubLayouts
  import           XMonad.Layout.Tabbed
  import           XMonad.Layout.WindowNavigation
  
  mySpacing i = spacingRaw False (Border 10 10 30 30) True (Border i i i i) True
  
  tabs =
    renamed [XLR.Replace "Tabs"] $
      avoidStruts $
        tabbed
          shrinkText
          myTabConfig
  
  tall =
    renamed [XLR.Replace "Tall"] $
      avoidStruts $
        windowNavigation $
          addTabs shrinkText myTabConfig $
            subLayout [] tabs $
              mySpacing 7 $
                ResizableTall nmaster delta ratio []
    where
      nmaster = 1
      ratio = 1 / 2
      delta = 3 / 100
  
  column =
    renamed [XLR.Replace "Column"] $
      avoidStruts $
        windowNavigation $
          addTabs shrinkText myTabConfig $
            subLayout [] tabs $
              mySpacing 7 $
                Column 1.0
  
  accordion =
    renamed [XLR.Replace "Accordion"] $
      avoidStruts $
        windowNavigation $
          addTabs shrinkText myTabConfig $
            subLayout [] tabs $
              mySpacing 7 Accordion
  
  bsp =
    renamed [XLR.Replace "BSP"] $
      avoidStruts $
        windowNavigation $
          addTabs shrinkText myTabConfig $
            subLayout [] tabs $
              mySpacing 7 emptyBSP
  
  full = renamed [XLR.Replace "Full"] $ noBorders Full
  
  sf = renamed [XLR.Replace "Float"] $ noBorders simplestFloat
  
  myLayout = boringWindows (ifWider 1080 (tall ||| bsp) (column ||| accordion) ||| sf ||| full)
  
  myLayoutHook =
    showWName' myShowWNameConfig $
      smartBorders $
        mkToggle
          (NOBORDERS ?? FULL ?? EOT)
          myLayout
  