Documents aren’t stuffed into some database, either. They’re indexed and stored in a folder hierarchy that you can still access. This makes it easy to search and find them with tools like Alfred or Quicksilver or Spotlight. You can open them directly using apps like Word, and Devon doesn’t care. Devon also has an inbox you can use with Finder, so when you drop a file into the folder, it automatically moves to an Inbox folder in Devon for you to process and move to a final destination within the app.
It’s truly a fantastic piece of software.
Then I created some folders for large groups, like "Documents" at home or "Projects" for work, and broke it down from there. I don't have more than maybe 4 levels under anything, except where there are year/month breakdowns.
AFAIK Devon doesn't work outside of its own folder/database. It doesn't index everything in my ~ for example. I create stuff in Devon or drag stuff into it from outside, holding down CMD so that it moves instead of copies.
Within Devon I'll sometimes need something in two places (all receipts and tax-deductible receipts, for example), so I'll use Devon's "replicate" function to make a pointer to the same doc. For work stuff, I have templates (release_plan.md) that I'll "duplicate" to a new project. As long as they're the same, Devon has an icon that says so, but as soon as I edit one, they diverge into independent docs.
I also use Devon to rip web pages, either to save as a bookmark or as a one-page PDF, so when I find something useful for work or around any idea that interests me, I'll put it in Devon instead of a Chrome/Firefox/Safari bookmark. I never remember what's in the URL of a bookmark to search for it, but I do remember the content. I can search in Devon, find the PDF, and if necessary, click the link to go back to the webpage.
I write content for part of my job, so I'll use Devon for brainstorming or outlines, all in Markdown. I've written a little snippet for Keyboard Maestro so the Cmd-N in Devon asks me what type of document I want to create (markdown, plain text, or rich text), and then it creates that in the folder. If I'm doing basic stuff, like taking notes for a meeting, I just work in raw markdown, but if I'm actually formatting something like a blog post, I'll click the "Open Externally" button to open it in Macdown. I'll make action items and after the meeting transfer them to Taskwarrior for execution. I don't need to remember what happened in every meeting - I just need to remember to read the notes.
I'll collect images for blog posts and store the whole thing in a subfolder under Projects/Content/Blog/{article-slug} so that everything is nicely organized. I use the Search function for those "I know I saved something about {foo} a few weeks ago" moments. Otherwise, I jump right to the project I'm working on and am confident that everything related to it is within that folder.
I've had too many times where I've gone looking for something that I saw on my desk a few months back, and it's gone. Invariably I'll have the receipts for every other thing _except_ the really expensive thing that just broke. With Devon I no longer have that problem. I'm pretty disciplined about scanning receipts every weekend, but I definitely have to stay on top of it for the system to really be effective.
That said, I rarely need anything in that folder beyond 10-20 documents like passport or birth certificate scans. To the point where I wonder if the scanning is even worth it. Why don't I just toss all that stuff in a big box (so roughly sorted by time) and go through it in the rare event that I need something someday? I do set aside tax documents when they come, and other "action items", so those are a different case. I'm talking about just the stuff I scan for archival purposes. Seems really unlikely that I actually need that stuff in digital format.
For non-paper stuff, I use Evernote. There again though, I have dozens and dozens of notebooks and stacks of notebooks that hold my thousands of notes and it's getting overwhelming. It's getting to the point where I just use my "recent notes", my 10-20 shortcuts for notes I use all the time, and search for everything else.
You trust Dropbox with that sort of thing?
This is basically what I do with nearly all my paper records. It's a sort of JIT filing system. “Writes” into the document store take very little time. I just dump everything into a folder for the current month. I keep a ring buffer of 12 months worth of docs. When a dirty buffer comes up as current, I quickly sort through its contents for the rare item that needs to be preserved for longer than its already year-long storage, file it in a more persistent place, then toss the rest.
This comes at the expense of making “reads” from the document store more expensive. But as you point out, fetching docs from this system is relatively rare. It's more than worth the time (and cognitive overhead) to have to occasionally flip through a couple date-delimited folders to fetch a document I need to retrieve.
I used Evernote extensively for notes + going paperless. I was never comfortable and know better than storing private documents such as bank statements in Evernote (someone else’s computer aka cloud) but it was convenient and worked well.
I’m now slowly migrating Evernote content to Devonthink. It works extremely well, it is powerful and no subscription, it’s not cheap but as a dev I know development isn’t cheap and the price is justified for its functionality. Like you said you can get all the data you put in back out easily no lock in. Sure it’s not as shiny as newer hyped software but it works and is functional. I have some Hazel rules setup for example auto file downloaded statements.
What WebDAV server are you using? I tried NGinx but had issues as NGinx doesn’t fully support WebDAV, it was just that I already had a NGinx server running. WSGIWebDav seemed to work ok testing but not set it up properly yet on my NAS, wasn’t sure about trying Apache. My idea is to use WebDAV with all access via VPN to get same sync functionality as Evernote. WebDAV for syncing completely makes sense and was another reason I purchased it.
~/Code/
L python/
L project1/
L ...
L dotnet/
L web/
L work/
L ...
~/Documents/
L school/
L Spring2019/
L ...
L personal/
L work/
That's about all I really access other than Downloads which is a huge mess that gets purged every so often. Anything of lasting value gets moved out of there asap.~/Documents/ is backed up to iCloud so I can access them anywhere. (Tip: Any directory you don't want to be backed up can be suffixed with ".nosync" e.g. SecretStuff.noSync).
This all started after getting into Go, which mandates a central directory under which all Go code is stored. [1] nesting scope also helps namespace resources.
But really, that's usually all you need to organize.
As to the conventions:
* I follow the recommendations of a German Professor named Loehn [1]. Prof. Loehn recommends to name every file with three parts and add a datestamp to the file. For example: "Programming_Node_Async-2019-03-07", a three-part taxonomy, going from more general to more detail.
* Every file goes into a folder. Every. So I need to build a good folder system.
* Every folder is in ~/Documents/FOLDERS
As to the tools:
I use Alfred (not for search, but for creating keyboard shortcuts to start my essential tools with a key combination).
Then I use HoudahSpot.app for search. It is a better interface for Spotlight search. It allows me to save searches as templates, see search results in a table, which is super important for me to narrow the results down, exclude folders etc in a very easy way. It is my personal knowledge management tool.
Finally I use "Path Finder" (PF) as a finder replacement. Whenever I am in a folder, I can hit `Shift+Cmd+F`, which will focus on a field that will let me enter keywords. PF will start to filter my folder based on my input. So I can focus on what I need. PF is a gorgeous replacement for the Finder app with many enhancements.
The combination of all this will allow me to find every file, every project, every folder from within the past 15 to 20 years in a split second.
Side note:
1) I don't keep files on the desktop either. Rather I have a temp folder named INBOX on my desktop where everything will be put in to be processed into ~/Documents/FOLDERS/(subfolders), and I have the discipline to empty ~/Desktop/INBOX regularly.
2) My programming projects go into ~/workspace/
[1] inventor of Loehn Method, which is a methodology like "Getting Things Done" (by David Allen)
~/Projects/
... bunch of Git and SVN repos ...
~/Writings/
... Git repo full of text files ...
~/Music/<year>/<num> <name>/
Songs grouped by year,
PCM bounces with name + date
~/Pictures/<year>/<num> <event>/<num>
Originals, + edited as copies
~/Downloads/
Articles/
Documents/
Software/
Incoming/
~/Misc/$num/
Unceremoniously dump everything else here
“Clean” is overrated. Storage is cheap. Only clean things as much as it helps you find things. Spotlight is pretty good at finding things. I use tags to label how “good” something is, with red = excellent, orange = good, and yellow = has some value.All articles are renamed so that the filename is the title of the article.
Desktop is scratch space for anything that I’m working on at this particular moment. If I’m not working on it now, I drop it in ~/Misc/$num++ or delete it. I purge files about once a year just to keep garbage from filling spotlight results, and only secondarily to keep free disk space.
What about customer-specific files... a small business would hope to have more than 10!
[0]https://news.ycombinator.com/item?id=19327891
[1]https://johnnydecimal.com/concepts/exceptions-to-the-rules/
I started organizing my local files and Dropbox. I'm hoping to eventually organize my Personal and Work Google Drive as well.
`work` and `src` are synced to my linux computer at work via syncthing.
[k2enemy@indy ~]$ tree -L 1
.
├── Desktop
├── Documents
├── Downloads
├── Library
├── Movies
├── Music
├── Pictures
├── Public
├── bin
├── data
├── db
├── etc
├── src
├── var
└── work* Don't save files on the desktop.
* Create a Projects or Dev folder in your home directory and make a folder for each project. (For Web development, I use Laravel Valet which automatically makes a foldername.test vhost inside ~/Dev.)
* My Downloads folder is very messy. I could probably set up a job to delete files older than 6 months, but I have plenty of space, so no need (yet).
I have also taken to a few setup scripts that ensure tooling is installed, and checks out the repos in their respective directories.
Why?
Cons: It's a global namespace and easily cluttered, and the clutter is visible as the default background of your display.
It's like "saving things" on my physical desk - a bad habit I tell myself not to do, but still find myself doing. (chucks a few things that have been on my desk).
But on a physical desk I don't have options to sort, search etc. I do on the mac. I use the desktop as place for non-critical files everytime (like a screenshot that I have to attach to an email, or to export a image without background that I am going to use on a ppt). Basically just as a temp folder.
It is absolutly cluttered, but the ability to drop a temporary file there without thinking of structure or what it relates to trumps the clutter it creates.
Besides, with the addition of Stacks (https://support.apple.com/en-in/HT209101) it makes everything more manageable.
How my work and personal files are organised was a source of frustration and annoyance for _years_, I'd be constantly fighting a sisyphean battle of organising the ever growing chaos; then I had a realisation, hierarchical folders/files will _never_ map to my mental model and there's no perfect system. I've learned to live with the chaos.
Years ago I stopped filing my physical paperwork and instead just scanning with the Fujitsu ScanSnap, which creates searchable PDFs. It's been amazing. I almost never need any of that stuff, but it's there if I do. In fact, given how useless all that stuff is turning out to be, I'm tempted to even stop scanning and just put in a big box and forget about it. If I need it someday, I can dig through the box and find it. Now that I have several years worth of files clogging my Downloads folder, it might be time to just take the same approach there.
Most important thing is having a consistent filenaming convention. This helps you find files via search. I use 'YYMMDD_HHMM name' if I authored the file or 'YYMMDD_HHMM [sender] name' if someone emailed it to me.
Tangentially, what I'm really happy with is how I manage my web bookmarks. I don't use browser bookmarks or folders. I save bookmarks to Pinboard.in, a cloud service. Then there's a nice Alfred extension which allows me to find them (http://www.packal.org/workflow/alfred-pinboard).
I use Backblaze to backup everything to cloud.
What I've found to work is this.
Main root folders few and named easily.
- Customers
- Internal
- Private
- VMs
All sub-folders have numbers, so they can always sort by name so they're always in the same order.
00 - Tests
10 - Code
11 - Code (Testing)
12 - Code (Other)
20 - Design (Sites)
25 - Design (Other)
30 - Services
35 - Marketing
40 - Apps (Web)
41 - Apps (Hosted)
50 - Docs
51 - Guides
60 - Sysadmin
etc...
This creates a logical and consequential structure that's easy to update, change and manage and you can have many levels.
Just consider your numbers for your use-case so you won't run out and sub-numbers can be unclear/messy to look at and navigate.
For managing downloaded files automatically, I use Hazel.
No need to feel so cramped then.
Like i wrote, consider your numbers for your needs.
Also, I've found that I remember position easier than visually looking it up alphabetically.
The same thing can applied to physical books. No matter how convenient e-book reader is, it NEVER give me the same experience. For physical book, you can just feel the progress of story just by looking at that thickness of the book, or you can tell WHERE the event in the story happened (e.g. at top right section of certain page, for example) Can’t do that with e-book, every page is the same, not to mention when you change the text size and it reflow the paragraph...poof! Gone.
Somehow, the physicality of physical book made me read it till the end. Yes, the Kindle is also single-purpose device made for reading, but also a touch away from ton of books in your library, too, which is distraction in another form.
(and no, I don’t care for inky or old paper smell)
The biggest current challenge is all the tools that are trying to pull me away from a filesystem. Google Docs has pretty much been a disaster for organization, and I don't use--even for collaboration--unless I absolutely have to. Similarly, Evernote has lost its charm for me. I guess I'm in a minority here, preferring organizing to searching. It gets hard for me to make sense of old documents when they're out of context.
- Documents
- 1-Education
- 2-Teaching
- 3-Software-Engineer
- Unfold-Studio
- unfold_studio
- .git
- 4-PhD
- Research
- Active-Projects
- Text-And-Code
- Studies
- Publications
- 5-Consulting
- 6-PersonalThis system does not lend itself to concordance building, browsing, or evincing topical relations, but I'm rarely needing that outside the domain of a particular use case. So if I'm researching for a paper, for example, I use Zotero to map out connections between bibliographic references. It's a more constrained realm where tag management is less arduous.
1. Software; organized by domain name in ~/software, containing all git repositories I work on (~/software/github.com/user/repo)
2. Documents; stored in ~/Nextcloud, synced with a server. In there, I have a nested system of Johnny Decimals (https://johnnydecimal.com) - nested, because I manage multiple projects which itself use that format again, so
~/Nextcloud/10-19 Companies/10 Company A
~/Nextcloud/10-19 Companies/11 Company B
~/Nextcloud/10-19 Companies/12 Company C
My desktop is my temp folder, everything on there will be "resolved" within a day or two.This way, I have all my documents synced and available on all my devices. I do not use Finder tags but rely heavily on Spotlight search.
~/Documents
/personal
/project-1
/client
/client-1
/project-1
/school
/semester
/class
Each of the high-level folders contains a folder called `_archive` where I move old clients or projects into, this way the organization-level folders only contain things I'm actively working on.Then I have `~/Downloads` and `~/Desktop` which are both a bit messy and get purged (Downloads) or reorganized (Desktop) from time to time.
I use ~/Desktop strictly for transient files, which I delete frequently. I still let Time Machine back it up, though, in case I accidentally delete something I meant to save. Time Machine has saved my life from accidental deletes more often than I can recall.
Thinking about it, my local storage is quite lean. Ever since I started using iCloud for photos and documents, my local storage has only been used for git repos (and apps, of course).
All of my non-code stuff is in misc. app-specific cloud services: Google Drive for work stuff, Ulysses for personal notes/writing, Things for tasks etc. I also use KeepIt for bookmarks, which I really recommend.
I've spent an inordinate amount of time in my life trying to over-engineer my productivity with new apps, tools, or systems that I never end up using.
Some general tips:
- Don't try to solve problems you don't have yet. - Keep it simple.
On my desktop I have _Process as a working folder for stuff that is 100% temporary. I clear this folder every day or so. This is purely for those one-off things like an image I'm posting to a site, music that I'm tagging, etc.
I have a second folder, _Projects that is for current projects -- stuff that I've 'checked out' of my NAS. This folder is automatically backed up every day regardless, but I also sort the files and clear out the auto-backup folder once its been sorted.
Every project folder has its own _Process folder that has all of the temporary working-files that I can later delete, but will need until proofs are sent off. This folder will have any notes, fonts, images, etc that the client sends.
This setup isn't fancy by any stretch, but it gives everything a home. When I start a new project I start off with mkdir -p ProjectName/_Process and fill that up first. I also rename everything that is sent to me so the file names make sense.
I know a few people who use tags effectively. I never found it to work for me either.
On the other hand I find Spotlight to be pretty good at finding stuff. I use It extensively with relatively flat folder structures.
I typically go to the folder I want and then use spotlight to find whateverIm looking for.
Results are a little better, sometimes, if I search specifically in a given folder and especially if the terms are in the filename. But it really should work globally.
Google Drive Personal for all personal files : photos, tax returns, etc. Only sync files actively touched in last thirty days.
Google Drive Work for all work files : presentations, spreadsheets, contracts. Only sync things I've actually touched in last week.
Github for code projects. 60 Day Minimum. ~/Documents/codeWork
Anything that is not filed within 30 Days > trash.
Admittedly my Google Drive is a bit gnarly, but the search functions are pretty solid.
I have everything in designated OS folders (Pictures, Videos, Documents, ...) and a new one called Projects. Projects used to be part of Documents, until Apple one day decided it's time to sync Documents to the iCloud (with introduction of APFS), which corrupted my projects folder and just straight up removed some files (I don't have every toy project in git), so some (5+ projects) are broken now. (note: I did everything to not have that folder synced, but it just wasn't respected so yeah...).
iCloud contains important documents (subscribed for 200GB extra space).
Since that fuckup with document/projects I subscribed to Backblaze for full system backup.
Downloads are split into multiple subfolders - different browsers, different browser profiles (work/personal), torrents.
I've found that this helps a lot for organization and allows me to not be constrained to the file system for organizational purposes. I found that often times, tickets for specific features turned into useful writeups about the systems that the feature touched and I wasn't able to capture that with a file tree.
The plugin can be found here: https://marketplace.visualstudio.com/items?itemName=vscode-n...
~/Code
~/projects # for projects that span multiple languages
~/courses # For the various programming courses
~/valet # PHP projects using Valet+
~/devilbox # For Dockerized
~/elixir
~/node
etc...
For notes I use Inkdrop and split things by hobbies/projects.One thing I've been having trouble organising is photos. More specifically, organising original and retouched versions. I've come across one solution which is to do this:
~/Photos/
2018/
SpringOriginals/ # Keep original photos here.
SpringAffinity/ # Save Affinity Photo files here
SpringExports/ # Save exported re-touched photos here
I quite like this solution, but I'd be interested in knowing if there's anything better.I use the same organization on all of my machines.
Source code goes into ~/src/, each project in its own directory. In some cases I'll group projects by language in their own sub-directories, for example ~/src/lisp/
Music goes into ~/music/ with a sub-directory per artist, but some genres get their own sub-directories, with artist sub-directories under that.
Photos go on a dedicated external hard drive.
Books and PDFs go into ~/books/, or one of the topic based sub-directories underneath it.
Everything else goes into sensibly named sub-directories in $HOME. If I get a lot of similar directories (2018-taxes, 2017-taxes, etc.) I'll group them in a sub-directory.
- ~/workspace (for work and coding)
- ~/Documents
- ~/Downloads
I don't organize or tag them. The most I'll do is use Finder's search function, but that's rare. I tend to know where things are most of the time.
For the most part, just using directory structures is all I need. When working on something temporary, I also have a second SSD mounted and symlinked in ~/Work and another for ~/Projects ... I also have a NAS for backup and hard storage.
For any development work, including my home dir, I create individual git repositories, and put all relevant files within that repository. You can then easily back it up on gitlab, and take advantage of all version control features.
It's only a matter of time before your laptop gets lost, stolen or fails catastrophically. You'll inevitably find yourself wanting to access the same files from multiple devices as well. Neither of this will be a problem if you keep your data in the cloud, and use your computer purely as a compute engine and local cache.
-A ~/dev folder with dev stuff in it.
-Dropbox/iCloud for important, heavily accessed content.
-Alias on the Desktop for all the WIP/very active projects (usually from my ~/dev/ stuff and synced folder w/ dropbox or icloud)
-Dock folder shortcuts for often accessed folders + grid pop-up menu so I can dragNdrop stuff.
- Also, Finder sidebar shortcuts for these folders.
- Downloads are always messy, I usually clean-up every year when I fresh install the new release of macOS.
- For images/photos/etc I tend to use dirs with year and quarter numbers, like 19Q1 as for the 1st quarter os 2019. Prevents huge dirs that take too long for Finder/Samba to index.
It's actually disgusting, but I'm lazy. A lot of my work tends to be ephemeral stuff, like downloading files and doing some analysis work so I have a folder called ~/scratch/ where I try to mostly put that stuff.
My biggest issue is I'm so lazy I often have throwaway scripts just sitting in git repositories that have no relation to the project that repository is for. It's fun returning to that repository and finding I have a bunch of uncomitted changes for files like "script.py" and "doit.sh"
Source code is in a Code directory. I try to keep that directory clean - only stuff I'm actually working on. Everything is in Git and can be pulled down very quickly if I need to spin it up again.
I used to love a document database that was geared for researchers and others who have to catalog a lot of information. It's called DevonThink. I had a license for it from one of the MacHeist bundles, but it was really overkill for my document needs.
- Documents
-- <a folder for each employer>
-- <a personal folder>
- Repos
-- <a folder for each language>
I also make extensive use of a little rust tool I whipped up which tags file paths with user defined tags, which are then searchable: https://gitlab.com/zwick/genieThis allows me to quickly find all file paths that are tagged with <employer #1> for instance regardless of where they are all from within a terminal.
(when I last used macs) I used a regular folder structure and Default Folder X to keep things in there.
Inside that is everything, and the desktop then has shortcuts into that and a single "To Be Sorted" folder that I throw things in when I'm lazy (and clean up weekly).
My All folder top level:
1-Life (taxes, banking, retirement planning)
2-Philosophy (notes, papers, readings)
3-College
4-Code
5-Professional
Z-Unused
The numbers keep it ordered by use/importance and I usually review and change the top level yearly.
In the end, file organization has to be something you consistently work at and have a good system for, regardless of OS. I don't think any tool solves that conceptual problem.
I have a few top-level directories, and a little structure beneath that — little enough that I remember most of it. My home computer directories are Code, Documents, $EmployerName, Media, Music, Photography, Temp (excluded from the backup), Web.
Yes, those are capital letters. I think they're neater, and it doesn't slow me down since I have several Zsh settings and functions to navigate quickly:
ls ~/d/t/p.j<TAB> → Completes to ls ~/Documents/Travel/Passport\ scan.jpg
This was configured using the zsh "compinstall" function – case-insensitive and partial completions.
cd ~w<TAB> → Completes to cd ~/Web
This is because I've done: hash Web=~/Web
This is the least useful, but could be useful for people who like deep directory structures.
cd n-w<TAB> → Completes to cd ~/Code/new-website
This is because I've done: export cdpath=( ~/Code ) It's important not to put too much in cdpath, as it clashes with the contents of the current directory.
emacs m/m-s/s/m/j/o/e/<TAB> → Partially completes to: emacs ~/Code/maven-project/maven-s/s/m/j/o/e/
with the cursor after the s, because there are two possible directories. I can type "<TAB><TAB>" to see the possible completions, or type "u<TAB>" since I know that will complete to
emacs ~/Code/maven-project/maven-sub/src/main/java/org/example/
I also have shell function for quickly finding by filename: f () {
echo "find . -iname \"*$1*\""
find . -iname "*$1*"
}
I'm also using the UK Dvorak layout. Either UK layout puts ~ in a nicer place, and Dvorak puts / and - in a nicer place, so although it's less effort that it might appear to a US Qwerty user to type these so much.Of course, it must be more than just rsync, and it needs to be smart about file downloads, caching when necessary, but also not bloating machines when one is only curious in a subset.
EDIT: Forgot to mention, should ideally be open source.
Hazel and maid both can do this, but I don’t wan to spend that much on something I can scramble in a hour nor learn Ruby. So I just use bash for this.
Work/
Reference/
Personal/
~/Developer src/
github.com/
work.git.server/
bin/
pkg/e.g. ~/project/2019/0307-hnpost/
It's simple and has been working very well over the years as you can quite easily find projects based on year and on name. Older projects can be removed / pruned you run out of diskspace. Keeping thing organised is just creating a single folder. I have a ZSH alias called mkproj which quickly creates a new project.
Then I navigate using Launchbar (https://www.obdev.at/launchbar). It's a fast search tool, but it has a cool noun-verb interface that lets you find stuff and then move it/open it/pipe it through a script, etc. Couldn't live without it.
Surprised nobody has mentioned case sensitivity yet (as far as I can Ctrl-F for); I have a case-sensitive disk image called ~/dev/ where all code checkouts live.
Been using autojump for a while to make terminal navigation easier
Docs: date sorted mess with a twist. In over 30 years of using a computer, I've only rarely gone back to stuff I haven't touched in months. So when I notice that old files I no longer care much about are starting to pile up, I create a folder and move applicable files into that folder for archival purposes. I've a few exceptions for important papers, like contracts and invoices.
For keeping my desktop clean, I keep a "clean-up" folder that I can sweep everything into and clear it out as needed (every 6 months or so).
I’m a writer who uses Markdown for everything, so I put MultiMarkdown metadata in files (client, invoice amount, etc) and that’s useful for searches and grouping (and for scripts to build invoices based on the tags and metadata)
Downloads/ gets purged every few years of stale downloads.
Documents/ gets mission-critical stuff that needs to be backed up but does not need to be in the cloud.
Pictures/ has all my non-Photos photos, including a quarter terabyte of DSLR raw files.
Photos and iTunes put their stuff wherever they do.
I have files from 1999 in my home directory so I’m not sure I can offer any advice on tidying up :)
Do you have an automated way of doing this? I keep the Downloads/ finder tab open at all times so I periodically clean up.
I don't have a ton of files, but I'm impressed at how quickly silver searcher[0] can find things. `-g` if the filename is specific enough. A bit longer, but not too bad if I need to search by content instead.
- ~/code for personal projects
- Photos, music, documents, calendars, etc. synced through iCloud
- Other various stuff in iCloud Drive, symlinked to ~/cloud for easy access. Got a stash directory there for random files that I can't bother organizing
Everything else I assume is ephemeral and don't mind if lost.
Using Git for tech projects. Same for dotfiles. No plugins so everything just works by copying to ~.
For active code projects I really only keep /usr/local/src on my local drive. Those are all git repos linked up to GitHub.
Things are split contextually by “where they’re syncing to”— default locations for photos and music because that’s what itunes wants, work documents in work dropbox, etc.
Most of the time when i want to find a file i use Spotlight. I don’t really care where on disk it is per se because i can just fuzzy-search for it in the GUI or at the command line anyway.
I have my own folder structure with my own basic rules. I keep a copy of all important files synced in Dropbox, iCloud, and an external drive just to be safe.
Just a little bit discipline to not leave files in temporary places or with random names, and to clean them up when needed.
Path, directory names, and file names are giving me enough context to find them.
https://www.shivagaire.com.np/python/2018/08/09/organize-you...
I use Hazel to automatically move files into a "review" folder to keep thing either saved or thrown away. Just check it periodically.
And an external HDD over SMB for downloads(/Movies, /Series, /Music, /Books et and a general folder /Spam - it gets cleaned once in a while)
Pretty much it.
- Work - Labs (informal code projects and practice) - Personal
But I keep my files in Google Drive that are in less need of security.
Learn to love Search, but give yourself a manual cheat mode that doesn't take any effort to maintain.
I use the application "Hazel" with two tactics, one to clean up Desktop, one to clean up Downloads.
For desktop, I use a freshness rule, and then a manual lookup hack. If it's likely this file isn't changing any more, Hazel sweeps it into folder.
In downloads, I do freshness, but with a variant manual lookup hack.
DO GIVE YOURSELF A MANUAL/MEMORY METHOD TO FINDING FILES
What I mean by manual cheat mode or manual hack is, can I find this file very quickly using just what I have in my head, without having had to identify content and file accordingly?
For the hack, I file by buckets of dates. What I've found is, I can generally recall what I was working on when I had that file, and from that I can recall generally when I was working on it. So, if I can "file by date" with an appropriate granularity where I balance a fuzzy "when" with a glanceable number of files, then I can find it by looking in usually one but at most maybe three buckets. Bonus: date folders also make it easy to scope searches.
Depending on the nature of work, my buckets range from quarterly at the largest, to weekly at the smallest. I name them YYYY QN/FILE, YYYY/YYYY-MM/FILE, or YYYY/YYYY-WW/FILE. If I'm doing quarterly, the folders are not nested inside the year.
For downloads, I add a layer between the date folder and file: domain. I used to just use domain and replace files of same name like "latest.zip" but over time I began to value having the prior version of downloaded things. So downloads look like YYYY QN/DOMAIN/FILE.
AUTOMATED SCHEME EXAMPLE
Putting it together, my current scheme on home laptop is:
Desktop
- File by Week Last Opened > YYYY QN/FILE
method: sort into subfolder
trigger: date last opened not blank and last opened is not last 2 days
date = date last opened
- File by Week Last Modified If Not Opened > YYYUY QN/FILE
method: sort into subfolder
trigger: date last opened is blank and last modified is not last 2 days
date = date modified
Downloads
- Quarterly Sources > YYYY/DOMAIN/FILE
method: sort into subfolder
trigger: date added not last 4 weeks
date = date added
Hazel has additional features such as what to do with duplicates, that you can tailor to your preferences.As a further bucketing mechanism, if you use many machines for different modalities and collect all those files into a single 'cloud' place they all can reach, you can append the machine or hostname to the dated bucket. That lets you have selective sync rules to different machines, but also find all the content in one place.
ALWAYS BE ORGANIZED, BY NEVER ORGANIZING!
I never file anything anywhere, I just let these rules grab them and squirrel them away. If I need a set of files across dated folders, monthly bank PDFs for example, I pop open a folder, see the relevant filename, and run a search for that, then select all and send to accountant.
SPECIALS
Code repos are special cased, within a source code management folder tree, not worked from desktop. Vagrant and Virtual Box VMs, Pictures, Media, Music, also special case managed by their tools.
My main "problem" with organization methods, is that I feel they get in the way of my creation process.
If i'm creating a PPT and I need an icon pack I don't want to think to where should I donwload it, if the project as a folder, where to export it or whatever... Just give me the icons, right now Im creating a presentation, I could care less about how my files are structured.
The final presentation will end up on google drive, or somwhere else "safe".
Your approach allows me to do this, and keep everything organized at the same time.
~/projects
Dead projects go in:
~/projects/archive
Take a look in Finder.
~Documents/$project_name/
~code/$project_name/$repo
Everything initially gets downloaded into ~/Downloads and then moved as appropriate. Having two Finder windows open makes this very easy. One stays on ~/Downloads and the other changed to suit the destination.
I am a heavy Terminal user, with multiple active windows, so most of my current work-in-progress is a "cd ...".
I replicate the above to a Linux desktop with rsync based scripts. So I basically perform the same activities on both platforms, e.g. LibreOffice, etc. Hardly use any Apple software anymore, notable exception being iTunes for the various iPads and iPods around the house and car.