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 packages in the official repositories and AUR that do just that.

Note: Extensions written in Python require the Python bindings for the Nautilus Extension API (python-nautilus package).
  • File Manager Actions — Configures programs to be launched when files are selected in Nautilus (written in C)
https://gitlab.gnome.org/GNOME/filemanager-actions || filemanager-actions
  • Folder Color — A file browser extension for choosing the color of a folder (written in Python)
https://foldercolor.tuxfamily.org/ || 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/brunonova/nautilus-admin || nautilus-adminAUR
  • 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 Git — Nautilus/Nemo extension to add important information about the current git directory (written in Python)
https://github.com/bilelmoussaoui/nautilus-git || nautilus-ext-gitAUR
  • Nautilus Hide — Add to menu: "Hide"/"Unhide" (written in C)
https://gitlab.gnome.org/madmurphy/nautilus-hide/ || nautilus-hideAUR
  • 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 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 SendTo — Files context menu for sending files (written in C)
https://gitlab.gnome.org/Archive/nautilus-sendto || nautilus-sendto
  • Nautilus Share — Nautilus extension to share folder using Samba (written in C)
https://gitlab.gnome.org/Archive/nautilus-share || nautilus-share
  • Nautilus Terminal — Terminal embedded in Files. It is always open in the current folder, and follows the navigation (written in Python)
https://projects.flogisoft.com/nautilus-terminal/ || nautilus-terminal
  • Nautilus Wipe — Nautilus extension to provide wiping integration (written in C)
https://wipetools.tuxfamily.org/nautilus-wipe.html || nautilus-wipeAUR
  • Seahorse Nautilus — PGP encryption and signing for Files (written in C)
https://gitlab.gnome.org/GNOME/seahorse-nautilus || seahorse-nautilus
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:

  • EasyTAG — EasyTAG is a simple application for viewing and editing tags in audio files; it supports MP3, MP2, MP4/AAC, FLAC, Ogg Opus, Ogg Speex, Ogg Vorbis, MusePack, Monkey's Audio, and WavPack files and works under Linux or Windows — The application includes a "Nautilus EasyTAG" extension (written in C)
https://wiki.gnome.org/Apps/EasyTAG || easytag
  • Brasero — CD/DVD mastering tool — The application includes a "Nautilus Brasero" extension (written in C)
https://wiki.gnome.org/Apps/Brasero || brasero
  • 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
  • Evince — Document viewer (PDF, PostScript, XPS, djvu, dvi, tiff, cbr, cbz, cb7, cbt) — The application includes an "Evince Properties Page" extension for Nautilus (written in C)
https://wiki.gnome.org/Apps/Evince || evince
  • 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
  • GTK Hash — A cross-platform desktop utility for computing message digests or checksums — The application includes a "GTK Hash Properties Nautilus" extension (written in C)
https://github.com/tristanheaven/gtkhash || gtkhashAUR and gtkhash-nautilusAUR
  • 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 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.

Desktop icons

See GNOME#Icons on the desktop.

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.

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.

Troubleshooting

Files is no longer the default file manager

This can be caused by the file association for directories being reset. Installing anjutaAUR tends 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.