ใช้การเปลี่ยนแปลงหรือรีสตาร์ท Unity dash / launcher / …โดยไม่ต้องรีบูตหรือออกจากระบบ


14

ฉันอยู่ในสถานการณ์ที่แอปพลิเคชันที่ฉันไม่มีอยู่ในเลนส์แอปพลิเคชัน Unity หลังจากฉันลบ.desktopไฟล์ตัวเรียกใช้งานที่กำหนดเองในโฮมไดเร็กตอรี่ของฉันที่แทนที่ไฟล์ทั้งระบบ

ปัญหาของฉันคือฉันต้องใช้การเปลี่ยนแปลงเหล่านั้นและอัปเดตในกรณีนี้ฐานข้อมูลของ.desktopไฟล์ที่ติดตั้งแต่สถานการณ์ที่คล้ายกันอื่น ๆ ก็สามารถจินตนาการได้เช่นกัน

ดังนั้นฉันจะทำอะไรได้บ้าง (และทำในครั้งต่อไป) แทนที่จะรีบูตหรือออกจากระบบและกลับเข้ามาใหม่เพื่ออัปเดตการกำหนดค่าความเป็นเอกภาพและบังคับให้โหลดซ้ำและเริ่มต้นใหม่ทุกสิ่ง

ฉันอยู่ที่ 15.10 ดังนั้นจึงunity --reset &ไม่ทำงานเพราะเลิกใช้แล้ว

จากนั้นฉันลองunity --replace &แทน แต่นั่นทำให้เดสก์ท็อปของฉันพังและแสดง TTY7 ของฉันไม่สามารถใช้งานได้ ครั้งแรกมันเปิดไฟมืดและดูเหมือนว่ามันจะเริ่ม Unity ใหม่และกู้คืนเดสก์ท็อป แต่แล้วมันก็ไม่ได้ตอบสนองอะไรอีกต่อไป การสลับเป็น TTY1 และกลับมาทำให้ฉันด้วยหน้าจอสีดำพร้อมเคอร์เซอร์เมาส์ หลังจากรีบู๊ตผ่านการล็อกอิน TTY1 และrebootมันทำงานได้อีกครั้งและ Unity จะจำแอปพลิเคชันของฉันได้เลย

แต่ถ้าฉันอยู่ในสถานการณ์ที่ไม่มีตัวเลือกการรีบูตหรือออกจากระบบฉันจะไปทางไหนดี?


1
คุณสามารถลองsetsid unityมันจะ 'รีเฟรช' ความสามัคคี ที่หนึ่งในการติดตั้งของฉันมันทำเช่นนั้นอื่น ๆ มันส่งผลให้ออกจากระบบ คนอื่น ๆ ดูเหมือนว่าจะรีเซ็ตกลับเป็นค่าเริ่มต้นไม่ได้อยู่ที่นี่ในทั้งสองกรณี
doug

คำตอบ:


33

กดAlt+ F2ประเภทและกดunityEnter


3
เรียบง่าย แต่ใจดี ฉันไม่รู้ว่าทำไมไม่มีใครคิดเรื่องนี้มาก่อน ฉันไม่ทราบว่า Unity ได้รับการรีสตาร์ทอีกครั้ง แต่ก็เพียงพอที่จะรับรู้ไฟล์ .desktop ที่ถูกเขียนทับได้ ขอขอบคุณ! ฉันจะให้รางวัลแก่คุณในอีกไม่กี่วันรอการตอบกลับเพิ่มเติม
ผู้บัญชาการไบต์

1
ขอแสดงความยินดีกับ @padlyuck ครั้งแรกของคุณ! : D
ผู้บัญชาการ Byte

9
ฉันทำสิ่งนี้ใน 16.04 และทำให้หน้าต่างของฉันสับสนและบางแอปปิดตัวเองลง (เช่นเบราว์เซอร์)
Daniel

คุณช่วยอธิบายเรื่องนี้ให้ละเอียดหน่อยได้ไหม? มันทำอะไรกันแน่?
George D

1
ระวัง - ฉันทำสิ่งนี้เมื่อวันที่ 14.04 และมันปิดตัวลง X (และแอปทั้งหมด) และฉันต้องลงชื่อเข้าใช้อีกครั้ง
davidA

6
  • Unity เป็นเพียงปลั๊กอิน Compiz คุณสามารถโหลดซ้ำได้โดยใช้:

    compiz --replace
    

    หรือเพื่อให้คุณปิดเทอร์มินัล

    compiz --replace & disown
    

    เพื่อยืนยันคุณสามารถตรวจสอบ:

    $ file `which unity`
    /usr/bin/unity: Python script, ASCII text executable
    
    $ more /usr/bin/unity
    
  • อีกวิธีหนึ่งไฟโหลดเฉพาะปลั๊กอิน(เร็วมาก)

    1. สร้างcompiz_plugin_reloaderสคริปต์

      ที่มา: บล็อกของ iXce: โหลดปลั๊กอินใหม่

      #!/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. แก้ไขการอนุญาต

      chmod +x compiz_plugin_reloader
      
    3. ทำงานเป็น:

      ./compiz_plugin_reloader unityshell
      
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.