Openbox (한국어)

From ArchWiki
Revision as of 04:56, 20 June 2013 by Fengchao (talk | contribs) (단독 WM로 오픈박스 사용: Remove ck-launch-session. Not supported anymore.)
Jump to: navigation, search


오픈박스는 가볍고 설정을 자유롭게 할 수 있으며 광범위한 표준을 지원하는 윈도 매니저이다. 오픈박스 공식 웹사이트에 그 기능들이 설명되어 있다. 이 문서는 아치 리눅스에서 오픈박스를 설치하는 것에 대한 것이다.


공식 저장소에 있는 오픈박스를 설치한다. 그 다음에 기본 설정 파일인 rc.xml, menu.xml, autostartenvironment~/.config/openbox로 복사한다.

참고: 루트 권한이 없는 일반 사용자로 이것을 실행한다.
$ mkdir -p ~/.config/openbox

다음 파일 네 개가 오픈박스를 기본적으로 설정한다. 각 파일은 특정한 부분을 설정하는데 각 파일에 대한 설명은 다음과 같다.

이 파일이 기본 설정 파일이다. 키보드 단축키, 테마, 가상 데스크톱 등을 설정한다.
이 파일은 마우스 오르쪽 클릭 메뉴를 설정한다. 프로그램 실행기와 기타 빠른 실행을 설정한다. #Menus 부분을 참고하라.
오픈박스 실행 시에 openbox-session이 읽어 들인다. 오픈박스 실행 시에 시작하는 프로그램을 포함한다. 보통 환경 변수를 설정하거나 패널/독을 실행하거나 바탕화면을 설정하거나 시작 스크립트를 실행하는 데에 사용된다. 오픈박스 위키를 참고하라.
오픈박스 실행 시에 openbox-session이 읽어 들인다. 오픈박스에서 설정될 환경 변수를 포함한다. 여기에 설정된 어떤 변수라도 오픈박스와 오픈박스 메뉴에서 실행하는 모두에 적용될 것이다.

오픈박스 3.5 버전으로 업그레이드하기

오픈박스 3.5이상으로 업그레이드하려면 다음을 유의하세요.

  • environment라는 새로운 설정 파일이 있는데 /etc/xdg/openbox에서 ~/.config/openbox로 복사해야 합니다.
  • 이전에 autostart.sh라는 설정 파일은 지금 autostart이다. 이전 파일이 있다면 파일 이름 뒤에 .sh를 제거하라.
  • rc.xml 파일에서 설정 구문 일부가 바뀌었다. 오픈박스가 옛 설정을 인식하는 것처럼 보일지라도 /etc/xdg/openbox에 있는 파일과 비교해서 영향을 받을 수 있는 변경 사항을 검토하는 것이 좋다. 

단독 WM로 오픈박스 사용

오픈박스는 단독으로 사용할 수 있는 윈도 매니저(WM)이다. 이는 데스크톱 환경과 함께 사용할 때보다 설치하고 설정하기가 더 간단하다. 오픈박스를 단독으로 사용하기 때문에 CPU와 메모리 부하를 줄일 수 있다. 오픈박스를 단독으로 실행하려면 다음을 ~/.xinitrc에 추가하라.

exec openbox-session

명령 쉘(텍스트 프롬프트)에서 xinit를 사용해 실행할 수도 있다.

$ xinit /usr/bin/openbox-session

Xfwm과 같은 윈도 매니저를 이전에 사용했고 지금 로그아웃해서 오픈박스를 시작할 수 없다면 autostart 폴더를 삭제해보라.

참고: 오픈박스 xdg-autostart를 사용하려면 python2-xdg가 필요하다.
참고: ck-launch-session dbus-launch 순으로 실행되어야 하며 그렇지 않으면 마운팅 문제가 발생할 것이다.

데스크톱 환경용 윈도매니저로 오픈박스 사용하기

오픈박스는 완전한 데스크톱 환경용 윈도 매니저로 사용할 수 있다. 오픈박스를 사용하는 방법은 데스크톱 환경에 따라 다르다.

GNOME 2.24와 2.26

다음의 내용으로 /usr/share/applications/openbox.desktop 파일을 생성하라.

