安装 albert 和 flameshot 后,
1.先启动 albert,再启动 flameshot,这两图标全部变成 flameshot 的图标;
2.先启动 flameshot,再启动 albert,这两图标全部变成 albert 的图标;
遇到这样问题,请问高手们应该怎样解决?
退不出?
可以正常退出,就是图标变了,很难受。
c++写的还有这种问题,你试试给他们 issue 下问问。
在 Ubuntu 17.10 Gnome 环境下没有问题,图标显示正常。
也有很多人也出现了类似的问题,但没解决:
https://bugs.launchpad.net/ubuntu/+source/quiterss/+bug/1529957
这个是开发者在致敬 Windows
我墙都不扶就服你
unity 好像出新版了
楼主可以试试看用 hardcode-tray,说不定有奇效
omph Unity 7.4.5 用了,没用
hardcode-tray 没有用啊
那就不知道了,我在 Manjaro+Deepin 上也试了这两个软件,没有你这个问题
[![screenshot.png]( https://i.loli.net/2018/02/19/5a8aa60700ca6.png)]( https://i.loli.net/2018/02/19/5a8aa60700ca6.png)
出问题的是 Unity 桌面环境。不是 deepin 的桌面环境。
知道呀,就是跟你说一下这个 bug 估计是 unity-only 的,再偷偷的安利一下 dde 和 kde (
windows 也会有这个 bug ?
多谢。
对的还会经常空图标
我用了 ubuntu 很多年了,竟然不知道有两个这么好的软件。请问还有其它软件推荐没有啊??@zetaoyang,谢谢
有啊。我博客写过 https://zetaoyang.github.io/post/2017/06/20/my-linux-mint-configuration.html
还有些软件没有加进去,我抽空会更一更。
我没遇到过呢…
博客里面图在我这儿挂啦
我这边可以打开,图片没有挂掉。你可以挂个代理试试
我还重新用 AppImage 打包了 深度截图。https://github.com/ZetaoYang/deepin-app-package/releases
666 不过我这边 dde 自带有这个(而且我觉得 flameshot 好像比深度截图好用
''qb" 这图标是什么应用啊?![3434318.png]( https://i.loli.net/2018/02/20/5a8b992be8077.png)
是一个叫做 qbittorrent 的应用,下 bt 的
顺便说一下,之后可以在 Ubuntu 18.04 官方源里找到 flameshot。
感谢你为 flameshot 所做的工作。
我的系统是 Ubuntu 16.04 LTS,在我这里是可以重现的。作为一个老程序员,推测应该是向系统注册通知栏图标的时候 ID 重复了……
刚才随便看了下两者的源代码,看到 flameshot 是使用 QDBusInterface 去和系统的 org.freedesktop.Notifications 服务交互的,ID 指定为 0。由此,结合上面有人提到的新版本系统下无此问题的情况,进一步推测,应该是指定值为 0 的 ID 会由系统生成随机 ID,也许算法是某种 hash,而 flameshot 和 albert 的计算结果正好撞上了。
十分感谢,不过在 Ubuntu 17.10 Unity 桌面环境下图标是正常的。
借这个地方问一下。org.freedesktop.Notifications 这个 dbus 服务不是用来向桌面发送通知消息的吗,这个能实现托盘图标吗?托盘图标不是基于 X11 协议的吗?
https://developer.gnome.org/notification-spec/
https://specifications.freedesktop.org/systemtray-spec/systemtray-spec-0.3.html
我对 *nix 的图形系统所知相当有限,但是从你列出的第一个链接里看,很显然应该就是在 gnome 环境下实现托盘图标的基本方法。而且,X11 作为底层协议,貌似也不应该能够对桌面实现这样的高层直接定义 API/通讯方式吧。
顺便 @zetaoyang,从上面这位 V 友提供的官方编程接口文档来看,我的推测有所偏差,ID 是对应图标不差,不过调用时指定的话是用于更新图标的(也即代表要被更新的图标),0 这个值表示并不是更新图标,而是新增一个。尽管如此,我仍然推测是系统在这个机制的实现代码里有 bug,而在 17.10 这样的后续版本中得到了修正。
我是说 org.freedesktop.Notifications 似乎不是托盘图标( System Tray )协议,而是“通知”( Notifications )的协议
比如卸载一个 u 盘时 Ubuntu 在右上角显示一个长方形通知“ xxxx 已安全移除”
托盘协议
手抖,接上文
托盘协议可能是基于 X11 的(基于 X11 ),但库可能对其封装,比如 QT 就封装这个协议
最终似乎是使用 _NET_SYSTEM_TRAY_OPCODE
这两者应该不是同一个东西
这个我认为极有可能。假如 DE 换成 KDE 的话,也会以 KDE 的风格相应展现,但你只要知道 DE 会自如地处理这个请求就够了,毕竟只是使用它。
因为单从效果来看,你并不在意是不是 qt 封装,上述讨论中我也没太考虑 qt 自己的方式。