Openbox config that gives you traditional desktop experience

adnan360 8706288039 Add workaround for dotdrop in BSD systems %!s(int64=2) %!d(string=hai) anos
assets 1014b187b0 Added Afterpiece Flat light and dark themes %!s(int64=4) %!d(string=hai) anos
docs 90274e4e3f Add documentation for installer script %!s(int64=2) %!d(string=hai) anos
misc 36e23d574e Renamed other directory to misc %!s(int64=4) %!d(string=hai) anos
scripts 8706288039 Add workaround for dotdrop in BSD systems %!s(int64=2) %!d(string=hai) anos
src 8f028e9309 Merge branch 'installer' %!s(int64=2) %!d(string=hai) anos
.gitignore 8706288039 Add workaround for dotdrop in BSD systems %!s(int64=2) %!d(string=hai) anos
LICENSE 764259f842 Initial commit %!s(int64=5) %!d(string=hai) anos
README.md 90274e4e3f Add documentation for installer script %!s(int64=2) %!d(string=hai) anos
config.yaml aa95ee2423 Added partial changes for jgmenu %!s(int64=4) %!d(string=hai) anos
custom.default.yaml db16380ecc Merge branch 'rofi-modescript' %!s(int64=3) %!d(string=hai) anos
install.sh 76bcc8ae11 Initial installer script %!s(int64=3) %!d(string=hai) anos

README.md

openbox-config

A config that mimics traditional desktop environment in Openbox. Available in Dark and Light variants.

Openbox config screenshot light theme

Openbox config screenshot dark theme

Installation

You can either choose automatic or manual installation procedure.

Automatic installation

WARNING: The automatic install script is under active development. It can break your system at any moment. Please do not use on production systems and remember to keep backup before running.

Make sure you have bash and either sudo or doas installed.

And then run:

./install.sh

It will automatically install all the dependencies and programs mentioned in the custom.default.yaml and custom.yaml files, installs the config, sets icon theme etc. without you having to do almost anything.

For details on what this script does and which distros or systems tested, see install. Please post an issue if you find anything not working.

Manual installation

Install Prerequisites

Arch Linux:

sudo pacman -S openbox tint2 jgmenu perl-gtk3 obmenu-generator xdotool wmctrl network-manager-applet gsimplecal rofi papirus-icon-theme volumeicon cbatticon slim xfce4-notifyd
sudo systemctl enable slim
pakku -S ksuperkey  # install through AUR

Void Linux:

sudo xbps-install openbox tint2 jgmenu perl-Gtk3 obmenu-generator xdotool wmctrl network-manager-applet gsimplecal-gtk3 rofi papirus-icon-theme volumeicon cbatticon slim xfce4-notifyd ksuperkey
sudo ln -s /etc/sv/slim /var/service/

FreeBSD:

sudo pkg install openbox tint2 jgmenu xdotool wmctrl networkmgr gsimplecal rofi papirus-icon-theme volumeicon slim notification-daemon
# obmenu-generator, cbatticon, ksuperkey may have to be built from source. See docs/setup.md for details. They're optional though and you can skip them if you like.
sudo sysrc slim_enable=yes
sudo sysrc dbus_enable="YES"

Slim login theme:

# Apply slim theme
sudo cp -r misc/greeny_dark/ /usr/share/slim/themes/
sudo sed -i "s/\(^current_theme.*\)/#\1\ncurrent_theme  greeny_dark/" /etc/slim.conf
# On FreeBSD
sudo cp -r misc/greeny_dark/ /usr/local/share/slim/themes/greeny_dark/
sudo sed -i'.bak' "s/\(^current_theme.*\)/#\1\ncurrent_theme  greeny_dark/" /usr/local/etc/slim.conf

* Some packages are optional and depends upon your preference.
* perl-gtk3 is for generating menu with icons. When gtk2-perl is only available, install it and then comment the use_gtk3 line on ~/.config/obmenu-generator/config.pl. (See Troubleshooting section below for details)

Optionally, install these packages to configure:

