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?
Presse Alt+F2 tapez unity
et appuyez sur Enter.
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)
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 ()
Autorisations de correctifs
chmod +x compiz_plugin_reloader
Courir comme:
./compiz_plugin_reloader unityshell