2016-04-21 17 views
3

我是新来的肉桂,我很失望,一些系统小程序不能很容易地修改它们的图标。看到后,我从根目录找到了“show-desktop”,并找到了/usr/share/cinnamon/applets/[email protected]目录。在目录中有两个文件:applet.js和metadata.json。肉桂:修改“显示桌面”(+其他系统小程序)图标

metadata.json:

{ 
"uuid": "[email protected]", 
"name": "Show desktop", 
"description": "Minimize all windows", 
"icon": "menu", 
"max-instances": -1 
} 

“菜单”是不是很描述性的,所以我又捡起系统程序(垃圾),并看着它的图标名“用户垃圾”,并改变“菜单”到'用户垃圾'

{ 
"uuid": "[email protected]", 
"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. 如何在applet知道该目录的图标看?是否有配置存储在某处,或者是否存在另一个描述图标及其位置的.js文件。

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

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

回答

0

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

// Assuming you have something similar to this for the applet_path: 
const UUID = "[email protected]"; 
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") 
相关问题