Polybar và i3-gaps | Configure mọi thứ trên Linux (Phần 1)

1. Giới thiệu Việc có một môi trường desktop mạnh và ổn định là rất tốt cho một lập trình viên có thể hoàn thành công việc của họ một cách hoàn hảo nhất. Bên cạnh đó một yếu tố giúp bản thân mình tập trung hơn khi làm việc đó là giao diện của

1. Giới thiệu

Việc có một môi trường desktop mạnh và ổn định là rất tốt cho một lập trình viên có thể hoàn thành công việc của họ một cách hoàn hảo nhất. Bên cạnh đó một yếu tố giúp bản thân mình tập trung hơn khi làm việc đó là giao diện của máy mình, nếu mình có một bố trí (Layout) đẹp cho màn hình, các cửa sổ transparent xếp chồng lên nhau (hoặc là nằm cạnh nhau), thoải mái code trong khi vẫn ngắm nhìn hình nền (background) của bản thân điều đó khiến tinh thần mình rất thoải mái.

Bạn cũng muốn có một Desktop nơi mà mình có thể tự tinh chỉnh mọi thứ theo ý muốn, mềm mại uyển chuyển hay mạnh mẽ dứt khoát, bạn muốn màn hình của bạn sẽ không còn những thanh taskbar cứng nhắc của Ubuntu hay những thẻ Terminal nằm chung trong 1 cửa sổ như Manjaro XFCE ? Nhưng bạn lại là một người sử dụng truyền thống ? Đã đến lúc thay đổi rồi. Hãy cùng mình cài ngay i3 Window Tilling ManagerPolybar packages để tự tay xây dựng cho mình một Desktop ưng ý ngay nào.

2. Các Packages

2.1 Linux Window Manager

Như tên gọi Trình quản lý cửa sổ Linux gợi ý, công việc của trình quản lý cửa sổ là điều phối cách hoạt động của các cửa sổ ứng dụng và chúng tự động chạy trên nền hệ điều hành của bạn để quản lý sự xuất hiện và vị trí của các ứng dụng đang chạy.

Một số LWM để bạn lựa chọn

Cũng giống với đa số các packages khác trong Linux như là picom, neofetch, alacritty, zsh,..., Tất cả các Window Manager đều có riêng cho mình một configuration file(config), nơi bạn có thể đặt để những lựa chọn của mình. Hầu hết các config đều đã được code sẵn hoặc giới thiệu cho bạn ( trong quá trình cài đặt và hướng dẫn) một phần để bạn tiện cho việc sử dụng ngay lần đầu tiên tải về. Tuy nhiên, sẽ có một số khó khăn cho bạn nào lần đầu tập xài các Window Manager, nhưng đừng nản chí, một khi bạn quen với việc chỉnh sửa config, mình tin là bạn sẽ dần bị nghiện với WM.

Những tính năng chung của Window Manager.

Layout

Bạn có thể mở một cửa sổ theo horizontal hoặc vertical, và có thể chuyển đổi giữa 2 loại này một cách luân phiên và tủy thích (một số các WM hỗ trợ việc tùy chỉnh cho một Window sẽ xuất hiện với tọa độ chính xác nào đó trên màn hình)

Key Binding:

Tất nhiên rồi, key binding thì ở đâu cũng có nhưng đây là phần quan trọng nhất trong WM, vì ở WM, các bạn thường tương tác trực tiếp với Shell, và thật sự là không có gì trên màn hình để các bạn có thể bấm vào và mở chương trình cả. Việc sử dụng quen với bàn phím và các phím tắt (hầu hết bạn có thể tự cài để quen hơn) sẽ làm tốc độ code, tốc độ sử dụng máy của bạn tăng lên nhanh chóng. Hãy thử tưởng tượng nếu như ngày xưa bạn có 3 cách. Một là rê con chuột từ đâu đó đến chỗ có icon và mất đến 2 lần click chuột liên tiếp. Hãy thử tưởng tượng các bạn có 2 màn hình, và icon nằm ở màn hình bên trái nhưng con chuột nằm ở màn hình bên phải (quao, xa đấy). Trường hợp thứ 2 là bật terminal lên và gõ vào<packages>, rồi đang trong lúc sử dụng lỡ tay tắt đi. Ôi thật là buồn, những thứ chúng ta làm đã bị mất hết. Cuối cùng, các bạn ấn nút Windows và gõ tên và Enter đây là cách tối ưu trong cả Window OS và các distro sử dụng Desktop Environment (DE) mà mình biết. Nhưng vẫn không thể nào so sánh được với bạn dùng tổ hợp Ctrl + Shihft + Y để mở một cửa sổ Firefox mới. Đúng không ạ.

Nói về việc xài WM cho người mới bát đầu thật sự rất khó. Nhưng mình nghĩ nếu các bạn thực sự muốn thì các bạn sẽ làm được mà thôi.

2.2 Polybar và Polybar-themes

Nhìn vào 2 bức ảnh trên có thể dễ dàng nhận thấy bức ảnh ở dưới có 2 thanh bar trên và dưới trông thật đẹp và chứa nhiều thông tin hơn là thanh bar tối giản ở trên và taskbar bên trái của Ubuntu 16.04

Và thậm chí chúng có thể đổi màu dựa theo hình nền của bạn

“Polybar aims to help users build beautiful and highly customizable status bars for their desktop environment, without the need of having a black belt in shell scripting. Here are a few screenshots showing you what it can look like” – Polybar’s developers team.

