个人工具

UbuntuHelp:Openbox

来自Ubuntu中文

Oneleaf讨论 | 贡献2007年5月13日 (日) 11:44的版本 (New page: {{From|https://help.ubuntu.com/community/Openbox}} {{Languages|php5}} '''Openbox is a lightweight window manager using [http://www.freedesktop.org/ freedesktop] standards.''' It can be u...)

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航, 搜索



Openbox is a lightweight window manager using freedesktop standards. It can be used either as a replacement for the default Gnome window manager -- UbuntuHelp:Metacity -- or as a standalone desktop environment.

What is Openbox?

To answer that question, it's important to know the difference between a window manager and a desktop environment.

A window manager is the program which draws on your screen the "box" in which the program is run. A window manager controls how your program window works, looks and acts. It decides what window decorations to use and gives you a way to move the windows, hide them, resize them, minimize them and close them. It controls what buttons you push to do those things, and what keys you press to make those things happen.

On the other hand, a desktop environment minds the entire desktop. It provides a taskbar, a system tray, a login manager, additional menus or perhaps screensavers and desktop icons. It might include a file manager, a text editor or some other accessory programs, too.

Openbox is a window manager, not a desktop environment. Openbox is only responsible for maintaining the windows you open on your screen -- nothing else. That means installing Openbox won't give you easy menu access to wallpaper options, a taskbar or system panel, or most of those other doo-dads. It does, however, give you a framework to build incorporate other programs that do those things -- and usually with a greater degree of freedom over the style and interface.

Openbox can be used alone, without a desktop environment, or it can be used to replace the window manager in a complete desktop environment. Either way is acceptable.

Features and benefits

  • Minimal overhead, which makes it ideal for lightweight systems, older hardware or speed demons;
  • Few dependencies, which again is appealing to lightweight or minimal systems;
  • Mouse-wheel scrolling of the desktops, for quick access to multiple workspaces;
  • A customisable right-click menu and customisable keybindings written as XML files;
  • Piped menus, where the output of one menu script is piped back into the Openbox menu and used in another (imagine the possibilities!);
  • Plenty of themes, which are all customizable through text files;
  • Written in C;
  • Multi-head Xinerama support for dual monitor output;
  • And above all, SPEED.

Disadvantages

  • Sparse, which some people find appealing but others dislike;
  • It can take a while to set up, and even once it is set up, changing a style or theme can be additional work;
  • Doesn't handle some obvious features, like wallpaper or a taskbar;
  • Relies on outside programs to handle some simple tasks;
  • Requires some maintenance, since it doesn't "set itself up;"
  • Some simple tasks, such as automounting CDROMs or attaching digital cameras, will require additional steps.

Installing

Openbox is in the universe repository; make sure your additional repositories are enabled before proceeding any further.

Either install Openbox from the command line,

sudo aptitude install openbox obconf
</code>

or through the Synaptic Package Manager; mark the ''openbox'' and ''obconf'' packages for installation and apply the changes.

== Openbox on Gnome ==

Use these instructions only if you're converting an existing Gnome desktop to Openbox.

=== Replacing Metacity in Gnome ===

To replace Metacity on a Gnome installation, type this command into a terminal window:

 <pre>
openbox --replace
</code>

If you wish to keep Openbox as your default window manager, just save your session on logout.

=== Select the session ===

When you reach the GDM login, clicking on the "Session" button should give you Openbox as an option. Click it to start Openbox after your login.

== Openbox by itself ==

Starting Openbox on its own is an easy task. Edit your ''~/.xinitrc'' file and add this line to trigger Openbox when X starts.

 <pre>
exec openbox
</code>

Of course, without some additional programs and accessories, there's very little to see in a pure Openbox installation. Keep reading for more ideas.

== Configuration ==

=== menu.xml and rc.xml ===

Openbox uses two main configuration files: '''rc.xml''', which sets keybindings, desktop names and window behavior; and '''menu.xml''', which contains the instructions for the right-click menu. As you might have guessed, both files are written in XML and can be edited in any text editor program. If you make a mistake and your file is no longer valid XML, Openbox will revert to the default configuration files in /etc/xdg/openbox/.

Here's an example of what's inside the menu.xml file.

 <pre>
<item label="Program_Name">
	<action name="Execute">
		<execute>
			Program_Command
		</execute>
	</action>
</item>
</code>

As you can see, the menus are neatly nested so they can be easily followed. Each entry has an opening tag and a closing tag, and each is clearly readable. rc.xml has a similar structure.

For more information about how to hand-edit Openbox's XML files, read over the [http://icculus.org/openbox/ Openbox Web site].

==== ObMenu ====

If you're not keen on editing an XML file, there's [http://obmenu.sourceforge.net/ ObMenu]. This is a very small Python program that will allow you to modify your menu with a simple GUI, and save the results back into your menu.xml file. It's fast, easy and you don't have to worry about typos in your menu.xml file.

To install it, download the ObMenu package from [http://obmenu.sourceforge.net/download.html here], and decompress it. Next, install its dependencies.

 <pre>
sudo aptitude install python2.5 python-glade2 python-gtk2
</code>

Now enter this command to install the program:

 <pre>
sudo python setup.py install
</code>

If all goes well (and it probably will), you should be able to bring up the ObMenu interface by entering the ''obmenu'' command in a terminal.

== Customizing ==

Openbox might just be a window manager, but there are plenty of opportunities to add some flair.

=== Obconf ===

Obconf is a handy program to customise Openbox. It allows for the selection of themes, some window behaviour, the number of desktops, and the dock. You can start Obconf with this command:

 <pre>
obconf
</code>

'''Note:''' Edgy (Ubuntu 6.10) users should be aware of a small discrepancy in Obconf that might prevent it from running. You can correct that with these commands ...

 <pre>
cd /usr/lib
sudo ln libobparser.so.0.4.0 libobparser.so.1
sudo ln libobrender.so.0.4.0 libobrender.so.1
</code>

Entering ''obconf'' in an X terminal window should now trigger the Obconf dialogue.

==== Themes ====

A variety of default themes are available in the repositories; you can install them via Synaptic, or through a terminal command:

 <pre>
sudo aptitude install openbox-themes
</code>

A number of third-party sites also offer themes as compressed packages. Download the one you like, then decompress it into the ''~/.themes'' folder.

 <pre>
tar -xzvf compressed-theme-package-that-you-downloaded.tar.gz -C ~/.themes/
</code>

Don't forget the trailing slash. Now you can use Obconf to select your theme.

==== Modifying themes ====

The better part of a theme package is contained in a text file called ''themerc'' inside some nested folders in ''~/.themes''. If you want to fine-tune a theme (such as, make the letters bigger, or change the width of a window handle, or pick a different color), find the correct file in your ''~/.themes'' folder and edit it as you like.

When you save it, you can reselect the theme with Obconf, and your changes will take effect.

=== Wallpaper ===

==== feh ====

A number of programs can handle the responsibility of showing a background image; the most common is a funny little program called ''feh''.

feh is actually a lightweight image viewer with a number of options, but perhaps the most popular is the ability to draw a desktop background. Pick a wallpaper image and try this command in a terminal.

 <pre>
feh --bg-scale /path/to/your/background/image.jpg
</code>

Feh can handle other file types than just jpg. Once you've picked a wallpaper, feh stores the name in a file called ''.fehbg''. That means you can tell it to restore the wallpaper on the next boot by checking to see what's inside that file. Add this line to your ''~/.xinitrc'' file.

 <pre>
eval `cat $HOME/.fehbg` &
</code>

===== Random wallpaper =====

One neat trick available with feh is a random wallpaper on each boot. Make a directory in your home folder called "wallpapers", then put a few background images in it. Then copy this text into a file called ''wallpaper.sh'', and save it anywhere.

 <pre>
#!/bin/bash
WALLPAPERS="~/wallpapers"
ALIST=( `ls -w1 ~/wallpapers` )
RANGE=${#ALIST[@]}
let "number = $RANDOM"
let LASTNUM="`cat $WALLPAPERS/.last` + $number"
let "number = $LASTNUM % $RANGE"
echo $number > $WALLPAPERS/.last

feh --bg-scale $WALLPAPERS/${ALIST[$number]}
</code>

Next make the script executable.

 <pre>
chmod +x wallpaper.sh
</code>

Now add that program to your ~/.xinitrc file, like this.

 <pre>
./wallpaper.sh
</code>

When you log in, the script should be executed, and feh will pick a new wallpaper for your amusement.

==== Other options ====

feh isn't the only program that can handle drawing a background image. Here are some others.

* xsetbg
* imagemagick

Additionally, some file managers have the option of managing your wallpaper.

* rox-filer
* PCManFM
* Nautilus, if started without the --no-desktop option, will draw over the background image

=== Desktop icons ===

==== iDesk ====

You can add customizable, clickable icons to your desktop with [http://idesk.sourceforge.net/wiki/index.php/Main_Page iDesk]. iDesk is available in the Ubuntu repositories, and is installable from the command line with

 <pre>
sudo aptitude install idesk
</code>

Consult the [http://idesk.sourceforge.net/ iDesk wiki] for instructions on how to configure and use iDesk. For icon sets, you may wish to search the repositories, or download them from third-party customization sites, such as [http://www.gnome-look.org Gnome-Look.org] and similar locations.

==== Rox-Filer ====

Rox-filer is a file manager, but in addition to handling wallpaper, it also has a ''pinboard'' option, and can manage desktop icons. Install rox-filer with this command:

 <pre>
sudo aptitude install rox-filer
</code>

You can set up the pinboard through Rox's menus.

=== Taskbars and pagers ===

Some people prefer to use a taskbar or pager to keep track of running programs. Here's a list of applications you can add to your Openbox installation that will handle that task for you.

* bbpager
* pypanel ('''Note:''' For Ubuntu 6.10 users, the PyPanel included in the repositories is often reported as broken. Look [http://www.ubuntuforums.org/showthread.php?t=327514 here] for a possible way to fix it.)
* gnome-panel
* fspanel
* fbpanel
* perlpanel
* xfce4-panel

=== System monitors ===

If you're looking for a way to display system information, try these nifty programs.

* gkrellm, which has a number of floating or docked graphical meters and displays
* adesklets, for similar graphical displays
* conky, a highly configurable text and graphic output that draws directly to your desktop

If you're working on Openbox in conjunction with a Gnome installation, you might also look into ''gdesklets'', which features some very polished monitors and meters for desktop display.

=== GTK themes ===

Program GUIs might look ugly if you're working on a pure Openbox system. Install gtk-theme-switch and the gtk2-engines package to give yourself a few more appealing options.

 <pre>
sudo aptitude install gtk-theme-switch gtk2-engines
</code>

Bring up the configuration menu with this command, from a terminal or the Openbox right-click menu.

 <pre>
switch2
</code>

Be sure to search the repositories for other engines that aren't included in the gtk2-engines package.

You can also try installing a Gnome package that will manage some of the settings for you.

 <pre>
sudo aptitude install gnome-settings-daemon
</code>

If you prefere an XFCE look, try

 <pre>
sudo aptitude install xfce-mcs-manager
</code>

Both of those programs can be added to your Openbox menu, or started from a terminal.

=== Automounting ===

To automount external volumes -- like CDs and USB drives -- you will need a volume manager. Here is the Gnome application that handles that:

 <pre>
sudo aptitude install gnome-volume-manager
</code>

Kubuntu and Xubuntu share the ivman application, which is installable with:

 <pre>
sudo aptitude install ivman
</code>

=== Screensaver ===

If you're building an Openbox desktop with Gnome already installed, you'll probably already have ''gnome-screensaver'' in place. Pure Openbox fans might want to install ''xscreensaver'', which is more customizable and has a wider variety of screensavers involved.

Without K/X/Ubuntu in place, installing xscreensaver needs a couple of extra commands:

 <pre>
sudo mkdir /usr/share/backgrounds
sudo aptitude install xscreensaver xscreensaver-gl-extra xscreensaver-data-extra
</code>

The first command sets up a default directory that xscreensaver will look for when it runs. If you don't create that directory, you'll get a string of error messages the first time you set the preferences.

The second command installs xscreensaver and its optional files. xscreensaver in Ubuntu is packaged with several screensaver options enabled, but not installed. As a result, you might see brief error messages when the daemon picks an enabled screensaver that it can't find. Adding those packages puts the missing screensavers in place, which is easier than disabling the absent ones.

Now add this command to your ''~/.xinitrc'' file, to start the xscreensaver daemon on boot.

 <pre>
xscreensaver --no-splash
</code>

You can access the xscreensaver preferences panel by running ''xscreensaver-demo'' from the Openbox menu or from a terminal window.

=== Run dialogue ===

Some people find it convenient to invoke a run dialogue program, which is usually triggered with ALT+F2. You'll need to change the keybinding in the rc.xml file in order to regain that function.

If you are using XFCE components, changing rc.xml to point at ''xfrun4'' might solve the problem. If not, consider installing the ''gmrun'' program.

 <pre>
sudo aptitude install gmrun
</code>

Change your rc.xml file to point to ''gmrun''; you don't have to add it to your ''.xinitrc'' file, though.

== Other lightweight window managers ==

=== To replace Metacity ===

As an alternative to [[UbuntuHelp:Metacity]], consider these window managers.

* xfwm4: This is the default window manager for the XFCE4 desktop environment, and is a very comprehensive substitute. Instructions on replacing [[UbuntuHelp:Metacity]] with XFCE4 are found [http://www.ubuntuforums.org/showthread.php?t=88393 here].
* Fluxbox: Fluxbox is a very attractive, very lightweight window manager that is highly customizable and has a very strong following. To replace [[UbuntuHelp:Metacity]] with [[UbuntuHelp:Fluxbox]], check [http://www.ubuntuforums.org/showthread.php?t=63734 this thread] in the forums.

=== Standalone ===

Here are some alternatives to Openbox for standalone window managers and desktop environments.

* [[UbuntuHelp:FVWM]]: FVWM is a traditional window manager with a long history in the Linux community. It is highly customizable, very flexible and has a very slim profile.
* [[UbuntuHelp:FVWM-Crystal]]: FVWM is set of configuration files that sits atop of FVWM, and is installable as a complete desktop environment with integrated audio controls, screensaver options and wallpaper control. It's also one of the prettiest options available to older hardware.
* [[UbuntuHelp:Fluxbox]]: Fluxbox is a window manager intended to be lightweight, fast and beautiful. It achieves all of those things, and more. If you find you enjoy working with Fluxbox, the [http://www.fluxbuntu.org/ Fluxbuntu] project might be for you.
* [[UbuntuHelp:IceWM]]: IceWM is likewise a clean and svelte window manager, but keeps a "traditional" desktop look that some users prefer.
* [[UbuntuHelp:Blackbox]]: Blackbox served as the basis for Openbox, although Openbox has been completely rewritten in past years. Blackbox is still available, and still a popular option.
* XFCE: XFCE serves as the underpinnings for [http://www.xubuntu.org/ Xubuntu], a fully supported Ubuntu variant complete with an office suite, networking interfaces, e-mail clients, and more. The project began as an option to run Ubuntu on older hardware, but has matured into a complete system on par with Kubuntu or Ubuntu. Visit their home page for more information about the project.

== External links ==

=== Openbox ===

* [http://icculus.org/openbox/docs.php?page=toc.html Openbox Web site]
* [http://www.ubuntuforums.org/showthread.php?t=75471 An Openbox howto on ubuntuforums.org]
* [https://wiki.ubuntu.com/CustomXSession XSession Wiki page]
* [http://www.ubuntuforums.org/showthread.php?t=103806 How to build an Oubuntu! desktop]

=== Openbox themes ===

* [http://themes.freshmeat.net/browse/1087/ Freshmeat]
* [http://www.boxwhore.org/ boxwhore]

=== A sample .xsession file ===

* [http://www.ubuntuforums.org/showthread.php?t=23998 An example from ubuntuforums.org]

=== Other programs ===

* [http://www.linuxbrit.co.uk/feh/ feh Web site]
* [http://www.muhri.net gkrellm themes]

=== Other sites of interest ===

* [http://en.wikipedia.org/wiki/Openbox Wikipedia article on Openbox]
* [http://gentoo-wiki.com/HOWTO_Openbox Openbox in the Gentoo Linux wiki]
----
CategoryDocumentation CategoryCleanup


-- I'm still of the mind that this page should be split out, with Openbox on Gnome taking the bulk of the previous material, and this staying closer to a "pure Openbox on Ubuntu" explanation. Edit: Scratch that. Openbox+Gnome material can shift to ReplaceMetacityWithOpenbox, and link to there from here. -- K.Mandla

[[category:UbuntuHelp]]