summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Main.hs5
-rw-r--r--XMonad/Core.hs8
2 files changed, 8 insertions, 5 deletions
diff --git a/Main.hs b/Main.hs
index 76df27d..1d89e5f 100644
--- a/Main.hs
+++ b/Main.hs
@@ -16,11 +16,10 @@ module Main (main) where
import XMonad.Main
import XMonad.Config
-import XMonad.Core (recompile)
+import XMonad.Core (getXMonadDir, recompile)
import Control.Exception (handle)
import System.IO
-import System.Directory
import System.Environment
import System.Posix.Process (executeFile)
@@ -44,7 +43,7 @@ main = do
buildLaunch :: IO ()
buildLaunch = do
recompile False
- dir <- fmap (++ "/.xmonad") getHomeDirectory
+ dir <- getXMonadDir
args <- getArgs
executeFile (dir ++ "/xmonad") False args Nothing
return ()
diff --git a/XMonad/Core.hs b/XMonad/Core.hs
index f3fdc79..05f2b9b 100644
--- a/XMonad/Core.hs
+++ b/XMonad/Core.hs
@@ -26,7 +26,7 @@ module XMonad.Core (
SomeMessage(..), fromMessage, runLayout, LayoutMessages(..),
runX, catchX, userCode, io, catchIO,
withDisplay, withWindowSet, isRoot,
- getAtom, spawn, restart, recompile, trace, whenJust, whenX,
+ getAtom, spawn, restart, getXMonadDir, recompile, trace, whenJust, whenX,
atom_WM_STATE, atom_WM_PROTOCOLS, atom_WM_DELETE_WINDOW, ManageHook, Query(..), runManageHook
) where
@@ -313,6 +313,10 @@ restart mprog resume = do
catchIO (executeFile prog True args Nothing)
where showWs = show . mapLayout show
+-- | Return the path to @~\/.xmonad@.
+getXMonadDir :: MonadIO m => m String
+getXMonadDir = io $ getAppUserDataDirectory "xmonad"
+
-- | 'recompile force', recompile ~\/.xmonad\/xmonad.hs when any of the
-- following apply:
-- * force is True
@@ -327,7 +331,7 @@ restart mprog resume = do
--
recompile :: MonadIO m => Bool -> m ()
recompile force = io $ do
- dir <- (++ "/.xmonad") <$> getHomeDirectory
+ dir <- getXMonadDir
let bin = dir ++ "/" ++ "xmonad"
err = bin ++ ".errors"
src = bin ++ ".hs"