-------------------------------------------------------------------------------
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<--------
-------------------------------------------------------------------------------