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

在网上看到了很多都在复制粘贴别人的内容,都是让添加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值改的跟他一样,保存文件并关闭。

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

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

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

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

Ubuntu18.04 同一个程序显示两个图标,收藏夹图标不合并问题解决相关推荐

  1. Ubuntu18.04将软件(Eclipse)固定在侧边收藏夹

    1.打开终端,输入命令: cd ~/.local/share/applications/ 2.新建应用图标:vim ***.desktop (例如:vim eclipse-for-java.deskt ...

  2. java两个数之间质数求法_Java程序显示两个间隔之间的质数

    Java程序显示两个间隔之间的质数 在该程序中,您将学习显示两个给定间隔(低和高)之间的质数.您将学习在Java中使用while和for循环来做到这一点. 示例:显示两个间隔之间的质数 public  ...

  3. 如何在iPhone,iPad或Mac上的Safari中启用收藏夹图标

    Safari 12 is here with a feature we've all been waiting for: favicons. Here's how to enable them on ...

  4. 自定义网站的icon和收藏夹图标

    定制网站收藏夹图标的方法有两种: 第一种方法: 第一步,当然是准备一个能体现您的主页的风格和个性的图标.比较简便的办法除了下载,就是将您的网站的logo做成一个图标. 第二步,将这个图标文件命名为:f ...

  5. 网站icon收藏夹图标

    <link rel="icon" href="/jb51.ico" type="image/x-icon"/> <link ...

  6. 一个很小的图标需要另一个HTTP请求是不是很愚蠢? 如何将收藏夹图标放到精灵中?

    本文翻译自:Isn't it silly that a tiny favicon requires yet another HTTP request? How can I put the favico ...

  7. #网站图标、地址栏图标、收藏夹图标、favicon.ico

    本文关键词:网站图标.地址栏图标.收藏夹图标 相关链接: 百度百科:favicon.ico 关于shortcut icon和icon代码的区别介绍 一.favicon.ico的显示的位置: 1.在地址 ...

  8. 重装Ubuntu18.04的经历,有线宽带连接、飞机图标问题经历两天终于成功了。

    写这篇文章主要是为了传播类似问题的解法,尽量让一些人少走弯路,确实网上类似的问题实在太少解法了,就算有而且都是基本雷同,我甚至到外国的网站都无法找到解法,那么我就自己写一个吧,造福自己也是造福他人. ...

  9. win10服务器文件夹显示不全,Windows10文件/文件夹图标显示不正常的两种解决方案...

    Windows10系统用户在使用电脑时,偶尔会碰到某些程序/文件/文件夹图标显示不正常的问题.其实,这很可能是系统图标缓存出现错误导致的.该问题早在Win7.Win8.Win8.1系统中就出现过.下面 ...

最新文章

  1. 2019世界机器人大赛圆满落幕,荆州中学等15支队伍获「全能奖」
  2. 提高电路板EMC能力PCB设计和布线方法
  3. Android之组件化开发
  4. 《数据结构与算法分析:C语言描述》复习——第六章“排序”——基数排序
  5. java中的strictfp的作用
  6. 极端懒惰:使用Spring Boot开发JAX-RS服务
  7. 手动安装boost库
  8. java仿qq gui_Java仿QQ登入页面
  9. Sharding-Sphere,Sharding-JDBC_介绍_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记001
  10. 深入剖析ConcurrentHashMap(2)
  11. fastjson List 转Json , Json 转List
  12. Linux Patch 文件代码补丁
  13. 组态王怎么做超级曲线_组态王显示数据并绘制曲线
  14. 软件测试之兼容性测试
  15. SpringMybaits数据库配置解惑
  16. 数据库、模式、表的关系(转载)
  17. 网络词汇泛滥:神马都是浮云?
  18. 【学习笔记】噬菌体学
  19. 用C语言算两个数的商和
  20. 浏览器直接编辑html文件,HTML文件怎么打开 .html如何编辑

热门文章

  1. spring深入学习(十九) IOC 之 Factory 实例化 bean
  2. python统计中英文字符个数-Python统计英文、中文、数字、空格等字符数
  3. 一分钟解决你的公有云私有云选择困难症
  4. linux过滤目录文件,SCP使用技巧-递归排除文件
  5. 【Java分享客栈】我曾经的两个Java老师一个找不到工作了一个被迫转行了
  6. 计算机地图制图的优势,计算机地图制图
  7. 日本公司研发出一款可食用的便签纸
  8. oracle userenv('language'),USERENV()获取Oracle环境信息
  9. 从自动驾驶新趋势看普及前景
  10. 事后诸葛亮-团队总结