Skip to content

cengebretson/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

518 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🅃🄷🄴🅁🄴 🄸🅂 🄽🄾 🄿🄻🄰🄲🄴 🄻🄸🄺🄴 ~

Neovim Ghostty Fish Shell Lazygit Superfile Mise

A curated collection of tools and configs that power my daily workflow.

🌀 Lazygit

  • A simple, fast, and powerful Git UI for the terminal.

🐟 Fish Shell

  • My interactive shell for a smooth terminal experience, with fzf wired in for fuzzy finding and bat-powered previews. See fish config for plugins, shortcuts, and custom functions.
  • Machine-local secrets live in ~/.config/fish/secrets.fish, sourced by ~/.config/fish/conf.d/local-secrets.fish. Keep token values out of dotfiles.

👻 Ghostty

  • My terminal of choice — modern, GPU-accelerated, and lightning fast.
  • Run ghostty-help for a searchable fzf picker of all Ghostty actions and their keybindings.
  • ⌘+click any file path or URL in the terminal to open it — files open in Neovide, URLs open in the default browser. Inside tmux, use ⌘+shift+click since tmux captures mouse events.

📟 Tmux

  • Terminal multiplexer with dual Catppuccin themes, custom status bar, and Neovim-friendly keybindings. See tmux config.
  • Remote phone access: drive Claude/Codex from the phone over the Moshi app (mosh + Tailscale). A responsive status bar and auto-managed grouped phone-* sessions keep the phone from reshaping the laptop view. See the Moshi section.

📝 Neovim

  • My main editor — lightweight yet powerful. See nvim-v12 for my custom 0.12 config built on the native vim.pack plugin manager.

📂 Superfile

  • A modern, terminal file manager.

🛠 Mise

  • Runtime version manager for Node, Bun, Python, uv, Go, Rust, and Lua — per-project version pinning via .mise.toml.

🤖 Claude Code

  • AI coding assistant with a custom statusline and vim mode. See claude config for the full setup.

📖 Glow

  • Terminal markdown renderer — pipe or point at any .md file for formatted output with layout and syntax highlighting.
  • Quick Look integration via qlmarkdown cask — spacebar in Finder renders markdown in place.

📺 Television

  • A fast, extensible fuzzy finder TUI for files, commands, git objects, and custom sources.

💻 Fastfetch

  • For showing off system info in style — with random ASCII art and a pacman color row.

⌨️ CLI Reference

Each config keeps its own reference, so there's a single source of truth per tool:

Area Reference
Fish shortcuts, functions & aliases fish/README.md
Tmux keybindings & status bar tmux/README.md
Neovim keymaps & features nvim-v12/README.md
Claude Code statusline & tooling claude/README.md
AI machine setup & integrations (Claude + Codex) AI-SETUP.md

🔧 Custom git commands

Any executable named git-<name> on $PATH becomes a git subcommand automatically — git resolves git release by searching its exec-path and $PATH for git-release and running it. No config or registration; it just has to be named git-<name> and be executable. A git alias of the same name would shadow it, so don't define one.

Command Location What it does
git release .local/bin/git-release Cut a release for the current repo: bump VERSION, promote the CHANGELOG.md [Unreleased] section, run the repo's tests, commit, and tag vX.Y.Z.
git release --current         # print the current version
git release minor             # 0.5.0 -> 0.6.0 (also: major, patch, or an explicit X.Y.Z)
git release minor --dry-run   # preview, change nothing
git release minor --push      # tag and push (otherwise push manually with --follow-tags)

Used across the tmux plugin repos (tmux-fzf-jump, tmux-attention, tmux-which-key), each paired with a tag-triggered GitHub release workflow. Repo-agnostic: it derives the URL from origin and auto-detects the test runner (tests/check.sh, else make test, else GIT_RELEASE_TEST_CMD).


📦 Installation

Note to future self.....

  • Run the following command — it handles everything (Xcode tools, Homebrew, dotfiles, packages, fish, mise runtimes, and macOS defaults)
curl https://raw.githubusercontent.com/cengebretson/dotfiles/master/.config/setup.sh | bash
  • Open Neovim — plugins, LSP servers, and tools all install automatically on first launch

Machine-local files

The setup script installs configs but not per-machine identity or secrets (git identity, fish secrets, Claude login). The canonical list lives in claude/CLAUDE.md under Machine-Local Files, and the step-by-step creation is in the AI-SETUP.md bootstrap.


Gallery

Screenshot 2025-10-29 at 10 59 10 PM

Inspiration

Many of the ideas for the tmux/nvim setup were inspired by discussions in the following repositories…


Last Commit

About

A curated collection of tools and configs that power my daily workflow.

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors