Folders such as .config and .cache should only contain configuration and cache files, respectively
for programs on a machine. The
problem is, many programs do not adhere to these rules. There
are four main default XDG base directories that all programs on Unix-based systems should adhere to.
export XDG_CONFIG_HOME="$HOME/.config"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_STATE_HOME="$HOME/.local/state"To call out some programs that do not adhere to these specifications: Firefox, Thunderbird, any chrome based application, VS Code, etc. The list goes on and on, but to make a point; So many of the most used applications on Unix-based systems do not follow these rules and they cause unnecessary home directory clutter.
Reference: https://wiki.archlinux.org/title/XDG_Base_Directory
Update 03.04.2026
Wow. Basically all the new things don’t care about this. All the new cli ai apps etc.