È possibile aggiungere icone al pannello superiore della schermata di accesso?


10

È possibile aggiungere icone (diverse dalle impostazioni predefinite) al pannello superiore della schermata di accesso?

inserisci qui la descrizione dell'immagine

In caso affermativo, quali icone delle applicazioni verranno aggiunte al pannello superiore della schermata di accesso diverse dalle impostazioni predefinite ( integrata, audio, gestore della rete, ecc .) E come posso aggiungerlo?

Sto eseguendo Ubuntu 13.10


È il gestore degli accessi lightdm, quindi dovrai modificare /usr/sharedirettamente i suoi file . Penso che ci sia stato un personalizzatore di lightdm che ha permesso questo e ha cambiato lo sfondo, ma non lo faccio se funziona ancora più ..
Wilf

1
posso ottenere questo sfondo?

@Utkarsh ho scaricato l'immagine sopra dalla ricerca di immagini di Google.
Avinash Raj,

Risposte:


14

Sono il 12.04, ma funzionerà anche il 13.10.

Sì, è possibile modificare gli indicatori per l'unità-greeter. Potremmo usare GSettings per modificare le impostazioni, ma poiché l'unità-greeter è gestito solo dall'utente lightdm (quindi le sue impostazioni non influiscono su nessun altro) è più semplice scrivere un .overridefile.

1. Controllare gli indicatori predefiniti

Puoi vedere gli indicatori predefiniti nel file dconf-editoro nel /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xmlfile int . In quest'ultimo file vedrai una chiave simile a questa:

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

, quelle sono le impostazioni predefinite per me. Controlla prima il tuo.

Il 13.10 questa chiave è simile alla seguente:

<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 Controlla gli indicatori disponibili

Puoi controllare gli indicatori disponibili nella /usr/lib/indicators3/7/directory o nella /usr/share/unity/indicators/directory.

3. Scrivere un file di sostituzione

Basta scrivere un file con contenuti simili e salvarlo come /usr/share/glib-2.0/schemas/myoverride.gschema.override

Per 12.04

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

Per 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']

Nella versione 12.04 ho aggiunto l' indicatore di messaggistica all'elenco predefinito di 12.04. Nella versione 13.10 ho aggiunto l' indicatore dei messaggi all'elenco predefinito di 13.10. Li ho semplicemente aggiunti all'elenco predefinito mostrato nel PASSAGGIO 1 , puoi farlo anche tu o rimuoverne alcuni dagli indicatori predefiniti se non vuoi che vengano visualizzati nella schermata di accesso. (Fai attenzione agli apostrofi.) IMPORTANTE : su 12.04 devi tenere la 'tastiera ug' e l' indicatore 'sessione' nell'elenco, quindi NON rimuoverli se li hai nella linea predefinita, o lightdm rimarrà bloccato in un ciclo infinito. (come qui )

Convenzioni di denominazione nel file override: per i file nella /usr/lib/indicators3/7/directory il nome file precedente "lib" e la fine ".so" non sono importanti, quindi per un file chiamato libmessaging.so potremmo usare "libmessaging.so", "libmessaging" o 'Messaggi'. Per i file nella /usr/share/unity/indicators/directory il nome file precedente "com.canonical.indicator". non è importante, quindi per il file "com.canonical.indicator.bluetooth" potremmo usare "com.canonical.indicator.bluetooth" o semplicemente "bluetooth".

4. Backup (per ogni evenienza)

Fai un backup del /usr/share/glib-2.0/schemas/gschemas.compiledfile.

5. Compila

Dopo tutto questo correre

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

6. Controlla i risultati

Dopo questo provare a disconnettersi e vedere se ha funzionato. Oppure puoi anche fare un test della schermata di accesso senza disconnettersi, se provi da un terminale:

lightdm --test-mode

o

unity-greeter --test-mode 

Per me il 12.04 l'indicatore di messaggistica ha funzionato, il mio indicatore del menu della stampante non funziona. Il 13.10 ho provato con l'indicatore dei messaggi e non si è fatto vedere, ma non ho prodotto errori, quindi ho indovinato che, di progettazione, non compare sullo schermo di benvenuto, perché lì è quasi inutile. Quindi ho controllato il /usr/share/unity/indicators/com.canonical.indicator.messagesfile e ha confermato che non ha una sezione [desktop_greeter] come ad esempio l'indicatore di sessione. Quindi, se non vuoi che l'indicatore dei messaggi (o un altro indicatore senza la sezione [desktop_greeter]) venga visualizzato nella schermata di accesso (anche se è per lo più inutile lì), dovrai anche modificare il suo file nella /usr/share/unity/indicators/directory e fare una copia della sezione [desktop] in quel file e rinominare la copia nella sezione [desktop_greeter]. Ad esempio per l'indicatore dei messaggi ho finito con questo file per /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

Dopo aver apportato questa modifica al file, l'indicatore dei messaggi è stato visualizzato anche nella schermata di accesso per 13.10.

Se qualcosa va storto e la schermata di accesso non viene visualizzata, passa a una console virtuale CTRL+ ALT+ F1e ripristina il gschemas.compiledfile di backup . Oppure rimuovi il tuo myoverride.gschema.overridefile ed eseguilo di sudo glib-compile-schemas /usr/share/glib-2.0/schemasnuovo. Se lighdtm si blocca in un ciclo infinito e non è possibile passare alla console virtuale, basta premere la combinazione di tasti magici ALT+ PrtSc+ E, questo ucciderà lightdm e successivamente sarà possibile passare alla console virtuale e fare la riparazione.

Quali indicatori puoi usare? Non lo so, ho solo i valori predefiniti, ma immagino che tu possa provare quelli che si installano su quelle directory sopra elencate. (O potresti scrivere un indicatore proprio come sempre.)

Fonte per tutti questi? Ho esaminato il codice: link e link


volevi dire è trovare il libmessaging.sofile quindi copiarlo e incollarlo nella /usr/lib/indicators3/7directory, ho ragione?
Avinash Raj,

@AvinashRaj No, intendevo dire che è possibile che la directory in cui l'unità-greeter cerca gli indicatori sia diversa per versione. Dal codice sorgente che ho potuto ottenere solo che ci sono 2 directory in cui l'unità-greeter cerca gli indicatori. Lo /usr/share/unity/indicatorssembra stesso per le versioni, ma il /usr/lib/indicators3/7regista può essere diverso dalla versione. Quindi intendevo cercare gli indicatori predefiniti installati, guardare dove sono memorizzati e semplicemente cercare in quella directory per vedere quali indicatori sono disponibili, quindi puoi usare i loro nomi nell'elenco.
falconiere,


@AvinashRaj Puoi provare tutti gli indicatori di quelle 2 directory. Se ne usi uno dalla usr/lib/...directory, valgono le convenzioni di denominazione che ho scritto sopra, quindi syncindicatorè sufficiente ma puoi libsyncindicator.soanche usarlo . Per l'altra directory puoi anche usare l'intero nome del file, oppure puoi tralasciare la com.canonical.indicator.sezione. Quindi nel tuo caso una riga valida nel file override sarebbe qualcosa del genere:indicators=['libsyncindicator.so', 'printersmenu', 'libapplication', 'com.canonical.indicator.sound', 'messages']
falconiere

non voglio cadere in nessuna situazione critica per provarlo su Ubuntu 13.10 e avvisarmi se funziona.
Avinash Raj,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.