Computer >> Máy Tính >  >> Hệ thống >> Linux

Cách cài đặt và cấu hình bspwm trong Linux

Cách cài đặt và cấu hình bspwm trong Linux

Trình quản lý cửa sổ phân vùng không gian nhị phân (bspwm) là trình quản lý cửa sổ tối giản mạnh mẽ dành cho Linux. Nó có thể cấu hình cao và nó đề xuất một cách tiếp cận sáng tạo để quản lý cửa sổ. Bspwm được viết bằng C và nó có thể được cấu hình bằng bất kỳ ngôn ngữ nào. Bspwm là hình ảnh thu nhỏ của tùy biến người dùng trong trình quản lý cửa sổ. Điều này khiến nó trở nên hấp dẫn đối với những người dùng thành thạo và những người thích tìm hiểu để tạo ra quy trình làm việc độc đáo của riêng họ.

Phân vùng không gian nhị phân, được giải thích

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

Cách cài đặt và cấu hình bspwm trong Linux

Bspwm hoạt động với các nút. Trong thực tế, khi bạn tạo một cửa sổ trên màn hình trống, bspwm sẽ tạo một nút duy nhất để đặt cửa sổ đó vào. Bạn có thể coi nút đó như một nút lá. Nhưng khi bạn tạo một cửa sổ bổ sung trong 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 liền với 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 sẽ được tạo sau thời điểm này bây giờ sẽ được liên kết với một trong các nút lá đó, biến chúng thành các nút gốc tương ứng của riêng chúng.

Cách cài đặt và cấu hình bspwm trong Linux

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

Cách cài đặt và cấu hình bspwm trong Linux

Keybindings và Status Bars

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

Để sử dụng keybinding trong bspwm, các nhà phát triển đã tạo ra một chương trình riêng biệt có tên Simple X Hotkey Daemon (sxhkd) chỉ quản lý keybinding. Tuy nhiên, đối với thanh trạng thái, người dùng có thể cài đặt nhiều ứng dụng của bên thứ ba như polybar và chanhbar.

Cài đặt bspwm và sxhkd

Cài đặt bspwm và sxhkd tương đối đơn giản. Cả hai chương trình cũng có sẵn trong hầu hết các kho lưu trữ Linux. Ví dụ, để cài đặt chúng trong Debian và Ubuntu, bạn có thể làm như vậy bằng cách sử dụng apt :

sudo apt install bspwm sxhkd

Trong Arch Linux, bạn có thể sử dụng pacman :

sudo pacman -Syu bspwm sxhkd

Trong Fedora, bạn có thể sử dụng dnf :

sudo dnf install bspwm sxhkd

Đối với Void Linux, bạn có thể sử dụng xbps :

sudo xbps-install bspwm sxhkd

Trong trường hợp của tôi, tôi sẽ cài đặt nó trong hệ thống Void Linux của mình nên tôi sẽ sử dụng XBPS.

Cách cài đặt và cấu hình bspwm trong Linux

bspc:Bộ điều khiển đa năng cho bspwm

Để sử dụng bspwm chúng ta chỉ cần tương tác với một chương trình:bspc. Đây là một tiện ích mạnh mẽ có thể kiểm soát và định cấu hình hành vi của bspwm. Trên thực tế, tất cả các lệnh mà chúng ta sẽ sử dụng để thao tác các cửa sổ và cấu hình hoạt động của nó chỉ là lệnh bspc.

Chuẩn bị Tệp Cấu hình cho bspwm

Để bắt đầu cấu hình bspwm, trước tiên chúng ta cần tạo một tệp cấu hình. Đây là nơi bspwm sẽ tìm kiếm các lệnh bspc mà nó sẽ thực thi khi nó chạy lần đầu tiên. Theo mặc định, bspwm sẽ tìm kiếm tệp “/home/$USER/.config/bspwm/bspwmrc”. Để tạo tệp đó, bạn có thể nhập:

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

Lệnh này sẽ tạo thư mục bspwm trong “/home/$USER/.config/” và cũng tạo tệp bspwmrc trong thư mục đó.

Cách cài đặt và cấu hình bspwm trong Linux

Bây giờ, tệp bspwmrc có thể được viết bằng bất kỳ ngôn ngữ nào bạn muốn miễn là nó có thể thực thi được. Điều này có nghĩa là trước tiên chúng ta cần đặt các thuộc tính tệp của nó thành như vậy. Chúng ta có thể thực hiện việc này bằng cách nhập như sau:

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

Điều này sẽ đảm bảo rằng chúng tôi và bất kỳ ai trong nhóm người dùng của chúng tôi có thể thực thi tệp này.

