From 729e030dd25da2e36fa5a1312b8ecb3415dc1675 Mon Sep 17 00:00:00 2001 From: Azat Bahawi Date: Tue, 23 Nov 2021 03:19:06 +0300 Subject: Huge update --- src/lib/XMonad/Custom/Layout.hs | 60 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/lib/XMonad/Custom/Layout.hs (limited to 'src/lib/XMonad/Custom/Layout.hs') diff --git a/src/lib/XMonad/Custom/Layout.hs b/src/lib/XMonad/Custom/Layout.hs new file mode 100644 index 0000000..8ed7d08 --- /dev/null +++ b/src/lib/XMonad/Custom/Layout.hs @@ -0,0 +1,60 @@ +{-# LANGUAGE DeriveDataTypeable #-} +{-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE TypeSynonymInstances #-} +{-# OPTIONS_GHC -Wno-missing-signatures #-} + +-- | +-- Module : XMonad.Custom.Layout +-- Description : Layouts and such +-- Copyright : (c) Azat Bahawi 2018-2021 +-- SPDX-License-Identifier : GPL-3.0-or-later +-- Maintainer : azahi@teknik.io +-- Stability : experimental +-- Portability : non-portable +-- + +module XMonad.Custom.Layout + ( layoutHook + , CustomTransformers(..) + ) where + +import XMonad hiding ( layoutHook ) +import XMonad.Custom.Theme +import XMonad.Hooks.ManageDocks +import XMonad.Layout.Accordion +import XMonad.Layout.BinarySpacePartition +import XMonad.Layout.Fullscreen +import XMonad.Layout.Hidden +import XMonad.Layout.LayoutModifier +import XMonad.Layout.MultiToggle +import XMonad.Layout.MultiToggle.Instances +import XMonad.Layout.NoBorders +import XMonad.Layout.Reflect +import XMonad.Layout.Simplest +import XMonad.Layout.Spacing +import XMonad.Layout.SubLayouts +import XMonad.Layout.Tabbed +import XMonad.Layout.WindowNavigation + +applySpacing :: l a -> ModifiedLayout Spacing l a +applySpacing = spacingRaw False (Border 6 6 6 6) True (Border 6 6 6 6) True + +data CustomTransformers = GAPS + deriving (Read, Show, Eq, Typeable) + +instance Transformer CustomTransformers Window where + transform GAPS x k = k (avoidStruts $ applySpacing x) (const x) + +layoutHook = + fullscreenFloat + $ lessBorders OnlyLayoutFloat + $ mkToggle (single NBFULL) + $ avoidStruts + $ applySpacing + $ mkToggle (single GAPS) + $ mkToggle (single REFLECTX) + $ mkToggle (single REFLECTY) + $ windowNavigation + $ addTabs shrinkText tabTheme + $ hiddenWindows + $ subLayout [] (Simplest ||| Accordion) emptyBSP -- cgit 1.4.1