linux应用图标

1. 简介

linux桌面环境下生成应用图标和应用菜单项的方式是使用一种Desktop Entry文件。在应用菜单中显示的应用都有对应的Desktop Entry, 其文件后缀名为.desktop,一般位于$XDG_DATA_DIRS/applications/目录下。其中$XDG_DATA_DIRS是一个环境变量,储存了放置应用程序.desktop文件的目录.

january@january-PC:~$ echo $XDG_DATA_DIRS
/home/january/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share

注意.desktop文件在$XDG_DATA_DIRS中目录的applications目录下, 在某些系统中$XDG_DATA_DIRS变量可能为空

2. 显示一个可启动的图标

[Desktop Entry]
Type=Application
Name=Android Studio
Icon=/home/january/applications/android-studio/bin/studio.png
Exec=/home/january/applications/android-studio/bin/studio.sh
Terminal=false

[Desktop Entry]组名称,在规范文档中说明了必须放在所有属性前,其前面只能注释

Type表示Desktop Entry类型,有Application , LinkDirectory 三种,使用Application表示可执行文件

Name是图标下边显示的名称

Icon图标文件的路径,推荐使用png

Exec启动命令,一般为可执行文件的路径,可以带有参数

Terminal表示是否在终端中运行

3. 稍微详细一点

 # 注释(comments)
[Desktop Entry]
Type=Application
Name=Android Studio
Version=3.2.1
GenericName=Android IDE
Comment=安卓集成开发环境
Categories=Development;IDE;
Icon=/home/january/applications/android-studio/bin/studio.png
Exec=/home/january/applications/android-studio/bin/studio.sh
Path=/home/january/applications/android-studio/bin
Terminal=false

使用#开头的行来表示注释
Version表示版本

GenericName表示软件的通用名称,比如浏览器,输入法,杀毒软件之类

Categories指定软件的类型,比如办公软件,教育软件,开发软件等等,会被系统用于分类显示

Comment用于对软件功能进行进一步描述

Path指定程序运行的工作路径

更详细的说明请参考Desktop Entry Specification

PS.desktop文件不需要可执行权限来启动程序,推荐将权限设置为644

4. 添加自己的应用到系统应用列表中

使用xdg-desktop-menu命令来将自己编写的Desktop entry文件添加到系统应用列表,使用xdg-desktop-icon来将自己的Desktop entry文件添加到桌面上。

# 安装到应用列表
# 我们一般不会填vendor属性,使用novender选项
xdg-desktop-menu install --novendor myDesktopEntry.desktop
# 卸载
xdg-desktop-menu uninstall myDesktopEntry.desktop

# 安装到桌面
xdg-desktop-icon install --novendor myDesktopEntry.desktop
# 卸载
xdg-desktop-icon uninstall myDesktopEntry.desktop

5. 以图为证

我没有设置图标,所以图标是默认图标
添加到应用列表添加到桌面

4. 参考资料

Desktop Entry Specification

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章