『转载』Ubuntu18.04 同一个程序显示两个图标, 收藏夹图标不合并问题解决 @ Alibutter            分类 技术
发布于 星期日, 六月 27 日, 2021 年
更新于 星期二, 七月 20 日, 2021 年

原文连接

一, 同一个程序运行时的窗口图标与收藏夹图标不合并的问题:

在网上看到了很多都在复制粘贴别人的内容, 都是让添加StartupWMClass, 有时候这样并不会生效, 另外收藏夹的图标添加有两种情况:

  1. 从桌面上自己创建的快捷方式.desktop文件右键收藏 (在/.local/share/applications下)

  2. 从"全部应用"那里直接右键收藏 (全部应用列表里的.desktop文件在/usr/share/applications下)

二, 导致StartupWMClass不生效的原因:

网上说的那么简单, 却没有生效, 所以只能自己开始摸索到底为啥没有生效, 最后发现是因为快捷方式名称与获取到的那个名称并不一致导致的, 即.desktop文件中的Name=XXX, 与网上那种鼠标检测的运行窗口名称不一致. 比如我的Pycharm就是名为Pycharm的图标, 然后右键添加至收藏夹, 鼠标指到收藏夹的图标上显示的就是名字"Pycharm", 可是运行窗口检测到的名称是"jetbrains-pycharm", 这导致了怎么添加StartupWMClass都是无效的, 而网上到处都千篇一律在强调添加时StartupWMClass=XXX后面的名字要与检测到的名字一致…没人说这个更关键的问题.

三, 解决方案

1, 获取程序窗口名

运行图标不合并的程序, 窗口不要最小化, 然后打开终端, 输入:

xprop WM_CLASS

鼠标将变成一个十字, 此时点击正在运行的那个程序窗口, 可以看到终端获得一个输出 (以pycharm为例)

第二个名称就是我们要用到的, 待会要复制下来.

2, 修改快捷方式.desktop文件 (即应用程序的启动图标)

首先说明一下, 显示程序图标的位置, 有三个地方, 收藏夹, 全部应用, 桌面, 为了确保不管从哪里运行同一个程序, 都能成功合并, 进行如下操作:

  1. 首先确认要改的程序有几处图标, 一般"全部应用"这一处必定存在, 确保这一处存在后, 继续往下操作;

  2. 从收藏夹移除要解决的问题图标, 从"全部应用"重新右键添加至收藏夹;

  3. 修改"全部应用"中图标的.desktop文件, 该图标的路径: /usr/share/applications

找到要修改的程序图标 (以Pycharm图标为例) , 使用文本编辑器打开, 或在终端开启编辑:

sudo gedit pycharm.desktop

把鼠标检测到的程序窗口名称 (第二个名字) 复制一下, 在最后添加一行: (其他行不用管, 每个人快捷方式定义参数不一定都一样, 能用就行, 我上面这个截图, 有些参数就不是必须的)

StartupWMClass=jetbrains-pycharm      # 名字改成之前终端输出的第二个名字

修改完特别要注意, 看看你的上面是不是有一行 Name=XXX 的定义, 定义的Name是不是和鼠标检测出的名称一致!!!不一致就把Name也改成检测到的名称.

就是这个名字不一致, 导致的添加了StartupWMClass却始终不生效, 所以不管你鼠标识别的那个名称多不顺眼, 也要把这个Name值改的跟他一样, 保存文件并关闭.

  1. 如果本来桌面上就没有快捷方式图标或者你不想要桌面这个, 删除后跳至第 (5) 步即可. 如果桌面上还有一个该程序的快捷方式图标, 并且想要桌面上保留这个程序的快捷方式, 那么执行第 (3) 步中同样的操作, 确保桌面上这个图标.desktop文件名称也一致, 桌面上图标文件的路径: /.local/share/applications (注意: .local是主目录下的隐藏文件夹) (当然要是不想这么费劲, 也可以直接删除桌面上的快捷方式, 把第 (3) 步修改的那个图标复制到桌面上)

  2. 退出运行的程序窗口, 把鼠标指到收藏夹中那个程序图标上去, 看看名字是不是变为你刚刚修改后的Name (即修改后是否与鼠标检测的名称一致了) , 如果是, 那再次启动程序的时候, 就会发现之前一直无效的问题终于解决了, 图标合并了. (下图中我开启了两个pycharm窗口, 全都合并在了收藏夹最后这个pycharm图标上了)

