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

ump*_*sky 6 icons python quickly pygtk application-development

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

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

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

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

Jje*_*jed 8

这是怎么回事

<property name="icon">设置是指窗口图标,而不是应用程序图标。据我了解,Ubuntu 窗口服务器 (X.org) 在加载后会将它们压缩到很小的大小。如果您不记得从 2009 年开始,它们曾经以这种身份使用:

窗口图标图片

改用应用程序图标

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

如果您是一个普通的应用程序开发人员,只是计划通过 App Developer Portal发布他们的程序,您可能可以停止阅读这里。免费打包服务将处理编写应用程序的桌面条目并将其安装的图标放置在文件系统的右侧部分。如果不...

坚韧不拔

如何创建桌面条目并使 Ubuntu 将您的 PyGTK 窗口与正确的应用程序图标和名称相匹配,此问题中已记录。但是,您实际上在哪里放置图标以显示正确的图标?

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

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

<user prefix>/share/icons/<icon width>x<icon height>/apps/
<user prefix>/share/icons/scalable/apps/
Run Code Online (Sandbox Code Playgroud)

<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
    
    Run Code Online (Sandbox Code Playgroud)

    把这个放在$HOME/.local/share/applications/. 请注意,my_binary必须是可在您的$PATH目录之一中搜索的可执行文件

  3. 运行从Unity短跑从命令行使用应用程序或者(a),(b)中确切名称您的$PATH可执行[例如“my_binary”]。

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

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


归档时间:

查看次数:

1139 次

最近记录:

13 年,8 月 前