Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
holazt
V2EX  ›  Linux

请教 “Ubuntu 16.04 Unity 桌面下 系统托盘第三方应用图标重复”如何解决?

  •  
  •   holazt · Feb 19, 2018 · 6572 views
    This topic created in 3182 days ago, the information mentioned may be changed or developed.

    安装 albert 和 flameshot 后,

    1.先启动 albert,再启动 flameshot,这两图标全部变成 flameshot 的图标;

    2.先启动 flameshot,再启动 albert,这两图标全部变成 albert 的图标;

    遇到这样问题,请问高手们应该怎样解决?

    Supplement 1  ·  Feb 19, 2018
    我在 Ubuntu 17.10 Gnome 环境下,试过,也是正常的,没有问题。
    38 replies  •  2018-02-26 19:39:48 +08:00
    fengyj
    fengyj
    Feb 19, 2018 via Android
    1
    退不出?
    holazt
    holazt
    OP
    Feb 19, 2018
    2
    @huiyifyj 可以正常退出,就是图标变了,很难受。
    fengyj
    fengyj
    Feb 19, 2018 via Android
    3
    c++写的还有这种问题,你试试给他们 issue 下问问。
    holazt
    holazt
    OP
    Feb 19, 2018
    4
    @huiyifyj 在 Ubuntu 17.10 Gnome 环境下没有问题,图标显示正常。
    也有很多人也出现了类似的问题,但没解决:
    https://bugs.launchpad.net/ubuntu/+source/quiterss/+bug/1529957
    rzti483NAJ66l669
    rzti483NAJ66l669
    Feb 19, 2018 via iPhone
    5
    这个是开发者在致敬 Windows
    yx17
    yx17
    Feb 19, 2018 via Android
    6
    @Humorce 我墙都不扶就服你
    omph
    omph
    Feb 19, 2018
    7
    unity 好像出新版了
    x86vk
    x86vk
    Feb 19, 2018
    8
    楼主可以试试看用 hardcode-tray,说不定有奇效
    holazt
    holazt
    OP
    Feb 19, 2018
    9
    omph Unity 7.4.5 用了,没用
    holazt
    holazt
    OP
    Feb 19, 2018
    10
    @x86vk hardcode-tray 没有用啊
    x86vk
    x86vk
    Feb 19, 2018
    11
    @zetaoyang 那就不知道了,我在 Manjaro+Deepin 上也试了这两个软件,没有你这个问题
    holazt
    holazt
    OP
    Feb 19, 2018
    13
    @x86vk 出问题的是 Unity 桌面环境。不是 deepin 的桌面环境。
    x86vk
    x86vk
    Feb 19, 2018❤️1
    14
    @zetaoyang 知道呀,就是跟你说一下这个 bug 估计是 unity-only 的,再偷偷的安利一下 dde 和 kde (
    luojianxhlxt
    luojianxhlxt
    Feb 19, 2018 via iPhone
    15
    @Humorce windows 也会有这个 bug ?
    holazt
    holazt
    OP
    Feb 19, 2018
    16
    @x86vk 多谢。
    heiybb
    heiybb
    Feb 19, 2018 via Android
    17
    @luojianxhlxt 对的还会经常空图标
    bigxu
    bigxu
    Feb 19, 2018
    18
    我用了 ubuntu 很多年了,竟然不知道有两个这么好的软件。请问还有其它软件推荐没有啊??@zetaoyang,谢谢
    holazt
    holazt
    OP
    Feb 19, 2018
    20
    @bigxu 还有些软件没有加进去,我抽空会更一更。
    luojianxhlxt
    luojianxhlxt
    Feb 19, 2018 via iPhone
    21
    @heiybb 我没遇到过呢…
    x86vk
    x86vk
    Feb 19, 2018
    22
    @zetaoyang 博客里面图在我这儿挂啦
    holazt
    holazt
    OP
    Feb 19, 2018
    23
    @x86vk 我这边可以打开,图片没有挂掉。你可以挂个代理试试
    holazt
    holazt
    OP
    Feb 19, 2018
    24
    @x86vk
    我还重新用 AppImage 打包了 深度截图。https://github.com/ZetaoYang/deepin-app-package/releases
    x86vk
    x86vk
    Feb 19, 2018
    25
    @zetaoyang 666 不过我这边 dde 自带有这个(而且我觉得 flameshot 好像比深度截图好用
    holazt
    holazt
    OP
    Feb 20, 2018
    26
    @x86vk ''qb" 这图标是什么应用啊?![3434318.png]( https://i.loli.net/2018/02/20/5a8b992be8077.png)
    x86vk
    x86vk
    Feb 20, 2018❤️1
    27
    @zetaoyang 是一个叫做 qbittorrent 的应用,下 bt 的
    hosiet
    hosiet
    Feb 20, 2018 via Android❤️1
    28
    顺便说一下,之后可以在 Ubuntu 18.04 官方源里找到 flameshot。
    holazt
    holazt
    OP
    Feb 20, 2018
    29
    @hosiet 感谢你为 flameshot 所做的工作。
    dandycheung
    dandycheung
    Feb 22, 2018
    30
    我的系统是 Ubuntu 16.04 LTS,在我这里是可以重现的。作为一个老程序员,推测应该是向系统注册通知栏图标的时候 ID 重复了……
    dandycheung
    dandycheung
    Feb 22, 2018❤️1
    31
    刚才随便看了下两者的源代码,看到 flameshot 是使用 QDBusInterface 去和系统的 org.freedesktop.Notifications 服务交互的,ID 指定为 0。由此,结合上面有人提到的新版本系统下无此问题的情况,进一步推测,应该是指定值为 0 的 ID 会由系统生成随机 ID,也许算法是某种 hash,而 flameshot 和 albert 的计算结果正好撞上了。
    holazt
    holazt
    OP
    Feb 23, 2018
    32
    @dandycheung 十分感谢,不过在 Ubuntu 17.10 Unity 桌面环境下图标是正常的。
    iwtbauh
    iwtbauh
    Feb 23, 2018 via Android
    33
    @dandycheung 借这个地方问一下。org.freedesktop.Notifications 这个 dbus 服务不是用来向桌面发送通知消息的吗,这个能实现托盘图标吗?托盘图标不是基于 X11 协议的吗?
    https://developer.gnome.org/notification-spec/
    https://specifications.freedesktop.org/systemtray-spec/systemtray-spec-0.3.html
    dandycheung
    dandycheung
    Feb 24, 2018
    34
    @iwtbauh 我对 *nix 的图形系统所知相当有限,但是从你列出的第一个链接里看,很显然应该就是在 gnome 环境下实现托盘图标的基本方法。而且,X11 作为底层协议,貌似也不应该能够对桌面实现这样的高层直接定义 API/通讯方式吧。
    顺便 @zetaoyang,从上面这位 V 友提供的官方编程接口文档来看,我的推测有所偏差,ID 是对应图标不差,不过调用时指定的话是用于更新图标的(也即代表要被更新的图标),0 这个值表示并不是更新图标,而是新增一个。尽管如此,我仍然推测是系统在这个机制的实现代码里有 bug,而在 17.10 这样的后续版本中得到了修正。
    iwtbauh
    iwtbauh
    Feb 24, 2018 via Android
    35
    @dandycheung
    我是说 org.freedesktop.Notifications 似乎不是托盘图标( System Tray )协议,而是“通知”( Notifications )的协议
    比如卸载一个 u 盘时 Ubuntu 在右上角显示一个长方形通知“ xxxx 已安全移除”
    托盘协议
    iwtbauh
    iwtbauh
    Feb 24, 2018 via Android
    36
    @iwtbauh 手抖,接上文
    托盘协议可能是基于 X11 的(基于 X11 ),但库可能对其封装,比如 QT 就封装这个协议
    最终似乎是使用 _NET_SYSTEM_TRAY_OPCODE
    这两者应该不是同一个东西
    dandycheung
    dandycheung
    Feb 26, 2018 via Android
    37
    @iwtbauh 这个我认为极有可能。假如 DE 换成 KDE 的话,也会以 KDE 的风格相应展现,但你只要知道 DE 会自如地处理这个请求就够了,毕竟只是使用它。
    dandycheung
    dandycheung
    Feb 26, 2018 via Android
    38
    @iwtbauh 因为单从效果来看,你并不在意是不是 qt 封装,上述讨论中我也没太考虑 qt 自己的方式。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4473 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 09:18 · PVG 17:18 · LAX 01:18 · JFK 04:18
    ♥ Do have faith in what you're doing.