Skip to content

Instantly share code, notes, and snippets.

View grantvanhorn's full-sized avatar
🧹

Grant Van Horn grantvanhorn

🧹
View GitHub Profile
@grantvanhorn
grantvanhorn / setup-macos.sh
Last active July 28, 2026 19:53
[macOS] Terminal setup installer — installs Ghostty, tmux, Neovim (LazyVim), Starship from gists via Homebrew
#!/usr/bin/env bash
#
# setup-macos.sh — provision a macOS machine with my terminal setup:
# Ghostty, tmux, Neovim (LazyVim + my overrides), Starship, and zsh (.zshrc).
#
# This is the ONE orchestrator script — it installs everything and pulls each
# config from its public gist, so no repo checkout is needed.
#
# It is IDEMPOTENT: run it as many times as you like. Each run converges to the
# same state — configs are only rewritten when their content actually changed,
@grantvanhorn
grantvanhorn / .zshrc
Last active July 28, 2026 18:50
[macOS] .zshrc — zinit plugins, eza aliases, nvm auto-switch, starship (part of setup-macos.sh flow)
# =============================================================================
# .zshrc — zsh shell configuration (macOS)
# =============================================================================
# Installed by setup-macos.sh, but you can drop it in manually:
# Destination: ~/.zshrc (then: exec zsh — or open a new terminal)
#
# REQUIREMENTS (Homebrew — https://brew.sh):
# brew install starship eza
# brew install --cask font-roboto-mono-nerd-font
# - zinit (plugin manager) auto-installs itself + the plugins on first run.
@grantvanhorn
grantvanhorn / starship.toml
Last active July 28, 2026 15:32
[macOS] Starship prompt (aetheria theme) — install to ~/.config/starship.toml
# =============================================================================
# Starship prompt configuration — macOS (the "aetheria" theme)
# =============================================================================
# WHAT THIS IS:
# Starship is the SHELL PROMPT, not a terminal setting. Your terminal
# (Ghostty) draws the window; Starship draws the prompt line inside whatever
# shell you run. That's why it lives in the shell config, not ghostty/config.
# (This theme is portable — the same file works on Linux too.)
#
# REQUIREMENTS (install with Homebrew — https://brew.sh):
@grantvanhorn
grantvanhorn / 0-README.md
Last active July 28, 2026 15:32
Neovim setup — LazyVim plugin overrides (conform, eslint, typescript-tools, cmp, onedarkpro, etc.)

Neovim setup — macOS (LazyVim plugin overrides)

These are my personal Neovim customizations. They are plugin spec overrides that drop into an existing LazyVim config — they are not a standalone Neovim distribution. Install LazyVim first, then copy these on top. (No LLM/AI plugins — this is the macOS "no LLM setup" version.)

Requirements

Install with Homebrew:

@grantvanhorn
grantvanhorn / tmux.conf
Last active July 28, 2026 20:02
[macOS] tmux config (rounded pill status bar w/ sysctl+top metrics, TPM/resurrect/continuum) — ~/.config/tmux/tmux.conf
# =============================================================================
# tmux configuration — macOS
# =============================================================================
# REQUIREMENTS (install with Homebrew — https://brew.sh):
# brew install tmux git
# brew install --cask font-roboto-mono-nerd-font # or any Nerd Font
# - tmux 3.5+ (Homebrew's is current) — needed for extended-keys + status-format.
# - A Nerd Font in your TERMINAL — REQUIRED for the status-bar glyphs (rounded
# pill separators + the CPU/RAM icons). tmux just draws whatever glyphs the
# terminal font provides, so set your terminal (e.g. Ghostty) to a Nerd Font.
@grantvanhorn
grantvanhorn / ghostty-config
Last active July 28, 2026 20:02
[macOS] Ghostty terminal config — install to ~/.config/ghostty/config
# =============================================================================
# Ghostty terminal configuration — macOS
# =============================================================================
# REQUIREMENTS (install with Homebrew — https://brew.sh):
# brew install --cask ghostty
# brew install --cask font-roboto-mono-nerd-font # RobotoMono Nerd Font (REQUIRED)
#
# Without the Nerd Font, glyphs render as boxes. To use a different font,
# change the font-family line below (list installed faces: `ghostty +list-fonts`).
# =============================================================================
@grantvanhorn
grantvanhorn / extensions.md
Last active January 31, 2022 22:02
extensions

Atom Keymap

Docker

ESLint

file-icons

One Dark Pro

Path Intellisense

Toggle Quotes

vscode-styled-components

@grantvanhorn
grantvanhorn / settings.json
Created January 31, 2022 21:50
VSCode Settings
{
"atomKeymap.promptV3Features": true,
"editor.bracketPairColorization.enabled": true,
"editor.fontFamily": "DroidSansMono Nerd Font, Menlo, Monaco, 'Courier New', monospace",
"editor.fontSize": 16,
"editor.formatOnPaste": true,
"editor.guides.bracketPairs": "active",
"editor.letterSpacing": 0.6,
"editor.lineHeight": 26,
"editor.minimap.enabled": false,
@grantvanhorn
grantvanhorn / .zshrc
Created March 27, 2021 21:29
my zsh config
setopt PROMPT_SUBST
autoload -Uz vcs_info
alias updatezsh='source ~/.zshrc'
alias l='colorls --group-directories-first --almost-all'
alias ll='colorls --group-directories-first --almost-all --long'
source $(dirname $(gem which colorls))/tab_complete.sh
## Uses the zsh precmd function hook to set the tab title to the current working directory before each prompt
function precmd() {
window_title="\\033]0;${PWD##*/}\\007"
@grantvanhorn
grantvanhorn / .hyper.js
Last active April 3, 2022 01:26
.hyper.js
// Future versions of Hyper may add additional config options,
// which will not automatically be merged into this file.
// See https://hyper.is#cfg for all currently supported options.
module.exports = {
config: {
// When a new tab is opened, use the user root as the CWD.
preserveCWD: false,
// choose either `'stable'` for receiving highly polished,