Hướng dẫn Linux

[SERIES Hướng dẫn Rice hệ điều hành Linux] Phần 2: Windows Manager, Desktop Enviroment, Desktop Manager

Đừng quên xem Phần 1: Giới thiệu về ricing

I. Giới thiệu

Ah, WM, DE, DM, 3 cái thứ chắc chắn bất kì một bài giới thiệu về 1 distro Linux nào cũng sẽ dề cập qua. Nếu coi cái hệ điều hành Linux đang cài trên máy các bác các bác là 1 cái cửa hàng bánh kem, thì Desktop Manager sẽ là cái quầy chọn bánh, Desktop Enviroment là cái nhân bánh và Windows Manager là cái phần kem phủ lên bánh…

Ok, đây là cái ví dụ gần nhất em có thể đem lại về 3 thứ này rồi. Well… đúng là vậy nhưng thực chất là không, WM và DE có một quan hệ lỏng lẻo với nhau nên thành ra mới dẫn tới lý do thằng này viết về phần này trước.

Để cho tiện viết thì trong bài Windows Manager, Desktop Enviroment, Desktop Manager sẽ lần lượt viết tắt là WM, DE, DM.
Và phần này sẽ hơi dài đấy… nên cố gắng nhé

II. Desktop Manager <Trình quản lý desktop>

Dù sao thì, bắt đầu từ cái quầy bánh trước. Desktop Manager quản lý việc đăng nhập, chọn user, và đồng thời cũng sử dụng để chọn Windows Manager/Desktop Enviroment mà người đăng nhập sẽ sử dụng như một cái quầy bánh. Tuy nhiều distro dành cho người dùng như Ubuntu, Mint,… buộc phải sử dụng cái này nhưng thật ra thì nếu những ai không cần cũng chả cài cũng được. Lý do đơn giản là một người có thể đăng nhập vào 1 cái tty và startx từ đó (Nếu ai không biết tty là gì Ctrl + Alt + F1/F2/…/F7), nhưng đối với những ông chuyên có thói sử dụng nhiều DE cùng một lúc thì nên có một cái Desktop Manager để tiện việc chuyển đổi.

Vậy, đối với mấy ông thích tùy biến thì ông nghịch những gì? Well, giao diện, và đây là một số loại có thể dùng.

  • GDM: DM được phát triển bởi Gnome Foundation, khá ổn để sử dụng và chắc là ai dùng Ubuntu cũng quen với anh này rồi. Không nói gì nhiều, tuy nhiên, GDM bị một vấn đề là bó khá chặt tại một giao diện cố định và thứ có thể thay đổi được chỉ là tông màu. Đơn giản, dễ dùng nhưng đổi lại sự tùy biến
  • SDDM: Trái ngược với Gnome thì SDDM được sử dụng tại các distro có KDE cài mặc định (Kubuntu, KDE Neon,…) và mọi thứ thì như GDM, trừ việc, lần này thực sự có theme để dùng https://store.kde.org/browse/cat/101/. Vấn đề ở đây là tuy có bát mắt hơn một tẹo, các theme vẫn mang một xu hướng chung nhất định cho dù có đa dạng hơn 
  • LightDM: Cái này có nhiều thứ để nói, 1 là trước đây anh này không hỗ trợ Wayland, chả biết giờ có không? 2 là anh này lại là thằng có nhiều tiềm năng nhất để tùy chỉnh. Nếu có gì, tại wiki của Arch Linux có đề cập tận 7 greeter khác nhau có thể tải về (Tức các anh em sẽ có thể thử rất nhiều loại greeter khác nhau từ các distro khác nhau), và nhắc đến đó, lightdm-webkit2 lại là một con quái vật. Bản thân nó sử dụng Webkit2 rồi nên đống theme của nó đâm ra có nhiều kiểu hơn SDDM, thậm chí còn có thể thay đổi tông màu nếu người viết theme có thêm tinh năng đó. Tuy với 1 số lượng theme ít hơn hẳn SDDM, nếu ai biết dùng Webkit2, có trình frontend và muốn tùy biến cao cho cái màn hình đăng nhập chỉ để flex với đồng nghiệp thì xin mời. Chỉ có điều là LightDM chỉ nhẹ nếu greeter nhẹ, vậy nên ai muốn lựa chọn nhẹ nhất vẫn nên theo GDM. hoặc dùng gtk-greeter của LightDM. Nó chắc chắn là loại DM mà có thể quảng cáo “n trong 1 tính năng” trên ti vi đấy.

Những DM sử thuộc dạng giao diện console thì ta sẽ không bàn tới tại đây, nếu có gì, hãy tra wiki của Arch, chắc chắn sẽ không thất vọng đâu.

III. Windows Manager và Desktop Enviroment (Quản lý của sổ và Môi trường desktop)

