GNOME/文件

来自 ArchWiki

Files 是 GNOME 的默认文件管理器。Files 尝试提供一种简化的方法来管理文件和应用程序。

注意: Files 在 3.6 版本之前被称为 Nautilus。此应用程序被赋予了新的描述性名称,每种受支持的语言都有一个名称。Nautilus 这个名称仍然在许多地方使用,例如可执行文件名、一些软件包名称、一些桌面条目和一些 GSettings 模式。

安装

安装 nautilus 软件包。此软件包是 gnome 组的一部分。另请参阅 文件管理器功能#附加功能

注意: Files 不依赖于 gnome-shell 软件包,仅需要 gnome-desktop

扩展

一些程序可以为 Files 添加额外的功能。以下是一些示例

注意: 用 Python 编写的扩展需要 Nautilus Extension API 的 Python 绑定(nautilus-python 软件包)。
  • Actions For Nautilus — 一个允许您向文件选择上下文菜单添加任意操作的扩展。(用 Python 编写)
https://github.com/bassmanitram/actions-for-nautilus || actions-for-nautilus-gitAUR
  • Folder Color — 一个用于选择文件夹颜色的文件浏览器扩展(用 Python 编写)
https://github.com/costales/folder-color || folder-color-nautilusAUR
提示: 此扩展程序仅适用于包含其他颜色图标的这些图标主题,例如
numix-icon-theme-gitAUR, vibrancy-colorsAUR, humanity-icon-themeAUR, mint-x-iconsAUR
  • Nautilus Admin — 添加到菜单:“以管理员身份打开”或“以管理员身份编辑”(用 Python 编写)
