Trying to cleanup a lot of broken and/or sloppy code in xmonad.hs

This commit is contained in:
Derek Taylor
2019-02-24 23:28:46 -06:00
parent 4f6dee2c15
commit 1cf187c666
2 changed files with 39 additions and 67 deletions
+2 -2
View File
@@ -252,8 +252,8 @@ filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
\ shotwell, \ shotwell,
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm
" Get w3m image previews inside vifm " Get w3m image previews inside vifm
\ imgt %px %py %pw %ph %c " \ imgt %px %py %pw %ph %c
\ %pc " \ %pc
" \ imgc %px %py %pw %ph NOT NEEDED IN XTERM " \ imgc %px %py %pw %ph NOT NEEDED IN XTERM
" OpenRaster " OpenRaster
+25 -53
View File
@@ -5,6 +5,7 @@
import XMonad import XMonad
import XMonad.Config.Desktop import XMonad.Config.Desktop
import Data.Maybe (isJust) import Data.Maybe (isJust)
import Data.Ratio ((%))
import System.IO (hPutStrLn) import System.IO (hPutStrLn)
import System.Exit (exitSuccess) import System.Exit (exitSuccess)
import qualified XMonad.StackSet as W import qualified XMonad.StackSet as W
@@ -45,10 +46,7 @@ import XMonad.Layout.PerWorkspace (onWorkspace)
import XMonad.Layout.Renamed (renamed, Rename(CutWordsLeft, Replace)) import XMonad.Layout.Renamed (renamed, Rename(CutWordsLeft, Replace))
import XMonad.Layout.WorkspaceDir import XMonad.Layout.WorkspaceDir
import XMonad.Layout.Spacing (spacing) import XMonad.Layout.Spacing (spacing)
import XMonad.Layout.Minimize
import XMonad.Layout.Maximize
import XMonad.Layout.NoBorders import XMonad.Layout.NoBorders
import XMonad.Layout.BoringWindows (boringWindows)
import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit) import XMonad.Layout.LimitWindows (limitWindows, increaseLimit, decreaseLimit)
import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..)) import XMonad.Layout.WindowArranger (windowArrange, WindowArrangerMsg(..))
import XMonad.Layout.Reflect (reflectVert, reflectHoriz, REFLECTX(..), REFLECTY(..)) import XMonad.Layout.Reflect (reflectVert, reflectHoriz, REFLECTX(..), REFLECTY(..))
@@ -82,7 +80,7 @@ main = do
xmproc1 <- spawnPipe "xmobar -x 1 /home/dt/.config/xmobar/xmobarrc1" -- xmobar mon 1 xmproc1 <- spawnPipe "xmobar -x 1 /home/dt/.config/xmobar/xmobarrc1" -- xmobar mon 1
xmproc2 <- spawnPipe "xmobar -x 2 /home/dt/.config/xmobar/xmobarrc0" -- xmobar mon 0 xmproc2 <- spawnPipe "xmobar -x 2 /home/dt/.config/xmobar/xmobarrc0" -- xmobar mon 0
xmonad $ ewmh desktopConfig xmonad $ ewmh desktopConfig
{ manageHook = ( isFullscreen --> doFullFloat ) <+> manageHook defaultConfig <+> manageDocks { manageHook = ( isFullscreen --> doFullFloat ) <+> manageDocks <+> myManageHook <+> manageHook desktopConfig
, logHook = dynamicLogWithPP xmobarPP , logHook = dynamicLogWithPP xmobarPP
{ ppOutput = \x -> hPutStrLn xmproc0 x >> hPutStrLn xmproc1 x >> hPutStrLn xmproc2 x { ppOutput = \x -> hPutStrLn xmproc0 x >> hPutStrLn xmproc1 x >> hPutStrLn xmproc2 x
, ppCurrent = xmobarColor "#c3e88d" "" . wrap "[" "]" -- Current workspace in xmobar , ppCurrent = xmobarColor "#c3e88d" "" . wrap "[" "]" -- Current workspace in xmobar
@@ -141,9 +139,6 @@ myKeys =
, ("M1-S-<Tab>", rotSlavesDown) -- Rotate all windows except the master and keep the focus in place , ("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 , ("M1-C-<Tab>", rotAllDown) -- Rotate all the windows in the current stack
, ("M-*", withFocused minimizeWindow)
--, ("M-S-*", sendMessage RestoreNextMinimizedWin)
, ("M-!", withFocused (sendMessage . maximizeRestore))
, ("M-$", toggleFloatNext) , ("M-$", toggleFloatNext)
, ("M-S-$", toggleFloatAllNew) , ("M-S-$", toggleFloatAllNew)
, ("M-S-s", windows copyToAll) , ("M-S-s", windows copyToAll)
@@ -165,16 +160,14 @@ myKeys =
, ("M-C-<Left>", sendMessage (DecreaseLeft 10)) -- Decrease size of focused window left , ("M-C-<Left>", sendMessage (DecreaseLeft 10)) -- Decrease size of focused window left
-- Layouts -- Layouts
, ("M-S-<Space>", sendMessage ToggleStruts) , ("M-<Space>", sendMessage NextLayout) -- Switch to next layout
, ("M-d", asks (XMonad.layoutHook . config) >>= setLayout) , ("M-S-<Space>", sendMessage ToggleStruts) -- Toggles struts
, ("M-<KP_Enter>", sendMessage NextLayout) , ("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-f", sendMessage (T.Toggle "float"))
, ("M-S-g", sendMessage (T.Toggle "gimp"))
, ("M-S-x", sendMessage $ Toggle REFLECTX) , ("M-S-x", sendMessage $ Toggle REFLECTX)
, ("M-S-y", sendMessage $ Toggle REFLECTY) , ("M-S-y", sendMessage $ Toggle REFLECTY)
, ("M-S-m", sendMessage $ Toggle MIRROR) , ("M-S-m", sendMessage $ Toggle MIRROR)
, ("M-S-b", sendMessage $ Toggle NOBORDERS)
, ("M-S-d", sendMessage (Toggle NBFULL) >> sendMessage ToggleStruts)
, ("M-<KP_Multiply>", sendMessage (IncMasterN 1)) -- Increase the number of clients in the master pane , ("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-<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_Multiply>", increaseLimit) -- Increase the number of windows that can be shown
@@ -191,7 +184,6 @@ myKeys =
, ("M-S-<KP_Add>", shiftTo Next nonNSP >> moveTo Next nonNSP) -- Shifts focused window to next 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 , ("M-S-<KP_Subtract>", shiftTo Prev nonNSP >> moveTo Prev nonNSP) -- Shifts focused window to previous workspace
-- Main Run Apps -- Main Run Apps
, ("M-<Return>", spawn myTerminal) , ("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-<KP_Insert>", spawn "dmenu_run -fn 'UbuntuMono Nerd Font:size=10' -nb '#282A36' -nf '#F8F8F2' -sb '#BD93F9' -sf '#282A36' -p 'dmenu:'")
@@ -250,7 +242,6 @@ myKeys =
] where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP")) ] where nonNSP = WSIs (return (\ws -> W.tag ws /= "NSP"))
nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP")) nonEmptyNonNSP = WSIs (return (\ws -> isJust (W.stack ws) && W.tag ws /= "NSP"))
------------------------------------------------------------------------ ------------------------------------------------------------------------
---WORKSPACES ---WORKSPACES
------------------------------------------------------------------------ ------------------------------------------------------------------------
@@ -268,58 +259,39 @@ myWorkspaces = clickable . (map xmobarEscape)
(i,ws) <- zip [1..8] l, (i,ws) <- zip [1..8] l,
let n = i ] let n = i ]
myManageHook = placeHook (withGaps (20,12,12,12) (smart (0.5,0.5))) <+> insertPosition End Newer <+> floatNextHook <+> myManageHook = composeAll
(composeAll . concat $ [
[ [ resource =? r --> doF (W.view "main" . W.shift "main") | r <- myTermApps ] className =? "Firefox" --> doShift "www"
, [ resource =? r --> doF (W.view "web" . W.shift "web") | r <- myWebApps ] , className =? "vivaldi" --> doShift "www"
, [ resource =? r --> doF (W.view "media" . W.shift "media") | r <- myMediaApps ] , className =? "irssi" --> doShift "chat"
, [ resource =? r --> doF (W.view "syst" . W.shift "syst") | r <- mySystApps ] , className =? "zoom" --> doShift "chat"
, [ resource =? r --> doFloat | r <- myFloatApps ] , className =? "hexchat" --> doShift "chat"
, [ className =? c --> ask >>= doF . W.sink | c <- myUnfloatApps ] , className =? "pcmanfm" --> doShift "sys"
]) <+> manageHook defaultConfig , className =? "vifm" --> doShift "sys"
where , className =? "cmus" --> doShift "media"
myTermApps = ["termite", "xterm", "htop", "irssi"] , className =? "Vlc" --> doShift "media"
myWebApps = ["firefox", "thunderbird"] , className =? "Virtualbox" --> doFloat
myMediaApps = ["vlc", "ncmpcpp", "weechat", "mplayer", "gimp"] , className =? "Gimp" --> doFloat
mySystApps = ["ranger", "pcmanfm", "geany", "nitrogen"] , (className =? "Firefox" <&&> resource =? "Dialog") --> doFloat -- Float Firefox Dialog
myFloatApps = ["file-roller", "nitrogen"] ]
myUnfloatApps = ["gimp"]
------------------------------------------------------------------------ ------------------------------------------------------------------------
---LAYOUTS ---LAYOUTS
------------------------------------------------------------------------ ------------------------------------------------------------------------
myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats $ myLayoutHook = avoidStruts $ mouseResize $ windowArrange $ T.toggleLayouts floats $
mkToggle (NBFULL ?? NOBORDERS ?? EOT) $ renamed [CutWordsLeft 4] $ maximize $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) $ myDefaultLayout
minimize $ boringWindows $ spacing 0 $
myDevLayout $
myWebLayout $
mySysLayout $
myDocLayout $
myVboxLayout $
myChatLayout $
myMediaLayout $
myGfxLayout $
myDefaultLayout
where where
myDevLayout = onWorkspace (myWorkspaces !! 0) $ grid ||| threeCol ||| threeRow ||| oneBig ||| floats
myWebLayout = onWorkspace (myWorkspaces !! 1) $ noBorders monocle ||| oneBig ||| threeCol ||| threeRow ||| grid
mySysLayout = onWorkspace (myWorkspaces !! 2) $ oneBig ||| threeCol ||| threeRow ||| grid
myDocLayout = onWorkspace (myWorkspaces !! 3) $ oneBig ||| threeCol ||| threeRow ||| grid
myVboxLayout = onWorkspace (myWorkspaces !! 4) $ noBorders monocle ||| oneBig ||| threeCol ||| threeRow ||| grid
myChatLayout = onWorkspace (myWorkspaces !! 5) $ grid ||| threeCol ||| threeRow ||| oneBig ||| floats
myMediaLayout = onWorkspace (myWorkspaces !! 6) $ noBorders monocle ||| oneBig ||| space ||| threeRow
myGfxLayout = onWorkspace (myWorkspaces !! 7) $ T.toggleLayouts gimp $ noBorders monocle ||| floats ||| grid
myDefaultLayout = grid ||| threeCol ||| threeRow ||| oneBig ||| noBorders monocle ||| space ||| floats myDefaultLayout = grid ||| threeCol ||| threeRow ||| oneBig ||| noBorders monocle ||| space ||| floats
grid = renamed [Replace "grid"] $ limitWindows 12 $ spacing 4 $ mkToggle (single MIRROR) $ Grid (16/10) 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) threeCol = renamed [Replace "threeCol"] $ limitWindows 3 $ ThreeCol 1 (3/100) (1/2)
threeRow = renamed [Replace "threeRow"] $ limitWindows 3 $ Mirror $ mkToggle (single MIRROR) zoomRow 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) 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 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) 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 floats = renamed [Replace "floats"] $ limitWindows 20 $ simplestFloat
gimp = renamed [Replace "gimp"] $ limitWindows 5 $ withIM 0.11 (Role "gimp-toolbox") $ reflectHoriz $ withIM 0.15 (Role "gimp-dock") Full