Applica modifiche o riavvia Unity dash / launcher / ... senza riavviare o disconnettersi


14

Mi trovavo nella situazione in cui un'applicazione che avevo non era disponibile nella lente delle applicazioni Unity dopo aver rimosso un .desktopfile di avvio personalizzato nella mia directory home che aveva sostituito quello a livello di sistema.

Il mio problema era che dovevo applicare tali modifiche e aggiornare in questo caso il database dei .desktopfile installati , ma sono immaginabili anche altri scenari simili.

Quindi cosa avrei potuto fare (e fare la prossima volta) invece di riavviare o disconnettermi e riconnettermi per aggiornare la configurazione di Unity e forzarla a ricaricare e reinizializzare tutte le sue cose?

Sono il 15.10, quindi unity --reset &non funziona perché è obsoleto.

Allora ho provato unity --replace &invece, ma questo ha provocato l'arresto anomalo del desktop e ha reso il mio TTY7 inutilizzabile. Inizialmente è apparso scuro e sembrava che stesse riavviando Unity e ripristinando il desktop, ma poi non ha più reagito a nulla. Passare a TTY1 e viceversa mi ha lasciato con una schermata nera più il cursore del mouse. Dopo il riavvio tramite accesso TTY1 e reboot, ha funzionato di nuovo e Unity ha persino riconosciuto la mia applicazione ora.

Ma se mi sarei trovato in una situazione in cui un riavvio o il logout non fosse possibile, quale sarebbe stata la mia strada da percorrere?


1
puoi provare setsid unity, "rinfrescerà" l'unità. In una delle mie installazioni lo fa, l'altro risulta in un logout. Altri sembrano dire che ripristina i valori predefiniti, non qui in entrambi i casi.
Doug

Risposte:


33

Premere Alt+ F2tipo unitye premere Enter.


3
Semplice ma geniale. Non ho idea del perché nessuno ci abbia pensato prima. Non so quanto di Unity venga riavviato, ma è sicuramente abbastanza per riconoscere i file .desktop sovrascritti. Grazie! Ti ricompenserò tra pochi giorni, in attesa di ulteriori risposte.
Byte Commander

1
Congratulazioni per il tuo primo premio @padlyuck! : D
Byte Commander

9
L'ho fatto nel 16.04 e ho incasinato le mie finestre e alcune app si sono chiuse (ad esempio il browser).
Daniel,

Potete per favore approfondire questo? Che cosa fa esattamente?
George D,

1
Attenzione: l'ho fatto il 14.04 e ha chiuso X (e tutte le app) e ho dovuto riconnettermi.
David,

6
  • Unity è solo un plugin Compiz, puoi ricaricarlo usando:

    compiz --replace
    

    O per farti chiudere il terminale

    compiz --replace & disown
    

    Per confermare, puoi controllare:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • In un altro modo, ricaricare la luce solo il plugin (molto veloce)

    1. Crea lo compiz_plugin_reloaderscript

      Fonte: blog iXce: ricaricatore plug-in Compiz

      #!/usr/bin/env python
      
      '''Compiz plugin reloader (through compizconfig)
      Copyright (c) 2007 Guillaume Seguin <guillaume@segu.in>
      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. Risolvi i permessi

      chmod +x compiz_plugin_reloader
      
    3. Correre come:

      ./compiz_plugin_reloader unityshell
      
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.