linux桌面入口文件(.desktop)规范
文章目錄
- 介紹
- 文件命令
- 桌面文件ID
- 文件的基本格式
- 注釋
- 組
- 項
- 可能的值類型
- 鍵的本地化值
- 正式的桌面文件Key
- Exec Key
- D-Bus激活
- A.示例桌面條目文件
介紹
KDE和GNOME桌面環(huán)境都采用了類似的“桌面入口”格式,或描述特定程序如何啟動的配置文件,它在菜單中的顯示方式等。統(tǒng)一標(biāo)準(zhǔn)對更大的社區(qū)有利。所有各方都同意這樣做,即兩個環(huán)境之間的互操作,以及實現(xiàn)規(guī)范的任何其他環(huán)境變得更加簡單。
文件命令
桌面入口文件應(yīng)具有.desktop 擴(kuò)展名,但文件Type Directory應(yīng)具有 .directory擴(kuò)展名。
對于應(yīng)用程序,.desktop擴(kuò)展名之前的桌面文件名稱 部分應(yīng)該是有效的 D-Bus知名名稱。這意味著它是由點分隔的非空元素序列,不能數(shù)字開頭,并且每個元素僅包含來自集合的字符[A-Za-z0-9_-]:ASCII字母,數(shù)字,短劃線和下劃線。
桌面入口的名稱應(yīng)遵循“反向DNS”約定:它應(yīng)以應(yīng)用程序作者控制的反向DNS域名開頭,小寫。域名后面應(yīng)該跟應(yīng)用程序的名稱,通常用大駝峰編寫。例如,命令為:org.example.FooViewer.desktop。
允許使用包含破折號的已知名稱,但不建議這樣做,因為在反向DNS名稱的某些相關(guān)用途中不允許使用破折號,例如D-Bus對象路徑和接口名稱以及Flatpak應(yīng)用程序ID。如果作者的域名包含破折號,建議將其替換為下劃線:這不會導(dǎo)致歧義,因為DNS域名中不允許使用下劃線。
如果作者的域名包含以數(shù)字開頭的標(biāo)簽(在D-Bus知名名稱中不允許),建議在桌面條目名稱的該元素前加下劃線。例如,7-zip.org可能會發(fā)布一個名為的應(yīng)用程序 org._7_zip.Archiver。
桌面文件ID
表示應(yīng)用程序的每個桌面入口由其桌面文件ID標(biāo)識,該文件ID基于其文件名。
要確定桌面文件的ID,請創(chuàng)建相對于安裝桌面文件的$XDG_DATA_DIRS組件的完整路徑,刪除“applications /”前綴,然后將“/”變?yōu)椤?- ”。
例如,/usr/share/applications/foo/bar.desktop的桌面文件ID為foo-bar.desktop。
例如,$XDG_DATA_DIRS包含默認(rèn)路徑的/usr/local/share:/usr/share,然后 /usr/local/share/applications/org.foo.bar.desktop與 /usr/share/applications/org.foo.bar.desktop具有相同的桌面文件ID org.foo.bar.desktop,但只有第一個將被使用。
如果同時foo-bar.desktop和foo/bar.desktop存在,這是未闡明的。
如果桌面文件未安裝在$ XDG_DATA_DIRS的applications文件夾中,則它們沒有ID。
文件的基本格式
.desktop文件以UTF-8編碼。每一行由換行符分隔。
基本目錄是:$XDG_DATA_DIRS/desktop-directories/
注釋
以#開頭的行為注釋
組
第一個組必須為[Desktop Entry],后面的Key=Value都是這個組,直到遇到下一個組
項
Key=Value
- =兩邊不能有空格
- Key只能用[A-Za-z0-9]
- 不同組的Key可以同名
可能的值類型
公認(rèn)的Value類型有 string,localestring,boolean 和 numeric
localestring 為用戶可顯示的字符串,用UTF-8編碼
鍵的本地化值
Name=Foo Name[sr_YU]=... Name[sr@Latn]=... Name[sr]=...優(yōu)先級從左到右:lang_COUNTRY@MODIFIER, lang_COUNTRY, lang@MODIFIER, lang, default value
正式的桌面文件Key
- 當(dāng)Type=Application時Terminal才有效
- 當(dāng)Type=Link時URL才有效
| Type | Application (type1), Link (type2), Direcory (type3) | string | Yes | |
| Version | 版本,例如1.1 | string | No | 1-3 |
| Name | 應(yīng)用程序的特定名稱,例如“Mozilla”。 | localestring | Yes | 1-3 |
| GenericName | 應(yīng)用程序的通用名稱,例如“Web瀏覽器”。 | localestring | No | 1-3 |
| NoDisplay | 不在菜單中顯示, 但可以與MIME類型相關(guān)聯(lián) | boolean | No | 1-3 |
| Comment | 應(yīng)用描述 | ocalestring | No | 1-3 |
| Icon | 要么絕對路徑,要么符合圖標(biāo)主題規(guī)范 | localestring | No | 1-3 |
| Hidden | 是否隱藏,等同于不存在的文件 | boolean | No | 1-3 |
| OnlyShowIn, NotShowIn | 一般不用此字段 | boolean | No | 1-3 |
| DBusActivatable | DBus激活,默認(rèn)false。參閱D-Bus激活。應(yīng)包含Exec行,實現(xiàn)兼容 | boolean | No | |
| TryExec | 如果文件不存在, 則忽略該文件,并不在菜單中出現(xiàn) | string | No | 1 |
| Exec | 執(zhí)行路徑 。參閱Exec Key | string | No | 1 |
| Path | 當(dāng)Type=Application時,程序運行的目錄 | string No | 1 | |
| Terminal | 程序是否在終端窗口中運行。 | boolean | No | 1 |
| Actions | 為其他組提供接口,比如Action=Gallery;,那么其他組就為[Desktop Action Gallery] | string(s) | No | 1 |
| MimeType | 此應(yīng)用支持打開的類型,具體類型可以百度 | string(s) | No | 1 |
| Categories | 參閱桌面菜單規(guī)范 | string(s) | No | 1 |
| Implements | 默認(rèn)情況下,桌面文件不實現(xiàn)任何接口。參閱接口 | string(s) | No | |
| Keywords | 用于搜索,不應(yīng)該是Name或者為多余的值 GenericName。 | localestring(s) | No | 1 |
| StartupNotify | 如果不存在,則合理的處理取決于實現(xiàn)(假設(shè)為false,使用StartupWMClass等)。參閱啟動通知協(xié)議規(guī)范 | boolean | No | 1 |
| StartupWMClass | 一般跟Name相同即可 | string | No | 1 |
| URL | 只適用于Type=Link | string | Yes | 2 |
Exec Key
| %f | %f指向臨時文件。用于不了解URL語法的程序。 |
| %F | 文件列表。用于可以一次打開多個本地文件的應(yīng)用程序。每個文件作為單獨的參數(shù)傳遞給可執(zhí)行程序。 |
| %u | 單一的URL或者本地文件 |
| %U | %u的復(fù)數(shù) |
| %i | 如果Icon 為空,不應(yīng)該填寫此參數(shù)。一般也不用 |
| %c | Name鍵中的已翻譯名稱。 |
| %k | 桌面文件的位置 要么為URL,要么是本地文件名,要么是為空,不知道干啥的,一般不用 |
命令行最多可包含一個%f,%u,%F或%U字段代碼。如果應(yīng)用程序不應(yīng)打開任何文件,則必須從命令行中刪除%f,%u,%F和%U字段代碼并將其忽略。
D-Bus激活
文件名必須為,比如:org.example.FooViewer.desktop
D-Bus的XML格式
A.示例桌面條目文件
[Desktop Entry] Version=1.0 Type=Application Name=Foo Viewer Comment=The best viewer for Foo objects available! TryExec=fooview Exec=fooview %F Icon=fooview MimeType=image/x-foo; Actions=Gallery;Create;[Desktop Action Gallery] Exec=fooview --gallery Name=Browse Gallery[Desktop Action Create] Exec=fooview --create-new Name=Create a new Foo! Icon=fooview-new原文鏈接:https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
總結(jié)
以上是生活随笔為你收集整理的linux桌面入口文件(.desktop)规范的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站空间和独享主机的区别是什么
- 下一篇: I.MX6 Linux mipi配置数据