UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

253 lines (154 loc) 12 kB
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&section=projects)