Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Linux

Hướng Dẫn Cài Đặt Và Cấu Hình bspwm Trên Linux

Binary Space Partitioning Window Manager (bspwm) là trình quản lý cửa sổ tối giản mạnh mẽ cho Linux. Nó có khả năng cấu hình cao và đề xuất cách tiếp cận đổi mới cho quản lý cửa sổ. Bspwm viết bằng C và có thể cấu hình bằng bất kỳ ngôn ngữ nào. Bspwm là đỉnh cao của tùy chỉnh người dùng trong trình quản lý cửa sổ. Điều này làm nó hấp dẫn cho người dùng nâng cao và người thích tinh tinkering quan tâm đến việc tạo quy trình làm việc độc đáo riêng.

Phân Chia Không Gian Nhị Phân, Giải Thích

Phân Chia Không Gian Nhị Phân là ý tưởng rằng các cửa sổ trên màn hình máy tính có thể biểu diễn như lá trong một cây nhị phân đầy đủ. Cây nhị phân đầy đủ là cấu trúc sắp xếp thông tin dùng các nút phân cấp. Bất kỳ thông tin nào trong cây đó được sắp xếp thành cặp với nút gốc luôn chứa hai nút.

Bspwm làm việc với các nút. Thực tế, khi bạn tạo cửa sổ trên màn hình trống, bspwm sẽ tạo một nút đơn cho cửa sổ đó đặt vào. Bạn có thể nghĩ nút đó như nút lá. Nhưng khi bạn tạo cửa sổ bổ sung trên màn hình đó, nút lá đó sẽ trở thành nút gốc và bspwm sẽ tạo hai nút lá mới gắn vào nó. Sau đó nó đặt cửa sổ hiện tại và cửa sổ mới tạo vào các nút lá đó.

Bất kỳ cửa sổ mới nào được tạo sau này sẽ liên kết với một trong hai nút lá đó, biến chúng thành nút gốc của chính chúng.

Sắp xếp cửa sổ theo cách này tạo ra thứ bậc rõ ràng trong màn hình. Rõ ràng nút lá nào được sinh ra trước và nào từ nhóm nút gốc cụ thể. Điều này hữu ích khi tạo quy tắc hành vi tùy chỉnh cho cửa sổ cụ thể và bố cục cửa sổ.

Phím Tắt Và Thanh Trạng Thái

Quan trọng: bspwm chỉ quản lý cửa sổ. Điều này có nghĩa là bất kỳ chức năng nào không liên quan đến quản lý cửa sổ đều không có trong gói bspwm. Điều này bao gồm khả năng gán phím cho hàm và khả năng hiển thị thanh trạng thái.

Để dùng phím tắt trong bspwm, nhà phát triển tạo chương trình riêng gọi là Simple X Hotkey Daemon (sxhkd) chỉ quản lý phím tắt. Còn thanh trạng thái, người dùng có thể cài nhiều ứng dụng bên thứ ba như polybar và lemonbar.

Cài Đặt bspwm Và sxhkd

Cài bspwm và sxhkd khá đơn giản. Cả hai chương trình cũng có sẵn trong hầu hết kho Linux. Ví dụ, để cài trên Debian và Ubuntu dùng apt:

sudo apt install bspwm sxhkd

Trên Arch Linux, dùng pacman:

sudo pacman -Syu bspwm sxhkd

Trên Fedora, dùng dnf:

sudo dnf install bspwm sxhkd

Trên Void Linux, dùng xbps:

sudo xbps-install bspwm sxhkd

Trong trường hợp của tôi, tôi sẽ cài trên hệ thống Void Linux nên dùng XBPS.

bspc: Bộ Điều Khiển Toàn Diện Cho bspwm

Để dùng bspwm ta chỉ cần tương tác với một chương trình: bspc. Nó là tiện ích mạnh mẽ có thể điều khiển và cấu hình hành vi bspwm. Thực tế, tất cả lệnh ta dùng để thao tác cửa sổ và cấu hình hành vi đều chỉ là lệnh bspc.

Chuẩn Bị Tệp Cấu Hình Cho bspwm

Để bắt đầu cấu hình bspwm, ta cần trước tạo tệp cấu hình. Đây là nơi bspwm tìm lệnh bspc nó sẽ thực thi khi chạy lần đầu. Mặc định, bspwm tìm tệp "/home/$USER/.config/bspwm/bspwmrc". Để tạo tệp đó, gõ:

mkdir -p /home/$USER/.config/bspwm && touch /home/$USER/.config/bspwm/bspwmrc

Lệnh này tạo thư mục bspwm trong "/home/$USER/.config/" và tạo tệp bspwmrc trong thư mục đó.

Bây giờ, tệp bspwmrc có thể viết bằng bất kỳ ngôn ngữ nào bạn muốn miễn là nó thực thi được. Nghĩa là ta cần trước thiết lập thuộc tính tệp cho phù hợp. Làm bằng cách gõ:

sudo chmod 774 /home/$USER/.config/bspwm/bspwmrc

Điều này đảm bảo ta và bất kỳ ai trong nhóm người dùng có thể thực thi tệp này.

