Cleaning up my xmonad config.

This commit is contained in:
Derek Taylor 2019-02-25 20:18:34 -06:00
parent 1cf187c666
commit 2e791979d0
1 changed files with 111 additions and 104 deletions

View File

@ -1,3 +1,11 @@
-- ____ _____
-- | _ \_ _| Derek Taylor (DistroTube)
-- | | | || | http://www.youtube.com/c/DistroTube
-- | |_| || | http://www.gitlab.com/dwt1/
-- |____/ |_|
--
-- A customized configuration for xmonad window manager (http://www.xmonad.org)
------------------------------------------------------------------------
---IMPORTS
------------------------------------------------------------------------
@ -5,7 +13,6 @@
import XMonad
import XMonad.Config.Desktop
import Data.Maybe (isJust)
import Data.Ratio ((%))
import System.IO (hPutStrLn)
import System.Exit (exitSuccess)
import qualified XMonad.StackSet as W
@ -71,7 +78,7 @@ import XMonad.Prompt (defaultXPConfig, XPConfig(..), XPPosition(Top), Direction1
------------------------------------------------------------------------
myModMask = mod4Mask -- Sets modkey to super/windows key
myTerminal = "st" -- Sets default terminal
myTextEditor = "editor" -- Sets default text editor
myTextEditor = "vim" -- Sets default text editor
myBorderWidth = 2 -- Sets border width for windows
windowCount = gets $ Just . show . length . W.integrate' . W.stack . W.workspace . W.current . windowset
@ -118,127 +125,127 @@ myStartupHook = do
------------------------------------------------------------------------
myKeys =
-- Xmonad
[ ("M-C-r", spawn "xmonad --recompile") -- Recompiles xmonad
, ("M-S-r", spawn "xmonad --restart") -- Restarts xmonad
, ("M-S-q", io exitSuccess) -- Quits xmonad
[ ("M-C-r", spawn "xmonad --recompile") -- Recompiles xmonad
, ("M-S-r", spawn "xmonad --restart") -- Restarts xmonad
, ("M-S-q", io exitSuccess) -- Quits xmonad
-- Windows
, ("M-r", refresh) -- Refresh
, ("M-S-c", kill1) -- Kill the currently focused client
, ("M-S-a", killAll) -- Kill all the windows on the current workspace
, ("M-r", refresh) -- Refresh
, ("M-S-c", kill1) -- Kill the currently focused client
, ("M-S-a", killAll) -- Kill all the windows on the current workspace
, ("M-<Delete>", withFocused $ windows . W.sink)
, ("M-S-<Delete>", sinkAll) -- Pushes all floating windows on current workspace back into tiling
, ("M-m", windows W.focusMaster) -- Move focus to the master window
, ("M-j", windows W.focusDown) -- Move focus to the next window
, ("M-k", windows W.focusUp) -- Move focus to the prev window
, ("M-S-m", windows W.swapMaster) -- Swap the focused window and the master window
, ("M-S-j", windows W.swapDown) -- Swap the focused window with the next window
, ("M-S-k", windows W.swapUp) -- Swap the focused window with the prev window
, ("M-<Backspace>", promote) -- Moves focused window to master window. All others maintain order
, ("M1-S-<Tab>", rotSlavesDown) -- Rotate all windows except the master and keep the focus in place
, ("M1-C-<Tab>", rotAllDown) -- Rotate all the windows in the current stack
, ("M-<Delete>", withFocused $ windows . W.sink)
, ("M-S-<Delete>", sinkAll) -- Pushes floating windows back into tiling
, ("M-m", windows W.focusMaster) -- Move focus to the master window
, ("M-j", windows W.focusDown) -- Move focus to the next window
, ("M-k", windows W.focusUp) -- Move focus to the prev window
, ("M-S-m", windows W.swapMaster) -- Swap the focused window and the master window
, ("M-S-j", windows W.swapDown) -- Swap the focused window with the next window
, ("M-S-k", windows W.swapUp) -- Swap the focused window with the prev window
, ("M-<Backspace>", promote) -- Moves focused window to master, all others maintain order
, ("M1-S-<Tab>", rotSlavesDown) -- Rotate all windows except master and keep focus in place
, ("M1-C-<Tab>", rotAllDown) -- Rotate all the windows in the current stack
, ("M-$", toggleFloatNext)
, ("M-S-$", toggleFloatAllNew)
, ("M-S-s", windows copyToAll)
, ("M-C-s", killAllOtherCopies)
, ("M-$", toggleFloatNext)
, ("M-S-$", toggleFloatAllNew)
, ("M-S-s", windows copyToAll)
, ("M-C-s", killAllOtherCopies)
, ("M-C-M1-<Up>", sendMessage Arrange)
, ("M-C-M1-<Down>", sendMessage DeArrange)
, ("M-<Up>", sendMessage (MoveUp 10)) -- Move focused window to up
, ("M-<Down>", sendMessage (MoveDown 10)) -- Move focused window to down
, ("M-<Right>", sendMessage (MoveRight 10)) -- Move focused window to right
, ("M-<Left>", sendMessage (MoveLeft 10)) -- Move focused window to left
, ("M-S-<Up>", sendMessage (IncreaseUp 10)) -- Increase size of focused window up
, ("M-S-<Down>", sendMessage (IncreaseDown 10)) -- Increase size of focused window down
, ("M-S-<Right>", sendMessage (IncreaseRight 10)) -- Increase size of focused window right
, ("M-S-<Left>", sendMessage (IncreaseLeft 10)) -- Increase size of focused window left
, ("M-C-<Up>", sendMessage (DecreaseUp 10)) -- Decrease size of focused window up
, ("M-C-<Down>", sendMessage (DecreaseDown 10)) -- Decrease size of focused window down
, ("M-C-<Right>", sendMessage (DecreaseRight 10)) -- Decrease size of focused window right
, ("M-C-<Left>", sendMessage (DecreaseLeft 10)) -- Decrease size of focused window left
, ("M-C-M1-<Up>", sendMessage Arrange)
, ("M-C-M1-<Down>", sendMessage DeArrange)
, ("M-<Up>", sendMessage (MoveUp 10)) -- Move focused window to up
, ("M-<Down>", sendMessage (MoveDown 10)) -- Move focused window to down
, ("M-<Right>", sendMessage (MoveRight 10)) -- Move focused window to right
, ("M-<Left>", sendMessage (MoveLeft 10)) -- Move focused window to left
, ("M-S-<Up>", sendMessage (IncreaseUp 10)) -- Increase size of focused window up
, ("M-S-<Down>", sendMessage (IncreaseDown 10)) -- Increase size of focused window down
, ("M-S-<Right>", sendMessage (IncreaseRight 10)) -- Increase size of focused window right
, ("M-S-<Left>", sendMessage (IncreaseLeft 10)) -- Increase size of focused window left
, ("M-C-<Up>", sendMessage (DecreaseUp 10)) -- Decrease size of focused window up
, ("M-C-<Down>", sendMessage (DecreaseDown 10)) -- Decrease size of focused window down
, ("M-C-<Right>", sendMessage (DecreaseRight 10)) -- Decrease size of focused window right
, ("M-C-<Left>", sendMessage (DecreaseLeft 10)) -- Decrease size of focused window left
-- Layouts
, ("M-<Space>", sendMessage NextLayout) -- Switch to next layout
, ("M-S-<Space>", sendMessage ToggleStruts) -- Toggles struts
, ("M-S-b", sendMessage $ Toggle NOBORDERS) -- Toggles noborder
, ("M-S-=", sendMessage (Toggle NBFULL) >> sendMessage ToggleStruts) -- Toggles noborder/full
, ("M-S-f", sendMessage (T.Toggle "float"))
, ("M-S-x", sendMessage $ Toggle REFLECTX)
, ("M-S-y", sendMessage $ Toggle REFLECTY)
, ("M-S-m", sendMessage $ Toggle MIRROR)
, ("M-<KP_Multiply>", sendMessage (IncMasterN 1)) -- Increase the number of clients in the master pane
, ("M-<KP_Divide>", sendMessage (IncMasterN (-1))) -- Decrease the number of clients in the master pane
, ("M-S-<KP_Multiply>", increaseLimit) -- Increase the number of windows that can be shown
, ("M-S-<KP_Divide>", decreaseLimit) -- Decrease the number of windows that can be shown
, ("M-<Space>", sendMessage NextLayout) -- Switch to next layout
, ("M-S-<Space>", sendMessage ToggleStruts) -- Toggles struts
, ("M-S-b", sendMessage $ Toggle NOBORDERS) -- Toggles noborder
, ("M-S-=", sendMessage (Toggle NBFULL) >> sendMessage ToggleStruts) -- Toggles noborder/full
, ("M-S-f", sendMessage (T.Toggle "float"))
, ("M-S-x", sendMessage $ Toggle REFLECTX)
, ("M-S-y", sendMessage $ Toggle REFLECTY)
, ("M-S-m", sendMessage $ Toggle MIRROR)
, ("M-<KP_Multiply>", sendMessage (IncMasterN 1)) -- Increase number of clients in the master pane
, ("M-<KP_Divide>", sendMessage (IncMasterN (-1))) -- Decrease number of clients in the master pane
, ("M-S-<KP_Multiply>", increaseLimit) -- Increase number of windows that can be shown
, ("M-S-<KP_Divide>", decreaseLimit) -- Decrease number of windows that can be shown
, ("M-h", sendMessage Shrink)
, ("M-l", sendMessage Expand)
, ("M-S-;", sendMessage zoomReset)
, ("M-;", sendMessage ZoomFullToggle)
, ("M-h", sendMessage Shrink)
, ("M-l", sendMessage Expand)
, ("M-S-;", sendMessage zoomReset)
, ("M-;", sendMessage ZoomFullToggle)
-- Workspaces
, ("M-<KP_Add>", moveTo Next nonNSP) -- Go to next workspace
, ("M-<KP_Subtract>", moveTo Prev nonNSP) -- Go to previous workspace
, ("M-S-<KP_Add>", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next workspace
, ("M-<KP_Add>", moveTo Next nonNSP) -- Go to next workspace
, ("M-<KP_Subtract>", moveTo Prev nonNSP) -- Go to previous workspace
, ("M-S-<KP_Add>", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next workspace
, ("M-S-<KP_Subtract>", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- Shifts focused window to previous workspace
-- Main Run Apps
, ("M-<Return>", spawn myTerminal)
, ("M-<KP_Insert>", spawn "dmenu_run -fn 'UbuntuMono Nerd Font:size=10' -nb '#282A36' -nf '#F8F8F2' -sb '#BD93F9' -sf '#282A36' -p 'dmenu:'")
, ("M-<Return>", spawn myTerminal)
, ("M-<KP_Insert>", spawn "dmenu_run -fn 'UbuntuMono Nerd Font:size=10' -nb '#282A36' -nf '#F8F8F2' -sb '#BD93F9' -sf '#282A36' -p 'dmenu:'")
-- Command Line Apps (MOD + KEYPAD 1-9)
, ("M-<KP_End>", spawn (myTerminal ++ " -e lynx -cfg=~/.lynx.cfg -lss=~/.lynx.lss http://www.distrowatch.com")) -- Keypad 1
, ("M-<KP_Down>", spawn (myTerminal ++ " -e sh ./scripts/googler-script.sh")) -- Keypad 2
, ("M-<KP_Page_Down>", spawn (myTerminal ++ " -e newsboat")) -- Keypad 3
, ("M-<KP_Left>", spawn (myTerminal ++ " -e rtv")) -- Keypad 4
, ("M-<KP_Begin>", spawn (myTerminal ++ " -e neomutt")) -- Keypad 5
, ("M-<KP_Right>", spawn (myTerminal ++ " -e twitch-curses")) -- Keypad 6
, ("M-<KP_Home>", spawn (myTerminal ++ " -e sh ./scripts/haxor-news.sh")) -- Keypad 7
, ("M-<KP_Up>", spawn (myTerminal ++ " -e toot curses")) -- Keypad 8
, ("M-<KP_Page_Up>", spawn (myTerminal ++ " -e sh ./scripts/tig-script.sh")) -- Keypad 9
, ("M-<KP_End>", spawn (myTerminal ++ " -e lynx -cfg=~/.lynx.cfg -lss=~/.lynx.lss http://www.distrowatch.com")) -- Keypad 1
, ("M-<KP_Down>", spawn (myTerminal ++ " -e sh ./scripts/googler-script.sh")) -- Keypad 2
, ("M-<KP_Page_Down>", spawn (myTerminal ++ " -e newsboat")) -- Keypad 3
, ("M-<KP_Left>", spawn (myTerminal ++ " -e rtv")) -- Keypad 4
, ("M-<KP_Begin>", spawn (myTerminal ++ " -e neomutt")) -- Keypad 5
, ("M-<KP_Right>", spawn (myTerminal ++ " -e twitch-curses")) -- Keypad 6
, ("M-<KP_Home>", spawn (myTerminal ++ " -e sh ./scripts/haxor-news.sh")) -- Keypad 7
, ("M-<KP_Up>", spawn (myTerminal ++ " -e toot curses")) -- Keypad 8
, ("M-<KP_Page_Up>", spawn (myTerminal ++ " -e sh ./scripts/tig-script.sh")) -- Keypad 9
-- Command Line Apps (MOD + SHIFT + KEYPAD 1-9)
, ("M-S-<KP_End>", spawn (myTerminal ++ " -e vifm")) -- Keypad 1
, ("M-S-<KP_Down>", spawn (myTerminal ++ " -e htop")) -- Keypad 2
, ("M-S-<KP_Page_Down>", spawn (myTerminal ++ " -e cmus")) -- Keypad 3
, ("M-S-<KP_Left>", spawn (myTerminal ++ " -e irssi")) -- Keypad 4
, ("M-S-<KP_Begin>", spawn (myTerminal ++ " -e rtorrent")) -- Keypad 5
, ("M-S-<KP_Right>", spawn (myTerminal ++ " -e youtube-viewer")) -- Keypad 6
, ("M-S-<KP_Home>", spawn (myTerminal ++ " -e ncpamixer")) -- Keypad 7
, ("M-S-<KP_Up>", spawn (myTerminal ++ " -e calcurse")) -- Keypad 8
, ("M-S-<KP_Page_Up>", spawn (myTerminal ++ " -e vim /home/dt/.xmonad/xmonad.hs")) -- Keypad 9
, ("M-S-<KP_End>", spawn (myTerminal ++ " -e vifm")) -- Keypad 1
, ("M-S-<KP_Down>", spawn (myTerminal ++ " -e htop")) -- Keypad 2
, ("M-S-<KP_Page_Down>", spawn (myTerminal ++ " -e cmus")) -- Keypad 3
, ("M-S-<KP_Left>", spawn (myTerminal ++ " -e irssi")) -- Keypad 4
, ("M-S-<KP_Begin>", spawn (myTerminal ++ " -e rtorrent")) -- Keypad 5
, ("M-S-<KP_Right>", spawn (myTerminal ++ " -e youtube-viewer")) -- Keypad 6
, ("M-S-<KP_Home>", spawn (myTerminal ++ " -e ncpamixer")) -- Keypad 7
, ("M-S-<KP_Up>", spawn (myTerminal ++ " -e calcurse")) -- Keypad 8
, ("M-S-<KP_Page_Up>", spawn (myTerminal ++ " -e vim ~/.xmonad/xmonad.hs")) -- Keypad 9
-- Command Line Apps (MOD + CTRL + KEYPAD 1-9)
, ("M-C-<KP_End>", spawn (myTerminal ++ " -e htop")) -- Keypad 1
, ("M-C-<KP_Down>", spawn (myTerminal ++ " -e glances")) -- Keypad 2
, ("M-C-<KP_Page_Down>", spawn (myTerminal ++ " -e nmon")) -- Keypad 3
, ("M-C-<KP_Left>", spawn (myTerminal ++ " -e httping -KY --draw-phase localhost")) -- Keypad 4
, ("M-C-<KP_Begin>", spawn (myTerminal ++ " -e s-tui")) -- Keypad 5
, ("M-C-<KP_Right>", spawn (myTerminal ++ " -e pianobar")) -- Keypad 6
, ("M-C-<KP_Home>", spawn (myTerminal ++ " -e cmatrix -C cyan")) -- Keypad 7
, ("M-C-<KP_Up>", spawn (myTerminal ++ " -e joplin")) -- Keypad 8
, ("M-C-<KP_Page_Up>", spawn (myTerminal ++ " -e wopr report.xml")) -- Keypad 9
, ("M-C-<KP_End>", spawn (myTerminal ++ " -e htop")) -- Keypad 1
, ("M-C-<KP_Down>", spawn (myTerminal ++ " -e glances")) -- Keypad 2
, ("M-C-<KP_Page_Down>", spawn (myTerminal ++ " -e nmon")) -- Keypad 3
, ("M-C-<KP_Left>", spawn (myTerminal ++ " -e httping -KY --draw-phase localhost")) -- Keypad 4
, ("M-C-<KP_Begin>", spawn (myTerminal ++ " -e s-tui")) -- Keypad 5
, ("M-C-<KP_Right>", spawn (myTerminal ++ " -e pianobar")) -- Keypad 6
, ("M-C-<KP_Home>", spawn (myTerminal ++ " -e cmatrix -C cyan")) -- Keypad 7
, ("M-C-<KP_Up>", spawn (myTerminal ++ " -e joplin")) -- Keypad 8
, ("M-C-<KP_Page_Up>", spawn (myTerminal ++ " -e wopr report.xml")) -- Keypad 9
-- GUI Apps
, ("M-w", spawn "surf http://www.youtube.com/c/DistroTube/")
, ("M-f", spawn "pcmanfm")
, ("M-g", runOrRaise "geany" (resource =? "geany"))
, ("M-w", spawn "surf http://www.youtube.com/c/DistroTube/")
, ("M-f", spawn "pcmanfm")
, ("M-g", runOrRaise "geany" (resource =? "geany"))
-- Multimedia Keys
, ("<XF86AudioPlay>", spawn "cmus toggle")
, ("<XF86AudioPrev>", spawn "cmus prev")
, ("<XF86AudioNext>", spawn "cmus next")
, ("<XF86AudioPlay>", spawn "cmus toggle")
, ("<XF86AudioPrev>", spawn "cmus prev")
, ("<XF86AudioNext>", spawn "cmus next")
-- , ("<XF86AudioMute>", spawn "amixer set Master toggle") -- Bug prevents it from toggling correctly in 12.04.
, ("<XF86AudioLowerVolume>", spawn "amixer set Master 5%- unmute")
, ("<XF86AudioRaiseVolume>", spawn "amixer set Master 5%+ unmute")
, ("<XF86HomePage>", spawn "firefox")
, ("<XF86Search>", safeSpawn "firefox" ["https://www.google.com/"])
, ("<XF86Mail>", runOrRaise "thunderbird" (resource =? "thunderbird"))
, ("<XF86Calculator>", runOrRaise "gcalctool" (resource =? "gcalctool"))
, ("<XF86Eject>", spawn "toggleeject")
, ("<Print>", spawn "scrotd 0")
, ("<XF86HomePage>", spawn "firefox")
, ("<XF86Search>", safeSpawn "firefox" ["https://www.google.com/"])
, ("<XF86Mail>", runOrRaise "thunderbird" (resource =? "thunderbird"))
, ("<XF86Calculator>", runOrRaise "gcalctool" (resource =? "gcalctool"))
, ("<XF86Eject>", spawn "toggleeject")
, ("<Print>", spawn "scrotd 0")
] where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP"))
nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP"))
@ -285,13 +292,13 @@ myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts float
where
myDefaultLayout = grid ||| threeCol ||| threeRow ||| oneBig ||| noBorders monocle ||| space ||| floats
grid = renamed [Replace "grid"] $ limitWindows 12 $ spacing 4 $ mkToggle (single MIRROR) $ Grid (16/10)
threeCol = renamed [Replace "threeCol"] $ limitWindows 3 $ ThreeCol 1 (3/100) (1/2)
threeRow = renamed [Replace "threeRow"] $ limitWindows 3 $ Mirror $ mkToggle (single MIRROR) zoomRow
oneBig = renamed [Replace "oneBig"] $ limitWindows 6 $ Mirror $ mkToggle (single MIRROR) $ mkToggle (single REFLECTX) $ mkToggle (single REFLECTY) $ OneBig (5/9) (8/12)
monocle = renamed [Replace "monocle"] $ limitWindows 20 $ Full
space = renamed [Replace "space"] $ limitWindows 4 $ spacing 36 $ Mirror $ mkToggle (single MIRROR) $ mkToggle (single REFLECTX) $ mkToggle (single REFLECTY) $ OneBig (2/3) (2/3)
floats = renamed [Replace "floats"] $ limitWindows 20 $ simplestFloat
grid = renamed [Replace "grid"] $ limitWindows 12 $ spacing 4 $ mkToggle (single MIRROR) $ Grid (16/10)
threeCol = renamed [Replace "threeCol"] $ limitWindows 3 $ ThreeCol 1 (3/100) (1/2)
threeRow = renamed [Replace "threeRow"] $ limitWindows 3 $ Mirror $ mkToggle (single MIRROR) zoomRow
oneBig = renamed [Replace "oneBig"] $ limitWindows 6 $ Mirror $ mkToggle (single MIRROR) $ mkToggle (single REFLECTX) $ mkToggle (single REFLECTY) $ OneBig (5/9) (8/12)
monocle = renamed [Replace "monocle"] $ limitWindows 20 $ Full
space = renamed [Replace "space"] $ limitWindows 4 $ spacing 12 $ Mirror $ mkToggle (single MIRROR) $ mkToggle (single REFLECTX) $ mkToggle (single REFLECTY) $ OneBig (2/3) (2/3)
floats = renamed [Replace "floats"] $ limitWindows 20 $ simplestFloat