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

10

É possível adicionar ícones (além de padrões) ao painel superior da tela de login?

Se sim, então quais ícones de aplicativos serão adicionados ao painel superior da tela de login, além dos padrões ( onboard, sound, network-manager, etc. ). E como adicionar isso?

Estou executando o Ubuntu 13.10

    
por Avinash Raj 30.11.2013 / 11:38

1 resposta

14

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

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

1. Verifique os indicadores padrão

Você pode ver seus indicadores padrão no arquivo dconf-editor ou 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.

Em 13.10, esta 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 diretório /usr/lib/indicators3/7/ ou no diretório /usr/share/unity/indicators/ .

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 mensagens à lista padrão 12.04. Na versão 13.10, adicionei o indicador mensagens à lista padrão de 13.10. Eu simplesmente os adicionei à lista padrão mostrada no PASSO 1 , você pode fazer isso também, ou remover alguns dos indicadores padrão se você não quiser que eles apareçam na tela de login. (Cuidado com os apóstrofos). IMPORTANTE : Em 12.04 você tem que manter o 'ug-keyboard' e o indicador 'sessão' em a lista, então NÃO os remove se você os tiver na linha padrão, ou o lightdm ficará preso em um loop sem fim. (como aqui )

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

4. Backup (apenas no caso)

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

5. Compile

Depois de tudo isso acontecer

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 da tela de login sem sair, se você tentar de um terminal:

lightdm --test-mode

ou

unity-greeter --test-mode 

Para mim, no dia 12.04, o indicador de mensagens funcionou, o indicador de minhas impressoras não. No 13.10 eu testei com o indicador de mensagens e ele não apareceu, mas nenhum dos dois produziu os erros, então imaginei que não é aparecendo na tela de boas-vindas, porque é basicamente inútil lá. Por isso, verifiquei o ficheiro /usr/share/unity/indicators/com.canonical.indicator.messages e confirmou que não tem uma secção [desktop_greeter] como, por exemplo, o indicador de sessão. Então, se você quer o indicador de mensagens (ou outro indicador sem a seção [desktop_greeter]) para aparecer na tela de login (mesmo que seja inútil), você também terá que editar seu 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 que acabei com esse 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 apareceu na tela de login para 13.10 também.

Se algo correr mal e a tela de login não aparecer, basta mudar para um console virtual CTRL + ALT + F1 e restaura o arquivo de backup gschemas.compiled . Ou remova o arquivo myoverride.gschema.override e execute sudo glib-compile-schemas /usr/share/glib-2.0/schemas novamente. Se o lighdtm stucks em um loop infinito, e você não pode mudar para o console virtual, apenas pressione a tecla mágica ALT + PrtSc + E combo, isso vai matar o lightdm e depois disso você pode mudar para o console virtual e fazer o reparo.

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

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

    
por falconer 17.12.2013 / 22:57