---
name: "File::UserDirs"
section: "3pm"
platform: "linux"
package: "perl-file-basedir"
version: "0.09-7"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/File::UserDirs"
---

# File::UserDirs(3pm)

Find extra media and documents directories

## NAME

File::UserDirs - Find extra media and documents directories

## VERSION

version 0.09

## SYNOPSIS

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

## DESCRIPTION

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/\>.

## AUTHORS

- •

  Jaap Karssenberg \|\| Pardus \[Larus\] \<pardus@cpan.org\>

- •

  Graham Ollis \<plicease@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2003-2021 by Jaap Karssenberg \|\| Pardus \[Larus\] \<pardus@cpan.org\>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
