Difference between revisions of "Openbox Themes and Apps"

From ArchWiki
Jump to: navigation, search
(Keyboard layout switchers: using the app template)
(no need to delete, redirect)
(49 intermediate revisions by 19 users not shown)
Line 1: Line 1:
[[Category:Stacking WMs]]
#REDIRECT [[Openbox]]
[[it:Openbox Themes and Apps]]
[[ru:Openbox Themes and Apps]]
[[zh-CN:Openbox Themes and Apps]]
{{Note|This article is a supplement to the main [[Openbox]] article.
This wiki article deals with customizing the appearance of Openbox in Arch Linux. Helper programs such as panels and trays are also explained.
== Themes and appearance ==
With the exception of the Openbox Themes topic, the following section is intended for users who have configured Openbox to run as a standalone desktop, without the assistance of [[GNOME]], [[KDE]] or [[Xfce]].
=== Openbox themes ===
Openbox themes control the appearance of window borders, including the titlebar and titlebar buttons. They also determine the appearance of the application menu and on-screen display (OSD). 
Some themes are available for [[Pacman|installation]] with the {{Pkg|openbox-themes}} package in the [[official repositories]].
This package is by no means definitive. You can download more themes at websites such as:
* [http://www.box-look.org/index.php?xcontentmode=7402 www.box-look.org]
* [http://customize.org/browse/tags/openbox www.customize.org]
* [http://www.minuslab.net/themes/ www.minuslab.net]
* [http://celo.wordpress.com/themes/ celo.wordpress.com]
* [http://vault.openmonkey.com/pages/openbox vault.openmonkey.com]
Downloaded themes should be extracted to {{ic|~/.themes}} or {{ic|~/.local/share/themes}} and selected from {{Pkg|obconf}} or {{Pkg|lxappearance-obconf}}. Theme selection can also be done manually by opening {{ic|rc.xml}} and changing the ''<name>'' key in the ''<theme>'' section.
Creating new themes is fairly easy and [http://openbox.org/wiki/Help:Themes well-documented]. For those who prefer a GUI, {{AUR|obtheme}} is a very capable editor.
=== X11 appearance ===
:''Main article: [[Xdefaults]]''
If you are running Openbox as a standalone, you will need to configure the [[X resources|.Xdefaults]] file.
Save a copy to {{ic|~/.Xdefaults}} and {{ic|/root/.Xdefaults}} (for windows opened as root).
Xdefaults is a user-level configuration dotfile, typically located at {{ic|~/.Xdefaults}}. When present, it is parsed by the xrdb (Xorg resource database) program automatically when [[Xorg]] is started, and can be used to set or override preferences for X and X applications. It can do many operations, including:
* defining terminal colours,
* configuring terminal preferences,
* setting DPI, antialiasing, hinting and other X font settings,
* changing the [[X11 Cursors|Xcursor]] theme,
* theming [[Xscreensaver]] and
* altering preferences on low-level X applications (xclock, xpdf, etc.)
=== X11 mouse cursors ===
Extract the desired Xcursor theme to either {{ic|/usr/share/icons}} (system-wide access) or {{ic|~/.icons}} (local user access). There are also a limited amount of themes available in the {{ic|[community]}} repository that can be installed using [[Pacman]].
Add this to {{ic|~/.Xresources}}:
Xcursor.theme:  [name-of-cursor-theme]
where {{ic|[name-of-cursor-theme]}} is the name of the cursor theme directory. For example:
Xcursor.theme: Vanilla-DMZ-AA
To change the size:
Xcursor.size: [size]
Sometimes it is required to symlink the icon directory into each user directory to make the window manager use them:
$ mkdir ~/.icons
$ ln -s /usr/share/icons/[name-of-cursor-theme] ~/.icons/default
For more information read the Arch Wiki: [[X11_Cursors]]
=== GTK themes ===
==== GTK2/ GTK+ ====
First, extract the desired theme to {{ic|/usr/share/themes}} (system-wide access) or {{ic|~/.themes}} (local user access), then:
[[Gtk#Themes|GTK themes]] can be managed easily with the {{Pkg|lxappearance}} (part of the LXDE Desktop), {{Pkg|gtk-chtheme}}, or {{Pkg|gtk-theme-switch2}} utilities.
If you have the {{ic|gnome-settings-daemon}} running, it can keep you from changing the GTK theme by reverting back to original theme. By default, the {{ic|autostart}} file provided by Openbox runs it, so make sure that you do not have it running if you wish to properly use GTK themes.
==== GTK1 ====
For legacy GTK1 themes, install the {{AUR|gtk-theme-switch}} package and run {{ic|switch}} to select a desired theme.
==== GTK fonts ====
To manually change the type and size of your fonts, add the following to {{ic|~/.gtkrc.mine}}:
style "user-font"
font_name = "[font-name] [size]"
widget_class "*" style "user-font"
gtk-font-name = "[font-name] [size]"
where {{ic|[font-name] [size]}} is the desired font and point size. For example:
style "user-font"
font_name = "DejaVu Sans 8"
widget_class "*" style "user-font"
gtk-font-name = "DejaVu Sans 8"
Both {{ic|font_name}} and {{ic|gtk-font-name}} fields are required for backwards compatibility.
You can also use '''gtk-chtheme''' or '''lxappearance''' to set GTK font settings.
==== GTK icons ====
First, extract the desired icon theme to {{ic|/usr/share/icons}} (system-wide access) or {{ic|~/.icons}} (local user access), then:
Add the following to {{ic|~/.gtkrc.mine}}:
gtk-icon-theme-name = "[name-of-icon-theme]"
where {{ic|[name-of-icon-theme]}} is the name of the icon theme directory. For example:
gtk-icon-theme-name = "Tango"
Ensure {{ic|~/.gtkrc-2.0}} is configured to parse {{ic|~/.gtkrc.mine}}:
# ~/.gtkrc-2.0
include "/usr/share/themes/Rezlooks-Gilouche/gtk-2.0/gtkrc"
include "/home/username/.gtkrc.mine"
You can use '''lxappearance''' to choose GTK icon themes. Alternatively, use the development versions {{AUR|lxappearance-git}} ot {{AUR|lxappearance2-git}} and {{AUR|lxappearance-obconf-git}} for the latest features.
=== Desktop icons ===
Openbox does not provide a means to display icons on the desktop. To provide this function, one can use:
* {{App|[[Xfce|Xfdesktop]]|The desktop manager for Xfce.|http://docs.xfce.org/xfce/xfdesktop/start|{{Pkg|xfdesktop}}}}
* {{App|[[PCManFM]]|An extremely fast and lightweight file manager used by the LXDE desktop.|http://pcmanfm.sourceforge.net/|{{Pkg|pcmanfm}}}}
* {{App|[[ROX#Usage|ROX]]|A small and fast file manager which can optionally manage the desktop background and panels, part of the ROX Desktop.|http://roscidus.com/desktop/|{{Pkg|rox}}}}
* {{App|[[Idesk|IDesk]]|A simple tool that gives users of minimal wm's (Fluxbox, pekwm, Window Maker, Obenbox, etc) icons on their desktop.|http://idesk.sourceforge.net/html/index.html|{{Pkg|idesk}}}}
* {{App|[[Nautilus]]|The file manager of the GNOME desktop.|https://live.gnome.org/Nautilus|{{Pkg|nautilus}}}}
=== Desktop wallpaper ===
Openbox itself does not include a way to change the wallpaper. This can be done easily with programs like [[Feh]] or [[Nitrogen]].  Other options include {{Pkg|imagemagick}}, {{Pkg|hsetroot}}, '''xsetbg''' and more advanced choices such as PCmanFM or Xfdesktop.
You can disable the wallpaper loading in ''gnome-settings-daemon'' like this:
$ gconftool-2 --set /apps/gnome_settings_daemon/plugins/background/active --type bool False
In Gnome 3 use:
$ gsettings set org.gnome.desktop.background draw-background false
One approach, using {{ic|hsetroot}} is possible by placing the following command in {{ic|autostart}}:
hsetroot -fill /path/to/image.file
A similar command for {{ic|feh}} is:
feh --bg-scale /path/to/image.file
== Recommended programs ==
{{Note|The main [[Openbox]] article has information on installing Openbox, but this supplemental section details specific lightweight applications you may want to deploy after installing Openbox.}}
For a more complete choice of applications available on Arch, look at the list of [[Common Applications|common applications]]. You can also look at the [http://openbox.org/wiki/Help:Contents#Cool_programs_to_run_with_Openbox list] recommended on the official Openbox website, although most overlap with the following suggestions.
=== Display managers ===
{{Box||See the main article: [[Display Manager]].|#E5E5FF|#FCFCFC}}
* {{App|[[SLiM]] (Simple Login Manager)|A lightweight and elegant graphical login solution.|http://slim.berlios.de/|{{Pkg|slim}}}}
* {{App|[[Qingy]]|An ultralight and very configurable graphical login independent on X Windows (uses DirectFB). It supports login to either a text console or an X session.|http://qingy.sourceforge.net/|{{Pkg|qingy}}}}
=== Desktop compositing ===
* {{App|[[Xcompmgr]]| A lightweight composite manager capable of rendering drop shadows, fading and simple window transparency within Openbox and other window managers.|http://cgit.freedesktop.org/xorg/app/xcompmgr/|{{Pkg|xcompmgr}}}}
{{Note|Xcompmgr is no longer developed, so any issues are unlikely to be fixed. Various forks are available in the [[AUR]] that fix some of the more pressing problems: {{AUR|xcompmgr-dana}}, {{AUR|xcompmgr_tint2-git}} (provides real transparency for [[Tint2]]) and {{AUR|compton-git}} (some shadows and transparency fixes).}}
* {{App|[[Cairo Compmgr|Cairo Composite Manager]]|A versatile and extensible composite manager which uses cairo for rendering.|http://cairo-compmgr.tuxfamily.org/|{{AUR|cairo-compmgr-git}}}}
=== Desktop utilities ===
A number of utilities provide panels / taskbars, system trays, or pagers to Openbox:
==== Panels ====
{{Box||For more examples see: [[Common Applications#Taskbars]].|#E5E5FF|#FCFCFC}}
* {{App|[[Avant Window Navigator]]|A lightweight dock which sits at the bottom of the screen.|http://wiki.awn-project.org/|{{AUR|avant-window-navigator-bzr}}}}
* {{App|[[Bmpanel]]|A lightweight, NETWM compliant panel for the X11 system.|http://nsf.110mb.com/bmpanel/|{{AUR|bmpanel}}}}
* {{App|[[Cairo-Dock]]|A highly customizable dock/laucher.|http://www.glx-dock.org/|{{AUR|cairo-dock}}}}
* {{App|Docker|A docking application which acts as a system tray.|http://icculus.org/openbox/2/docker/|{{Pkg|docker}}}}
* {{App|[[fbpanel]]|A lightweight, NETWM compliant desktop panel.|http://fbpanel.sourceforge.net/|{{Pkg|fbpanel}}}}
* {{App|LXPanel|A lightweight X11 desktop panel and part of the LXDE DE.|http://lxde.org/|{{Pkg|lxpanel}}}}
* {{App|Pancake|A highly configurable, modular panel for X.|http://www.failedprojects.de/pancake/|{{AUR|pancake}}}}
* {{App|[[Tint2]]|Simple panel/taskbar developed specifically for Openbox.|http://code.google.com/p/tint2/|{{Pkg|tint2}}}}
* {{App|[[wbar]]|A quick launch bar developed with speed in mind.|http://freecode.com/projects/wbar/|{{Pkg|wbar}}}}
* {{App|[[GNOME#GNOME panel|GNOME Panel]]|The default [[Gnome]] panel.|https://live.gnome.org/GnomePanel|{{Pkg|gnome-panel}}}}
* {{App|PerlPanel|A lightweight panel that supports applets.|http://savannah.nongnu.org/projects/perlpanel|{{Pkg|perlpanel}}}}
* {{App|[[PyPanel]]|A lightweight panel/taskbar for X11 window managers written in Python.|http://pypanel.sourceforge.net/|{{Pkg|pypanel}}}}
* {{App|[[Wikipedia:Screenlets|Screenlets]]|A widget framework that consists of small owner-drawn applications (weather widget, clocks, system monitors, mail checkers, etc.).|http://screenlets.org/index.php/Home|{{Pkg|screenlets}}}}
* {{App|[[Xfce#Panel|Xfce Panel]]|The default [[Xfce]] panel.|http://docs.xfce.org/xfce/xfce4-panel/start|{{Pkg|xfce4-panel}}}}
==== Trays ====
* {{App|[[Stalonetray]]|A stand-alone system tray with minimal dependecies.|http://stalonetray.sourceforge.net/|{{Pkg|stalonetray}}}}
* {{App|Trayer|A lightweight GTK2-based systray.|https://gna.org/projects/fvwm-crystal/|{{Pkg|trayer}}}}
==== Pagers ====
* {{App|IPager|A configurable pager with transparency, originally developed for Fluxbox.|http://useperl.ru/ipager/index.en.html|{{AUR|ipager}}}}
* {{App|Neap|An non-intrusive and light pager that runs in the notification area of your panel.|http://code.google.com/p/neap/|{{Pkg|neap}}}}
* {{App|Netwmpager|A NetWM/EWMH compatible pager.|http://sourceforge.net/projects/sf-xpaint/files/netwmpager/|{{Pkg|netwmpager}}}}
* {{App|Pager|A highly configurable pager compatible with Openbox Multihead.|https://github.com/BurntSushi/pager-multihead|{{Pkg|pager-multihead-git}}}}
If you wish to set desktop layout without using a pager, try the {{AUR|obsetlayout}} package from [[AUR]].
=== File managers ===
{{Box||For more examples see: [[Common Applications#File managers]].|#E5E5FF|#FCFCFC}}
Two popular lightweight file managers are:
* {{App|[[PCManFM]]|An extremely fast and lightweight file manager used by the LXDE desktop.|http://pcmanfm.sourceforge.net/|{{Pkg|pcmanfm}}}}
* {{App|[[ROX#Usage|ROX]]|A small and fast file manager which can optionally manage the desktop background and panels, part of the ROX Desktop.|http://roscidus.com/desktop/|{{Pkg|rox}}}}
* {{App|[[Thunar]]|The file manager of the Xfce Desktop with many plugins and features.|http://thunar.xfce.org/|{{Pkg|thunar}}}}
For even lighter options, consider:
* {{App|Gentoo|A lightweight file manager for GTK.|http://www.obsession.se/gentoo/|{{AUR|gentoo}}}}
* {{App|emelFM2|A file manager that implements the popular two-pane design.|http://emelfm2.net/|{{Pkg|emelfm2}}}}
* {{App|Xfe|An Microsoft Explorer-like file manager for X (X File Explorer).|http://sourceforge.net/projects/xfe/|{{Pkg|xfe}}}}
* {{App|muCommander|A lightweight, cross-platform file manager with a dual-pane interface written in Java.|http://www.mucommander.com/|{{AUR|mucommander}}}}
Alternatively, you may use GNOME's Nautilus as your file manager. It is heavier and slower than the previous solutions, but Nautilus has many helpful features such as [http://en.wikipedia.org/wiki/Virtual_file_system virtual file systems], allowing folder access via SSH, FTP, or Samba.
=== Application launchers ===
{{Box||For more examples see: [[Common Applications#Application Launchers]].|#E5E5FF|#FCFCFC}}
* {{App|[[gmrun]]|A lightweight GTK based application launcher, with ability to run programs inside a terminal and other handy features. To enable {{Keypress|Alt+F2}} functionality add the following to the ''<keyboard>'' section:
<keybind key="A-F2">
    <action name="execute"><execute>gmrun</execute></action>
* {{App|[[dmenu]]|A fast and lightweight dynamic menu for X, which is also useful as an application launcher. To enable {{Keypress|Alt+F2}} functionality add the following to the ''<keyboard>'' section:
<keybind key="A-F2">
    <action name="execute"><execute>dmenu_run</execute></action>
* {{App|Bashrun2|Provides a different, barebones approach to a run dialog, using a specialized Bash session within a small xterm window. To enable {{Keypress|Alt+F2}} functionality add the following to the ''<keyboard>'' section:
<keybind key="A-F2">
    <action name="execute"><execute>bashrun2</execute></action>
To make Bashrun2 act more like a traditional run dialog add the following to the ''<applications>'' section:
<application name="bashrun2-run-dialog">
    <decor>no</decor>  # switch to yes if you prefer a bordered window
* {{App|Kupfer|A launcher inspired by [[Wikipedia:Quicksilver (software)|Quicksilver]], written in Python. To enable {{Keypress|Alt+F2}} functionality add the following to the ''<keyboard>'' section:
<keybind key="A-F2">
    <action name="execute"><execute>kupfer</execute></action>
* {{App|[[Wikipedia:launchy|Launchy]]|A less minimalistic approach; it is skinnable and offers more functionality such as a calculator, checking the weather, etc. It is launched with the {{Keypress|Ctrl+Space}} key combination.|http://www.launchy.net/|{{Pkg|launchy}}}}
* {{App|LXPanel|A lightweight X11 desktop panel and part of the LXDE DE. The run dialog can be executed with:
$ lxpanelctl run
* {{App|[[GNOME#GNOME panel|GNOME Panel]]|The default [[Gnome]] panel. The run dialog of the GNOME Panel can be executed with:
$ gnome-panel-control --run-dialog
=== Clipboard managers ===
{{Box||For more examples see: [[Common Applications#Clipboard managers]].|#E5E5FF|#FCFCFC}}
You may wish to install a [[Clipboard|clipboard manager]] for a richer copy/paste experience. The following are the more lightweight options:
* {{App|Clipman|A clipboard manager for Xfce. It keeps the clipboard contents around while it is usually lost when you close an application. It is able to handle text and images, and has a feature to execute actions on specific text selections by matching them against regular expressions.|http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin|{{Pkg|xfce4-clipman-plugin}}}}
* {{App|[[Wikipedia:Glipper|Glipper]]|A clipboard manager for GNOME with more features and plugin support.|https://launchpad.net/glipper|{{AUR|glipper}}}}
* {{App|Parcellite|A lightweight yet feature-rich clipboard manager.|http://parcellite.sourceforge.net/|{{Pkg|parcellite}}}}
* {{App|ClipIt|A fork of Parcellite with additional features and bugfixes.|http://sourceforge.net/projects/gtkclipit/|{{Pkg|clipit}}}}
Make sure you add your chosen clipboard manager to {{ic|~/.config/openbox/autostart}}.
=== Volume managers ===
* {{App|GVolWheel|An audio mixer which lets you control the volume through a tray icon.|http://sourceforge.net/projects/gvolwheel/|{{AUR|gvolwheel}}}}
* {{App|GVTray|A master volume mixer for the system tray.|http://code.google.com/p/gtk-tray-utils/|{{AUR|gvtray}}}}
* {{App|Obmixer|A GTK mixer applet for Openbox that runs in the system tray. It is lightweight and works with both pulseaudio and alsa, has mute/umute feature which remembers your previous volume.|http://jpegserv.com/obmixer/|{{AUR|obmixer}}}}
* {{App|PNMixer|A fork of Obmixer. It has many new features such as ALSA channel selection, connect/disconnect detection, shortcuts, etc.|https://github.com/nicklan/pnmixer/wiki|{{AUR|pnmixer}}}}
* {{App|Volti|A GTK application for controlling audio volume from system tray with an internal mixer and support for multimedia keys that uses only ALSA.|http://code.google.com/p/volti/|{{AUR|volti}}}}
* {{App|VolumeIcon|Another volume control for your system tray with channel selection, themes and an external mixer.|http://softwarebakery.com/maato/volumeicon.html|{{Pkg|volumeicon}}}}
* {{App|VolWheel|A little application which lets you control the sound volume easily through a tray icon you can scroll on.|http://oliwer.net/b/volwheel.html|{{Pkg|volwheel}}}}
=== Battery & CPU ===
{{Box||For more examples see: [[Common Applications#System Monitoring]].|#E5E5FF|#FCFCFC}}
* {{App|[[Trayfreq]]|A light battery monitor and a CPU frequency scaler.|http://trayfreq.sourceforge.net|{{AUR|trayfreq}}}}
=== Keyboard layout switchers ===
* {{App|fbxkb|A NETWM compliant keyboard indicator and switcher. It shows a flag of current keyboard in a systray area and allows you to switch to another one.|http://fbxkb.sourceforge.net/|{{AUR|fbxkb}}}}
* {{App|xxkb|A lightweight keyboard layout indicator and switcher.|http://sourceforge.net/projects/xxkb/|{{Pkg|xxkb}}}}
* {{App|qxkb|A keyboard switcher written in Qt.|http://code.google.com/p/qxkb/|{{AUR|qxkb}}}}
* {{App|[[Wikipedia:X Neural Switcher|X Neural Switcher]]|A text analyser, it detects the language of the input and corrects the keyboard layout if needed.|http://www.xneur.ru/|{{AUR|xneur}}, {{AUR|gxneur}} (GUI)}}
=== Logout dialog ===
[https://aur.archlinux.org/packages.php?ID=36982 exitx] and [https://aur.archlinux.org/packages.php?ID=47005 exitx-polkit] are available in AUR as logout dialogs which use sudo and PolicyKit, respectively.
{{AUR|obshutdown}} is great openbox shutdown manager.
Alternatively, you can also use openbox's menus to create a simple dialog. Which can also be binded to a key for easy access.
An example with {{ic|exit-menu}} as the id and Exit as the label(using PolicyKit/Dbus):
<pre style='overflow:auto'>
<menu id="exit-menu" label="Exit">
<item label="Log Out">
<action name="Execute">
<command>openbox --exit</command>
<item label="Shutdown">
<action name="Execute">
<command>dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop</command>
<item label="Restart">
<action name="Execute">
<command>dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart</command>
<item label="Suspend">
<action name="Execute">
<command>dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend</command>
<item label="Hibernate">
<action name="Execute">
<command>dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate</command>
Add this to your menu.xml, then later in your menu or pipemenu of choice call:
<menu id="exit-menu"/>
If you would like to bind this to a key, simply add this example keybind to the keyboard section your rc.xml:
<keybind key="XF86PowerOff">
  <action name="ShowMenu">
This will bind it to your power button, if you prefer otherwise change XF86PowerOff to your preferred key.

Latest revision as of 10:05, 2 December 2013

Redirect to: