Gnome3

如何將應用程序添加到 GNOME 應用程序菜單?

  • December 5, 2021

我有一個僅從命令行啟動的應用程序。如何將命令(最好是漂亮的徽標)添加到 Gnome 的應用程序菜單?

GNOME和其他與freedesktop.org兼容的桌面環境(例如KDEUnity )中,應用程序通過桌麵條目添加到桌面的菜單或桌面外殼中,這些條目在具有副檔名的文本文件.desktop(稱為桌面文件)中定義。桌面環境根據從可用桌麵條目中提取的組合資訊為使用者建構菜單。

桌面文件可以在以下兩個位置之一創建:

  • /usr/share/applications/系統中每個使用者都可以使用的桌麵條目
  • ~/.local/share/applications/對於單個使用者可用的桌麵條目

您可能需要重新啟動 GNOME 才能使新添加的應用程序正常工作。

按照慣例,桌面文件的名稱中不應包含空格或國際字元。

每個桌面文件都分為[],每個組都以方括號 ( )中的組標題開頭。每個部分包含許多對,用等號 ( =) 分隔。

以下是桌面文件的範例:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

解釋

  • [Desktop Entry]組標頭將Desktop Entry文件標識為桌麵條目
  • Type``Application條目的類型、 有效值為LinkDirectory
  • Encoding桌面文件 的字元編碼
  • Name 在菜單或啟動器中可見的應用程序名稱
  • Comment 工具提示中使用的應用程序的描述
  • Icon 在菜單或啟動器中為應用程序顯示的圖示
  • Exec 用於從 shell 啟動應用程序的命令。
  • Terminal 應用程序是否應該在終端中執行,有效值是truefalse
  • Categories 分號 ( ;) 分隔的菜單類別列表,其中應顯示條目

鍵中的命令行參數Exec可以用以下變數表示:

  • %f 單個文件名。
  • %F 多個文件名。
  • %u 單個 URL。
  • %U 多個網址。
  • %d 一個目錄。與 結合使用%f來定位文件。
  • %D 多個目錄。與 結合使用%F來定位文件。
  • %n 沒有路徑的單個文件名。
  • %N 沒有路徑的多個文件名。
  • %k 桌面文件位置的 URI 或本地文件名。
  • %v 設備條目的名稱。

請注意,~環境變數或類似的環境變數$HOME不會在桌面文件中展開,因此引用的任何執行檔必須位於$PATH或通過其絕對路徑引用。

GNOME 開發中心提供了完整的桌麵條目規範

啟動腳本

如果要啟動的應用程序需要在呼叫之前完成某些步驟,您可以創建一個啟動應用程序的 shell 腳本,並將桌麵條目指向 shell 腳本。假設應用程序需要從某個目前工作目錄執行。~/bin/在合適的位置(例如)創建啟動腳本。該腳本可能類似於以下內容:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

設置腳本的可執行位:

$ chmod +x ~/bin/launch-application

然後Exec將桌麵條目中的鍵指向啟動腳本:

Exec=/home/user/bin/launch-application

引用自:https://unix.stackexchange.com/questions/103213