Skip to content
Tim Hårek's logo

Helix as a notes tool

Published
2 minutes read

I've been writing about using paper notes for stuff a couple of times (Paper notes & Revisting paper notes). So you might ask why am I talking about using Helix as a notes tool? Sometimes I need to jot something down, like notes for this blog, work-related stuff, a debugging log etc. I mainly use my paper notes for day-to-day stuff.

Setup

  • A notes folder in $HOME.
  • Shell-script for creating/opening existing markdown notes.
  • Keyboard-shortcut manager to execute the shell-script
  • (optional) Nextcloud for syncing my notes.

Shell-script

#!/bin/sh

notePath="$HOME/notes"
noteFilename="$notePath/note-$(date +%Y-%m-%d).md"

if [ ! -f $noteFilename ]; then
    echo "# Notes for $(date +%Y-%m-%d)" > $noteFilename
fi

cd $notePath

$EDITOR $noteFilename

This script checks if there is an existing note for todays date, if not it will add a new heading. Then it will cd me to the notes-folder and open in my editor, which is Helix.

The reason why I'm cd into the folder is when I close the editor or close it to the foreground. And also so that I have the correct folder available in the file picker.

Keyboard shorcut

I use Alfred on macOS, where I have a workflow with a keyboard shortcut: CMD + SHIFT + n. This opens a new terminal tab and runs my shell-script.

Syncing

I use what I already have, and that is Nextcloud. So my notes-folder is a synced and available on my phone via the Nextcloud notes app.

How does this compare to Obsidian etc.?

I have installed Marksman's LSP on my machine, which means I get things like wiki-links, autocomplete and other intellisense-goodies.

Screenshot of Asciinema video of how I take notes.
Asciinema of how I take notes.

It feel super light-weight, and I can create new notes by using Helix's :run-shell-command or just :write <new-file>.md.

I guess the only thing I'm missing is the graph and see how notes are related. But for my needs I simply need a place to take notes, and it's nice to have a way to link them together without running ls and checking what the file was called etc.

And to not contradict my previous post about Markdown, I can also use normal Markdown-linking with autocomplete.