Computer >> คอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

Binary Space Partitioning Window Manager (bspwm) เป็นโปรแกรมจัดการหน้าต่างที่เรียบง่ายและทรงพลังสำหรับ Linux สามารถกำหนดค่าได้สูงและเสนอแนวทางใหม่ในการจัดการหน้าต่าง Bspwm เขียนด้วย C และสามารถกำหนดค่าโดยใช้ภาษาใดก็ได้ Bspwm เป็นตัวอย่างที่ดีของการปรับแต่งผู้ใช้ในตัวจัดการหน้าต่าง สิ่งนี้ทำให้ผู้ใช้ที่มีอำนาจและคนจรจัดที่สนใจเรียนรู้วิธีสร้างเวิร์กโฟลว์ที่เป็นเอกลักษณ์ของตนเองเป็นที่สนใจเป็นที่น่าสนใจ

การแบ่งพื้นที่ไบนารี คำอธิบาย

การแบ่งพาร์ติชันพื้นที่ไบนารีเป็นแนวคิดที่ว่าหน้าต่างในเดสก์ท็อปสามารถแสดงเป็นใบไม้ในต้นไม้ไบนารีแบบเต็มได้ ต้นไม้ไบนารีแบบเต็มคือโครงสร้างของการจัดลำดับข้อมูลโดยใช้โหนดแบบลำดับชั้น ข้อมูลใดๆ ภายในแผนผังนั้นจะถูกจัดเรียงเป็นสองส่วนโดยที่โหนดรูทจะมีสองโหนดเสมอ

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

Bspwm ทำงานกับโหนด ในทางปฏิบัติ เมื่อคุณสร้างหน้าต่างบนเดสก์ท็อปเปล่า bspwm จะสร้างโหนดเดียวสำหรับหน้าต่างนั้นที่จะวาง คุณสามารถคิดได้ว่าโหนดนั้นเป็นโหนดปลายสุด แต่เมื่อคุณสร้างหน้าต่างเพิ่มเติมในเดสก์ท็อปนั้น leaf node นั้นจะกลายเป็น root node และ bspwm จะสร้าง leaf nodes ใหม่สองอันที่เชื่อมต่ออยู่ จากนั้นจะวางหน้าต่างปัจจุบันและหน้าต่างที่สร้างขึ้นใหม่ไว้ในโหนดปลายสุดเหล่านั้น

หน้าต่างใหม่ใดๆ ที่จะถูกสร้างขึ้นหลังจากนี้ ตอนนี้จะเชื่อมโยงกับโหนดปลายสุดอันใดอันหนึ่ง เปลี่ยนเป็นโหนดรูทตามลำดับ

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

การจัดเรียงหน้าต่างในลักษณะนี้จะสร้างลำดับชั้นที่ชัดเจนภายในเดสก์ท็อป เป็นที่ชัดเจนว่าโหนดลีฟใดเกิดก่อนและโหนดใดที่มาจากโหนดรูทกลุ่มใดกลุ่มหนึ่ง สิ่งนี้มีประโยชน์เมื่อสร้างกฎการทำงานที่กำหนดเองสำหรับหน้าต่างและเค้าโครงหน้าต่างที่เฉพาะเจาะจง

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

การโยงคีย์และแถบสถานะ

สิ่งสำคัญคือต้องสังเกตว่า bspwm จัดการ windows เท่านั้น ซึ่งหมายความว่าฟังก์ชันอื่นๆ ที่ไม่เกี่ยวข้องกับการจัดการ windows จะไม่รวมอยู่ในแพ็คเกจ bspwm ซึ่งรวมถึงความสามารถในการผูกคีย์กับฟังก์ชันต่างๆ และความสามารถในการแสดงแถบสถานะ

เพื่อที่จะใช้การโยงคีย์ใน bspwm ผู้พัฒนาได้สร้างโปรแกรมแยกต่างหากที่เรียกว่า Simple X Hotkey Daemon (sxhkd) ซึ่งจัดการเฉพาะการโยงคีย์เท่านั้น อย่างไรก็ตาม สำหรับแถบสถานะ ผู้ใช้สามารถติดตั้งแอปพลิเคชันของบุคคลที่สามได้หลากหลาย เช่น โพลิบาร์และเลมอนบาร์

