Sự hỗn loạn của các cửa sổ dạng nổi (Floating Windows)
Quản lý một dự án phức tạp trên desktop Ubuntu tiêu chuẩn thường mang lại cảm giác như đang chiến đấu với chính máy tính của mình. Tôi nhớ mình đã từng cố gắng cân bằng ba cửa sổ terminal, một trình duyệt tài liệu, Slack và VS Code trên một màn hình 27 inch duy nhất. Trên GNOME, tôi mất nửa ngày để Alt-Tab qua các chồng cửa sổ chồng chéo hoặc kéo các góc để thay đổi kích thước chúng. Hệ thống của tôi ngốn 1,5GB RAM ở chế độ chờ chỉ để duy trì môi trường desktop. Đó là một sự lãng phí lớn cả về diện tích màn hình lẫn năng lượng tinh thần.
Tại sao các Desktop truyền thống lại làm chậm tiến độ của bạn
Môi trường mặc định của Ubuntu sử dụng mô hình “xếp chồng” (stacking). Nó coi các cửa sổ như những tờ giấy vật lý trên bàn làm việc. Chúng chồng lên nhau, ẩn sau nhau và yêu cầu điều chỉnh thủ công liên tục. Điều này tạo ra ba điểm nghẽn chính:
- Liên tục phải dùng chuột: Bạn làm gián đoạn luồng gõ phím mỗi khi cần thay đổi kích thước cửa sổ.
- Tải nhận thức (Cognitive Load): Việc tìm kiếm một cửa sổ cụ thể trong số 10 ứng dụng đang mở làm tiêu tan trạng thái làm việc sâu (deep work) của bạn.
- Cồng kềnh tài nguyên: Các môi trường nhiều tính năng như GNOME hay KDE chạy hàng tá tiến trình chạy ngầm mà hầu hết các lập trình viên không bao giờ chạm tới.
Chọn công cụ: GNOME, Sway, hay i3wm?
Tôi đã xem xét một vài lựa chọn thay thế trước khi chuyển đổi. GNOME ổn định nhưng khó lược bỏ các thành phần thừa. Sway là một lựa chọn hiện đại dựa trên Wayland, nhưng thường gặp khó khăn với driver Nvidia hoặc các công cụ chia sẻ màn hình cụ thể.
i3wm (i3 Window Manager) vẫn là tiêu chuẩn vàng cho X11 display server. Nó cực kỳ nhẹ, sử dụng file cấu hình dạng văn bản thuần túy và coi các cửa sổ của bạn như các ô (tiles) trong cấu trúc cây. Nó không cố gắng trở thành một bộ desktop đầy đủ; nó chỉ quản lý các cửa sổ. Đối với một workflow chuyên nghiệp, đó chính xác là những gì bạn cần.
Cách chuyển đổi an toàn
Đừng xóa cài đặt hiện tại của bạn vội. Cách thông minh nhất là cài đặt i3wm song song với GNOME. Điều này giúp bạn có phương án dự phòng trong khi tinh chỉnh cấu hình. Sau ba năm quản lý các server Linux thực tế, tôi học được rằng đừng bao giờ nhảy vào một môi trường mới mà không có lưới an toàn. Hãy giữ desktop hiện tại cho đến khi thiết lập i3 của bạn mang lại cảm giác quen thuộc.
1. Cài đặt các thành phần thiết yếu
Bắt đầu bằng cách cập nhật các kho lưu trữ. Bạn sẽ cần nhân i3 cộng với rofi để chạy ứng dụng, feh để cài hình nền và i3status cho thanh hệ thống. Chạy lệnh này:
sudo apt update
sudo apt install i3 i3status i3lock rofi feh xcompmgr
Sau khi cài đặt xong, hãy đăng xuất. Tại màn hình đăng nhập, nhấp vào biểu tượng bánh răng nhỏ và chọn “i3” trước khi nhập mật khẩu.
2. Làm chủ file cấu hình
Trong lần chạy đầu tiên, i3 sẽ đề nghị tạo một cấu hình mặc định. Hãy chấp nhận nó. Khi được yêu cầu chọn phím “Mod”, hãy chọn Windows Key (Mod4). Sử dụng Alt (Mod1) thường gây xung đột với các phím tắt trong các IDE như IntelliJ hoặc VS Code.
Cấu hình của bạn nằm tại ~/.config/i3/config. Hãy mở nó bằng trình soạn thảo. Tôi sử dụng các tinh chỉnh sau để làm cho môi trường làm việc hiệu quả ngay lập tức:
# Đặt phím Windows làm phím modifier chính
set $mod Mod4
# Sử dụng rofi để có trình khởi chạy ứng dụng gọn gàng hơn
bindsym $mod+d exec rofi -show run
# Điều hướng cửa sổ bằng các phím Vim (h, j, k, l)
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right
# Di chuyển các cửa sổ trong lưới
bindsym $mod+Shift+h move left
bindsym $mod+Shift+j move down
bindsym $mod+Shift+k move up
bindsym $mod+Shift+l move right
# Khởi chạy terminal ưu tiên của bạn
bindsym $mod+Return exec gnome-terminal
3. Trau chuốt giao diện
Mặc định, i3 trông giống như một thứ gì đó từ năm 1995. Để hiện đại hóa nó, bạn cần xử lý độ trong suốt và hình nền. Thêm các dòng này vào cấu hình của bạn để tự động chạy compositor và đặt hình nền khi đăng nhập:
# Khởi động xcompmgr để tạo hiệu ứng đổ bóng nhẹ
exec_always --no-startup-id xcompmgr -c &
# Đặt ảnh nền của bạn
exec_always --no-startup-id feh --bg-fill /home/user/pictures/wallpaper.jpg
Xây dựng Workflow chuyên nghiệp
Điều kỳ diệu thực sự xảy ra khi bạn gán các tác vụ cụ thể cho các workspace riêng biệt. Tôi để terminal ở Workspace 1, trình duyệt ở Workspace 2 và trình soạn thảo mã ở Workspace 3. Thiết lập này đã giảm mức sử dụng RAM khi nhàn rỗi của tôi từ 1,5GB xuống còn 320MB.
# Buộc các ứng dụng mở trên các workspace cụ thể
assign [class="Firefox"] $ws2
assign [class="code-oss"] $ws3
assign [class="Slack"] $ws10
Để tìm chính xác tên “class” của bất kỳ ứng dụng nào, hãy chạy xprop trong terminal và nhấp vào cửa sổ mục tiêu.
Hiệu quả trên nhiều màn hình
i3 xử lý đa màn hình tốt hơn bất kỳ desktop truyền thống nào. Mỗi màn hình có workspace độc lập riêng. Bạn có thể hoán đổi các workspace giữa các màn hình ngay lập tức. Tôi sử dụng phím tắt này để di chuyển chế độ xem hiện tại sang màn hình phụ:
# Đẩy workspace hiện tại sang màn hình tiếp theo
bindsym $mod+x move workspace to output next
Những sai lầm cần tránh
Nhiều người dùng lãng phí hàng ngày trời để cố gắng làm cho i3 trông giống macOS với các hiệu ứng mờ (blur) nặng nề và các thanh công cụ phức tạp. Đừng rơi vào cái bẫy đó. Mục tiêu là tốc độ. Hãy tập trung vào việc ghi nhớ các phím tắt trước. Hãy để một bản phím tắt (cheat sheet) vật lý trên bàn làm việc trong tuần đầu tiên. Nếu một ứng dụng bị treo, hãy nhớ lệnh “kill”: $mod+Shift+q. Nó nhanh hơn bất kỳ Task Manager nào.
Lời kết
Chuyển sang i3wm là để lấy lại sự tập trung của bạn. Bằng cách loại bỏ sự cồng kềnh của một desktop truyền thống, bạn lấy lại tài nguyên hệ thống và loại bỏ những xao nhãng do việc dùng chuột gây ra. Hãy bắt đầu với một cấu hình đơn giản và kho lưu trữ Git. Một khi phản xạ cơ bắp đã hình thành, việc quay lại các cửa sổ dạng nổi sẽ mang lại cảm giác như đang cố gắng chạy marathon bằng giày leo núi vậy.

