{"id":17192129,"url":"https://github.com/jdevera/purehome","last_synced_at":"2026-05-20T14:34:53.371Z","repository":{"id":31134661,"uuid":"34694376","full_name":"jdevera/purehome","owner":"jdevera","description":"Tells you (and ashames you) when your home directory is not clean","archived":false,"fork":false,"pushed_at":"2018-04-16T15:42:47.000Z","size":5,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T06:35:29.366Z","etag":null,"topics":["monitoring","python","reminder","shell"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jdevera.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-27T22:23:22.000Z","updated_at":"2021-05-15T08:39:15.000Z","dependencies_parsed_at":"2022-08-03T15:16:50.931Z","dependency_job_id":null,"html_url":"https://github.com/jdevera/purehome","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jdevera/purehome","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdevera%2Fpurehome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdevera%2Fpurehome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdevera%2Fpurehome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdevera%2Fpurehome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jdevera","download_url":"https://codeload.github.com/jdevera/purehome/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jdevera%2Fpurehome/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262445480,"owners_count":23312354,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["monitoring","python","reminder","shell"],"created_at":"2024-10-15T01:28:20.027Z","updated_at":"2026-05-20T14:34:48.333Z","avatar_url":"https://github.com/jdevera.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Purehome: Watching out for a clean home\n\nInspired by [Gina Trapani's 6 folders\nstrategy](http://lifehacker.com/156196/geek-to-live--organizing-my-documents),\nI have, for years now, strived to keep my home directory to 6 folders under\nwhich everything is organised. I have gone one step further and define, for\nmyself, what goes in the next level inside those six, but that's another story.\nHere we care only about the topmost home directory level.\n\nJust like on Windows it was always just a little too convenient to save\neverything to the desktop when I didn't know where to save something, the root\nof the home directory seems to be equivalent place in Linux, a place chosen\neven by many programs, to dump all sorts of random rubbish.\n\nI say **no** to this, and to help keep my home tidy, I use `purehome`.\n\nBut `purehome` does not clean my home for me, no, it does not. Purehome works by\nmaking me ashamed of having a dirty home, by giving me a constant reminder that\nI've let myself slip. Purehome gets called in my shell init script, so when I\nopen a new shell, this is the greeting I get:\n\n     ____________________________________________________________\n    /                                                            \\\n    |  _  _                 _     __      _____  ___  _  _  ___  |\n    | | || |___ _ __  ___  (_)___ \\ \\    / / _ \\/ _ \\| \\| |/ __| |\n    | | __ / _ \\ '  \\/ -_) | (_-\u003c  \\ \\/\\/ /|   / (_) | .` | (_ | |\n    | |_||_\\___/_|_|_\\___| |_/__/   \\_/\\_/ |_|_\\\\___/|_|\\_|\\___| |\n    |                                                            |\n    | Superfluous contents:                                      |\n    |  * this-file-should-not-be-here                            |\n    \\  * quick-thing-i-saved-in-my-homedir                       /\n     ------------------------------------------------------------\n            \\   ^__^\n             \\  (oo)\\_______\n                (__)\\       )\\/\\\n                    ||----w |\n                    ||     ||\n\nOr, in good days, this:\n\n    6 days with a clean home directory\n\n## Okay, I want it!\n\nOf course you do! Just clone the repository or download the `purehome` script\nalone, then call it from your shell init script to have the constant reminder.\n\nOh, yes, you will only see the cow if you have `cowsay` installed, but then\nagain, why wouldn't you!\n\nBy default, these are the expected directories, no more, no less:\n\n   * backup\n   * comms\n   * devel\n   * doc\n   * media\n   * other\n\nOf course your directories don't have to be those, just write your expected\nlist, one name per line in a file called `~/.config/purehome/expected` or, to\nbe sure, run\n\n    purehome --debug\n\nAnd that will tell you where `purehome` expects its config to be.\n\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdevera%2Fpurehome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjdevera%2Fpurehome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjdevera%2Fpurehome/lists"}