diff --git a/.xmonad/xmonad.hs b/.xmonad/xmonad.hs index e3500d5..5c48a4e 100755 --- a/.xmonad/xmonad.hs +++ b/.xmonad/xmonad.hs @@ -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-", withFocused $ windows . W.sink) - , ("M-S-", 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-", promote) -- Moves focused window to master window. All others maintain order - , ("M1-S-", rotSlavesDown) -- Rotate all windows except the master and keep the focus in place - , ("M1-C-", rotAllDown) -- Rotate all the windows in the current stack + , ("M-", withFocused $ windows . W.sink) + , ("M-S-", 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-", promote) -- Moves focused window to master, all others maintain order + , ("M1-S-", rotSlavesDown) -- Rotate all windows except master and keep focus in place + , ("M1-C-", 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-", sendMessage Arrange) - , ("M-C-M1-", sendMessage DeArrange) - , ("M-", sendMessage (MoveUp 10)) -- Move focused window to up - , ("M-", sendMessage (MoveDown 10)) -- Move focused window to down - , ("M-", sendMessage (MoveRight 10)) -- Move focused window to right - , ("M-", sendMessage (MoveLeft 10)) -- Move focused window to left - , ("M-S-", sendMessage (IncreaseUp 10)) -- Increase size of focused window up - , ("M-S-", sendMessage (IncreaseDown 10)) -- Increase size of focused window down - , ("M-S-", sendMessage (IncreaseRight 10)) -- Increase size of focused window right - , ("M-S-", sendMessage (IncreaseLeft 10)) -- Increase size of focused window left - , ("M-C-", sendMessage (DecreaseUp 10)) -- Decrease size of focused window up - , ("M-C-", sendMessage (DecreaseDown 10)) -- Decrease size of focused window down - , ("M-C-", sendMessage (DecreaseRight 10)) -- Decrease size of focused window right - , ("M-C-", sendMessage (DecreaseLeft 10)) -- Decrease size of focused window left + , ("M-C-M1-", sendMessage Arrange) + , ("M-C-M1-", sendMessage DeArrange) + , ("M-", sendMessage (MoveUp 10)) -- Move focused window to up + , ("M-", sendMessage (MoveDown 10)) -- Move focused window to down + , ("M-", sendMessage (MoveRight 10)) -- Move focused window to right + , ("M-", sendMessage (MoveLeft 10)) -- Move focused window to left + , ("M-S-", sendMessage (IncreaseUp 10)) -- Increase size of focused window up + , ("M-S-", sendMessage (IncreaseDown 10)) -- Increase size of focused window down + , ("M-S-", sendMessage (IncreaseRight 10)) -- Increase size of focused window right + , ("M-S-", sendMessage (IncreaseLeft 10)) -- Increase size of focused window left + , ("M-C-", sendMessage (DecreaseUp 10)) -- Decrease size of focused window up + , ("M-C-", sendMessage (DecreaseDown 10)) -- Decrease size of focused window down + , ("M-C-", sendMessage (DecreaseRight 10)) -- Decrease size of focused window right + , ("M-C-", sendMessage (DecreaseLeft 10)) -- Decrease size of focused window left -- Layouts - , ("M-", sendMessage NextLayout) -- Switch to next layout - , ("M-S-", 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-", sendMessage (IncMasterN 1)) -- Increase the number of clients in the master pane - , ("M-", sendMessage (IncMasterN (-1))) -- Decrease the number of clients in the master pane - , ("M-S-", increaseLimit) -- Increase the number of windows that can be shown - , ("M-S-", decreaseLimit) -- Decrease the number of windows that can be shown + , ("M-", sendMessage NextLayout) -- Switch to next layout + , ("M-S-", 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-", sendMessage (IncMasterN 1)) -- Increase number of clients in the master pane + , ("M-", sendMessage (IncMasterN (-1))) -- Decrease number of clients in the master pane + , ("M-S-", increaseLimit) -- Increase number of windows that can be shown + , ("M-S-", 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-", moveTo Next nonNSP) -- Go to next workspace - , ("M-", moveTo Prev nonNSP) -- Go to previous workspace - , ("M-S-", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next workspace + , ("M-", moveTo Next nonNSP) -- Go to next workspace + , ("M-", moveTo Prev nonNSP) -- Go to previous workspace + , ("M-S-", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next workspace , ("M-S-", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- Shifts focused window to previous workspace -- Main Run Apps - , ("M-", spawn myTerminal) - , ("M-", spawn "dmenu_run -fn 'UbuntuMono Nerd Font:size=10' -nb '#282A36' -nf '#F8F8F2' -sb '#BD93F9' -sf '#282A36' -p 'dmenu:'") + , ("M-", spawn myTerminal) + , ("M-", 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-", spawn (myTerminal ++ " -e lynx -cfg=~/.lynx.cfg -lss=~/.lynx.lss http://www.distrowatch.com")) -- Keypad 1 - , ("M-", spawn (myTerminal ++ " -e sh ./scripts/googler-script.sh")) -- Keypad 2 - , ("M-", spawn (myTerminal ++ " -e newsboat")) -- Keypad 3 - , ("M-", spawn (myTerminal ++ " -e rtv")) -- Keypad 4 - , ("M-", spawn (myTerminal ++ " -e neomutt")) -- Keypad 5 - , ("M-", spawn (myTerminal ++ " -e twitch-curses")) -- Keypad 6 - , ("M-", spawn (myTerminal ++ " -e sh ./scripts/haxor-news.sh")) -- Keypad 7 - , ("M-", spawn (myTerminal ++ " -e toot curses")) -- Keypad 8 - , ("M-", spawn (myTerminal ++ " -e sh ./scripts/tig-script.sh")) -- Keypad 9 + , ("M-", spawn (myTerminal ++ " -e lynx -cfg=~/.lynx.cfg -lss=~/.lynx.lss http://www.distrowatch.com")) -- Keypad 1 + , ("M-", spawn (myTerminal ++ " -e sh ./scripts/googler-script.sh")) -- Keypad 2 + , ("M-", spawn (myTerminal ++ " -e newsboat")) -- Keypad 3 + , ("M-", spawn (myTerminal ++ " -e rtv")) -- Keypad 4 + , ("M-", spawn (myTerminal ++ " -e neomutt")) -- Keypad 5 + , ("M-", spawn (myTerminal ++ " -e twitch-curses")) -- Keypad 6 + , ("M-", spawn (myTerminal ++ " -e sh ./scripts/haxor-news.sh")) -- Keypad 7 + , ("M-", spawn (myTerminal ++ " -e toot curses")) -- Keypad 8 + , ("M-", spawn (myTerminal ++ " -e sh ./scripts/tig-script.sh")) -- Keypad 9 -- Command Line Apps (MOD + SHIFT + KEYPAD 1-9) - , ("M-S-", spawn (myTerminal ++ " -e vifm")) -- Keypad 1 - , ("M-S-", spawn (myTerminal ++ " -e htop")) -- Keypad 2 - , ("M-S-", spawn (myTerminal ++ " -e cmus")) -- Keypad 3 - , ("M-S-", spawn (myTerminal ++ " -e irssi")) -- Keypad 4 - , ("M-S-", spawn (myTerminal ++ " -e rtorrent")) -- Keypad 5 - , ("M-S-", spawn (myTerminal ++ " -e youtube-viewer")) -- Keypad 6 - , ("M-S-", spawn (myTerminal ++ " -e ncpamixer")) -- Keypad 7 - , ("M-S-", spawn (myTerminal ++ " -e calcurse")) -- Keypad 8 - , ("M-S-", spawn (myTerminal ++ " -e vim /home/dt/.xmonad/xmonad.hs")) -- Keypad 9 + , ("M-S-", spawn (myTerminal ++ " -e vifm")) -- Keypad 1 + , ("M-S-", spawn (myTerminal ++ " -e htop")) -- Keypad 2 + , ("M-S-", spawn (myTerminal ++ " -e cmus")) -- Keypad 3 + , ("M-S-", spawn (myTerminal ++ " -e irssi")) -- Keypad 4 + , ("M-S-", spawn (myTerminal ++ " -e rtorrent")) -- Keypad 5 + , ("M-S-", spawn (myTerminal ++ " -e youtube-viewer")) -- Keypad 6 + , ("M-S-", spawn (myTerminal ++ " -e ncpamixer")) -- Keypad 7 + , ("M-S-", spawn (myTerminal ++ " -e calcurse")) -- Keypad 8 + , ("M-S-", spawn (myTerminal ++ " -e vim ~/.xmonad/xmonad.hs")) -- Keypad 9 -- Command Line Apps (MOD + CTRL + KEYPAD 1-9) - , ("M-C-", spawn (myTerminal ++ " -e htop")) -- Keypad 1 - , ("M-C-", spawn (myTerminal ++ " -e glances")) -- Keypad 2 - , ("M-C-", spawn (myTerminal ++ " -e nmon")) -- Keypad 3 - , ("M-C-", spawn (myTerminal ++ " -e httping -KY --draw-phase localhost")) -- Keypad 4 - , ("M-C-", spawn (myTerminal ++ " -e s-tui")) -- Keypad 5 - , ("M-C-", spawn (myTerminal ++ " -e pianobar")) -- Keypad 6 - , ("M-C-", spawn (myTerminal ++ " -e cmatrix -C cyan")) -- Keypad 7 - , ("M-C-", spawn (myTerminal ++ " -e joplin")) -- Keypad 8 - , ("M-C-", spawn (myTerminal ++ " -e wopr report.xml")) -- Keypad 9 + , ("M-C-", spawn (myTerminal ++ " -e htop")) -- Keypad 1 + , ("M-C-", spawn (myTerminal ++ " -e glances")) -- Keypad 2 + , ("M-C-", spawn (myTerminal ++ " -e nmon")) -- Keypad 3 + , ("M-C-", spawn (myTerminal ++ " -e httping -KY --draw-phase localhost")) -- Keypad 4 + , ("M-C-", spawn (myTerminal ++ " -e s-tui")) -- Keypad 5 + , ("M-C-", spawn (myTerminal ++ " -e pianobar")) -- Keypad 6 + , ("M-C-", spawn (myTerminal ++ " -e cmatrix -C cyan")) -- Keypad 7 + , ("M-C-", spawn (myTerminal ++ " -e joplin")) -- Keypad 8 + , ("M-C-", 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 - , ("", spawn "cmus toggle") - , ("", spawn "cmus prev") - , ("", spawn "cmus next") + , ("", spawn "cmus toggle") + , ("", spawn "cmus prev") + , ("", spawn "cmus next") -- , ("", spawn "amixer set Master toggle") -- Bug prevents it from toggling correctly in 12.04. , ("", spawn "amixer set Master 5%- unmute") , ("", spawn "amixer set Master 5%+ unmute") - , ("", spawn "firefox") - , ("", safeSpawn "firefox" ["https://www.google.com/"]) - , ("", runOrRaise "thunderbird" (resource =? "thunderbird")) - , ("", runOrRaise "gcalctool" (resource =? "gcalctool")) - , ("", spawn "toggleeject") - , ("", spawn "scrotd 0") + , ("", spawn "firefox") + , ("", safeSpawn "firefox" ["https://www.google.com/"]) + , ("", runOrRaise "thunderbird" (resource =? "thunderbird")) + , ("", runOrRaise "gcalctool" (resource =? "gcalctool")) + , ("", spawn "toggleeject") + , ("", 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