红联Linux门户
Linux帮助

linux中的程序启动器

发布时间:2007-12-06 00:28:35来源:红联作者:Conversion
借用windows的一个概念,那就是快捷方式,linux的程序启动器和这个东西,有点相同,也有点不同。同是都是将应用程序用张小图标表示起来,然后用鼠标双击即可搞定。不同的地方就往下看吧。

Desktop Entry 文件是 Linux 桌面系统中用于描述程序启动配置信息的文件.可以到其官方网站查看下官方的内容:http://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html

Desktop Entry 文件以".desktop"为后缀名。以 Linux GNOME 桌面系统为例,用户打开应用程序浏览器后(上图)会看见很多应用程序快捷方式。事实上,每个应用程序快捷方式都和一个 Desktop Entry 文件相对应。这些 Desktop Entry 文件通常被存放在 /usr/share/applications/ /opt/gnome/share/applications/ 等目录下。从文件浏览器进入这些目录,点击相应的 Desktop Entry 文件同样可以启动相对应的应用程序。

假设当前"/usr/share/applications/"目录下有一文件"gaim.desktop",用任意文件编辑软件(如 vi 或 gedit)打开"gaim.desktop",将得到如下内容:[code][Desktop Entry]
Encoding=UTF-8
Name=Gaim Internet Messenger
Name[ar]=جايم مراسل الانترنت
Name[ca]=Missatger d'Internet Gaim
Name[ca@valencia]=Missatger d'Internet Gaim
Name[cs]=Gaim Internet Messenger
Name[da]=Gaim - internet beskeder
Name[de]=Gaim Internet-Sofortnachrichtendienst
Name[dz]=གེམ་ ཨིན་ཊར་ནེཊི་འཕྲིན་སྐྱེལ་པ།
Name[en_GB]=Gaim Internet Messenger
Name[eo]=Gaim Interreta Mesaĝilo
Name[es]=Gaim - cliente de mensajería de Internet
Name[et]=Gaim - Interneti sõnumivahetus
Name[eu]=Gaim interneteko mezularitza
Name[fa]=پیغام‌رسان اینترنتی گِیم
Name[fi]=Gaim-pikaviestin
Name[fr]=Gaim Messagerie Internet
Name[gl]=Gaim - Mensaxería na Internet
Name[he]=גיים למסרים באינטרנט
Name[hu]=Gaim azonnali üzenő
Name[it]=Gaim Internet Messenger
Name[ja]=Gaim インタ?ネット・メッセンジャ?
Name[ko]=게임 메신저
Name[lt]=Interneto pokalbių programa Gaim
Name[nb]=Gaim lynmeldingsklient
Name[nl]=Gaim - Expresberichten
Name[pl]=Komunikator Internetowy Gaim
Name[pt]=Mensageiro Internet Gaim
Name[pt_BR]=Mensageiro da Internet Gaim
Name[ro]=Mesagerul Gaim
Name[ru]=Gaim - клиент обмена мгновенными сообщениями
Name[sk]=Gaim Internet Messenger
Name[sl]=Spletni sel Gaim
Name[sq]=Lajmësjellësi Internet Gaim
Name[sv]=Gaim Internet Messenger
Name[th]=Gaim โปรแกรมข้อความด่วน
Name[zh_CN]=Gaim 互联网通讯程序
Name[zh_TW]=Gaim ?路即?通
GenericName=Internet Messenger
GenericName[ar]=مراسل الانترنت
GenericName[ca]=Missatger d'Internet
GenericName[ca@valencia]=Missatger d'Internet
GenericName[cs]=Internet Messenger
GenericName[da]=Internet beskeder
GenericName[de]=Internet-Sofortnachrichtendienst
GenericName[dz]=ཨིན་ཊར་ནེཊི་འཕྲིན་སྐྱེལ་པ།
GenericName[en_GB]=Internet Messenger
GenericName[eo]=Interreta Mesaĝilo
GenericName[es]=Cliente de mensajería de Internet
GenericName[et]=Interneti sõnumivahetus
GenericName[eu]=Interneteko mezularitza
GenericName[fa]=پیغام‌رسان اینترنتی
GenericName[fi]=Pikaviestin
GenericName[fr]=Messagerie internet
GenericName[gl]=Mensaxería na Internet
GenericName[he]=למסרים באינטרנט
GenericName[hu]=Azonnali üzenetküldés
GenericName[it]=Internet Messenger
GenericName[ja]=インタ?ネット・メッセンジャ?
GenericName[ko]=메신저
GenericName[lt]=Pokalbiai internete
GenericName[nb]=Lynmeldingsklient
GenericName[nl]=Expresberichten
GenericName[pl]=Komunikator Internetowy
GenericName[pt]=Mensageiro Internet
GenericName[pt_BR]=Mensageiro da Internet
GenericName[ro]=Mesagerie instant
GenericName[ru]=Клиент обмена мгновенными сообщениями
GenericName[sk]=Internet Messenger
GenericName[sl]=Spletni sel
GenericName[sq]=Lajmësjellës Internet
GenericName[sv]=Meddelandeklient
GenericName[th]=โปรแกรมข้อความด่วน
GenericName[zh_CN]=互联网通讯程序
GenericName[zh_TW]=?路即?通
Comment=Send instant messages over multiple protocols
Comment[ar]=أرسل رسائل قصيرة عبر بروتوكلات متعددة
Comment[ca]=Envieu missatges instantanis en múltiples protocols
Comment[ca@valencia]=Envieu missatges instantanis en múltiples protocols
Comment[cs]=Posílat instant message různými protokoly
Comment[da]=Send beskeder over flere protokoller
Comment[de]=Sendet Sofortnachrichten über mehrere Protokolle
Comment[dz]=གནད་སྤེལ་ལམ་ལུགས་སྣ་མང་གུ་ལུ་ འཕྲལ་མྱུར་འཕྲིན་དོན་ཚུ་གཏང་།
Comment[el]=Αποστολή άμεσων μηνυμάτων με τη χρήση πολλαπλών πρωτοκόλλων
Comment[en_GB]=Send instant messages over multiple protocols
Comment[eo]=Sendu tujmesaĝojn per pluraj protokoloj
Comment[es]=Cliente de mensajería instantánea multiprotocolo
Comment[et]=Välksõnumite saatmine mitmete protokollide kaudu
Comment[eu]=Bidali berehalako mezuak hainbat protokoloetan
Comment[fa]=ارسال پیغام اینترنتی با قراردادهای متعدد
Comment[fi]=Lähetä pikaviestejä monilla eri yhteyskäytännöillä
Comment[fr]=Envoie des messages instantanés en utilisant divers protocoles
Comment[gl]=Envía mensaxes instantáneas a través de múltiples protocolos
Comment[he]=מאפשרת לשלוח הודעות מיידיות דרך מספר רב של פרוטוקולים
Comment[hu]=Azonnali üzenetek küldése több protokoll használatával
Comment[it]=Client multiprotocollo per messaggi immediati
Comment[ja]=?数のプロトコルを介してインスタント・メッセ?ジを送信します
Comment[ko]=다중 프로토콜 메신저
Comment[lt]=Bendrauti keliais interneto pokalbių protokolais
Comment[nb]=Send lynmeldinger over flere protokoller
Comment[nl]=Multi-protocol programma voor expresberichten
Comment[pl]=Komunikator internetowy obsługujący kilka protokołów
Comment[pt]=Envie mensagens instantâneas sobre vários protocolos
Comment[pt_BR]=Envie mensagens instantâneas através de múltiplos protocolos
Comment[ro]=Trimiteţi mesaje instant prin orice protocol IM
Comment[ru]=Обмен мгновенными сообщениями с использованием множества протоколов
Comment[sl]=Pošlji neposredna sporočila prek več protokolov
Comment[sq]=Dërgoni mesazhe të atypëratyshëm protokollesh të ndryshëm
Comment[sv]=Sänder snabbmeddelande över många protokoll
Comment[th]=ส่งข้อความด่วนหลายรูปแบบ
Comment[zh_CN]=通过多种协议发送即时消息
Comment[zh_TW]=透?多?通??定?送即??息
Exec=gaim
Icon=gaim.png
StartupNotify=true
Terminal=false
Type=Application
Categories=Network;InstantMessaging;
X-Ubuntu-Gettext-Domain=gaim
X-Ubuntu-Gettext-Domain=gaim