Sau đó, bây giờ chúng ta có thể mở tệp bspwmrc. Trong trường hợp của tôi, tôi sẽ sử dụng vim để chỉnh sửa tệp cấu hình của mình. Để làm điều đó, tôi sẽ gõ như sau:

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

Thao tác này sẽ mở một tệp trống và bây giờ chúng ta có thể bắt đầu viết cấu hình của mình.

Cách cài đặt và cấu hình bspwm trong Linux

Định cấu hình bspwm

Cấu hình cơ bản cho bspwm trông giố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ư được chỉ ra bởi shebang ở dòng đầu tiên, cấu hình này được viết bằng Bash. Một số lệnh đầu tiên là chương trình mà tôi muốn chạy trước khi thiết lập bất kỳ cấu hình nào cho bspwm.

Đầu tiên, xsetroot, thay đổi con trỏ X mặc định thành con trỏ bên trái quen thuộc hơn. Cái thứ hai khởi chạy daemon phím nóng của chúng tôi 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 liên quan đến 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.

Cách cài đặt và cấu hình bspwm trong Linux
  • border_width xác định độ dày, tính bằng pixel, chiều rộng đường viền của cửa sổ.
  • window_gap xử lý lượng khoảng trống, tính bằng pixel, xung quanh cửa sổ.
  • split_ratio xác định tỷ lệ giữa hai nút lá khi tách.
  • focus_follows_pointer đặt xem con trỏ chuột có thể kiểm soát cửa sổ nào được lấy nét hay không.
  • pointer_modifier xác định phím bàn phím để thay đổi kích thước cửa sổ bằng chuột.
  • automatic_scheme xác định bố cục của các cửa sổ khi phân chia ở chế độ tự động.

Mặt khác, quy tắc bspc xử lý hành vi của các chương trình khi được mở trong bspwm.

  • Quy tắc đầu tiên trong cấu hình mẫu của chúng tôi buộc Chromium phải chạy trong màn hình thứ hai.
  • Quy tắc thứ hai trong ví dụ của chúng tôi buộc Gimp phải chạy trong màn hình thứ tám. Nó cũng buộc Gimp chạy ở trạng thái nổi chứ không phải là lát gạch mặc định. Cuối cùng, nó buộc tập trung cửa sổ vào Gimp khi nó tải.

Với điều đó, bây giờ chúng ta có một cấu hình cơ bản cho bspwm. Tuy nhiên, điều quan trọng cần lưu ý là các tùy chọn cho bspc configbpsc rule là rộng rãi. Nếu bạn muốn biết thêm về cách tinh chỉnh bspwmrc của mình, bạn có thể kiểm tra tài liệu Github Github để có danh sách đầy đủ tất cả các cài đặt khả thi.

sxhkd:Tiện ích Keybinding cho bspwm

sxhkd là một chương trình đơn giản. Nó lắng nghe các sự kiện nhập từ bàn phím và thực hiện các lệnh dựa trên các phím bạn đã nhấn. Nó có thể xử lý các đầu vào nhiều khóa thông qua việc phân loại và có tệp cấu hình trực quan, đơn giản và 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 tệp bspwmrc. Đầu tiên, chúng ta cần tạo thư mục và tệp cấu hình cho sxhkd. Chúng ta có thể thực hiện việc này bằng cách gõ lệnh sau:

mkdir -p /home/$USER/.config/sxhkd/ && touch /home/$USER/.config/sxhkd/sxhkdrc
Cách cài đặt và cấu hình bspwm trong Linux

Khi đó, chúng tôi cần đặt tệp sxhkdrc có thể thực thi được:

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

Sau khi hoàn tất, bây giờ chúng tôi có tệp cấu hình sxhkd để chèn tất cả các liên kết khóa của chúng tôi.

Định cấu hình sxhkd

sxhkd nhận dạng keybindings theo một mẫu cụ thể. Đầu tiên nó yêu cầu một phím bổ trợ. Đây có thể là Alt , Siêu , Hyper hoặc Kiểm soát . Sau đó, bạn cần cung cấp một khóa bình thường để bổ sung cho khóa bổ trợ của mình. Do đó, nó có thể được kết hợp để trở thành keybinding bằng cách thêm dấu “+” vào giữa hai phím đó.

Do đó, biểu mẫu chung cho liên kết khóa sxhkd trông giống như sau:

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

Sau khi hoàn tất, bạn cần nhấn Enter Tab để tạo một dòng thụt vào bên dưới keybinding. Sau đó, bạn cần chỉ định lệnh mà bạn muốn thực hiện khi nhấn phím liên kết.

Tệp cấu hình ví dụ cho sxhkd trông giố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 Keybinding

