Desktop Entry創建Linux程序的快捷方式

1.Desktop ?Entry文件

在windows操作系統里,打開程序可以通過點桌面上的快捷方式文件打開。在Linux系統上,程序的打開快捷方式文件是由Desktop Entry文件來描述的,它描述了程序的啟動配置信息。Desktop Entry文件標準是由FreeDesktop.org(http://freedesktop.org/wiki/)制定的,目前最新的版本是Version 1.2alpha。我們用1.0就好了。Desktop Entry文件以".desktop"為后綴名。這些Desktop ?Entry文件通常會放在/usr/share/applications/或/opt/gnome/share/applications/等目錄下,但其實放哪里都可以。用戶打開應用程序瀏覽器后會看見很多應用程序快捷方式,每個快捷方式都和一個Desktop ?Entry文件相對應。點擊相應Desktop ?Entry文件同樣可以啟動相對應的應用程序。一個DesktopEntry文件的樣子大概如下:

[Desktop Entry]

Version = 1.0

Encoding = UTF-8

Name = Quick Start Tour

GenericName = User Tutorial

Comment = help you learn how to use the Desktop

Exec = gnome-open

/usr/share/doc/manual/sled-gnome-cbt_en/index.html

Icon = cbt

StartupNotify = true

Terminal = false

Type = Application

Categories = GNOME;Application;Documentation;

OnlyShowIn = GNOME;

X-SUSE-translate = true

Name[cs] = Rychlá prohlídka systému

Comment[cs] = V?ukov? program seznamující

u?ivatele se základy pracovního prost?edí

GenericName[cs] = U?ivatelsk? tutoriál

Name[hu] = Rendszerbemutató

Comment[hu] = A munkaállomés használatát

bemutató segédlet

GenericName[hu] = Felhasználói segédlet

2.Desktop ?Entry文件結構

Desktop Entry文件以字符串"[Desktop Entry]"開始。Desktop Entry文件的內容是由若干“key=value”的鍵值對組成的。key分為必選和可選兩種:必選的必須在.desktop文件中被定義;而可選則不必。下面是關于一些重要關鍵字的說明:

Version:可選,指定了當前Desktop Entry文件所遵循的Desktop Entry文件標準版本。

Name:必選,指定了快捷方式顯示的名稱。

Icon:[可選]指定義了快捷方式所使用的圖標。

Icon如果指定的圖標是以絕對路徑的格式給出,那么所指定圖標文件將被使用;如果只給出了圖標的名稱,那么Linux系統將使用"IconTheme Specification",也就說從系統指定的主題下去找這個圖標,這些主題的圖標放在/usr/share/icons的對應的主題下,如果系統沒有指定主題,那么就會加載hicolor主題下的圖標。原文是這樣說的:

The ?name of the theme that this theme inherits from. If an icon name is not found in the current theme, it is searched for in the inherited theme (and recursively in all the inherited themes).If no theme is specified implementations are required to add the"hicolor" theme to the inheritance tree. An implementation may optionally add other default themes in between the last specified theme and the hicolor theme.

參考:https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-0.9.html

GenericName:[可選]指定了應用程序的通用名稱。如果程序名系:谷歌瀏覽器,那么這個通用的名稱可以系:瀏覽器。有些分類的意思。

Comment:[可選]對當前快捷方式對應的程序的簡單描述。

Type:[必選]指定了Desktop Entry文件的類型。數值可以是"Application"或"Link"。"Type= Application"表示當前Desktop Entry文件指向了一個應用程序;而"Type = Link"表示當前Desktop Entry文件指向了一個URL。

Exec:[可選]只有在"Type"類型是"Application"時才有意義。定義了啟動指定應用程序所要執行的命令,在此命令是可以帶參數的。所執行的命令在shell中輸入并按回車鍵同樣可以啟動指定應用程序。

URL:[可選]只有在"Type"類型是"Link"時才有意義。"URL"的數值定義了該Desktop

Entry文件指向的URL。

StartupNotify:[可選]值只能是true或false,只有在"Type"類型是"Application"時才有意義。用于跟蹤程序的啟動。參考:https://www.freedesktop.org/wiki/Specifications/startup-notification-spec/

Terminal:[可選]數值也是布爾值,只有在"Type"類型是"Application"時才有意義。指出將要運行的程序是否需要在終端窗口中運行

Categories:[可選]只有在"Type"類型是"Application"時才有意義。指出了將要運行的程序在菜單中顯示的類別。參考:https://specifications.freedesktop.org/menu-spec/menu-spec-1.0.html

在關鍵字后加上字符串"[LOCALE]"就可以對該關鍵字進行特定的本地化定義,也就是說根據系統所選的語言去選用相應的鍵值。"LOCALE"的合法取值為:

LOCALE= lang_COUNTRY.ENCODING@MODIFIER

在此,域"_COUNTRY",".ENCODING"和"@MODIFIER"是可以被忽略的。當指定Desktop

Entry文件被解析時,解析器應當根據當前POSIX

locale來正確獲取本地化的關鍵字數值。如前就分別定義了在"cs"和"hu"語言環境下關鍵字"Name","Comment"和"GenericName"的不同值。

下載創建幾個小實例:

如在桌面創建打開百度的快捷方式,我準備了一個baidu.png圖標:

[Desktop

Entry]

Version=1.0

Name=百度一下

Icon=/home/won/Icons/baidu.png

Type=Link

URL=http://www.baidu.com

把這個文件件放在桌面,一點擊,就打開百度了。

再來一個打開androidstudio IDE的:

[Desktop

Entry]

Version=1.0

Name=Android

Studio

Icon=/home/won/Icons/studio.png

Type=Application

Exec=/home/won/Software/android-studio/bin/studio.sh

效果如下:


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容