Aplique alterações ou reinicie o Unity dash / launcher /… sem reinicialização ou logout

14

Eu estava na situação em que um aplicativo que eu tinha não estava disponível na lente dos aplicativos Unity depois que eu removi um arquivo .desktop launcher personalizado em meu diretório inicial que havia substituído o sistema inteiro.

Meu problema era que eu precisava aplicar essas alterações e atualizar, neste caso, o banco de dados dos arquivos .desktop 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 reinicializar ou sair e voltar para atualizar a configuração do Unity e forçá-la a recarregar e reinicializar todas as suas coisas?

Eu estou no dia 15.10, então unity --reset & não funciona porque está obsoleto.

Em vez disso, eu tentei unity --replace & , mas isso quebrou minha área de trabalho e tornou meu TTY7 inutilizável. Ele primeiro brilhou escuro e parecia que estava reiniciando o Unity e restaurando a área de trabalho, mas depois não reagiu mais nada. Mudar para TTY1 e voltar me deixou com uma tela preta mais o cursor do mouse. Após a reinicialização via login TTY1 e reboot , 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 fosse uma opção, qual seria o caminho a seguir?

    
por Byte Commander 03.10.2015 / 18:56

2 respostas

33

Pressione Alt + F2 digite unity e pressione Enter .

    
por padlyuck 26.11.2015 / 14:32
6
  • 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
    
  • Outra forma, a luz recarrega apenas o plugin (muito rápido)

    1. Crie o script compiz_plugin_reloader

      Fonte: blog do iXce: recarregador do plug-in do Compiz

      #!/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. Executar como:

      ./compiz_plugin_reloader unityshell
      
por user.dz 30.11.2015 / 16:43