Here I am again, sitting around thinking about exciting software ideas when I actually should be working. This time it’s all about config files. How many times have you either:
1. Complained to yourself when you encounter a config file that uses its own file syntax
2. Wished that there was a gui available for some option you frequently change
3. Wanted to have all configuration options in one place?
No, I am not going to suggest that we make our own “KDE registry”. I am also not going to suggest a solution that needs each and everyone to adapt to it.
As the title hints, I want to create an universal config user interface. The way it would work, is that it would be split into two parts. One is a kind of a parser, that has a collection of config file syntaxes (think for example vim’s collection of syntax highlighting files) defining rules and other useful properties for a certain type of config file. The other part would be the gui itself, which would let the user play around with settings and see things change, while at the same time be certain that no fun is spoiled due to a misspelling, invalid value for a certain setting, or other similar unfortunate mistakes. As a plus, it could probably also be set to backup changes and save versions of the configuration in case things go terribly wrong.
Why would one want this? Well, editing config files for all your setup needs is a pain. But so is creating a gui for them. And while I of course acknowledge that advanced users prefer the possibilites that having settings in a text file bring, advanced users are humans too. Humans that make mistakes, and then spend hours debugging and searching for what’s wrong when they suddenly discover a single line in ~/.myfavoriteditorrc “DoNotEraseMyWork = Treu”.
Also, it would be good to use as a fallback when you are going to instruct someone to change a more advanced setting, but at the same time don’t want to have to explain to them why it doesn’t work even though they typed “DoNotEraseMyWork = True” and saved it in ~/myfavoriteeditorrc.odt.
Does something like this already exist, maybe? Tell me in the comments.