Thunar

来自 ArchWiki

来自项目主页

Thunar 是 Xfce 桌面环境的现代文件管理器。Thunar 从零开始设计,旨在快速且易于使用。其用户界面简洁直观,默认情况下不包含任何令人困惑或无用的选项。Thunar 速度快、响应迅速,启动时间和文件夹加载时间都很好。

安装

安装 thunar 软件包。Thunar 是 xfce4 组的一部分,也是 Xfce 桌面环境的默认文件管理器。

插件和附加组件

  • Gnome 虚拟文件系统 — 如果安装,Thunar 将显示回收站、可移动媒体和远程文件系统 (mtp/smb)。有关更多详细信息,请参阅文件管理器功能#挂载
https://wiki.gnome.org/Projects/gvfs || gvfs
  • Thunar 归档插件 — 此插件允许您使用上下文菜单项创建和提取归档文件。它不直接创建或提取归档文件,而是充当其他程序(如 File Roller (file-roller)、Ark (ark)、Xarchiver (xarchiver) 或 Engrampa (engrampa))的前端。属于 xfce4-goodies 的一部分。
https://goodies.xfce.org/projects/thunar-plugins/thunar-archive-plugin || thunar-archive-plugin
  • Thunar 媒体标签插件 — 此插件允许您查看有关媒体文件的详细信息。它还具有批量重命名器,并允许编辑媒体标签。它支持 ID3(MP3 文件格式的系统)和 Ogg/Vorbis 标签。属于 xfce4-goodies 的一部分。
https://goodies.xfce.org/projects/thunar-plugins/thunar-media-tags-plugin || thunar-media-tags-plugin
  • Thunar 共享插件 — 此插件允许您从 Thunar 使用 Samba 快速共享文件夹,而无需 root 访问权限。另请参阅如何配置方向
https://goodies.xfce.org/projects/thunar-plugins/thunar-shares-plugin || thunar-shares-plugin
https://goodies.xfce.org/projects/thunar-plugins/thunar-volman || thunar-volman
  • Tumbler — 生成缩略图的外部程序。另请安装 ffmpegthumbnailer 以启用视频缩略图。
https://gitlab.xfce.org/xfce/tumbler || tumbler
  • libgsf — GNOME 结构化文件库是一个用于读取和写入结构化文件格式的实用程序库。如果需要支持 odf 缩略图,请安装。
https://directory.fsf.org/wiki/Libgsf || libgsf
  • RAW 缩略图生成器 — 一个轻量级且快速的 raw 图像缩略图生成器,用于显示 raw 缩略图。
https://github.com/erlendd/raw-thumbnailer || raw-thumbnailerAUR
  • 额外的缩略图生成器 — Tumbler 的自定义缩略图生成器。
https://docs.xfce.org/xfce/tumbler/available_plugins/ || tumbler-extra-thumbnailersAUR
  • 文件夹缩略图生成器 — 通过 Tumbler 支持自定义文件夹缩略图。
https://github.com/j-james/thunar-folder-thumbnails || tumbler-folder-thumbnailerAUR
  • STL 缩略图生成器 — 支持为 Tumbler 生成 STL 缩略图。
https://github.com/j-james/thunar-stl-thumbnails || tumbler-stl-thumbnailerAUR
  • webp-pixbuf-loadergdk-pixbuf2 的可选依赖项,它为默认缩略图生成器添加了生成 webp 缩略图的支持。
https://github.com/aruiz/webp-pixbuf-loader || webp-pixbuf-loader

配置

配置快捷键

要配置快捷键,请编辑文件 ~/.config/Thunar/accels.scm。要配置 Thunar 的隐藏变量,请使用 xfconf-query -c thunar -l -v

更改默认排序行为

在 Thunar 中,可以更改默认排序顺序。必须编辑 /etc/xdg/xfce4/xfconf/xfce-perchannel-xml/thunar.xml 文件,甚至很可能需要创建它。以下是按名称升序排序的示例内容

/etc/xdg/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
  
<?xml version="1.0" encoding="UTF-8"?>

<channel name="thunar" version="1.0">
  <property name="last-sort-order" type="string" value="GTK_SORT_ASCENDING" locked="*" unlocked="root"/>
  <property name="last-sort-column" type="string" value="THUNAR_COLUMN_NAME" locked="*" unlocked="root"/>
</channel>

Thunar 卷管理器