Sau đó, ta có thể mở tệp bspwmrc. Trong trường hợp tôi, tôi dùng vim để sửa tệp cấu hình. Để làm vậy tôi gõ:

vim /home/$USER/.config/bspwm/bspwmrc

Điều này mở tệp trống và ta có thể bắt đầu viết cấu hình.

Cấu Hình bspwm

Cấu hình cơ bản cho bspwm trông như sau:

#!/bin/bash
xsetroot -cursor_name left_ptr
sxhkd &
bspc config border_width 2
bspc config window_gap 0
bspc config split_ratio 0.62
bspc config focus_follows_pointer true
bspc config pointer_modifier mod1
bspc config automatic_scheme spiral
bspc rule -a Chromium desktop='^2'
bspc rule -a Gimp desktop='^8' state=floating follow=on

Như shebang dòng đầu chỉ ra, cấu hình này viết bằng Bash. Những lệnh đầu là chương trình tôi muốn chạy trước khi đặt cấu hình cho bspwm.

Lệnh đầu, xsetroot, thay đổi con trỏ X mặc định thành con trỏ trái quen thuộc. Lệnh thứ hai khởi động daemon phím nóng trong nền.

bspc config Và bspc rule

Các lệnh sau trong cấu hình dành riêng cho bspc. bspc config xử lý cấu hình chung của trình quản lý cửa sổ. Nó bao gồm cả cài đặt thẩm mỹ và chức năng.

  • border_width xác định độ dày, tính bằng pixel, của viền cửa sổ.
  • window_gap xử lý khoảng cách, tính bằng pixel, quanh cửa sổ.
  • split_ratio xác định tỷ lệ giữa hai nút lá khi chia.
  • focus_follows_pointer đặt xem con trỏ chuột có kiểm soát cửa sổ nào nhận focus không.
  • pointer_modifier xác định phím bàn phím để thay đổi kích thước cửa sổ dùng chuột.
  • automatic_scheme xác định bố cục cửa sổ khi chia ở chế độ tự động.

bspc rule, mặt khác, xử lý hành vi chương trình khi mở trong bspwm.

  • Quy tắc đầu trong cấu hình ví dụ ép Chromium chạy trên màn hình thứ hai.
  • Quy tắc thứ hai ép Gimp chạy trên màn hình thứ tám. Nó cũng ép Gimp chạy ở trạng thái nổi thay vì tiled mặc định. Cuối cùng, nó ép focus cửa sổ trên Gimp khi nó tải.

Với đó, ta đã có cấu hình cơ bản cho bspwm. Quan trọng lưu ý, tuy nhiên, tùy chọn cho bspc config và bspc rule rất rộng. Nếu muốn biết thêm về tinh chỉnh bspwmrc, xem tài liệu GitHub để có danh sách đầy đủ tất cả cài đặt có thể.

sxhkd: Tiện Ích Phím Tắt Cho bspwm

sxhkd là chương trình đơn giản. Nó lắng nghe sự kiện nhập bàn phím và thực thi lệnh dựa trên phím bạn nhấn. Nó xử lý đầu vào đa phím qua chording và có tệp cấu hình trực quan, đơn giản, dễ hiểu.

Chuẩn Bị Tệp Cấu Hình Cho sxhkd

Chuẩn bị tệp cấu hình cho sxhkd tương tự như thiết lập bspwmrc. Trước hết, tạo thư mục và tệp cấu hình cho sxhkd. Làm bằng lệnh:

mkdir -p /home/$USER/.config/sxhkd/ && touch /home/$USER/.config/sxhkd/sxhkdrc

Sau đó, cần đặt tệp sxhkdrc thành thực thi:

sudo chmod 774 /home/$USER/.config/sxhkd/sxhkdrc

Xong, ta đã có tệp cấu hình sxhkd để chèn tất cả phím tắt.

Cấu Hình sxhkd

sxhkd nhận diện phím tắt theo mẫu cụ thể. Nó trước yêu cầu phím sửa đổi (modifier). Có thể là Alt, Super, Hyper hoặc Control. Sau đó, cần cung cấp phím bình thường bổ sung cho phím sửa đổi. Nó sau đó có thể kết hợp thành phím tắt bằng cách thêm dấu "+" giữa hai phím đó.

Do đó, dạng chung cho phím tắt sxhkd trông như sau:

modifier key + normal key (+ {_, additional, keys})

Xong, bạn cần nhấn Enter và Tab để tạo dòng thụt lề dưới phím tắt. Sau đó, chỉ định lệnh muốn thực thi khi phím tắt được nhấn.

Ví dụ tệp cấu hình sxhkd trông như sau:

# make sxhkd reload its configuration files
alt + Escape
    pkill -USR1 -x sxhkd
# quit or restart bspwm
alt + shift + {q,r}
    bspc {quit,wm -r}
# create a new terminal window or swap the current one to the biggest one in the screen
alt + {_,shift + }Return
    {st, bspc node -s biggest.local}
# close or kill a window
alt + {_,shift + }c
    bspc node -{k,c}
