This package implements the XDG Base Directory Specification, with adjustments for macOS and Windows.
Supported operating systems: all Unix flavors, macOS, and Windows.
It was created with these design goals/principles:
- Code and usage simplicity
- Seamless handling of
XDG_*environment variable changes during runtime - Minimal dependencies on other third-party Go packages
go get github.com/tzrikka/xdgFunctions: https://pkg.go.dev/github.com/tzrikka/xdg#pkg-functions
Examples: https://pkg.go.dev/github.com/tzrikka/xdg#pkg-examples
Constants: https://pkg.go.dev/github.com/tzrikka/xdg#pkg-constants
| Env Var | Unix | macOS |
|---|---|---|
XDG_CACHE_HOME |
$HOME/.cache |
$HOME/Library/Caches |
XDG_CONFIG_HOME |
$HOME/.config |
$HOME/.config |
XDG_CONFIG_DIRS |
/etc/xdg |
$HOME/Library/Application Support |
/Library/Application Support |
||
/etc/xdg |
||
XDG_DATA_HOME |
$HOME/.local/share |
$HOME/Library/Application Support |
XDG_DATA_DIRS |
/usr/local/share |
/Library/Application Support |
/usr/share |
$HOME/.local/share |
|
/usr/local/share |
||
/usr/share |
||
XDG_STATE_HOME |
$HOME/.local/state |
$HOME/Library/Application Support |
| XDG Env Var | Known Folder | Windows Env Var |
|---|---|---|
XDG_CACHE_HOME |
FOLDERID_LocalAppData |
%LOCALAPPDATA% |
XDG_CONFIG_HOME |
FOLDERID_RoamingAppData |
%APPDATA% |
XDG_CONFIG_DIRS |
FOLDERID_ProgramData |
%ALLUSERSPROFILE% |
or %ProgramData% |
||
XDG_DATA_HOME |
FOLDERID_LocalAppData |
%LOCALAPPDATA% |
XDG_DATA_DIRS |
FOLDERID_ProgramData |
%ALLUSERSPROFILE% |
or %ProgramData% |
||
XDG_STATE_HOME |
FOLDERID_LocalAppData |
%LOCALAPPDATA% |