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

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

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

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
您好!关于Ubuntu 18.04只有一个分辨率的问题,可能是由于您的显示器或显卡驱动程序的设置所致。以下是一些可能的解决方案: 1. 检查和更新显卡驱动程序:打开“软件和更新”应用程序,选择“附加驱动程序”选项卡,查看是否有可用的更新驱动程序。如果有,请选择并安装它们。 2. 手动添加分辨率:打开终端,运行命令`cvt <width> <height>`,其中<width>和<height>是您想要添加的分辨率的宽度和高度。例如,如果您想要添加分辨率1920x1080,运行命令`cvt 1920 1080`。然后,将输出中的Modeline部分复制到剪贴板上。 3. 手动设置分辨率:运行`xrandr`命令,查找您的显示器名称(通常为“LVDS1”或“VGA1”)。然后运行以下命令,将<modeline>替换为前一步骤中复制的Modeline,并将<output>替换为您的显示器名称: ``` xrandr --newmode <modeline> xrandr --addmode <output> <width>x<height> ``` 例如,如果Modeline是"1920x1080_60.00",显示器名称是"LVDS1",则第一个命令将是`xrandr --newmode "1920x1080_60.00"`,第二个命令将是`xrandr --addmode LVDS1 1920x1080_60.00`。 4. 重新启动X服务器:运行以下命令以使更改生效: ``` xrandr --output <output> --mode <width>x<height> ``` 例如,如果您的显示器名称是"LVDS1",分辨率是1920x1080,命令将是`xrandr --output LVDS1 --mode 1920x1080`。 请注意,以上步骤需要一些命令行技巧和了解,并且可能因系统配置而有所不同。如果您不确定如何进行操作,建议谨慎操作或寻求更多专业支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值