TLDR: I wrote myself a script that significantly reduced the friction associated with adding a new note to a notes file. This has made me happier.
Sometimes I need to brainstorm lists of things. Here are some examples:
- A professor at the college I attend challenged me to solve a puzzle that boils down to "produce a complete list of physical attributes that satisfy property X", where X isn't relevant here.
- I'm part of a community that's working to develop a conlang called Toaq which is still in its infancy. I'm currently working on several aspects of the language, including:
- A vocabulary for talking about mathematics, for which I need to brainstorm a list of mathematical concepts (integer, complex number, infinity, triangle, and so on).
- A system for talking about temporal features more complex than "in the past", for which I need to get my hands on a list of examples of English sentences that will need translations (containing phrases such as "twenty years ago", "every five seconds", and so on).
- I'm working on a secret personal project with a lot of potential for disaster, for which I need to brainstorm possible failure modes.
The thing is, I'm not very good at just sitting down and coming up with these things. Or, to be more precise, even when I sit down and just come up with ideas for a while, I still find more ideas coming to me at random times.
I use Linux, and I spend a lot of time at my computer. But even when I'm already at my computer, it's kind of a hassle to add something to a notes file: I have to open the file browser, remember where the file is located or spend time searching for it, double click the file, add my note, close the text editor, then close the file browser.
So I wrote myself a script, called l (a lowercase letter L). It's a command line script that takes one argument, and all it does is open a text file with that name located in the directory ~/Documents/Lists. (If no such file exists, it first creates one.)
Now, to add a note to such a file, all I have to do is click inside the command-prompt I have in the top corner of my screen, type "l " plus the name of the list, add my note, then close the text editor. This a lot smoother of a process than the old way of doing it, and I find it a lot more pleasant.
But then don't I spend some time remembering the name of the notes file? Sometimes. But it turns out that my brain and this task are collectively such that when I first create a new notes file, I can usually succeed in choosing a name that I don't subsequently forget.
I'm using LXDE as a desktop environment and it allows you to set the shortcuts in its config file. If I'm not mistaken, other flavors, like GNOME and KDE, had a GUI to bind a certain key sequence to a script.
It seems that it catches the keybindings instantaneously and any lag is due starting a program called by the script, but it is usually around 1 second, which is similar to launch the program independently.
Autokey sounded very promising, but it is too slow. I wanted to port my emacs keybindings to use system wide, but it was impossible to use due to its lags.
My (shell) scripts are pretty simple, the one that prompt me for a search query is:
And a fast search of the current selected text:
I started with the first one, which offers more flexibility, but most of time I use the fast one and I edit the query if it doesn't return the desired results.