web-dev-qa-db-fra.com

Est-il possible d'ajouter des icônes au panneau supérieur de l'écran de connexion?

Est-il possible d'ajouter des icônes (autres que les valeurs par défaut) au panneau supérieur de l'écran de connexion?

enter image description here

Si oui, quelles icônes d'applications seront ajoutées au panneau supérieur de l'écran de connexion autres que les valeurs par défaut (intégré, audio, gestionnaire de réseau, etc.). Et comment puis-je ajouter cela?

J'utilise Ubuntu 13.1

10
Avinash Raj

Je suis sur 12.04, mais cela fonctionnera sur 13.10 aussi.

Oui, il est possible de changer les indicateurs de l'unité-greeter. Nous pourrions utiliser GSettings pour modifier les paramètres, mais comme l'unité-greeter n'est exécutée que par l'utilisateur lightdm (il ne concerne donc personne d'autre), il est donc plus simple d'écrire un fichier .override.

1. Vérifiez les indicateurs par défaut

Vous pouvez voir vos indicateurs par défaut dans le fichier dconf-editor ou dans le fichier /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml. Dans ce dernier fichier, vous verrez une clé semblable à ceci:

 <key name="indicators" type="as">
  <default>['ug-keyboard', 'ug-accessibility', 'session', 'datetime', 'power', 'soundmenu', 'application']</default>
  <summary>Which indicators to load</summary>
</key>

, ce sont les valeurs par défaut pour moi. Vérifiez votre d'abord.

Le 13.10, cette clé ressemble à ceci:

<key name="indicators" type="as">
  <default>['ug-accessibility', 'com.canonical.indicator.keyboard', 'com.canonical.indicator.session', 'com.canonical.indicator.datetime', 'com.canonical.indicator.power', 'com.canonical.indicator.sound', 'application']</default>
  <summary>Which indicators to load</summary>
</key>

2 Vérifiez les indicateurs disponibles

Vous pouvez vérifier vos indicateurs disponibles dans le répertoire /usr/lib/indicators3/7/ ou dans le répertoire /usr/share/unity/indicators/.

3. Écrire un fichier de substitution

Il suffit d'écrire un fichier avec un contenu similaire et de l'enregistrer sous le nom /usr/share/glib-2.0/schemas/myoverride.gschema.override

Pour 12.04

[com.canonical.unity-greeter]
indicators=['ug-keyboard', 'ug-accessibility', 'session', 'datetime', 'power', 'soundmenu', 'application', 'messaging']

Pour 13h10

[com.canonical.unity-greeter]
indicators=['ug-accessibility', 'com.canonical.indicator.keyboard', 'com.canonical.indicator.session', 'com.canonical.indicator.datetime', 'com.canonical.indicator.power', 'com.canonical.indicator.sound', 'application', 'messages']

Dans la version 12.04, j’ajoutais l’indicateur messagerie à la liste par défaut de 12.04. Dans la version 13.10, j’ai ajouté l’indicateur messages à la liste par défaut de 13.10. Je les ai simplement ajoutés à la liste par défaut indiquée dans ÉTAPE 1 , vous pouvez le faire aussi, ou supprimer certains indicateurs par défaut si vous ne le souhaitez pas. qu'ils apparaissent sur l'écran de connexion. (Faites attention aux apostrophes.) IMPORTANT: Le 12.04 vous devez garder le 'ug-keyboard' et l'indicateur 'session' dans la liste, donc NE PAS les supprimer si vous les avez dans la ligne par défaut, ou lightdm sera bloqué dans une boucle sans fin. (comme ici )

Conventions de dénomination dans le fichier de substitution: Pour les fichiers du répertoire /usr/lib/indicators3/7/, le "lib" précédent du nom de fichier et la fin ".so" ne sont pas important, donc pour un fichier nommé libmessaging.so, nous pourrions utiliser "libmessaging.so", "libmessaging" ou "messagerie". "Com.canonical.indicator" précédant le nom du fichier pour les fichiers du répertoire /usr/share/unity/indicators/. n’est pas important, donc pour le fichier "com.canonical.indicator.bluetooth", nous pourrions utiliser "com.canonical.indicator.bluetooth" ou simplement "bluetooth".

4. Sauvegarde (juste au cas où)

Faites une sauvegarde du fichier /usr/share/glib-2.0/schemas/gschemas.compiled.

5. Compiler

Après tout ce parcours

Sudo glib-compile-schemas /usr/share/glib-2.0/schemas

6. Vérifiez les résultats

Après cela, essayez de vous déconnecter et voyez si cela a fonctionné. Vous pouvez également tester l'écran de connexion sans vous déconnecter, si vous essayez depuis un terminal:

lightdm --test-mode

ou

unity-greeter --test-mode 

Pour moi le 12.04, l’indicateur de messagerie a fonctionné, mais pas l’indicateur du menu Imprimantes. Le 13.10, j’ai testé avec l’indicateur de messages et il ne s’est pas affiché, mais il n’a pas produit d’erros. J’ai donc deviné que, par conception, il n’apparaissait pas sur l’écran d’accueil, car il était généralement inutile. J'ai donc vérifié le fichier /usr/share/unity/indicators/com.canonical.indicator.messages et il a confirmé qu'il ne contenait pas de section [desktop_greeter] telle que, par exemple, l'indicateur de session. Donc, si vous ne voulez pas que l'indicateur de messages (ou un autre indicateur sans la section [desktop_greeter]) apparaisse sur l'écran de connexion (même s'il est pratiquement inutile ici), vous devrez également éditer son fichier dans le /usr/share/unity/indicators/, faites une copie de la section [desktop] de ce fichier et renommez la copie en section [desktop_greeter]. E.g pour l'indicateur de message, j'ai fini avec ce fichier pour /usr/share/unity/indicators/com.canonical.indicator.messages:

[Indicator Service]
Name=indicator-messages
ObjectPath=/com/canonical/indicator/messages
Position=50

[desktop]
ObjectPath=/com/canonical/indicator/messages/desktop

[phone]
ObjectPath=/com/canonical/indicator/messages/phone

[desktop_greeter]
ObjectPath=/com/canonical/indicator/messages/desktop

Après avoir modifié le fichier, l'indicateur de messages apparaît également sur l'écran de connexion pour 13.10.

Si quelque chose ne va pas et que l'écran de connexion ne s'affiche pas, il suffit de passer à une console virtuelle CTRL+ALT+F1 et restaurez votre fichier de sauvegarde gschemas.compiled. Ou supprimez votre fichier myoverride.gschema.override et relancez Sudo glib-compile-schemas /usr/share/glib-2.0/schemas. Si le lighdtm se bloque dans une boucle sans fin et que vous ne pouvez pas passer à la console virtuelle, appuyez simplement sur la touche ALT+PrtSc+E combo clé magique, cela va tuer lightdm et après cela, vous pouvez passer à la console virtuelle et faire la réparation.

Quels indicateurs pouvez-vous utiliser? Je ne sais pas, je n'ai que les valeurs par défaut, mais je suppose que vous pouvez en essayer un qui s'installe dans les répertoires énumérés ci-dessus. (Ou vous pourriez écrire un indicateur propre comme toujours.)

Source pour tous ces éléments? J'ai examiné le code: lien et lien

14
falconer