GNOME/Files

From ArchWiki

Files is the default file manager for GNOME. Files attempts to provide a streamlined method to manage both files and applications.

Note: Files was known as Nautilus prior to version 3.6. The application was given new descriptive names, one for each supported language. The name Nautilus is still used in numerous places such as the executable name, some package names, some desktop entries, and some GSettings schemas.

Installation

Install the nautilus package. This package is part of the gnome group. See also File manager functionality#Additional features.

Note: Files does not depend on the gnome-shell package, only requiring gnome-desktop.

Extensions

Some programs can add extra functionality to Files. Here are a few examples:

Note: Extensions written in Python require the Python bindings for the Nautilus Extension API (nautilus-python package).
  • Actions For Nautilus — An extension that allows you to add arbitrary actions to the file selection context menu. (written in Python)
https://github.com/bassmanitram/actions-for-nautilus || actions-for-nautilus-gitAUR
  • Folder Color — A file browser extension for choosing the color of a folder (written in Python)
https://github.com/costales/folder-color || folder-color-nautilusAUR
Tip: This extension works only with these icon-themes which contain additional colored icons, eg:
numix-icon-theme-gitAUR, vibrancy-colorsAUR, humanity-icon-themeAUR, mint-x-iconsAUR
  • Nautilus Admin — Add to menu: "Open as administrator" or "Edit as administrator" (written in Python)
https://github.com/MacTavishAO/nautilus-admin-gtk4 || nautilus-admin-gtk4AUR
  • Nautilus Annotations — Annotate files and directories (written in C)
https://gitlab.gnome.org/madmurphy/nautilus-annotations/ || nautilus-annotationsAUR
  • Nautilus Bluetooth — Add to menu: "Send via Bluetooth" (written in C)
https://gitlab.gnome.org/madmurphy/nautilus-bluetooth/ || nautilus-bluetoothAUR
  • Nautilus Checksums — Add checksums to Nautilus' properties window (written in C)
https://gitlab.gnome.org/madmurphy/nautilus-checksums/ || nautilus-checksumsAUR
  • Nautilus Hide — Add to menu: "Hide"/"Unhide" (written in C)
https://gitlab.gnome.org/madmurphy/nautilus-hide/ || nautilus-hideAUR
  • Nautilus Image Converter — Resize/rotate images (written in C)
https://gitlab.gnome.org/coreyberla/nautilus-image-converter || nautilus-image-converter
  • Nautilus Launch — Nautilus extension to run executables and launchers via right-click menu (written in C)
https://gitlab.gnome.org/madmurphy/nautilus-launch || nautilus-launchAUR
  • Nautilus Open Any Terminal — Nautilus extension which adds an context-entry for opening other terminal emulators.
https://github.com/Stunkymonkey/nautilus-open-any-terminal || nautilus-open-any-terminalAUR
  • Nautilus Metadata Editor — Nautilus extension with simple Metadata Editor for the following mime types: audio/x-mp3, audio/x-flac, audio/x-vorbis+ogg, audio/x-speex+ogg, audio/x-musepack, audio/x-wavpack, audio/x-tta, audio/x-aiff, audio/m4a, video/mp4, video/x-ms-asf (written in C and Vala)
https://gitlab.com/nvlgit/nautilus-metadata-editor-extension || nautilus-metadata-editorAUR
  • Nautilus Share — Nautilus extension to share folder using Samba (written in C)
https://gitlab.gnome.org/coreyberla/nautilus-share || nautilus-share
  • Seahorse Nautilus — PGP encryption and signing for Files (written in C)
https://gitlab.gnome.org/GNOME/seahorse-nautilus || seahorse-nautilus
Warning: The upstream repository for seahorse-nautilus has been archived and warns against using it due to unfixed bugs.
  • Sushi — Quick file previewer for Nautilus. Part of gnome.
https://gitlab.gnome.org/GNOME/sushi || sushi
Tip: If you wish to write new extensions, nextgenAUR is a helper script that lets you set up easily new extension projects for GNOME Files (defaults to the C language).

Applications that ship their own Nautilus extensions

The following applications install their own extensions by default, thus providing integration with Nautilus:

  • Eiciel — GNOME file ACL editor — The application includes an "Eiciel Nautilus" extension that adds graphical ACL editor into the file properties window (written in C++)
https://rofi.roger-ferrer.org/eiciel/ || eicielAUR
  • File Roller — An application for browsing archives — The application includes a "Nautilus FileRoller" extension (written in C)
https://wiki.gnome.org/Apps/FileRoller || file-roller
  • GNOME Terminal — The GNOME Terminal Emulator — The application includes a "Terminal Nautilus" extension (written in C)
https://wiki.gnome.org/Apps/Terminal || gnome-terminal
  • Tilix — A tiling terminal emulator for GNU/Linux using GTK+ 3 — The application includes an extension for Nautilus which adds an "Open in Tilix" option to the context menu (written in Python)
https://github.com/gnunn1/tilix || tilix
Note: The python-nautilus[broken link: replaced by nautilus-python] package, required for enabling the "Open in Tilix" extension, is marked as an optional dependency and must be installed explicitly

Extensions that rely on non-free software

Some extensions for GNOME Files, although free, might rely on non-free software. The following list provides a few examples:

  • Code Nautilus — Nautilus extension to open files and directories in Visual Studio Code (written in Python)
https://github.com/cra0zy/code-nautilus || code-nautilus-gitAUR
  • JetBrains Nautilus — Nautilus extension to open files and directories in JetBrains Toolbox installed products (written in Python)
https://github.com/encounter/jetbrains-nautilus || jetbrains-nautilus-gitAUR
  • Nautilus Code — Nautilus extension which adds right-click menu items to open current folder in VSCode or GNOME Builder (written in C)
