This site is driven by two keys, like the machine it came from. Reading: j and k scroll, d and u move half a page, gg goes to the top, G to the bottom, H and L switch windows, ? opens the help. Space is the Neovim leader and handles content: Space then h home, r research, p projects, g gear, a about, / tags, or Space then a digit to jump to that window. Home is the tmux prefix and handles windows: Home then c opens a terminal, Home then & closes a window, Home then space goes to the next one. While focus is on the keyboard, h j k l move between keys and Enter opens one.

ResearchR AboutA Gear — G for gear — keyboard, terminal, editor, homelab.G
    ProjectsP Tags — / as in vim: search./
    ×
    Menu

    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.

    01

    Terminal

    ghostty/config

    Seven 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
    02

    Multiplexer

    tmux/tmux.conf

    The 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
    03

    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
    04

    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
    05

    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)
    06

    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
    07

    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
    08

    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
    09

    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.

    Writing
    id en
    rss gh in