กำลังติดตั้ง bspwm และ sxhkd

การติดตั้ง bspwm และ sxhkd ค่อนข้างตรงไปตรงมา ทั้งสองโปรแกรมมีอยู่ในที่เก็บ Linux ส่วนใหญ่เช่นกัน ตัวอย่างเช่น หากต้องการติดตั้งใน Debian และ Ubuntu คุณสามารถทำได้โดยใช้ apt :

sudo apt install bspwm sxhkd

ใน Arch Linux คุณสามารถใช้ pacman :

sudo pacman -Syu bspwm sxhkd

ใน Fedora คุณสามารถใช้ dnf :

sudo dnf install bspwm sxhkd

สำหรับ Void Linux คุณสามารถใช้ xbps :

sudo xbps-install bspwm sxhkd

ในกรณีของฉัน ฉันจะติดตั้งมันในระบบ Void Linux ดังนั้นฉันจะใช้ XBPS

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

bspc:ตัวควบคุมสากลสำหรับ bspwm

ในการใช้ bspwm เราต้องโต้ตอบกับโปรแกรมเดียวเท่านั้น:bspc เป็นยูทิลิตี้ที่ทรงพลังที่สามารถควบคุมและกำหนดค่าพฤติกรรมของ bspwm อันที่จริง คำสั่งทั้งหมดที่เราจะใช้เพื่อจัดการหน้าต่างและกำหนดค่าการทำงานนั้นเป็นเพียงคำสั่ง bspc

การเตรียมไฟล์การกำหนดค่าสำหรับ bspwm

ในการเริ่มกำหนดค่า bspwm เราต้องสร้างไฟล์การกำหนดค่าก่อน นี่คือที่ที่ bspwm จะค้นหาคำสั่ง bspc ที่จะดำเนินการเมื่อรันครั้งแรก โดยค่าเริ่มต้น bspwm จะค้นหาไฟล์ “/home/$USER/.config/bspwm/bspwmrc” หากต้องการสร้างไฟล์นั้น คุณสามารถพิมพ์:

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

คำสั่งนี้จะสร้างโฟลเดอร์ bspwm ใน “/home/$USER/.config/” และสร้างไฟล์ bspwmrc ภายในโฟลเดอร์นั้นด้วย

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

ตอนนี้ ไฟล์ bspwmrc สามารถเขียนในภาษาใดก็ได้ที่คุณต้องการตราบเท่าที่สามารถเรียกใช้งานได้ ซึ่งหมายความว่าเราต้องตั้งค่าคุณสมบัติของไฟล์ให้เป็นเช่นนั้นก่อน เราสามารถทำได้โดยพิมพ์ดังนี้:

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

เพื่อให้แน่ใจว่าเราและทุกคนในกลุ่มผู้ใช้ของเราสามารถเรียกใช้ไฟล์นี้ได้

หลังจากนั้น เราสามารถเปิดไฟล์ bspwmrc ได้ ในกรณีของฉัน ฉันจะใช้ vim เพื่อแก้ไขไฟล์การกำหนดค่าของฉัน ในการทำเช่นนั้น ฉันจะพิมพ์ดังต่อไปนี้:

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

การดำเนินการนี้จะเปิดไฟล์เปล่าและตอนนี้เราสามารถเริ่มเขียนการกำหนดค่าของเราได้

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

การกำหนดค่า bspwm

การกำหนดค่าพื้นฐานสำหรับ bspwm จะมีลักษณะดังนี้:

#!/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

ตามที่ระบุโดย shebang ในบรรทัดแรก การกำหนดค่านี้เขียนด้วย Bash คำสั่งสองสามคำสั่งแรกคือโปรแกรมที่ฉันต้องการเรียกใช้ก่อนที่จะตั้งค่าการกำหนดค่าสำหรับ bspwm

อันแรก xsetroot เปลี่ยนเคอร์เซอร์ X เริ่มต้นเป็นตัวชี้ด้านซ้ายที่คุ้นเคยมากขึ้น อันที่สองเริ่มต้น hotkey daemon ของเราในพื้นหลัง

