PyGTK 应用程序图标在 Unity 中模糊

PyGTK 应用程序图标在 Unity 中模糊

我在主窗口 glade 文件中引用了 128x128 图标,例如<property name="icon">../media/my-icon.svg</property>

我尝试使用 svg 和 png,但在 Ubuntu 应用程序切换器(Alt + Tab)中总是非常模糊。

我注意到,当使用模板快速创建应用程序时,Ubuntu 徽标也非常模糊。

知道为什么会发生这种情况吗?

答案1

这是怎么回事

这些<property name="icon">设置指的是窗口图标,而不是应用程序图标。据我所知,Ubuntu 窗口服务器 (X.org) 在加载后会将它们压缩到很小的尺寸。如果您不记得 2009 年的情况,它们曾经用于以下用途:

窗口图标的图片

使用应用程序图标

如果需要,Ubuntu Unity 将使用这种低分辨率格式。但是它通常Icon=根据给定窗口的应用程序启动器,称为“桌面条目”

如果你是一名普通的应用程序开发者,只打算使用应用程序开发者门户,您可能可以在这里停止阅读。免费打包服务将负责编写应用程序的桌面条目并将其安装的图标放置在文件系统的正确部分。如果没有...

细节

如何创建桌面条目并让 Ubuntu 将你的 PyGTK 窗口与正确的应用程序图标和名称匹配这个问题已经记录了。但你实际上在哪里地方图标才能显示正确的图标?

事实上,答案相当晦涩难懂。根据 freedesktop.org 规范,图标是通过大小、图标主题和(必要时)本地化来搜索和加载的。图标甚至可以安装在几个不同的前缀中,具体取决于安装它们的源。Ubuntu 根据上下文“查询”图标。

简单的规则:为您的应用程序使用唯一的图标名称,以防止与其他图标错误匹配。将应用程序的图标放在以下目录之一(或其子目录中):

<user prefix>/share/icons/<icon width>x<icon height>/apps/
<user prefix>/share/icons/scalable/apps/

<user_prefix>是您的应用程序的安装路径(它将/usr用于软件包管理器安装的软件包、/usr/local/为所有用户安装的其他软件以及$HOME/.local单个用户安装)。<icon width><icon height>(或 SVG 的“可扩展”)指的是图标的尺寸。如果您创建许多不同的图标分辨率,Ubuntu 将始终找到并选择适合任何上下文的正确分辨率。

在开发过程中获取正确的应用图标以进行显示

  1. 创建可缩放或高分辨率的图标,并将其放置在用户主share/目录的正确子目录中。例如,myapp.svg将进入$HOME/.local/share/icons/scalable/

  2. 编写一个包含图标的非扩展名的桌面条目。例如

    [Desktop Entry]
    
    Name=My Application
    Exec=my_binary
    Icon=myapp
    

    将其放入$HOME/.local/share/applications/。注意my_binary必须是在您的某个$PATH目录中可搜索的可执行文件

  3. 可以通过以下方式运行应用程序:(a) 从 Unity Dash,(b) 从命令行运行确切名称你的$PATH可执行文件[例如'my_binary']。

如果这一切读起来都像胡言乱语……

打开文件浏览器并浏览目录/usr/share/applications//usr/share/icons/。环顾四周,您就会了解应用程序元数据和图标在 Ubuntu 中的工作方式。

相关内容