Skip to content

Instantly share code, notes, and snippets.

@aerphanas
Created October 4, 2022 03:16
Show Gist options
  • Select an option

  • Save aerphanas/82474844b79c1804078de9fe45d6c399 to your computer and use it in GitHub Desktop.

Select an option

Save aerphanas/82474844b79c1804078de9fe45d6c399 to your computer and use it in GitHub Desktop.
xmonad default from Geting started
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.StatusBar
import XMonad.Hooks.StatusBar.PP
import XMonad.Hooks.EwmhDesktops
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Util.EZConfig
import XMonad.Util.Ungrab
import XMonad.Util.Loggers
import XMonad.Layout.ThreeColumns
import XMonad.Layout.Magnifier
main :: IO()
main = xmonad .
ewmhFullscreen .
ewmh .
withEasySB (statusBarProp "xmobar" (pure myXmobar)) toggleStrutsKey $
myConfig
where
toggleStrutsKey :: XConfig Layout -> (KeyMask, KeySym)
toggleStrutsKey XConfig{ modMask = m } = (m, xK_b)
myConfig = def
{
modMask = mod4Mask, -- superkey as MOD
layoutHook = myLayout, -- custom layout
manageHook = myManageHook -- Match on certain windows
}
`additionalKeysP`
[
("M-S-z", spawn "xscreensaver-command -lock"),
("M-C-s", unGrab *> spawn "scrot -s" ),
("M-f" , spawn "firefox" ),
("M-t" , spawn "xfce4-terminal" )
]
myLayout = tiled ||| Mirror tiled ||| Full ||| treeCol
where
treeCol = 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
myManageHook :: ManageHook
myManageHook = composeAll
[
className =? "Gimp" --> doFloat,
isDialog --> doFloat
]
myXmobar :: PP
myXmobar = 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
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" ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment