The reason I avoid making use of the OS's default subdirectories of $HOME is that I don't like "my" files becoming intermixed with stuff that applications decide to silently poop out to well-known locations on disk.
Applications I install for my user go under ~/.local. So ie, ~/.local/bin for just a binary or ~/.local/appname for something specific with a symlink to ~/.local/bin.
I use a simple user cron job to clear out files older than 3 days from my Downloads folder so that it doesn't become messy.
I keep my bash profile in git and will check it out to ~/.bash and symlink the appropriate files where I want them from there.
Same for Vim.. but ya know... ~/.vim ;).
Sure I could do it in the download folder directly as well, but in reality I had to go through 100s of files every few months which can be annoying.
I wrote about it a few years ago here and I do it still http://jontelang.com/blog/2015/08/17/hazel-is-great.html
There are no good Windows equivalents.
I wish I had enough programming knowledge to write a truly cross-platform equivalent.
This is a serious itch I'd like to scratch.
set -eu
AGE_LIMIT=$(( `date +%s` - (14 * 86400) ))
for FILE in ~/Downloads/*
do
if [ -e "$FILE" ]
then
export `stat -s "$FILE"`
if [ $st_birthtime -lt $AGE_LIMIT ]
then
mv "$FILE" "~/Needing review/"
fi
fi
done
Run it from cron. Typical caveats of shell scripts apply! find ~/Downloads -Btime +14d -exec mv {} ~/Needing\ review \;
Some changes may be necessary as I am not able to test it right now