|
@@ -37,21 +37,22 @@ import XMonad.Hooks.EwmhDesktops
|
|
|
myModMask = mod4Mask
|
|
|
myTerminal = "konsole"
|
|
|
|
|
|
+-- Command to launch the bar.
|
|
|
+myBar = "xmobar"
|
|
|
+
|
|
|
+-- Custom PP, configure it as you like. It determines what is being written to the bar.
|
|
|
+myPP = xmobarPP {ppTitle = xmobarColor "green" "" . shorten 50}
|
|
|
+
|
|
|
+-- Key binding to toggle the gap for the bar.
|
|
|
+toggleStrutsKey XConfig {XMonad.modMask = modMask} = (modMask, xK_b)
|
|
|
+
|
|
|
+-- Main configuration, override the defaults to your liking.
|
|
|
+myConfig = defaultConfig { modMask = mod4Mask }
|
|
|
+
|
|
|
main = do
|
|
|
- session <- do
|
|
|
- s <- getEnv "DESKTOP_SESSION"
|
|
|
- return (maybe "xmonad" id s)
|
|
|
- thisDesktopConfig <- case session of
|
|
|
- "xmonad" -> do
|
|
|
- xmproc <- spawnPipe "xmobar"
|
|
|
- return desktopConfig {
|
|
|
- logHook = dynamicLogWithPP xmobarPP {
|
|
|
- ppOutput = hPutStrLn xmproc
|
|
|
- , ppTitle = xmobarColor "green" "" . shorten 50
|
|
|
- }}
|
|
|
- _ -> return kde4Config
|
|
|
- xmonad $ ewmh $ docks thisDesktopConfig {
|
|
|
- manageHook = manageDocks <+> manageHook thisDesktopConfig <+> myManageHook
|
|
|
+ xmonad =<< statusBar myBar myPP toggleStrutsKey (ewmh $ docks kde4Config {
|
|
|
+ -- manageHook = manageDocks <+> manageHook kde4Config <+> myManageHook
|
|
|
+ manageHook = manageDocks <+> myManageHook <+> manageHook kde4Config
|
|
|
-- { manageHook = manageDocks <+> manageHook thisDesktopConfig <+> myManageHook
|
|
|
, layoutHook = desktopLayoutModifiers $ smartBorders $ avoidStruts $
|
|
|
(smartSpacing 5 $ withBorder 2 $ Tall 1 (3/100) (1/2)) |||
|
|
@@ -65,12 +66,16 @@ main = do
|
|
|
-- It's not a bug, it's a feature.
|
|
|
simpleTabbed
|
|
|
|
|
|
- , startupHook = if session == "xmonad" then startup (startupList ++ xmonadStartupList) else startup startupList
|
|
|
+ -- , logHook = dynamicLogWithPP xmobarPP {
|
|
|
+ -- ppOutput = hPutStrLn xmproc
|
|
|
+ -- , ppTitle = xmobarColor "green" "" . shorten 50
|
|
|
+ -- }
|
|
|
+ , startupHook = startup (startupList ++ xmonadStartupList)
|
|
|
, handleEventHook = handleEventHook def <+> fullscreenEventHook
|
|
|
, modMask = mod4Mask
|
|
|
- , keys = \c -> mySetKeys session c `M.union` keys thisDesktopConfig c
|
|
|
+ , keys = \c -> mySetKeys c `M.union` keys kde4Config c
|
|
|
} --`additionalKeys` (if session == "xmonad" then (myKeys ++ xmonadKeys) else myKeys)
|
|
|
- `removeKeys` myRemoveKeys session
|
|
|
+ `removeKeys` myRemoveKeys)
|
|
|
|
|
|
xmonadStartupList =
|
|
|
[ "feh --bg-scale ~/Owncloud/Backgrounds/Xmbindings.png"
|
|
@@ -82,16 +87,8 @@ xmonadStartupList =
|
|
|
, "xscreensaver -nosplash"
|
|
|
]
|
|
|
|
|
|
-confirm :: String -> X () -> X ()
|
|
|
-confirm m f = do
|
|
|
- result <- dmenu [m]
|
|
|
- when (init result == m) f
|
|
|
-
|
|
|
-mySetKeys session conf@(XConfig {XMonad.modMask = myModMask}) =
|
|
|
- if session == "xmonad" then
|
|
|
+mySetKeys conf@(XConfig {XMonad.modMask = myModMask}) =
|
|
|
M.fromList $ myKeys ++ xmonadKeys
|
|
|
- else
|
|
|
- M.fromList $ myKeys
|
|
|
where
|
|
|
xmonadKeys = [
|
|
|
-- scrot
|
|
@@ -101,7 +98,6 @@ mySetKeys session conf@(XConfig {XMonad.modMask = myModMask}) =
|
|
|
-- rofi
|
|
|
, ((myModMask, xK_p ), spawn "rofi -show run")
|
|
|
-- shutdown
|
|
|
- , ((myModMask .|. shiftMask, xK_q), confirm "Exit" $ io (exitWith ExitSuccess))
|
|
|
--, ((myModMask .|. shiftMask, xK_q),
|
|
|
-- xmonadPrompt defaultXPConfig
|
|
|
-- { promptKeymap = fromList
|
|
@@ -248,7 +244,7 @@ mySetKeys session conf@(XConfig {XMonad.modMask = myModMask}) =
|
|
|
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
|
|
|
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
|
|
|
|
|
|
-myRemoveKeys s =
|
|
|
+myRemoveKeys =
|
|
|
[ (mod4Mask, xK_Tab)
|
|
|
, (mod4Mask .|. shiftMask, xK_Tab)
|
|
|
]
|