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

Modified on: Sun, 10 Jun 2018 01:29:23 +0800

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

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

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

知道为什么会这样吗?

作者:Jjed,umpirsky

最佳答案

发生了什么

<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/

&lt;user prefix&gt;/share/icons/&lt;icon width&gt;x&lt;icon height&gt;/apps/ &lt;user prefix&gt;/share/icons/scalable/apps/ 是您的应用程序的安装路径(对于软件包管理器安装的软件包,它将是&lt;user_prefix&gt;/usr用于为所有用户安装的其他软件,/usr/local/用于单用户安装)。 $HOME/.local&lt;icon width&gt;(或SVG的'可扩展')是指图标的尺寸。如果您创建了许多不同的图标分辨率,Ubuntu将始终为任何上下文找到并选择正确的分辨率。

在开发

时显示正确的应用程序图标

  1. 创建可伸缩或高分辨率图标,并将其放在用户主页的&lt;icon height&gt;目录的正确子目录中。例如,share/将进入myapp.svg

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

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

    将其放在[Desktop Entry] Name=My Application Exec=my_binary Icon=myapp 中。请注意,$HOME/.local/share/applications/必须可在您的my_binary目录中搜索的可执行文件< / A>

  3. 使用$PATH可执行文件的确切名称从(Unity)使用Unity Dash(b)从命令行运行应用程序[例如] 'my_binary']。

  4. 醇>

    如果这一切都像胡言乱语......

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

作者:Community,Jjed

相关问答

添加新评论