如何將應用程序和腳本集成到 Linux 桌面

已發表: 2022-10-12
藍色背景上的筆記本電腦,顯示 Linux 命令提示符。
fatmawati achmad zaenuri/Shutterstock.com

在 Linux 上,沒有桌面文件的應用程序不會與您的桌面環境集成。 大多數應用程序都提供一個,但有時您需要創建一個。 這很容易,只需按照以下步驟操作。

桌面文件

桌面文件包含有關它們所屬的應用程序或腳本的信息。 它們最常與二進制可執行文件一起使用,但如果您願意,您也可以將它們與腳本一起使用。 為簡潔起見,我們只會說“應用程序”。

9 個 Bash 腳本示例讓您開始使用 Linux
相關9 個 Bash 腳本示例讓您開始使用 Linux

桌面文件包含您的桌面環境在處理該應用程序時可以引用的元數據。 桌面文件將指定應用程序二進製文件或腳本的位置、它使用的圖標等。 由於桌面文件存儲在標準位置,因此您的桌面環境可以可靠地定位和引用它們。

如果應用程序沒有桌面文件,它與您的桌面環境的某些集成將會失敗。 它不會出現在應用程序搜索的結果中,您也無法將其固定到擴展塢或其他啟動器。 在某些桌面環境中,您可以將桌面文件放在桌面上,它將充當快捷方式,讓您通過雙擊桌面文件來運行應用程序。 正是這個用例給了他們他們的名字。

如何在 Ubuntu 上從源代碼編譯和安裝
相關如何在 Ubuntu 上從源代碼編譯和安裝

由於多種原因,應用程序可能沒有桌面文件。 安裝例程可能出現了問題,或者它可能是一個從未打算提供的極簡安裝程序。 將應用程序作為源代碼下載並在您的計算機上編譯通常不會創建桌面文件。

當然,如果您自己編寫了應用程序,那麼您也要對桌面文件負責。 表現良好且符合桌面環境規範和期望的應用程序是那些感覺專業並讓用戶相信您知道自己在做什麼的應用程序。

無論您為什麼要創建桌面文件,在所有情況下如何創建都是一樣的。

桌面文件的構建

桌面文件是純文本文件。 它們可以使用任何文本編輯器創建。 它們被賦予與它們所代表的應用程序相同的名稱,並且按照慣例具有“.desktop”擴展名。

桌面文件可能包含註釋、組標題和鍵值對。

  • 評論:評論以井號“ # ”開頭。
  • 組標題:組標題充當部分標題。 它們用括號“[]”括起來。 它們用於將相關的鍵值對組合在一起。 唯一強制性的組標題是“[桌麵條目]”。
  • 鍵值對:通過向命名元素或“鍵”提供值來輸入設置。 例如, Type=Application是一個鍵值對。 “類型”是鍵,“應用程序”是值。

一個有效的例子

在開始之前,請確保應用程序運行。 打開終端窗口,然後啟動應用程序。 如果它運行,那就太好了。 您可以繼續製作桌面文件。 如果應用程序沒有運行,那麼無論你在桌面文件中放什麼,它都不會運行。

在您考慮通過桌面文件添加另一層抽象之前,您需要糾正阻止應用程序啟動的任何原因。

我們正在使用的程序有一個名為taf的可執行文件,位於“/usr/local/bin/taf/”目錄中。 我們將啟動應用程序以確保它啟動時沒有任何問題。

 ./taf 

啟動 taf 應用程序

該程序啟動得很好。

作為 GNOME GTK 應用程序運行的 taf 應用程序

這個簡單的測試會產生有用的知識。 如果我們在嘗試從桌面文件啟動應用程序時遇到困難,這意味著問題一定與桌面文件有關,而不是應用程序本身。

我們可以在任何地方創建桌面文件,但要使用它,我們需要將它複製到兩個地方之一。

  • 如果您是唯一將使用該應用程序的人,請將您的桌面文件複製到“~/.local/share/applications”目錄。
  • 如果您希望所有用戶都能使用該應用程序,請將您的桌面文件複製到“/usr/share/applications/”目錄。

一個完整的桌面文件不必包含太多信息。 這是我們為taf應用程序創建的桌面文件。 它被稱為“taf.desktop”。

 [桌面入口]
名稱=文本冒險框架
GenericName=GDL Adventure 腳本解釋器
Comment=遊戲描述語言解釋器
版本=1.0
執行=/usr/local/bin/taf/taf
路徑=/usr/local/bin/taf/
圖標=/usr/local/bin/taf/taf_icon.png
終端=假
類型=應用
類別=GNOME;GTK;遊戲;

