import XMonad import qualified XMonad.StackSet as W -- actions import XMonad.Actions.CycleWS (moveTo, shiftTo, WSType(..), nextScreen, prevScreen) import XMonad.Actions.CopyWindow (kill1, killAllOtherCopies) -- layouts modifiers import XMonad.Layout.Spacing import XMonad.Layout.LayoutModifier -- import XMonad.Layout.Gaps -- import XMonad.Layout.ShowWName -- utilities import XMonad.Util.SpawnOnce myStartupHook :: X () myStartupHook = do spawnOnce "nitrogen --restore &" spawnOnce "picom &" spawnOnce "deadd-notification-center &" -- spawnOnce "firefox &" spawnOnce "sxhkd &" -- defaults -- myFont :: String -- myFont = "Roboto" myModMask :: KeyMask myModMask = mod4Mask myTerminal :: String myTerminal = "st" myBrowser :: String myBrowser = "firefox" -- myEditor :: String -- myEditor = "vim" -- ~defaults~ -- wm variables nBorder = "#bf00ff" fBorder = "#FB027F" myBorderWidth = 2 windowGaps = mySpacing 2 3 myExtraWorkspaces = [(xK_0, "10")] -- ,(xK_minus, "tmp"),(xK_equal, "swap")] myWorkspaces = ["1","2","3","4","5","6","7","8","9"] ++ (map snd myExtraWorkspaces) myLayoutHook = windowGaps -- ~wm variables~ -- functions mySpacing i j = spacingRaw False (Border i i i i) True (Border j j j j) True $ layoutHook def -- ~functions~ -- keybindings myKeys = [("modMask-", spawn (myTerminal))] -- ~keybindings~ main = do xmonad $ def { terminal = myTerminal, focusFollowsMouse = True, borderWidth = myBorderWidth, modMask = myModMask, workspaces = myWorkspaces, normalBorderColor = nBorder, focusedBorderColor = fBorder, keys = myKeys, -- mouseBindings = myMouseBindings, -- hooks, layouts layoutHook = myLayoutHook, --manageHook = myManageHook, --handleEventHook = myEventHook, --logHook = myLogHook, startupHook = myStartupHook }