Câu hỏi ở đây là tại sao lại phải gộp 2 phần này với nhau, và tại sao 2 thứ này lại không phải là cái bánh phủ kem?
  • Windows Manager: Quản lý hành vi cửa sổ chương trình, cái này bao gồm những thứ như: Viền trang trí quang của sổ, nút giấu, phóng to, tắt chương trình.
  • Desktop Enviroment: Quản lý hành vi của máy tính cũng như giao diện chung của các chương trình nếu nó dùng framework mà DE đó hỗ trợ. Cái này bao gồm: Các nút phím tắt, theme, Tiết kiệm năng lượng,… Nói chung, việc nó làm là đưa ra một cách quản lý giao diện người dung cho tất cả những chương trình nó hỗ trợ.
P.S: Qua phần đau đầu rồi, buổi sau sẽ cố viết ngắn lại.

Vấn đề ở đây là, một người hoàn toàn có thể sử dụng Windows Manager mà không cần tới Desktop Enviroment và nhưng 1 Desktop Enviroment nhiều khi lại cần 1 Windows Manager đến một mức nào đó để hiện chương trình :(. Việc thay đổi những thứ như viền trang trí xung quanh cửa sổ chương trình, các nút tắt, thu nhỏ, phóng to lại hay được quản lý bởi Windows Manager.
Vì thế, nếu những ai đi theo lựa chọn sử dụng giao diện một cách tối thiểu nhất có thể (sử dụng Terminal Emulator để làm hầu hết mọi thứ, bar, dock không dựa vào GTK hay QT) thì thường chả cài Desktop Enviroment mấy.

Tuy thế, với tư cách là một thằng vẫn còn là con người trên cõi thế gian này, hãy cài Desktop Enviroment cho em trừ khi các bác phát dại mà tự đọc và chỉnh config bằng vim trên tất cả mọi thứ.
Người thường chia WM, DE làm 2 mục để liệt kê cho dễ, nhưng riêng em sẽ liệt kê kiểu này.
Những DE, WM nên đi kèm với nhau:

  • Gnome và Mutter: Gnome là Desktop Enviroment và Mutter là Windows Manager, Gnome Foundation hiện tại đang chịu trách nghiệm phát triển cái DE và WM này, đồng thời cũng phát triển GTK. Với Mutter, khả năng có thể cài đặt plugin và extension cùng với Gnome shell cài mặc định là điều khiến Gnome được ưa chuộng đến cái mức mà cả Linus, vâng, cha đẻ của cái Kernel Linux sử dụng (ông chuyển từ XFCE sang KDE rồi về Gnome). Vì thế, nếu đã là Gnome và yêu quý những thứ như Dash to Dock hay đại loại, đừng bao giờ bỏ Mutter. Tuy thế, Gnome Foundation lại gặp phải rất nhiều chỉ trích vì liên tục loại bỏ những thứ khá đỗi quen thuộc với người dùng nhưng miễn là các plugin đi kèm với mutter có thể dùng được thì vấn đề không lớn lắm.
  • KDE và KWin: Phải thú thật một điều, bộ đôi DE, WM này lại được yêu thích vì nó là cái thằng duy nhất khiến một Distro Linux nhìn không khác gì một cái con Mac dễ dàng nếu không nhìn kỹ. Và, KWin phải nói là một trong những WM có rất nhiều thủ đoạn, những thứ như: Khiến cho compositor bỏ qua việc render 1 chương trình nào đó nhằm loại bỏ việc bị khóa chăt 60fps, hỗ trợ blur hoàn hảo và sử dụng Qt làm framework khiến nó đôi khi cũng được cài cùng các DE khác. Về phía KDE có hỗ trợ Wayland thậm chí mặc định có những thứ như Terminal hay File Manager nhìn qua trông có vẻ đầy đặn hơn Gnome và thậm chí cái thằng này cực kì thân thiện với những ai dùng máy tính chuyển qua từ những DE như Cinnamon hay thậm chí Windows khiến nó trở thành một đối thủ rất tốt với Gnome. Nhưng Kwin, KDE sẽ chỉ tuyệt với nếu đi cùng với nhau. Lý do là 2 thằng này có những bộ theme đi đôi với nhau và không thể dùng tại DE/WM nào khác nên thường không thể bỏ được. Tuy nhiên, cái quan hệ này bớt chặt hơn Gnome một tẹo. Nếu ai vẫn muốn dùng riêng KWin vì những thứ nó đem lại thì vẫn có thể xin mời.

Những thằng DE, WM tách nhau ổn:

  • Xface: Lý do thằng này không đề cập đến Xfwm4 là do cho dù Xfce đang ở ngưỡng của “ông hoàng của sự nhẹ, ổn định” là vì Xfwm4 nhìn chung vẫn thua xa với các WM khác được thiết kế nhẹ tương đương nhưng vượt trội về mặt tùy biến. Và nếu KDE và Gnome là 2 thằng sumo thì thằng Xfce ăn ram cực nhẹ. Một chiệc máy Arch Linux, cài Xfce vào chiếm khoảng 350MB ram (thậm chí chưa đến 200MB) khi mới khởi động. Và với việc Xfwm4 và Xfce không dựa vào nhau nhiều (tuy có cài cùng nhau) như 2 em trên thì việc bỏ Xfwm4 và sử dụng 1 Windows Manager khác đi kèm là điều khá phổ biến.
  • Openbox:  Nếu ai kêu đây là lựa chọn số một về mặt Windows Manager để thế chỗ Xfwm4 hay bất kì 1 Windows Manager nào khác hay để chạy riêng không dùng 1 Desktop Enviroment nào thì thằng này cũng chẳng phản đối được. Tuy cái diện mạo trông có vẻ cổ lỗ (thậm chí không có compositor để hỗ trợ opacity hay blur etc) nhưng Openbox lại mang đến rất nhiều công cụ đề tùy chỉnh viền cửa sổ chương trình, thậm chí khuyến maĩ thêm cả 1 cái menu để mở chương trình trong khi vẫn cực kì nhẹ. Đã từng thử chạy riêng em này và nó có thể chưa chạm mức 100MB khi mới khởi động. Nói chung, cho dù đi kèm với ai đó hoặc chơi riêng, em này chấp tất.
  • i3: Chào mừng đến với cánh cửa của Tiling Windows Manager. Yep, Tiling windows Manager có nghĩa là gì. Khác với kiểu quản lý cửa sổ bằng cách truyền thống trên Windows, Mac, hãy quên hết tất cả những thứ như nút tắt màn hình, phóng to, thu nhỏ và con chuột, những điều đó được thay thế bằng cả cái bàn phím của mình, đó chính là Tiling WM. Nếu ai là những người cực kì thích sử dụng hotkey và khá ghét việc đưa tay dùng chuột, i3 thường là bước khởi đầu. Và như openbox, tuy thiếu một giao diện để tùy chỉnh và người rice mới sẽ phải học cách đọc config một chút, nó có thể di kèm với 1 DE hoặc dùng riêng trong khi vẫn khá nhẹ. Cũng phải nhắc thêm là có một đàn em của i3 là i3-gaps, căn bản là i3 mặc định không để khoảng trống giữa các cửa sổ chương trình, i3-gaps cho phép tùy chỉnh cái này.
  • bspwm: Cái thằng WM này chuyên được nói cạnh i3 và cũng là một trong những WM thằng này yêu thích nhất. bspwm với bản update hiện tại có một cách quản lý cửa sổ logic và khoa học, dễ làm quen hơn i3 nhiều. Thậm chí, bspwm cũng dựa vào shell script nhiều hơn là i3 khiến cho việc quản lý bố cục file hợp lý hơn là i3. Tuy không có gì nhiều để nói về thằng này lắm vì nó chứa những gì mà một Tiling WM có, nhưng dẫu sao, cũng là một lựa chọn rất đáng để thử.
  • herbstluftwm: Như 2 thằng trên, nhưng thật sự, thật sự thú vị để dùng vì mọi thứ đều phải xử lý thông qua script. Và ok ok, tuy là cái này hơi khó để học dùng, nhưng khi mọi thứ đã đâu vào đó. Việc quản lý cửa sổ, trang trí cửa số nhìn trông khá ngầu và có thể khiến bạn bè, đồng nghiệp phát hoảng. Ngồi ghế máy, mở vài terminal ra, nhìn xung quanh, mỗi lần dùng em này, hãy chắc mẩm rằng màn hình mình nhìn nó sexy hơn nhiều những ông khác. Và một lần nữa, có thể dùng riêng ra hoặc đi kèm với 1 DE nào đó, không sao cả.
  • AwesomeWM: Thằng này là lv C++ trong giới ricing. Phải dồn rất nhiều não để học, nhưng sau đó, Windows Manager này lại mở vô vàn khả năng sáng tạo, Awesome đi theo đúng cái tên “tuyệt với” của nó với vai trờ là 1 Dynamic Window Manager – Tức là kết hợp tính năng giữa một Floating WM (như Kwin, Openbox, Mutter,..) và 1 Tiling WM (như i3, bspwm, herbstuft). Một thằng rất khó để nhai và tốn thời gian để học. Nhưng này, cái thứ này nếu làm chủ được. Thì thành quả là 1 tác phẩm nghệ thuật.

Phew, viết nhiều quá, ngủ trưa được rồi. Nói chung, việc chọn DE, WM ra sao cũng sẽ luôn tùy vào sở thích cá nhân, và không phải cái gì quá đồ sộ như Awesome cũng tốt. Mẹo ở đây là rice tốt nên vẫn dựa vào thói quen làm việc. hãy thử dùng lần lượt những DE, WM này và sau đó nghĩ xem mình cảm thấy thoải mái nhất với thằng nào sau 1 thời gian làm quen rồi mới quyết định rice. Ảnh dưới là rice AwesomeWM của u/EmpressNoodle, một trong những người làm rice bát mắt nhất thằng này từng thấy.

Mọi góp ý hay băn khoăn gì các bác cứ để dưới comment, em sẽ cố trả lời.
Những bài chi tiết về từng loại DE, WM, cách cài các kiểu sẽ có trong tương lai. Đây mới chỉ là bài giới thiệu sơ qua thôi ạ.

Visits: 4828