กฎการกำหนดค่า bspc และ bspc

คำสั่งต่อไปนี้ในการกำหนดค่ามีเฉพาะสำหรับ bspc bspc config เกี่ยวข้องกับการกำหนดค่าทั่วไปของตัวจัดการหน้าต่าง มีทั้งการตั้งค่าความสวยงามและการใช้งาน

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux
  • border_width กำหนดความหนาเป็นพิกเซลของความกว้างขอบของหน้าต่าง
  • window_gap เกี่ยวข้องกับจำนวนช่องว่าง เป็นพิกเซล รอบหน้าต่าง
  • split_ratio กำหนดอัตราส่วนระหว่างโหนดปลายทั้งสองเมื่อแยกออก
  • focus_follows_pointer กำหนดว่าจะให้ตัวชี้เมาส์ควบคุมว่าจะให้หน้าต่างใดได้รับการโฟกัส
  • pointer_modifier กำหนดแป้นคีย์บอร์ดเพื่อปรับขนาดหน้าต่างโดยใช้เมาส์
  • automatic_scheme กำหนดเค้าโครงของหน้าต่างเมื่อแยกในโหมดอัตโนมัติ

ในทางกลับกัน กฎ bspc เกี่ยวข้องกับพฤติกรรมของโปรแกรมเมื่อเปิดใน bspwm

  • กฎข้อแรกในการกำหนดค่าตัวอย่างของเราบังคับให้ Chromium ทำงานในเดสก์ท็อปที่สอง
  • กฎข้อที่สองในตัวอย่างของเราบังคับให้ Gimp ทำงานในเดสก์ท็อปที่แปด นอกจากนี้ยังบังคับให้ Gimp ทำงานในสถานะลอยตัวแทนที่จะเป็นไทล์เริ่มต้น สุดท้าย มันบังคับให้หน้าต่างโฟกัสไปที่ Gimp เมื่อโหลด

ด้วยเหตุนี้ เราจึงมีการกำหนดค่าพื้นฐานสำหรับ bspwm อย่างไรก็ตาม สิ่งสำคัญที่ควรทราบคือตัวเลือกสำหรับ bspc config และ bpsc rule เป็นที่กว้างขวาง หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการปรับแต่ง bspwmrc ของคุณ คุณสามารถตรวจสอบเอกสารประกอบของ Github Github เพื่อดูรายการการตั้งค่าทั้งหมดที่เป็นไปได้

sxhkd:ยูทิลิตี้การโยงคีย์สำหรับ bspwm

sxhkd เป็นโปรแกรมง่ายๆ มันฟังเหตุการณ์การป้อนข้อมูลด้วยแป้นพิมพ์และดำเนินการคำสั่งตามปุ่มที่คุณกด มันสามารถจัดการกับอินพุตแบบหลายคีย์ผ่านคอร์ดและมีไฟล์การกำหนดค่าที่ใช้งานง่ายที่ง่ายและเข้าใจง่าย

การเตรียมไฟล์การกำหนดค่าสำหรับ sxhkd

การเตรียมไฟล์คอนฟิกูเรชันสำหรับ sxhkd คล้ายกับการตั้งค่าไฟล์ bspwmrc ขั้นแรก เราต้องสร้างโฟลเดอร์การกำหนดค่าและไฟล์สำหรับ sxhkd เราสามารถทำได้โดยพิมพ์คำสั่งต่อไปนี้:

mkdir -p /home/$USER/.config/sxhkd/ && touch /home/$USER/.config/sxhkd/sxhkdrc
วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

ดังนั้น เราจำเป็นต้องตั้งค่าไฟล์ sxhkdrc ให้เป็นไฟล์เรียกทำงาน:

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

เมื่อเสร็จแล้ว ตอนนี้เรามีไฟล์การกำหนดค่า sxhkd เพื่อแทรกการโยงคีย์ทั้งหมดของเรา

การกำหนดค่า sxhkd