[Desktop Entry]
# 로드할 수 있는 컨트롤 센터 모듈 이름
#  WM 확인 창 이름

gconf에서 /desktop/gnome/session/required_components/windowmanageropenbox로 설정하라.


마지막으로 GDM 세션 선택 메뉴에서 GNOME 세션을 선택하라.

GNOME 2.26 redux

앞의 GNOME 2.24 용 안내가 효과가 없을 경우

"Gnome/Openbox" 세션으로 로그인하려하지만 계속해서 시작하지 못하면 다음을 시도해보라. 이 방법은 Gnome 세션을 시작할 때 WM로 오픈박스를 사용하는 한 가지 방법이다.

  1. Gnome-only 세션(윈도 매니저로 메타시티를 사용할 경우)으로 로그인하라.
  2. 오픈박스를 아직 설치하지 않았다면 설치하라.
  3. 메뉴에서 System → Preferences → Startup Applications ( Gnome 옛 버전에서는 'Session'이라고 함) 순으로 찾아 가라.
  4. Startup Application을 열어서 '+ Add'를 선택한 후에 다음의 글을 입력하라. # 뒤의 글은 생략하라.
  5. 'Add' 버튼을 클릭해 데이터 입력 창을 연다. 새로 입력하는 항목 옆의 체크박스를 선택했는지 확인하라.
  6. Gnome 세션에서 로그아웃하고 다시 로그인하라.
  7. 지금 오픈박스를 윈도 매니저로 실행하고 있어야 한다.
Name:    Openbox Windox Manager          # 변경 가능
Command: openbox --replace               # 이 줄은 필수 입력 사항이며 뒤에 덧붙일 수 있음
Comment: Replaces metacity with openbox  # 변경 가능

이는 시작 항목을 생성하며 사용자 세션이 시작할 때마다 Gnome이 실행한다.

GNOME 2.22와 그 이전

  1. GDM을 사용한다면 "GNOME/Openbox" 로그인 옵션을 선택하라.
  2. startx를 사용한다면 exec openbox-gnome-session~/.xinitrc에 추가하라.
  3. 쉘에서 다음을 실행할 수도 있다.
$ xinit /usr/bin/openbox-gnome-session


  1. KDM을 사용한다면 "KDE/Openbox" 로그인 옵션을 선택하라.
  2. System Settings > Default Applications (Workspace Appearance and Behaviour 부분)을 열어서 디폴트 윈도 매니저를 오픈박스(다시 로그인할 필요가 없음)로 변경하라.
  3. startx를 사용한다면 exec openbox-kde-session~/.xinitrc에 추가하라.
  4. 쉘에서 다음을 실행할 수도 있다.
$ xinit /usr/bin/openbox-kde-session



$ killall xfwm4 ; openbox & exit




 <item label="Exit Openbox">
   <action name="Exit">

Change it to:

 <item label="Exit Openbox">
   <action name="Execute">




$ xfdesktop --quit



Openbox for multihead users

While Openbox provides better than average multihead support on its own, a branch called Openbox Multihead is now available in the AUR that gives multihead users per-monitor desktops. This model is not commonly found in floating window managers, but exists mainly in tiling window managers. It is explained well on the Xmonad web site. Also, please see README.MULTIHEAD for a more comprehensive description of the new features and configuration options found in Openbox Multihead.


A downside to using Openbox Multihead is that it breaks the EWMH assumption that one and only one desktop is visible at any time. Thus, existing pagers will not work well with it. To remedy this, pager-multihead can be found in the AUR that is compatible with Openbox Multihead. Screenshots.

Finally, a new version of pytyle can also be found in the AUR that will work with Openbox Multihead.



There are several options for configuring Openbox settings:

Manual configuration

To configure Openbox manually, edit the ~/.config/openbox/rc.xml file with a text editor. The file has explanatory comments throughout. See the Help:Configuration openbox wiki for more documentation on editing this file.



# pacman -S obconf


Application customization


  • Start your web browser on a specific virtual desktop.




Manual configuration of menus

You can edit ~/.config/openbox/menu.xml with a text editor. Many of the settings are self-explanatory. The article Help:Menus has extensive details.

Icons in menu



