Aplique alterações ou reinicie o Unity dash / launcher /… sem reiniciar ou sair

14

Eu estava na situação em que um aplicativo que eu tinha não estava disponível na lente de aplicativos do Unity depois que removi um .desktoparquivo do iniciador personalizado no meu diretório pessoal que substituiu o do sistema.

Meu problema era que eu precisava aplicar essas alterações e atualizar neste caso o banco de dados de .desktoparquivos instalados , mas outros cenários semelhantes também são imagináveis.

Então, o que eu poderia ter feito (e fazer da próxima vez) em vez de reiniciar ou sair e voltar para atualizar a configuração do Unity e forçá-lo a recarregar e reinicializar todas as suas coisas?

Estou em 15.10, por unity --reset &isso não funciona porque está obsoleto.

Em seguida, tentei unity --replace &, mas isso travou minha área de trabalho e tornou meu TTY7 inutilizável. Primeiro, ficou escuro e parecia que estava reiniciando o Unity e restaurando a área de trabalho, mas depois não reagiu mais a nada. Mudar para TTY1 e voltar me deixou com uma tela preta e o cursor do mouse. Após a reinicialização via login do TTY1 e reboot, ele funcionou novamente e o Unity até reconheceu meu aplicativo agora.

Mas se eu estivesse em uma situação em que uma reinicialização ou logout não era uma opção, qual teria sido o meu caminho?

Byte Commander
fonte
1
você pode tentar setsid unity, isso 'atualizará' a unidade. Em uma das minhas instalações, o outro resulta em um logout. Outros parecem dizer que redefine os padrões, não aqui em nenhum dos casos.
doug

Respostas:

33

Pressione Alt+ F2digite unitye pressione Enter.

padlyuck
fonte
3
Simples, mas genial. Não faço ideia por que ninguém pensou nisso antes. Não sei quanto do Unity é reiniciado, mas é definitivamente o suficiente para reconhecer arquivos .desktop substituídos. Obrigado! Conceder-lhe-ei a recompensa em alguns dias, aguardando novas respostas.
Byte Commander
1
Parabéns pela sua primeira recompensa @padlyuck! : D
Byte Commander
9
Eu fiz isso no 16.04 e estraguei minhas janelas e alguns aplicativos se fecharam (por exemplo, navegador).
Daniel
Você pode por favor elaborar nisso ? o que exatamente isto faz?
George D
1
Cuidado - eu fiz isso no 14.04 e ele desligou o X (e todos os aplicativos) e tive que fazer login novamente.
Davida
6
  • O Unity é apenas um plugin do Compiz, você pode recarregá-lo usando:

    compiz --replace
    

    Ou para deixar você fechar o terminal

    compiz --replace & disown
    

    Para confirmar, você pode verificar:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • De outra forma, a luz recarrega apenas o plug-in (muito rápido)

    1. Crie o compiz_plugin_reloaderscript

      Fonte: blog do iXce: Compiz plugin reloader

      #!/usr/bin/env python
      
      '''Compiz plugin reloader (through compizconfig)
      Copyright (c) 2007 Guillaume Seguin <[email protected]>
      Licensed under GNU GPLv2'''
      
      import compizconfig
      from sys import argv, exit
      from time import sleep
      
      if __name__ == "__main__":
          if len (argv) < 2:
              print "Usage : %s plugin1 [plugin2 ... pluginN]" % argv[0]
              exit (2)
          plugins = argv[1:]
          context = compizconfig.Context (basic_metadata = True)
          print "Unloading " + " ".join (plugins)
          for plugin in plugins:
              if plugin not in context.Plugins:
                  print "Warning : %s plugin not found" % plugin
                  plugins.remove (plugin)
                  continue
              context.Plugins[plugin].Enabled = False
          if len (plugins) == 0:
              print "Error : no plugin found"
              exit (1)
          context.Write ()
          print "Waiting for settings update"
          sleep (2)
          print "Loading " + " ".join (plugins)
          for plugin in plugins:
              context.Plugins[plugin].Enabled = True
          context.Write ()
    2. Corrigir permissões

      chmod +x compiz_plugin_reloader
      
    3. Correr como:

      ./compiz_plugin_reloader unityshell
      
user.dz
fonte