Obsidian, nvim and a note taking workflow!
Background
For the longest time, I’ve jumped around various note taking and task handling setups. From my insane belief that a single post-it on my desk was the best solution, all the way to integrating Obsidian into my nvim workflow and setting up keybinds to follow up on tasks that are pending.
But this time, it feels like I’ve actually struck gold - right in the middle of enough tooling to support my flow and not more than absolutely necessary
Why have a note/task setup?
Oh my… I’ve based most of my professional development on the belief that if I stay on track with what I actually think is the most important and high leverage work instead of jumping at the loudest persons request, I can make a big difference.
Starting my days with establishing what I want, need and think would be nice to get done makes it easy for me to stay aligned. Most of the days as a developer we have random things pop up but very rarely are they actually the most important.
Having tasks linked to longer forms of content means I can keep my tasks organized at a high level, but also dive deep whenever necessary and do a complete brain dump before, during or after a task.
The setup
As I wrote about some time back I have moved to using nvim as my editor. I’ve since made sure that I have all the support I need in nvim to actually base most of my time here. This has meant one major thing for me, that I wanted to make sure I don’t have to jump around tools to read or handle my planning.
My setup is rather simple;
- neovim
- Obsidian
I use these two together, and never actually use the Obsidian gui (which some people swear by) because I want to stay in place - near the code. I do that by utilizing the nvim plugin obsidian.nvim, which is awesome. For my personal flow I use a separate tmux session to keep a nvim instance open to my vaults, which allows me to handle notes very swiftly and without jumping directories.
Because I want to have a grasp on my tasks without jumping tmux sessions or leaving my code I also setup this telescope grep view for followup or todo tasks. At some point I’ll take the time to add task completion to this!
return {
vim.keymap.set('n', '<leader>tt', function()
require('telescope.builtin').grep_string(require('telescope.themes').get_ivy {
prompt_title = 'Incomplete Tasks',
search = '^\\s*- \\[ \\]', -- also match blank spaces at the beginning
search_dirs = { '~/vaults/' }, -- Restrict search to the current working directory
use_regex = true, -- Enable regex for the search term
initial_mode = 'normal', -- Start in normal mode
layout_config = {
preview_width = 0.5, -- Adjust preview width
},
additional_args = function()
return { '--no-ignore' } -- Include files ignored by .gitignore
end,
})
end, { desc = 'Search for incomplete [t]asks' }),
vim.keymap.set('n', '<leader>tf', function()
require('telescope.builtin').grep_string(require('telescope.themes').get_ivy {
prompt_title = 'Followup Tasks',
search = '^\\s*- \\[>\\]', -- also match blank spaces at the beginning
search_dirs = { '~/vaults/' }, -- Restrict search to the current working directory
use_regex = true, -- Enable regex for the search term
initial_mode = 'normal', -- Start in normal mode
layout_config = {
preview_width = 0.5, -- Adjust preview width
},
additional_args = function()
return { '--no-ignore' } -- Include files ignored by .gitignore
end,
})
end, { desc = 'Search for [f]ollowup tasks' }),
}
Workflow
I start my weeks by setting up some goals and long-lived tasks for the week, using a weekly template and following a simple structure (that changes over time whenever I think I have some smart ideas - but I don’t). It usually looks something like this:
## Important considerations for the week
- [x] Go through the
## Slow things to work on
- [>] Clients and the traffic generated, see [slack thread](https://tv4.slack.com/archives/C067MJ95JV8/p1741096306822629?thread_ts=1740993443.128059&cid=C067MJ95JV8) on the subject
Why is noone looking into this?
- [x] Provision alerts from infra
- [x] Create a migration guide for node teams
## Prioritised tasks highlevel
## Notes for the week
I have a very similar setup on a daily basis as well, but it is a bit more short term and aimed at more concrete things!