xdg icon indicating copy to clipboard operation
xdg copied to clipboard

Fix #29: Parse ~/.config/user-dirs.dirs file

Open ax1036 opened this issue 1 year ago • 2 comments

Read ~/.config/user-dirs.dirs if exist, inject in env var if not already present

Test TestDefaultUserDirs will fail if localized file found.

Workaround without this merge:

func LoadlinuxXDG() {
	var (
		homeDir string
		err     error
	)

	if homeDir, err = os.UserHomeDir(); err != nil {
		fmt.Fprintln(os.Stderr, err)
		return
	}

	userDirFile := path.Join(homeDir, ".config/user-dirs.dirs")

	if _, err = os.Stat(userDirFile); err != nil {
		return
	}

	cfg, err := ini.Load(userDirFile)
	if err != nil {
		return
	}

	// Load xdg env
	for _, key := range cfg.Section("").Keys() {
		value := strings.Replace(key.Value(), "$HOME", homeDir, 1)
		os.Setenv(key.Name(), value)
	}

	xdg.Reload()
}

ax1036 avatar Oct 19 '22 17:10 ax1036