Can i set default config dir in home folder?
/home/user/Documents /home/user/Music /home/user/.progconf1 /home/user/.progconf2
/home/user/Documents /home/user/Music /home/user/.config/.progconf1 /home/user/.config/.progconf2
That depends on each program more than on the system. In some cases you can launch them with shortcuts to specific configurations. ie:
Those comands would save their configurations inside .config (i also dislike having my home full of small files and folders). But I don't know if there's a way to make it default or you'd have to set the configuration and the launche for each program (that if they allow you to set it). I don't think since that would mean changing your whole $HOME value. Somebody correct me if I'm wrong.
Generally this is not possible, as programs tend to hardcode (put the path directly into the source code) the config directory path (exceptions exist, see the darent's answer).
which sets the
This gets the home directory path either from the HOME environment variable, or from the
Different programs get the HOME path in different ways, you just can't change all the "home" references to