日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux桌面入口文件(.desktop)规范

發(fā)布時間:2023/12/8 linux 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux桌面入口文件(.desktop)规范 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 介紹
  • 文件命令
    • 桌面文件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才有效
Key描述Value 類型是否必須?生效的類型
TypeApplication (type1), Link (type2), Direcory (type3)stringYes
Version版本,例如1.1stringNo1-3
Name應(yīng)用程序的特定名稱,例如“Mozilla”。localestringYes1-3
GenericName應(yīng)用程序的通用名稱,例如“Web瀏覽器”。localestringNo1-3
NoDisplay不在菜單中顯示, 但可以與MIME類型相關(guān)聯(lián)booleanNo1-3
Comment應(yīng)用描述ocalestringNo1-3
Icon要么絕對路徑,要么符合圖標(biāo)主題規(guī)范localestringNo1-3
Hidden是否隱藏,等同于不存在的文件booleanNo1-3
OnlyShowIn, NotShowIn一般不用此字段booleanNo1-3
DBusActivatableDBus激活,默認(rèn)false。參閱D-Bus激活。應(yīng)包含Exec行,實現(xiàn)兼容booleanNo
TryExec如果文件不存在, 則忽略該文件,并不在菜單中出現(xiàn)stringNo1
Exec執(zhí)行路徑 。參閱Exec KeystringNo1
Path當(dāng)Type=Application時,程序運行的目錄string No1
Terminal程序是否在終端窗口中運行。booleanNo1
Actions為其他組提供接口,比如Action=Gallery;,那么其他組就為[Desktop Action Gallery]string(s)No1
MimeType此應(yīng)用支持打開的類型,具體類型可以百度string(s)No1
Categories參閱桌面菜單規(guī)范string(s)No1
Implements默認(rèn)情況下,桌面文件不實現(xiàn)任何接口。參閱接口string(s)No
Keywords用于搜索,不應(yīng)該是Name或者為多余的值 GenericName。localestring(s)No1
StartupNotify如果不存在,則合理的處理取決于實現(xiàn)(假設(shè)為false,使用StartupWMClass等)。參閱啟動通知協(xié)議規(guī)范booleanNo1
StartupWMClass一般跟Name相同即可stringNo1
URL只適用于Type=LinkstringYes

Exec Key

Code描述
%f%f指向臨時文件。用于不了解URL語法的程序。
%F文件列表。用于可以一次打開多個本地文件的應(yīng)用程序。每個文件作為單獨的參數(shù)傳遞給可執(zhí)行程序。
%u單一的URL或者本地文件
%U%u的復(fù)數(shù)
%i如果Icon 為空,不應(yīng)該填寫此參數(shù)。一般也不用
%cName鍵中的已翻譯名稱。
%k桌面文件的位置 要么為URL,要么是本地文件名,要么是為空,不知道干啥的,一般不用

命令行最多可包含一個%f,%u,%F或%U字段代碼。如果應(yīng)用程序不應(yīng)打開任何文件,則必須從命令行中刪除%f,%u,%F和%U字段代碼并將其忽略。

D-Bus激活

文件名必須為,比如:org.example.FooViewer.desktop
D-Bus的XML格式

<interface name='org.freedesktop.Application'><method name='Activate'><arg type='a{sv}' name='platform_data' direction='in'/></method><method name='Open'><arg type='as' name='uris' direction='in'/><arg type='a{sv}' name='platform_data' direction='in'/></method><method name='ActivateAction'><arg type='s' name='action_name' direction='in'/><arg type='av' name='parameter' direction='in'/><arg type='a{sv}' name='platform_data' direction='in'/></method></interface>

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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。