Centaur Dotfiles

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
Alt-c: cd into the selected directoryCtrl-r: Paste the selected command from history into the command lineCtrl-t: Paste the selected file path(s) into the command lineTAB: To completions
π¨ 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
- Debian/Ubuntu: Uses
install_debian.sh - Arch Linux: Uses
install_arch.sh
Windows
- Scoop: Uses
install_scoop.ps1 - Chocolatey: Alternative package manager
πΌοΈ Screenshots
Main (with Tmux)

Git Log

Centaur Emacs

π Migration from Old Structure
If youβre upgrading from an older version of these dotfiles:
- Backup your current configurations
- Run the new installer:
./scripts/install.sh - The installer will automatically detect and handle existing configurations
π€ Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- 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:
Β Β Β Β
