summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/Main.hs7
-rw-r--r--xmobar.cabal3
2 files changed, 8 insertions, 2 deletions
diff --git a/src/Main.hs b/src/Main.hs
index 90cd842..aad2804 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -34,6 +34,7 @@ import Graphics.X11.Xlib
import System.Console.GetOpt
import System.Exit
import System.Environment
+import System.Environment.XDG.BaseDir
import System.Posix.Files
import Control.Monad (unless)
@@ -91,10 +92,14 @@ readConfig f = do
-- | Read default configuration file or load the default config
readDefaultConfig :: IO (Config,[String])
readDefaultConfig = do
+ xdgconf <- getUserDataFile "xmobar" "xmobarrc"
+ x <- io $ fileExist xdgconf
home <- io $ getEnv "HOME"
let path = home ++ "/.xmobarrc"
f <- io $ fileExist path
- if f then readConfig path else return (defaultConfig,[])
+ if x then readConfig path
+ else if f then readConfig path
+ else return (defaultConfig,[])
data Opts = Help
| Version
diff --git a/xmobar.cabal b/xmobar.cabal
index 2ba7e57..de80bbf 100644
--- a/xmobar.cabal
+++ b/xmobar.cabal
@@ -108,7 +108,8 @@ executable xmobar
X11 >= 1.6.1,
mtl >= 2.0 && < 2.2,
parsec == 3.1.*,
- stm >= 2.3 && < 2.5
+ stm >= 2.3 && < 2.5,
+ xdg-basedir == 0.2.*
if flag(with_threaded)
-- -threaded is a workaround for 100% CPU busy loop