HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
b3nj5m1n
xdg-ninja
Haskell2022–2026
b3nj5m1n / xdg-ninja

xdg-ninja

A shell script which checks your $HOME for unwanted files and directories.

13Distinct people
14Mentions
0Explicit recommenders
3.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A shell script which checks your $HOME for unwanted files and directories.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

Mentions over time

HN mentions by year14 dated mentions

Observed mentions: 2022-06-07 09:34:46 UTC to 2026-06-18 19:26:21 UTC.

012342022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC211
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC404
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC404
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC211
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

What Hacker News says

14 sources
I usually treat an app putting stuff into $HOME with no reason to change that as a reason to not use the app. I've genuinely switched software multiple times because of the old one doing this. I also suggest you try xdg-ninja, which automatically scans your home directory and shows which of those directories you can change to a different location: https://github.com/b3nj5m1n/xdg-ninja I have a big shell config file that sets proper locations for all sort of programs I use: https://github.com/flexagoon/dotfiles/blob/main/dot_config/f...
In My .config Ship of Theseus
that's great! The ~/.mozilla folder is one of the last remaining dotfiles in my home directory $ ls -a ~ . .. .bashrc .mozilla .profile .ssh bak config local pro src You can also be an xdg ninja if you want: https://github.com/b3nj5m1n/xdg-ninja Annoyingly, many programs hardcode ~/.config and ~/.local (instead of using XDG_CONFIG_HOME etc) and try to recreate them every time they run. This is a good indication to stop using these careless programs!
In Firefox 147 Will Support the XDG Base Directory Specification
> people still can't get used to .local/.share/.config I'm one of those people... I don't want yet more hidden stuff in my home dir; I want less. My dream is to have zero hidden directories in my home. What I want is something really clean like this: $ ls -a ~ . .. config fun local pro tmp This is almost possible, thanks to XDG_ environment variables. But unfortunately many programs still use hardcoded names for the local userdirs. If you want to get closer to that goal, the xdg-ninja [0] package can help you. Also, do something like "touch ~/.local ; chmod 000 ~/.local" to force programs that use hardcoded names to fail spectacularly (instead of recreating the hidden dir). [0] https://github.com/b3nj5m1n/xdg-ninja
In Eza: A modern, maintained replacement for ls
If anyone would like to actually force the non-compliant applications to do the thing correctly, then xdg-ninja is your friend [0]. The script looks at all the dotfiles in the home folder and tells you what environment variables you have to set to make them follow XDG base directory specifications, in the cases where that's not possible it will show you the related GitHub issue or similar bug tracking option with the problem. My current dotfiles [1] already have a lot of these and they mostly just work. Once in a while an application won't respect it completely, and so instead of having a mess with xdg + whatever the dev though was cooler I just let the application do it's thing so at least is somewhat predictable. [0]: https://github.com/b3nj5m1n/xdg-ninja [1]: https://github.com/DoodlesEpic/Dotfiles/blob/main/.profile
In Show HN: boxxy – Control where Linux programs put files, without symlinks

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.