userdir is a small library which allows you to get user directories according to the operating system conventions.
Simple example:
d := userdir.GetDataHome()
fmt.Println(d)
// Outputs something like this
// /home/vincent/.local/share - on Linux
// C:/Users/vincent/AppData/Roaming - on Windows
// /Users/vincent/Library - on Mac OS X
On Windows userdir will use the operating systems function SHGetKnownFolderPath.
On Linux userdir will use the XDG Base Directory Specification.
Still needs support for other Unixes (might be as simple as using XDG there too) and Mac OS X.
userdir is under the MIT license.