สลับระหว่างสภาพแวดล้อมเดสก์ท็อปทันทีภายในเซสชันเดสก์ท็อปที่ใช้งานอยู่


16

มีวิธีการสลับทันที(โดยเฉพาะอย่างยิ่งจากบรรทัดคำสั่ง)ระหว่างสภาพแวดล้อมเดสก์ท็อปหนึ่งและอีกอันหนึ่ง; พูดว่าตั้งแต่เอกภาพถึงGNOME แบบคลาสสิกโดยไม่ต้องปิดแอปพลิเคชันที่ทำงานอยู่ในเซสชันเดสก์ท็อปเดียวกัน

(โปรดทราบว่ามันไม่เกี่ยวกับการติดตั้งสภาพแวดล้อม)


2
ลองมาดูที่ก้าวขึ้นบันไดกับคำตอบเผด็จการ แต่ความรู้สึกของฉันก็คือว่าเท่าที่ Ubuntu และรสชาติอย่างเป็นทางการไปคุณต้องออกจากระบบและกลับเข้าสู่ระบบ. มีถูก / เป็นสิ่งที่เรียกว่าHybryde ฟิวชั่น 13.04ซึ่งดูเหมือนว่าจะมีอะไรบางอย่างข้อเสนอที่เกี่ยวข้อง แต่นั่นจะเป็นหัวข้อที่นี่

ใช่ที่ดูเหมือนจะนำเสนอสภาพแวดล้อมเดสก์ท็อป HY-D-V1บางอย่าง.. ดูเหมือนว่าจะใกล้เคียงกับ GNOME3 มาก แต่ฉันหวังว่ามันจะมอบประสบการณ์ที่ดีกว่า ..
แม่นยำ

แล้วฉันก็คิดว่าโซรินยังเสนอสิ่งที่คล้ายกัน นั่นก็จะเป็น OT: D ฉันได้ตัดสินใจเซสชั่น Openbox บริสุทธิ์โดยไม่มีเดสก์ท็อปที่ดีพอสำหรับฉัน;)

คำตอบ:


11

ฉันได้รับเคล็ดลับที่ดีในขณะที่ฉันกำลังมองหาการเชื่อมโยงคีย์ WM อ่านหน้าหนังสือ

man dm-tool

dm-tool เป็นเครื่องมือในการสื่อสารกับเครื่องมือจัดการจอแสดงผล LightDM

   list-seats
          List the active seats and sessions that are running.

   add-nested-seat
          Start an X server inside a session and connect it to a display manager.

   add-local-x-seat DISPLAY_NUMBER
          Connect an existing X server to the display manager.

   add-seat TYPE [NAME=VALUE...]
          Add a dynamic seat.
  • วิ่ง:

    $ dm-tool add-nested-seat
    /org/freedesktop/DisplayManager/Seat2
    

    ปรับปรุง : ด้วยการเปิดตัวใหม่ก็เป็นไปได้ที่จะควบคุมขนาดของหน้าต่างใหม่หรือปล่อยให้มันเต็มหน้าจอโดยการเพิ่มพารามิเตอร์--fullscreenหรือดู--screen XxYdm-tool --help

  • มีหน้าต่างใหม่พร้อมเซสชันใหม่ (ชื่อXephyr on):

    ป้อนคำอธิบายรูปภาพที่นี่

  • จากนั้นเข้าสู่ระบบโดยใช้เดสก์ทอปอื่น (LXDE):

    ป้อนคำอธิบายรูปภาพที่นี่

  • Ctrl-Shiftคุณสามารถสลับถ้าเมาส์และแป้นพิมพ์ควรได้รับการบันทึกในเซสชั่นใหม่โดยการพิมพ์

  • ตรวจสอบรายการที่นั่ง:

    $ dm-tool list-seats
    Seat2
      CanSwitch=false
      HasGuestAccount=true
      Session2
        UserName='sneetsher'
    Seat0
      CanSwitch=true
      HasGuestAccount=true
      Session0
        UserName='sneetsher'
    

  • วิธีเรียกใช้แบบเต็มหน้าจอ:

    Xephyr :1 -br -fullscreen &
    dm-tool add-local-x-seat 1
    

การอ้างอิง: Using_Xephyr


มันไม่ใช่สิ่งที่ฉันกำลังมองหา แต่Xephyrเป็นเครื่องมือที่ดีที่จะรู้ .. มากกว่า +1 .. dm-tool add-nested-seatดูเหมือนว่าจะทำงานให้ฉันเท่านั้นไม่สามารถเริ่มด้วยความละเอียดที่ระบุหรือเต็มหน้าจอด้วยXephyr.. และปิดตัวลง ไม่ปิดทาส X; ฉันต้องคลิกปุ่มปิด (ดีหรือไม่?) ..
ความแม่นยำ

