Cách mà tôi triển khai dotfiles
Quy tắc này được tôi viết trực tiếp trên README.md của kho dotfiles (dotfiles/README.md)
Triết lý
- Everything must be under control: Tất cả các dotfiles phải được kiểm soát trong kho (repository) dotfiles của tôi. Không có trường hợp ngoại lệ nào nếu như nó đã là cấu hình, kể cả nó là file văn bản thuần (plain text) hoặc là file lưu trữ thông tin xác thực (credentials)…
- Everything must be easy to initial or change: Mọi thứ phải dễ dàng cho việc khởi tạo, thay đổi, sửa xoá hay thậm chí mở rộng và cập nhật.
- Everything must be automatically, with few manual steps before setup: Mọi thứ phải được tự động hoá, giảm thiểu số bước thủ công trước khi thiết lập. Tôi không muốn mỗi lần tôi sử dụng một thiết bị mới, có thể tương tự thiết bị cũ hoặc không, mà phải thao tác tay quá nhiều làm tôi phân tâm các nhiệm vụ khác.
- Everything must be dynamic, on every places: Mọi thứ phải đủ linh động, trên mọi máy và mọi nơi khác nhau. Tôi không muốn tôi bị gắn chặt vào một công cụ nhất định hay một cơ chế triển khai nhất định, vì như vậy cũng làm tốn thời gian của tôi.
- Everything must have same pastel, with harmony: Mọi thứ phải có tông màu đồng nhất, hài hòa với nhau.
- Everything must work together: Mọi thứ phải hoạt động cùng nhau, nếu có bất kỳ thứ gì không hoạt động chung với phần còn lại, nó phải được loại bỏ
Quy tắc
- Sử dụng Git để quản lý lịch sử phiên bản và thuận tiện cho việc đồng bộ hóa trên nhiều thiết bị.
- Quản lý tất cả các cấu hình chỉ bằng chezmoi, không sử dụng bất kỳ công cụ nào khác (dotbot, comtrya, stow…) hoặc công cụ IaC (ansible, nix…). Sử dụng tập lệnh shell và mẫu (template) của chezmoi để làm bất cứ điều gì.
- Sử dụng age để mã hóa các tập tin xác thực hoặc có nội dung bí mật
- Quản lý các thư mục chính của tôi và một số cấu hình hệ điều hành trên nhiều máy
- Phải chuyển đổi cấu hình của một công cụ để sử dụng Git submodule như một phần của dotfiles, nếu phù hợp với bất kỳ điều kiện nào dưới đây:
- Không tồn tại trong bất kỳ máy nào và có mức sử dụng ổ đĩa lớn (>=1MiB)
- Có thể tách ra làm kho Git để có thêm người gắn star cho kho, hoặc để đóng góp từ người khác:)
- Xung đột với giấy phép của kho dotfiles
- Chứa nhiều nội dung mật mà tôi không muốn mã hóa trên kho
- Cố gắng dùng theme catppuccin cho tất cả các công cụ