上下文菜单操作或 .desktop 文件中的各种 %(百分比)参数是什么意思?

jac*_*ckL 5 context-menu

我说的是这样的事情:

  • %B
  • %f
  • %F
  • %d
  • %D
  • 等等。

它们是什么意思以及它们是如何使用的?我正在寻找教程的链接,或者有人可以在这里为我发布一个完整的列表。

目标是向 Pcmanfm/Lubuntu 添加上下文菜单(假设可能)。如果 Pcmanfm 无法实现,我会尝试使用另一个文件管理器。

我简单地尝试了 Thunar,它的动作工具上有一个参数列表,但列表不完整,我不了解某些代码的用法(我确实阅读了教程)。这些信息假定知识水平比我的略高。(虽然我在 Windows 中大量使用上下文菜单,但我通常只使用一个%-type 参数——%s如果我没记错的话。)所以我正在寻找一个主列表和一个解释 Linux/Ubuntu 中参数用法的综合教程。

谢谢。

mur*_*uru 10

在 Desktop Entry 规范Exec关键部分中定义了这些字符串的最小列表。未弃用的:

  • %f 单个文件名,即使选择了多个文件。读取桌面条目的系统应该认识到有问题的程序不能处理多个文件参数,并且如果程序不能处理额外的文件参数,它应该可能为每个选定的文件生成并执行程序的多个副本。如果文件不在本地文件系统上(即在 HTTP 或 FTP 位置上),文件将被复制到本地文件系统并且 %f 将被扩展以指向临时文件。用于不理解 URL 语法的程序。
  • %F 文件列表。用于可以一次打开多个本地文件的应用程序。每个文件都作为单独的参数传递给可执行程序。
  • %u 单个网址。本地文件可以作为 file: URL 或作为文件路径传递。
  • %U URL 列表。每个 URL 作为单独的参数传递给可执行程序。本地文件可以作为 file: URL 或作为文件路径传递。
  • %i 桌面条目的 Icon 键扩展为两个参数,首先是 --icon ,然后是 Icon 键的值。如果 Icon 键为空或丢失,则不应扩展为任何参数。
  • %c 桌面条目中相应名称键中列出的应用程序的翻译名称。
  • %k 桌面文件的位置作为 URI(如果例如从 vfolder 系统获取)或本地文件名,如果不知道位置则为空。

并非所有这些都对自定义操作有意义。LXDE Wiki 建议PCManFM 仅支持这些.

弃用的:

  • %d
  • %D
  • %n
  • %N
  • %v
  • %m

Nautilus Actions将这些扩展为包括更多项目,我认为大多数文件管理器都遵循这一惯例。除了上面列出的那些,它还补充说:

  • %b (第一)基名
  • %B 以空格分隔的基本名称列表
  • %c 所选项目的数量
  • %d (一)基目录
  • %D 每个选定项目的基本目录的空格分隔列表
  • %h (第一个)URI 的主机名
  • %m (第一个)所选项目的 mimetype
  • %M 所选项目的 mimetypes 的空格分隔列表
  • %n (第一个)URI 的用户名
  • %o 当指定为第一个参数时强制执行某种形式的无操作运算符,否则忽略
  • %O 当指定为第一个参数时强制执行某种形式的无操作运算符,否则忽略
  • %p (第一个)URI 的端口号
  • %s (第一个)URI 的方案
  • %w (第一个)没有扩展名的基名
  • %W 空格分隔的基本名称列表,没有扩展名
  • %x (一)扩展
  • %X 以空格分隔的扩展名列表
  • %% 人物

Thunar Actions 支持的甚至更少——它支持的那些在添加动作的对话框中列出:

  • %f 第一个选定文件的路径
  • %F 所有选定文件的路径
  • %d 包含 %f 引用的文件的目录
  • %D 包含 %F 引用的文件的目录
  • %n 第一个选择的文件名,不带路径
  • %N 所有选定的文件名,不带路径

Nautilus 和 Thunar 都使用已被 Desktop Entry 规范弃用的说明符。它们也对 使用不同的含义%n


总而言之,Desktop Entry Spec、Nautilus Actions 和 Thunar 之间的唯一共同点似乎是%f/ %F%f用于指定单个文件,以及%F指定文件列表。