How did the ~/.local/bin thing start? How widespread is it

executablefhshomepathxdg-user-dirs

I find more and more tools that put executables into ~/.local/bin. I am old and for me ~/bin is the place in my $HOME for executables.

Where did this crazy new fashion originate? Why are people doing this? How widespread is it? Is it formalized anywhere? It is not in the XDG directory specification.

There is a related question:
Which distributions have $HOME/.local/bin in $PATH?

A comment to another question refert to https://www.python.org/dev/peps/pep-0370 which had it back in 2008 already:
Why did this program install into ~/.local/bin … thats the first time I have seen that happen?

Best Answer

You already have the answer: Python is the main user of ~/.local. It's the only I remember encountering. In Python, it was adopted as PEP 370.

PEP 370 gives some rationale as to why ~/.local was chosen. Some parts are obvious: it had to be in the user's home directory, since this is for per-user installation. It had to be a dot file so that it's hidden from cursory eyes, just like other configuration files. The name .local mimics /usr/local.

The location had been used by FreeDesktop. I don't know of any application that uses it.