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

sh -c "$(curl -fsSL https://github.com/seagle0128/dotfiles/raw/master/scripts/install.sh)"

or

sh -c "$(wget https://github.com/seagle0128/dotfiles/raw/master/scripts/install.sh -O -)"

or

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

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