Powerlevel10k: Zsh theme cho tốc độ và tùy biến
Powerlevel10k là một theme Zsh tập trung vào tốc độ và một wizard cấu hình dẫn dắt từng bước -- đáng cài nếu bạn muốn prompt nhanh, nhiều thông tin mà không phải tự viết cú pháp. Cần biết trước: README nói rõ dự án hỗ trợ rất hạn chế, không có tính năng mới, và phần lớn lỗi sẽ không được sửa. Cài nó vì tính năng hiện có; bỏ qua nếu bạn cần một dự án được bảo trì tích cực.
Powerlevel10k là gì?
Powerlevel10k là một theme cho shell Zsh, thay thế prompt mặc định bằng một prompt được xây dựng cho tốc độ và khả năng tùy biến sâu. Chạy lệnh `p10k configure` sẽ mở một wizard cấu hình, ghi lại lựa chọn của bạn vào file `~/.p10k.zsh`, bao gồm mọi thứ từ trạng thái Git đến phiên bản ngôn ngữ lập trình. Nó còn mô phỏng được theme Pure hoặc kế thừa cấu hình Powerlevel9k có sẵn.
Các tính năng chính của Powerlevel10k
- ✓Wizard cấu hình: chạy `p10k configure` để chọn style prompt, kết quả được ghi vào `~/.p10k.zsh`.
- ✓Instant prompt: hiển thị prompt ngay khi Zsh khởi động, kể cả khi các plugin chậm như pyenv hay nvm vẫn đang load.
- ✓Transient prompt: rút gọn các prompt đã hoàn tất thành dạng ngắn gọn, giúp copy-paste lịch sử lệnh dễ hơn.
- ✓Show on command: các segment như `kubecontext` chỉ hiện khi bạn gõ lệnh liên quan (ví dụ `kubectl`, `helm`).
- ✓Tương thích Powerlevel9k: đọc trực tiếp các tham số cấu hình `POWERLEVEL9K_*` sẵn có, gần như migrate không cần sửa gì.
- ✓Hỗ trợ style Pure: có thể hiển thị prompt giống hệt theme Pure mà vẫn giữ instant prompt và transient prompt.
- ✓Hàng chục segment dựng sẵn: trạng thái Git, phiên bản ngôn ngữ (Python, Node, Go, Rust, PHP...), ngữ cảnh CLI cloud (AWS, GCP, Azure), pin máy và tải CPU.
- ✓Mở rộng được: có API công khai để tự định nghĩa segment riêng, ví dụ đọc nhiệt độ CPU từ `/sys/class/thermal`.
Cách cài đặt Powerlevel10k
Cách cài thủ công hoạt động ở mọi nơi, kể cả khi bạn đang dùng plugin manager (chỉ cần tắt theme hiện tại trước): ``` git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc ``` Với Oh My Zsh, clone vào `${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k` rồi đặt `ZSH_THEME="powerlevel10k/powerlevel10k"` trong `~/.zshrc`. README còn hướng dẫn riêng cho Prezto, Zim, Antibody, Antidote, Antigen, Zplug, Zgen, Zplugin, Zinit, Zi và Zap, cùng Homebrew (`brew install powerlevel10k`), Arch Linux (`yay -S zsh-theme-powerlevel10k-git`), Alpine Linux (`apk add zsh-theme-powerlevel10k`), và tích hợp Fig. Người dùng ở Trung Quốc có mirror trên gitee.com để clone nhanh hơn. Cài Meslo Nerd Font là bước tùy chọn nhưng được khuyến nghị mạnh, theo README — thiếu nó, một số style prompt trong wizard sẽ không hiển thị đúng. Khởi động lại bằng `exec zsh` rồi chạy `p10k configure` nếu wizard không tự bật.
Cấu hình Powerlevel10k
Cấu hình bắt đầu từ wizard: chạy `p10k configure`, kết quả được ghi vào `~/.p10k.zsh` -- một file có rất nhiều comment để bạn tự sửa thêm sau đó. Để giới hạn khi nào một segment xuất hiện, tìm `SHOW_ON_COMMAND` trong `~/.p10k.zsh` rồi chỉnh hoặc xóa tham số đó -- ví dụ `POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens'` chỉ hiện segment Kubernetes context khi bạn gõ một trong các lệnh đó. Sửa biến `POWERLEVEL9K_*` trong một shell đang chạy cần lệnh `p10k reload` để có hiệu lực; đặt `POWERLEVEL9K_DISABLE_HOT_RELOAD=false` bỏ được bước này nhưng đổi lại prompt chậm hơn một chút. Instant prompt và transient prompt đều bật qua cùng wizard, hoặc chỉnh tay trong `~/.p10k.zsh`.
Điểm mạnh
- ✓Wizard cấu hình chạy chỉ trong vài phút. Bạn có ngay một prompt dùng được mà không phải tự sửa file cấu hình.
- ✓Instant prompt loại bỏ độ trễ khởi động Zsh kể cả khi nguyên nhân là một plugin chậm, không phải do theme.
- ✓Đọc thẳng tham số cấu hình Powerlevel9k có sẵn, nên chuyển sang không cần viết lại cấu hình.
- ✓Show-on-command giữ các segment như Kubernetes context không chiếm chỗ cho đến khi bạn thật sự gõ lệnh liên quan.
- ✓Hàng chục segment dựng sẵn cộng thêm API có tài liệu để tự thêm segment riêng.
Hạn chế và tình trạng hỗ trợ của Powerlevel10k
- △README nói rõ dự án hỗ trợ rất hạn chế, không có tính năng mới đang phát triển, và phần lớn lỗi sẽ không được sửa.
- △Yêu cầu hỗ trợ sẽ bị bỏ qua, theo đúng những gì README ghi.
- △Đây là theme viết bằng Shell script, chỉ tạo kiểu cho prompt -- không thêm plugin, completion hay chức năng shell nào khác.
- △Style Pure không nhận tham số cấu hình `PURE_*` gốc; bạn phải viết lại chúng thành tham số `POWERLEVEL9K_*` tương ứng trong `~/.p10k.zsh`.
Các lựa chọn thay thế Powerlevel10k
Câu hỏi thường gặp
Powerlevel10k hỗ trợ rất hạn chế: README nói rõ không có tính năng mới đang phát triển, phần lớn lỗi không được sửa, và yêu cầu hỗ trợ sẽ bị bỏ qua -- nên xem đây là dự án đã hoàn thiện tính năng chứ không còn phát triển tích cực.
Clone Powerlevel10k thủ công bằng `git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k`, sau đó thêm dòng `source ~/powerlevel10k/powerlevel10k.zsh-theme` vào `~/.zshrc` rồi khởi động lại Zsh.
Powerlevel10k khuyến nghị cài Meslo Nerd Font bản đã patch riêng cho Powerlevel10k; README gọi đây là bước tùy chọn nhưng khuyến nghị mạnh, vì một số style trong wizard cần font này để hiển thị đúng.
Powerlevel10k đọc thẳng các tham số cấu hình `POWERLEVEL9K_*` đã có, nên chuyển từ Powerlevel9k gần như chỉ cần cài Powerlevel10k và giữ nguyên file cấu hình cũ.
Powerlevel10k có thể tái tạo prompt Pure bằng cách chọn style Pure trong `p10k configure`, đồng thời vẫn giữ được instant prompt và transient prompt.
Instant prompt được bật qua `p10k configure`, hoặc chỉnh tay trong khối instant-prompt của `~/.p10k.zsh`; khi bật, Powerlevel10k hiện prompt ngay khi Zsh khởi động.
Vấn đề mà nó giải quyết
Các prompt Zsh hiển thị nhiều thông tin sống -- trạng thái Git, phiên bản ngôn ngữ, ngữ cảnh cloud -- thường bị lag mỗi lần gõ lệnh, hoặc in ra dữ liệu cũ rồi mới cập nhật sau. Một vấn đề khác liên quan: các plugin Zsh load chậm như pyenv hay nvm có thể làm chậm prompt đầu tiên sau khi mở terminal. README của Powerlevel10k khẳng định cả hai đều được giải quyết: prompt cập nhật tức thì, và Instant Prompt hiện prompt trước khi các plugin chậm load xong.
Trường hợp sử dụng phù hợp nhất
- •Người dùng Zsh muốn thấy branch/trạng thái Git, phiên bản ngôn ngữ, ngữ cảnh cloud ngay trong prompt mà không bị lag.
- •Người đang dùng Powerlevel9k muốn giữ nguyên cấu hình cũ nhưng có prompt nhanh hơn.
- •Developer có plugin Zsh load chậm (pyenv, nvm) muốn dùng instant prompt để che lag khởi động.
- •Người thích giao diện tối giản kiểu Pure nhưng vẫn muốn có instant/transient prompt.
Nên dùng — và nên bỏ qua
Chọn Powerlevel10k nếu bạn sống trong terminal, muốn thấy trạng thái Git, phiên bản ngôn ngữ và ngữ cảnh cloud mà không bị lag prompt, và chấp nhận dùng một theme mà chính README nói đã gần như ngừng phát triển. Bỏ qua nếu bạn cần một dự án có người sửa lỗi hay thêm tính năng, hoặc muốn một prompt tối giản gần như không cần cấu hình -- Pure hay theme mặc định của Oh My Zsh sẽ ít việc quản lý hơn.
Repo liên quan
Muốn nghe thêm một ý kiến về powerlevel10k?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về powerlevel10k.
