システム全体のファイルを上書きしていたホームディレクトリからカスタム.desktop
ランチャーファイルを削除した後、Unityアプリケーションレンズで使用できなかったアプリケーションがある状況にありました。
私の問題は、これらの変更を適用し、この場合インストールされた.desktop
ファイルのデータベースを更新する必要があることでしたが、他の同様のシナリオも考えられます。
それで、Unity構成を更新し、すべての内容をリロードして再初期化するために、再起動またはログアウトしてから再ログインする代わりに、私は何をすることができましたか(そして次回も)?
私は15.10にいるので、 unity --reset &
は廃止されているため機能しません。
次に、代わりにunity --replace &
を試しましたが、デスクトップがクラッシュし、TTY7が使用できなくなりました。最初は暗く点滅し、Unityを再起動してデスクトップを復元しているように見えましたが、その後は何にも反応しませんでした。 TTY1に切り替えて戻ると、黒い画面とマウスカーソルが残りました。 TTY1ログインとreboot
を介して再起動した後、再び機能し、Unityが私のアプリケーションを認識しました。
しかし、再起動またはログアウトが選択できない状況にあったとしたら、どうすればよいでしょうか?
押す Alt+F2 unity
と入力して押します Enter。
Unityは単なるCompizプラグインです。次を使用してリロードできます。
compiz --replace
または、ターミナルを閉じます
compiz --replace & disown
確認するには、次を確認できます。
$ file `which unity`
/usr/bin/unity: Python script, ASCII text executable
$ more /usr/bin/unity
別の方法では、プラグインのみを軽くリロードします(非常に迅速)
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 __== "__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 ()
権限を修正
chmod +x compiz_plugin_reloader
として実行:
./compiz_plugin_reloader unityshell