---
name: "UI::Dialog::Backend::Nautilus"
section: "3pm"
platform: "linux"
package: "libui-dialog-perl"
version: "1.21-0.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/UI::Dialog::Backend::Nautilus"
---

# UI::Dialog::Backend::Nautilus(3pm)

wrapper around the data provided by the nautilus(1).

## NAME

UI::Dialog::Backend::Nautilus - wrapper around the data provided by the [nautilus(1)](/nautilus/1.md).

## SYNOPSIS

```
 use UI::Dialog::Backend::Nautilus;
 my $nautilus = new UI::Dialog::Backend::Nautilus ();
 my @paths = $nautilus->paths();
```

## ABSTRACT

UI::Dialog::Backend::Nautilus is simply an OOPerl wrapper around the data provided by the [*nautilus*(1)](/nautilus/1.md) file manager's scripts feature.

## DESCRIPTION

[*nautilus*(1)](/nautilus/1.md) is a GNOME file manager that has a "right-click" menu for user made scripts (found in the user's ~/.gnome2/nautilus-scripts/ directory). This is an OOPerl interface to the environment variables provided to the scripts during runtime by nautilus. When you use any of the UI::Dialog meta classes (UI::Dialog, UI::Dialog::GNOME, etc.) access to this backend is provided via the `$d`-\>nautilus method. ie: replace `$nautilus` with `$d`-\>nautilus in the synopsis example (provided you made `$d` with something like my `$d` = new UI::Dialog...). Also, UI::Dialog and friends only load this module when you first use the `$d`-\>nautilus method (this may silently fail, but you can test by *ref()* for success).

## EXPORT

```
 None
```

## INHERITS

```
 None
```

## CONSTRUCTOR

### new( @options )

- EXAMPLE

  ```
   my $nautilus = new UI::Dialog::Backend::Nautilus ();
  ```

- DESCRIPTION

  This is the Class Constructor method. It accepts a list of key =\> value pairs and uses them as the defaults when interacting with the various widgets.

- RETURNS

  A blessed object reference of the UI::Dialog::Backend::Nautilus class.

## METHODS

### path( )

- EXAMPLE

  ```
   my $path = $nautilus->path();
  ```

- DESCRIPTION

  This method examines the NAUTILUS\_SCRIPT\_CURRENT\_URI string uri unescapes and strips it of any prefixing protocol indicators (file://) then returns the modified string.

- RETURNS

  ```
   a SCALAR.
  ```

### paths( )

- EXAMPLE

  ```
   my @paths = $nautilus->paths();
  ```

- DESCRIPTION

  This method splits the NAUTILUS\_SCRIPT\_SELECTED\_FILE\_PATHS multiline string and returns the ARRAY of selections in the order provided by nautilus.

- RETURNS

  ```
   an ARRAY.
  ```

### uri( )

- EXAMPLE

  ```
   my $uri = $nautilus->uri();
  ```

- DESCRIPTION

  This simply returns the NAUTILUS\_SCRIPT\_CURRENT\_URI string.

- RETURNS

  ```
   a SCALAR.
  ```

### uris( )

- EXAMPLE

  ```
   my @uris = $nautilus->uris();
  ```

- DESCRIPTION

  This method splits the NAUTILUS\_SCRIPT\_SELECTED\_URIS multiline string and returns the ARRAY of selections in the order provided by nautilus. This does not uri escape or unescape the string.

- RETURNS

  ```
   an ARRAY.
  ```

### geometry( )

- EXAMPLE

  ```
   my ($h,$w,$x,$y) = $nautilus->geometry();
  ```

- DESCRIPTION

  This method splits the NAUTILUS\_SCRIPT\_WINDOW\_GEOMETRY string and returns and ARRAY of the geometry details provided by nautilus. The array returned contains the following (in order):

  ```
   height
   width
   X-coordinate
   Y-coordinate
  ```

- RETURNS

  ```
   an ARRAY.
  ```

### uri\_unescape( )

- EXAMPLE

  ```
   my $path = $nautilus->uri_unescape( "file:///path/to/somewhere" );
   my @paths = $nautilus->uri_unescape( "file:///path/to/somewhere",
                                        "file:///yet/another/path" );
  ```

- DESCRIPTION

  This is the method used to unescape the NAUTILUS\_SCRIPT\_CURRENT\_URI in the *path()* method. This method is derived from the URI::Escape module which is not included in the Perl core modules yet is vitally necessary for the *path()* method to function in a useful manor.

- RETURNS

  an ARRAY or a SCALAR depending on the calling arguments.

## SEE ALSO

- PERLDOC

  ```
   UI::Dialog
   UI::Dialog::Backend
  ```

- MAN FILES

  ```
   nautilus(1)
  ```

## BUGS

```
 Please email the author with any bug reports. Include the name of the
 module in the subject line.
```

## AUTHOR

```
 Kevin C. Krinke, E<lt>kevin@krinke.caE<gt>
```

## COPYRIGHT AND LICENSE

```
 Copyright (C) 2004-2016  Kevin C. Krinke <kevin@krinke.ca>
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
 License as published by the Free Software Foundation; either
 version 2.1 of the License, or (at your option) any later version.
 This library is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 Lesser General Public License for more details.
 You should have received a copy of the GNU Lesser General Public
 License along with this library; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
```
