16

What's the default value for $XDG_DATA_HOME variable? I get an empty line with:

echo $XDG_DATA_HOME

According to the Free Desktop XDG Base Directory Environment variables specification, it might be equal to $HOME/.local/share?

g0lem
  • 487
  • 3
  • 7
  • 13

2 Answers2

13

As report in XDG Base Directory Specification environment variables aren't set by default bug, Ubuntu doesn't set XDG variables.

According to FreeDesktop Base Directory Specification:

$XDG_DATA_HOME defines the base directory relative to which user specific data files should be stored. If $XDG_DATA_HOME is either not set or empty, a default equal to $HOME/.local/share should be used.

Applications that implement this specification must implement this behaviour, so if $XDG_DATA_HOME is not defined they must use $HOME/.local/share as default.

There are some implementation of this specification, like: Glib, libghc-xdg-basedir-prof and pyxdg

If you want to override this value, you should define XDG variable in /etc/profile or better in /etc/profile.d as described in Where should the XDG_CONFIG_HOME variable be defined?

Lety
  • 6,089
  • 2
  • 32
  • 38
7

If it's unset, you can set it thus in your ~/.profile:

export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"}

This keeps any value already set, else sets it to the default value specified in the XDG Base Directory Specification

Tom Hale
  • 3,728