obtheme

2013-06-03 00:00 UTC
  • Xyne

Metadata

Description:

A GUI theme editor for Openbox.

Latest Version:

2013.2.20.2

Architecture:

  • any

Dependencies:

  • python2
  • pygtk
  • gtk2
  • python2-fuse

Arch Repositories:

  • [xyne-any]
  • [xyne-i686]
  • [xyne-x86_64]

AUR ID:

60947

Arch Forum ID:

72692

Tags:

About

ObTheme is a GUI theme editor for openbox. Among its features are a live preview mode, a built-in xbm image button editor and a palette for changing colors globally. ObTheme has no connection to an older application of the same name.

ObTheme follows the Openbox theme specification at http://openbox.org/wiki/Help:Themes.

FAQ

Are you going to add an image preview like the one in ObConf?

Ideally, yes. I just don't know how to (yet). I'll try to figure out how ObConf does it and see if there's a way to do it in pygtk. If that doesn't work, maybe I'll just ask the ObConf devs to create a stand-alone previewer that I could embed. I promise nothing though.

What's up with the code? Why isn't it more pythonic?

I was almost completely new to Python when I wrote it. I also hacked most of it together over 3 days and never went back to clean it up. I'll get to it eventually.

I'm not using Arch Linux... how do I install it?

Just download the source tarball, unpack it and run obtheme. Make sure that you have python-fuse and pygtk (the latest version). If you really want to install it, package it for your distro's package manager so that obtheme is placed in your path. I'll get around to adding an install script eventually but it's not a priority right now as I don't even know if anyone is using this on something other than Arch Linux.

Screenshots

screenshot screenshot 

README

Notes

The code is a hack-job from 2009 when I was a Python noob (I'm still a noob, but less so now). The following are some ideas for how the code could be improved. I may never get around to this as I have little time and no real motivation.

First things first, it should be rewritten in Python 3.

The themeElements data structure should be moved to an external, user-configurable JSON file so that it can be updated independently. It's practically in JSON format already and it would be trivial to export it.

FUSE is likely overkill. I don't even remember right how much it handles, but it would be worth investigating FIFOs as replacements.

All of the has_key and other noobish tests should be replaced with proper try/except blocks. There's probably a load of other conventions that need to be changed.

Contributors

See the CHANGELOG

CHANGELOG

2013-02-20

  • added more changes submitted by Stophe ("Quit" item in file menu, default window size, replacement of "has_key" with "in" tests).
  • modified FUSE directory handling to detect symlinked paths and existing mounts
  • modified filter categories

2013-02-14

  • added changes submitted by Stophe (combo box category filter, default value bug fix)

This is the first change in years... looking at my old code makes me cringe a little.

Contact
echo xyne.archlinux.ca | sed 's/\./@/'
Feeds
Blog News
Validation
XHTML 1.0 Strict CSS level 3 Atom 1.0