https://github.com/MacTavishAO/nautilus-admin-gtk4 || nautilus-admin-gtk4AUR
  • Nautilus Annotations — 注释文件和目录(用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-annotations/ || nautilus-annotationsAUR
  • Nautilus Bluetooth — 添加到菜单:“通过蓝牙发送”(用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-bluetooth/ || nautilus-bluetoothAUR
  • Nautilus Checksums — 将校验和添加到 Nautilus 的属性窗口(用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-checksums/ || nautilus-checksumsAUR
  • Nautilus Hide — 添加到菜单:“隐藏”/“取消隐藏”(用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-hide/ || nautilus-hideAUR
  • Nautilus Image Converter — 调整大小/旋转图像(用 C 编写)
https://gitlab.gnome.org/coreyberla/nautilus-image-converter || nautilus-image-converter
  • Nautilus Launch — Nautilus 扩展,用于通过右键单击菜单运行可执行文件和启动器(用 C 编写)
https://gitlab.gnome.org/madmurphy/nautilus-launch || nautilus-launchAUR
  • Nautilus Open Any Terminal — Nautilus 扩展,它为打开其他终端模拟器添加了上下文条目。
https://github.com/Stunkymonkey/nautilus-open-any-terminal || nautilus-open-any-terminalAUR
  • Nautilus Metadata Editor — Nautilus 扩展,具有适用于以下 mime 类型的简单元数据编辑器:audio/x-mp3audio/x-flacaudio/x-vorbis+oggaudio/x-speex+oggaudio/x-musepackaudio/x-wavpackaudio/x-ttaaudio/x-aiffaudio/m4avideo/mp4video/x-ms-asf(用 C 和 Vala 编写)
https://gitlab.com/nvlgit/nautilus-metadata-editor-extension || nautilus-metadata-editorAUR
  • Nautilus Share — 使用 Samba 共享文件夹的 Nautilus 扩展(用 C 编写)
https://gitlab.gnome.org/coreyberla/nautilus-share || nautilus-share
  • Seahorse Nautilus — 用于 Files 的 PGP 加密和签名(用 C 编写)
https://gitlab.gnome.org/GNOME/seahorse-nautilus || seahorse-nautilus
警告: seahorse-nautilus 的上游存储库已存档,并警告由于未修复的错误而不要使用它。
  • Sushi — Nautilus 的快速文件预览器。 gnome 的一部分。
https://gitlab.gnome.org/GNOME/sushi || sushi
提示: 如果您希望编写新的扩展,nextgenAUR 是一个辅助脚本,可让您轻松为 GNOME Files 设置新的扩展项目(默认为 C 语言)。

自带 Nautilus 扩展的应用程序

以下应用程序默认安装自己的扩展,从而提供与 Nautilus 的集成

  • Eiciel — GNOME 文件 ACL 编辑器 — 该应用程序包含一个“Eiciel Nautilus”扩展,该扩展将图形 ACL 编辑器添加到文件属性窗口中(用 C++ 编写)
https://rofi.roger-ferrer.org/eiciel/ || eicielAUR
  • File Roller — 一个用于浏览存档的应用程序 — 该应用程序包含一个“Nautilus FileRoller”扩展(用 C 编写)
https://wiki.gnome.org/Apps/FileRoller || file-roller
  • GNOME Terminal — GNOME 终端模拟器 — 该应用程序包含一个“Terminal Nautilus”扩展(用 C 编写)
https://wiki.gnome.org/Apps/Terminal || gnome-terminal
  • Tilix — 一个使用 GTK+ 3 的 GNU/Linux 平铺终端模拟器 — 该应用程序包含一个 Nautilus 扩展,该扩展为上下文菜单添加了“在 Tilix 中打开”选项(用 Python 编写)
https://github.com/gnunn1/tilix || tilix
注意: 启用“在 Tilix 中打开”扩展所需的 nautilus-python 软件包被标记为可选依赖项,必须显式安装

依赖非自由软件的扩展

GNOME Files 的一些扩展,虽然是自由的,但可能依赖于非自由软件。以下列表提供了一些示例

  • Code Nautilus — Nautilus 扩展,用于在 Visual Studio Code 中打开文件和目录(用 Python 编写)
https://github.com/cra0zy/code-nautilus || code-nautilus-gitAUR
  • JetBrains Nautilus — Nautilus 扩展,用于在 JetBrains Toolbox 安装的产品中打开文件和目录(用 Python 编写)
https://github.com/encounter/jetbrains-nautilus || jetbrains-nautilus-gitAUR
  • Nautilus Code — Nautilus 扩展,它添加右键单击菜单项以在 VSCode 或 GNOME Builder 中打开当前文件夹(用 C 编写)
https://github.com/realmazharhussain/nautilus-code || nautilus-codeAUR

配置

Files 可以通过图形方式轻松配置,但并非所有选项都在首选项菜单中可用。更多选项可通过 dconf-editororg.gnome.nautilus 下找到。

注意: 如果您在 GNOME 桌面环境之外使用 Files,则必须确保 /usr/lib/gsd-xsettings 正在运行,否则 dconf 设置不会在 Files 中应用。

更改默认项目视图

您可以通过设置 default-folder-viewer 变量来更改项目的默认视图,例如列表视图

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

按类型排序

要按类型对所有文件夹中的文件进行排序

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

从位置侧边栏移除文件夹

显示的文件夹在 ~/.config/user-dirs.dirs 中指定,并且可以使用任何编辑器进行更改。执行 xdg-user-dirs-update 将再次更改它们,因此建议将文件权限设置为只读。

始终显示文本输入位置

标准的 Files 工具栏显示一个按钮栏界面,用于路径导航。要使用键盘输入路径位置,您必须公开位置文本输入字段。这可以通过按 Ctrl+l 完成

要使位置文本输入字段始终存在,请使用 gsettings,如下所示

$ gsettings set org.gnome.nautilus.preferences always-use-location-entry true
注意: 更改此设置后,您将无法公开按钮栏。只有当设置为false时,才能使用两种形式的位置导航。

技巧与窍门

缩略图

请参阅 文件管理器功能#缩略图预览

注意:linux-hardened 上,缩略图生成失败(所有缩略图都进入 ~/.cache/thumbnails/fail/)。这是因为出于安全原因,在此内核上默认禁用非特权用户命名空间。Nautilus 使用 bwrap(由 bubblewrap 提供)来沙箱缩略图生成器。您可以决定用 bubblewrap-suid 替换 bubblewrap。有关更多信息,请参阅 安全#沙箱应用程序

有时视频缩略图不显示。要解决此问题(如 nautilus 上没有视频缩略图 中所述),您必须安装 ffmpegthumbnailergst-libavgst-plugins-ugly,并删除 ~/.cache/thumbnails/fail/ 的内容。

从右键菜单创建新文档

要获得此选项,必须在您的主文件夹中创建一个 ~/Templates/ 文件夹,并通过您喜欢的终端在文件夹内放置一个空文件,方法是 touch ~/Templates/new 或使用任何其他文件管理器。然后只需重启 Files。

在非英语安装中,模板目录可能具有另一个名称。可以使用 xdg-user-dir TEMPLATES 找到实际目录。

模板目录可以在 ~/.config/user-dirs.dirs 文件中配置

XDG_TEMPLATES_DIR="$HOME/some/path"

隐藏文件

像大多数其他文件管理器一样,GNOME Files 默认隐藏名称以点开头的文件。

当文件名列在同一目录中的 .hidden 文件中时(每行一个文件名),GNOME Files 还会额外隐藏文件。有关有助于从此类 .hidden 文件添加/删除条目的扩展,请参阅 nautilus-hideAUR

在 Tilix 中打开当前目录

如果您正在使用 tilix 终端,则可以通过安装其可选依赖项 nautilus-python,轻松地将“在 Tilix 中打开”选项添加到 GNOME Files 的上下文菜单中。

添加文件夹到书签

要将文件夹添加到书签,只需在 Nautilus 中打开文件夹时按 Ctrl+d 即可。请注意,书签列表与其他基于 GNOME 的图形文件管理器(例如 Nemo)共享,因此从一个文件管理器添加或删除文件夹将影响在另一个文件管理器中看到的书签。

自定义脚本

放置在 ~/.local/share/nautilus/scripts 中的脚本可以从文件的右键单击上下文菜单中运行。

上下文菜单也可以组织到子文件夹中,例如 ~/.local/share/nautilus/scripts/images~/.local/share/nautilus/scripts/music

脚本可以访问以下环境变量

NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
NAUTILUS_SCRIPT_SELECTED_URIS
NAUTILUS_SCRIPT_CURRENT_URI
NAUTILUS_SCRIPT_WINDOW_GEOMETRY

一些示例脚本

~/.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
注意: 确保脚本标记为可执行。您可能必须使用 nautilus -q 重启 nautilus 才能使它们显示出来。

快捷键绑定

执行脚本的快捷键绑定可以在 ~/.config/nautilus/scripts-accels 文件中分配

; Example Keybinds
; Modifiers: <Control> <Alt> <Shift>
F4 open-terminal-here
<Alt>x remove-extension
注意: 您不能覆盖任何预先存在的 nautilus 快捷键绑定。

网络共享 / 虚拟文件系统

通过安装 gvfs 和各种 gvfs-* 软件包,您可以为各种基于网络的的文件系统(例如 SMB、NFS、WebDAV、Nextcloud)和一些手机(Android MTP、Apple AFC)添加支持。

有关更多信息和其他支持的虚拟文件系统,请参阅 文件管理器功能

故障排除

Files 不再是默认文件管理器

这可能是由于目录的文件关联被重置引起的。安装 anjutaAURvisual-studio-code-binAUR 往往会这样做。

要解决此问题,请打开 Files,右键单击文件夹,然后选择使用其他应用程序打开 > Files > 选择。这将把目录的关联设置回 Files。

如果这不能解决问题,请参阅 文件管理器功能#目录未在文件管理器中打开

每次复制操作后冻结几秒

如果您在系统中安装了 kdeconnect,则问题可能是由其文件共享模块引起的。停用文件共享,它应该会停止发生。

无法打开 Google Drive

您可能缺少以下一个或多个软件包

安装它们,您应该就可以开始了。

带有共享文件夹的 Windows 机器(版本 1709 或更高版本)不显示在网络视图中

注意: 最近 WSD 支持已添加到 GNOME/Files。

要在 GNOME/Files 中激活 WSD 支持,安装 gvfs-wsdd 以使 GNOME/Files 在网络视图中发现较新的 Windows 机器。无需进一步调整。

挂载选项中缺少 WebDAV

安装 gvfs-dnssd 并重启 Nautilus。

在没有 gnome-console 的情况下“以程序运行”不起作用

“以程序运行”上下文菜单选项是为 gnome-console 硬编码的,如果您使用不同的终端并且默认的 gnome 终端不存在,则上下文菜单选项将不会执行任何操作。

由于它只是直接执行 /usr/bin/kgxgnome-console 的可执行文件),您可以创建一个名为 kgx 的脚本(或者如果您的终端具有相同的参数,则创建符号链接)并将其放在 /usr/bin/ 中,以便将您的终端用于“以程序运行”上下文菜单选项。

使用 wezterm-gitAUR 作为“以程序运行”终端的示例

/usr/bin/kgx
#!/bin/sh

wezterm -e $@
注意: gnome-console 将保持窗口打开并显示输出,直到手动关闭子程序完成为止。不同的终端模拟器(如 wezterm)将在正在运行的程序退出后立即关闭。在上述脚本末尾使用类似 read -n 1 -s -r -p "Press any key to continue" 的代码来暂停它,直到按下任何按钮为止。