Files
absolute-dotfiles/README.md
David Ibia 6765629154 docs(README.md): update repository name and description for dotfiles, provide
comprehensive overview of configurations and installation instructions
2025-11-09 14:15:59 +01:00

224 lines
6.5 KiB
Markdown

# Dotfiles
A comprehensive collection of configuration files for macOS development environment, featuring Neovim, terminal emulators, shell configurations, and development tools.
## Table of Contents
- [Overview](#overview)
- [Features](#features)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Components](#components)
- [Configuration](#configuration)
- [Customization](#customization)
- [Troubleshooting](#troubleshooting)
- [Contributing](#contributing)
- [License](#license)
## Overview
This repository contains personal dotfiles for configuring a complete development environment on macOS. These configurations emphasize productivity, aesthetics, and developer experience with carefully curated settings for various tools and applications.
## Features
- **Neovim Configuration**: Extensive Lua-based configuration with LSP support, debugging, and productivity plugins
- **Terminal Emulators**: Configurations for Ghostty and WezTerm with custom themes and shaders
- **Shell Environment**: Optimized Zsh configuration with useful aliases and functions
- **Window Management**: AeroSpace tiling window manager configuration
- **Development Tools**: Pre-configured settings for Git, tmux, and various language servers
- **AI Integration**: Built-in configurations for Claude and other AI coding assistants
## Prerequisites
Before installing these dotfiles, ensure you have the following:
- **Operating System**: macOS (Darwin platform)
- **Package Manager**: [Homebrew](https://brew.sh/) installed
- **Shell**: Zsh (default on modern macOS)
- **Git**: Version control system
- **Node.js**: Required for many Neovim plugins
- **Python**: Required for certain development tools
## Installation
### Quick Start
**Warning**: These dotfiles are personalized configurations. Review the code and understand what each configuration does before applying them to your system. Fork this repository first and modify according to your needs.
1. **Clone the repository**:
```bash
git clone https://github.com/yourusername/dotfiles.git ~/dotfiles
cd ~/dotfiles
```
2. **Run the setup script**:
```bash
./setup-mac.sh
```
3. **Create symbolic links** (if not handled by setup script):
```bash
ln -s ~/dotfiles/.config ~/.config
ln -s ~/dotfiles/.zshrc ~/.zshrc
ln -s ~/dotfiles/.tmux.conf ~/.tmux.conf
ln -s ~/dotfiles/.aerospace.toml ~/.aerospace.toml
```
### Manual Installation
For more control over the installation process, you can manually symlink specific configurations:
```bash
# Neovim
ln -s ~/dotfiles/.config/nvim ~/.config/nvim
# Terminal configurations
ln -s ~/dotfiles/.config/ghostty ~/.config/ghostty
ln -s ~/dotfiles/.config/wezterm ~/.config/wezterm
# Shell configurations
ln -s ~/dotfiles/.zshrc ~/.zshrc
```
## Components
### Neovim Configuration (`.config/nvim/`)
- **Core Configuration**: Modular Lua-based setup with lazy loading
- **LSP Support**: Pre-configured language servers via Mason
- **Plugin Management**: Lazy.nvim for efficient plugin loading
- **Key Mappings**: Intuitive and efficient keyboard shortcuts
- **Themes**: Multiple colorschemes including Catppuccin, Tokyo Night, and Rose Pine
Key features:
- AI-powered coding assistance (Claude, Copilot)
- Advanced Git integration
- Flutter and mobile development support
- Python environment management
- Integrated debugging (DAP)
- File tree navigation
- Fuzzy finding with Telescope
- Terminal integration
### Terminal Emulators
#### Ghostty (`.config/ghostty/`)
- Custom shaders for visual effects (CRT, bloom, glow)
- Optimized colorscheme
- Performance-focused configuration
#### WezTerm (`.config/wezterm/`)
- Lua-based configuration
- Custom key bindings
- Multiplexer features
### Shell Configuration (`.zshrc`)
- Optimized PATH management
- Custom aliases and functions
- Integration with development tools
- Environment variable management
- Prompt customization with Starship
### Window Management (`.aerospace.toml`)
- Tiling window manager configuration
- Custom workspace layouts
- Application-specific rules
- Keyboard-driven workflow
### Development Tools
- **tmux** (`.tmux.conf`): Terminal multiplexer configuration
- **Git**: Global gitignore patterns
- **Starship** (`starship.toml`): Cross-shell prompt
- **Oh My Posh** (`.config/ohmyposh/`): Terminal prompt themes
- **Zellij** (`.config/zellij/`): Modern terminal workspace
### AI and Coding Assistants
- **OpenCode** (`.config/opencode/`): Agent configurations for various development tasks
- **Claude integration**: Built into Neovim configuration
- **Copilot support**: GitHub Copilot integration
## Configuration
### Environment Variables
The setup uses `.env` and `.envrc` files for environment-specific configurations. Copy the example files and modify as needed:
```bash
cp .env.example .env
cp .envrc.example .envrc
```
### Local Binaries
Custom scripts and binaries are stored in `.local/bin/`. Ensure this directory is in your PATH:
```bash
export PATH="$HOME/dotfiles/.local/bin:$PATH"
```
## Customization
### Adding Custom Configurations
1. **Neovim Plugins**: Add new plugins in `.config/nvim/lua/absolute/plugins/`
2. **Shell Aliases**: Modify `.zshrc` to add custom aliases
3. **Git Configuration**: Update `.gitignore` for global ignore patterns
### Theme Customization
Current theme configuration is managed in `.config/nvim/lua/current-theme.lua`. Modify this file to change the active colorscheme across Neovim.
## Troubleshooting
### Common Issues
1. **Neovim plugins not loading**:
```bash
nvim --headless "+Lazy! sync" +qa
```
2. **LSP servers not working**:
```bash
nvim
:Mason
```
3. **Shell configuration not loading**:
```bash
source ~/.zshrc
```
### Debug Mode
For debugging Neovim configuration issues:
```bash
nvim -V10nvim.log
```
## Contributing
Contributions are welcome! If you have improvements or bug fixes:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/improvement`)
3. Commit your changes (`git commit -am 'Add new feature'`)
4. Push to the branch (`git push origin feature/improvement`)
5. Open a Pull Request
## License
This project is open source and available under the MIT License. See individual tool configurations for their respective licenses.
## Acknowledgments
- [Absolute VIM](https://github.com/boxpositron/absolute-vim) - Previous Vim configuration
- The open-source community for the amazing tools and plugins
- Contributors and users who provide feedback and improvements
## Support
For questions, issues, or suggestions, please open an issue on the GitHub repository.