[arch-general] XDG variables no longer set
danielmicay at gmail.com
Tue Feb 26 07:24:14 EST 2013
On Tue, Feb 26, 2013 at 6:57 AM, Robbie Smith <zoqaeski at gmail.com> wrote:
> On 26/02/13 22:44, Daniel Micay wrote:
>> On Tue, Feb 26, 2013 at 6:42 AM, Robbie Smith <zoqaeski at gmail.com> wrote:
>>> For some reason, after my last reboot (a kernel update), none of the XDG
>>> variables (such as $XDG_CONFIG_HOME) are being set, which broke a lot
>>> my configuration, as I rely on those in scripts.
>>> I was able to fix it by writing a script to drop in /etc/profile.d/
>>> would create those directories and export the variables as required, but
>>> what I want to know is why they broke in the first place.
>>> Has anyone else experienced this?
>>>  Like this (taken from /etc/xdg/xfce4/xinitrc) :
>>> # $XDG_CONFIG_HOME defines the base directory relative to which
>>> # user specific configuration files should be stored. If
>>> # $XDG_CONFIG_HOME is either not set or empty, a default equal to
>>> # $HOME/.config should be used.
>>> if test "x$XDG_CONFIG_HOME" = "x" ; then
>>> export XDG_CONFIG_HOME
>>> [ -d "$XDG_CONFIG_HOME" ] || mkdir "$XDG_CONFIG_HOME"
>> You can only expect these to be set if the default has been changed.
>> If they're unset, it means anything querying them should fall back to
>> ~/.config (and the other fallbacks).
> They didn’t exist at all. I had to manually export them or they didn’t exist
> at login, which is why I wrote that script.
Yes, that's correct. They aren't supposed to be set by default (it was
a bug that they were). Your scripts/applications that use those
variables should be checking for their existence and falling back to a
default unless you're sure that you're setting them manually yourself.
More information about the arch-general