update xmonad config

This commit is contained in:
horhik 2021-06-09 22:14:58 +03:00
parent 5647b59fa9
commit 0af5eea4f0
2 changed files with 134 additions and 18 deletions

View File

@ -6,6 +6,8 @@ set -g @onedark_widgets "#(date +%s)"
# set -g @plugin 'dracula/tmux'
# Theme
set -g @dracula-show-powerline true

View File

@ -20,15 +20,43 @@ import XMonad.Util.Run
import XMonad.Hooks.ManageDocks
import XMonad.Layout.Gaps
import XMonad.Layout.ToggleLayouts
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle))
import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
import XMonad.Actions.MouseResize
import XMonad.Util.Themes
import XMonad.Util.EZConfig
import XMonad.Layout.Spacing
import XMonad.Layout.NoBorders (noBorders, smartBorders)
import XMonad.Layout.Tabbed
import XMonad.Hooks.DynamicLog
import XMonad.Util.Scratchpad
import XMonad.Util.NamedScratchpad
-- Layouts
import XMonad.Layout.Accordion
import XMonad.Layout.GridVariants (Grid(Grid))
import XMonad.Layout.SimplestFloat
import XMonad.Layout.Spiral
import XMonad.Layout.ResizableTile
import XMonad.Layout.Tabbed
import XMonad.Layout.ThreeColumns
-- Layouts modifiers
import XMonad.Layout.LayoutModifier
import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit)
import XMonad.Layout.Magnifier
import XMonad.Layout.MultiToggle (mkToggle, single, EOT(EOT), (??))
import XMonad.Layout.MultiToggle.Instances (StdTransformers(NBFULL, MIRROR, NOBORDERS))
import XMonad.Layout.NoBorders
import XMonad.Layout.Renamed
import XMonad.Layout.ShowWName
import XMonad.Layout.Simplest
import XMonad.Layout.Spacing
import XMonad.Layout.SubLayouts
import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
import qualified XMonad.Layout.ToggleLayouts as T (toggleLayouts, ToggleLayout(Toggle))
import qualified XMonad.Layout.MultiToggle as MT (Toggle(..))
import qualified Graphics.X11.ExtraTypes.XF86 as XF86
import qualified XMonad.StackSet as W
@ -38,6 +66,7 @@ import GruvboxColors as Colors
home = "/home/horhik/"
myFont = "xft:Mononoki Nerd Font:regular:size=9:antialias=true:hinting=true"
myTerminal = "alacritty"
myEditor = "nvim"
myMainDisplay = "eDP-1"
@ -232,26 +261,111 @@ myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
--
defaultGapSize = 7;
defaultGaps = gaps [(U,defaultGapSize), (R,defaultGapSize), (D, defaultGapSize), (L, defaultGapSize)]
defaultSpaces = spacingRaw True (Border 7 7 7 7) True (Border 7 7 7 7) True
spacesAndGaps = defaultSpaces . defaultGaps
mySpacing :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
mySpacing i = spacingRaw False (Border i i i i) True (Border i i i i) True
myTabConfig = def { inactiveBorderColor = commentColor
, activeTextColor = selectionColor}
myLayout = smartBorders . avoidStruts
$ spacesAndGaps
$ tiled ||| Mirror tiled ||| noBorders Full ||| simpleTabbed -- tabbed shrinkText (theme kavonAutumnTheme )
where
-- default tiling algorithm partitions the screen into two panes
tiled = Tall nmaster delta ratio
mySpacing' :: Integer -> l a -> XMonad.Layout.LayoutModifier.ModifiedLayout Spacing l a
mySpacing' i = spacingRaw True (Border i i i i) True (Border i i i i) True
-- The default number of windows in the master pane
nmaster = 1
spacesAndGaps = mySpacing 7 . defaultGaps
-- Default proportion of screen occupied by master pane
ratio = 1/2
-- Percent of screen to increment by when resizing panes
delta = 3/100
tall = renamed [Replace "tall"]
$ smartBorders
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ limitWindows 12
$ mySpacing 8
$ ResizableTall 1 (3/100) (1/2) []
magnify = renamed [Replace "magnify"]
$ smartBorders
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ magnifier
$ limitWindows 12
$ mySpacing 8
$ ResizableTall 1 (3/100) (1/2) []
monocle = renamed [Replace "monocle"]
$ smartBorders
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ limitWindows 20 Full
floats = renamed [Replace "floats"]
$ smartBorders
$ limitWindows 20 simplestFloat
grid = renamed [Replace "grid"]
$ smartBorders
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ limitWindows 12
$ mySpacing 8
$ mkToggle (single MIRROR)
$ Grid (16/10)
spirals = renamed [Replace "spirals"]
$ smartBorders
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ mySpacing' 8
$ spiral (6/7)
threeCol = renamed [Replace "threeCol"]
$ smartBorders
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ limitWindows 7
$ ThreeCol 1 (3/100) (1/2)
threeRow = renamed [Replace "threeRow"]
$ smartBorders
$ addTabs shrinkText myTabTheme
$ subLayout [] (smartBorders Simplest)
$ limitWindows 7
-- Mirror takes a layout and rotates it by 90 degrees.
-- So we are applying Mirror to the ThreeCol layout.
$ Mirror
$ ThreeCol 1 (3/100) (1/2)
tabs = renamed [Replace "tabs"]
-- I cannot add spacing to this layout because it will
-- add spacing between window and tabs which looks bad.
$ tabbed shrinkText myTabTheme
tallAccordion = renamed [Replace "tallAccordion"]
$ Accordion
wideAccordion = renamed [Replace "wideAccordion"]
$ Mirror Accordion
-- setting colors for tabs layout and tabs sublayout.
myTabTheme = def { fontName = myFont
, activeColor = myFocusedBorderColor
, inactiveColor = myNormalBorderColor
, activeBorderColor = myFocusedBorderColor
, inactiveBorderColor = myNormalBorderColor
, activeTextColor = myNormalBorderColor
, inactiveTextColor = purpleColor
}
-- Theme for showWName which prints current workspace when you change workspaces.
myShowWNameTheme :: SWNConfig
myShowWNameTheme = def
{ swn_font = "xft:Ubuntu:bold:size=60"
, swn_fade = 1.0
, swn_bgcolor = "#1c1f24"
, swn_color = "#ffffff"
}
-- The layout hook
myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats
$ mkToggle (NBFULL ?? NOBORDERS ?? EOT) myDefaultLayout
where
myDefaultLayout = withBorder myBorderWidth tall
||| noBorders magnify
||| noBorders monocle
||| floats
||| noBorders tabs
||| grid
||| spirals
||| threeCol
||| threeRow
||| noBorders tallAccordion
||| noBorders wideAccordion
------------------------------------------------------------------------
-- Window rules:
@ -473,7 +587,7 @@ defaults (bar0, bar1) = def {
mouseBindings = myMouseBindings,
-- hooks, layouts
layoutHook = myLayout,
layoutHook = myLayoutHook,
manageHook = myManageHook,
handleEventHook = myEventHook,
logHook = myLogHook (bar0, bar1),