如果同时安装了 gvfsthunar-volman,则可以将 Thunar 配置为在连接媒体时自动运行命令。对于通常遵循 MTP 的移动设备,还需要额外的 gvfs-mtp 软件包。

提示: 要让 Thunar 处理自动挂载,必须在守护进程模式下启动 thunar。

配置

它也可以配置为在连接相机和音频播放器时执行某些操作。安装插件后

  1. 启动 Thunar 并转到编辑 > 首选项
  2. 在“高级”选项卡下,选中“启用卷管理”
  3. 单击配置并选中以下项目
    • 热插拔时挂载可移动驱动器。
    • 插入时挂载可移动媒体。
  4. 还要进行所需的更改(请参阅以下示例)

以下是使 Amarok 播放音频 CD 的示例设置。

Multimedia - Audio CDs: amarok --cdplay %d

自定义操作

本节介绍可以通过 编辑 -> 配置自定义操作 访问的有用自定义操作,这些操作存储在 ~/.config/Thunar/uca.xml 中。Thunar wiki 中列出了更多示例。此外,这篇博客文章提供了全面的自定义操作集合。

在此处打开终端

“在此处打开终端”是安装时的唯一操作。告诉 exo 使用哪个终端

~/.config/xfce4/helpers.rc
TerminalEmulator=terminal
名称 命令 文件模式 如果选择包含则显示
在此处打开终端 exo-open --working-directory %f --launch TerminalEmulator * 目录

搜索文件和文件夹

要使用此操作,您需要安装 catfishplocatezeitgeist 依赖项对于想要使用预构建索引数据库的用户是可选的。

名称 命令 文件模式 如果选择包含则显示
搜索 catfish --path=%f * 目录

扫描病毒

要使用此操作,您需要安装 clamavclamtk

名称 命令 文件模式 如果选择包含则显示
扫描病毒 clamtk %F * 全选

链接到 Dropbox

名称 命令 文件模式 如果选择包含则显示
链接到 Dropbox ln -s %f /path/to/DropboxFolder * 目录、其他文件

请注意,当使用许多自定义操作将文件和文件夹符号链接到特定位置时,将它们放入上下文菜单的“发送到”文件夹中可能很有用,以避免菜单本身变得臃肿。这很容易实现,并且需要在 ~/.local/share/Thunar/sendto 中为每个要执行的操作创建一个 .desktop 文件。假设我们想将上面的 Dropbox 符号链接操作放入“发送到”,我们创建一个 dropbox_folder.desktop 文件,内容如下。新的应用操作将在重启 Thunar 后生效。

[Desktop Entry]
Type=Application
Version=1.0
Encoding=UTF-8
Exec=ln -s %f /path/to/DropboxFolder
Icon=/usr/share/icons/dropbox.png
Name=Dropbox

技巧和窍门

使用 Thunar 浏览远程位置

自 Xfce 4.8 (Thunar 1.2) 起,可以直接在 Thunar 中浏览远程位置(如 FTP 服务器或 Samba 共享)。要启用此功能,请确保已安装 gvfssshfs(以及如果您需要 SMB/CIFS 支持,则安装 gvfs-smb)。“网络”条目在 Thunar 的侧边栏中可见,可以使用位置对话框(使用 Ctrl+l 打开)中的以下 URI 方案打开远程位置:smb://、ftp://、ssh://、sftp://、davs:// & 后跟服务器主机名或 IP 地址。

没有 NFS 共享的 URI 方案,但如果您正确设置 fstab,Thunar 可以发出 mount 命令。

/etc/fstab
# nas1 server
nas1:/c/home		/media/nas1/home	nfs	noauto,user,_netdev,bg  0 0

这里重要的是 noauto,它可以防止在您单击共享之前挂载共享;user,它允许任何用户挂载(和卸载)共享;_netdev,它使网络连接成为先决条件;最后,bg,它将挂载操作放在后台,因此如果您的服务器需要一些启动时间,您将不必处理超时消息并重新单击直到它工作。

提示
  • 如果要永久存储远程文件系统位置的密码,则必须安装 GNOME Keyring
  • 可能有必要将挂载点指定为 /media 的子文件夹,以便 Thunar 为任何非 root 用户显示新设备。

在守护进程模式下启动

Thunar 可以在守护进程模式下运行。这有几个优点,包括 Thunar 启动速度更快、Thunar 在后台运行并且仅在必要时打开窗口(例如,当插入闪存驱动器时),以及让 Thunar 处理可移动媒体的自动挂载。

