Gear
The tools actually in use: keyboard, terminal, editor, homelab.
Every line below comes from a config file I actually run. No guessed versions, no tools I merely think are a good idea. The source is public at arisros/dotfiles.
Terminal
ghostty/configSeven lines. That is the whole file.
- background
- 000000 — actually black, not near-black
- foreground
- ffffff
- font-family
- IBM Plex Mono (Nerd Font build: cask font-blex-mono-nerd-font)
- macos-titlebar-style
- hidden
- macos-non-native-fullscreen
- true
- fallback
- alacritty/alacritty.toml is still kept, but not used day to day
Multiplexer
tmux/tmux.confThe prefix is Home, and Home sits on my right thumb.
- prefix
- Home (C-b is unbound, then re-added as the secondary prefix)
- status bar
- on top — minimal-tmux-status, indicator ●, background red
- numbering
- base-index 1, pane-base-index 1, renumber-windows on
- splits
- prefix + - runs split-window -h, prefix + v runs split-window -v
- pane movement
- C-h / C-j / C-k / C-l with no prefix, via vim-tmux-navigator
- pane border
- status on top, heavy lines, format [ :Darwin ] from uname -s
- copy mode
- vi — v starts the selection, y copies
- plugins
- tpm, sensible, resurrect, continuum (restore on), urlview (o), yank
Editor
nvim/init.lua · nvim/lua/arisjirat/Neovim, configured by hand — not a distro.
- plugin manager
- lazy.nvim — roughly 30 plugin specs, one file each
- colorscheme
- twilight256 from rafi/awesome-vim-colorschemes
- highlight overrides
- Identifier #6b99e8, Function #F0C674, Define #ba7d13, Statement #CDA869, String #a7b879
- leader
- Space
- leave insert
- jk
- file explorer
- - opens :Explore (netrw) — the same key that splits a tmux pane
- line numbers
- relativenumber + number
- indent
- 2 spaces, expandtab, autoindent
- misc
- clipboard = unnamed, wrap off, cursorline on, signcolumn always
- LSP & tooling
- mason + lspconfig, telescope, treesitter, trouble, which-key, lualine, gitsigns, neogit, lazygit
File managers
yazi/yazi.toml · joshuto/joshuto.toml- yazi — text/*
- nvim, blocking (the editor takes over the terminal)
- yazi — video/*
- mpv, orphan (runs detached, yazi stays usable)
- yazi — image/* & the rest
- macOS's own open
- joshuto
- mouse on, scroll_offset 6, use_trash true, watch_files true
Shell
zsh/.zshrc- edit mode
- set -o vi
- prompt
- git-prompt.zsh
- plugins
- zsh-autosuggestions, zsh-syntax-highlighting, zsh-history-substring-search
- ↑ / ↓
- bound to history-substring-search, not plain history
- history
- HISTSIZE and SAVEHIST 50000, duplicates dropped first
- version manager
- mise (replacing nvm, whose lines are still there but marked)
Window manager (macOS)
aerospace/aerospace.toml · sketchybar/ · borders/bordersrc- layout
- aerospace, tiling, default tiles, accordion-padding 30
- focus
- alt-h / alt-j / alt-k / alt-l — the same shape as tmux and nvim
- move window
- alt-shift-h/j/k/l
- workspaces
- alt-1..4 and alt-q/w/e/r/a/s/d/f
- resize
- alt-minus and alt-equal, ±50
- on startup
- aerospace launches sketchybar and borders
- borders
- style round, width 5.0, active #CC6766 — coral again, unplanned
- sketchybar
- apple, date, clock, CPU, disk, battery, aerospace workspaces
Toolchain
mise/config.toml · Brewfile- runtimes (mise)
- node 22, go 1.24.0, bun 1.2.7, python 3.13.0, rust & ruby latest
- JVM (mise)
- maven latest, tomcat 11.0.0
- other (mise)
- arduino 1.2.0, golangci-lint 1.64.8, lf
- brew
- 39 formulae, 11 casks
- daily CLI
- ripgrep, fzf, lazygit, neovim, tmux, htop, stow, urlview, viu, zbar
- media & images
- ffmpeg, imagemagick, vips
- secrets
- pass, pass-otp, git-secret
- apps
- aerospace, orbstack, insomnia, obsidian, ngrok, arduino-ide, shortcat
The dotfiles themselves
install.sh- repo
- arisros/dotfiles
- installation
- GNU stow, one target per directory (~/.config/nvim, ~/.config/tmux, …)
- one-liner
- bash -c "$(curl -fsSL https://raw.githubusercontent.com/arisros/dotfiles/main/install.sh)"
- secrets
- git-secret — the encrypted files are committed, the key is not
Hardware & servers
- keyboard
- ArkButton — wireless split, 58 keys, ZMK, handwired
- printer
- Elegoo Neptune 4 Pro (prints the keyboard case and tenting stand)
- cluster
- k3d + ArgoCD, managed from the homelab-platform repo
- traffic path
- Cloudflare → Caddy on a VPS → WireGuard tunnel → homelab Caddy → k3d NodePort
- cluster secrets
- Vault
Why Home became the tmux prefix is on
About.
clowner: Turning a macOS App Into Two Independent Copies
gearOne Bash script that copies a .app into a second copy with its own bundle identifier — two Braves, two Slacks, two of anything, running side by side with separate data.
ArkButton: A Wireless Split Keyboard, Printed and Soldered by Hand
gear58 keys, two nRF52840s, ZMK, and one thumb position deliberately left empty. Notes from building a wireless split keyboard — including the clock bug that killed the right half and the tenting plate that only printed once it stood upright.
Dactyl Manuform: The Board Before ArkButton
gearThe handwired split keyboard I used before going wireless. Sculpted case, two Pro Micro ATmega32U4s, a TRRS cable — and QMK firmware that, honestly, never shipped.
Homelab: The GitOps That Deploys This Site
gearKubernetes on k3d at home, exposed through a VPS and a WireGuard tunnel, with ArgoCD pulling changes from Git. Including the page you're reading.
Dotfiles: Workstation Bootstrap with GNU Stow
gearTerminal, editor, and macOS window-manager config managed via GNU Stow + Homebrew Bundle — clone, run one script, machine ready.