A modern, minimal development environment focused on productivity and aesthetics. These dotfiles provide a complete setup for software development with carefully chosen tools and configurations.
- Neovim - Modern text editor with LSP support (HEAD version)
- Ghostty - GPU-accelerated terminal emulator (tip version)
- Elvish - Expressive programming language and versatile interactive shell
- Starship - Cross-shell prompt
- Homebrew - Package manager for macOS
- Operating System: macOS (primary target)
- Package Management: Homebrew with
.Brewfile
for reproducible setups - Dotfile Management: GNU Stow for symlink management
- Python Tooling: UV for fast package management and tool installation
- LSP Support: Python (Pyright, Ruff, Ty), Lua, C/C++ (Clangd), Rust (rust-analyzer)
- Completion: Blink.cmp with intelligent suggestions and LSP integration
- File Management: Mini.files for directory browsing and FFF for fuzzy finding
- Picker/Finder: Snacks.nvim picker for files, buffers, and project navigation
- Git Integration: Gitsigns, Lazygit integration via Snacks
- Theme: Jellybeans-mono with transparency support
- Formatting: Conform.nvim with Stylua (Lua) and Ruff (Python)
- Text Objects: Tree-sitter text objects for enhanced code navigation
- Git: Configured with sensible defaults and comprehensive global ignore patterns
- Python: Ruff for linting/formatting, Pyright and Ty for type checking
- Lua: Stylua formatting with consistent 2-space indentation
- Rust: rust-analyzer with cargo workspace support
- Version Control: Extensive gitignore templates for multiple languages and frameworks
The configuration uses the Jellybeans-mono theme throughout:
- Dark background (
#282828
) with warm, muted colors - Jellybeans color palette with excellent readability
- Berkeley Mono font for crisp text rendering
- Transparent backgrounds where supported
- Consistent theming across terminal and editor
This setup is designed for macOS and uses Homebrew as the package manager. You'll need:
- macOS (tested on recent versions)
- Homebrew - Install with:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Clone the repository:
git clone https://github.com/ghosttino/dotfiles.git ~/dotfiles cd ~/dotfiles
-
Install all dependencies via Homebrew:
brew bundle install --file=.Brewfile
This will install everything from the
.Brewfile
:- Terminal & Shell:
ghostty@tip
,starship
,zoxide
- Editor:
neovim
(HEAD version for latest features) - Development tools:
git
,stow
,fzf
,lazygit
,tree-sitter
- Language servers:
lua-language-server
,pyright
- Formatters:
stylua
- Python tooling:
uv
(modern pip and package manager replacement)
- Terminal & Shell:
-
Apply configurations with Stow:
stow .
-
Install Python tools with uv:
# Install ruff for Python linting/formatting uv tool install ruff # Optional: Install additional Python type checker uv tool install ty
-
Switch to Elvish shell (if desired):
# Add elvish to allowed shells echo $(which elvish) | sudo tee -a /etc/shells # Change your default shell chsh -s $(which elvish)
-
Restart your terminal and enjoy your new development environment!
.
βββ .Brewfile # Homebrew dependencies
βββ .config/
β βββ elvish/ # Elvish shell configuration
β β βββ rc.elv # Main shell config with aliases
β βββ ghostty/ # Terminal emulator config and themes
β β βββ config # Main Ghostty configuration
β β βββ themes/ # Custom color themes
β βββ nvim/ # Neovim configuration
β β βββ lua/ # Lua configuration files
β β β βββ core/ # Core settings and LSP config
β β β βββ plugins/ # Plugin configurations
β β βββ lsp/ # Language server configs
β β βββ init.lua # Main config entry point
β βββ starship.toml # Prompt configuration
βββ .gitconfig # Git user and core settings
βββ .gitignore # Local repository ignore patterns
βββ .gitignore_global # Global git ignore patterns
βββ .stowrc # Stow configuration
βββ .stylua.toml # Lua formatter config
- Smart aliases:
v
(nvim),lg
(lazygit),lsa
(ls -la) - Enhanced navigation: Zoxide integration for smart directory jumping
- Starship prompt: Beautiful, informative command prompt
- Leader key:
Ctrl+a
(tmux-style) - Window management:
Ctrl+a n
(new),Ctrl+a x
(close),Ctrl+a t
(new tab) - Splits:
Ctrl+a /
(right),Ctrl+a -
(down) - Navigation:
Ctrl+a h/j/k/l
(vim-style movement between splits) - Tab navigation:
Ctrl+a ]
(next),Ctrl+a [
(previous)
- Leader key:
Space
- File operations:
Space Space
- FFF fuzzy file finderSpace ,
- Buffer pickerSpace fr
- Recent filesSpace fc
- Find config files
- Git operations:
Space gg
- LazygitSpace gb
- Git branchesSpace gs
- Git statusSpace gl
- Git log
- Search & navigation:
Space /
- Live grepSpace sb
- Search buffer linesSpace sw
- Search word under cursor
- File management:
-
(Mini.files file browser) - Formatting:
Space ff
orSpace ss
(format current file) - Window management:
ss
(horizontal split),sv
(vertical split)
gd
- Go to definitiongD
- Go to declarationgs
- Show signature help- Automatic diagnostics and error highlighting
- Format on save with language-specific formatters
- LSP: Pyright for type checking, Ruff for linting
- Formatting: Ruff (import sorting, code formatting, linting fixes)
- Type Checking: Optional Ty language server for additional type analysis
- LSP: lua-language-server with Neovim-specific configuration
- Formatting: Stylua with 2-space indentation
- LSP: rust-analyzer with full cargo integration
- Features: Macro expansion, cargo workspace reloading
- LSP: Clangd with background indexing
- Project Support: compile_commands.json and compile_flags.txt
- Neovim: Modify
.config/nvim/lua/plugins/jellybeans.lua
- Ghostty: Switch between themes in
.config/ghostty/themes/
or change thetheme
setting in config
- Add to
.Brewfile
for Homebrew-managed tools - Run
brew bundle install
to install new dependencies - Add configuration files as needed
- Add LSP config in
.config/nvim/lsp/[language].lua
- Enable in
.config/nvim/lua/core/lsp.lua
- Add formatter in
.config/nvim/lua/plugins/conform.lua
- Install language server via Homebrew (add to
.Brewfile
)
Modify .config/elvish/rc.elv
for shell functions, aliases, and environment setup.
Keep everything up to date with:
brew bundle install # Install any new dependencies
brew upgrade # Update existing packages
- Uses Neovim's built-in
vim.pack
for plugin management - Automatic plugin updates with
Space U
- Lazy loading where beneficial
- Context-aware completions with LSP integration
- File path completions with appropriate icons
- Snippet support and documentation previews
- Visual git status in buffers with Gitsigns
- Full Lazygit integration for complex git operations
- Git browsing and project navigation via Snacks
- Fuzzy finding for files, buffers, and project content
- Tree-sitter powered text objects for precise code selection
- Smart directory jumping with Zoxide
Feel free to:
- Open issues for questions or suggestions
- Submit pull requests for improvements
- Share your customizations and forks
These dotfiles are available under the MIT License. Feel free to use and modify as needed.
Built with β€οΈ for productive development