linux應用圖標

1. 簡介

linux桌面環境下生成應用圖標和應用菜單項的方式是使用一種Desktop Entry文件。在應用菜單中顯示的應用都有對應的Desktop Entry, 其文件後綴名爲.desktop,一般位於$XDG_DATA_DIRS/applications/目錄下。其中$XDG_DATA_DIRS是一個環境變量,儲存了放置應用程序.desktop文件的目錄.

january@january-PC:~$ echo $XDG_DATA_DIRS
/home/january/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share

注意.desktop文件在$XDG_DATA_DIRS中目錄的applications目錄下, 在某些系統中$XDG_DATA_DIRS變量可能爲空

2. 顯示一個可啓動的圖標

[Desktop Entry]
Type=Application
Name=Android Studio
Icon=/home/january/applications/android-studio/bin/studio.png
Exec=/home/january/applications/android-studio/bin/studio.sh
Terminal=false

[Desktop Entry]組名稱,在規範文檔中說明了必須放在所有屬性前,其前面只能註釋

Type表示Desktop Entry類型,有Application , LinkDirectory 三種,使用Application表示可執行文件

Name是圖標下邊顯示的名稱

Icon圖標文件的路徑,推薦使用png

Exec啓動命令,一般爲可執行文件的路徑,可以帶有參數

Terminal表示是否在終端中運行

3. 稍微詳細一點

 # 註釋(comments)
[Desktop Entry]
Type=Application
Name=Android Studio
Version=3.2.1
GenericName=Android IDE
Comment=安卓集成開發環境
Categories=Development;IDE;
Icon=/home/january/applications/android-studio/bin/studio.png
Exec=/home/january/applications/android-studio/bin/studio.sh
Path=/home/january/applications/android-studio/bin
Terminal=false

使用#開頭的行來表示註釋
Version表示版本

GenericName表示軟件的通用名稱,比如瀏覽器,輸入法,殺毒軟件之類

Categories指定軟件的類型,比如辦公軟件,教育軟件,開發軟件等等,會被系統用於分類顯示

Comment用於對軟件功能進行進一步描述

Path指定程序運行的工作路徑

更詳細的說明請參考Desktop Entry Specification

PS.desktop文件不需要可執行權限來啓動程序,推薦將權限設置爲644

4. 添加自己的應用到系統應用列表中

使用xdg-desktop-menu命令來將自己編寫的Desktop entry文件添加到系統應用列表,使用xdg-desktop-icon來將自己的Desktop entry文件添加到桌面上。

# 安裝到應用列表
# 我們一般不會填vendor屬性,使用novender選項
xdg-desktop-menu install --novendor myDesktopEntry.desktop
# 卸載
xdg-desktop-menu uninstall myDesktopEntry.desktop

# 安裝到桌面
xdg-desktop-icon install --novendor myDesktopEntry.desktop
# 卸載
xdg-desktop-icon uninstall myDesktopEntry.desktop

5. 以圖爲證

我沒有設置圖標,所以圖標是默認圖標
添加到應用列表添加到桌面

4. 參考資料

Desktop Entry Specification

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章