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

10

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

entrez la description de l'image ici

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ées, audio, gestionnaire de réseau, etc. ). Et comment puis-je ajouter cela?

J'utilise Ubuntu 13.10

Avinash Raj
la source
C'est le gestionnaire de connexion de lightdm, vous devrez donc éditer ses fichiers /usr/sharedirectement. Je pense qu'il y avait un personnalisateur lightdm qui permettait cela et qui changeait l'arrière-plan, mais je ne le fais pas s'il fonctionne toujours plus ..
Wilf
1
puis-je obtenir ce fond d'écran?
@Utkarsh j'ai téléchargé l'image ci-dessus à partir de la recherche d'images Google.
Avinash Raj

Réponses:

14

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

Oui, il est possible de changer les indicateurs pour l'unité-greeter. Nous pourrions utiliser GSettings pour modifier les paramètres, mais parce que l'unité-greeter est uniquement exécutée par l'utilisateur lightdm, (donc ses paramètres n'affectent personne d'autre), il est plus facile d'écrire simplement un .overridefichier.

1. Vérifiez les indicateurs par défaut

Vous pouvez voir vos indicateurs par défaut dans le dconf-editorou dans le /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xmlfichier. Dans ce dernier fichier, vous verrez une clé similaire à celle-ci:

 <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 le vôtre en premier.

Au 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 /usr/lib/indicators3/7/répertoire ou dans le /usr/share/unity/indicators/répertoire.

3. Écrivez un fichier de remplacement

Il suffit d'écrire un fichier avec un contenu similaire et de l'enregistrer sous /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 13.10

[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'ai ajouté l' indicateur de messagerie à la liste par défaut de 12.04. Dans la version 13.10, j'ai ajouté l' indicateur de messages à la liste par défaut de 13.10. Je les ai simplement ajoutés à la liste par défaut indiquée à l' ÉTAPE 1 , vous pouvez également le faire ou en supprimer certains des indicateurs par défaut si vous ne souhaitez pas qu'ils apparaissent sur l'écran de connexion. (Attention aux apostrophes.) IMPORTANT : Le 12.04, vous devez garder le 'ug-keyboard' et l' indicateur 'session' dans la liste, donc NE les supprimez PAS si vous les avez dans la ligne par défaut, ou lightdm restera bloqué dans une boucle sans fin. (comme ici )

Conventions de dénomination dans le fichier de remplacement: pour les fichiers du /usr/lib/indicators3/7/répertoire, le "lib" précédant le nom de fichier et la fin ".so" ne sont pas importants, donc pour un fichier nommé libmessaging.so, nous pourrions utiliser "libmessaging.so", "libmessaging" ou 'Messagerie'. Pour les fichiers du /usr/share/unity/indicators/répertoire, le précédent "com.canonical.indicator" du nom de fichier. 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 /usr/share/glib-2.0/schemas/gschemas.compiledfichier.

5. Compiler

Après tout ce run

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é. Ou vous pouvez également faire un test de 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é, mon indicateur de menu d'imprimante ne fonctionne pas. Le 13.10, j'ai testé avec l'indicateur de messages et il ne s'est pas affiché, mais aucun n'a produit d'erreurs, donc j'ai deviné que c'est par conception ne pas apparaître sur l'écran d'accueil, car il est surtout inutile là-bas. J'ai donc vérifié le /usr/share/unity/indicators/com.canonical.indicator.messagesfichier et il a confirmé qu'il n'avait pas de section [desktop_greeter] comme par exemple l'indicateur de session. Donc, si vous ne souhaitez 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 principalement inutile là-bas), vous devrez également modifier son fichier dans le /usr/share/unity/indicators/répertoire, et faites une copie de la section [desktop] dans ce fichier et renommez la copie en section [desktop_greeter]. Par exemple, pour l'indicateur de messages, je me suis retrouvé 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 effectué cette modification dans le fichier, l'indicateur de messages est également apparu sur l'écran de connexion pour 13.10.

Si quelque chose va mal et l'écran de connexion ne vient pas, tout simplement passer à une console virtuelle CTRL+ ALT+ F1et restaurer votre sauvegarde gschemas.compiledfichier. Ou supprimez votre myoverride.gschema.overridefichier et exécutez à sudo glib-compile-schemas /usr/share/glib-2.0/schemasnouveau. Si le lighdtm se bloque dans une boucle sans fin et que vous ne pouvez pas passer à la console virtuelle, appuyez simplement sur la combinaison de touches magiques ALT+ PrtSc+ E, cela tuera lightdm et après cela, vous pourrez basculer sur la console virtuelle et effectuer 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 essayer celles qui s'installent dans les répertoires ci-dessus. (Ou vous pouvez toujours écrire un indicateur propre .)

Source pour tout cela? J'ai regardé le code: lien et lien

fauconnier
la source
voulez-vous dire est de trouver le libmessaging.sofichier puis de le copier-coller dans le /usr/lib/indicators3/7répertoire, ai-je raison?
Avinash Raj
@AvinashRaj Non, je voulais dire qu'il est possible que le répertoire où l'unité-greeter recherche les indicateurs soit différent selon les versions. D'après le code source que je n'ai pu obtenir, qu'il y a 2 répertoires où l'unité-greeter recherche des indicateurs. Le /usr/share/unity/indicatorsmême aspect par versions, mais le /usr/lib/indicators3/7directeur peut être différent par version. Je voulais donc rechercher les indicateurs par défaut installés, regarder où ils sont stockés et simplement regarder dans ce répertoire pour voir quels indicateurs sont disponibles, puis vous pouvez utiliser leurs noms dans la liste.
fauconnier
voir i.imgur.com/JPrincG.png
Avinash Raj
@AvinashRaj Vous pouvez essayer tous les indicateurs de ces 2 répertoires. Si vous en utilisez un à partir du usr/lib/...répertoire, les conventions de dénomination que j'ai écrites ci-dessus sont valables, donc cela syncindicatorsuffit, mais vous pouvez libsyncindicator.soégalement les utiliser . Pour l'autre répertoire, vous pouvez également utiliser le nom complet du fichier ou laisser de côté la com.canonical.indicator.section. Donc, dans votre cas, une ligne valide dans le fichier de remplacement serait quelque chose comme ceci:indicators=['libsyncindicator.so', 'printersmenu', 'libapplication', 'com.canonical.indicator.sound', 'messages']
falconer
Je ne veux pas tomber dans une situation critique, essayez-le sur Ubuntu 13.10 et informez-moi si cela fonctionne.
Avinash Raj