My file system

Last updated 4 months 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 via Spotlight search.

~/Documents
❯ exa
App AudioBooks Books Design Gumroad Papers PDFs Pixave Research

~/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 build-to-learn clones curated games ideas languages libs models nix orgs personal puzzles 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
deedmob enpicom learn-anything

~/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 docker-test go-test haskell-test js-test lisp-test nix-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/Xcode
❯ a
iOS macOS playgrounds safari-extensions

~/src/build-to-learn

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

~/src/build-to-learn
❯ exa
README.md go tsc

~/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-timer 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 with Ulysses.

~/Dropbox
❯ exa
Alfred Apps Config History IFTTT Shared Shares TaskPaper Temp Shares upload.sh Write

Links