Binary Space Partitioning Window Manager(bspwm)는 Linux를 위한 강력한 미니멀리스트 창 관리자입니다. 그것은 고도로 구성 가능하고 창 관리에 대한 혁신적인 접근 방식을 제안합니다. Bspwm은 C로 작성되었으며 모든 언어를 사용하여 구성할 수 있습니다. Bspwm은 창 관리자에서 사용자 정의의 전형입니다. 따라서 고유한 워크플로를 만드는 방법을 배우는 데 관심이 있는 고급 사용자와 땜장이에게 매력적입니다.
이진 공간 분할, 설명
이진 공간 분할은 데스크탑의 창이 전체 이진 트리의 잎으로 표시될 수 있다는 아이디어입니다. 전체 이진 트리는 계층적 노드를 사용하여 정보를 정렬하는 구조입니다. 해당 트리 내의 모든 정보는 루트 노드가 항상 두 개의 노드를 포함하는 두 개로 정렬됩니다.
Bspwm은 노드와 함께 작동합니다. 실제로, 빈 데스크탑에 창을 만들 때 bspwm은 해당 창이 배치될 단일 노드를 만듭니다. 해당 노드를 리프 노드로 생각할 수 있습니다. 그러나 해당 데스크탑에서 추가 창을 생성하면 해당 리프 노드가 루트 노드가 되고 bspwm은 여기에 연결된 두 개의 새 리프 노드를 생성합니다. 그런 다음 현재 창과 새로 생성된 창을 해당 리프 노드에 배치합니다.
이 후에 생성될 모든 새 창은 이제 해당 리프 노드 중 하나와 연결되어 해당 노드를 각각의 루트 노드로 바꿉니다.
이러한 방식으로 창을 정렬하면 데스크탑 내에 명확한 계층 구조가 생성됩니다. 어떤 리프 노드가 먼저 생성되었고 어떤 리프 노드가 특정 루트 노드 그룹에서 나온 것인지 명확합니다. 이는 특정 창 및 창 레이아웃에 대한 사용자 지정 동작 규칙을 만들 때 유용합니다.
키 바인딩 및 상태 표시줄
bspwm은 창만 관리한다는 점에 유의하는 것이 중요합니다. 즉, 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
제 경우에는 XBPS를 사용하도록 Void 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
이 명령은 "/home/$USER/.config/"에 bspwm 폴더를 생성하고 해당 폴더 내에 bspwmrc 파일도 생성합니다.
이제 bspwmrc 파일은 실행 가능한 한 원하는 모든 언어로 작성할 수 있습니다. 이는 먼저 파일 속성을 이와 같이 설정해야 함을 의미합니다. 다음을 입력하면 됩니다.
sudo chmod 774 /home/$USER/.config/bspwm/bspwmrc
이렇게 하면 우리와 사용자 그룹의 모든 사람이 이 파일을 실행할 수 있습니다.
그런 다음 이제 bspwmrc 파일을 열 수 있습니다. 제 경우에는 vim을 사용하여 구성 파일을 편집하겠습니다. 그렇게 하려면 다음을 입력합니다.
vim /home/$USER/.config/bspwm/bspwmrc
그러면 빈 파일이 열리고 이제 구성 작성을 시작할 수 있습니다.
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 커서를 더 친숙한 왼쪽 포인터로 변경합니다. 두 번째 것은 백그라운드에서 핫키 데몬을 초기화합니다.
bspc 구성 및 bspc 규칙
구성의 다음 명령은 bspc에만 해당됩니다. bspc config
창 관리자의 일반적인 구성을 다룹니다. 여기에는 미적 설정과 기능적 설정이 모두 포함됩니다.
- border_width 창 테두리 너비의 두께(픽셀)를 결정합니다.
- window_gap 창 주변의 간격(픽셀)을 처리합니다.
- 분할 비율 분할 시 두 리프 노드 간의 비율을 결정합니다.
- focus_follows_pointer 마우스 포인터가 포커스를 받는 창을 제어할 수 있는지 여부를 설정합니다.
- pointer_modifier 마우스를 사용하여 창 크기를 조정하는 키보드 키를 결정합니다.
- automatic_scheme 자동 모드에서 분할할 때 창의 레이아웃을 결정합니다.
반면에 bspc 규칙은 bspwm에서 열릴 때 프로그램의 동작을 처리합니다.
- 예제 구성의 첫 번째 규칙은 Chromium이 두 번째 데스크톱에서 실행되도록 합니다.
- 이 예에서 두 번째 규칙은 Gimp가 여덟 번째 데스크탑에서 실행되도록 합니다. 또한 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
그런 다음 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는 키 바인딩을 그룹화할 수 있으며 키 코드를 사용하여 분기 명령을 실행할 수 있습니다.
예를 들어, 이 구성의 여러 명령은 중괄호를 사용합니다. 이를 통해 유사한 키 바인딩에 여러 기능을 할당할 수 있습니다. 구성에서 다음 명령을 고려하십시오.
alt + shift + {q,r} bspc {quit, wm -r}
이 명령은 bspwm을 닫고 다시 시작하는 작업을 처리합니다. 키 바인딩의 중괄호는 명령줄에 있는 중괄호와 일치합니다. 따라서 Alt 키를 누르면 + 시프트 + 질문 키보드에서 명령: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 키를 누르면 첫 번째 명령이 실행됩니다. + 1 –0 두 번째 작업은 Shift로 수행됩니다. 수정 키.
여기에서 두 개의 중괄호를 사용하여 데스크탑의 통과 키와 숫자를 설정했습니다. 이 두 옵션은 그 아래에 있는 명령의 두 중괄호에 해당합니다.
설치 완료
그것으로, 우리는 이제 bspwm 및 sxhkd 구성에 대한 기본적인 이해를 갖게 되었습니다. 마지막으로 해야 할 일은 bspwm을 창 관리자로 활성화하는 것입니다. Xorg 또는 디스플레이 관리자를 통해 직접 수행할 수 있습니다.
xinitrc를 사용하여 bspwm 실행
bspwm을 초기화하는 가장 쉬운 방법은 .xinitrc 파일에 추가하는 것입니다. 최소 Linux 배포판을 사용하는 경우 이 방법이 이미 창 관리자를 로드하는 데 사용하고 있는 방법일 것입니다.
이렇게 하려면 .xinitrc의 마지막 줄에 다음을 추가하기만 하면 됩니다.
exec bspwm
디스플레이 관리자를 사용하여 bspwm 실행
그러나 Linux Mint 또는 Ubuntu와 같은 완전한 기능을 갖춘 데스크탑을 사용하는 경우 로그인 화면에서 bspwm을 선택해야 할 수도 있습니다.
예를 들어 Ubuntu 설치에서 로그인 화면의 톱니바퀴 아이콘을 클릭하고 컨텍스트 메뉴에서 bspwm을 선택하여 로드해야 합니다.
축하합니다! 이제 bspwm이 제대로 설치되었습니다. 이제 구성 파일을 조정하고 타사 도크를 설치하여 데스크탑을 추가로 사용자 정의할 수 있습니다. 다음은 영감을 줄 몇 가지 맞춤형 데스크탑입니다.
자주 묻는 질문(FAQ)
1. 처음 로그인할 때 화면이 검은색인 이유는 무엇입니까?
아직 바탕 화면 배경을 설정하지 않았기 때문일 수 있습니다. 이것은 최소 설치를 실행하는 경우에 자주 발생합니다. feh와 같은 이미지 뷰어 프로그램을 사용하여 배경 테마를 변경할 수 있습니다.
2. 내 키 바인딩이 작동하지 않는 이유는 무엇입니까?
다음 두 가지 이유 때문일 수 있습니다.
- sxhkd가 실행되고 있지 않기 때문에 키 바인딩이 로드되지 않았습니다.
- sxhkdrc에 구문 오류가 있습니다. sxhkd를 구성할 때 저지르는 가장 흔한 실수는 들여쓰기입니다. 명령을 올바르게 초기화하려면 들여쓰기된 줄에 탭 공백을 삽입해야 합니다.
3. 내 시스템에 로그인했을 때 시스템 프롬프트로 돌아갔습니다.
이것은 여러 가지 때문일 수 있습니다. 그러나 가장 일반적인 원인은 .xinitrc 파일 문제입니다. bspwm이 Xorg가 로드하는 마지막 프로그램이고 백그라운드 프로세스로 실행되고 있지 않은지 확인해야 합니다.