XDG Base Directory Specifications

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.

XDG_CONFIG_HOME -> $HOME/.config

XDG_CACHE_HOME -> $HOME/.cache

XDG_DATA_HOME -> $HOME/.local/share

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.

../