Customizing Openbox Window Manager in Arch Linux (2024)

This article will walk through all the steps needed to create a unique and personalized desktop. I'll cover fonts, icons, mouse cursors, GTK themes, Openbox themes, Openbox menu generation, wallpaper and system monitors. In my example I will will make references to packages contained in Arch Linux. The same packages should be available for any popular Linux distribution, although the names may change slightly.

While Openbox is lightweight and efficient, it doesn't have all the features a full desktop environment would. For something with a few more features out of the box as well as some eye candy, check out Gnome 3. I wrote a similar article about Customizing Gnome 3 Desktop Environment in Arch Linux. If you are new to Arch Linux and looking for some more basic information on installing and configuring Arch Linux before you get to the desktop customization part, read my article Installing, Configuring, and Customizing Arch Linux.

Packages Needed

  • openbox - Window Manager
  • obconf - Openbox configuration tool
  • feh - Image viewer/wallpaper setter
  • conky - System resource monitor
  • gtk-engines - GTK engines for themes
  • gtk-engine-murrine - GTK engine required for our theme below
  • gnome-themes-standard - Standard Gnome themes that comes with the base themes needed for others
  • gnome-settings-daemon - if you want to use GTK3 themes this might be needed
  • menumaker (optional) - Menu generator that can create Openbox menus
  • gtk-chtheme (optional) - Easy GTK2 theme switching
  • fbpanel or tint2 (optional) - Taskbar / Panels

Resource Downloads

You will need to create or download the actual resources for your theme. This means you'll need to find GTK themes, icons, cursors, and wallpapers that fit your design. I will include links to the resources I chose for my desktop. I went with a dark theme with a light blue/aqua accent. The Delorean theme actually comes with 4 colored versions.

Fonts

In Arch Linux, installing a nice font is as easy as running pacman -S ttf-dejavu. To install fonts manually, copy the font folder to /usr/share/fonts and then edit ~/.gtkrc-2.0 and add the line gtk-font-name="Font Name"

Setting Wallpaper

Create or edit ~/.config/openbox/autostart and add the line feh --bg-scale /path/to/wallpaper.jpg

Setting Icons

  1. Move the icon theme folder to /usr/share/icons
  2. Edit ~/.gtkrc-2.0 and add the line gtk-icon-theme-name="Icon Theme Folder Name"

Setting Mouse Cursors

  1. Move the cursors theme folder to /usr/share/icons
  2. Edit ~/.Xdefaults and add the line Xcursor.theme: Theme_Name

Set Openbox Theme

  1. Move the theme folder to /usr/share/themes
  2. Run obconf and choose the them you want. If you put it in the themes folder, it should be listed.

Set GTK2 Theme

  1. Move the theme folder to /usr/share/themes
  2. Edit ~/.gtkrc-2.0 and add the line gtk-theme-name="Theme Name"
  3. Alternatively, you could try the program gtk-chtheme

Set GTK3 Theme

I'll be honest the GT3 theme worked 90% but I did run in to some minor issues with GT3 programs. It might have been my theme or my configuration but I will pass on what I learned.

  1. You might need the gnome-settings-daemon to be running in order for the theme to work properly. You can add it to your openbox autostart file ~/.config/openbox/autostart if necessary.
  2. Copy or create a symlink in your home folder's config to the GTK3 theme like this ln -s /usr/share/themes/THEME/gtk-3.0 /home/MYUSER/.config/gtk-3.0
  3. The gnome-tweak-tool might be helpful.

Generating Openbox Menus

You can use a number of programs to generate an Openbox menu. Menu Maker can search your computer for programs and generate an Openbox menu with mmaker openbox. It doesn't always find everything so it is not an end all be all but it is a good starting place.

Panels

I am not going to cover panel customization but two good panel choices are fbpanel and tint2. Make sure you add the panel to your Openbox autostart file like the other examples above.

Setting up Conky (System Monitor)

Conky is an extremely powerful tool that can do many things. Typically it is used to monitor system resources like RAM, CPU, and disk space. It can be extended and customized so much that there are plenty of resources online dedicated to this. Conky can be compiled with LUA support to do even cooler things. Just try searching for "conky configs" and enjoy. Create a ~/.conkyrc file and then edit ~/.config/openbox/autostart to have the line conky &.

For references and a starting template, here is my basic .conkyrc

