如何在 Xubuntu XFCE Thunar 文件管理器中自定义文件上下文菜单?

如何在 Xubuntu XFCE Thunar 文件管理器中自定义文件上下文菜单?

我通常更喜欢 Xubuntu 的 XFCE 桌面环境,但我发现它的文件右键单击上下文菜单太简陋(例如,没有压缩/解压缩文件的选项,而且我也希望在那里执行一些非常特殊的操作)。

我该如何定制它?

答案1

最好的方法是使用出色的 Thunarcustom actions功能(现在已默认安装Thunar),由于这里没有详细的教程,我认为值得添加一个。创建自定义操作后,它会添加到上下文菜单中,我将在下面的讨论中展示。但是,您可以定制它在上下文菜单中出现的时间,例如,确保您的自定义操作仅在右键单击图像文件时出现。

在中thunar,如果您转到编辑>配置自定义操作,您将看到如下菜单(当然减去我的自定义操作):

在此处输入图片描述

您可以创建新的自定义操作(请参阅下面的讨论)或编辑现有操作。有很多有用的示例Xfce 网站在 Ubuntu 维基百科,因此这里无需全部介绍,但我们将仅讨论几个示例来展示此功能在的实用性Thunar

您将创建一个新的自定义动作点击添加按钮(如第一个屏幕截图所示)。然后,您可以将以下命令放入命令框(就像我在屏幕截图 2 中对不同示例所做的那样):

zenity --question;if [ $? = 0 ];then srm -rvf %F;fi

然后确保在外观状况菜单(正如我在屏幕截图 3 中为不同示例所做的那样)。

上述命令使用srm(位于名为 的包中secure-delete),在文件上使用它时应非常小心。因此,Zenity如果需要确认操作(就像在这里使用的那样) 以免文件被意外删除。

然而,使用更安全例如srm,我们可以使用的示例espeak,以便我们可以espeak读取任何文本文件。我们将创建一个新的自定义动作然后我们会把命令框(如截图2所示)

espeak -s 135 -f %f

Espeak如果尚未安装,则需要安装(使用sudo apt-get install espeak);-s我使用的选项只会稍微减慢语音速度;您也可以指定其他参数,例如不同的声音,但开关-f必须始终放在前面,%f因为它显示espeak要使用的文本输入文件。

(如果愿意,您可以添加一个图标(见下面的屏幕截图),以便上下文菜单看起来更有趣。)

在此处输入图片描述 在此处输入图片描述

现在,只有当您右键单击文本文件时,才会espeak出现该选项,如下面的屏幕截图所示。

在此处输入图片描述

自定义操作可以做很多事情,但这只是对创建自己的上下文菜单项的基本方法的介绍。更多信息请访问Xfce 维基以及很多有用的例子,还有一些自定义动作的优秀例子在这个论坛里


要将命令限制于某一类型的文件:

  • 只需txt:在‘外观条件’选项卡下,选中‘文本文件’,然后添加*.txt‘文件模式’。
  • 仅适用于png:检查‘图像文件’和*.png‘文件模式’。
  • 仅适用于flv:‘视频文件’,和*.flv
  • 对于其他文件,例如pdf:选中“其他文件”,然后添加*.pdf。等等。

答案2

看看这些链接,

答案3

Thunar 插件覆盖有限的选择范围。

添加新的上下文菜单选项的主要方法是(如米克说)通过转到“编辑/配置自定义操作”并单击“+”进行添加来完成。

添加葡萄酒应用程序更加棘手。请参阅此Foobar2000 播放器的答案也来自米克。虽然该脚本可能不适用于所有应用程序,但我也在 7-zip 归档器上尝试过它并且它可以工作。

答案4

没有看到任何地方提到这一点,这是与添加 Xfce 自定义操作相关的顶级搜索结果之一,所以......

如果有人想向 Thunar 的右键单击/上下文菜单添加条目,但出于某种原因又想避免使用 GUI,那么以下方法对我有用。就我而言,我想将此作为可在多台计算机上运行的安装后设置脚本的一部分来执行。

似乎通过其他答案中提到的 GUI 添加内容会保存到文件中~/.config/Thunar/uca.xml。在 Fedora 35 Xfce / Thunar 4.16.10 下,默认情况下有一个“在此处打开终端”的示例条目。

对我来说,这个文件包含(修改之前):

<?xml version="1.0" encoding="UTF-8"?>
<actions>
<action>
    <icon>utilities-terminal</icon>
    <name>Open Terminal Here</name>
    <unique-id>1644974544355345-1</unique-id>
    <command>exo-open --working-directory %f --launch TerminalEmulator</command>
    <description>Example for a custom action</description>
    <patterns>*</patterns>
    <startup-notify/>
    <directories/>
</action>
</actions>

<action>...</action>对于我来说,在结束标签之前添加另一个包含适当详细信息的部分</actions>似乎可以达到预期的效果。

例如,我添加了:

<action>
    <icon>org.gnome.Meld</icon>
    <name>Compare selected</name>
    <unique-id>1654579259785630-2</unique-id>
    <command>meld %F</command>
    <description>Compares selected files or folders in Meld</description>
    <patterns>*</patterns>
    <directories/>
    <text-files/>
</action>

然后当我选择多个文件/文件夹时,就可以看到进行 Meld 比较的选项。您可能需要先安装目标应用程序才能使其工作(我已经安装了 meld)。

在我关闭打开的实例后,Thunar 立即为我获取了更改,但如果没有,那么您可能需要终止/重新启动 thunar(例如pkill -if thunar)或重新启动电脑以使更改生效。

我可能会在设置完成后复制该文件,但如果我决定xmlstarlet为此制作一个函数包装等命令,那么我会尽量记住在这里发布一份副本。

相关内容