การปฏิเสธความรับผิด:ตามความเห็นของเบรนเดนอาจจะล้าสมัยและไม่สามารถใช้งานได้กับ Ubuntu เวอร์ชันใหม่กว่า โปรดเตรียมพร้อมด้วยว่าคุณอาจสูญเสียหน้าต่างที่เปิดอยู่
ตอนนี้ฉันได้มันมาสำหรับ Unity (ฉันเพิ่งแทนที่เชลล์ GNOME ของฉันด้วย unity โดยไม่ต้องออกจากระบบหรือปิดหน้าต่าง):
- ไปที่ tty1 [Ctrl] + [Alt] + [F1]
- พิมพ์
DISPLAY=:0
เพื่อให้โปรแกรมทราบบนพอร์ตใดเพื่อค้นหา X-Server
export DISPLAY
unity --replace
หรือgnome-shell --replace
(คุณสามารถแทนที่ GNOME-Shell ด้วยความสามัคคีหรือความสามัคคีโดย GNOME-Shell)
ใช้งานได้เฉพาะในกรณีที่ไม่ใช่ X-Server หรือ GNOME เท่านั้นที่แช่แข็ง แต่มีเพียง Unity หรือ GNOME-Shell
วิธีการทำงาน: การสื่อสารระหว่างโปรแกรมและ X-Server สำหรับแสดง UI ของพวกเขานั้นทำงานผ่านซ็อกเก็ตเครือข่าย โดยปกติจะอยู่ที่ "localhost: 0" short ": 0" โดยการตั้งค่าตัวแปร DISPLAY โปรแกรมจะทราบตำแหน่งที่จะค้นหา X-Server เพื่อสื่อสารกับมันดังนั้นโปรแกรมจะแสดงบน X-Server บน tty7 แม้ว่าโปรแกรมจะทำงานบน tty1
เนื้อหาของ windows ได้รับการจัดการโดย X-Server ในขณะที่ตำแหน่งและเส้นขอบของ windows ถูกจัดการโดยตัวจัดการหน้าต่างที่รวมอยู่ใน unity หรือ GNOM-shell ดังนั้นจึงมีวิธีการแทนที่เฉพาะพวกเขาโดยไม่ต้องรีสตาร์ทแอปพลิเคชันบน X- เซิร์ฟเวอร์
PS: ฉันแค่อธิบายสิ่งที่ฉันเข้าใจว่าเป็นดังนั้นโปรดแก้ไขและแก้ไขถ้าฉันผิดในบางจุด
แก้ไข:
สำหรับ GNOME-Shell มีวิธีอื่นในการเริ่มต้นใหม่ หลังจากเปลี่ยนเป็น tty เพียงพิมพ์pkill -HUP gnome-shell
ฉันไม่รู้ว่ามีบางอย่างที่คล้ายคลึงกับ Unity หรือไม่