background yes
use_xft yes
xftfont Sans:size=8
xftalpha 1
update_interval 1.5
total_run_times 0
own_window yes
own_window_transparent yes
own_window_type normal #desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 300 200
maximum_width 600
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders yes
default_color white
default_shade_color black
default_outline_color white
alignment top_right
gap_x 15
gap_y 5
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes

color1 white
default_shade_color 7a999c
default_outline_color green

TEXT
${color}${font Radio Space:bold:size=10:}SYSTEM${hr 2}
${font OpenLogos:size=10}${color}- ${color1}${font}Kernel${alignr}${kernel}
${font StyleBats:size=10}${color}- ${color1}${font}Uptime${alignr}${uptime}

${font Radio Space:bold:size=10}${color}PROCESSORS ${hr 2}${font sans-serif:normal:size=8}${color1}
${font poky:size=10}${color}- ${color1}${font}AVG: ${cpu cpu0}% ${color}${cpubar cpu0}
${font poky:size=10}${color}- ${color1}${font}${color1}CPU1: ${cpu cpu1}% ${color}${cpubar cpu1}
${font poky:size=10}${color}- ${color1}${font}${color1}CPU2: ${cpu cpu2}% ${color}${cpubar cpu2}

${font Radio Space:bold:size=10}${color}MEMORY ${hr 2}
${font stylebats:size=10}${color}- ${color1}${font}${color1}${font sans-serif:normal:size=8}${color1}RAM $alignc $mem / $memmax
$alignr $memperc%
${color}$membar

${font Radio Space:bold:size=10}${color}DISK SPACE ${hr 2}
${font poky}- ${font sans-serif:normal:size=8}${color1}/ $alignc ${fs_used /} / ${fs_size /} $alignr${fs_used_perc /}%
${color}${fs_bar /}
${font poky}- ${if_existing /data}${font sans-serif:normal:size=8}${color1}Data $alignc ${fs_used /data} / ${fs_size /data} $alignr${fs_used_perc /data}% ${endif}
${if_existing /data}${color}${fs_bar /data}${endif}

${font Radio Space:bold:size=10}${color}TOP PROCESSES (MEMORY) ${hr 2}
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 1}${alignr}${top mem 1} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 2}${alignr}${top mem 2} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 3}${alignr}${top mem 3} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 4}${alignr}${top mem 4} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 5}${alignr}${top mem 5} %

${font Radio Space:bold:size=10}${color}TOP PROCESSES (CPU) ${hr 2}
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 1}${alignr}${top cpu 1} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 2}${alignr}${top cpu 2} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 3}${alignr}${top cpu 3} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 4}${alignr}${top cpu 4} %
${font StyleBats:size=10}${color}- ${color1}${font}${color1}${top_mem name 5}${alignr}${top cpu 5} %

${font Radio Space:bold:size=10}${color}NETWORK (enp4s0)${hr 2}
${font PizzaDude Bullets:size=10}${color}- ${font}${color1}IP address: $alignr ${addr enp4s0}
${font PizzaDude Bullets:size=10}${color}- ${font}${color1}DOWN: $alignr ${downspeed enp4s0}/${totaldown enp4s0}
${font PizzaDude Bullets:size=10}${color}- ${font}${color1}UP: $alignr ${upspeed enp4s0}/${totalup enp4s0}

Even More Customization

If you want to take your customization even further, look into Dockapps and panel customization. Conky is one of the most configurable aspects so play with that as well. It can do more than just system monitoring it can output your media player info and more. Look in to a clipboard manager program to manage a clipboard between programs. Add a Window snapping feature to Openbox for convenience. Openbox allows you to configure your own keybindings too so create your own for common tasks. There are many options!

Conclusion

Hopefully all the information above will provide enough reference for you to create your own customized desktop. The only issues I ran in to with the Openbox customization was the GTK3 theme problem. Some GTK3 programs did not render 100% correctly though it was at least 90% close. When I installed the full Gnome3 desktop, the GTK3 theme worked fine, so I think I am missing a step, perhaps related to the gnome-settings-daemon that is needed for GTK3 themes. If anyone knows, please let me know!

Customizing Openbox Window Manager in Arch Linux (2024)

FAQs

How do I customize my openbox menu? ›

xml. To edit that menu click File/Open, and then navigate to the path shown here, or simply invoke it as obmenu /var/lib/openbox/debian-menu. xml. You can add/change/move/delete menu items here as well, and then save the modified xml file and restart openbox to pick up the changes.

