My file system

Last updated 4 days ago

I have an intricate system where I put files according to their purpose and context thus I always know where to find them. And I access everything from Alfred.

~/Desktop

My Desktop is nearly always empty. It acts as a kind of temp folder where every file that is put there needs to be acted upon and either moved to some other place in my system or deleted.

I use this workflow to completely trash everything inside ~/Desktop with one hotkey. I also use this workflow to quickly scan the contents of ~/Desktop from Alfred.

~/Documents

All my actual documents (books, papers..) are put there. The folder synced with iCloud and I often access it from my phone with Files app.

~/Documents
❯ exa
Actual AudioBooks Books PDFs Research papers

~/Downloads

I try to keep this folder like Desktop always empty. This is the folder where I download things to from the browser as well as other places.

I use this workflow to scan through contents of it from Alfred.

~/src

Everything that is code is put into this folder.

~/src
❯ exa
alfred bots clones curated games ideas languages learn libs ml nix orgs other personal practice scripts test vim-plugins vscode-extensions web Xcode

~/src/clones

I often love checking out various GitHub repos. Everything that I clone, I clone into this folder. I use km macro that will clone the repo that is currently open in my Safari tab. It will put the repo in ~/src/clones and then open it in VS Code. I also have similar macros that will only clone the repo or clone the repo and open it in Sublime Text.

I then filter contents of the folder with this workflow.

~/src/orgs

Inside this folder I keep all code from orgs I am working on.

~/src/orgs
❯ exa
learn-anything deedmob

~/src/test

Inside this folder I have a bunch of language specific folders that usually just have one file inside them with the extension of that language. Here is how that folder looks for me:

~/src/test
❯ exa
bash-test c-test clojure-test go-test haskell-test js-test lisp-test python-test react-test ruby-test ts-test

I then have KM macros to quickly open these files:

And I use VS Code CodeRunner extension to quickly run code in those specific files. Makes prototyping ideas and libraries a breeze.

~/src/Xcode

Contains all my Swift iOS and macOS projects.

~/src/learn

I use the folder to learn new technologies, languages and things. Perhaps I am completing some course or going through some book that has exercises. I put it there.

~/src/learn
❯ exa
algo-learn go-learn graphics-learn kuber-learn ml-learn react-learn stats-learn ts-intro ts-learn tsc-react-learn

~/src/alfred

All my Alfred workflows are placed there. And each one is symlinked with workflow-install.

~/src/alfred
❯ exa
alfred-ask-create-share alfred-awesome-lists alfred-github alfred-learn-anything alfred-my-mind alfred-npm alfred-trello alfred-web-searches small-workflows

~/src/curated

Keep all the GitHub curated lists there where all edits to the README.md files is automatically committed with Hazel.

~/src/curated
❯ exa
alfred-workflows cheat-sheets courses find-work games ios-apps movies privacy-respecting quotes research-papers slack-groups talks websites
blogs chrome-extensions curated-lists firefox-extensions humans macos-apps newsletters programming-languages reddit safari-extensions spectrum telegram youtube
books command-line-tools documentaries forums images mindmaps podcasts quora reddit-multi series stack-exchange tv-series

~/Dropbox

Use Dropbox to sync configuration files. I also keep this wiki in Write dir in Dropbox so I can edit it on the phone from Ulysses.

❯ exa
Alfred Apps Config History IFTTT Pixave Shared Shares TaskPaper upload.sh Write