Dotfiles
Cross-platform dotfiles for macOS and Linux. 33 configs, 141 Homebrew packages, Tokyo Night everywhere, modern CLI replacements, Docker services on demand
Install / Use
/learn @gufranco/DotfilesQuality Score
Category
Development & EngineeringSupported Platforms
README
<strong>One-command development environment for macOS and Linux. 33 tool configs, consistent Tokyo Night theme, modern CLI replacements, and ready-to-go Docker services.</strong>
<br> <br> </div>33 tool configs · 141 brew packages · 57 desktop apps · 72 Nerd Fonts · 19 Tokyo Night themed tools · 60 Git aliases · 6 Docker services · 18 Claude Code skills
<table> <tr> <td width="50%" valign="top">Tokyo Night Everywhere
One color palette across 19 tools: terminals, editors, file managers, email, music, git diffs, monitoring dashboards, and fuzzy finders.
</td> <td width="50%" valign="top">Modern CLI Replacements
cat becomes bat, ls becomes eza, top becomes btm, du becomes dust. Graceful fallbacks when the modern tool is not installed.
One-Command Install
curl | bash sets up everything: Homebrew packages, symlinks, shell config, GPG keys, SSH, and language runtimes. Works on fresh macOS or Ubuntu.
Docker Services on Demand
PostgreSQL, MongoDB, Redis, Valkey, and Redict as shell functions: postgres-init, mongo-start, redis-stop. Colima as the VM, configured for Apple Silicon with Rosetta 2.
GPG-Signed Everything
Commits and tags are signed by default. GPG keys are imported automatically, SSH keys get proper permissions, and tokens are GPG-encrypted.
</td> <td width="50%" valign="top">Fast Shell Startup
Node.js, Python, and Ruby are managed by mise. Versions are defined in mise/config.toml and activated automatically in interactive shells. Per-project overrides go in a .mise.toml file in the project root.
Quick Start
Prerequisites
| Tool | Install |
|:-----|:--------|
| macOS or Ubuntu/Debian | Fresh install works |
| Git | Pre-installed on macOS, apt install git on Linux |
| curl | Pre-installed on both |
Install
curl -fsSL https://raw.githubusercontent.com/gufranco/dotfiles/master/install.sh | bash
Verify
source ~/.zshrc
bat --version # syntax-highlighted cat
eza --version # modern ls
The installer detects your OS and architecture automatically. On macOS it installs Homebrew and runs the Brewfile. On Linux it uses apt, snap, and direct downloads.
What Gets Installed
Shell
| Feature | Implementation |
|:--------|:---------------|
| Shell | Zsh with Oh My Zsh and Spaceship prompt |
| Fuzzy finder | fzf with bat preview and Tokyo Night colors |
| Tab completion | fzf-tab for fuzzy tab completion |
| Syntax highlighting | zsh-syntax-highlighting for fish-like coloring |
| Per-directory env | direnv with automatic .envrc loading |
| History | Deduplication, ignore common commands |
| GNU tools on macOS | coreutils, findutils, grep, sed, tar, make override BSD via PATH |
Modern Tool Replacements
Aliases activate only when the modern tool is installed:
| Alias | Replaces | Tool |
|:------|:---------|:-----|
| cat | cat | bat with syntax highlighting, plain output when piped |
| ls | ls | eza with icons, git status, tree view via lt |
| du | du | dust with visual tree output |
| df | df | duf with color output |
| ps | ps | procs with tree and color |
| top | top | btm (Bottom) system monitor TUI |
| ping | ping | gping with graphical output (macOS) |
| stats | - | tokei for code statistics (macOS) |
Editor
Vim with 24 plugins managed by vim-plug:
| Category | Plugins | |:---------|:--------| | Language support | coc.nvim (LSP), vim-polyglot, vim-matchup, rainbow_csv | | Navigation | fzf.vim, EasyMotion | | Git | vim-signify (hunks), vim-fugitive (commands) | | Editing | vim-surround, vim-visual-multi, vim-pasta, targets.vim, vim-unimpaired, vim-repeat | | UI | lightline, vim-devicons, undotree, vim-cool, vim-search-pulse, winresizer |
CoC extensions: TypeScript, ESLint, Prettier, CSS, JSON, Shell, snippets, import-cost.
Terminal Multiplexer
Tmux with 7 plugins and vim-style keybindings:
| Plugin | What it does | |:-------|:-------------| | Yoru Revamped | Status bar with system stats, git info, weather, network, and Tokyo Night theme | | tmux-resurrect | Save and restore sessions across reboots | | tmux-yank | Copy to system clipboard | | extrakto | Extract URLs and file paths with fzf | | tmux-session-wizard | Fuzzy session switcher | | tmux-mighty-scroll | Better scrolling in fullscreen apps | | tmux-menus | Popup context menus via F12 |
Git
60 aliases, performance-tuned config, and Tokyo Night colors for diffs, status, branches, and blame:
| Alias | Command | What it does |
|:------|:--------|:-------------|
| st | status -sb | Short status |
| lg | log --graph --decorate | Colored graph log |
| fork | checkout -q -b | Create branch |
| publish | push -u origin HEAD | Push new branch |
| force | push --force-with-lease | Safe force push |
| cleanup | merged branch delete | Remove merged branches |
| today | log --since=midnight | Today's commits |
| sw | switch | Modern branch switching |
Delta as the diff pager with line numbers, hyperlinks, and Tokyo Night syntax theme. Histogram diff algorithm, zdiff3 merge conflicts, and automatic rebase on pull.
Infrastructure
Docker development via Colima with auto-configured VM sizing:
| Service | Command | Port |
|:--------|:--------|:-----|
| PostgreSQL | postgres-init | 5432 |
| MongoDB | mongo-init | 27017 |
| Redis | redis-init | 6379 |
| Valkey | valkey-init | 7000 |
| Redict | redict-init | 6379 |
| Ubuntu | ubuntu-init | - |
Each service has -init, -start, -stop, -purge, and -terminal functions. Colima VM uses Apple's Virtualization.framework on macOS with Rosetta 2 for x86_64 container support on Apple Silicon.
Claude Code
18 custom skills for AI-assisted development:
| Skill | What it does |
|:------|:-------------|
| /commit | Semantic commits with optional --pipeline CI monitoring |
| /pr | PR creation with self-review and pipeline monitoring |
| /review | Code review following project conventions |
| /readme | Marketing-grade README generation |
| /assessment | Architecture completeness audit |
| /test | Test runner with coverage and linting |
| /checks | CI/CD status monitoring |
| /terraform | Terraform workflows with safety gates |
| /docker | Container management with Colima awareness |
Plus 17 rule files covering code style, resilience, caching, API design, testing, security, database patterns, distributed systems, observability, debugging, git workflow, verification, LLM documentation references, infrastructure, pre-flight checks, and borrow-restore patterns.
Tokyo Night Theme
All tools use the Tokyo Night "Night" variant:
| Tool | Method |
|:-----|:-------|
| Ghostty | Custom theme file |
| Kitty | Custom theme file |
| iTerm2 | .itermcolors theme file |
| Tilix | Exported color scheme |
| Bat | Theme in bat/themes/ |
| Vim | tokyonight-vim plugin |
| Tmux | Yoru Revamped plugin |
| Bottom | [styles] in bottom.toml |
| K9s | Skin file in k9s/skins/ |
| Lazygit | gui.theme in config |
| Lazydocker | Theme colors in config |
| Tealdeer | RGB values in config.toml |
| Yazi | Full theme in theme.toml |
| eza | Full theme in theme.yml |
| Mutt | Custom theme in mutt/themes/ |
| cmus | Color scheme in rc |
| fzf | FZF_DEFAULT_OPTS --color |
| nnn | NNN_FCOLORS palette |
| Git | [color] sections in .gitconfig |
System Update
Run f5 in any terminal to update everything at once:
- Pulls latest dotfiles and submodules
- Updates Vim plugins and CoC extensions
- Updates Oh My Zsh, Zsh plugins, and Tmux plugins
- Updates Node.js LTS via NVM
- On macOS: runs
brew update,brew upgrade,brew bundle, and Mac App Store updates - On Linux: runs
apt updateandapt dist-upgrade - Reloads Tmux and Zsh configs
Symlink Map
All configs are symlinked by install.sh using safe_link, which is idempotent and creates parent directories automatically.
| Source | Target |
|:-------|:-------|
| zsh/.zshrc | ~/.zshrc |
| git/.gitconfig | ~/.gitconfig |
| vim | ~/.vim |
| vim/.vimrc | ~/.vimrc |
| tmux/.tmux.conf | ~/.tmux.conf |
| tmux | ~/.tmux |
| ghostty | ~/.config/ghostty |
| kitty/kitty.conf | ~/.config/kitty/kitty.conf |
| bat/config | ~/.config/bat/config |
| eza | ~/.config/eza |
| yazi | ~/.config/yazi |
| bottom/bottom.toml | ~/.config/bottom/bottom.toml |
| lazygit/config.yml | ~/.config/lazygit/config.yml |
| lazydocker/config.yml | ~/.config/lazydocker/config.yml |
| k9s/config.yml | ~/.config/k9s/config.yml |
| k9s/skins | ~/.config/k9s/skins |
| tealdeer/config.toml | ~/.config/tealdeer/config.toml |
| htop/htoprc | ~/.config/htop/htoprc |
| gh/config.yml | ~/.config/gh/config.yml |
| glab/config.yml | ~/.config/glab-cli/config.yml |
| gnupg | ~/.gnupg |
| ssh | ~/.ssh |
| claude | ~/.claude |
| nodejs/.npmrc | ~/.npmrc |
| nodejs/.yarnrc.yml | ~/.yarnrc.yml |
| nodejs/.pnpmrc | ~/.pnpmrc |
| mutt/.muttrc | ~/.muttrc |
| mutt | ~/.mutt |
| curl/.curlrc | ~/.curlrc |
| `wget/