sxhkd รู้จักการโยงคีย์ในรูปแบบเฉพาะ อันดับแรกจะขอคีย์ตัวปรับแต่ง นี่อาจเป็น Alt , สุดยอด , ไฮเปอร์ หรือ การควบคุม . หลังจากนั้น คุณต้องระบุคีย์ปกติเพื่อเสริมคีย์ตัวปรับแต่งของคุณ จึงสามารถนำมารวมกันเป็นปุ่มลัดโดยเพิ่มเครื่องหมาย "+" ระหว่างปุ่มทั้งสอง

ดังนั้น รูปแบบทั่วไปสำหรับการโยงคีย์ sxhkd จะมีลักษณะดังนี้:

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

เมื่อเสร็จแล้วคุณต้องกด Enter และ แท็บ เพื่อสร้างบรรทัดเยื้องใต้การโยงคีย์ หลังจากนั้น คุณต้องระบุคำสั่งที่คุณต้องการดำเนินการเมื่อกดปุ่มลัด

ตัวอย่างไฟล์การกำหนดค่าสำหรับ sxhkd จะมีลักษณะดังนี้:

# 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}'

อธิบายไวยากรณ์การโยงคีย์

ดังที่เราได้กล่าวไปแล้วข้างต้น ไวยากรณ์การโยงคีย์สำหรับ sxhkd นั้นค่อนข้างง่าย นอกจากนี้ sxhkd สามารถจัดกลุ่มการโยงคีย์เข้าด้วยกัน และสามารถรันคำสั่งการแตกแขนงผ่านการใช้การประสานคีย์ได้

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

ตัวอย่างเช่น คำสั่งจำนวนหนึ่งในการกำหนดค่านี้ใช้ประโยชน์จากวงเล็บปีกกา ซึ่งช่วยให้เรากำหนดฟังก์ชันได้หลายฟังก์ชันบนคีย์บอนด์ที่คล้ายคลึงกัน พิจารณาคำสั่งนี้ในการกำหนดค่า:

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

คำสั่งนี้เกี่ยวข้องกับการปิดและการรีสตาร์ท bspwm วงเล็บปีกกาในการโยงคีย์ตรงกับวงเล็บปีกกาที่เรามีในบรรทัดคำสั่ง ดังนั้นเมื่อเรากด Alt + กะ + Q ในแป้นพิมพ์คำสั่ง:bspc quit ได้รับการดำเนินการ อย่างไรก็ตาม การกด Alt + กะ + R จะดำเนินการ bspc wm -r .

นอกจากนี้เรายังสามารถข้ามความจำเป็นในการจัดเตรียมคีย์เพิ่มเติมเมื่อทำการแตกสาขา ลองพิจารณาตัวอย่างนี้:

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

คำสั่งนี้เกี่ยวข้องกับการวางไข่ของเทอร์มินัล นอกจากนี้ยังสลับหน้าต่างในเดสก์ท็อป ฉันสามารถทำคำสั่งแรกได้โดยกด Alt + ป้อน และฉันสามารถทำคำสั่งที่สองได้โดยกด Alt + กะ + ป้อน .

เนื่องจากอักขระขีดล่างทำหน้าที่เป็นตัวส่งผ่านสำหรับการโยงคีย์ ซึ่งช่วยให้เรามีการโยงปุ่มเริ่มต้นสำหรับคำสั่ง แต่ยังมีการโยงปุ่ม "แก้ไข" สำหรับคำสั่งอื่นๆ ด้วย

สุดท้าย sxhkd ไม่ได้จำกัดอยู่เพียงการแตกแขนงเดียว ลองพิจารณาตัวอย่างนี้:

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

คำสั่งนี้เกี่ยวข้องกับการสลับเดสก์ท็อป นอกจากนี้ยังจัดการการเคลื่อนไหวของหน้าต่างภายในเดสก์ท็อปเหล่านั้น คำสั่งแรกจะดำเนินการเมื่อคุณกด Alt + 10 ในขณะที่อันที่สองเสร็จสิ้นด้วย Shift คีย์ตัวแก้ไข

ในที่นี้ เราใช้วงเล็บปีกกาสองอันเพื่อตั้งค่าคีย์พาส-ทรูและตัวเลขสำหรับเดสก์ท็อป ทั้งสองตัวเลือกนี้จะสอดคล้องกับวงเล็บปีกกาสองอันในคำสั่งด้านล่าง