Desktop Entry 文件的内容是由若干{关键字,数值}配对的 Entry 组成的.

关键字"Version":[可选] 该数值指定了当前 Desktop Entry 文件所遵循的 Desktop Entry 文件标准版本。
关键字"Encoding":[1.0 版本不推荐使用] 该数值指定了当前 Desktop Entry 文件中特定字符串所使用的编码方式。尽管Desktop Entry 文件标准 1.0 不再推荐使用该关键字,但由于历史原因该关键字仍然广泛出现在现有的 Desktop Entry 文件中。
关键字"Name":[必选]
该数值指定了相关应用程序的名称。比如在清单1中关键字"Name"的数值是"Quick Start Tour"。打开文件浏览器,进入"/usr/share/applications"目录,就可以看见"cbt.desktop"文件所定义的快捷方式的显示样式,如图2所示。其中,快捷方式的显示名称由关键字"Name"的数值所决定,快捷方式所使用的图标由下文中将要介绍的关键字"Icon"的数值来决定
关键字"GenericName":[可选]
该数值指定了相关应用程序的通用名称。比如在清单1中关键字"GenericName"的数值是"User Tutorial"。
关键字"Comment":[可选]
该数值是对当前Desktop Entry的简单描述。
关键字"Type":[必选]
关键字"Type"定义了Desktop Entry文件的类型。常见的"Type"数值是"Application"和"Link"。"Type = Application"表示当前Desktop Entry文件指向了一个应用程序;而"Type = Link"表示当前Desktop Entry文件指向了一个URL (Uniform Resource Locator)。
关键字"Exec":[可选]
关键字"Exec"只有在"Type"类型是"Application"时才有意义。"Exec"的数值定义了启动指定应用程序所要执行的命令,在此命令是可以带参数的。在本例中,关键字"Exec"的数值是字符串"gnome-open /usr/share/doc/manual/sled-gnome-cbt_en/index.html"。在shell中输入该字符串并按回车键同样可以启动指定应用程序。
关键字"URL":[可选]
关键字"URL"只有在"Type"类型是"Link"时才有意义.
关键字"Icon":[可选]
该数值定义了当前Desktop Entry文件在应用程序浏览器或是在文件浏览器中所显示的图标。如果关键字"Icon"的数值是以绝对路径的格式给出,那么其数值所指定图标文件将被使用;反之,Linux系统将使用"Icon Theme Specification"[2]在系统指定图标目录下定位所需要使用的图标文件。比如在本例中关键字"Icon"的数值是"gaim",它实际对应着系统指定图标目录下的图片文件"gaim.png"。
关键字"StartupNotify":[可选]
关键字"StartupNotify"的数值是布尔值(true 或是 false)。该关键字只有在"Type"类型是"Application"时才有意义。其数值的含义由规范"Startup Notification Protocol Specifications"[3]定义,在此不再详述。
关键字"Terminal":[可选]
和"StartupNotify"一样,关键字"StartupNotify"的数值也是布尔值,并且该关键字只有在"Type"类型是 "Application"时才有意义。其数值指出了相关应用程序(即关键字"Exec"的数值)是否需要在终端窗口中运行。本文将在下一节中给出关键字 "Terminal"的具体使用方法。
关键字"Categories":[可选]
关键字"Categories"只有在"Type"类型是"Application"时才有意义。"Categories"的数值指出了相关应用程序在菜单中显示的类别。具体菜单分类由规范"Desktop Specification Menu"具体定义[4]。
关键字"OnlyShowIn"和"NotShowIn":[可选]
这两个关键字分别定义了当前Desktop Entry是否在特定Linux 桌面系统(例如:Linux GNOME 或 Linux KDE)下显示(由"OnlyShowIn"定义),或不显示(由"NotShowIn"定义)。
现在,就简单的复制一个原来的文件,修改一下。

cp /usr/share/applications/gaim.desktop /home/lee/Desktop
vi gaim修改后如下:
[Desktop Entry]
Encoding=UTF-8
Name=我的博客
Exec=firefox http://johnwoolee.cublog.cn
Icon=gaim.png
StartupNotify=true
Terminal=false
Type=Application
Categories=Network;InstantMessaging;
X-Ubuntu-Gettext-Domain=gaim
X-Ubuntu-Gettext-Domain=gaim[/code]这样就建立了一个到我的博客地址的一个桌面快捷方式。

这个会解决一些,我们无法用脚本bash实现双击鼠标的个案。也许还有其他的好处。配置文件很清晰明了。
文章评论

共有 0 条评论