Aplicar cambios o reiniciar Unity dash / launcher / ... sin reiniciar o cerrar sesión

14

Estaba en la situación de que una aplicación que tenía no estaba disponible en la lente de aplicaciones de Unity después de eliminar un .desktoparchivo de inicio personalizado en mi directorio de inicio que había anulado el de todo el sistema.

Mi problema era que necesitaba aplicar esos cambios y actualizar en este caso la base de datos de .desktoparchivos instalados , pero también se pueden imaginar otros escenarios similares.

Entonces, ¿qué podría haber hecho (y hacer la próxima vez) en lugar de reiniciar o cerrar sesión y volver a iniciar sesión para actualizar la configuración de Unity y obligarla a recargar y reiniciar todo su material?

Estoy en 15.10, por lo unity --reset &que no funciona porque está en desuso.

Luego intenté en su unity --replace &lugar, pero eso bloqueó mi escritorio y dejó inutilizable mi TTY7. Primero se iluminó y parecía que estaba reiniciando Unity y restaurando el escritorio, pero luego ya no reaccionó a nada. Cambiar a TTY1 y volver me dejó con una pantalla en negro más el cursor del mouse. Después de reiniciar a través de TTY1 reboot, funcionó nuevamente y Unity incluso reconoció mi aplicación ahora.

Pero si hubiera estado en una situación en la que reiniciar o cerrar sesión no fuera una opción, ¿cuál habría sido mi camino a seguir?

Byte Commander
fuente
1
puedes intentarlo setsid unity, "refrescará" la unidad. En una de mis instalaciones lo hace, la otra da como resultado un cierre de sesión. Otros parecen decir que se restablece a los valores predeterminados, no aquí en ninguno de los casos.
doug

Respuestas:

33

Presione Alt+ F2type unityy presione Enter.

padlyuck
fuente
3
Simple pero genial. No tengo idea de por qué nadie pensó en esto antes. No sé qué cantidad de Unity se reinicia, pero definitivamente es suficiente para reconocer archivos .desktop reemplazados. ¡Gracias! Te otorgaré la recompensa en unos días, esperando nuevas respuestas.
Byte Commander
1
¡Felicitaciones a tu primera recompensa @padlyuck! : D
Byte Commander
99
Hice esto en 16.04 y estropeé mis ventanas y algunas aplicaciones se cerraron (por ejemplo, navegador).
Daniel
¿Puedes por favor elaborar sobre esto? ¿Qué hace exactamente?
George D el
1
Cuidado: hice esto el 14.04 y cerró X (y todas las aplicaciones) y tuve que iniciar sesión nuevamente.
davidA
6
  • Unity es solo un complemento de Compiz, puede recargarlo usando:

    compiz --replace
    

    O para dejarte cerrar la terminal

    compiz --replace & disown
    

    Para confirmar, puede verificar:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • Otra forma, light vuelve a cargar solo el complemento (muy rápido)

    1. Crea el compiz_plugin_reloaderguión

      Fuente: blog de 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. Arreglar permisos

      chmod +x compiz_plugin_reloader
      
    3. Correr como:

      ./compiz_plugin_reloader unityshell
      
user.dz
fuente