Skip to content

seagle0128/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

  • Alt-c: cd into the selected directory
  • Ctrl-r: Paste the selected command from history into the command line
  • Ctrl-t: Paste the selected file path(s) into the command line
  • TAB: 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 = [email protected]
    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)

main

Git Log

git_log

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! 😄

Alipay

    

Wechat Pay

PayPal      Buy Me A Coffee

About

Centaur Dotfiles - Full and clean configurations for development environment on GNU Linux, macOS and Cygwin

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •