Attached is a patch that allows users to have multiple configuration paths using the XDG_CONFIG_HOME environment variable on all platforms. I tested it on windows and it seems to work just fine. I can test it on linux tonight when I get home but if someone can get to it before then I would appreciate the help. Would one of our macos devs please test it as well before I merge it.
Thanks, Wayne
From 9aa94dd0880adc5a61ffb8426ab84255411249e4 Mon Sep 17 00:00:00 2001 From: Wayne Stambaugh <[email protected]> Date: Mon, 23 Apr 2018 10:29:03 -0400 Subject: [PATCH] Allow for multiple user configurations. Use XDG_CONFIG_HOME environment variable on all platforms so users can maintain multiple configurations of KiCad. --- common/common.cpp | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/common/common.cpp b/common/common.cpp index f5b8abce4..947e3f8be 100644 --- a/common/common.cpp +++ b/common/common.cpp @@ -219,28 +219,25 @@ wxString GetKicadConfigPath() { wxFileName cfgpath; - // From the wxWidgets wxStandardPaths::GetUserConfigDir() help: - // Unix: ~ (the home directory) - // Windows: "C:\Documents and Settings\username\Application Data" - // Mac: ~/Library/Preferences + // http://docs.wxwidgets.org/3.0/classwx_standard_paths.html#a7c7cf595d94d29147360d031647476b0 cfgpath.AssignDir( wxStandardPaths::Get().GetUserConfigDir() ); + // wxStandardPaths does not default to ~/.config which is the current standard config + // location on Linux. #if !defined( __WINDOWS__ ) && !defined( __WXMAC__ ) + cfgpath.AppendDir( wxT( ".config" ) ); +#endif + + cfgpath.AppendDir( wxT( "kicad" ) ); + wxString envstr; - if( !wxGetEnv( wxT( "XDG_CONFIG_HOME" ), &envstr ) || envstr.IsEmpty() ) - { - // XDG_CONFIG_HOME is not set, so use the fallback - cfgpath.AppendDir( wxT( ".config" ) ); - } - else + // Use XDG_CONFIG_HOME on all platforms to allow for multiple configurations. + if( wxGetEnv( wxT( "XDG_CONFIG_HOME" ), &envstr ) && !envstr.IsEmpty() ) { // Override the assignment above with XDG_CONFIG_HOME cfgpath.AssignDir( envstr ); } -#endif - - cfgpath.AppendDir( wxT( "kicad" ) ); if( !cfgpath.DirExists() ) { -- 2.17.0
_______________________________________________ Mailing list: https://launchpad.net/~kicad-developers Post to : [email protected] Unsubscribe : https://launchpad.net/~kicad-developers More help : https://help.launchpad.net/ListHelp

