一、图标
1.注意图标不要太大,否则显示不出来。 256x256就够了
2.UOS图标在desktop文件(桌面)中连接,abc.desktop文件:
[Desktop Entry]
Categories=Application;Development;
Comment=客户端
Encoding=UTF-8
Exec=/opt/apps/abc/files/bin/abc.sh %f
Icon=/opt/apps/abc/entries/icons/hicolor/256x256/abc.png #此处写图标路径,方便找
name=abc
StartupNotify=false
Terminal=false
Type=Application
X-Deepin-Vendor=user-custom
3.下边任务栏图标:需要将desktop复制一份到:/usr/share/applications/abc.desktop.
检查一下有没有,没有的话需要在制作安装包时在脚本中指定这个复制。
二、文件与程序关联并
(1)需求:双击某一类文件时可以自动打开我的应用程序,并且让文件显示应用程序的图标(例如文件后缀为.ab)
(2)linux系统有一个mime记录文件类型,刚好可以用来实现此需求。
参考:
总结:
图标:
xdg-mime: https://linux.die.net/man/1/xdg-mime
https://specifications.freedesktop.org/shared-mime-info-spec/latest/
(3)解决:
- 写一个xml文件(这个是用于告诉mime我有一个新的文件类型),名为:程序名-文件后缀.xml(例如:office-docx.xml),填写如下内容,然后将其放到你放程序的同目录下(我以程序名abc,文件后缀ab为例)
第三行(type)是文件类型,我的ab属于application类,也有别的类型如text,可以去/usr/share/mime/globs中查看,第5行是文件要用的图标的名字,
<?xml version="1.0"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="application/ab">
<comment>File for YeecohReader</comment>
<generic-icon name="application-x-ab"/>
<glob pattern="*.ab"/>
</mime-type>
</mime-info>
2.在debian文件夹(上篇博文提到的)中新建一个postinst文件(这是deb包能识别的一个脚本文件,无后缀名),在其中填写:
#!/bin/bash
xdg-mime install /opt/apps/abc/files/abc-ab.xml #上面那个xml文件
xdg-mime default /opt/apps/yeecohreader/entries/applications/yeecohreader.desktop application/rxf #将文件与应用联系起来
#放置图片
xdg-icon-resource install --size 16 --context mimetypes /opt/apps/abc/entries/icons/hicolor/16x16/mimetypes/abc.png application-x-rxf
xdg-icon-resource install --size 32 --context mimetypes /opt/apps/abc/entries/icons/hicolor/32x32/mimetypes/abc.png application-x-rxf
xdg-icon-resource install --size 48 --context mimetypes /opt/apps/abc/entries/icons/hicolor/48x48/mimetypes/abc.png application-x-rxf
xdg-icon-resource install --size 64 --context mimetypes /opt/apps/abc/entries/icons/hicolor/64x64/mimetypes/abc.png application-x-rxf
xdg-icon-resource install --size 128 --context mimetypes /opt/apps/abc/entries/icons/hicolor/128x128/mimetypes/abc.png application-x-rxf
xdg-icon-resource install --size 256 --context mimetypes /opt/apps/abc/entries/icons/hicolor/256x256/abc.png application-x-rxf
gtk-update-icon-cache /usr/share/icons/hicolor/ #给文件类型添加图标
update-mime-database -V /usr/share/mime/ #更新文件类型数据库
update-mime-database /usr/share/mime/
update-desktop-database /usr/share/applications/
上面几行相近的语句是把不同大小的文件图标放到合适的位置,并将名字改为:application-x-ab,与xml中的名字对应,改图片大小的网站:改图宝
很重要! 在desktop文件的最后加上下面这句语句,用于让应用程序知道它与文件关联。另外,在desktop问价中exec那一行的后面要加上:%U或%F或%f,这样安装后的应用程序就可以出现在文件的“打开方式”列表里了
MimeType=application/ab
然后重新生成deb包,再安装就会发现文件有图标了,也能点击文件进入程序了