确保命令 thunar --daemon 在登录时自动启动。有关更多详细信息,请参阅 Xfce自动启动

解决冷启动缓慢问题

有些人仍然遇到 Thunar 首次启动需要很长时间的问题。这是由于 gvfs 检查网络,阻止 Thunar 启动,直到 gvfs 完成其操作。要更改此行为,请编辑 /usr/share/gvfs/mounts/network.mount 并将 AutoMount=true 更改为 AutoMount=false

隐藏侧边栏中的快捷方式

有一个隐藏菜单可以隐藏侧边栏中的快捷方式。

在侧边栏中没有快捷方式的地方(例如在“设备”部分标签上)单击鼠标右键。然后您将获得一个弹出菜单,您可以在其中取消选中您不想显示的项目。

在 Thunar 中分配键盘快捷键

参见GTK#键盘快捷键

显示 fstab 中定义的分区

默认情况下,Thunar 不会在设备中显示 /etc/fstab 中定义的除根分区之外的任何分区。

我们可以通过将选项 x-gvfs-show 添加到我们希望显示的分区的 fstab 来更改此设置。

故障排除

自动挂载大型外部驱动器

如果 Thunar 拒绝挂载大型可移动媒体(大小 > 1TB),即使已安装 thunar-volman 和 gvfs,请尝试安装不同的自动挂载器,例如 udevilAURudiskie。后者应该是首选,因为它使用 udisks2,因此与 gvfs 兼容。要启动支持 udisks2 的 udiskie,请将以下行添加到您的自动启动文件

udiskie -2 &

Tumblerd 挂起,占用过多 CPU

Tumblerd,即监视文件系统并在需要制作缩略图时通知系统的服务,可能会陷入循环,使用 100% 的系统 CPU;请参阅错误报告。以下脚本是防止这种情况发生的临时解决方法。复制并粘贴到 .sh 文件中,将其保存在您主目录中的某个位置,将该文件标记为可执行文件,然后设置系统以在系统启动时自动启动它。

#!/bin/bash
period=20
tumblerpath="/usr/lib/*/tumbler-1/tumblerd" # The * here should find the right one, whether 32 and 64-bit
cpu_threshold=50
mem_threshold=20
max_strikes=2                               # max number of above cpu/mem-threshold's in a row
log="/tmp/tumblerd-watcher.log"

if [[ -n "${log}" ]]; then
    cat /dev/null > "${log}"
    exec >"${log}" 2>&1
fi

strikes=0
while sleep "${period}"; do
    while read pid; do
	cpu_usage=$(ps --no-headers -o pcpu -f "${pid}"|cut -f1 -d.)
	mem_usage=$(ps --no-headers -o pmem -f "${pid}"|cut -f1 -d.)

	if [[ $cpu_usage -gt $cpu_threshold ]] || [[ $mem_usage -gt $mem_threshold ]]; then
	    echo "$(date +"%F %T") PID: $pid CPU: $cpu_usage/$cpu_threshold %cpu MEM: $mem_usage/$mem_threshold STRIKES: ${strikes} NPROCS: $(pgrep -c -f ${tumblerpath})"
	    (( strikes++ ))
	    if [[ ${strikes} -ge ${max_strikes} ]]; then
		kill "${pid}"
		echo "$(date +"%F %T") PID: $pid KILLED; NPROCS: $(pgrep -c -f ${tumblerpath})"
		strikes=0
	    fi
	else
	    strikes=0
	fi
    done < <(pgrep -f ${tumblerpath})
done

回收站/网络图标随机消失

确保所有 Thunar 实例都在 gvfs 之后启动。[1] 对于 thunar --daemon,您可以创建一个包装器,该包装器等待 GVFS 处于活动状态

注意: /usr/local/bin 应该在 $PATH 中的 /usr/bin 之前。
/usr/local/bin/Thunar
#!/bin/bash
if [[ $1 == --daemon ]]; then
  until pgrep gvfs >/dev/null; do
    sleep 1
  done
  exec /usr/bin/Thunar "$@"
else
  exec /usr/bin/Thunar "$@"
fi

未认证以挂载文件系统

参见文件管理器功能#故障排除

Thunar 新窗口或标签页打开速度过慢

可能是您在设置为 XDG_TEMPLATES_DIR 的文件夹下有许多文件。参见XDG 用户目录

解决方案是将文件从 XDG_TEMPLATES_DIR 的任何文件夹移动到另一个文件夹,或将 XDG_TEMPLATES_DIR 设置为另一个文件夹。

参见