Skip to content

blandevv/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

header

Typing SVG


macOS Shell Editor Terminal License Version


skills


Preview



🇺🇸 English

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.


⚡ Quick Start

git clone https://github.com/blandev/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x install.sh
./install.sh

After the script finishes:

  1. Restart your terminal to load the fish config
  2. Run :Copilot auth inside Neovim to authenticate GitHub Copilot
  3. Run atuin login && atuin sync to pull your shell history (optional)

→ See Installation for flags and full details.


✦ What's in the box

🖥️ Terminal & Shell

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

⚡ Navigation & Productivity

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

🔧 Modern CLI Replacements

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

📝 Editor

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

📊 System

Tool Role Highlights
btop Process monitor Beautiful real-time resource monitor with responsive UI

🧰 Development Runtimes

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

🚀 Installation

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.sh

The installer will:

  1. ✅ Verify macOS and install / update Homebrew
  2. ✅ Install all CLI packages and cask apps listed in the script
  3. ✅ Create symlinks from ~/.config/* to this repo (backing up any existing configs)
  4. ✅ Copy wallpapers to ~/Pictures/Wallpapers
  5. ✅ Set fish as the default shell
  6. ✅ Run a headless Neovim plugin sync via lazy.nvim

Flags

./install.sh --skip-packages   # Skip Homebrew installs (symlinks & shell only)
./install.sh --skip-shell      # Skip changing the default shell

Tip

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

🇪🇸 Español

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.


⚡ Inicio Rápido

git clone https://github.com/blandev/dotfiles.git ~/dotfiles
cd ~/dotfiles
chmod +x install.sh
./install.sh

Tras finalizar el script:

  1. Reinicia la terminal para cargar la config de fish
  2. Ejecuta :Copilot auth dentro de Neovim para autenticar GitHub Copilot
  3. Ejecuta atuin login && atuin sync para sincronizar el historial (opcional)

→ Ver Instalación para flags y más detalles.


✦ ¿Qué incluye?

🖥️ Terminal y Shell

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

⚡ Navegación y Productividad

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

🔧 Reemplazos Modernos de CLI

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

📝 Editor

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

📊 Sistema

Herramienta Rol Destacado
btop Monitor de procesos Monitor de recursos en tiempo real con interfaz hermosa y responsiva

🧰 Runtimes de Desarrollo

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

🚀 Instalación

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.sh

El instalador:

  1. ✅ Verifica macOS e instala / actualiza Homebrew
  2. ✅ Instala todos los paquetes CLI y apps cask listados en el script
  3. ✅ Crea symlinks desde ~/.config/* hacia este repositorio (haciendo backup de configs existentes)
  4. ✅ Copia los fondos de pantalla a ~/Pictures/Wallpapers
  5. ✅ Establece fish como el shell predeterminado
  6. ✅ Ejecuta una sincronización de plugins de Neovim en modo headless con lazy.nvim

Flags

./install.sh --skip-packages   # Omite instalaciones de Homebrew (solo symlinks y shell)
./install.sh --skip-shell      # Omite el cambio de shell predeterminado

Tip

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

footer

About

Personal dotfiles and development environment setup

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors