Áp dụng thay đổi hoặc khởi động lại Unity dash / launcher / xóa mà không cần khởi động lại hoặc đăng xuất


14

Tôi đã ở trong tình huống một ứng dụng mà tôi đã không có sẵn trong ống kính ứng dụng Unity sau khi tôi xóa một .desktoptệp trình khởi chạy tùy chỉnh trong thư mục nhà của tôi đã ghi đè lên toàn bộ hệ thống.

Vấn đề của tôi là tôi cần phải áp dụng những thay đổi và cập nhật trong trường hợp này là cơ sở dữ liệu của .desktopcác tệp đã cài đặt , nhưng các kịch bản tương tự khác cũng có thể tưởng tượng được.

Vậy tôi có thể làm gì (và làm lần sau) thay vì khởi động lại hoặc đăng xuất và đăng nhập lại để cập nhật cấu hình Unity và buộc nó tải lại và khởi tạo lại tất cả nội dung của nó?

Tôi vào ngày 15.10, vì vậy unity --reset &không hoạt động vì nó không được chấp nhận.

Sau đó tôi đã thử unity --replace &, nhưng điều đó đã làm hỏng máy tính để bàn của tôi và khiến TTY7 của tôi không thể sử dụng được. Đầu tiên nó lóe lên và trông như thể nó đang khởi động lại Unity và khôi phục lại máy tính để bàn, nhưng sau đó nó không phản ứng với bất cứ điều gì nữa. Chuyển sang TTY1 và quay lại bên trái tôi với một màn hình đen cộng với con trỏ chuột. Sau khi khởi động lại thông qua đăng nhập TTY1 và reboot, nó đã hoạt động trở lại và Unity thậm chí đã nhận ra ứng dụng của tôi bây giờ.

Nhưng nếu tôi đã ở trong một tình huống mà khởi động lại hoặc đăng xuất không có tùy chọn, thì điều gì sẽ là cách của tôi để đi?


1
bạn có thể thử setsid unity, nó sẽ 'làm mới' sự thống nhất. Trên một trong những cài đặt của tôi, nó làm như vậy, cái còn lại dẫn đến việc đăng xuất. Những người khác dường như nói rằng nó đặt lại về mặc định, không ở đây trong cả hai trường hợp.
gấp đôi

Câu trả lời:


33

Nhấn Alt+ F2unityvà nhấn Enter.


3
Đơn giản nhưng tuyệt vời. Tôi không biết tại sao không ai nghĩ về điều này sớm hơn. Tôi không biết bao nhiêu Unity được khởi động lại, nhưng chắc chắn đủ để nhận ra các tệp .desktop bị ghi đè. Cảm ơn bạn! Tôi sẽ thưởng cho bạn tiền thưởng trong một vài ngày, chờ phản hồi thêm.
Chỉ huy Byte

1
Xin chúc mừng tiền thưởng đầu tiên của bạn @padlyuck! : D
Chỉ huy Byte

9
Tôi đã làm điều này vào ngày 16.04 và làm rối tung các cửa sổ của mình và một số ứng dụng tự đóng (ví dụ: trình duyệt).
Daniel

Bạn có thể vui lòng giải thích về điều này? Chính xác thì nó làm gì?
George D

1
Coi chừng - Tôi đã làm điều này vào ngày 14.04 và nó tắt X (và tất cả các ứng dụng) và tôi phải đăng nhập lại.
davidA

6
  • Unity chỉ là một plugin Compiz, bạn có thể tải lại bằng cách sử dụng:

    compiz --replace
    

    Hoặc để cho phép bạn đóng thiết bị đầu cuối

    compiz --replace & disown
    

    Để xác nhận, bạn có thể kiểm tra:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • Một cách khác, ánh sáng chỉ tải lại plugin (rất nhanh)

    1. Tạo compiz_plugin_reloaderkịch bản

      Nguồn: blog của iXce : Trình tải lại plugin 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. Sửa quyền

      chmod +x compiz_plugin_reloader
      
    3. Chạy như:

      ./compiz_plugin_reloader unityshell
      
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.