Dự án này cung cấp bộ cấu hình dotfiles đa nền tảng, tự động phát hiện và thiết lập môi trường phù hợp cho NixOS, macOS, Ubuntu và WSL. Dự án được thiết kế để dễ dàng chia sẻ trong team và duy trì môi trường phát triển nhất quán.
- Tự động phát hiện hệ thống - Tự động phát hiện và áp dụng cấu hình phù hợp
- Hỗ trợ đa nền tảng - NixOS, NixOS trên WSL, macOS và Ubuntu
- Tích hợp liền mạch - Nix, Homebrew, Home Manager và Snapd
- Động và mở rộng - Dễ dàng thêm máy mới và người dùng mới
- Một lệnh thiết lập - Cài đặt và cấu hình toàn bộ hệ thống với một lệnh duy nhất
# Clone repository
git clone https://github.com/username/dotfiles.git
cd dotfiles
# Cài đặt tự động (phát hiện hệ thống và thiết lập)
./install.shdotfiles/
├── flake.nix # Cấu hình flake chính
├── install.sh # Script cài đặt tự động
├── README.md # Tài liệu này
├── lib/ # Thư viện tiện ích
│ └── default.nix # Hàm tiện ích và phát hiện hệ thống
├── hosts/ # Cấu hình theo máy
│ ├── common/ # Cấu hình chung
│ ├── nixos/ # Cấu hình NixOS
│ ├── wsl/ # Cấu hình WSL
│ ├── darwin/ # Cấu hình macOS
│ └── ubuntu/ # Cấu hình Ubuntu
└── home/ # Cấu hình Home Manager
├── nixos.nix # Cấu hình Home Manager cho NixOS
├── darwin.nix # Cấu hình Home Manager cho macOS
├── ubuntu.nix # Cấu hình Home Manager cho Ubuntu
├── wsl.nix # Cấu hình Home Manager cho WSL
└── profiles/ # Hồ sơ người dùng
├── rnd/ # Profile cho user rnd
└── mike/ # Profile cho user mike
-
Clone repository:
git clone https://github.com/username/dotfiles.git cd dotfiles -
Cài đặt tự động:
./install.sh
-
Hoặc cài đặt thủ công:
# Bật Nix flakes nếu chưa có sudo mkdir -p /etc/nix echo "experimental-features = nix-command flakes" | sudo tee -a /etc/nix/nix.conf # Xây dựng cấu hình sudo nixos-rebuild switch --flake .#hostname
-
Clone repository:
git clone https://github.com/username/dotfiles.git cd dotfiles -
Cài đặt tự động:
./install.sh
-
Hoặc cài đặt thủ công:
# Cài đặt Nix nếu chưa có sh <(curl -L https://nixos.org/nix/install) --daemon # Cài đặt nix-darwin nếu chưa có nix-build https://github.com/LnL7/nix-darwin/archive/master.tar.gz -A installer ./result/bin/darwin-installer # Xây dựng cấu hình darwin-rebuild switch --flake .#hostname
-
Clone repository:
git clone https://github.com/username/dotfiles.git cd dotfiles -
Cài đặt tự động:
./install.sh
-
Hoặc cài đặt thủ công:
# Cài đặt Nix nếu chưa có sh <(curl -L https://nixos.org/nix/install) --daemon # Bật flakes mkdir -p ~/.config/nix echo "experimental-features = nix-command flakes" > ~/.config/nix/nix.conf # Cài đặt home-manager nix-shell -p nixFlakes --run "nix run github:nix-community/home-manager/release-24.11 -- switch --flake .#username@hostname"
-
Clone repository:
git clone https://github.com/username/dotfiles.git cd dotfiles -
Cài đặt tự động:
./install.sh
-
Hoặc cài đặt thủ công:
# Bật flakes sudo mkdir -p /etc/nix echo "experimental-features = nix-command flakes" | sudo tee -a /etc/nix/nix.conf # Xây dựng cấu hình sudo nixos-rebuild switch --flake .#wsl
Dự án tự động phát hiện hostname, username và hệ điều hành. Bạn có thể ghi đè bằng biến môi trường:
HOSTNAME=custom-hostname USERNAME=custom-username ./install.sh-
Tạo thư mục profile mới:
cp -r home/profiles/template home/profiles/new-username
-
Chỉnh sửa thông tin cá nhân:
vim home/profiles/new-username/default.nix
-
Tạo thư mục cấu hình mới:
mkdir -p hosts/nixos/new-hostname
-
Tạo cấu hình phần cứng:
nixos-generate-config --dir hosts/nixos/new-hostname
-
Chỉnh sửa cấu hình:
vim hosts/nixos/new-hostname/configuration.nix
-
Tạo thư mục cấu hình mới:
mkdir -p hosts/darwin/new-hostname
-
Tạo file cấu hình:
cp hosts/darwin/default.nix hosts/darwin/new-hostname/default.nix
-
Chỉnh sửa cấu hình:
vim hosts/darwin/new-hostname/default.nix
File hosts/darwin/default.nix chứa cấu hình Homebrew. Bạn có thể thêm các gói và ứng dụng:
homebrew = {
enable = true;
brews = [ "mas" "python" ]; # CLI tools
casks = [ "firefox" "visual-studio-code" ]; # GUI apps
};File home/ubuntu.nix chứa cấu hình Snapd. Bạn có thể thêm các gói snap:
home.activation.snapPackages = ''
PACKAGES=("code" "spotify" "slack")
for pkg in "''${PACKAGES[@]}"; do
if ! snap list | grep -q "^$pkg"; then
sudo snap install $pkg
fi
done
'';cd dotfiles
git pull
sudo nixos-rebuild switch --flake .#hostnamecd dotfiles
git pull
darwin-rebuild switch --flake .#hostnamecd dotfiles
git pull
nix run home-manager/release-24.11 -- switch --flake .#username@hostnameĐảm bảo đã bật tính năng thử nghiệm:
# NixOS
sudo mkdir -p /etc/nix
echo "experimental-features = nix-command flakes" | sudo tee -a /etc/nix/nix.conf
# macOS / Ubuntu
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" > ~/.config/nix/nix.confKiểm tra cấu hình flake.nix và đảm bảo hostname và username khớp với cấu hình hoặc sử dụng cấu hình động.
Nếu gặp xung đột giữa Nix và Homebrew, đảm bảo đường dẫn đúng:
export PATH=/usr/local/bin:$PATH # Homebrew Intel
# hoặc
export PATH=/opt/homebrew/bin:$PATH # Homebrew Apple SiliconĐảm bảo đã cài đặt các gói tiên quyết:
sudo apt update
sudo apt install -y curl git build-essentialVui lòng đóng góp và báo lỗi qua GitHub Issues hoặc gửi Pull Request.
MIT License