Nếu các bạn thấy những ô hình bình thành hay hình thang trong 2 cái bar trên desktop của mình, thì chúng được gọi là modules. Có rất nhiều modules được viết sẵn, những modules khác nhau có output khác nhau, có format khác nhau và chức năng khác nhau. Chúng có những thuộc tính thú vị khác nhau được các nhà phát triển dựng nên và bạn có thể tùy chọn những thứ bạn muốn sử dụng.

Một số bạn trên Github đã phát triển các tính năng này và configure chúng dưới dạng những modules với một themes nhất định và đồng đều. Repository đó được gọi là polybar-themes.

Một số Modules có sẵn trong polybar.

Launch menu with Rofi
  • rofi
  • dmenu
Các module cpu, mount, và memory

Và điều khiến cho mọi người thêm phần thích thú với polybar là họ cho phép sự sáng tạo của các bạn lan tỏa, đã có rất nhiều người sử dụng polybar tự viết ra module cho chính bản thân mình. Một số module rất hay có thể kể đến

Khoe một tí

Do mình cũng là người dùng Polybar và mình rất tò mò nên cũng đã viết ra được một module dự báo thời tiết như thế này.

Kết quả

Xem thêm về các module thú vị khác, tại đây

3. Installation

3.1 i3

3.1.1 Arch / Manjaro

Mình dịch theo những gì được viết ở đây

i3 packages có sẵn trên AUR nên bạn chỉ đơn giản thực hiện

sudo pacman -S i3

Các bạn có thể chọn giữ i3wm hoặc i3gaps.
Lưu ý: i3 có bao gồm một i3-bar có sẵn những module bạn muốn nhưng vì trong khuôn khổ bài viết này mình chỉ đề cập đến polybar nên mình sẽ không nói về i3-bar

các bạn sửa ~/.xinitrc như sau

echo"exec i3">> ~/.xinitrc

Nếu bạn có một window manager khác hoặc desktop enviroment khác đã được cài đặt sẵn (trong trường hợp này là gnomexfce hoặc kde) Bạn có thể chọn i3 là window manager khi ở cửa sổ đăng nhập.

Nếu bạn không có desktop manager để chọn i3, hoặc bạn muốn nó là WM độc nhất vô nhị, hãy xóa hoặc comment những dòng liên quan trực tiếp đến WM/DE khác đã được cài đặt trong hệ thống của bạn, kể cả trong ~/.xinitrc nữa.
Tức nếu bạn chỉ có màn hình màu đen thui với một cái nháy nháy nhỏ nhỏ bắt bạn nhập một lệnh gì đó (giống như khi bạn vừa mới cài đặt Arch Linux xong)
Hãy dùng lệnh sau để cài đặt xorg cho máy của bạn

sudo pacman -S xorg-server xorg-xinit

sau đó khởi động i3 bằng cách

startx

3.1.2 Debian / Ubuntu

Về Ubuntu thì mình không chắc lắm
Các bạn xem thêm ở đây

3.2 Polybar

3.2.1 Arch / Manjaro

sudo pacman -S polybar

3.2.2 Ubuntu / Debian

sudoapt-getinstall polybar

3.2.3 Khởi chạy polybar (cả 2 distro)

Chạy dòng lệnh để tạo file launch.sh

touch$HOME/.config/polybar/launch.sh

Dùng Text Editor bất kỳ copy những dòng sau vào file $HOME/.config/polybar/launch.sh

#!/usr/bin/env bash# Terminate already running bar instanceskillall -q polybar
# If all your bars have ipc enabled, you can also use # polybar-msg cmd quit# Launch bar1 and bar2echo"---"|tee -a /tmp/polybar1.log /tmp/polybar2.log
polybar bar1 2>&1|tee -a /tmp/polybar1.log & disown
polybar bar2 2>&1|tee -a /tmp/polybar2.log & disown

echo"Bars launched..."

Làm cho file $HOME/.config/polybar/launch.sh executable

chmod +x $HOME/.config/polybar/launch.sh

Chạy polybar bằng cách

$HOME/.config/polybar/launch.sh

4. Lời kết

Mình định viết thành 3 phần, phần tiếp theo mình sẽ giới thiệu một tí về cách để tùy chỉnh config của i3, và phần cuối là phần tùy chỉnh của polybar. Tuy nhiên nếu các bạn hiếu kỳ muốn tự tìm hiểu thì document của 2 packages đều có sẵn và được trích dẫn rất nhiều ở trong bài viết. Hy vong các bạn thích bài viết này và hẹn gặp các bạn trong bài viết tiếp theo.

Reference

1. https://www.tecmint.com/best-tiling-window-managers-for-linux/

2. https://vietnix.vn/huong-dan-su-dung-ubuntu/

3. https://github.com/i3/i3

4. https://linoxide.com/install-i3-window-manager-linux/

5. https://github.com/Airblader/i3/wiki/installation

6. https://github.com/polybar/polybar

Nguồn: viblo.asia

Bài viết liên quan

Thay đổi Package Name của Android Studio dể dàng với plugin APR

Nếu bạn đang gặp khó khăn hoặc bế tắc trong việc thay đổi package name trong And

Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=

Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an t

Chuyển đổi từ monolith sang microservices qua ví dụ

1. Why microservices? Microservices là kiến trúc hệ thống phần mềm hướng dịch vụ,