這可以用作您自己的桌面文件的模板。 請記住為您正在為其創建桌面文件的應用程序使用可執行文件的名稱,並修改目錄路徑以適應。

這就是每一行的意思。

  • [Desktop Entry] :此行將文件標識為桌面文件。 即使文件命名錯誤並且沒有“.desktop”擴展名,它也應該被識別並作為桌面文件處理。
  • Name :應用程序的完整標題,而不是可執行文件的名稱。 當它顯示在桌面環境中時,它將顯示在應用程序圖標下方。 它也是將在工具提示中使用的文本。
  • GenericName :這是應用程序類型的一般描述。 如果有適用的通用術語,例如 Web 瀏覽器、IDE 或文字處理器,您可以使用它。
  • 註釋:這旨在提供附加信息以補充“名稱”和“通用名稱”鍵值對。
  • 版本:此文件符合的桌面文件規範的版本。
  • Exec :這可能是可執行文件的名稱,或可執行文件的完整路徑,包括可執行文件的名稱。
  • Path :這是啟動應用程序的目錄的路徑。 它是啟動時應用程序的工作目錄。
  • 圖標:應用程序的圖標。 此圖標用於應用程序搜索結果以及將應用程序添加到擴展塢或其他啟動器時。
  • 終端:指示應用程序是否在終端窗口中運行。
  • 類型:對於常規應用程序,這將始終是“應用程序”。
  • 類別:此值應以分號“ ; ” 因為它有一個列表。 該列表包含應用程序可能在菜單中列出的類別。

每次您修改實時桌面文件時(位於“~/.local/share/applications”或“/usr/share/applications/”中的文件),您都需要註銷並再次登錄,以查看您的更改有何影響製成。 為避免這種情況,您可以使用update-desktop-database命令。 當你這樣做時,你需要使用sudo

 sudo 更新桌面數據庫

更新桌面文件數據庫

還有一個實用程序可以檢查您的桌面文件是否正確。 如果它檢測到任何語法或其他錯誤,它將向您報告。 我們將在文件的“類別”行中添加“應用程序”一詞,並檢查它。

我們將最後一行更改為:

 類別=GNOME;GTK;遊戲;應用程序;

這應該會引發錯誤,因為“應用程序”類別已被棄用。

 桌面文件驗證 taf.desktop 

檢查桌面文件是否有錯誤

驗證器向我們發出警告,“應用程序”類別不再是“類別”列表中的可接受值。

使用您的桌面文件

如果該應用程序僅供您使用,請將桌面文件複製到“~/.local/share/applications”目錄。 如果允許所有用戶使用該應用程序,請將桌面文件複製到“/usr/share/applications/”目錄。

我們將把它複製到“/usr/share/applications/”目錄。

 sudo cp taf.desktop /usr/share/applications 

將桌面文件複製到 /usr/share/applications 目錄

我們還將確保讀取我們的新桌面文件並將其元數據添加到數據庫中。

 sudo 更新桌面數據庫

更新桌面文件數據庫

“Super”鍵通常位於左側的“Ctrl”和“Alt”鍵之間。 在 GNOME 中按“Super”鍵進入應用程序搜索。 因為我們的桌面文件描述了一個名為“Text Adventure Framework”的應用程序,輸入“text”作為搜索線索就足以在搜索結果中顯示應用程序的圖標。

單擊圖標啟動應用程序。

更新桌面文件數據庫

該應用程序已很好地集成到桌面環境中。 它的圖標在運行時正確顯示在 Dock 中。 指向該圖標會顯示一個包含應用程序全名的工具提示。

單擊圖標顯示窗口預覽視圖,顯示應用程序已打開的窗口。

右鍵單擊應用程序圖標會生成一個上下文菜單。 選擇“添加到收藏夾”選項將應用程序固定到 Dock。

突出顯示“固定到收藏夾”選項的上下文菜單

應用程序圖標移動到分隔線上方,並成為 Dock 上的永久圖標。 即使應用程序未運行,該圖標也會出現。

去原生

用戶希望能夠使用桌面應用程序做某些事情。 他們希望該應用程序能夠列在搜索結果中。 他們會假設它可以固定到啟動器和擴展塢,並具有表現良好的本機應用程序的其他優點。 數量驚人的這些交互是由桌面文件控制的。

如果您發現自己正在處理一個缺少桌面文件的應用程序,您現在可以為它創建一個。 它肯定比每次手動啟動應用程序都要好。

相關:如何使用鍵盤快捷鍵在 Ubuntu 中提高工作效率