Shell and Fonts
Iosevka - because I work off my laptop screen alot, specifically a custom variant.
For general “stuff”, I currently enjoying the “gothic” router font aesthetic, which is used in this blog.
For my shell:
Themes
Catppuccin has started to replace Dracula as my daily driver, though I still use some Dracula themes like the terminal which I believe to be superior option still. Alternatives I’ve considered are Rosé Pine which I’ve briefly toyed with, but haven’t taken seriously.
Text Completion via LLMs
llama-vscode
with
llama.cpp.
It’s proven to be good enough and gets out of the way (plus I can self-host
this). I’ve had good success using Devstral-Small or even a general LLM like
gemma-3-12b variants
1llama-server \
2 -m qwen2.5-coder-3b-q8_0.gguf \
3 --port 8012 -ngl 99 -fa -ub 1024 -b 1024 \
4 --ctx-size 0 --cache-reuse 256
I’ve also started using aider for /ask commands. Though I generally don’t
use local LLMs for agentic code editing as my daily driver.
1uvx --from aider-install aider \
2 --model openai/default \
3 --openai-api-base http://127.0.0.1:8080/ --openai-api-key NONE \
4 --map-tokens 1024 \
5 --no-show-model-warnings \
6 --no-gitignore
VSCode Settings
I generally like to leave things to default, since moving to other people’s
computer and workspaces things don’t get confusing. Though the
keybindings.json I generally stick to is the terminal focus variant:
1[
2 "files.exclude": { "**/.git": false },
3 "workbench.colorTheme": "Catppuccin Macchiato",
4 "editor.fontFamily": "'Iosevka Curly', Menlo, monospace",
5 "go.inlayHints.assignVariableTypes": true,
6 "go.inlayHints.compositeLiteralFields": true,
7 "go.inlayHints.compositeLiteralTypes": true,
8 "go.inlayHints.constantValues": true,
9 "go.inlayHints.functionTypeParameters": true,
10 "go.inlayHints.parameterNames": true,
11 "rust-analyzer.cargo.features": ["all"]
12]
gitconfig
Stolen from here.
1# ~/.gitconfig
2[column]
3 ui = auto
4[branch]
5 sort = -committerdate
6[tag]
7 sort = version:refname
8[init]
9 defaultBranch = main
10[diff]
11 algorithm = histogram
12 colorMoved = plain
13 mnemonicPrefix = true
14 renames = true
15[push]
16 default = simple
17 autoSetupRemote = true
18 followTags = true
19[fetch]
20 prune = true
21 pruneTags = true
22 all = true
23
24[help]
25 autocorrect = prompt
26[commit]
27 verbose = true
28[rerere]
29 enabled = true
30 autoupdate = true
31[core]
32 excludesfile = ~/.gitignore
33[rebase]
34 autoSquash = true
35 autoStash = true
36 updateRefs = true
GPG
1brew install gpg
2gpg --gen-key
3# by default for self stuff, use symmetric encryption
Ensure in ~/.zshrc
GPG_TTY=$(tty)
export GPG_TTY
Example usage:
1echo foo | gpg --symmetric > foo.gpg
2gpg --decrypt foo.gpg
3# to clipboard
4gpg --decrypt foo.gpg | pbcopy
fnox with age+yubikey
To do this, I’m using age with age-plugin-yubikey
1brew install age age-plugin-yubikey fnox
To make it work with fnox do the startup with age-plugin-yubikey. Ensure that the resutling age1yubikey1... is placed in ~/.config/fnox/age.txt.
When you go through the fnox init the steps should be straight forward to follow. The resulting file should look something like:
1[providers.age]
2type = "age"
3recipients = ["age1yubikey1..."]
Misc
stats, because why not?
Insomnia, postman, but self-hosted
KeePass, self-hosted password manager
Obsidian for taking notes, with
Harper LSP Plugin
I’ve been keeping a 10+ year old computer alive. Pale Moon has been amazing for this.