@@ -68,9 +68,11 @@ module Graphics.Vty.Config
6868 , getTtyEraseChar
6969 , currentTerminalName
7070
71+ , vtyConfigPath
7172 , widthTableFilename
7273 , vtyDataDirectory
7374 , terminalWidthTablePath
75+ , vtyConfigFileEnvName
7476 )
7577where
7678
@@ -197,12 +199,20 @@ instance Monoid Config where
197199vtyDataDirectory :: IO FilePath
198200vtyDataDirectory = getAppUserDataDirectory "vty"
199201
200−-- | Load a configuration from @'getAppUserDataDirectory'/config@ and
201−-- @$VTY_CONFIG_FILE@.
202+vtyConfigPath :: IO FilePath
203+vtyConfigPath = do
204+ dir <- vtyDataDirectory
205+ return $ dir </> "config"
206+
207+vtyConfigFileEnvName :: String
208+vtyConfigFileEnvName = "VTY_CONFIG_FILE"
209+
210+-- | Load a configuration from 'vtyConfigPath' and @$VTY_CONFIG_FILE@.
202211userConfig :: IO Config
203212userConfig = do
204− configFile <- (mappend <$> vtyDataDirectory <*> pure "/config") >>= parseConfigFile
205− overrideConfig <- maybe (return defaultConfig) parseConfigFile =<< lookupEnv "VTY_CONFIG_FILE"
213+ configFile <- vtyConfigPath >>= parseConfigFile
214+ overrideConfig <- maybe (return defaultConfig) parseConfigFile =<<
215+ lookupEnv vtyConfigFileEnvName
206216 let base = configFile <> overrideConfig
207217 mappend base <$> overrideEnvConfig
208218