# change the window state
alt + {t,ctrl + t,l,f}
    bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# expand a window by moving one of its side outward
super + alt + {h,j,k,l}
    bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# focus or send a window to the given desktop
alt + {_,shift + }{1-9,0}
    bspc {desktop -f,node -d} '^{1-9,10}'

Giải Thích Cú Pháp Phím Tắt

Như đã thảo luận, cú pháp phím tắt cho sxhkd khá đơn giản. Hơn nữa, sxhkd có thể nhóm phím tắt và thực thi lệnh phân nhánh qua chording phím.

Ví dụ, một số lệnh trong cấu hình dùng ngoặc nhọn. Điều này cho phép gán nhiều hàm trên phím tắt tương tự. Xét lệnh này trong cấu hình:

alt + shift + {q,r}
    bspc {quit, wm -r}

Lệnh này xử lý thoát và khởi động lại bspwm. Ngoặc nhọn trong phím tắt khớp với ngoặc nhọn trong dòng lệnh. Do đó, khi nhấn Alt + Shift + Q, lệnh bspc quit được thực thi. Tuy nhiên, nhấn Alt + Shift + R sẽ thực thi bspc wm -r.

Ta cũng có thể bỏ qua cần cung cấp phím bổ sung khi phân nhánh. Xét ví dụ này:

alt + {_,shift + }Return
    {st, bspc node -s biggest.local}

Lệnh này xử lý sinh terminal. Nó cũng hoán đổi cửa sổ trên màn hình. Tôi làm lệnh đầu bằng Alt + Enter và lệnh thứ hai bằng Alt + Shift + Enter.

Điều này vì ký tự gạch dưới hoạt động như pass-through cho phím tắt. Điều này cho phép ta có phím tắt mặc định cho lệnh nhưng cũng có phím tắt "đã sửa đổi" cho lệnh khác.

Cuối cùng, sxhkd không giới hạn ở một phân nhánh. Xét ví dụ này:

alt + {_,shift + }{1-9,0}
    bspc {desktop -f,node -d} '^{1-9,10}'

Lệnh này xử lý chuyển màn hình. Nó cũng quản lý di chuyển cửa sổ trong các màn hình đó. Lệnh đầu thực thi khi nhấn Alt + 1–0 trong khi lệnh thứ hai làm với phím sửa đổi Shift.

Ở đây, ta dùng hai cặp ngoặc nhọn để đặt phím pass-through và số cho màn hình. Hai tùy chọn này tương ứng với hai cặp ngoặc nhọn trong lệnh dưới nó.

Hoàn Tất Cài Đặt

Với đó, ta đã có hiểu biết cơ bản về cấu hình bspwm và sxhkd. Điều cuối cùng cần làm là kích hoạt bspwm làm trình quản lý cửa sổ. Bạn có thể làm trực tiếp qua Xorg hoặc qua trình quản lý hiển thị (display manager).

Chạy bspwm Dùng xinitrc

Cách dễ nhất khởi tạo bspwm là thêm vào tệp .xinitrc. Nếu bạn dùng bản phân phối Linux tối giản,这很可能是您已经用来加载窗口管理器的方法。

Để làm vậy, chỉ cần thêm dòng sau vào cuối .xinitrc:

exec bspwm

Chạy bspwm Dùng Display Manager

Tuy nhiên, nếu bạn dùng máy tính để bàn đầy đủ tính năng như Linux Mint hoặc Ubuntu, bạn có thể cần chọn bspwm trên màn hình đăng nhập.

Ví dụ, trong cài đặt Ubuntu của tôi, tôi phải click vào biểu tượng bánh răng trên màn hình đăng nhập và chọn bspwm từ menu ngữ cảnh để tải nó.

Chúc mừng! Bây giờ bạn đã có cài đặt bspwm hoạt động. Bạn có thể tùy chỉnh thêm màn hình bằng cách chỉnh tệp cấu hình và cài dock bên thứ ba. Dưới đây là một số màn hình tùy chỉnh để truyền cảm hứng.

Câu Hỏi Thường Gặp

1. Tại sao màn hình đen khi đăng nhập lần đầu?

Có thể vì bạn chưa đặt hình nền màn hình. Điều này thường xảy ra nếu chạy cài đặt tối giản. Bạn có thể đổi chủ đề nền bằng chương trình xem ảnh như feh.

2. Tại sao phím tắt không hoạt động?

Điều này khả do do hai thứ:

  • Phím tắt không tải vì sxhkd không chạy.
  • Lỗi cú pháp với sxhkdrc. Lỗi phổ biến nhất khi cấu hình sxhkd là thụt lề. Để khởi tạo lệnh đúng, bạn phải chèn Tab-space vào các dòng thụt lề.

3. Khi đăng nhập hệ thống nó chỉ trả về dấu nhắc hệ thống.

Điều này có thể do nhiều thứ. Tuy nhiên, nguyên nhân phổ biến nhất là vấn đề với tệp .xinitrc. Bạn cần đảm bảo bspwm là chương trình cuối cùng Xorg tải và nó không chạy như tiến trình nền.