File::UserDirs(3pm)

File::UserDirs3pm

Find extra media and documents directories

Usage

 use File::UserDirs qw(:all);
 print xdg_desktop_dir; # e.g. /home/user/Desktop

Version

version 0.09

Overview

This module can be used to find directories as informally specified by the Freedesktop.org xdg-user-dirs software. This gives a mechanism to locate extra directories for media and documents files.

Functions

May be exported on request. Also the group ":all" is defined which exports all methods.

xdg_desktop_dir

 my $dir = xdg_desktop_dir;

Returns the desktop directory. Unless changed by the user, this is the directory Desktop in the home directory.

xdg_documents_dir

 my $dir = xdg_documents_dir;

Returns the documents directory. Unless changed by the user, this is the home directory.

xdg_download_dir

 my $dir = xdg_download_dir;

Returns the download directory. Unless changed by the user, this is the home directory.

xdg_music_dir

 my $dir = xdg_music_dir;

Returns the music directory. Unless changed by the user, this is the home directory.

xdg_pictures_dir

 my $dir = xdg_pictures_dir;

Returns the pictures directory. Unless changed by the user, this is the home directory.

xdg_publicshare_dir

 my $dir = xdg_publicshare_dir;

Returns the public share directory. Unless changed by the user, this is the home directory.

xdg_templates_dir

 my $dir = xdg_templates_dir;

Returns the templates directory. Unless changed by the user, this is the home directory.

xdg_videos_dir

 my $dir = xdg_videos_dir;

Returns the videos directory. Unless changed by the user, this is the home directory.

Diagnostics

""xdg-user-dir" failed to start: %s"

The executable "xdg-user-dir" could not be run, most likely because it was not installed. See "DEPENDENCIES".

Configuration and environment

The location of the directories can be specified by the user in the file $XDG_CONFIG_HOME/user-dirs.dirs. It is a shell file setting a number of environment variables. To find the exact pathname from Perl, run:

 use File::BaseDir qw(config_home);
 print config_home('user-dirs.dirs');

Example customised user-dirs.dirs

 XDG_DESKTOP_DIR="$HOME/Workspace"
 XDG_DOCUMENTS_DIR="$HOME/Files"
 XDG_DOWNLOAD_DIR="$HOME/Files/Downloads"
 XDG_MUSIC_DIR="$HOME/Files/Audio"
 XDG_PICTURES_DIR="$HOME/Files/Images"
 XDG_PUBLICSHARE_DIR="$HOME/public_html"
 XDG_TEMPLATES_DIR="$HOME/Files/Document templates"
 XDG_VIDEOS_DIR="$HOME/Files/Video"

Dependencies

This module requires the executable xdg-user-dir from the package "xdg-user-dirs". Source code is available from <http://cgit.freedesktop.org/xdg/xdg-user-dirs/>.

Releases

6 releases since Debian 9 (Stretch); the text changed 3 times.

  1. 9
  2. 10–11
  3. 12–13
  4. Arch

Authors

•

Jaap Karssenberg || Pardus [Larus] <[email protected]>

•

Graham Ollis <[email protected]>

From perl-file-basedir 0.09-7 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.