Where is openbox config? ›

~/. config/openbox/rc. xml is the main configuration file, responsible for determining the behaviour and settings of the overall session, including: Keyboard shortcuts (e.g. starting applications; controlling the volume)

What is the default menu in openbox? ›

The default menu file, " menu. xml ", located either at " ~/. config/openbox " (user-specific directory) or at " /etc/xdg/openbox " (system-wide directory) is static by default.

What is the menu editor for Openbox? ›

Obmenu is a menu editor designed for openbox. It's easy to use, allowing to get the most out of the powerful Openbox menu system, while hiding the xml layout from the user. It also (optionally) installs a bunch of dynamic menus (pipe menus), such as Gnome menus or a quick-navigator.

Is Openbox considered refurbished? ›

The major difference between a refurbished laptop and an open box laptop is that a refurbished laptop has been audited, reconditioned, and tested before being resold, while an “open box” laptop has just been taken out of the box, previously owned, but not used.

Does openbox support tiling? ›

Yes, you can write the dunst configuration, you can use xrandr , configure your keys, write the unit file to accommodate gnome-keyring-daemon , along with the shell protocol.

How do I set up autostart in openbox? ›

To run commands for your user account only, create and edit a file called ~/. config/openbox/autostart . Place any commands you want to run on startup in the file, each ending with a & character. To run commands for all users system-wide, place them in a similar file in /etc/xdg/openbox/autostart .

How to install openoffice in Arch Linux? ›

Enable snaps on Arch Linux and install openoffice
  1. Enable snaps on Arch Linux and install openoffice. ...
  2. On Arch Linux, snap can be installed from the Arch User Repository (AUR). ...
  3. If AppArmor is enabled in your system, enable the service which loads AppArmor profiles for snaps:

What is Openbox on Linux? ›

Openbox is the standard window manager in LXDE, and often set as the default for LXQt. It is used in Linux distributions such as BunsenLabs, ArchBang, Lubuntu, Trisquel and Manjaro. The creator and primary author of Openbox is Dana Jansens of Carleton University in Ottawa, Ontario, Canada.

Where are Openbox themes stored? ›

Theme installation

System-wide themes are installed in /usr/share/themes . User-specific themes can be installed in ~/. local/share/themes or in ~/.

How do I open config settings? ›

To open a config file in Windows 10, you can:
  1. Type msconfig in the search box.
  2. Select System Configuration from the results.
  3. In the context menu, select Open with.
  4. Choose a text editor or configuration file editor.
  5. View and modify the contents of the config file.
Jun 6, 2022

What is the shortcut to open terminal in Openbox? ›

Ctrl + Alt + T: Launch Terminal.

Where is the RC xml file in Openbox? ›

Syntax. A complete list of possible properties to set is in the default rc. xml file, which you can find in /etc/xdg/openbox/rc. xml .

What is an Openbox session? ›

Description. openbox-session runs an openbox session without any session manager. Without a session manager, you will not be able to save your state from one log in to the next. openbox-session does not take any command line arguments.

How do I change the Start menu appearance? ›

To make other changes to how the Start menu looks, select Start , then select Settings > Personalization > Start. You can then change which apps and folders appear on the Start menu or assign more or less space to the Pinned and Recommended sections. Apps, settings, files—they can all be found on the Start menu.

How do I change my cursor theme in Openbox? ›

To install a cursor theme in Openbox: Download the theme package, extract it into ~/. icon/ folder on your home directory. Open lxappearance > Mouse cursor tab > find the set of Breeze cursor you desire > apply.

What is Edit menu options? ›

It is often the second menu in the menu bar, next to the file menu. Whereas the file menu commonly contains commands about handling of files, such as open, save, and print, the edit menu commonly contains commands relating to the handling of information within a file, e.g. cut and paste and selection commands.

Top Articles
Latest Posts
Article information

Author: Ouida Strosin DO

Last Updated:

Views: 5545

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Ouida Strosin DO

Birthday: 1995-04-27

Address: Suite 927 930 Kilback Radial, Candidaville, TN 87795

Phone: +8561498978366

Job: Legacy Manufacturing Specialist

Hobby: Singing, Mountain biking, Water sports, Water sports, Taxidermy, Polo, Pet

Introduction: My name is Ouida Strosin DO, I am a precious, combative, spotless, modern, spotless, beautiful, precious person who loves writing and wants to share my knowledge and understanding with you.