Workflow update
Table of content
I somewhat recently got a new job. With that a new machine, brand new OS ready for customization. Along a pile of new attributed tasks and its load of meetings of course.
In this post, I write about what I changed in my workflow to better accommodate this changes. I’ll talk about minor nvim
changes, alacritty
hacks and a newly-discovered tmux
feature and a quick feed back on my new favorite synchronization tool syncthing
.
Let’s dive right in!
The tool
A long time ago, I used vimwiki
to take notes. It’s a fine tool which supports both the wiki
syntax and markdown markdown
syntax. I picked the later, mainly because its well supported across many other tools I use daily. What’s great about vimwiki
is it’s ability to jump from files to files just like we’re used to with hyperlinks on the web. What’s not that great is the limitations of both the supported syntaxes.
Enter neorg
, a nvim
plugin built on top of the norg
syntax. It brings many features into the note-taking game which deserve more than a paragraph in a blog post. If I’ve to pick one as an example, the ability to lower the level of text with ---
which decrements by one and ===
which resets to 0. It helps me write better structured and more detailed notes. I find norg
to be very promising even if neorg
is still a work in progress.
The hack
I’m a convinced single-screen user. In find multiple-screens setup to induce neck pain so, here I am, rocking a tiling window-manager and switching workspaces and attached applications in a blink while remaining still.
But, sometimes, one screen falls short. Notably, during meetings: I want full-screen presentation and note-taking. I figured I could have the best of both worlds thanks to alacritty
’s transparency. Here is a small set of aliases I’ve in my shell configuration:
function tt {
yq -y -i ".window.opacity = $1" ~/.config/alacritty/alacritty.yml
}
function ttt {
opacity=$(yq .window.opacity ~/.config/alacritty/alacritty.yml)
opacity=$(awk '$0<.7 ? $0=.95 : $0=.5 1' <<< $opacity)
tt $opacity
}
function t~ {
opacity=$(yq .window.opacity ~/.config/alacritty/alacritty.yml)
opacity=$(( $opacity + $1))
opacity=$(awk '($0<0){$0=0} ($0>1){$0=1} 1' <<< $opacity)
tt $opacity
}
alias t+="t~ +.05"
alias t-="t~ -.05"
What’s going on here?
- The function
tt
takes an opacity level as it first and only input. It uses it to updatealacritty
’s setting. - The function
ttt
circle between two predefined settings:.5
and.95
. - The function
t~
is not meant to be used by hand but it comes in handy for thet+
andt-
aliases. It’s goal is to increase/decrease the opacity while staying between the authorized[0;1]
limits.
Enough code, what is it useful for? Well, when I need to take notes during a meeting, I put the terminal on top of the presentation, both in full-screen mode and type ttt
. I can now take notes while watching the speaker and its slides through alacritty
. Once done, ttt
to get back to my default opacity level and exit full-screen.
Simple, fast and efficient, also, works in desktop and laptop mode. What’s not to like?
The bulky
I’ve said it in other blog posts, I heavily rely on tmux
in my workflow. I manage one tmux
session per project. Each tmux
session generally contains a nvim
session which gets restored by tmux
which gets opened by alacritty
which gets launched automatically when I open my user session. Sounds like a dream come true and it kind of is.
But, when I’m in project X and want to access my notes which happened to also be opened in project Y, nvim
yells at me. Something along me opening files/buffers that are already accessed somewhere else at the same time. And I don’t like to be yelled at. I could find a way to disable this check (specifically for norg
files?) while enabling auto-reloading buffers when the underlying file gets updated. But I went down another path: I have a notes dedicated tmux
session.
At first it was rather annoying to switch from wherever I was working to my notes and back. But I finally found a pretty handy set of shortcuts:
- I mark the note-taking
tmux
session’s single window withPrefix-m
. Note the capitalM
right next to the window’s name. - I bind
Prefix-N
(fornorg
) as follow:bind N switch-client -t '{marked}'
. It allows me to jump to my notes from any session/window/pane. - I installed
tmux
’ssessionist
pluginset -g @plugin "tmux-plugins/tmux-sessionist"
. It gives more sensible keybindings, notablyPrefix-S
to circle between the last two sessions.
Basically, I work, press Prefix-N
, input notes, press Prefix-S
and carry on.
Conclusion
I needed to be efficient during the onboarding process for my new job. I had to be able to jump from one task to another while joining meetings with important informations for later. I’d been in the same company for six years before and had everything somewhere in my head after this time. But starting the memorization process all over again was too much without a second brain by my side.
This set of commands/tools/settings made it possible. With a bit of zettlekasten (I’ll let you search this one on your own for now) it all came together pretty well. Last but not least, I already wrote about it so I’ll just add the link here. I ditched nextcloud
in favor of syncthing
: it has a do more, cost less vibe I enjoy as I don’t pay for my nextcloud
server, thus reducing my costs while having my more data redundancy.
I never brought me any feedback before but I’ll do it anyway. Who knows, maybe it’ll work this time. I this post brought you joy, share it with your friends and don’t hesitate to ping me on the fediverse. If it pained you to read me rambling about my workflow, share it to your friends too and have a mock me together!