Tùy chỉnh GNOME Desktop trên Ubuntu: GNOME Tweaks vs Extensions — Cách nào hiệu quả hơn cho Developer?

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

GNOME mặc định: Đủ dùng nhưng thiếu nhiều thứ

Sau khi cài Ubuntu xong, GNOME Desktop trông ổn — nhưng nếu bạn là developer ngồi màn hình 8–10 tiếng/ngày, sẽ nhanh chóng nhận ra thiếu nhiều thứ: không có app dock tùy chỉnh được, không có system monitor ở thanh trên, window snapping chỉ 2 cột, nút minimize/maximize bị ẩn mặc định… Mình đã dùng Ubuntu như vậy 3 tháng trước khi khám phá ra GNOME Tweaks và Extensions.

Vấn đề không phải GNOME kém. Phần lớn tính năng hay bị giấu đi, hoặc cần cài thêm mới dùng được. Ba hướng dưới đây — từ đơn giản nhất đến full control — sẽ cho thấy cách nào phù hợp với use case của bạn.

Ba hướng tùy chỉnh GNOME: So sánh thực tế

1. GNOME Tweaks — Mở khóa cài đặt ẩn

Nghĩ GNOME Tweaks như cái chìa khóa mở ngăn kéo ẩn. GNOME Settings chỉ show những gì người dùng phổ thông cần — Tweaks mở nốt phần còn lại: font rendering, titlebar buttons, startup applications, theme, icon pack…

  • Ưu điểm: Giao diện đơn giản, thay đổi áp dụng ngay, không lo crash
  • Nhược điểm: Chỉ chỉnh được những gì đã có sẵn trong GNOME, không thêm được tính năng hoàn toàn mới

2. GNOME Shell Extensions — Thêm tính năng hoàn toàn mới

Shell Extensions là JavaScript plugins nhúng thẳng vào GNOME Shell. Khác với Tweaks, chúng không chỉ chỉnh cái có sẵn — mà thêm hẳn tính năng mới: panel widget, system stats, workspace indicator, clipboard history…

  • Ưu điểm: Cực kỳ linh hoạt, cộng đồng lớn (1000+ extensions trên extensions.gnome.org)
  • Nhược điểm: Extension không tương thích GNOME version hiện tại có thể crash Shell. Kiểm tra version support trước khi cài.

3. dconf/gsettings — Dành cho power user

Còn dconf? Đó là nơi GNOME lưu toàn bộ config — từng keybinding, từng toggle, mọi thứ bạn chỉnh qua Tweaks hay Extensions đều ghi vào đây. Bạn có thể thay đổi bất kỳ thứ gì, kể cả những gì Tweaks không show ra:

# Xem tất cả settings của GNOME desktop interface
gsettings list-recursively org.gnome.desktop.interface

# Ví dụ: bật/tắt animations (giúp máy yếu chạy mượt hơn)
gsettings set org.gnome.desktop.interface enable-animations false

# Đặt lại về mặc định
gsettings reset org.gnome.desktop.interface enable-animations
  • Ưu điểm: Full control, có thể script hóa, backup/restore dễ dàng
  • Nhược điểm: Cần biết đúng key schema, set sai kiểu dữ liệu có thể break config

Cách nào phù hợp với ai?

Sau 2 năm dùng Ubuntu làm máy chính, mình phân loại như này:

  • Mới cài Ubuntu lần đầu: Bắt đầu với GNOME Tweaks — an toàn, nhanh, không lo crash
  • Muốn thêm tính năng (dock cố định, system monitor, clipboard history…): Extensions là bắt buộc
  • Setup tự động cho nhiều máy (onboarding dev team, provisioning): dconf dump/load là cách duy nhất đúng

Công ty mình chạy Ubuntu 22.04 cho toàn bộ dev team. Thay vì guide từng người qua GUI, mình dump config bằng dconf dump, push lên private git repo — ai setup máy mới cũng chỉ cần chạy một lệnh là xong, nhất quán từ ngày đầu.

Hướng dẫn cài đặt: Từng bước cụ thể

Bước 1: Cài GNOME Tweaks

sudo apt update
sudo apt install gnome-tweaks -y

# Mở app
gnome-tweaks

Những thứ nên chỉnh ngay sau khi mở:

  • Windows → Titlebar Buttons: Bật Minimize và Maximize — GNOME mặc định ẩn 2 nút này, rất khó chịu
  • Fonts → Scaling Factor: Tăng lên 1.1 hoặc 1.2 nếu màn hình HiDPI (QHD/4K)
  • Appearance → Themes: Chọn Adwaita-dark hoặc cài theme bên ngoài
  • Startup Applications: Dọn bớt những app không cần thiết khi khởi động

