![如何在自定义文件夹(不是 ~/Desktop、/usr... 或 ~/.local/share/applications 文件夹)内创建应用程序启动器(.desktop 文件)?](https://linux22.com/image/1027605/%E5%A6%82%E4%BD%95%E5%9C%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%88%E4%B8%8D%E6%98%AF%20~%2FDesktop%E3%80%81%2Fusr...%20%E6%88%96%20~%2F.local%2Fshare%2Fapplications%20%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%89%E5%86%85%E5%88%9B%E5%BB%BA%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%90%AF%E5%8A%A8%E5%99%A8%EF%BC%88.desktop%20%E6%96%87%E4%BB%B6%EF%BC%89%EF%BC%9F.png)
因此,在从 Ubuntu 18.04 跳转到 20.04 后,我惊讶地发现似乎没有办法将 .desktop 作为实际启动器,除了 ~/Desktop、/usr/share/applications 或 ~/.local/share/applications 文件夹之外。我有一堆针对初学者的复杂启动器,它们运行一系列步骤,并将其放在单独的子文件夹中(git 的一部分,以便于同步),以便可以轻松地在一个地方找到它们。它们也组织在子文件夹树中。然后,我只需将主子文件夹快捷方式添加到面板,用户只需单击几下即可启动选择的应用程序/操作。
现在,看来我只能在桌面上制造混乱(要求所有启动器都位于顶层)或将这些启动器埋在主应用程序窗口中。
有没有办法添加另一个路径作为额外的位置,以便 .desktop 文件可以作为快捷方式激活,并递归地使相同的权限应用于其所有子文件夹?或者,是否有一种秘密方法可以让此类 .desktop 文件在系统上的任何文件夹中工作?
虽然在 /usr/share/applications/ 中安装所有应用程序快捷方式(例如)是可行的,但在这种情况下,它确实很混乱。更重要的是,从那里创建到任意子文件夹的符号链接仍然不起作用。甚至创建到存储在 .local/share/applications/ 文件夹中的文件夹的桌面符号链接也不起作用。
为什么做这么简单的事情这么难:在~/Desktop 或前面提到的两个系统位置之外的任何其他文件夹中拥有应用程序启动器快捷方式?
答案1
为什么做这么简单的事情这么难:在~/Desktop 或前面提到的两个系统位置之外的任何其他文件夹中拥有应用程序启动器快捷方式?
.desktop
启动器不是针对您的特定用例而设计的。
它们被放置在专用的系统位置。这样,系统就可以找到它们,知道如何运行应用程序,并创建一个菜单来展示给用户。
在具有传统菜单的 Linux 桌面上,您可以使用菜单编辑器轻松完成您想要的操作。该菜单编辑器将
.desktop
使用 键编辑文件以将它们放置在给定的子菜单中Categorie=
。然后,在每个 Linux 系统上,放置在系统位置之一的这些.desktop
文件将出现在预期的子菜单中。存在限制:- 子菜单只有一级
- Gnome Shell 之类的桌面不再使用其应用程序概览中的传统菜单结构。在那里,你可以使用扩展。
在越来越多的桌面环境中,单击文件管理器中任意位置的任何可执行文件以直接执行它的做法越来越不受欢迎,在文件目录结构中使用小脚本执行 su 几乎不再是一种选择。不过,在许多桌面上,
.desktop
只要设置了可执行位,就可以直接单击文件中的任何位置来启动它。在某些桌面上,包括 Gnome,这已被弃用。不过,您可以将.desktop
文件与运行这些文件的实用程序关联起来,例如dex
,在 universe 中可用。正如您所注意到的,当前系统并不是真正为您想要做的事情而设计的,您可能更喜欢使用专用的菜单系统。例如,使用“jgmenu”(在 Universe 中可用),您可以轻松创建强大的级联菜单,甚至包括搜索。然后,单个应用程序启动器就可以访问该菜单。