参考链接: https://www.cnblogs.com/bulala233/p/10267355.html

PS: 所以网上很多东西可以参考, 但是那些并没有效果的, 查来查去都是人云亦云, 一篇文章复制的满天飞, 不如干脆自己去折腾一下, 比继续看这些翻来覆去一个样的资料有用的多. 程序员要大胆, 小手一动, 只要关键数据提前留下来, 大不了重装…奇怪的知识就是这么增加的. 希望能帮到那些查遍资料还是始终无法合并图标的人.

留下昵称和邮箱, 可在第一时间获悉回复通知哦~

2021 FLAG

  • 找个妹子
  • 进计科
  • XCPC拿块金牌
  • 补全算法知识, 整全板子
  • 学会Web开发相关知识
  • 在服务器上搭建电子书库
  • 写个游戏并上线
  • 能弹一首曲子
  • 写首完整的曲子
  • 练习悠悠球

个人简介

我叫 Wings, 来自江西上饶, 目前人在西安, 是西电的一名学生.

常以 WingsWingsZengWingsWings的ID在各大小网站上游走, 一般来说, Wings不是我 😔, WingsZeng 一定是我 😊.

热爱算法, 喜欢钻研各种计算机技术.

业余爱好广泛, 只要不是文化课基本上都感兴趣😏.

开发/项目经历

  1. Android游戏 小墨滴的复仇 (弃坑)
  2. Android游戏 Circle Run (弃坑)
  3. Windows游戏 Snague (可能弃坑了吧)
  4. Python后端 Fathy' (可能弃坑了吧)

to be continued

教育经历

时间 学历 学校
2008-2014 小学 上饶市第十二小学
2014-2017 初中 上饶市第四中学
2017-2020 高中 上饶市第一中学
2020-2024 本科 西安电子科技大学
to be continued

比赛/竞赛经历

太久远太小的记不到了…

  1. 2017 国学竞赛初赛江西 没有分数或排名 二乙
  2. 2018 NOIP提高 258 省二
  3. 2019 CSP-S江西专场 145 省二
  4. 2019 数学竞赛初赛 70 没排名 (复赛打铁qaq)
  5. 2020 Gitee|Python贪吃蛇魔改大赛 可能是第四? 二等奖
  6. 2020 西电ACM训练基地熊猫杯 第四 银牌
  7. 2020 西安三校微软学生俱乐部Hackathon 和二等奖最后一名差0.5分 三等奖
  8. 2020 西电星火杯 三等奖
  9. 2020 西电ACM新生赛 第九 金牌
  10. 2020 ICPC 亚洲区域赛 济南站 132名 铜牌
  11. 2020-2021 第二届全国大学生算法设计与编程挑战赛(冬季赛) 924名 铜牌 (别骂了别骂了)
  12. 2020 ICPC 亚洲区域赛 昆明站 打星
  13. 2020 ICPC Asia-East Continent Final 签完到溜 打铁
  14. 西电"智能星"第一届自动驾驶小车比赛 第五 优胜奖|极速奖 本来可以冠军的别骂了别骂了
  15. 2021团体程序设计天体赛(CCCC) 个人二等奖
  16. 2021 西电 miniL CTF 优胜奖
  17. 2021 西电ACM校赛 第9名 金牌
  18. 2021 西电数模校赛 二等奖
  19. 2021 第15届IEEE 第48名
  20. 2021 CCPC 桂林站 打星

to be continued

爱好

技术

  • 算法
  • 独立游戏开发

游戏

  • Minecraft
  • Black Survival
  • I Wanna
  • Celeste
  • Life is Strange
  • Need for speed

运动

  • 篮球
  • 桌球
  • 乒乓球
  • 羽毛球
  • 慢跑

音乐

  • 吉他
  • 词曲
  • 流行

玩具

  • 魔方
    • 三阶速拧
    • 三阶盲拧
    • 高阶
  • yoyo球

追星

  • VAE
  • Benedict Cumberbatch