关于Linux系统中桌面图标和任务栏图标保持一致的问题

问题

遇到这么一个问题,QT程序开发完毕,打包生成可执行应用程序文件,将其放在某个位置,如/home/kylin/bin/DLModel,并在桌面上写了一个桌面文件DLModel.desktop,并赋予其可执行属性(+x),其内容如下:

[Desktop Entry]

Name=DLModel

Exec=/home/kylin/bin/DLModel

Terminal=false

Type=Application

Icon=/usr/share/icons/hicolor/48x48/apps/logo.png

StartupWMClass=DLModel

Categories=Utility;

其中,Name指定该.desktop文件名;Exec指定要执行的可执行应用文件所在的绝对路径;StartupWMClass指定应用程序在窗口管理器中的窗口类名(WM_CLASS),确保应用程序在启动后,任务栏或应用切换器中显示的图标与 .desktop 文件中的图标一致;Icon指定桌面文件DLModel.desktop的图标,当双击该文件时,任务栏图标显示的应该也是这个图标,但是实际情况是不一致。

注:获取WM_CLASS的方法:(1)在终端输入xprop | grep WM_CLASS命令;(2)鼠标点击应用程序的窗口,终端中会显示信息,如WM_CLASS(STRING) = "dlmodel", "DLModel";(3)将其填入桌面文件DLModel.desktop的 StartupWMClass 字段。

解决办法

也是在网上搜了很长时间,没有太大效果。后来无意间,本来是想将这个桌面文件DLModel.desktop添加为系统自启动,当点击添加系统自启动的时候,弹出来文件选择对话框,初始路径是/usr/share/applications,这个路径下是没有我这个桌面文件DLModel.desktop的,所以我用cp指令把它拷贝进去了。然后,当我双击桌面文件DLModel.desktop的时候,任务栏的图标就跟桌面图标一致了。应该是,任务栏图标会默认与/usr/share/applications中的.desktop文件保持一致,因此,只要把桌面文件DLModel.desktop拷贝到/usr/share/applications即可。

另外,用cp指令拷贝到/usr/share/applications后,DLModel.desktop文件的权限与在桌面上的保持一致,因此会有可执行属性(+x),只要有这个属性,DLModel.desktop文件的后缀.desktop就不会显示,因此,在增加系统自启动的时候,是无法看到并选择DLModel.desktop这个文件的,办法就是把/usr/share/applications中的DLModel.desktop文件权限去掉可执行属性(-x),然后就可以选择添加系统自启动了。当系统启动后,会自动执行对应的可执行应用程序(已亲测)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值