dm-tool add-nested-seatใช้งานได้กับค่าเริ่มต้นบางอย่างนั่นคือสาเหตุที่ฉันเรียกใช้Xephyrแบบเต็มหน้าจอในจอแสดงผลใหม่จากนั้นจึงเรียกใช้dm-toolไปยังจอแสดงผลนั้น "ปิดตัวลงไม่ได้ปิด X ทาส" เพราะไม่ใช่การสร้างภาพระบบ แต่ไม่แน่ใจว่าจะมีวิธีที่ดีกว่านี้หรือไม่ เซสชั่นนั้นสามารถปิดเป็นหน้าต่างใดก็ได้ที่มี Alt + F4 และคุณสามารถสลับเป็น Alt + Tab หน้าต่างใดก็ได้
user.dz

2
ในขณะนี้เครื่องมือ dm ได้รับการอัปเดตตอนนี้ยอมรับตัวเลือก--fullscreenหรือ--screen 800x600ดังนั้นจึงไม่จำเป็นเสมอที่จะเรียกใช้ Xephyr โดยตรงเพื่อให้บรรลุเป้าหมายนี้ พิมพ์dm-tool --helpเพื่อดูเอกสาร (หน้าผู้ชายคนนั้นอาจจะมีการปรับปรุงในภายหลังด้วยตัวเลือกใหม่.)
mit

7

นี่เป็นคำตอบสมมุติฐาน แต่บางทีคนที่มีความรู้เพิ่มเติมเกี่ยวกับเรื่องสามารถสร้างตามงบของฉัน หากพวกเขาทำงานภายใต้เอาท์พุทxserver ที่ไม่แตกต่างกันคุณสามารถสลับไปมาระหว่างกันได้โดยกดCtrl+ Alt+ F1, Ctrl+ Alt+ F2, ... ฯลฯ อยู่ที่ไหนF1X1, F2X2 คือ .. ฯลฯ ฉันคาดเดาคำสั่งจะเป็นไปตาม:

  1. ในประเภทอาคาร: sudo xhost +

    โปรดทราบว่านี่มีความเสี่ยงด้านความปลอดภัยเนื่องจากคุณอนุญาตให้ x เอาต์พุตใด ๆ ของคุณเข้าถึง

  2. Ctrl+ Alt+F1

    สิ่งนี้จะนำคุณไปยัง X output 1 ซึ่งเป็นเดสก์ท็อปเริ่มต้นที่ f7

  3. ประเภท: export DISPLAY=localhost:1

    1 เนื่องจากคุณอยู่ใน x output 1 ค่าเริ่มต้นคือ 0 และสำหรับเอาต์พุตเพิ่มเติมคุณจะใช้ตัวเลขที่สูงขึ้นเช่น: 2,3,4 เป็นต้น

  4. ประเภท: startxfce4(XFCE), startkde(KDE) หรือstartlxde(LXDE) เพื่อให้เดสก์ทอปเปิดใน X output ใหม่

สิ่งนี้ยังใช้งานไม่ได้สำหรับฉันฉันเชื่อว่าเป็นเพราะคุณต้องใช้งานในฐานะผู้ใช้คนอื่นเพราะเมื่อฉันลองใช้จะบอกว่าเดสก์ท็อปกำลังทำงานบน localhost อื่นอยู่แล้ว นี่คือเท่าที่ฉันได้รับกับสิ่งนี้


1
ฉันลองดูสิฉันมี แต่ Gnome / Unity เท่านั้น startxไม่ทำงาน ดังนั้นฉันจึงเรียกใช้เป็นพื้นหลังstartx &มันทำงานและสร้างเซสชัน gnome ใหม่ (ค่าเริ่มต้นของฉัน) กับผู้ใช้เดียวกันบน tty8 (Ctrl + Alt + F8) ฉันลองอีกครั้งsudo xhost -เพราะฉันเป็นผู้ใช้เดียวกันทำไมไม่ใช้งานได้ การออกจากระบบนำฉันกลับมาที่ tty1
user.dz

2

ทางเลือกมุมมอง

เป็นไปได้ที่จะเรียกใช้ xsession อื่นสำหรับผู้ใช้รายอื่น

เพียงสร้างผู้ใช้ใหม่

sudo useradd test_test

ตอนนี้คุณเพียงแค่ต้องล็อคบัญชีของคุณCtrl+ Alt+Lจากนั้นเปลี่ยนเป็นผู้ใช้ที่เพิ่มเข้ามาใหม่และเข้าสู่ระบบ ในเมนูล็อกอินคุณสามารถเลือกระหว่างสภาพแวดล้อมเดสก์ท็อปที่ติดตั้ง

มันจะเริ่ม xsession ใหม่โดยอัตโนมัติใน tty ใหม่ tty8สำหรับฉันมันคือ ตอนนี้ใช้Ctrl+ Alt+ F7ฉันสามารถกลับไปที่ผู้ใช้ของฉัน xsession ใช้Ctrl+ Alt+ F8กลับไปที่ผู้ใช้ใหม่ xsession


1
นั่นเป็นเพียงการสลับไปมาระหว่างบัญชีผู้ใช้ .. ฉันกำลังมองหาวิธีที่จะเปลี่ยนสภาพแวดล้อมที่แตกต่างกันในเซสชันเดียวกับที่แอปพลิเคชันของฉันควรรักษาสถานะของพวกเขาระหว่างสวิตช์ ...
แม่นยำ

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