Bước 2: Cài Extensions Manager

Trước đây cài extensions qua browser + host connector khá rườm rà. Giờ có Extensions Manager app làm hết trực tiếp từ desktop:

# Cách 1: apt (có trên Ubuntu 22.04+)
sudo apt install gnome-shell-extension-manager -y

# Cách 2: Flatpak — luôn có version mới nhất (recommended)
flatpak install flathub com.mattjakeman.ExtensionManager

Mở app, dùng tab Browse để tìm và cài extensions, tab Installed để bật/tắt từng cái.

Bước 3: 5 Extensions thiết yếu cho Developer

Tested trên Ubuntu 22.04 (GNOME 42) và Ubuntu 24.04 (GNOME 46):

Dash to Dock — Biến Activities dash thành dock cố định ở cạnh màn hình, tương tự macOS. Vị trí (bottom/left/right), kích thước icon, auto-hide — tất cả đều config được. Extension đầu tiên mình cài trên mọi máy Ubuntu mới, và cũng là phổ biến nhất trong danh mục này.

TopHat — CPU/RAM/Network usage ngay trên top panel. Không cần mở System Monitor riêng — chỉ liếc lên thanh trên là biết ngay process nào đang ăn RAM đột biến.

Clipboard Indicator — Giữ lịch sử clipboard, không mất text sau mỗi lần copy mới. Cái này mình dùng nhiều nhất khi làm việc với log hoặc cần copy nhiều đoạn config từ terminal cùng lúc.

Caffeine — Một click để tắt screensaver và auto-suspend. Hữu ích khi chạy build dài hoặc theo dõi log mà không muốn màn hình tắt giữa chừng.

GSConnect — Kết nối Android với Linux qua WiFi local (tương tự KDE Connect). Nhận notification điện thoại trên desktop, share clipboard 2 chiều, transfer file không cần cáp.

Bước 4: Backup config với dconf

Setup xong thì backup ngay — đừng để mất công:

# Backup toàn bộ GNOME settings ra file
dconf dump / > ~/gnome-settings-backup.conf

# Restore trên máy mới — một lệnh, xong toàn bộ
dconf load / < ~/gnome-settings-backup.conf

# Hoặc backup chỉ phần extensions (nhẹ hơn, ít rủi ro hơn)
dconf dump /org/gnome/shell/extensions/ > ~/extensions-config.conf
dconf load /org/gnome/shell/extensions/ < ~/extensions-config.conf

File backup này mình push lên private git repo cùng dotfiles. Mỗi lần setup máy mới hay reinstall Ubuntu, một lệnh là restore xong toàn bộ — tiết kiệm khoảng 30 phút setup thủ công.

Mẹo thực chiến ít người biết

Restart GNOME Shell không cần logout (chỉ trên X11)

# Gửi signal SIGUSR1 để reload GNOME Shell — không mất session
killall -3 gnome-shell

# Kiểm tra đang chạy X11 hay Wayland
echo $XDG_SESSION_TYPE
# Trả về "x11" hoặc "wayland"

Wayland không hỗ trợ trick này — buộc phải logout để reload Shell. Đây là điểm trừ lớn của Wayland khi đang debug extension bị crash.

Debug extension bị crash

Extension crash thường âm thầm, không có popup nào báo. Xem log nhanh nhất bằng:

# Xem GNOME Shell journal log real-time
journalctl -f _COMM=gnome-shell

# Lọc theo extension UUID cụ thể
journalctl -f [email protected]

Chỉnh theme chỉ cho một app

Hữu ích khi muốn force dark theme cho một app cụ thể trong khi GNOME đang ở light mode:

# Force dark theme khi launch app
GTK_THEME=Adwaita:dark gedit &

# Hoặc thêm vào .bashrc thành alias
alias gedit-dark='GTK_THEME=Adwaita:dark gedit'

Workflow sau khi cài Ubuntu mới

Sau nhiều lần cài đi cài lại, mình rút ra được quy trình này:

  1. Cài GNOME Tweaks → bật minimize/maximize button, chỉnh font scaling, bật dark theme
  2. Cài Extensions Manager → cài 5 extensions ở trên, cấu hình từng cái
  3. Fine-tune qua gsettings cho những thứ Tweaks không cover (animations, keybindings…)
  4. dconf dump backup toàn bộ, commit vào dotfiles repo

Lần đầu mất khoảng 45 phút. Lần thứ hai? 5 phút — restore từ backup là xong. Đó mới là lý do dconf đáng học hơn những gì nó trông có vẻ: không chỉ là tool cho power user, mà là cách duy nhất để không phải làm lại từ đầu mỗi lần format máy.

Share: