【ubuntu_problems】Ubuntu系统下软件打开后与状态栏的图标不重合问题解决

Ubuntu系统下软件打开后与状态栏(dock)的图标不重合问题解决

描述

比如我的Zeal软件和QtCreator(带有ROS plugin),启动时会出现两个图标。
【ubuntu_problems】Ubuntu系统下软件打开后与状态栏的图标不重合问题解决_第1张图片
图中序号1和2是软件的快速启动图标,3是软件启动以后的停靠在dock上的图标。

可以看出来他们俩并不像左上角谷歌浏览器一样,启动后的图标可以重叠在原图标上。

原因

/usr/share/applications/ 路径下的启动文件不存在, 或者存在但和 ~/.local/share/applications/ 路径下的启动文件内容不一致。

有些软件在启动后可能会自动在 ~/.local/share/applications/ 路径下创建启动文件XXX.desktop, 可以先修改此文件, 之后再将此文件的写入权限取消, 这样在之后启动软件时就不会自动创建/恢复它的默认启动文件了。

解决方法

1)检查两个路径下是否存在启动文件, 保留一个即可

如果只有 /usr/share/applications/ 路径下存在启动文件, 直接做完第2)步即可.
如果 ~/.local/share/applications/ 路径下存在启动文件, 这很大可能是软件启动时会自动生成并覆盖的, 保留此文件即可, 做第2)步和第3)步.

2)修改启动文件 XXX.desktop

在启动项文件里添加 StartupWMClass 属性。

我们把鼠标移动到新停靠的图标上,查看它的名称是什么,并把这个名称填入 StartupWMClass 属性内。
【ubuntu_problems】Ubuntu系统下软件打开后与状态栏的图标不重合问题解决_第2张图片

这里可以看出一个是QtCreator,一个是Zeal.

指令:

cd /usr/share/applications/ 
# 或
cd ~/.local/share/applications/

sudo vim Zeal.desktop
sudo vim QtCreator-ROS.desktop

修改后的启动文件为:

# Zeal.desktop
[Desktop Entry]
Type=Application
Name=Zeal
Exec=/usr/bin/zeal
Icon=/usr/share/icons/hicolor/64x64/apps/zeal.png
Terminal=false
Categories=Applition
StartupWMClass=Zeal     # 注意这一行

# QtCreator-ROS.desktop
[Desktop Entry]
Type=Application
Exec=/home/vance/softwares/QtCreator-4.8.0-ROS/latest/bin/qtcreator-ros %f
Path=/home/vance/softwares/QtCreator-4.8.0-ROS/latest
Name=QtCreator-ROS(4.8.0)
GenericName=The IDE of choice for Qt development.
GenericName[de]=Die IDE der Wahl zur Qt Entwicklung
Icon=QtProject-qtcreator
Terminal=false
Categories=Development;IDE;Qt;
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.qt.qmakeprofile;application/vnd.qt.xml.resource;text/x-qml;text/x-qt.qml;text/x-qt.qbs;
StartupWMClass=QtCreator # 注意这一行
3)取消写入权限
sudo chmod -w XXX.desktop

结果:
【ubuntu_problems】Ubuntu系统下软件打开后与状态栏的图标不重合问题解决_第3张图片

你可能感兴趣的:(Ubuntu)