Skip to content

Repository files navigation

🏠 Dotfiles

A comprehensive, AI-enhanced development environment designed for polyglot developers working with multiple projects simultaneously.

✨ Features

  • 🧠 AI-First Development: Deep integration with Claude, GitHub Copilot, and multiple LLM providers
  • πŸš€ Project Management: Custom Hubworld system for seamless project switching with worktree management
  • ⚑ Automation: Extensive shell functions and scripts for common development workflows
  • 🎨 Unified Theming: Gruvbox/Gruvbox Material theme across all tools
  • πŸ”§ Modern Toolchain: Neovim, Tmux, Zsh, Raycast, and cutting-edge development tools
  • πŸ“± macOS Integration: Custom Raycast extensions and native macOS workflow optimization

πŸ› οΈ Core Tools

Development Environment

  • Neovim - Highly customized editor with extensive plugin ecosystem
  • Zed Editor - Modern editor with AI integration and custom MCP servers
  • Tmux - Terminal multiplexer with session management via Tmuxinator
  • Zsh - Enhanced shell with Oh My Zsh and custom functions

AI & Language Models

macOS Integration

Terminal & Shell Enhancement

  • Starship - Modern shell prompt with Gruvbox theme
  • Ghostty - Terminal emulator with custom theming
  • Btop - System resource monitor

πŸš€ Installation

Prerequisites

  • macOS (primary target)
  • Xcode Command Line Tools
  • Homebrew

Quick Start

# Clone the repository
git clone https://github.com/SheltonTolbert/dot-files.git ~/.dotfiles

# Install dependencies and create symlinks
~/.dotfiles/install

The install script will:

  • Install Xcode Command Line Tools
  • Install Homebrew packages and casks
  • Download and install Nerd Fonts
  • Set up Oh My Zsh
  • Install Tmux Plugin Manager
  • Install Vim-Plug for Neovim
  • Create symbolic links for all configuration files

Manual Steps

After installation, you'll need to:

  1. Set your terminal font to "Hack Nerd Font" or similar
  2. Install Tmux plugins: prefix + I in Tmux
  3. Install Neovim plugins: :PlugInstall in Neovim
  4. Configure your API keys in ~/.zsh_api_keys

πŸ”„ Updating

# Update symlinks without reinstalling dependencies
~/.dotfiles/update

πŸ—οΈ Configuration Structure

src/
β”œβ”€β”€ .config/
β”‚   β”œβ”€β”€ nvim/              # Neovim configuration
β”‚   β”‚   β”œβ”€β”€ lua/
β”‚   β”‚   β”‚   β”œβ”€β”€ config/    # Core configurations
β”‚   β”‚   β”‚   β”œβ”€β”€ lsp/       # Language server configs
β”‚   β”‚   β”‚   └── plugins/   # Plugin configurations
β”‚   β”‚   └── init.vim       # Entry point
β”‚   β”œβ”€β”€ zsh/               # Zsh configuration
β”‚   β”‚   β”œβ”€β”€ .zsh_config    # Oh My Zsh setup
β”‚   β”‚   β”œβ”€β”€ .zsh_aliases   # Custom aliases
β”‚   β”‚   └── .zsh_functions # Advanced functions
β”‚   β”œβ”€β”€ tmuxinator/        # Tmux session templates
β”‚   β”œβ”€β”€ raycast/           # Custom Raycast extensions
β”‚   β”œβ”€β”€ hubworld/          # Project management system
β”‚   └── worktree/          # Git worktree management
β”œβ”€β”€ .zshrc                 # Shell configuration
β”œβ”€β”€ .tmux.conf             # Tmux configuration
β”œβ”€β”€ .aerospace.toml        # Window manager config
β”œβ”€β”€ .gitconfig             # Git configuration
└── .gitignore             # Global Git ignore

🎯 Key Features

Hubworld Project Management

Custom Neovim plugin for managing multiple projects:

  • Project Switching: Seamless navigation between projects with state preservation
  • Git Worktree Integration: Automatic worktree management for parallel development
  • Notes System: Branch-specific note-taking with automatic organization
  • Telescope Integration: Fuzzy finding across projects and notes

AI-Enhanced Workflows

  • Code Review: Automated Claude-powered code review with custom hooks
  • Commit Messages: AI-generated commit messages based on diff analysis
  • Documentation: Automated documentation generation and updates
  • Debugging: AI-assisted debugging and error resolution

Advanced Shell Functions

  • Jira Integration: Create branches from tickets, manage sprint issues
  • Worktree Management: Register, create, and navigate git worktrees
  • Project Automation: Automated project setup and configuration
  • Development Workflows: Streamlined testing, building, and deployment

Custom Raycast Extensions

  • Spotify Control: Full Spotify integration with playback control
  • Aerospace Window Management: Custom window switching and management
  • Slack Integration: Message search and management
  • System Monitoring: Process management and system utilities

⌨️ Key Bindings

Aerospace (Window Management)

  • Alt + H/J/K/L - Navigate windows
  • Alt + Shift + H/J/K/L - Move windows
  • Alt + / - Toggle horizontal/vertical layout
  • Alt + , - Toggle accordion layout
  • Alt + Shift + ; - Enter service mode

Tmux

  • Prefix + H/J/K/L - Navigate panes
  • Prefix + C-H/J/K/L - Navigate with vim awareness
  • Prefix + F - FZF session switcher
  • Prefix + U - URL opener
  • Prefix + B - Session switcher

Neovim (Custom Mappings)

  • <Leader>ff - Find files with Telescope
  • <Leader>fg - Live grep with Telescope
  • <Leader>fb - Buffer switcher
  • <Leader>fh - Help tags
  • <Leader>pp - Project switcher (Hubworld)
  • <Leader>pn - Project notes (Hubworld)

πŸ”§ Language Support

Language Servers

  • TypeScript/JavaScript: typescript-language-server
  • Python: pyright
  • Go: gopls
  • Elixir: lexical
  • Rust: rust-analyzer
  • Lua: lua-language-server
  • JSON/CSS/HTML: vscode-langservers-extracted

Development Tools

  • Testing: Neotest framework with language-specific adapters
  • Formatting: Prettier, Black, gofmt, mix format
  • Linting: ESLint, Credo, golangci-lint
  • Debugging: DAP (Debug Adapter Protocol) support

πŸ“¦ Dependencies

Homebrew Packages

brew install lua ripgrep btop git-delta tmux nvim node
brew install --cask raycast font-hack-nerd-font nikitabobko/tap/aerospace

Node.js Packages

npm install -g vscode-langservers-extracted typescript typescript-language-server

Additional Tools

🎨 Theming

The entire environment uses a cohesive Gruvbox/Gruvbox Material theme:

  • Terminal: Ghostty with Gruvbox Material Dark
  • Editor: Neovim with gruvbox-material
  • Shell: Starship with custom Gruvbox prompt
  • System Monitor: Btop with Gruvbox theme
  • UI: Consistent color scheme across all tools

🀝 Contributing

This is primarily a personal dotfiles repository, but contributions are welcome:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

πŸ“ License

MIT License - feel free to use and modify as needed.

πŸ™ Acknowledgments

  • Built with Dotbot for configuration management
  • Inspired by the Unix philosophy and modern development practices
  • Special thanks to the open-source community for the amazing tools

About

work like me

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages