Terapkan perubahan atau mulai ulang dasbor Unity / launcher / ... tanpa reboot atau logout

14

Saya berada dalam situasi di mana aplikasi yang saya miliki tidak tersedia di lensa aplikasi Unity setelah saya menghapus .desktopfile launcher kustom di direktori home saya yang telah menimpa yang di seluruh sistem.

Masalah saya adalah bahwa saya perlu menerapkan perubahan itu dan memperbarui dalam hal ini database .desktopfile yang diinstal , tetapi skenario serupa lainnya juga bisa dibayangkan.

Jadi apa yang bisa saya lakukan (dan lakukan di waktu berikutnya) alih-alih me-reboot atau masuk dan kembali untuk memperbarui konfigurasi Unity dan memaksanya untuk memuat ulang dan menginisialisasi ulang semua barangnya?

Saya pada 15,10, jadi unity --reset &tidak berfungsi karena sudah usang.

Saya kemudian mencoba unity --replace &, tetapi itu crash desktop saya dan membuat TTY7 saya tidak dapat digunakan. Pertama kali menyala gelap dan tampak seperti me-restart Unity dan mengembalikan desktop, tapi kemudian tidak bereaksi apa-apa lagi. Beralih ke TTY1 dan kembali meninggalkan saya dengan layar hitam plus kursor mouse. Setelah mem-boot ulang melalui login TTY1 dan reboot, itu berfungsi lagi dan Unity bahkan mengenali aplikasi saya sekarang.

Tetapi jika saya berada dalam situasi di mana reboot atau logout bukanlah pilihan, apa yang akan menjadi cara saya untuk pergi?

Komandan Byte
sumber
1
Anda bisa mencoba setsid unity, itu akan 'menyegarkan' persatuan. Di salah satu instal saya melakukannya, yang lain menghasilkan logout. Orang lain sepertinya mengatakan itu kembali ke default, tidak di sini dalam kedua kasus.
doug

Jawaban:

33

Tekan tipe Alt+ dan tekan .F2unityEnter

Padlyuck
sumber
3
Sederhana tapi ramah. Saya tidak tahu mengapa tidak ada yang memikirkan ini sebelumnya. Saya tidak tahu berapa banyak Unity yang di-restart, tetapi sudah pasti cukup untuk mengenali file .desktop yang diganti. Terima kasih! Saya akan memberi Anda hadiah dalam beberapa hari, menunggu tanggapan lebih lanjut.
Byte Commander
1
Selamat atas karunia pertama Anda @padlyuck! : D
Byte Commander
9
Saya melakukan ini di 16.04 dan mengacaukan jendela saya dan beberapa aplikasi menutup diri (mis. Browser).
Daniel
Bisakah Anda jelaskan hal ini? Apa fungsinya?
George D
1
Hati-hati - Saya melakukan ini pada 14,04 dan mematikan X (dan semua aplikasi) dan saya harus masuk lagi.
davidA
6
  • Unity hanyalah sebuah plugin Compiz, Anda dapat memuatnya kembali menggunakan:

    compiz --replace
    

    Atau untuk membiarkan Anda menutup terminal

    compiz --replace & disown
    

    Untuk mengonfirmasi, Anda dapat memeriksa:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • Cara lain, ringan hanya memuat kembali plugin (sangat cepat)

    1. Buat compiz_plugin_reloaderskrip

      Sumber: blog iXce : Pengisi ulang 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 __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. Perbaiki izin

      chmod +x compiz_plugin_reloader
      
    3. Jalankan sebagai:

      ./compiz_plugin_reloader unityshell
      
user.dz
sumber