then openbox --reconfigure or openbox --restart if you have troubles updating the menu :)



# pacman -S menumaker    #  Install MenuMaker from the repository





Obmenu is a menu editor for Openbox. This GUI application is the best choice for those who dislike editing XML code. Obmenu is available in the community repository:

# pacman -S obmenu






Then add the following line under your 'root-menu' entry where you want to have the menu appear:

<menu id="xdg-menu"/>





[community] 저장소에 있는 archlinux-xdg-menu 꾸러미는 XDG 파일을 사용해 오픈박스용 메뉴를 자동으로 생성한다. 사용 방법은 여기를 참고하라.


Openbox-menu는 LXDE 프로젝트에서 만든 menu-cache를 사용해 오픈박스용 동적 메뉴를 만든다.

프로젝트 홈페이지:

AUR 꾸러미: [1]

Python-based xdg menu script


Here is the head: latest script

Download from the above repository. Place the file into the directory you want.


<menu id="apps-menu" label="xdg-menu" execute="python2 <path>/xdg-menu"/>

Save the file and run openbox --reconfigure.


Openbox menu generator

Residing in the AUR as obmenugen-bin, Openbox menu generator creates the menu file from *.desktop files. Obmenugen provides a text file which filters (hides) menu items using basic regex.

$ obmenugen               # Create a menu file
$ openbox --reconfigure   # To see the menu you generated

Pipe menus


User Xyne created a pipe menu file browser and user brisbin33 created a pipe menu for scanning and connecting to wireless hot spots (using netcfg). Forum posts for these utilities are here: file browser and here: wifi.

User jnguyen created a pipe menu for managing removable devices using Udisks. The forum post is here: obdevicemenu.

Startup programs


Enabling autostart

There are two ways to enable autostart:


Autostart script




Autostart directory


Themes and appearance

Template:Box YELLOW

Openbox themes

Themes control the appearance of windows, titlebars, and buttons. They also control menu appearance and on-screen display (OSD). Additional themes are available from the standard repositories.

# pacman -S openbox-themes

Cursors, icons, wallpaper


Recommended programs

Template:Box YELLOW

There is a list of Lightweight Applications in the wiki. Most of these work nicely with Openbox.

Tips and tricks

Aero snap behaviour

Windows 7 supports a unique window behaviour to snap windows when they are moved to the edge of the screen. This effect can also be achieved through an Openbox keybinding. More information here.

File associations


A package in the AUR called gnome-defaults-list contains a list of file-types and programs specific to the Gnome desktop. The list is installed to /etc/gnome/defaults.list.

Open this file with your text-editor. Now you can replace a given application with the name of the program of your choosing. For example, totem <=> vlc or eog <=> mirage. Save the file to ~/.local/share/applications/defaults.list.

Another way of setting file associations is to install package perl-file-mimeinfo from the repository and invoke mimeopen like this:

mimeopen -d /path/to/file


Please choose a default application for files of type text/plain
       1) notepad  (wine-extension-txt)
       2) Leafpad  (leafpad)
       3) Writer  (writer)
       4) gVim  (gvim)
       5) Other...


Copy and paste

From a terminal Template:Keypress for copy and Template:Keypress for paste.



Window transparency

The program transset-df (virtually the same as transset) is installed with pacman -S transset-df. With transset-df you can enable window-transparency on-the-fly.

For instance by placing the following in ~/.config/openbox/rc.xml you can have your mouse adjust window transparency by scrolling while hovering over the title bar (it is in the <mouse> section):

    <context name="Titlebar">
     . . .
       <action name= "Execute" >
       <action name= "Execute" >
     . . .


Xprop values for applications




[thayer@dublin:~] $ xp

Xprop for Firefox


Linking the menu to a button

Some people want to link the Openbox menu (or any menu) to an object. This is useful for creating a panel button to pop up a menu. Although Openbox does not provide this, a program called xdotool (available in community repo) simulates a keypress. Openbox can be configured to bind that keypress to the ShowMenu action.

After installing xdotool, add the following to the <keyboard> section of your rc.xml:

 <keybind key="A-C-q">
   <action name="ShowMenu">


$ xdotool key ctrl+alt+q

