2016-04-21 3 views
3

Je suis nouveau à la cannelle et je suis déçu que certaines icônes du système ne puissent pas être modifiées facilement. Après avoir vu cela, j'ai fait une recherche dans mon répertoire racine pour "show-desktop" et j'ai trouvé un répertoire /usr/share/cinnamon/applets/[email protected] Dans le répertoire se trouvent deux fichiers: applet.js et metadata.json.Cinnamon: Modification du "Show Desktop" (+ autres applets système) Icône

metadata.json:

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

« menu » est pas très descriptif, j'ai choisi une autre applet de système (poubelle) et regardé son nom d'icône « -poubelle de l'utilisateur » et changé « menu » à ' user-trash '

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

Ceci n'a eu aucun effet alors j'ai regardé dans l'applet.js.

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

Ce sont les lignes importantes, encore une fois je regardais l'applet trash et changé celui-ci pour « trash utilisateur ». J'ai trouvé les icônes dans/usr/share/icons/Adwaitia/32x32/places/dossier.

Cela me laisse trois questions ...

  1. Comment l'applet sait regarder dans ce répertoire pour les icônes? Y a-t-il une config stockée quelque part, ou y a-t-il un autre fichier .js qui décrit les icônes et leurs emplacements. Pourquoi la modification des fichiers .json n'a-t-elle aucun effet sur l'icône utilisée, même après avoir rechargé la cannelle?

  2. Comment puis-je fournir un chemin de fichier à ma propre icône pour travailler à la place des icônes du système sans perdre mon icône dans ce répertoire?

Répondre

0

Pour définir l'icône à l'icône personnalisée vous devez déposer l'icône dans le chemin, puis utilisez la méthode set_applet_icon_path() pour changer l'icône d'essayer de l'icône personnalisée. Vous devez également vous assurer que vous supprimez ou commentez la méthode du nom symbolique.

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