import XMonad
import XMonad.Util.EZConfig
import XMonad.Util.Ungrab
import XMonad.Hooks.ManageDocks
import XMonad.Layout.ThreeColumns
import XMonad.Layout.Tabbed as Tabbed
import XMonad.Layout.Master as Master
import XMonad.Layout.Spacing (Border (Border), Spacing, spacingRaw)
import XMonad.Layout.LayoutModifier (ModifiedLayout)
backgroundColor = "#282a36"
currentLineColor = "#44475a"
selectionColor = "#44475a"
foregroundColor = "#f8f8f2"
commentColor = "#6272a4"
cyanColor = "#8be9fd"
greenColor = "#50fa7b"
orangeColor = "#ffb86c"
pinkColor = "#ff79c6"
purpleColor = "#bd93f9"
redColor = "#ff5555"
yellowColor = "#f1fa8c"
myNormalBorderColor = backgroundColor
myFocusedBorderColor = currentLineColor
mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
mySpacing i = spacingRaw True (Border 0 i 0 i) True (Border i 0 i 0) True
masterAndTabs = Master.mastered (1/100) (1/2) $ Tabbed.tabbedRight Tabbed.shrinkText theme
where
theme = def { {- Tabbed.fontName = "xft:Isoevka:size=16"
,-} Tabbed.activeBorderColor = selectionColor
, Tabbed.inactiveBorderColor = backgroundColor
}
layouts = avoidStruts $ tiled ||| Full ||| masterAndTabs
where
tiled = Tall nmaster delta ratio
nmaster = 1
ratio = 1/2
delta = 3/100
main :: IO ()
main = xmonad
. docks
$ def
{ terminal = "alacritty"
, layoutHook = layouts
, borderWidth = 3
, normalBorderColor = backgroundColor
, focusedBorderColor = purpleColor
}