Of course, change the key shortcut to your liking. Here is a snippet from a tint2 (a taskbar-like panel) configuration file which pops up a menu when the clock area is clicked. Each key combination is set to open a menu within openbox's rc.xml configuration file. The right‑click menu is different from the left‑click menu:

clock_rclick_command = xdotool key --clearmodifiers "ctrl+XF86PowerOff"
clock_lclick_command = xdotool key --clearmodifiers "alt+XF86PowerOff"

Urxvt in the background


First you must enable transparency, open your .Xdefaults file (if it does not exist yet, create it in your home folder).


Then edit your .config/openbox/rc.xml file:

<application name="urxvt">

The magic comes from the <layer>below</layer> line, which place the application under all others. Here Urxvt is displayed on all desktops, change it to your convenience.

Note: Instead of using <application name="URxvt">, you can use another name ("URxvt-bg" for example), and use the -name option when starting uxrvt. That way, only the urxvt terminals which you choose to name URxvt-bg would be captured and modified by the application rule in rc.xml. For example: urxvt -name URxvt-bg (case sensitive)

ToggleShowDesktop exception

Above method still minimizes Urxvt when using the ToggleShowDesktop command. A method for avoiding this is explained in this forum post. This involves editing Urxvt's source code.


The only working method at the moment seems to be the one outlined here. This makes ToggleShowDesktop a one-way action, not restoring the other desktop applications when ToggleShowDesktop is run for a second time. It also creates the opportunity to use a different terminal emulator than Urxvt, however.

Keyboard volume control


If you use ALSA for sound, you can use the amixer program to adjust the volume of sound. You can use Openbox's keybindings to act like multimedia keys. (Alternatively, you can probably find out the names of your real multimedia keys and map them.) For example, in the <keyboard> section of rc.xml:

   <keybind key="W-Up">
     <action name="Execute">

This binds Windows key + Up arrow to increase your master ALSA volume by 5%. Corresponding binding for volume down:

   <keybind key="W-Down">
     <action name="Execute">

As another example you can also use the XF86Audio keybindings:

   <keybind key="XF86AudioRaiseVolume">
     <action name="Execute">
   <keybind key="XF86AudioLowerVolume">
     <action name="Execute">
   <keybind key="XF86AudioMute">
     <action name="Execute">
       <command>amixer set Master toggle</command>




If you are using pulseaudio with ALSA as a backend the above keybinding are slightly different as amixer must be told to use pulse.

  <keybind key="XF86AudioRaiseVolume">
     <action name="Execute">
   <keybind key="XF86AudioLowerVolume">
     <action name="Execute">
   <keybind key="XF86AudioMute">
     <action name="Execute">
       <command>amixer set Master toggle</command>


Troubleshooting Openbox 3.5

X server crashes

Problems have been detected after upgrade to ver. 3.5, that the X server might crash in attempt to start openbox, ending with similar error message:

                   the exit status, or do not set the SIGCHLD action.
xinit: connection to X server lost
waiting for X server to shut down

In this particular case, some problem with metacity package has been identified as the cause of the X server crash issue. Removal of metacity & compiz-decorator-gtk packages solved the problem. Though, later was found, that even a simple reinstall of packages might have helped, as there is no problem after new installation of previously removed packages.


Autostarting unwanted applications in 3.5

Unwanted applications do start with your Openbox session, though they are not listed in your ~/.config/openbox/autostart script?


SSH agent no longer starting

Whereas Openbox 3.4.x allowed launching an SSH agent from $XDG_CONFIG_HOME/openbox/autostart{,.sh}, with 3.5 that no longer seems to work. You need to put your code in $XDG_CONFIG_HOME/openbox/environment, e.g.:

        trap "kill $SSH_AGENT_PID" 0

Openbox not registering with D-Bus

Just like with SSH agent, lots of people used to have D-Bus code in $XDG_CONFIG_HOME/openbox/autostart{,.sh} - which no longer works (e.g. Thunar does not see any removable devices anymore).

The fix is to move the code to $XDG_CONFIG_HOME/openbox/environment:

if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then

Alternatively you can call openbox-session with dbus-launch in ~/.xinitrc.

See also