2 điểm bởi GN⁺ 2025-02-24 | 1 bình luận | Chia sẻ qua WhatsApp
  • WhiteSur GTK Theme là một gói chủ đề mang lại giao diện tương tự macOS trên desktop Linux GTK; cách cài đặt cơ bản là clone kho lưu trữ rồi chạy ./install.sh
  • Script cài đặt cung cấp các tùy chọn về màu sắc, độ trong suốt, màu nhấn, kiểu Nautilus, GNOME Shell, và có thể chỉ định lặp lại các tham số như --theme, --color, --opacity, --nautilus, --gnomeshell
  • libadwaita, được dùng ngày càng nhiều trong các ứng dụng tích hợp kể từ Gnome 43.0, không hỗ trợ chủ đề tùy chỉnh, nên WhiteSur cung cấp một cách обход hạn chế bằng cách ghi đè file thiết lập gtk-4.0 bằng file chủ đề
  • ./tweaks.sh phụ trách áp dụng và hoàn tác chủ đề liên quan đến GDM, Firefox, Flatpak; có thể thiết lập ảnh nền GDM, làm mờ, làm tối, cũng như các biến thể Monterey/flat/adaptive cho Firefox
  • Vấn đề chủ đề của ứng dụng Flatpak được xử lý bằng cách dùng flatpak override để cho phép truy cập thiết lập gtk-3.0gtk-4.0, sau đó liên kết chủ đề WhiteSur; README nêu rõ không hỗ trợ Snap

Tổng quan về WhiteSur GTK Theme

  • WhiteSur GTK Theme là chủ đề phong cách macOS dành cho desktop Linux GTK
  • Mô tả cơ bản được trình bày là “chủ đề giống macOS cho Linux GTK Desktops”
  • README không chỉ đề cập việc cài đặt chủ đề GTK mà còn bao gồm cả GNOME Shell, GDM, Firefox và Flatpak

Cài đặt và yêu cầu cơ bản

  • Quy trình cài đặt cơ bản khá đơn giản
  • Các phụ thuộc để cài đặt từ mã nguồn bao gồm sassc, libglib2.0-dev-bin, libglib2.0-dev, libxml2-utils, glib2-devel, v.v.
  • Các phụ thuộc khác được nêu gồm imagemagick, dialog, optipng, inkscape; một số là mục tùy chọn dùng để tinh chỉnh chủ đề GDM hoặc render asset
  • README cho biết trình cài đặt WhiteSur cung cấp các phụ thuộc này
  • Các extension GNOME Shell được khuyến nghị như sau

Tùy chỉnh install.sh

  • ./install.sh [OPTIONS...] cho phép chỉ định chi tiết đích cài đặt và các biến thể chủ đề
  • Các tùy chọn chính như sau
    • --dest: chỉ định thư mục đích cài đặt, mặc định là /home/[USER_NAME]/.themes
    • --name: chỉ định tên chủ đề, mặc định là WhiteSur
    • --opacity: chỉ định biến thể độ trong suốt normal, solid
    • --color: chỉ định biến thể màu light, dark
    • --alt: chỉ định biến thể nút điều khiển cửa sổ
    • --theme: chỉ định màu nhấn default, blue, purple, pink, red, orange, yellow, green, grey, all
    • --scheme: chỉ định bảng màu standard, nord
    • --monterey: áp dụng phong cách macOS Monterey
    • --nautilus: chỉ định kiểu Nautilus trong số stable, normal, mojave, glassy, right
    • --libadwaita: cài đặt chủ đề dành cho libadwaita vào thiết lập gtk4.0
    • --highdefinition: áp dụng kích thước độ phân giải cao
  • Các tùy chọn liên quan đến GNOME Shell điều chỉnh panel và biểu tượng
    • Có thể chỉ định biểu tượng Activities thành apple, gnome, ubuntu, tux, arch, fedora, debian, v.v.
    • Ảnh nền có thể chọn trong số default, blank, IMAGE_PATH
    • Độ trong suốt của panel có thể chỉ định là 30, 45, 60, 75, v.v.
    • Cũng có thể điều chỉnh chiều cao panel, cỡ chữ và kiểu nút ứng dụng
  • Gỡ bỏ được thực hiện bằng cách chạy ./install.sh -r để xóa chủ đề GTK

