web-dev-qa-db-fra.com

Appliquez les modifications ou redémarrez Unity dash / launcher / ... sans redémarrage ni déconnexion

J'étais dans le cas où une application que je possédais n'était pas disponible dans l'optique des applications Unity après avoir supprimé un fichier de programme de lancement personnalisé .desktop de mon répertoire personnel qui avait remplacé le fichier système.

Mon problème était que je devais appliquer ces modifications et mettre à jour dans ce cas la base de données de fichiers .desktop installés, mais d'autres scénarios similaires sont également imaginables.

Alors qu'est-ce que j'aurais pu faire (et faire la prochaine fois) au lieu de redémarrer ou de me déconnecter puis de revenir pour mettre à jour la configuration d'Unity et la forcer à recharger et réinitialiser tout son contenu?

Je suis sur 15.10, donc unity --reset & ne fonctionne pas car il est obsolète.

J'ai ensuite essayé unity --replace & à la place, mais cela a bloqué mon bureau et rendu mon TTY7 inutilisable. La première fois, il faisait noir et semblait relancer Unity et restaurer le bureau, mais ensuite, il ne réagissait plus. Basculer vers TTY1 et arrière gauche me avec un écran noir plus le curseur de la souris. Après le redémarrage via la connexion TTY1 et reboot, cela a fonctionné à nouveau et Unity a même reconnu mon application maintenant.

Mais si j'avais été dans une situation où un redémarrage ou une déconnexion n'était pas une option, quelle aurait été ma façon de faire?

14
Byte Commander

Presse Alt+F2 tapez unity et appuyez sur Enter.

33
padlyuck
  • Unity est juste un plugin Compiz, vous pouvez le recharger en utilisant:

    compiz --replace
    

    Ou vous laisser fermer le terminal

    compiz --replace & disown
    

    Pour confirmer, vous pouvez vérifier:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • Autre moyen, light ne recharge que le plugin (très rapide)

    1. Créez le script compiz_plugin_reloader

      Source: blog d’iXce: Reloader du plugin 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 __== "__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. Autorisations de correctifs

      chmod +x compiz_plugin_reloader
      
    3. Courir comme:

      ./compiz_plugin_reloader unityshell
      
6
user.dz