arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
253 lines (154 loc) • 12 kB
Markdown
PekWM은 Claes Nästen이 만들었다. 코드는 [aewm++](/index.php?title=Aewm%2B%2B&action=edit&redlink=1 "Aewm++ (page does not exist)") 창 관리자에 기초하지만 거듭 발전하면서 더 이상 [aewm++](/index.php?title=Aewm%2B%2B&action=edit&redlink=1 "Aewm++ (page does not exist)")와 비슷하지 않다. 또한 기능도 확장해서 [ion3](/index.php/Ion3 "Ion3"), [pwm](/index.php?title=Pwm&action=edit&redlink=1 "Pwm (page does not exist)"), [fluxbox](/index.php/Fluxbox "Fluxbox")와 비슷한 창 그룹화, 자동 속성, xinerama, 키 조합을 지원하는 keygrabber 등 훨씬 다양한 기능을 갖추었다.
## Contents
* [1 설치](#.EC.84.A4.EC.B9.98)
* [2 시작하기](#.EC.8B.9C.EC.9E.91.ED.95.98.EA.B8.B0)
* [2.1 방법 1: kdm/gdm](#.EB.B0.A9.EB.B2.95_1:_kdm.2Fgdm)
* [2.2 방법 2: xinitrc](#.EB.B0.A9.EB.B2.95_2:_xinitrc)
* [3 PekWM 설정하기](#PekWM_.EC.84.A4.EC.A0.95.ED.95.98.EA.B8.B0)
* [3.1 메뉴](#.EB.A9.94.EB.89.B4)
* [3.1.1 MenuMaker](#MenuMaker)
* [3.1.2 수동으로 편집하기](#.EC.88.98.EB.8F.99.EC.9C.BC.EB.A1.9C_.ED.8E.B8.EC.A7.91.ED.95.98.EA.B8.B0)
* [3.2 단축키](#.EB.8B.A8.EC.B6.95.ED.82.A4)
* [3.3 마우스](#.EB.A7.88.EC.9A.B0.EC.8A.A4)
* [3.4 프로그램 자동 시작](#.ED.94.84.EB.A1.9C.EA.B7.B8.EB.9E.A8_.EC.9E.90.EB.8F.99_.EC.8B.9C.EC.9E.91)
* [3.5 변수](#.EB.B3.80.EC.88.98)
* [3.6 자동 속성](#.EC.9E.90.EB.8F.99_.EC.86.8D.EC.84.B1)
* [4 테마](#.ED.85.8C.EB.A7.88)
* [4.1 GTK 테마](#GTK_.ED.85.8C.EB.A7.88)
* [5 바탕화면 설정](#.EB.B0.94.ED.83.95.ED.99.94.EB.A9.B4_.EC.84.A4.EC.A0.95)
* [6 문제점](#.EB.AC.B8.EC.A0.9C.EC.A0.90)
* [6.1 Nvidia TwinView를 사용할 때, 창이 두 화면 모두에 걸쳐 최대화되는 경우](#Nvidia_TwinView.EB.A5.BC_.EC.82.AC.EC.9A.A9.ED.95.A0_.EB.95.8C.2C_.EC.B0.BD.EC.9D.B4_.EB.91.90_.ED.99.94.EB.A9.B4_.EB.AA.A8.EB.91.90.EC.97.90_.EA.B1.B8.EC.B3.90_.EC.B5.9C.EB.8C.80.ED.99.94.EB.90.98.EB.8A.94_.EA.B2.BD.EC.9A.B0)
* [6.2 컴포지팅/투명 효과가 문제가 되는 경우](#.EC.BB.B4.ED.8F.AC.EC.A7.80.ED.8C.85.2F.ED.88.AC.EB.AA.85_.ED.9A.A8.EA.B3.BC.EA.B0.80_.EB.AC.B8.EC.A0.9C.EA.B0.80_.EB.90.98.EB.8A.94_.EA.B2.BD.EC.9A.B0)
* [7 바깥 고리](#.EB.B0.94.EA.B9.A5_.EA.B3.A0.EB.A6.AC)
## 설치
저장소에서 PekWM을 설치하라.
```
pacman -S pekwm
```
## 시작하기
### 방법 1: kdm/gdm
먼저 kdm이나 gdm을 설치하여 활성화하라. **로그인 관리자**를 활성화하는 방법은 [여기](/index.php/Display_manager "Display manager")를 보라. PekWM이 세션 목록에 추가되어 있을 것이다. 로그인하기에 앞서 세션 목록에서 PekWM을 선택하라.
### 방법 2: xinitrc
자신의 홈 폴더에 있는 .xinitrc 파일(~/.xinitrc)에 다음을 추가하라.
```
exec pekwm
```
## PekWM 설정하기
~/.pekwm/config 파일이 주 설정 파일이다. 작업공간, 뷰포트, 메뉴, 화면 가장 자리 설정 등을 제어한다. [여기](http://www.pekwm.org/files/pekwm/doc/git/html/config/configfile.html) PekWM 문서에 자세한 설명과 함께 보기 파일이 있다.
### 메뉴
PekWM는 기본적으로 아치 저장소에서 설치될 때 미리 정의된 메뉴도 함께 온다. 이는 자신의 시스템을 반영하는 것이 아니며 따라서 실제로 설치된 것과 매우 다를 가능성이 높다. 보기로서 제공되는 것으로 그것을 수정하지 않고 사용해야할 필요는 없다.
자신의 메뉴는 ~/.pekwm/menu에 저장된다.
#### MenuMaker
자신의 시스템에 설치된 프로그램용 메뉴를 자동으로 생성하는 방법 가운데 하나는 Menumaker를 사용하는 것이다. 다음과 같이 실행하여 자신의 메뉴를 만들어라.
```
mmaker --no-desktop pekwm
```
**참고:** 위의 명령은 기존의 메뉴 파일을 덮어 쓰지 않을 것이다. 덮어쓰기를 원하면 -f 플래그를 위의 명령에 추가하라.
**mmaker –help**를 실행해 전체 옵션을 보라.
위의 명령으로 꽤 상세한 메뉴를 만들 수 있다. 이제 그 메뉴 파일을 수동으로 수정하거나 새로운 소프트웨어를 설치할 때마다 단순히 재생성하라.
#### 수동으로 편집하기
이미 말했듯이 ~/.pekwm/menu가 메뉴 파일이다. 이 파일의 문법은 이해하기 쉽다. 간단한 항목은 다음과 같은 구조이다.
```
Entry = "NAME" { Actions = "Exec COMMAND &" }
```
서브메뉴는 다음과 같이 구성된다.
```
Submenu = "NAME" {
Entry = "NAME" { Actions = "Exec COMMAND &" }
Entry = "NAME" { Actions = "Exec COMMAND &" }
}
```
(중괄호는 반드시 짝을 이루도록 해라. 그렇지 않으면 오류가 생겨 메뉴가 나타나지 않을 것이다.)
메뉴에 구분선을 추가하려면 다음을 사용하라.
```
Separator {}
```
PekWM은 동적 메뉴도 지원한다. 이는 기본적으로 메뉴 항목이나 서브메뉴로 그 항목이나 서브메뉴가 접근될 때마다 실행되는 스크립트의 결과를 출력하는 것이다.
온라인에서 동적 메뉴를 구할 수 있다. 메뉴에 맞는 문법을 반드시 확인하라. 이는 문법이 변하기 때문이다. 불행하게도 동적 메뉴가 온라인에 많지 않다. [여기](http://www.hewphoria.com/?p=submission&type=config)에서 Gmail과 네트워크 연결용 동적 메뉴를, [여기](http://urukrama.wordpress.com/2008/01/02/show-the-date-and-time-in-pekwms-menu/)에서는 시간과 날짜를 표시하는 동적 메뉴를 구할 수 있다. [pekwm_menu_tools](http://www.pekwm.org/projects/11)라는 프로젝트도 있는데 PekWM용 동적 메뉴를 생성하는 일련의 유용한 프로그램을 만들고자 한다.
### 단축키
~/.pekwm/keys에 단축키 설정이 저장된다. 이 파일에서 PekWM용 키보드 연결과 키연쇄를 제어한다. 키보드 연결로 프로그램을 실행하거나 PekWM 작동을 수행할 수 있다. 작동의 예를 들면, 메뉴 보기, 창 이동, 데스크톱 전환 등을 들 수 있다. 전체 PekWM 작동 목록은 [작동 문서](http://www.pekwm.org/files/pekwm/doc/git/html/config/keys_mouse.html#config-keys_mouse-actions)에 있다.
하나 이상의 작동을 키 조합에 할당할 수 있다. 그 방법은 작동을 쌍반점으로 구분하면 된다. 보기:
```
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에서 가장 혼동되는 설정 파일이지만 가장 강력한 파일이기도 하다. 이 파일에서 설정될 수 있는 것이 너무 많아서 여기에서 다룰 수 없으나 [자동 속성 문서](http://www.pekwm.org/files/pekwm/doc/git/html/config/autoprops.html)에서 상세하게 설명된다. 기본 ~/.pekwm/autoproperties 파일 또한 자동 속성을 빠르게 이해할 수 있는 설명을 포함하고 있다.
## 테마
몇 곳의 테마 사이트 링크가 문서 하단에 있다. 테마를 설치하려면 테마 압축 파일을 테마 디렉토리에 풀어야 한다. 다음은 기본 테마 디렉토리이다.
* 시스템 전체 - /usr/share/pekwm/themes
* 사용자 - ~/.pekwm/themes
### GTK 테마
GTK 프로그램 테마를 변경하기 위해 [LXAppearance](http://www.gnomefiles.org/app.php/LXAppearance)를 사용할 수 있다.
## 바탕화면 설정
PekWM은 단순한 창 관리자이므로 별도의 프로그램을 사용해 바탕화면을 설정해야 한다. 다음 프로그램이 많이 쓰인다.
* [feh](/index.php/Feh "Feh")
* [Nitrogen](/index.php/Nitrogen "Nitrogen")
* [xli](/index.php?title=Xli&action=edit&redlink=1 "Xli (page does not exist)")
* [esetroot](/index.php?title=Esetroot&action=edit&redlink=1 "Esetroot (page does not exist)")
* [hsetroot](/index.php?title=Hsetroot&action=edit&redlink=1 "Hsetroot (page does not exist)")
## 문제점
### Nvidia TwinView를 사용할 때, 창이 두 화면 모두에 걸쳐 최대화되는 경우
`~/.pekwm/config`를 열어 다음 줄을 찾아서
`HonourRandr = "True"`
아래 줄처럼 변경한다.
`HonourRandr = "False"`
[Source](https://projects.pekdon.net/projects/pekwm/tasks/124)
### 컴포지팅/투명 효과가 문제가 되는 경우
v0.1.11 기준, PekWM은 컴포지팅을 원할하게 지원하지 못하는 것 같다. 기본 xcompmgr은 작동하지만 투명 독과 패널은 그렇지 못하다. 또 창을 숨기면 그래픽 결함이 나타나는데 이를 해결하려면 모든 창의 투명도를 .999나 기타 다른 값으로 devilspie와 transset-df를 사용해 설정할 수 있다.
transset-df로 모든 창의 투명도를 .999로 설정하는 devilspie 스크립트 보기:
```
(spawn_async (str "transset-df -i " (window_xid) " .999" ))
```
## 바깥 고리
* [Pekwm 홈페이지](http://pekwm.org/)
* [Box-Look PekWM 테마](http://box-look.org/index.php?xcontentmode=7403)
* [Hewphoria PekWM 테마](http://hewphoria.com/?p=submission&type=theme&cat=1)
* [Freshmeat PekWM 테마](http://themes.freshmeat.net/search/?q=pekwm§ion=projects)