https://github.com/realmazharhussain/nautilus-code || nautilus-codeAUR

Configuration

Files is simple to configure graphically, but not all options are available in the preferences menu. More options are available with dconf-editor under org.gnome.nautilus.

Note: If you are using Files outside of the GNOME desktop environment, you have to make sure that /usr/lib/gsd-xsettings is running, otherwise the dconf settings are not applied in Files.

Change default item view

You can change the default view for the items by setting the default-folder-viewer variable, e.g. for the list view:

$ gsettings set org.gnome.nautilus.preferences default-folder-viewer 'list-view'

Sort by type

To sort files in all folders by type:

$ gsettings set org.gnome.nautilus.preferences default-sort-order 'type'

Remove folders from the places sidebar

The displayed folders are specified in ~/.config/user-dirs.dirs and can be altered with any editor. An execution of xdg-user-dirs-update will change them again, thus it may be advisable to set the file permissions to read-only.

Always show text-entry location

The standard Files toolbar shows a button bar interface for path navigation. To enter path locations using the keyboard, you must expose the location text-entry field. This is done by pressing Ctrl+l

To make the location text-entry field always present, use gsettings as shown below:

$ gsettings set org.gnome.nautilus.preferences always-use-location-entry true
Note: After changing this setting, you will not be able to expose the button bar. Only when the setting is false can both forms of location navigation be employed.

Tips and tricks

Thumbnails

See File manager functionality#Thumbnail previews.

Note: On linux-hardened, thumbnails generation fails (all thumbnails go in ~/.cache/thumbnails/fail/). This is due to unprivileged user namespace being disabled by default on this kernel for security reasons. Nautilus uses bwrap (provided by bubblewrap) to sandbox thumbnailers. You may decide to replace bubblewrap with bubblewrap-suid. See Security#Sandboxing applications for more information.

Sometimes video thumbnails are not shown. To solve it (as mentioned in No video thumbnails on nautilus), you must install ffmpegthumbnailer, gst-libav, gst-plugins-ugly, and remove the content of ~/.cache/thumbnails/fail/.

Create a new document from the right-click menu

To get this option one has to create a ~/Templates/ folder in your home folder and place an empty file inside the folder through your favorite Terminal by touch ~/Templates/new or by using any other file manager. Then just restart Files.

On non-English installations, the templates directory might have another name. One can find the actual directory with xdg-user-dir TEMPLATES.

The templates directory can be configured in the ~/.config/user-dirs.dirs file:

XDG_TEMPLATES_DIR="$HOME/some/path"

Hiding files

Like most other file managers GNOME Files hides files with names starting with a dot by default.

GNOME Files additionally hides files when their names are listed in a .hidden file in the same directory (one filename per line). See nautilus-hideAUR for an extension that facilitates adding/removing entries from such .hidden files.

Open current directory in Tilix

If you are using tilix terminal you can easily add "Open in Tilix" option to the context menu of GNOME Files by installing its optional dependency python-nautilus[broken link: replaced by nautilus-python].

Add a folder to bookmarks

To add a folder to your bookmarks, simply press Ctrl+d when you have the folder opened in Nautilus. Note that the list of bookmarks is shared with other GNOME-based graphical file managers (e.g. Nemo), so a folder added or removed from one will affect the bookmarks seen in the other.

Custom scripts

Scripts placed in ~/.local/share/nautilus/scripts can be run from the right click context menu of a file.

The context menu can also be organized into subfolders, e.g. ~/.local/share/nautilus/scripts/images and ~/.local/share/nautilus/scripts/music.

Scripts have access to the following environment variables:

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
NAUTILUS_SCRIPT_SELECTED_URIS
NAUTILUS_SCRIPT_CURRENT_URI
NAUTILUS_SCRIPT_WINDOW_GEOMETRY

Some example scripts:

~/.local/share/nautilus/scripts/open-terminal-here
#!/bin/sh
gnome-terminal
~/.local/share/nautilus/scripts/remove-extension
#!/bin/sh
echo "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | while read -r filename; do
    mv -n "$filename" "${filename%.*}"
done
Note: Make sure the scripts are marked as executable. You may have to restart nautilus with nautilus -q for them to show up.

Keybinds

Keybinds to execute scripts can be assigned in the ~/.config/nautilus/scripts-accels file:

; Example Keybinds
; Modifiers: <Control> <Alt> <Shift>
F4 open-terminal-here
<Alt>x remove-extension
Note: You cannot overwrite any pre-existing nautilus keybinds.

Network Shares / Virtual Filesystems

By installing gvfs and the various gvfs-* packages, you can add support for various network based filesystems (e.g. SMB, NFS, WebDAV, Nextcloud) and some mobile phones (Android MTP, Apple AFC).

For more information and other supported virtual filesystems, see File manager functionality.

Troubleshooting

Files is no longer the default file manager

This can be caused by the file association for directories being reset. Installing anjutaAUR or visual-studio-code-binAUR tend to do this.

To solve this, open Files, right-click on a folder, and choose Open With Other Application > Files > Select. This will set the association for directories back to Files.

If this does not solve the issue, see File manager functionality#Directories are not opened in the file manager.

Freezes for a few seconds after every copy operation

In case you have kdeconnect installed in your system, the problem might be caused by its file sharing module. Deactivate file sharing, and it should stop happening.

Cannot open Google Drive

You may be missing one or more of the following packages:

Install them and you should be good to go.

Windows machines (version 1709 or up) with shared folders don't show up in Network view

Note: Recently WSD support was added to GNOME/Files.

To activate the WSD support in GNOME/Files install gvfs-wsdd to make GNOME/Files discover newer Windows machines in the network view. There is no further tweaking necessary.

WebDAV missing from mounting options

Install gvfs-dnssd and restart Nautilus.