Cách обход libadwaita và các giới hạn

  • Sau Gnome 43.0, ngày càng nhiều ứng dụng tích hợp sử dụng libadwaita
  • libadwaita không hỗ trợ chủ đề tùy chỉnh, nên không thể thay đổi giao diện ứng dụng libadwaita bằng gnome-tweaks hoặc dconf-editor
  • Cách обход của WhiteSur là ghi đè gtk-4.0 configuration file bằng theme file
  • Các giới hạn của cách này rất rõ ràng
    • Tất cả ứng dụng GTK4 sẽ dùng một chủ đề cố định duy nhất
    • Không thể chuyển đổi chủ đề
    • Cũng không thể chuyển sang chế độ tối
    • Nếu muốn đổi sang chủ đề khác, phải ghi đè lại file thiết lập gtk-4.0 bằng chủ đề mới
  • Ví dụ cài đặt cho libadwaita như sau
    • ./install.sh -l: cài đặt chủ đề normal dark mặc định
    • ./install.sh -l -c light: cài đặt chủ đề light

Màu sắc, Nautilus và các biến thể chủ đề bổ sung

  • Màu nhấn của chủ đề được cài bằng --theme hoặc -t
    • ./install.sh -t red: chỉ cài màu nhấn red
    • ./install.sh -t red -t green: cài màu nhấn red và green
    • ./install.sh -t all: cài tất cả màu nhấn
  • Kiểu Nautilus được chỉ định bằng --nautilus hoặc -N
    • Ví dụ: ./install.sh -N mojave
  • Có thể xem thêm nhiều tùy chỉnh hơn bằng ./install.sh -h
    • Độ trong suốt của panel
    • Độ trong suốt của chủ đề
    • Biến thể nút điều khiển cửa sổ, v.v.

tweaks.sh: GDM, Firefox, Flatpak

  • ./tweaks.sh [OPTIONS...] phụ trách các điều chỉnh liên quan đến GDM, Firefox và Flatpak
  • Chủ đề GDM được cài bằng --gdm hoặc -g và cần chạy với quyền root
    • Ví dụ: sudo ./tweaks.sh -g
    • Có thể chỉ định ảnh nền bằng --background hoặc -b
    • Không làm tối nền bằng --nodarken hoặc -nd
    • Không làm mờ nền bằng --noblur hoặc -nb
  • Chủ đề Firefox được cài bằng --firefox hoặc -f
    • Có các tùy chọn monterey, flat, alt, darker, nord, adaptive, link
    • adaptive yêu cầu cài plugin adaptive-tab-bar-colour
    • Có thể dùng --edit-firefox hoặc -e để chỉnh sửa thiết lập chủ đề Firefox đã cài và liên kết với hồ sơ Firefox hiện tại
  • Flatpak liên kết chủ đề WhiteSur bằng --flatpak hoặc -F
    • Có thể chỉ định độ trong suốt, màu sắc, màu nhấn và bảng màu bằng các tùy chọn -o, -c, -t, -s
    • Không hỗ trợ Snap
  • Lệnh để sửa vấn đề chủ đề Flatpak như sau
    • sudo flatpak override --filesystem=xdg-config/gtk-3.0 && sudo flatpak override --filesystem=xdg-config/gtk-4.0

Các mục được khuyến nghị đi kèm

  • WhiteSur Icon Theme: chủ đề biểu tượng WhiteSur
  • WhiteSur Wallpapers: hình nền WhiteSur
  • Thông tin liên quan đến đóng góp được hướng dẫn xem trong CONTRIBUTING.md

