
So given my previous post about Adventures In The Terminal I thought I'd give a bit of an update on how my workflow has evolved over the past six or so months.
I've gone very keyboard centric and have based a lot of my tools around that. Starting in the terminal, I've moved to Ghotty & Tmux from Wezterm. I've previously used Tmux, but I've got right into integrating it to Neovim, making my keybindings for changing panes allow movement out of Neovim and back in. Quite useful. I've also customised my Tmux config quite a bit more adding extra key binds for zooming the panel to full, switching tabs, etc.
So speaking of keybinds, I've been using Karabiner Elements to remap my laptop keyboard, so I use Caps-Lock as my escape key if I tap it, but if I hold it down, it becomes the Hyper
key (Which is Cmd+Ctrl+Option+Shift
at the same time). I then map this to a lot of the moving around functions I have. So I use Hyper+B
for my Leader
key on Tmux. My main external keyboard now is a Keychron Q2 Max(with Brown Switches) which I've changed the firmware on. I do the Caps-Lock mapping there (so works on whatever computer I hook it up to), I also have some other mappings that can only be done in the firmware. If I tap either of the Fn
keys, it will lock that for the next key press (then go back to normal). Double tapping either Fn
keys locks it on until I double tap it again. The LEDs under the keys reflect these modes too. I wouldn't mind upgrading the switches on this at some stage to something with a bit more of a tactile bump. I love clicky keyboards, but I'm not going to subject the office to that noise when I'm in there.
So along with all this, being a web developer, I can't just live in the terminal, so I've switched to a tiling window manager called Aerospace. I've mapped the Hyper
key here too. So Hyper
and any of my unused binds (I remove them from the config when I need them elsewhere) swap to different workspaces. Hyper+Space
is my Leader
key here for window management, moving apps between workspaces, zoom to full, float the window, etc. I have Hyper+;
as a leader into more Aerospace specific functions. I've also added Janky Borders to highlight my selected window with a bright orange border.
So I typically have my workspaces set up like this:
- 1 - Misc/Default
- 2 - Terminal
- 3 - Browser
- 4 - Scratch
- E - Email (Outlook or Thunderbird depending on which computer I'm on)
- S - Slack
- T - Teams (yes, I use both Slack and Teams at work, lucky my work computer has lots of RAM)
- O - Obsidian
This lets me switch very quickly to what I need. These are set up to automatically move each app to the correct workspace when I start it. I often use Teams and Obsidian together, but that's just a single window and easily moved (and resized).
The beauty of Aerospace's workspaces is that they're super easy to move between monitors when I'm hooked up to a second monitor (yes, I have hotkeys for that).
I'm using Raycast as my launcher. I have a lot of useful utilities in there too, things like quickly resizing an image, etc.
On the editor side, I'm right in on Neovim (I can't remember the last time I lauched VSCode - unless by accident). I'm using LazyVim at the moment, with some necessary extra plugins.
- mini.surround (Part of Lazy Extras) - This lets me easily surround words/paragraphs/functions/etc with brackets, quotes, etc. (shortcut of
gsaaw(
to surround a word with brackets) - chezmoi.nvim (Part of Lazy Extras) - This lets me easily sync my dotfiles between computers.
- yanky.nvim (Part of Lazy Extras) - This lets me easily view my history of copied text
- undotree - Vim/Neovim have the concept of undo history, but it's not typically your normal undo. If you undo a change, and then start typing again, you usually lose anything beyond that. Undo History in Neovim branches it off, much like when using source control like Git. So you never loose anything. Unfortunately this can be pretty unwieldy, so undotree gives you a nice visual view of things and to move around easily.
On a side note, one thing I love about Vim style editing in particular, and I heard this described elsewhere, it's like having a conversation with your editor rather than just using it. It's a subtle difference, but in my head, I'm thinking "Delete these lines between the brackets" rather than "Click here, shift+down arrow until the other bracket, hit delete".
On the AI coding side, At work, I use CoPilot and CoPilot Chat, because they pay for it. At home, I'm using ggml-llama (with the Qwen-Coder 2.5 model). I'd prefer it to useOllama, but I'm yet to find a tool that works the way I like for it. (Especially when it comes to autocomplete)
Note taking is done using Obsidian. I have quite a few plugins installed, but the ones I use most are:
- AI Tagger - I suck at tagging, so this does the work for me
- Dataview - Just a couple of simple queries to find notes I haven't tagged, ones that are marked as contacts, etc
- Iconize - This lets me make each note stand out if need be
- Ninja Cursor - This is just for fun, when the cursor moves, it leaves a trail and looks like a ninja jumping around my note.
- Remotely Save - I mentioned this one previously, but it give me free syncing of my notes between computers and phone.
Theme wise, I'm using the Obsidianite theme. Lovely dark theme with nice accents.
I'm still dabbling with the Neovim Obsidian plugin, but it's not part of my regular workflow yet.