Skip to the content.

Centaur Dotfiles

Centaur

Full and clean configurations for development environment on GNU Linux and macOS.

πŸ—οΈ Project Structure

dotfiles/
β”œβ”€β”€ config/              # Configuration files
β”‚   β”œβ”€β”€ .gemrc           # Ruby gem configuration
β”‚   β”œβ”€β”€ .gitconfig_*     # Platform-specific git configs
β”‚   β”œβ”€β”€ .gitconfig_global # Global git configuration
β”‚   β”œβ”€β”€ .gitignore_global # Global gitignore patterns
β”‚   β”œβ”€β”€ .markdownlintrc  # Markdown linting rules
β”‚   β”œβ”€β”€ .npmrc           # Node.js package manager config
β”‚   β”œβ”€β”€ .pip.conf        # Python package manager config
β”‚   β”œβ”€β”€ .tmux.conf.local # Tmux configuration
β”‚   β”œβ”€β”€ .vimrc           # Vim configuration
β”‚   β”œβ”€β”€ cargo.toml       # Rust package manager config
β”‚   β”œβ”€β”€ ghostty.config   # Ghostty terminal config
β”‚   └── starship.toml    # Starship prompt config
β”œβ”€β”€ scripts/             # Installation and utility scripts
β”‚   β”œβ”€β”€ install.sh       # Main installation script
β”‚   β”œβ”€β”€ common.sh        # Shared functions and variables
β”‚   β”œβ”€β”€ packages.sh      # Package installation module
β”‚   β”œβ”€β”€ dotfiles.sh      # Dotfiles setup module
β”‚   β”œβ”€β”€ install_arch.sh  # Arch Linux package installer
β”‚   β”œβ”€β”€ install_debian.sh # Debian/Ubuntu package installer
β”‚   β”œβ”€β”€ install_emacs.sh # Emacs installation script
β”‚   β”œβ”€β”€ install_font.sh  # Font installation script
β”‚   β”œβ”€β”€ install_go.sh    # Go language installer
β”‚   β”œβ”€β”€ install_scoop.ps1 # Windows Scoop installer
β”‚   └── Microsoft.PowerShell_profile.ps1 # PowerShell profile
β”œβ”€β”€ shell/               # Shell configuration files
β”‚   β”œβ”€β”€ .zshrc           # Zsh configuration
β”‚   β”œβ”€β”€ .zshenv          # Zsh environment variables
β”‚   β”œβ”€β”€ .zshrc.local     # Local zsh customizations
β”‚   β”œβ”€β”€ config.fish      # Fish shell configuration
β”‚   └── fish_plugins     # Fish plugin list
β”œβ”€β”€ LICENSE              # Project license
β”œβ”€β”€ logo.png             # Project logo
β”œβ”€β”€ Brewfile             # Homebrew package list (macOS)
β”œβ”€β”€ Dockerfile           # Docker configuration
β”œβ”€β”€ Makefile             # Common tasks automation
β”œβ”€β”€ README.md            # This file
β”œβ”€β”€ _config.yml          # GitHub Pages config
β”œβ”€β”€ .gitignore           # Git ignore patterns
└── logo.png             # Project logo

πŸš€ Quick Start

Linux & macOS

git clone https://github.com/seagle0128/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
make install

To get help

> make help

Centaur Dotfiles Management

Available commands:
  install    Install all dotfiles and packages
  update     Update all configurations and packages
  clean      Clean backup files and old configurations
  sync       Synchronize dotfiles with remote repository
  test       Test configuration files
  lint       Lint configuration files
  dev-setup  Setup development environment
  backup     Backup current configurations
  restore    Restore from backup
  help       Show this help message

Windows (PowerShell)

git clone https://github.com/seagle0128/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./scripts/install_scoop.ps1

🐳 Docker

cd ~/.dotfiles
docker build -t centaur/ubuntu .
docker run -it centaur/ubuntu zsh

⌨️ Shortcuts

🎨 Customization

ZSH Environment

Add your zsh environments in ~/.zshenv. This is recommended by ZSH officially:

export PATH=/usr/local/sbin:$PATH
export PATH=$HOME/.rbenv/shims:$PATH
export PYTHONPATH=/usr/local/lib/python2.7/site-packages

ZSH Local Config

Set your personal zsh configurations in ~/.zshrc.local:

# Oh-my-zsh plugin
zinit snippet OMZP::golang
zinit snippet OMZP::python
zinit snippet OMZP::ruby

# Github plugin
zinit light ptavares/zsh-direnv

Git Local Config

Set your git configurations in ~/.gitconfig.local:

[commit]
    # Sign commits using GPG
    gpgsign = true

[user]
    name = John Doe
    email = john.doe@example.com
    signingkey = XXXXXXXX

πŸ› οΈ Management

Using Makefile

make install      # Install dotfiles
make update       # Update all configurations
make clean        # Clean backup files
make help         # Show available commands

Manual Commands

# Update dotfiles
cd ~/.dotfiles && git pull --rebase --stat origin master

# Update Zinit plugins
zinit self-update && zinit update -a -p

# Update Homebrew packages (macOS)
brew bundle --global && brew upgrade && brew cleanup

# Update system packages (Linux)
sudo apt update && sudo apt upgrade  # Debian/Ubuntu
sudo pacman -Syu                     # Arch Linux

πŸ“¦ Package Management

macOS (Homebrew)

All packages are managed via Brewfile. To install:

brew bundle --global

Linux

Windows

πŸ–ΌοΈ Screenshots

Main (with Tmux)

main

Git Log

git_log

Centaur Emacs

centaur_emacs

πŸ”„ Migration from Old Structure

If you’re upgrading from an older version of these dotfiles:

  1. Backup your current configurations
  2. Run the new installer: ./scripts/install.sh
  3. The installer will automatically detect and handle existing configurations

🀝 Contributing

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

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgements

Related projects: DevStrap

β˜• Donate

If you think this is helpful for you, please consider paying a cup of coffee for me. Thank you! :smile:

Alipay Β Β Β Β  Wechat Pay

PayPal Β Β Β Β  Buy Me A Coffee