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 falseRelink existing installation:
HOMECLI_INSTALL_DIR=$HOME/.homecli bash scripts/install.sh relinkPack 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").ContentIt'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 configurationnvim/- 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.