1 bình luận

 
GN⁺ 2025-02-24
Các ý kiến trên Hacker News
  • Trải nghiệm của tôi khi dùng theme Linux nhìn chung khá tệ. Ngay cả theme ổn cũng hợp với ứng dụng này nhưng lại không hợp với ứng dụng khác, nên cuối cùng lại tốn thời gian sửa các trường hợp ngoại lệ hoặc chấp nhận một số cửa sổ trông lạc lõng
    Vì vậy tôi cứ dùng theme mặc định của Ubuntu đi kèm GNOME. Nó khớp tốt nhất với phần lớn ứng dụng, chỉ có vài ngoại lệ nhỏ
    Có thể có theme tốt hơn, và nếu đào đủ sâu có lẽ cũng tạo được sự nhất quán hoàn hảo, nhưng với người đã dành quá nhiều thời gian trước máy tính để viết code như tôi, theme desktop có mức ưu tiên rất thấp
    Môi trường desktop cũng vậy. Tôi biết GNOME không phải là tốt nhất, nhưng không có thời gian đầu tư vào XFCE hay trình quản lý cửa sổ dạng tiling để dựng nên cấu hình trong mơ. Tôi thích GNOME ở chỗ dù ăn tài nguyên hơn, nó đơn giản là chạy ổn

    • Tôi chưa tự làm theme, nhưng vấn đề phía GTK nhìn chung có vẻ đến từ xung đột CSS và việc libadwaita vận động tách rời khỏi bản thân GTK
      Có vẻ khá nhiều ứng dụng GTK hard-code màu sắc, phông chữ, v.v. thay vì tham số hóa, nên không phản ứng đúng với việc đổi theme. Những yếu tố này cộng lại khiến trải nghiệm dùng theme trở nên thất thường
      Phía Qt trông có vẻ khá hơn một chút, nhưng lại có vấn đề về hệ số phóng đại độ phân giải. Hầu hết theme KDE/Qt tôi từng dùng đều không vẽ đúng khi không dùng hệ số phóng đại số nguyên
      Cá nhân tôi thấy CSS khá không phù hợp cho mục đích theme của bộ công cụ UI desktop. Với một ứng dụng đơn lẻ thì ổn, nhưng khi trở thành một phần của một hệ thống lớn hơn và linh hoạt hơn, nó nhanh chóng trở nên phức tạp
    • Tôi vẫn nhớ sự sáng tạo thời hoàng kim của themes.org
      Người sáng tạo thì nhiều, nhưng để theme hoạt động tốt với mọi chương trình, mọi người, mọi tình huống và ngoại lệ thì cần nỗ lực khổng lồ. Có vẻ cách phù hợp hơn là một nhóm trong công ty có nhân sự được trả lương duy trì đều đặn một hai biến thể, tích lũy báo cáo lỗi rồi sửa
      Rất khó bảo trì code hay thiết kế có vấn đề mà bản thân không dùng hằng ngày, không gặp phải và cũng không tái hiện được
      Có lẽ nếu là người cực kỳ tận tâm thì vẫn có thể: https://www.nordtheme.com/ports
      Cuối thập niên 90 và đầu những năm 2000, tôi đã lãng phí vô số thời gian vào tùy biến desktop, nhưng từ lâu đã không còn thời gian như vậy nữa. May là theme mặc định ngày nay khá ổn và đủ trung tính cho hầu hết tình huống
    • Ngay cả khi theme hoàn hảo, rồi đến lúc nó cũng sẽ ngừng được cập nhật cho phiên bản mới của môi trường bạn dùng, nên cuối cùng bạn sẽ bỏ cuộc
    • Vào thập niên 2000 và đầu thập niên 2010, trước khi API của các môi trường desktop Linux thay đổi, theme hoạt động tốt hơn. Đó cũng là lý do nhiều trang theme Linux trông như bị kẹt lại ở thời đó
    • Nếu chỉ muốn đổi màu nhấn trên theme Ubuntu thì có Yaru: https://github.com/ubuntu/yaru
  • Đã lâu rồi tôi không cài theme thuộc bất kỳ loại nào. Theo trải nghiệm trước đây, ở ranh giới giữa các thành phần được áp theme và chưa được áp theme luôn có sự gượng gạo về thẩm mỹ
    Phụ đề “Fix for libadwaita (not perfect)” cũng không tạo được niềm tin. Tôi không có ý chê riêng theme này, mà đó là rủi ro chung của việc áp theme

    • Vấn đề với các theme bắt chước hệ điều hành khác là chúng chỉ có thể bắt chước phong cách, chứ không bắt chước được cách hoạt động
      Ảnh chụp màn hình có thể trông giống, nhưng thực tế lại không vận hành như OS gốc, dẫn đến các thỏa hiệp ở khắp nơi và tạo ra sự gượng gạo đã nói ở trên
      Ví dụ GNOME không có khái niệm thu nhỏ cửa sổ. Có thể thêm bằng extension, nhưng cảm giác gượng và kỳ lạ. Nếu hệ thống nền tảng không được thiết kế như vậy thì theme không thể thay đổi được
    • GNOME thay đổi thường xuyên, khiến người bảo trì phải liên tục chỉnh plugin cho khớp, nên tuổi thọ kỳ vọng của plugin và theme thường ngắn
    • Điều đó đúng với phần lớn theme GNOME, nhưng khi tôi dùng Chicago95 trên XFCE trong 3 năm, những điểm gượng gạo chỉ đếm trên đầu ngón tay: https://github.com/grassmunk/Chicago95
    • Chạy ứng dụng GNOME trên KDE, hoặc ngược lại, trước đây thực sự là một nỗi đau lớn
      Mức độ xấu xí đến khó tin, và giải pháp chính thức cũng chỉ là cài thêm theme cầu nối để cố thống nhất toàn bộ giao diện nên không hoàn hảo
      Bây giờ đã khá hơn, nhưng ngay cả năm 2025, GParted dưới KDE vẫn trông lạc lõng, và điều này thật đáng tiếc
    • Ở đây “Fix” thực chất có nghĩa là hack. GNOME và libadwaita không chính thức hỗ trợ kiểu đổi theme như thế này
  • Vài năm trước, tại một hội nghị Ubuntu ở Hàn Quốc, tôi thấy một bạn chạy Linux trên MacBook và tùy biến nó hoàn hảo như macOS
    Khá thú vị, nhưng khi chuẩn bị thuyết trình thì HDMI lại không hoạt động

    • Tôi đoán có lẽ là Nvidia
    • Cũng có ý kiến nói code kernel tệ hơn nhiều so với mọi người tin. Có lẽ vì nó không phải thứ thiêng liêng gì, mà là do các gã lập dị tạo ra
  • Hơi lệch chủ đề một chút nhưng có thể sẽ thú vị. Trước đây tôi tùy biến cấu hình KDE rất nhiều, gần như một sở thích. Tôi thường thử các môi trường desktop khác, trình quản lý cửa sổ khác, màu sắc, theme, extension, v.v.
    Nhưng vì không thể tái tạo cấu hình đó trên máy khác nên laptop lúc nào cũng xấu, chỉ máy chính là đẹp
    Khoảng 2 năm trước tôi chuyển sang i3. Tất cả chỉ là một file cấu hình đổi màu và các key binding chính, cùng một file điều chỉnh thanh bar và launcher cho dễ dùng. Chỉ cần chép hai file cấu hình đó là mọi hệ thống trông và hoạt động giống hệt nhau
    Xấu, nhưng không gây phân tâm. Hơn 98% số pixel trên màn hình là do ứng dụng đang chạy chiếm, nên cũng chẳng có gì để chỉnh
    Môi trường desktop không hiện ra, không cần phải tương tác với nó, nó chỉ đơn giản là hoạt động. Tôi đã quen rồi; khi muốn tập trung thì rất năng suất, còn khi giải trí hay viết lách thì cũng có thể tập trung hoàn toàn vào việc đó
    Ngoài animation bên trong ứng dụng, không có animation nào được phát. Khi mở ứng dụng, vì tôi đã gõ tên nên đúng là ứng dụng mình muốn và nó mở ngay lập tức
    Trên Windows, ngay trước khi gõ tên ứng dụng rồi nhấn Enter, kết quả tìm kiếm lại đổi và chạy thứ khác
    Từ sau khi chuyển, tôi chưa từng bận tâm đến theme GTK so với Qt. Cũng không có trang trí cửa sổ. Chỉ có workspace, code, trình duyệt, và tôi quên mất rằng có một trình quản lý cửa sổ đang tồn tại
    Tôi không có ý định quay lại trong thời gian tới; KDE hay GNOME, thậm chí cả GUI của Windows, đều cảm giác chậm và ì ạch

    • Tôi cũng từng làm môi trường desktop đẹp lên ở mức nào đó, nhưng không sa quá sâu. Sau đó tôi chuyển sang i3-gaps, nhưng vẫn tốn rất nhiều thời gian để cấu hình và so sánh terminal emulator, shell prompt, tự động hoàn tất, plugin vim, iommu/vfio, v.v.
      Đến một lúc nào đó tôi chán tất cả, quay lại Windows/MacOS, không cấu hình quá mức, cài công cụ khi cần và dùng ở trạng thái mặc định nhiều nhất có thể
      Ngoài việc không phải bảo trì những thứ này nữa, tôi còn nhận ra rằng dù ssh vào máy nào, tôi cũng không thấy nhớ các công cụ tùy biến của mình
    • Tôi khuyên nên quản lý dotfiles bằng git. Hướng dẫn này đã giúp tôi bắt đầu: https://www.atlassian.com/git/tutorials/dotfiles
      Nên viết một script nhỏ để trên máy mới chỉ cần tải bằng wget rồi chạy là sẵn sàng trong vài giây. Khi đó có 2 hay 200 file cấu hình cũng không quan trọng. Trường hợp của tôi còn cài các công cụ tôi dùng, một số thì build từ source
    • Trên Windows không nên có chuyện gõ tên ứng dụng rồi ngay trước khi nhấn Enter kết quả tìm kiếm đổi sang ứng dụng khác
      Ví dụ nếu KeePass là dự đoán tốt nhất cho ứng dụng bắt đầu bằng k, ke, kee thì với keep, keepa, v.v. cũng phải như vậy. Tôi chưa từng gặp hiện tượng đó
      Tuy nhiên nếu gõ sai tên ứng dụng thì có thể xảy ra. Phản hồi với phím gõ sai cuối cùng có thể diễn ra trong lúc tay đang di chuyển tới Enter
  • Làm tôi nhớ đến tâm lý phản đối theme trong cộng đồng nhà phát triển GNOME: https://stopthemingmy.app/

    • Nếu thật sự có cách khác dễ dàng để chọn màu nền và màu chữ cho mọi ứng dụng, tôi sẵn sàng không bao giờ tùy biến theme nữa
      Tôi thích chữ trắng trên nền đen. Không phải chữ trắng trên nền xám đậm, và tôi còn ghét hơn chữ không hoàn toàn trắng trên nền ngả vàng
      Tôi biết điều đó không ảnh hưởng nhiều đến thời lượng pin, và từ góc nhìn thiết kế thì nền xám đậm được xem là tốt hơn, nhưng tôi không quan tâm. Đây là màu chỉ mình tôi nhìn thấy trên thiết bị tôi dùng, vậy tại sao việc người khác thích gì lại quan trọng?
      Không hiểu vì sao, gần như không thể làm được điều này nếu không tự tạo theme GTK. Tôi cũng không tìm được theme do người khác làm chỉ đổi nền thành đen mà không nhét thêm gu riêng vào icon, khoảng cách, v.v.
      Dù vậy tôi vẫn biết ơn vì ít nhất còn có thể làm được. Vì các ứng dụng không phải GTK hay Qt thường thậm chí không có chức năng theme
      Ngoại trừ các trình soạn thảo code, tôi hầu như chưa thấy ứng dụng Electron nào cho chọn màu nền đen hoàn toàn. Vì vậy với những thứ như Slack hay Discord, tôi cố chạy trong trình duyệt và tùy biến bằng CSS người dùng
      Tôi lờ mờ biết rằng ứng dụng Electron cũng có thể làm được bằng thứ gì đó như developer mode, nhưng tôi không muốn tốn thời gian tái hiện trong ứng dụng một thứ vốn đã chạy được trong trình duyệt
      Nếu diễn đạt lập luận này là “đừng dùng theme tùy chỉnh” thì sức thuyết phục giảm đi. Vì gần như không có cách dễ dàng nào để có được cùng mức linh hoạt mà không gây ra các vấn đề họ nêu
      Nó giống như thấy bạn bè hay người thân dùng cùng một mật khẩu cho mọi trang, rồi đồng thời thuyết phục họ xóa Windows, chuyển sang Linux và cài trình quản lý gói. Khi trộn sở thích chủ quan với lời khuyên kỹ thuật khách quan, sức thuyết phục của phần sau cũng bị pha loãng
    • Trông như một trang Cá tháng Tư vậy, khó tin thật
    • Gần như là nhảm nhí hoàn toàn
  • Có lẽ nên tránh dùng logo Apple và icon Finder như ảnh chụp màn hình phía trên của theme này
    Và tôi cũng không rõ chính xác kiểu Nautilus đổi từ “Default” sang “Majave” khác nhau ở điểm nào
    Ngoài ra thì theme trông khá ổn

    • Các icon Launchpad, Activity Monitor, App Store, Music, Safari trong ảnh chụp màn hình cũng có bản quyền
    • Khác biệt là sidebar kết thúc bên dưới thanh tiêu đề, hay kéo dài lên tới thanh tiêu đề
    • Ở mặc định thì sidebar có chiều cao toàn bộ
    • Apple có lẽ nhiều khả năng sẽ yêu cầu gỡ xuống. Trước đây họ cũng từng làm vậy với các dự án look and feel tương tự
  • LinuxScoop đã làm các theme phong cách macOS cho KDE, GNOME, XFCE qua nhiều năm và nhiều phiên bản: https://invidious.baczek.me/channel/UCNnUnr4gwyNmzx_Bbzvt29g...

  • Dùng theme mặc định của GNOME
    Tốt, điềm đạm, giản dị. UI hiển thị đúng như nhà phát triển dự định, và tôi cũng không cần tốn thời gian đi tìm theme
    Cũng không cần phải che giấu Linux. Tại sao phải làm vậy? GNOME trông đẹp hơn macOS
    Với tôi, nơi theme quan trọng là shell và mã nguồn. Vì khả năng đọc rất quan trọng và tôi muốn nó trông đẹp. Ngay cả trên TTY dùng screen tôi cũng để ý

    • libadwaita là một bước ngoặt lớn. Giờ đây GNOME bỗng có các ứng dụng trông đẹp nhất trong số mọi môi trường desktop và nền tảng
      Hy vọng WhiteSur hữu ích cho các nhà phát triển OSX dùng GTK, nhưng tôi không muốn nó được đưa vào GNOME và Linux
  • Tôi nhận ra rằng các bản sao macOS Dock không dùng cùng kiểu phóng to như Apple. Đó là vì Apple đã đăng ký bằng sáng chế cho nó

    • Tôi không biết điều đó, nhưng có vẻ các bằng sáng chế đó đã hết hạn
      https://patents.google.com/patent/US7434177B1/en
      https://patents.google.com/patent/US8640045B2/en
      Dù sao thì theme cụ thể này dường như dùng gần như bản sao nguyên xi của một số biểu tượng Apple, nên có vẻ tác giả cũng không quá bận tâm đến quyền sở hữu trí tuệ
    • Nội dung yêu cầu bảo hộ của bằng sáng chế là đặt khoảng cách d1, d2 giữa con trỏ và mép ô, tính d1′, d2′ bằng hàm sin rồi xác định tỷ lệ phóng
      Cái này khó có thể xem là một phát minh
    • Theme này có vẻ không ngại sao chép nhiều biểu tượng và mảnh ghép của macOS, nên dường như đó không phải là lý do
  • Khá bất ngờ khi thấy nó xuất hiện ở đây. Tôi đã dùng thử trong vài năm, và vẫn tin rằng thiết kế của Apple nhìn chung tốt hơn hầu hết các theme GNOME/KDE. Tuy nhiên, có khá nhiều lỗi GNOME, nên sau đó tôi đã chuyển sang môi trường khác