帮助 Unity 的 .desktop 文件的语法和自定义

帮助 Unity 的 .desktop 文件的语法和自定义
  1. 我尝试了以下方法,效果与预期一致。通过以下方法对处于不稳定状态的 Firefox 进行沙盒处理火狱

    Exec=firejail --seccomp --private firefox
    
  2. 这是为了什么?它起什么作用?

    Actions=NewWindow;NewPrivateWindow;
    
  3. 我的Firefox.desktop代码到目前为止

    [Desktop Entry] Version=1.0
    Name=VOLATILE SANDBOX - Private Firefox 
    Comment=Browse the World Wide Web
    GenericName=Web Browser
    Keywords=Internet;WWW;Browser;Web;Explorer
    Exec=firejail --seccomp --private firefox
    Terminal=false
    X-MultipleArgs=false
    Type=Application
    Icon=firefox
    Categories=GNOME;GTK;Network;WebBrowser;
    MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
    StartupNotify=true
    Actions=NewWindow;NewPrivateWindow;
    
  4. 我想添加右键单击状态:执着的不安全,这样您就可以升级扩展。我该如何添加第二个和第三个状态(在我的代码中)?

    Exec=firejail firefox
    

    Exec=firefox
    

答案1

将您的问题限制/改变为“文件中的不同部分有什么.desktop用处?”

.desktop 文件中不同部分的说明

在我的回答中,我将使用一个简单的.desktop文件,因为示例firefox许多分散注意力的线条,并没有使答案变得更清晰。

.desktop然而,对于所有文件来说,其使用原理都是完全相同的Unity

.desktop1. 基本文件的“主体”

假设你有一个应用程序(gedit在示例中),但没有.desktop文件。你可以简单地创建一个文件:

[Desktop Entry]
Name=Gedit
Exec=gedit
Type=Application

将其命名为gedit_starter.desktop。要从桌面使用它(双击运行命令gedit),只需使其可执行即可。要使其出现在 Dash 中,请将其保存在/usr/share/applications(供全局使用)或~/.local/share/applications(供本地个人使用)中。

添加额外选项(输入键)

上述示例是.desktop最简单的文件形式;一个简单的命令,一个通用图标。您可以添加其他行,为文件添加.desktop图标,添加额外选项或本地化名称等。请参阅此链接找到添加输入键的选项,例如自定义图标。

请注意,(可能是设置的)图标和设置名称(在行中Name=)将不是如果将文件存储在桌面上,则显示该文件,除非你让它可执行。参见下面的 Firefox 示例:

不可执行

在此处输入图片描述

可执行文件

在此处输入图片描述

2. 添加右键项目(从 Unity Launcher)

在此处输入图片描述

如中所述,该部分[1.]包含启动器文件的“主”命令。单击它时,它将运行(Unity)。要创建右键单击项目,您需要两个附加部分:

  • 一行列出这些额外的右键单击选项,以 分隔";"
    来自“真实”gedit``.desktop文件的示例:

    Actions=Window;Document;
    

    其中每个项目对应:

  • 快捷方式部分,例如:

    [Desktop Action Window]
    Name=Open a New Window
    Exec=gedit --new-window
    OnlyShowIn=Unity;
    

    查看本节:

    [Desktop Action Window]
    

    指的是行中列出的名称Actions=。名称可能包含空格,例如Recently used,正如我在这个答案

    Name=Open a New Window
    

    指的是界面上显示的名称

    Exec=gedit --new-window
    

    指的是右键单击运行的命令

    OnlyShowIn=Unity;
    

    指的是应该显示桌面条目的桌面环境

它的工作原理基本上就是这样。

你的例子

如果我理解你的问题,并且你想添加执着的不安全到您的 Firefox 快捷列表(作为右键单击选项),您需要更改以下行:

Actions=NewWindow;NewPrivateWindow;

进入:

Actions=NewWindow;NewPrivateWindow;Persistant;unsafe;

并在文件底部添加两个快捷部分:

    [Desktop Action Persistant]
    Name=Persistant
    Exec=<command>
    OnlyShowIn=Unity;


    [Desktop Action unsafe]
    Name=unsafe
    Exec=<command>
    OnlyShowIn=Unity;

您需要<command>用您想要运行的命令替换它们。

笔记

如果要编辑.desktop文件,请始终将默认(全局)文件从/usr/share/applications复制到~/.local/share/applications(供本地、个人使用),然后编辑本地文件。注销/登录后,本地文件将覆盖全局文件。

答案2

顺便说一句,如果您这样做然后在 Firefox(或任何程序)中以文件类型的“默认应用程序”身份实际打开链接时遇到问题,请尝试将 %U 添加到 Exec 行,如下所示:

Exec=firefox %U

%U 是传递给程序的 URL 的占位符。我认为其他占位符也可用,这只是我在 Firefox 中可以使用的占位符。

相关内容