blob: fe9224a1f9913533f1e5edc710ab8ae7fc59ff0b (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# OPTIONS_GHC -Wno-missing-signatures #-}
-- |
-- Module : XMonad.Custom.Layout
-- Copyright : (c) 2018-2020 Azat Bahawi <azahi@teknik.io>
-- License : BSD3-style (see LICENSE)
-- Maintainer : Azat Bahawi <azahi@teknik.io>
-- Stability : unstable
-- Portability : unportable
--
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
|