Như chúng ta đã thảo luận ở trên, cú pháp keybinding cho sxhkd tương đối đơn giản. Hơn nữa, sxhkd có thể nhóm các keybinding lại với nhau và nó có thể thực hiện các lệnh rẽ nhánh thông qua việc sử dụng key chording.

Cách cài đặt và cấu hình bspwm trong Linux

Ví dụ, một số lệnh trong cấu hình này sử dụng dấu ngoặc nhọn. Điều này cho phép chúng tôi gán nhiều chức năng trên các keybinds tương tự. Hãy xem 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ý việc đóng và khởi động lại bspwm. Dấu ngoặc nhọn trong keybinding khớp với dấu ngoặc nhọn mà chúng ta có trong dòng lệnh. Do đó, khi chúng ta nhấn Alt + Shift + Hỏi trong bàn phím, lệnh:bspc quit được thực thi. Tuy nhiên, nhấn Alt + Shift + R sẽ thực thi bspc wm -r .

Chúng tôi cũng có thể bỏ qua yêu cầu cung cấp các khóa bổ sung khi phân nhánh. Hãy xem xét ví dụ này:

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

Lệnh này xử lý việc tạo ra thiết bị đầu cuối. Nó cũng hoán đổi các cửa sổ trong màn hình nền. Tôi có thể thực hiện lệnh đầu tiên bằng cách nhấn Alt + Nhập và tôi có thể thực hiện lệnh thứ hai bằng cách nhấn Alt + Shift + Nhập .

Điều này là do ký tự gạch dưới hoạt động như một chuyển tiếp cho các liên kết chính. Điều này cho phép chúng tôi có một liên kết phím mặc định cho một lệnh nhưng cũng có một liên kết phím “đã sửa đổi” cho các lệnh khác.

Cuối cùng, sxhkd không giới hạn ở một nhánh duy nhất. Hãy xem xét ví dụ này:

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

Lệnh này đề cập đến việc chuyển đổi các màn hình nền. Nó cũng quản lý chuyển động của các cửa sổ trong các màn hình nền đó. Lệnh đầu tiên được thực thi khi bạn nhấn Alt + 1 - 0 trong khi cái thứ hai được thực hiện với Shift phím bổ trợ.

Trong phần này, chúng tôi đã sử dụng hai dấu ngoặc nhọn để đặt khóa chuyển và các số cho màn hình nền. Hai tùy chọn này sau đó tương ứng với hai dấu ngoặc nhọn trong lệnh bên dưới nó.

Hoàn tất quá trình cài đặt

Với điều đó, bây giờ chúng ta đã có hiểu biết cơ bản về cấu hình bspwm và sxhkd. Điều cuối cùng mà chúng ta cần làm là bật bspwm làm trình quản lý cửa sổ của chúng ta. Bạn có thể thực hiện việc này trực tiếp thông qua Xorg hoặc thông qua trình quản lý hiển thị của mình.

Chạy bspwm bằng xinitrc

Cách dễ nhất để khởi tạo bspwm là thêm nó vào tệp .xinitrc của bạn. Nếu bạn đang sử dụng bản phân phối Linux tối thiểu, đây có thể là phương pháp bạn đang sử dụng để tải trình quản lý cửa sổ.

Để thực hiện việc này, bạn chỉ cần thêm phần sau vào dòng cuối cùng của .xinitrc:

exec bspwm
Cách cài đặt và cấu hình bspwm trong Linux

Chạy bspwm bằng Trình quản lý hiển thị

Tuy nhiên, nếu bạn đang sử 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 trong màn hình đăng nhập của mình.

Ví dụ:trong cài đặt Ubuntu của tôi, tôi phải nhấp 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ó.

Cách cài đặt và cấu hình bspwm trong Linux

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

Câu hỏi thường gặp

1. Tại sao màn hình của tôi bị đen khi tôi đăng nhập lần đầu tiên?

Có thể là do bạn chưa đặt nền cho màn hình. Điều này thường xảy ra nếu bạn đang chạy một cài đặt tối thiểu. Bạn có thể thay đổi chủ đề nền của mình bằng cách sử dụng chương trình xem hình ảnh như feh.

2. Tại sao keybindings của tôi không hoạt động?

Điều này có lẽ là do hai điều:

  • Các liên kết khóa không tải vì sxhkd không chạy.
  • Đã xảy ra lỗi cú pháp với sxhkdrc. Lỗi thường gặp nhất khi định cấu hình sxhkd là với các thụt lề. Để khởi tạo các lệnh đúng cách, bạn phải chèn dấu cách Tab vào các dòng thụt lề.

3. Khi tôi đăng nhập vào hệ thống của mình, nó chỉ đưa tôi trở lại lời nhắc hệ thống.

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