------------------------------------------------------------------------------- openbox configuration files. You can use the XDG_CONFIG_HOME environment variable to change where Openbox looks for its config files. NOTE this is the new standard configuration area for many UNIX applications removing the configuration from the top level HOME directory. If not defined or empty it defaults to $HOME/.config This is how it's defined: $XDG_CONFIG_HOME defines the base directory relative to which user specific configuration files should be stored. This could allow/cause you to use a different config for other applications running in that session as well, if they look at this variable. See http://standards.freedesktop.org/basedir-spec/basedir-spec-0.6.html ------------------------------------------------------------------------------- Preventing tilde expansion. In older versions of OpenBox, any ~, ANYWHERE in a command is expanded into the users home directory. This make its using it in arguments difficult. EG: firefox -new-window http://someremotehost/~me/somewebapp/ The solution is not to have a '~' (or use a later version of openbox) that is make it a bash script and use `printf '\176'` for the ~ bash -c "firefox -new-window 'http://someremotehost/'`printf '\176'`'me/somewebapp/'" It works but is messy. It should only be applied at the start of a argument, and has been fixed in later versions of OpenBox. ------------------------------------------------------------------------------- Remote Openbox Reconfigure (after rc or menu updates) Also stored at ~/store/X/c.src/openbox_reconfigure.c =======8<-------- /* ** Force Openbox to reconfigure. ** ** Extracted from obconf and posted on the openbox mailing list ** On 13 May 2010 11:21, Eric Bohlman ** Subject: [openbox] Forcing Openbox to reconfigure ** ** cc openbox_reconfigure.c -lX11 -o openbox_reconfigure */ #include #include main () { XEvent ce; Display *display=XOpenDisplay(NULL); int screen=DefaultScreen(display); Window root=RootWindow(display,screen); ce.xclient.type = ClientMessage; ce.xclient.message_type = XInternAtom(display,"_OB_CONTROL",0); ce.xclient.display = display; ce.xclient.window = root; ce.xclient.format = 32; ce.xclient.data.l[0] = 1; /* reconfigure */ ce.xclient.data.l[1] = 0; ce.xclient.data.l[2] = 0; ce.xclient.data.l[3] = 0; ce.xclient.data.l[4] = 0; XSendEvent(display,root,0, SubstructureNotifyMask | SubstructureRedirectMask, &ce); XFlush(display); } =======8<-------- -------------------------------------------------------------------------------