$env.XDG_BIN_HOME = $'($env.HOME)/.local/bin' $env.XDG_CACHE_HOME = $'($env.HOME)/.cache' $env.XDG_CONFIG_HOME = $'($env.HOME)/.config' $env.XDG_DATA_HOME = $'($env.HOME)/.local/share' $env.XDG_INCLUDE_HOME = $'($env.HOME)/.local/include' $env.XDG_STATE_HOME = $'($env.HOME)/.local/state' $env.XDG_DESKTOP_DIR = $'($env.HOME)/desktop' $env.XDG_DOCUMENTS_DIR = $'($env.HOME)/documents' $env.XDG_DOWNLOAD_DIR = $'($env.HOME)/downloads' $env.XDG_MUSIC_DIR = $'($env.HOME)/music' $env.XDG_PICTURES_DIR = $'($env.HOME)/pictures' $env.XDG_PODCAST_DIR = $'($env.HOME)/podcasts' $env.XDG_PUBLICSHARE_DIR = $'($env.HOME)/public' $env.XDG_TEMPLATES_DIR = $'($env.HOME)/templates' $env.XDG_VIDEOS_DIR = $'($env.HOME)/videos' let xdg = $env | transpose name value | each {|e| if $e.name =~ 'XDG_' {{ name: ($e.name | str replace 'XDG_' '' | str downcase), value: $e.value }} else { null }} | reduce --fold {} {|e, memo| { ...$memo, $e.name: ($e.value | if $in =~ ':' { split row ':' } else { $e.value }) }}