#Arch Linux:
sudo pacman -S lxappearance obconf
# Void Linux:
sudo xbps-install lxappearance obconf
# FreeBSD:
sudo pkg install lxappearance obconf

Actual installation

Make sure Python3 and Python Pip (python-pip on Arch Linux, python3-pip on Void Linux, py38-pip on FreeBSD) is installed. Then:

pip install dotdrop
cd /path/to/this/repo
# For light theme
dotdrop install -p default -f
# For dark theme
dotdrop install -p dark -f
# -f overrides already existing config files on system
openbox --reconfigure

Afterwards:

  • Launch lxappearance, go to Icon Theme tab and and change icon to Papirus to show proper icons on system tray.
  • To choose a GTK theme you can choose Adwaita, Adwaita-dark or anything else from lxappearance to match your Openbox theme.

Then reboot to an Openbox session. If you have multiple DEs installed, you can press F1 on slim login screen to choose Openbox. If Openbox session does not start even after selecting it, please refer to Troubleshooting section below.

Customization

Some customization changes require editing a yaml file for convenience. The custom.yaml file overrides the default values.

cp custom.default.yaml custom.yaml
# or...
cp custom.default.yaml ~/.local/share/openbox-config/custom.yaml
# or you can copy just the variables you want to change
# change the variables (see below) ... then:
dotdrop install -p default -f # or -p dark
1. Adding/removing apps on Tint2 panel

Edit quick_launch_items on custom.yaml.

2. Changing apps on Openbox menu

Edit custom.yaml.

3. Changing clock format

Edit clock_1_format and clock_2_format on custom.yaml.

4. Remove icon from Show Desktop button

Set show_desktop_icon_visible to false on custom.yaml. e.g.

show_desktop_icon_visible: false
5. Add items to startup

Edit autostart_items_add on custom.yaml.

Troubleshooting

obmenu-generator -i saying invalid output and there is no libgtk2-perl package available

I have faced this on Debian Testing. Here's what you can do for Debian:

  • Install from the repos here. If not possible, install manually: git clone --depth=1 https://github.com/trizen/obmenu-generator.git cd obmenu-generator sudo cp obmenu-generator /usr/bin/obmenu-generator sudo cp schema.pl /etc/xdg/obmenu-generator/schema.pl sudo apt install libgtk3-perl perl-linux-desktopfiles libdata-dump-perl
  • There is a "use_gtk3" => 1, line in ~/.config/obmenu-generator/config.pl. Make sure it is there and uncommented. Now it should work as expected.

  • Openbox session doesn't start from slim login If for some reason, Openbox session does not start even after selecting it from slim, rather some other session get started, you may need to inspect the ~/.xsession file and possibly would have to comment the line that runs ~/.xinitrc. Faced this on Void Linux.

custom.yaml is not taken into consideration in FreeBSD

Edit config.yaml and under import_variables comment every entry by adding a # before the line, except which config you want to use. However, you'll have to add all the variable values which you previously may have skipped. You can use meld or any diff program to do that easily.

If you are version controlling and you want to ignore this file (only locally), run:

git update-index --skip-worktree config.yaml
# to reverse
git update-index --no-skip-worktree config.yaml
# to see ignored files
git ls-files -v | grep "^S"

NOTE: This is just a workaround until the issue is fixed.

No Adwaita or Adwaita Dark theme installed

Try installing gnome-themes-extra or equivalent package from system repo. If it still doesn't work:

mkdir -p ~/.themes
curl -L https://gitlab.gnome.org/GNOME/gnome-themes-extra/-/archive/master/gnome-themes-extra-master.tar.gz -o /tmp/gnome-themes.tar.gz || wget https://gitlab.gnome.org/GNOME/gnome-themes-extra/-/archive/master/gnome-themes-extra-master.tar.gz -O /tmp/gnome-themes.tar.gz
tar -xvf /tmp/gnome-themes.tar.gz -C /tmp/
cp -r /tmp/gnome-themes-extra-master/themes/{Adwaita,Adwaita-dark} ~/.themes/