肉桂:修改“显示桌面”(+其他系统小程序)图标

Cinnamon: Modifying the "Show Desktop" (+ other system applets) Icon

本文关键字:显示桌面 系统 程序 图标 其他 修改 肉桂      更新时间:2023-09-26

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

metadata.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
}

这没有任何效果,所以我查看了小程序.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. 如何为我自己的图标提供文件路径以代替系统图标,而无需将我的图标放在该目录中?

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

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