
Here's an updated post with a short text that you might want to include in the announcement: xmonad (and xmonad-contrib) have evolved a lot since its first release, and therefore it's a good idea to showcase a modern xmonad.hs. The config below will give you a good starter xmonad setup with minor customizations. These are: (1) Ask for confirmation before exiting (2) Replace default launcher binding with built-in shellPrompt, which is friendlier to use and does not require dmenu. Arguably, these customizations should be the default, but as it requires xmonad-contrib, we can not really make it the default. Some of the things you might want to do next: * customize looks * control volume and display backlight * customize layouts * customize mouse behavior * whatever you need and can imagine Save this as ~/.xmonad/xmonad.hs: import System.Exit import XMonad import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Hooks.ManageHelpers import XMonad.Layout.Fullscreen import XMonad.Layout.LayoutHints import XMonad.Layout.NoBorders import XMonad.Prompt import XMonad.Prompt.ConfirmPrompt import XMonad.Prompt.Shell import XMonad.Util.EZConfig import XMonad.Util.Run(hPutStrLn, spawnPipe) main = do xmproc <- spawnPipe "xmobar ~/.xmonad/xmobarrc" xmonad $ defaultConfig { terminal = "xterm" , manageHook = myManageHook <+> fullscreenManageHook <+> manageDocks <+> manageHook defaultConfig , layoutHook = fullscreenFloat $ fullscreenFocus $ layoutHints $ smartBorders $ avoidStruts $ layoutHook defaultConfig , handleEventHook = fullscreenEventHook , logHook = dynamicLogWithPP $ xmobarPP { ppOutput = hPutStrLn xmproc } } `additionalKeysP` [ -- Ask for confirmation before exiting by replacing the default -- binding with a custom one. ("M-S-q", confirmPrompt myXPConfig "exit" $ io exitSuccess) -- Replace M-p launcher binding with built-in shellPrompt, which -- is friendlier and does not require dmenu. , ("M-p", shellPrompt myXPConfig) ] `additionalKeys` [ ((mod4Mask, xK_q), spawn "xmonad --recompile && xmonad --restart") ] -- see http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Prompt.html#t:XPConfig myXPConfig = defaultXPConfig { position = Top , promptBorderWidth = 0 , defaultText = "" , alwaysHighlight = True , font = "9x15" } -- see http://xmonad.org/xmonad-docs/xmonad/XMonad-ManageHook.html myManageHook = composeAll [ className =? "Pidgin" --> doFloat , className =? "MuPDF" --> doFloat , className =? "llpp" --> doFloat , className =? "XCalc" --> doFloat , className =? "mpv" --> doFloat , className =? "Gimp" --> doFloat ]