Original repository by scribblemaniac is deleted
The home directory isn't a very good place for adding anything, especially configuration files. There are almost no other applications that I know of that do this, most put the configuration files in the system application data folder or within the applicaiton bundle itself. This patch moves the config location to within the Frinika folder (the one with the jar and libs). This seemed like the best place to put it as it turns out there is no easy cross-platform way of getting the system application data folder (%APPDATA%, /Library/Application Support, etc.).
In addition to changing the config file path, I have also added code to copy from the old config location if the new config file does not exist. This means that users should not have to worry about loosing their config settings.
Thanks for your contribution. However I'm a little worried by the change here, because of the move to the application data folder. This may cause problems for those who create Linux distribution packages where the application is installed to a system folder. For many systems you'd want a system folder installation, but configurations in the user folder tree. You say putting configuration files in the user home folder is rare, but at least git and netbeans does this, and many more. Just look for the directories in your home folder that starts with a dot.
Sorry for the delayed response, it seems SourceForge doesn't want to send me notifications. You raise a good point. Perhaps the config folder should be made hidden then if you want to do it like git, netbeans, etc. Alternatively we could try to implement a per-platform approach such as putting it in %APPDATA%\Frinika on Windows, ~/Library/Application Support/Frinika on Mac, and fall back to ~/.Frinika for Linux and unidentified systems. Do either of these sound better to you?
NetBeans split the configuration in the .netbeans folder and the user data in the NetBeansProject folder. As for Frinika the config is only one file (FrinikaConfig.xml), while the rest of the contents in the Frinika folder is user data (soundfonts, projects, groovepatterns etc.). It doesn't make sense to hide this folder since a user would want to access these files outside Frinika too. In that case it's only the FrinikaConfig.xml left and seems a bit too much to split it out in a hidden folder just for this one file. So having considered that I'm leaning to leaving it as it is
By the way - I got another support request here about problems running Frinika in WIndows 10? Are you using windows - are you experiencing any problems?
You can do whatever of course, but I still think this is not right. I have 100+ graphical applications, and there are only probably 3 of them that have visible folders in the home directory. And all of those applications give you the option to change the location of the directory. Maybe you can at least add the config location to the settings if you feel so inclined. Anyway, I'll close this then since you've made up your mind.
I am not running Windows, and am not experiencing any major problems.
Thanks for the initiative anyway. What about having the config file location as a command line parameter? If you don't specify it, it defaults to the frinika folder in the home directory, otherwise it will use the supplied config file. And this also gives the freedom to application packagers to use the default location, or another of their own preference.
I think that is a good idea, but it's up to you. I don't want you to feel like I'm trying to pressure you to do this.
Last edit: scribblemaniac 2016-04-10
If you could make it somehow like this:
java -jar frinika.jar -f /somedir/MyFrinikaConfig.xml
That would seem like a good solution to me. If you don't specify the -f parameter then standard config file location is used. Could you make this in your forked repository - and I'll review it when you're ready?
Seems simple enough, I'll try it when I get a chance.