3

我是肉桂的新手,我对某些系统小程序无法轻松修改其图标感到失望。看到之后,我从我的根目录中找到了“ show-desktop ”并找到了一个 /usr/share/cinnamon/applets/show-desktop@cinnamon.org 目录。该目录中有两个文件:applet.js 和 metadata.json。

元数据.json:

{
 "uuid": "show-desktop@cinnamon.org",
 "name": "Show desktop",
 "description": "Minimize all windows",
 "icon": "menu",
 "max-instances": -1
}

“菜单”不是很有描述性,所以我选择了另一个系统小程序(垃圾)并查看了它的图标名称“用户垃圾”并将“菜单”更改为“用户垃圾”

{
 "uuid": "show-desktop@cinnamon.org",
 "name": "Show desktop",
 "description": "Minimize all windows",
 "icon": "user-trash",
 "max-instances": -1
}

这没有任何效果,所以我查看了 applet.js。

    this.set_applet_icon_name("user-desktop");
    this.set_applet_tooltip(_("Show desktop"));

这些是重要的行,我再次查看了垃圾小程序并将其更改为“用户垃圾”。我在 /usr/share/icons/Adwaitia/32x32/places/ 文件夹中找到了这些图标。

这给我留下了三个问题......

  1. 小程序如何知道在此目录中查找图标?是否有存储在某处的配置,或者是否有另一个描述图标及其位置的 .js 文件。

  2. 为什么修改 .json 文件对正在使用的图标没有影响,即使在重新加载肉桂之后?

  3. 如何为我自己的图标提供一个文件路径来代替系统图标而不会将我的图标放在该目录中?

4

1 回答 1

0

要将图标设置为自定义图标,您需要将图标放在路径中,然后使用 set_applet_icon_path() 方法将尝试图标更改为自定义图标。您还必须确保删除或注释掉符号名称方法。

// Assuming you have something similar to this for the applet_path:
const UUID = "app@id";
const APPLET_PATH = imports.ui.appletManager.appletMeta[UUID].path;

// in the MyApplet.prototype _init function.

// Remove or comment out this line:
//this.set_applet_icon_symbolic_name("icon-name");

// Add this in the MyApplet.prototype _init function.
this.set_applet_icon_path(APPLET_PATH + "/icon.png")
于 2018-01-03T15:48:43.837 回答