2014-11-24 81 views
0

Ubuntu中的鹦鹉螺具有动态图标,这意味着它在运行时会发生变化,然后再变回。它会在Unity条等中发生变化,例如在复制文件时我们会看到一个进度图标。动态图标 - Ubuntu - 鹦鹉螺

我想知道这是如何完成的?我想让我的应用程序图标变成动态的,例如在一个过程中,我想用另一个图标(我创建的图标在左上角有一个罐子的迷你图标)替换我的图标。

https://code.launchpad.net/~3v1n0/ubuntu/oneiric/nautilus/unity-launcher-support/+merge/70685

,我发现这个在这里:

https://www.mail-archive.com/[email protected]&q=subject:%22[Bug+821598]+Re%3A+Show+progress+bar+in+nautilus+icon+on+launcher+when+the+user+copy+file%22

如果任何人都可以用我的API函数调用共享,我试图将其转换为ctypes的。

动态图标是体现在这个YouTube视频:http://www.youtube.com/watch?v=kpXlKM-9mIA

+0

Unity图标是由_NET_WM_ICON窗口属性控制的普通X11图标。他们更像发射器图标。没有常用的X11 API来改变它们。您需要使用Unity特定的API。 – 2014-11-24 21:35:24

+1

@ n.m。这是我原先的想法,但并不完全正确:图标设置在.desktop文件中,然后您需要通过设置_NET_WM_DESKTOP_FILE属性将.desktop文件与窗口关联 - 请参阅我的问题和答案 - http://askubuntu.com/questions/530376/association-window-desktop-file-launcher-entry。 Unity以非EWMH的方式做了很多事情 – 2014-11-24 23:21:08

+1

_NET_WM_DESKTOP_FILE不是标准的,它是一个Unity的东西。 – 2014-11-25 03:31:38

回答

3

不,鹦鹉螺没有改变图标。相反,它会告诉启动器“嗨,请设置进度到X%并标记为xyz”。你可以找到一些文件here。据我所知统一发射器不尊重图标通过ewmh(_NET_WM_ICON &朋友)的动态变化,所有的工作解决方案都非常黑客:编辑.desktop文件并发送一些信号通知它已更改(看起来像你已经看到的related answer

+0

谢谢安德烈!也感谢您的评论中的链接,我认为用我的图标创建一个新的桌面文件,然后发送消息(_NET_WM_DESKTOP_FILE路径是什么)我需要做的! – Noitidart 2014-11-25 01:17:35

+0

你实际上是在尝试改变图标还是需要重叠进度/标签,就像链接的YouTube视频一样? – 2014-11-25 02:39:56

+0

嗯,我需要改变图标,我认为他们能够在那里覆盖徽章元素。基本上我的插件为Firefox它允许多个配置文件,并且人们想要在图标的下角设置一个迷你16x16或8x8徽章,所以在Windows和Mac中,我只是创建一个新图标并将其替换(运行时)。我以为那是鹦鹉螺做的,但它不那么不好,不得不使用黑客方法,这是可以的,它的完美插件:) – Noitidart 2014-11-25 05:39:56

相关问题