A carefully curated collection of configuration files for a modern macOS terminal-first development environment. Every tool has been chosen deliberately — fast, keyboard-driven, and beautiful by default. One script bootstraps the entire setup, from installing Homebrew packages to symlinking configs and changing the default shell.
git clone https://github.com/blandev/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x install.sh
./install.shAfter the script finishes:
- Restart your terminal to load the fish config
- Run
:Copilot authinside Neovim to authenticate GitHub Copilot - Run
atuin login && atuin syncto pull your shell history (optional)
→ See Installation for flags and full details.
✦ What's in the box
| Tool | Role | Highlights |
|---|---|---|
| Ghostty | Terminal emulator | Frosted glass background, dual dark/light themes, native split panes, Dank Mono font |
| Fish | Shell | Vi key bindings, curated aliases, smart tab completion out of the box |
| Zellij | Terminal multiplexer | Persistent sessions, custom pane/tab keybindings, floating panes |
| Starship | Prompt | Fast, context-aware, shows git, language runtime, and more at a glance |
| Tool | Role | Highlights |
|---|---|---|
| fzf | Fuzzy finder | Wired into the fish shell for history, file, and process searching |
| zoxide | Smart cd |
Remembers your most visited directories and jumps to them instantly |
| Atuin | Shell history | Encrypted, synced history across machines with fuzzy search and statistics |
| Carapace | Completions | Multi-shell completion for hundreds of CLI tools |
| Ranger | File manager | Vim-inspired TUI file browser with image preview support |
| Posting | HTTP client | Terminal-based alternative to Postman — great for API development |
| Tool | Replaces | Aliases |
|---|---|---|
| eza | ls |
ls → icons + colors · ll → long view with git status · tree → directory tree |
| bat | cat |
cat → syntax-highlighted output with line numbers |
| Tool | Role | Highlights |
|---|---|---|
| Neovim + LazyVim | Code editor | Full IDE experience: LSP, completions, Copilot, CodeCompanion, fuzzy search, git integration |
| Lazygit | Git TUI | Integrated inside Neovim — stage hunks, rebase, resolve conflicts visually |
| Tool | Role | Highlights |
|---|---|---|
| btop | Process monitor | Beautiful real-time resource monitor with responsive UI |
| Tool | Role |
|---|---|
| pyenv | Python version manager |
| Node.js | JavaScript runtime (LSP servers, Copilot, Angular) |
| pipx | Isolated Python CLI tool installer (used for Posting) |
🎨 Ghostty Themes
The terminal ships with two hand-tuned color palettes that auto-switch with macOS's system appearance:
- Dark — deep charcoal background (
#121212) with a cyberpunk accent palette: neon green (#1bfd9c) and electric pink (#ba0959) - Light — clean off-white (
#f5f5f5) with a grayscale palette, frosted glass at 70% opacity
Both themes use Dank Mono as the primary font (see manual steps below). Ghostty falls back to JetBrainsMono Nerd Font automatically if Dank Mono is not installed.
🐟 Fish Aliases
Modern CLI replacements
| Alias | Command |
|---|---|
| ls | eza --icons --group-directories-first |
| ll | eza -lh --icons --git |
| tree | eza --tree |
| cat | bat |
Git shortcuts
| Alias | Command |
|---|---|
| gs | git status |
| ga | git add . |
| gc | git commit -m |
| gp | git push |
| gl | git pull |
| gco | git checkout |
| gb | git branch |
Java / Spring Boot
| Alias | Command |
|---|---|
| mc | mvn clean compile |
| mrun | mvn spring-boot:run |
| mci | mvn clean install -U |
| mcr | mvn clean compile && mvn spring-boot:run |
Angular
| Alias | Command |
|---|---|
| ngs | ng serve |
| ngt | ng test |
| ngb | ng build |
📁 Repository Structure
dotfiles/
├── fish/ # Fish shell — config, variables, functions
├── nvim/ # Neovim — LazyVim-based setup with Node.js config
├── ghostty/ # Ghostty terminal — config + dark/light themes
├── zellij/ # Zellij — keybindings and custom layouts
├── atuin/ # Atuin — history sync settings
├── btop/ # btop — color theme and layout preferences
├── ranger/ # Ranger — rc.conf and plugins
├── posting/ # Posting — TUI HTTP client config (Hypernova theme)
├── git/ # Global gitignore
├── wallpapers/ # 21 curated wallpapers (installed to ~/Pictures/Wallpapers)
├── starship.toml # Starship prompt configuration
├── .gitconfig # Git identity and global settings
└── install.sh # One-shot installer script
Important
macOS only. The script will refuse to run on Linux or Windows.
git clone https://github.com/blandev/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x install.sh
./install.shThe installer will:
- ✅ Verify macOS and install / update Homebrew
- ✅ Install all CLI packages and cask apps listed in the script
- ✅ Create symlinks from
~/.config/*to this repo (backing up any existing configs) - ✅ Copy wallpapers to
~/Pictures/Wallpapers - ✅ Set fish as the default shell
- ✅ Run a headless Neovim plugin sync via lazy.nvim
./install.sh --skip-packages # Skip Homebrew installs (symlinks & shell only)
./install.sh --skip-shell # Skip changing the default shellTip
Existing configs are never deleted — they are backed up to ~/.dotfiles_backup/<timestamp>/ before being replaced.
🔧 Manual Steps
After running the installer, a few things require manual authentication or configuration:
| Step | Command | Notes |
|---|---|---|
| Font | — | Purchase Dank Mono at dank.sh and install it. Ghostty falls back to JetBrainsMono Nerd Font in the meantime. |
| Restart terminal | — | Open a new terminal window to load the fish config |
| GitHub Copilot | :Copilot auth (inside Neovim) |
Authenticate with your GitHub account |
| CodeCompanion | :CodeCompanion auth (inside Neovim) |
If required by your setup |
| Atuin history sync | atuin login then atuin sync |
Log in to pull cross-machine history |
| Python | pyenv install 3.12 then pyenv global 3.12 |
Install and set a global Python version |
Una colección cuidadosamente curada de archivos de configuración para un entorno de desarrollo moderno en macOS, centrado en la terminal. Cada herramienta fue elegida con intención: rápida, manejada por teclado y hermosa por defecto. Un solo script bootstrapea toda la configuración: instala paquetes con Homebrew, crea los symlinks y cambia el shell predeterminado.
git clone https://github.com/blandev/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x install.sh
./install.shTras finalizar el script:
- Reinicia la terminal para cargar la config de fish
- Ejecuta
:Copilot authdentro de Neovim para autenticar GitHub Copilot - Ejecuta
atuin login && atuin syncpara sincronizar el historial (opcional)
→ Ver Instalación para flags y más detalles.
✦ ¿Qué incluye?
| Herramienta | Rol | Destacado |
|---|---|---|
| Ghostty | Emulador de terminal | Fondo con efecto de vidrio esmerilado, temas dark/light automáticos, paneles divididos nativos, fuente Dank Mono |
| Fish | Shell | Atajos de teclado en modo Vi, alias curados, autocompletado inteligente sin configuración |
| Zellij | Multiplexor de terminal | Sesiones persistentes, atajos personalizados de paneles y pestañas, paneles flotantes |
| Starship | Prompt | Rápido y contextual: muestra git, versiones de lenguaje y más de un vistazo |
| Herramienta | Rol | Destacado |
|---|---|---|
| fzf | Buscador difuso | Integrado en Fish para buscar historial, archivos y procesos |
| zoxide | cd inteligente |
Recuerda los directorios más visitados y salta a ellos al instante |
| Atuin | Historial de shell | Historial encriptado y sincronizado entre máquinas, con búsqueda difusa y estadísticas |
| Carapace | Autocompletado | Completado multi-shell para cientos de herramientas CLI |
| Ranger | Gestor de archivos | Navegador de archivos TUI inspirado en Vim con soporte de vista previa de imágenes |
| Posting | Cliente HTTP | Alternativa en terminal a Postman — ideal para desarrollo de APIs |
| Herramienta | Reemplaza | Alias |
|---|---|---|
| eza | ls |
ls → íconos + colores · ll → vista larga con estado de git · tree → árbol de directorios |
| bat | cat |
cat → salida con resaltado de sintaxis y números de línea |
| Herramienta | Rol | Destacado |
|---|---|---|
| Neovim + LazyVim | Editor de código | Experiencia de IDE completa: LSP, autocompletado, Copilot, CodeCompanion, búsqueda difusa, git integrado |
| Lazygit | Git TUI | Integrado en Neovim — staging por hunks, rebase, resolución de conflictos de forma visual |
| Herramienta | Rol | Destacado |
|---|---|---|
| btop | Monitor de procesos | Monitor de recursos en tiempo real con interfaz hermosa y responsiva |
| Herramienta | Rol |
|---|---|
| pyenv | Gestor de versiones de Python |
| Node.js | Runtime de JavaScript (servidores LSP, Copilot, Angular) |
| pipx | Instalador de herramientas Python aisladas (usado para Posting) |
🎨 Temas de Ghostty
La terminal incluye dos paletas de colores ajustadas a mano que cambian automáticamente con la apariencia del sistema macOS:
- Oscuro — fondo carbón profundo (
#121212) con paleta de acentos cyberpunk: verde neón (#1bfd9c) y rosa eléctrico (#ba0959) - Claro — blanco roto limpio (
#f5f5f5) con paleta en escala de grises, vidrio esmerilado al 70% de opacidad
Ambos temas usan Dank Mono como fuente principal (ver pasos manuales). Ghostty recurre automáticamente a JetBrainsMono Nerd Font si Dank Mono no está instalada.
🐟 Alias de Fish
Reemplazos modernos de CLI
| Alias | Comando |
|---|---|
| ls | eza --icons --group-directories-first |
| ll | eza -lh --icons --git |
| tree | eza --tree |
| cat | bat |
Atajos de git
| Alias | Comando |
|---|---|
| gs | git status |
| ga | git add . |
| gc | git commit -m |
| gp | git push |
| gl | git pull |
| gco | git checkout |
| gb | git branch |
Java / Spring Boot
| Alias | Comando |
|---|---|
| mc | mvn clean compile |
| mrun | mvn spring-boot:run |
| mci | mvn clean install -U |
| mcr | mvn clean compile && mvn spring-boot:run |
Angular
| Alias | Comando |
|---|---|
| ngs | ng serve |
| ngt | ng test |
| ngb | ng build |
📁 Estructura del Repositorio
dotfiles/
├── fish/ # Fish shell — config, variables y funciones
├── nvim/ # Neovim — configuración basada en LazyVim con soporte de Node.js
├── ghostty/ # Ghostty — configuración + temas dark/light
├── zellij/ # Zellij — atajos y layouts personalizados
├── atuin/ # Atuin — configuración de sincronización de historial
├── btop/ # btop — preferencias de tema y layout
├── ranger/ # Ranger — rc.conf y plugins
├── posting/ # Posting — config del cliente HTTP TUI (tema Hypernova)
├── git/ # Gitignore global
├── wallpapers/ # 21 fondos de pantalla curados (se instalan en ~/Pictures/Wallpapers)
├── starship.toml # Configuración del prompt Starship
├── .gitconfig # Identidad de git y configuración global
└── install.sh # Script de instalación en un solo comando
Important
macOS only. El script rechazará ejecutarse en Linux o Windows.
git clone https://github.com/blandev/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x install.sh
./install.shEl instalador:
- ✅ Verifica macOS e instala / actualiza Homebrew
- ✅ Instala todos los paquetes CLI y apps cask listados en el script
- ✅ Crea symlinks desde
~/.config/*hacia este repositorio (haciendo backup de configs existentes) - ✅ Copia los fondos de pantalla a
~/Pictures/Wallpapers - ✅ Establece fish como el shell predeterminado
- ✅ Ejecuta una sincronización de plugins de Neovim en modo headless con lazy.nvim
./install.sh --skip-packages # Omite instalaciones de Homebrew (solo symlinks y shell)
./install.sh --skip-shell # Omite el cambio de shell predeterminadoTip
Los configs existentes nunca se eliminan — se respaldan en ~/.dotfiles_backup/<timestamp>/ antes de ser reemplazados.
🔧 Pasos Manuales
Después de ejecutar el instalador, algunos elementos requieren autenticación o configuración manual:
| Paso | Comando | Notas |
|---|---|---|
| Fuente | — | Compra Dank Mono en dank.sh e instálala. Ghostty usará JetBrainsMono Nerd Font mientras tanto. |
| Reiniciar la terminal | — | Abre una nueva ventana de terminal para cargar la config de fish |
| GitHub Copilot | :Copilot auth (dentro de Neovim) |
Autentícate con tu cuenta de GitHub |
| CodeCompanion | :CodeCompanion auth (dentro de Neovim) |
Si tu configuración lo requiere |
| Sincronizar historial con Atuin | atuin login y luego atuin sync |
Inicia sesión para importar el historial entre máquinas |
| Python | pyenv install 3.12 y luego pyenv global 3.12 |
Instala y establece una versión global de Python |
