A minimalist and powerful dotfiles configuration tailored for web developers and productivity enthusiasts.
This repository contains a carefully curated collection of dotfiles and configurations that provide a seamless development environment. Designed with simplicity and productivity in mind, these configurations help you set up a powerful terminal-based workflow quickly.
- 🚀 One-Command Installation: Automated setup with intelligent backup system
- 🔄 Smart Updates: Automatic git pull and configuration sync
- 💾 Safe Backup: Automatic backup of existing configs with timestamps
- 🖥️ Modern Terminal Setup: Enhanced terminal experience with Kitty terminal emulator
- 🐚 Powerful Shell Configuration: ZSH with custom aliases and functions
- ⚡ Advanced Code Editor: LunarVim configuration for efficient coding
- 🔤 Custom Fonts: High-quality programming fonts included
- 📦 Git Configuration: Optimized Git settings and global gitignore
- 🔧 Cross-Platform: Compatible with macOS (bash 3.2+) and Linux
Before installation, ensure you have the following dependencies installed:
Tool | Description | Status | Installation Link |
---|---|---|---|
Git | Version control system | Required | Install Guide |
Kitty | Modern, feature-rich terminal emulator | Recommended | Install Guide |
Oh My Zsh | Framework for managing Zsh configuration | Recommended | Install Guide |
LunarVim | IDE layer for Neovim with sane defaults | Optional | Install Guide |
Powerlevel10k | Fast and customizable Zsh theme | Optional | Install Guide |
Open your terminal and run this single command:
bash <(curl -s https://raw.githubusercontent.com/al0xd/dotfiles/master/install.sh)
If you prefer to install manually or want more control over the process:
# Clone the repository
git clone https://github.com/al0xd/dotfiles.git ~/dotfiles
# Navigate to the dotfiles directory
cd ~/dotfiles
# Make install script executable
chmod +x ./install.sh
# Run the installation script
./install.sh
You can specify a custom directory for dotfiles:
# Install to custom directory
./install.sh -d /path/to/custom/dotfiles
# Or set environment variable
DOTFILES_DIR=/path/to/custom ./install.sh
The install.sh
script comes with several useful options:
# Show help information
./install.sh --help
# Install with custom dotfiles directory
./install.sh --dir /custom/path
# Short form options
./install.sh -h # Help
./install.sh -d DIR # Custom directory
- 🔍 Environment Validation: Checks for Git and required permissions
- 📦 Repository Setup: Clones repo (first time) or pulls updates (existing)
- 💾 Smart Backup: Backs up existing configs with timestamps
- 🔗 Symlink Creation: Creates symlinks to dotfiles configurations
- ✅ Verification: Validates all operations completed successfully
To update your dotfiles configuration to the latest version:
# Navigate to dotfiles directory (default location)
cd ~/dotfiles
# Run the installation script (it will auto-update)
./install.sh
The script automatically:
- Pulls latest changes from the repository
- Updates all symlinks
- Backs up any conflicting files
dotfiles/
├── 📂 fonts/ # Programming fonts collection
│ ├── ComicMono-*.ttf
│ ├── LigaComicMono-*.ttf
│ └── SFMono-*.otf
├── 📂 git/ # Git configuration files
│ ├── gitconfig # Global git configuration
│ └── gitignore # Global gitignore patterns
├── 📂 kitty/ # Kitty terminal configuration
│ └── kitty.conf # Terminal settings and themes
├── 📂 lunarvim/ # LunarVim configuration
│ └── config.lua # Neovim IDE settings
├── 📂 zsh/ # ZSH configuration and aliases
│ ├── zshrc # Main ZSH configuration
│ └── aliases.zsh # Custom shell aliases
├── 📂 img/ # Documentation assets
│ └── hero.png
├── 🔧 install.sh # Automated installation script
├── 📝 package.json # Release automation
└── 📖 README.md # This documentation
- Custom aliases for common commands
- Enhanced prompt and productivity functions
- Optimized for development workflow
- Optimized terminal settings
- Custom key bindings and shortcuts
- Modern font rendering and themes
- Global settings for optimal workflow
- Comprehensive gitignore patterns
- Aliases for common git operations
- IDE-like experience with essential plugins
- Language server configurations
- Custom key bindings and themes
- Comic Mono: Playful monospace font
- Liga Comic Mono: Comic Mono with ligatures
- SF Mono: Apple's system monospace font
- Optimized for programming and terminal use
Permission Denied:
chmod +x ./install.sh
Bash Version Issues (macOS): The script is compatible with bash 3.2+ (macOS default). No additional setup needed.
Symlink Conflicts: The script automatically backs up existing files with timestamps before creating symlinks.
Git Issues: Ensure you have Git installed and configured with your credentials.
To add new dotfiles to the installation:
- Add your config file to the appropriate directory
- Update the
DOTFILE_MAPPINGS
array ininstall.sh
:
readonly DOTFILE_MAPPINGS=(
# ... existing mappings ...
"your-config/file|$HOME/.your-config"
)
Simply edit the files in their respective directories:
zsh/zshrc
- Shell configurationgit/gitconfig
- Git settingskitty/kitty.conf
- Terminal settingslunarvim/config.lua
- Editor configuration
Contributions are welcome! Here's how you can help:
- 🍴 Fork the repository
- 🌿 Create a feature branch (
git checkout -b feature/amazing-feature
) - 💾 Commit your changes (
git commit -m 'Add amazing feature'
) - 📤 Push to the branch (
git push origin feature/amazing-feature
) - 📋 Open a Pull Request
- Follow existing code style and conventions
- Test your changes on multiple systems if possible
- Update documentation for new features
- Keep commits atomic and well-described
This project is open source and available under the MIT License.
- Alex Dinh - Creator and maintainer
Special thanks to the creators and maintainers of:
Made with ❤️ for the developer community
⭐ Star this repo if it helped you!
Questions? Issues? Ideas?Open an issue or start a discussion!