发布于2026-06-05 阅读(0)
扫一扫,手机访问
用过 Ubuntu 18.04 的朋友应该都有这个体会:当你辛辛苦苦把某个应用图标拖到任务栏,指望一键启动时,结果一打开却冒出来两个图标——一个固定在任务栏,另一个是正在运行的应用。这到底是怎么回事?其实根本原因在于 .desktop 文件里 StartupWMClass 字段没有填对。下面一步步拆解,顺便把解决方案也一并给了。
打开终端,先进入应用管理目录:
cd ~/.local/share/applications/
然后新建一个 .desktop 文件,比如要折腾微信,就起名 wechat.desktop:
vim wechat.desktop
写入以下模板:
#!/usr/bin/env xdg-open [Desktop Entry] Version=1.0 Terminal=false Type=Application Name= Exec= Icon= NoDisplay=false StartupWMClass=
其中 Exec 填应用的可执行文件路径,Icon 填图标图片路径。写完保存退出。

回到桌面,点击左下角“显示应用程序”按钮(那个九宫格图标),找到你刚创建的快捷方式,用鼠标拖拽到屏幕左侧的任务栏上。看起来一切顺利,但此时如果直接点击启动,大概率会出现双图标——因为 StartupWMClass 还是空的。

双图标的根源在于系统不知道这个窗口属于哪个 .desktop 文件,所以会额外生成一个临时图标。要解决,只需获取应用的 WM_CLASS 值,填回 StartupWMClass 即可。
操作如下:
xprop |grep WM_CLASS
按下回车后,鼠标指针会变成一个十字准心。
用这个十字准心点击你刚刚打开的应用窗口,终端会立刻输出一行信息,里面包含两个字符串(用逗号隔开)。比如微信可能输出类似 wechat, WeChat 这样。
把第一个字符串(也就是用引号括起来的那段)复制出来,打开之前创建的 .desktop 文件,填入 StartupWMClass= 后面。例如:
StartupWMClass=wechat
保存文件,关闭应用,然后再从任务栏点击图标启动——双图标的问题就不见了。

这个方法适用于所有在 Ubuntu 18.04 上出现双图标的应用,不只是微信。记住,StartupWMClass 必须和窗口类严格匹配,才能让系统把运行中的窗口和任务栏图标正确关联起来。搞定之后,你的任务栏就清爽多了。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9