กำลังสิ้นสุดการติดตั้ง

ด้วยเหตุนี้ เราจึงมีความเข้าใจพื้นฐานเกี่ยวกับการกำหนดค่า bspwm และ sxhkd สิ่งสุดท้ายที่เราต้องทำคือเปิดใช้งาน bspwm เป็นตัวจัดการหน้าต่างของเรา คุณสามารถทำได้โดยตรงผ่าน Xorg หรือผ่านตัวจัดการการแสดงผลของคุณ

กำลังเรียกใช้ bspwm โดยใช้ xinitrc

วิธีที่ง่ายที่สุดในการเริ่มต้น bspwm คือการต่อท้ายไฟล์ในไฟล์ .xinitrc ของคุณ หากคุณใช้ลีนุกซ์รุ่นเล็ก นี่อาจเป็นวิธีที่คุณใช้โหลดตัวจัดการหน้าต่างอยู่แล้ว

ในการดำเนินการนี้ คุณจะต้องต่อท้ายข้อความต่อไปนี้ในบรรทัดสุดท้ายของ .xinitrc ของคุณ:

exec bspwm
วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

การเรียกใช้ bspwm โดยใช้ตัวจัดการการแสดงผล

อย่างไรก็ตาม หากคุณใช้เดสก์ท็อปที่มีคุณสมบัติครบถ้วน เช่น Linux Mint หรือ Ubuntu คุณอาจต้องเลือก bspwm ในหน้าจอเข้าสู่ระบบ

ตัวอย่างเช่น ในการติดตั้ง Ubuntu ฉันต้องคลิกที่ไอคอนรูปเฟืองบนหน้าจอเข้าสู่ระบบ และเลือก bspwm จากเมนูบริบทเพื่อโหลด

วิธีการติดตั้งและกำหนดค่า bspwm ใน Linux

ยินดีด้วย! ตอนนี้คุณมีการติดตั้ง bspwm ที่ใช้งานได้ ตอนนี้คุณสามารถปรับแต่งเดสก์ท็อปของคุณเพิ่มเติมโดยปรับแต่งไฟล์การกำหนดค่าและติดตั้งท่าเรือของบริษัทอื่น ต่อไปนี้คือเดสก์ท็อปที่ปรับแต่งมาเพื่อสร้างแรงบันดาลใจให้คุณ

คำถามที่พบบ่อย

1. ทำไมหน้าจอของฉันจึงเป็นสีดำเมื่อฉันเข้าสู่ระบบเป็นครั้งแรก

อาจเป็นเพราะคุณยังไม่ได้ตั้งค่าพื้นหลังเดสก์ท็อป กรณีนี้มักเกิดขึ้นหากคุณใช้การติดตั้งเพียงเล็กน้อย คุณสามารถเปลี่ยนธีมพื้นหลังได้โดยใช้โปรแกรมดูภาพ เช่น feh

2. ทำไมการโยงคีย์ของฉันจึงไม่ทำงาน

เป็นไปได้มากที่สุดเนื่องมาจากสองสิ่ง:

  • การโยงคีย์ไม่โหลดเนื่องจาก sxhkd ไม่ทำงาน
  • มีข้อผิดพลาดทางไวยากรณ์กับ sxhkdrc ข้อผิดพลาดที่พบบ่อยที่สุดที่เกิดขึ้นกับการกำหนดค่า sxhkd คือการเยื้อง ในการเริ่มต้นคำสั่งอย่างถูกต้อง คุณต้องแทรก Tab-spaces ในบรรทัดที่เยื้อง

3. เมื่อฉันเข้าสู่ระบบของฉัน มันเพิ่งกลับมาที่ข้อความแจ้งของระบบ

อาจเกิดจากหลายสาเหตุ อย่างไรก็ตาม สาเหตุที่พบบ่อยที่สุดคือปัญหาเกี่ยวกับไฟล์ .xinitrc คุณต้องตรวจสอบให้แน่ใจว่า bspwm เป็นโปรแกรมสุดท้ายที่ Xorg โหลดและไม่ได้ทำงานเป็นกระบวนการพื้นหลัง