import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Layout.Spacing
import XMonad.Actions.WindowNavigation
import XMonad.Util.CustomKeys
import System.Directory
import System.FilePath
import System.Process
import Internal.Layout
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.IndependentScreens
import Text.Printf
import XMonad.Hooks.EwmhDesktops
import Internal.Keys
import Internal.LayoutDraw
import Data.List (partition, isPrefixOf)
main = do
-- Execute some commands.
homeDir <- getHomeDirectory
let fp = homeDir > ".xmonad" > "startup"
let theLayout = myLayout
config <-
applyKeys $ def
{ terminal = "sakura"
, modMask = mod4Mask
, borderWidth = 1
, keys = \config -> mempty
, focusedBorderColor = "#ff6c00"
, normalBorderColor = "#ffd9bf"
, layoutHook = myLayout
, startupHook = spawn fp
, manageHook = composeAll [
isFullscreen --> doFullFloat
, className =? "Tilda" --> doFloat
, className =? "yakuake" --> doFloat
, className =? "MPlayer" --> doFloat
, className =? "mpv" --> doFloat
, className =? "gnubby_ssh_prompt" --> doFloat
]
, workspaces = map return (['0'..'9'] ++ ['a'..'z'])
, handleEventHook = fullscreenEventHook
, focusFollowsMouse = False
}
let toggleStructsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)
xmonad =<<
statusBar
"xmobar"
xmobarPP {
ppCurrent = xmobarColor "#ffffff" "red" . printf "%s"
, ppVisible = xmobarColor "#8888ff" "" . printf "%s"
, ppHidden = xmobarColor "#888888" "" . printf "%s"
, ppWsSep = " · "
, ppTitle =
xmobarColor "#8888ff" "" . printf "%s" .
(printf "%s" :: String -> String)
, ppSep = xmobarColor "#404040" "" " ──── "
, ppLayout = const ""
, ppExtras = [showLayout]
, ppOrder = \ss ->
let (icons, etc) = partition ("