É possível adicionar ícones ao painel superior da tela de login?


10

É possível adicionar ícones (que não sejam padrões) ao painel superior da tela de login?

insira a descrição da imagem aqui

Se sim, quais ícones dos aplicativos serão adicionados ao painel superior da tela de login, além dos padrões ( integrados, som, gerenciador de rede etc. ). E como adicionar isso?

Estou executando o Ubuntu 13.10


É o gerenciador de login lightdm, então você terá que editar seus arquivos /usr/sharediretamente. Acho que houve um customizador LightDM que permitiu isso e fundo mudando, mas eu não faria se ele ainda funciona mais ..
Wilf

1
posso obter esse papel de parede?

@Utkarsh eu baixei a imagem acima da pesquisa de imagens do google.
Avinash Raj

Respostas:


14

Estou no 12.04, mas isso também funcionará no 13.10.

Sim, é possível alterar os indicadores para o cumprimentador da unidade. Poderíamos usar o GSettings para modificar as configurações, mas como o unity-greeter é executado apenas pelo usuário do lightdm, (portanto, as configurações não afetam mais ninguém), é mais fácil escrever um .overridearquivo.

1. Verifique os indicadores padrão

Você pode ver seus indicadores padrão no arquivo dconf-editorou int /usr/share/glib-2.0/schemas/com.canonical.unity-greeter.gschema.xml. No último arquivo, você verá uma chave semelhante a esta:

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

, esses são os padrões para mim. Verifique o seu primeiro.

Na 13.10, essa chave é assim:

<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) Verifique os indicadores disponíveis

Você pode verificar seus indicadores disponíveis no /usr/lib/indicators3/7/diretório ou no /usr/share/unity/indicators/diretório

3. Escreva um arquivo de substituição

Basta escrever um arquivo com conteúdo semelhante e salvá-lo como /usr/share/glib-2.0/schemas/myoverride.gschema.override

Para 12.04

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

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

Na versão 12.04, adicionei o indicador de mensagens à lista padrão 12.04. Na versão 13.10, adicionei o indicador de mensagens à lista padrão da 13.10. Simplesmente os adicionei à lista padrão mostrada na Etapa 1 , você também pode fazer isso ou remover alguns dos indicadores padrão, se não quiser que eles apareçam na tela de login. (Cuidado com os apóstrofes.) IMPORTANTE : No 12.04, você deve manter o indicador 'ug-keyboard' e 'session' na lista, portanto NÃO os remova se os tiver na linha padrão, ou o lightdm ficará bloqueado. em um loop sem fim. (como aqui )

Convenções de nomenclatura no arquivo de substituição: para arquivos no /usr/lib/indicators3/7/diretório, a "lib" anterior e a finalização ".so" do nome do arquivo não são importantes; portanto, para um arquivo chamado libmessaging.so, poderíamos usar 'libmessaging.so', 'libmessaging' ou 'Mensagens'. Para os arquivos no /usr/share/unity/indicators/diretório, o nome do arquivo é "com.canonical.indicator" anterior. não é importante, portanto, para o arquivo "com.canonical.indicator.bluetooth", poderíamos usar 'com.canonical.indicator.bluetooth' ou simplesmente "bluetooth".

4. Backup (apenas no caso)

Faça um backup do /usr/share/glib-2.0/schemas/gschemas.compiledarquivo.

5. Compilar

Depois de toda essa corrida

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

6. Verifique os resultados

Depois disso, tente sair e ver se funcionou. Ou você também pode fazer um teste na tela de login sem sair, se tentar em um terminal:

lightdm --test-mode

ou

unity-greeter --test-mode 

Para mim, no 12.04, o indicador de mensagens funcionou, meu indicador de menu de impressoras não. Na 13.10, testei com o indicador de mensagens e ele não apareceu, mas nenhum dos erros foi produzido, então imaginei que é por design que não aparece na tela greeter, porque é praticamente inútil lá. Então, verifiquei o /usr/share/unity/indicators/com.canonical.indicator.messagesarquivo e ele confirmou que não possui uma seção [desktop_greeter] como, por exemplo, o indicador de sessão. Portanto, se você não deseja que o indicador de mensagens (ou outro indicador sem a seção [desktop_greeter]) apareça na tela de login (mesmo que a maioria seja inútil), você também precisará editar o arquivo no /usr/share/unity/indicators/diretório e faça uma cópia da seção [desktop] nesse arquivo e renomeie a cópia para a seção [desktop_greeter]. Por exemplo, para o indicador de mensagens, acabei com este arquivo para /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

Depois de fazer essa alteração no arquivo, o indicador de mensagens também apareceu na tela de login da 13.10.

Se algo der errado e a tela de login não aparecer, basta alternar para um console virtual CTRL+ ALT+ F1e restaurar seu gschemas.compiledarquivo de backup . Ou remova seu myoverride.gschema.overridearquivo e execute sudo glib-compile-schemas /usr/share/glib-2.0/schemasnovamente. Se o lighdtm travar em um loop sem fim e você não puder alternar para o console virtual, basta pressionar a combinação de teclas mágicas ALT+ PrtSc+ E, isso matará o lightdm e, depois disso, você poderá alternar para o console virtual e fazer o reparo.

Quais indicadores você pode usar? Não sei, tenho apenas os padrões, mas acho que você pode experimentar qualquer um que se instale nos diretórios listados acima. (Ou você pode escrever um próprio indicador, como sempre.)

Fonte para tudo isso? Eu olhei para o código: link e link


você quer dizer é encontrar o libmessaging.soarquivo e copiá-lo e colá-lo no /usr/lib/indicators3/7diretório, estou correto?
Avinash Raj

@AvinashRaj Não, eu quis dizer que é possível que o diretório em que o unity-greeter procure os indicadores seja diferente nas versões. Pelo código-fonte que eu consegui, existem 2 diretórios nos quais o unity-greeter procura por indicadores. O /usr/share/unity/indicatorsparece mesmo por versões, mas o /usr/lib/indicators3/7diretor pode ser diferente com a versão. Então, eu pretendia procurar os indicadores padrão instalados, ver onde eles estão armazenados e simplesmente procurar nesse diretório para ver quais indicadores estão disponíveis, para que você possa usar os nomes deles na lista.
Falconer


@AvinashRaj Você pode experimentar todos os indicadores desses 2 diretórios. Se você usa um usr/lib/...diretório, as convenções de nomenclatura que escrevi acima são válidas, o que syncindicatoré suficiente, mas você libsyncindicator.sotambém pode usá-lo . Para o outro diretório, você também pode usar o nome inteiro do arquivo ou deixar de fora a com.canonical.indicator.seção. Assim, no seu caso, uma linha válida no arquivo de substituição seria algo como isto:indicators=['libsyncindicator.so', 'printersmenu', 'libapplication', 'com.canonical.indicator.sound', 'messages']
Falconer

eu não quero cair em nenhuma situação crítica plz experimentá-lo no ubuntu 13.10 e notificar-me se funcionar.
Avinash Raj
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.