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
  