My Personal Home Directory Configuration Manager - A cross-platform dotfiles and environment setup tool.
- 🚀 Single-command installation across Linux, macOS, and Windows
- 🔄 Easy environment synchronization between machines
- 🐟 Fish shell configuration with helpful aliases and utilities
- 🧰 Pre-configured development tools (NeoVim, tmux, Git, etc.)
- 🐍 Python environment management with micromamba and uv
- 🔒 SSH configuration management
- 📦 Docker support with convenient workflow
- 💻 Cross-platform compatibility (Linux, macOS, Windows)
Choose the installation method for your platform:
Install
HOMECLI_INSTALL_DIR=$HOME/.homecli /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/BrightXiaoHan/HOME/main/scripts/install.sh)"
Update
HOMECLI_INSTALL_DIR=$HOME/.homecli /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/BrightXiaoHan/HOME/main/scripts/update.sh)"
Uninstall
HOMECLI_INSTALL_DIR=$HOME/.homecli /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/BrightXiaoHan/HOME/main/scripts/uninstall.sh)"
Install from pre-built package
- Download pre-packed run file from Releases (e.g.,
home-cli-x86_64.run
) - Install with:
bash home-cli-x86_64.run -- -m install --install-dir $HOME/.homecli
Additional Operations
Uninstall without deleting installation cache (for future relink):
HOMECLI_INSTALL_DIR=$HOME/.homecli bash scripts/uninstall.sh --remove-cache false
Relink existing installation:
HOMECLI_INSTALL_DIR=$HOME/.homecli bash scripts/install.sh relink
Pack your current setup for distribution:
HOMECLI_INSTALL_DIR=$HOME/.homecli /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/BrightXiaoHan/HOME/main/scripts/pack.sh)"
Prerequisites
Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install Packages
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/BrightXiaoHan/HOME/main/scripts/install_macos.sh)"
Prerequisites
Upgrade PowerShell:
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"
Install Packages
iex (Invoke-WebRequest -Uri "https://raw.githubusercontent.com/BrightXiaoHan/HOME/main/scripts/install.ps1").Content
It's recommended to use Podman for building and running the container. This allows you to mount your home directory without permission issues.
Build image
podman build -t home .
Build with custom arguments
podman build -t home --build-arg "VERSION=20.04" --network=host --build-arg "HTTPS_PROXY=http://127.0.0.1:7890" .
Run Container
podman run -v $HOME:/workspace --name home -itd home
- Shell: Fish shell with custom prompt and useful aliases
- Editor: NeoVim with NvChad configuration
- Terminal Multiplexer: tmux with custom keybindings
- Package Management: micromamba (conda), uv (Python)
- Git: Custom aliases and configuration
- Utilities: fzf, ripgrep, zoxide, starship prompt, and more
- SSH: Configuration management with built-in profiles
- Windows: PowerShell configuration with Oh-My-Posh
general/
- Configuration files for various toolsfish/
- Fish shell configurationssh/
- SSH configuration and keystmux/
- Tmux configurationNvChad/
- NeoVim configurationgitconfig
- Global Git configuration
homecli/
- Python package for installation and managementscripts/
- Installation and utility scripts for different platforms
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.