当我从启动器运行 Matlab 时,会显示第二个图标。有趣的是,如果我将鼠标放在新图标上,图标上显示的文本不是我在 .desktop 文件中的文本。所以我的猜测是启动器正在启动脚本,但它无法将其与图标关联,因此它会启动第二个脚本。
到目前为止,这种情况只发生在 Matlab 上。
我不知道发生了什么,它本来运行良好,现在却不行了。我觉得我没有改变任何东西。
我在 .local/share/launchers 中有一个 .desktop 文件。其代码如下:
[Desktop Entry]
Type=Application
Name=Matlab
Comment=Matlab
Exec=/usr/local/MATLAB/R2012a/bin/matlab -desktop
Icon=/home/kais3r/.local/share/launchers/Matlab.png
Terminal=false
Categories=Math;IDE;
StartupNotify=true
但我不认为问题与此有关。也许是最近的一些更新?我不知道。
答案1
将以下行添加到您的 .desktop 文件
StartupWMClass=com-mathworks-util-PostVMInit
答案2
我在使用 Matlab R2013a 时遇到了同样的问题。我打开了 .desktop 文件,发现内容正确,只是和之间有一个空行StartupNotify=true
。 StartupWMClass=com-mathworks-util-PostVMInit
我删除了空行,重新启动了 matlab,它就正常工作了。现在只出现了一个图标,正如预期的那样。不知道它是怎么工作的!
答案3
这里https://wiki.archlinux.org/index.php/matlab#Activation提到一个可能的解决方案(我遇到了同样的问题):
为了使图标正确显示,
StartupWMClass
需要在桌面条目中设置。要找到它,请启动 MATLAB,xprop | grep WM_CLASS
在终端上运行并选择 MATLAB 窗口。
答案4
你尝试过这个吗?
(请注意,将文件移出目录当然更安全,例如在删除之前将其移动到桌面,以确保在删除文件之前先解决问题。)
如果有人感兴趣,我会发布这个问题的解决方案。我运行了以下命令来
/usr/share/applications
查找~/.local/share/applications
包含该条目的文件 矩阵不管怎样;我从 堆栈溢出。grep -Ril "Matlab" /usr/share/applications/
输出为:
/usr/share/applications/matlab.desktop
这是我手动生成的文件。但是,当我在另一个目录中运行该命令时
grep -Ril "Matlab" ~/.local/share/applications/
输出为:
/home/ongun/.local/share/applications/com-mathworks-util-postvminit.desktop /home/ongun/.local/share/applications/mimeapps.list
检查了第一个条目后(因为它是一个
.desktop
文件)我发现它是罪魁祸首并且删除它解决了中的重复图标问题Dash
。