Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import XMonad
- import XMonad.Hooks.DynamicLog
- import XMonad.Hooks.ManageDocks
- import XMonad.Hooks.ManageHelpers
- import XMonad.Hooks.StatusBar
- import XMonad.Hooks.StatusBar.PP
- import XMonad.Util.EZConfig
- import XMonad.Util.Loggers
- import XMonad.Util.Ungrab
- import XMonad.Layout.Magnifier
- import XMonad.Layout.ThreeColumns
- import XMonad.Hooks.EwmhDesktops
- main :: IO ()
- main = xmonad
- . ewmhFullscreen
- . ewmh
- . withEasySB (statusBarProp "xmobar" (pure myXmobarPP)) defToggleStrutsKey
- $ myConfig
- myConfig = def
- { modMask = mod4Mask -- Rebind Mod to the Super key
- , focusedBorderColor = "#94e7e7"
- , borderWidth = 3
- , layoutHook = myLayout -- Use custom layouts
- , manageHook = myManageHook -- Match on certain windows
- }
- `additionalKeysP`
- [ ("<Print>", spawn "xfce4-screenshooter")
- , ("M-S-=", unGrab *> spawn "scrot -s" )
- , ("M-]" , spawn "vivaldi-stable")
- , ("M-p", spawn "dmenu_run")
- , ("M-N", spawn "nvim")
- , ("M-T", spawn "thunar")
- , ("M-<Return>", spawn "xfce4-terminal")
- ]
- myManageHook :: ManageHook
- myManageHook = composeAll
- [ className =? "Gimp" --> doFloat
- , isDialog --> doFloat
- ]
- myLayout = avoidStruts $ (tiled ||| Mirror tiled ||| Full ||| threeCol)
- where
- threeCol = magnifiercz' 1.3 $ ThreeColMid nmaster delta ratio
- tiled = Tall nmaster delta ratio
- nmaster = 1 -- Default number of windows in the master pane
- ratio = 1/2 -- Default proportion of screen occupied by master pane
- delta = 3/100 -- Percent of screen to increment by when resizing panes
- myXmobarPP :: PP
- myXmobarPP = def
- { ppSep = magenta " • "
- , ppTitleSanitize = xmobarStrip
- , ppCurrent = wrap " " "" . xmobarBorder "Top" "#8be9fd" 2
- , ppHidden = white . wrap " " ""
- , ppHiddenNoWindows = lowWhite . wrap " " ""
- , ppUrgent = red . wrap (yellow "!") (yellow "!")
- , ppOrder = \[ws, l, _, wins] -> [ws, l, wins]
- , ppExtras = [logTitles formatFocused formatUnfocused]
- }
- where
- formatFocused = wrap (white "[") (white "]") . magenta . ppWindow
- formatUnfocused = wrap (lowWhite "[") (lowWhite "]") . blue . ppWindow
- -- | Windows should have *some* title, which should not not exceed a
- -- sane length.
- ppWindow :: String -> String
- ppWindow = xmobarRaw . (\w -> if null w then "untitled" else w) . shorten 30
- blue, lowWhite, magenta, red, white, yellow :: String -> String
- magenta = xmobarColor "#ff79c6" ""
- blue = xmobarColor "#bd93f9" ""
- white = xmobarColor "#f8f8f2" ""
- yellow = xmobarColor "#f1fa8c" ""
- red = xmobarColor "#ff5555" ""
- lowWhite = xmobarColor "#bbbbbb" ""
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement