PekWM (한국어)
PekWM은 Claes Nästen이 만들었다. 코드는 aewm++ 창 관리자에 기초하지만 거듭 발전하면서 더 이상 aewm++와 비슷하지 않다. 또한 기능도 확장해서 ion3, pwm, fluxbox와 비슷한 창 그룹화, 자동 속성, xinerama, 키 조합을 지원하는 keygrabber 등 훨씬 다양한 기능을 갖추었다.
설치
저장소에서 PekWM을 설치하라.
pacman -S pekwm
시작하기
방법 1: kdm/gdm
먼저 kdm이나 gdm을 설치하여 활성화하라. 로그인 관리자를 활성화하는 방법은 여기를 보라. PekWM이 세션 목록에 추가되어 있을 것이다. 로그인하기에 앞서 세션 목록에서 PekWM을 선택하라.
방법 2: xinitrc
자신의 홈 폴더에 있는 .xinitrc 파일(~/.xinitrc)에 다음을 추가하라.
exec pekwm
PekWM 설정하기
~/.pekwm/config 파일이 주 설정 파일이다. 작업공간, 뷰포트, 메뉴, 화면 가장 자리 설정 등을 제어한다. 여기 PekWM 문서에 자세한 설명과 함께 보기 파일이 있다.
메뉴
PekWM는 기본적으로 아치 저장소에서 설치될 때 미리 정의된 메뉴도 함께 온다. 이는 자신의 시스템을 반영하는 것이 아니며 따라서 실제로 설치된 것과 매우 다를 가능성이 높다. 보기로서 제공되는 것으로 그것을 수정하지 않고 사용해야할 필요는 없다.
자신의 메뉴는 ~/.pekwm/menu에 저장된다.
MenuMaker
자신의 시스템에 설치된 프로그램용 메뉴를 자동으로 생성하는 방법 가운데 하나는 Menumaker를 사용하는 것이다. 다음과 같이 실행하여 자신의 메뉴를 만들어라.
mmaker --no-desktop pekwm
mmaker –help를 실행해 전체 옵션을 보라.
위의 명령으로 꽤 상세한 메뉴를 만들 수 있다. 이제 그 메뉴 파일을 수동으로 수정하거나 새로운 소프트웨어를 설치할 때마다 단순히 재생성하라.
수동으로 편집하기
이미 말했듯이 ~/.pekwm/menu가 메뉴 파일이다. 이 파일의 문법은 이해하기 쉽다. 간단한 항목은 다음과 같은 구조이다.
Entry = "NAME" { Actions = "Exec COMMAND &" }
서브메뉴는 다음과 같이 구성된다.
Submenu = "NAME" { Entry = "NAME" { Actions = "Exec COMMAND &" } Entry = "NAME" { Actions = "Exec COMMAND &" } }
(중괄호는 반드시 짝을 이루도록 해라. 그렇지 않으면 오류가 생겨 메뉴가 나타나지 않을 것이다.)
메뉴에 구분선을 추가하려면 다음을 사용하라.
Separator {}
PekWM은 동적 메뉴도 지원한다. 이는 기본적으로 메뉴 항목이나 서브메뉴로 그 항목이나 서브메뉴가 접근될 때마다 실행되는 스크립트의 결과를 출력하는 것이다.
온라인에서 동적 메뉴를 구할 수 있다. 메뉴에 맞는 문법을 반드시 확인하라. 이는 문법이 변하기 때문이다. 불행하게도 동적 메뉴가 온라인에 많지 않다. 여기에서 Gmail과 네트워크 연결용 동적 메뉴를, 여기에서는 시간과 날짜를 표시하는 동적 메뉴를 구할 수 있다. pekwm_menu_tools라는 프로젝트도 있는데 PekWM용 동적 메뉴를 생성하는 일련의 유용한 프로그램을 만들고자 한다.
단축키
~/.pekwm/keys에 단축키 설정이 저장된다. 이 파일에서 PekWM용 키보드 연결과 키연쇄를 제어한다. 키보드 연결로 프로그램을 실행하거나 PekWM 작동을 수행할 수 있다. 작동의 예를 들면, 메뉴 보기, 창 이동, 데스크톱 전환 등을 들 수 있다. 전체 PekWM 작동 목록은 작동 문서에 있다.
하나 이상의 작동을 키 조합에 할당할 수 있다. 그 방법은 작동을 쌍반점으로 구분하면 된다. 보기:
KeyPress = "Ctrl Mod1 R" { Actions = "Exec osdctl -s 'Reconfiguring'; Reload" }
Ctrl+Alt+R을 누르면 Pekwm은 화면에 'Reconfiguring'라는 글자를 나타내고(osdctl -s 'Reconfiguring') 재설정(Reload)한다. (참고로 이를 위해서는 osdsh를 설치해야 한다.)
키 "연쇄"도 다음과 같이 할 수 있다.
Chain = "Ctrl Mod1 C" { KeyPress = "Q" { Actions = "MoveToEdge TopLeft" } KeyPress = "W" { Actions = "MoveToEdge TopCenterEdge" } }
곧, Ctrl+Alt+C를 누르고 나서 Q를 치면 활성 창을 화면 좌측 상단으로 이동하고 Ctrl+Alt+C를 누르고 나서 W를 치면 창을 상단 중앙으로 이동한다.
마우스
~/.pekwm/mouse 파일에 마우스 설정이 저장된다. 이 파일도 이해하기 쉽다. 보기:
FrameTitle { ButtonRelease = "1" { Actions = "Raise; Focus" } }
위의 의미는 마우스 버튼 1(보통 왼쪽 버튼)을 창 프레임 제목 위에서 누르면 창이 최상위로 올라오면서 활성화된다는 말이다.
PekWM은 기본적으로 마우스를 창 위로 가져가면 창이 활성화되는데 이는 전통적인 방식인 클릭해서 창을 활성화하는 방식에 비해 불편해 하는 사람이 있다. 다음과 같은 줄을 찾아서 설명대로 하라.
# Remove the following line if you want to use click to focus. # Uncomment the following line if windows should raise when clicked.
프로그램 자동 시작
시작 프로그램은 ~/.pekwm/start 파일에 있다. Pekwm을 시작할 때 바탕화면을 표시하거나 패널을 실행하려면 이 파일에 해당 프로그램을 추가하면 된다. 이 프로그램은 Pekwm이 시작될 때마다 실행되며 루트 메뉴에서 'Restart'를 해도 역시 실행됨을 유의하라.
다음과 같이 프로그램을 추가하라.
프로그램이름 &
이름 뒤에 &가 있어야 하며 그렇지 않으면 그 뒤에 어떤 것이라도 실행되지 않을 것이다. 다음의 보기를 참고하라.
xfce4-panel & conky & hsetroot -fill ~/images/darkwood.jpg &
이 파일을 사용하기에 앞서 다음 명령어로 실행 가능하도록 해야 한다.
chmod +x ~/.pekwm/start
변수
PekWM에서 사용되는 일반 변수는 ~/.pekwm/vars에 있다. 기본 항목 자체로 이해하기 쉽다.
$TERM="xterm -fn fixed +sb -bg white -fg black"
$TERM 변수가 PekWM 설정 파일에서 사용될 때마다 xterm -fn fixed +sb -bg white -fg black이 실행될 것이다. 다음과 같이 변경하면
$TERM="urxvt"
터미널 명령으로 urxvt가 실행될 것이다.
자동 속성
특정 프로그램이 특정한 작업공간에서 열리거나 특정 제목을 나타내거나 창 메뉴를 없애거나 자동으로 함께 탭으로 묶이기를 바란다면 여기에서 모두 지정할 수 있다. PekWM에서 가장 혼동되는 설정 파일이지만 가장 강력한 파일이기도 하다. 이 파일에서 설정될 수 있는 것이 너무 많아서 여기에서 다룰 수 없으나 자동 속성 문서에서 상세하게 설명된다. 기본 ~/.pekwm/autoproperties 파일 또한 자동 속성을 빠르게 이해할 수 있는 설명을 포함하고 있다.
테마
몇 곳의 테마 사이트 링크가 문서 하단에 있다. 테마를 설치하려면 테마 압축 파일을 테마 디렉토리에 풀어야 한다. 다음은 기본 테마 디렉토리이다.
- 시스템 전체 - /usr/share/pekwm/themes
- 사용자 - ~/.pekwm/themes
GTK 테마
GTK 프로그램 테마를 변경하기 위해 LXAppearance를 사용할 수 있다.
바탕화면 설정
PekWM은 단순한 창 관리자이므로 별도의 프로그램을 사용해 바탕화면을 설정해야 한다. 다음 프로그램이 많이 쓰인다.
문제점
Nvidia TwinView를 사용할 때, 창이 두 화면 모두에 걸쳐 최대화되는 경우
~/.pekwm/config
를 열어 다음 줄을 찾아서
HonourRandr = "True"
아래 줄처럼 변경한다.
HonourRandr = "False"
컴포지팅/투명 효과가 문제가 되는 경우
v0.1.11 기준, PekWM은 컴포지팅을 원할하게 지원하지 못하는 것 같다. 기본 xcompmgr은 작동하지만 투명 독과 패널은 그렇지 못하다. 또 창을 숨기면 그래픽 결함이 나타나는데 이를 해결하려면 모든 창의 투명도를 .999나 기타 다른 값으로 devilspie와 transset-df를 사용해 설정할 수 있다.
transset-df로 모든 창의 투명도를 .999로 설정하는 devilspie 스크립트 보기:
(spawn_async (str "transset-df -i " (window_xid) " .999" ))