1.Desktop Entry 是什么?
我们都知道,在Windows里软件在安装的时候都会询问是不是要在开始菜单和桌面创建快捷方式,这样就不用在使用软件的时候去安装目录启动,而是直接去开始菜单点击相应的软件快捷方式即可。在Linux中也有类似的功能:Desktop Entry文件,Linux GNOME等桌面桌面系统就是使用Desktop Entry文件来描述程序的启动与配置信息。
我这里使用的Ubuntu18.14(前两天刚发布就装上了,比起16.04漂亮了不少啊,哈哈),使用下面的命令cd到系统保存Desktop Entry文件的目录
cd /usr/share/applications
ls一下看看application目录下的文件:
如上图所示,Desktop Entry 文件以".desktop"为后缀名,这些文件就描述了Ubuntu18.04上安装的应用程序的启动信息等(非常类似于Win上的开始菜单里的快捷方式)。
打开所有应用程序浏览器(Ubuntu版开始菜单),我们能看到很多应用图标,点击相应图标就能打开这个应用,其实这里的每一个应用图标都对应上图中application目录下的一个“.desktop”文件,举个栗子:只有在/usr/share/applications有一个叫firefox.desktop的配置文件,应用程序浏览器里才会有该软件的图标,我们才能通过应用程序浏览器打开FireFox浏览器。
也就是说,系统会去/usr/share/applications目录下读取“.desktop”文件,然后根据文件配置在应用程序浏览器中添加上启动应用程序的快捷方式。
那么问题来了:
Desktop Entry文件的格式是什么样的?
我自己手动安装的软件会自动出现在这里吗?
2.Desktop Entry文件格式
以firefox浏览器为例,使用cat命令查看下firefox浏览器对应的“.desktop”文件是什么样子的:
cat firefox.desktop
其实就是一堆赋值的信息,重要的一些字段如下:
[Desktop Entry] Version=1.0 Name=Firefox Web Browser Comment=Browse the World Wide Web GenericName=Web Browser Keywords=Internet;WWW;Browser;Web;Explorer Terminal=false X-MultipleArgs=false Type=Application Icon=firefox Categories=GNOME;GTK;Network;WebBrowser; MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall; StartupNotify=trueExec=firefox -new-window Actions=new-window;new-private-window;
其实只看名字也能知道个大概了,Name是名字,Version是版本,Icon是图标~~~
关于全部的字段意义,可以去本文章最后的参考链接中查找,这里就不列举了。
3.手动安装的软件如何添快捷方式加到应用程序管理器
遗憾的是Ubunt上我们自己安装的软件并不会自动添加到应用程序管理器,比如Eclipse,解压出来就能用,根本不像Win一样有一个setup.exe帮你把所有的事情做完了。
那么,怎么添加上呢?
很简单,在/usr/share/applications目录下建立一个“.desktop‘文件就好了。
第一步:如下图,我安装了Eclipse
第二部:在/usr/share/applications目录下新建一个名为”eclipse.desktop“的文件,根据实际内容(软件安装的位置、类型等)填写字段。
这时候,应用浏览器中就会有Eclipse的快捷图标了(右上角)
关于 Categoruies这个字段要说一下:
cat /etc/xdg/menus/application.menu
cd /usr/share/desktop-directories
参考本文最后脚本之家
-----------------------------------
参考链接:
IBM:https://www.ibm.com/developerworks/cn/linux/l-cn-dtef/index.html
脚本之家:http://www.jb51.net/os/RedHat/523235.html
原文地址:https://www.cnblogs.com/feipeng8848/p/8970010.html