ไคลเอนต์ X จำเป็นต้องใช้โปรแกรมจัดการหน้าต่างเพื่อทำงานได้หรือไม่?


32

ไคลเอนต์ X จำเป็นต้องใช้โปรแกรมจัดการหน้าต่างเพื่อทำงานได้หรือไม่? X client สามารถทำงานกับ X server ได้หรือไม่?

หากไคลเอนต์ X ไม่มีหน้าต่างจะทำงานได้หรือไม่ว่าต้องใช้ตัวจัดการหน้าต่างหรือไม่

หากไคลเอนต์ X สามารถทำงานโดยไม่มีตัวจัดการหน้าต่างได้ไคลเอ็นต์ X จำเป็นต้องไม่มีหน้าต่างหรือไม่?

ขอบคุณ


4
เมื่อฉันพบ X ครั้งแรกนั่นคือค่อนข้างนานมาแล้วความจริงที่ว่าคุณไม่จำเป็นต้องมีตัวจัดการหน้าต่างที่ถูกกล่าวถึงในเนื้อหาเบื้องต้น ดูเหมือนจะไม่เป็นเช่นนี้ในทุกวันนี้ แต่ฉันคิดว่าบางคนอาจคิดว่านี่เป็นตัวอย่างที่ชัดเจนหรือเป็นความขี้เกียจ
dmckee

11
@ ทิม: คุณดูเหมือนจะนานพอที่คุณควรจะรู้ว่า downvote ไม่ได้มีเจตนาที่จะสื่อสาร "ความเกลียดชัง", "ความชั่วร้าย", "ความโหดร้าย", "การเลือกปฏิบัติ" หรืออะไรทำนองนั้น Downvote นั้นเป็นเพียงระบบการให้คะแนนเนื้อหาและเนื้อหาบางส่วนมีค่าน้อยกว่าเนื้อหาอื่น ๆ (สำหรับบันทึกฉันไม่ได้ลงคะแนนคำถามนี้: ฉันคิดว่าคำถามนี้ยอดเยี่ยม) ดูเพิ่มเติม: เราสามารถทำให้ผู้ใช้ใหม่เห็นได้ชัดเจนขึ้นหรือไม่ว่าการลงคะแนนในเว็บไซต์หลักนั้นไม่ใช่การดูหมิ่นและในความเป็นจริงสามารถช่วยพวกเขาได้ ? บน Meta Stack Overflow
Daniel Pryden

5
@Tim คำถามที่พบปัญหาบางข้อของคุณดูเหมือนจะไม่เป็นประโยชน์กับฉัน UI (ข้อความ alt ของปุ่ม) สนับสนุนให้ผู้ใช้ downvote คำถาม "ไม่มีประโยชน์" ความเกลียดชังไม่ใช่องค์ประกอบที่จำเป็น การเพิ่มคำใบ้ / การยืนยันเล็ก ๆ น้อย ๆ ที่คำถามอาจนำไปใช้ในบางสถานการณ์ (แม้ว่าจะมีความไม่แน่นอน / ไม่น่าจะเป็นไปได้มาก) จะป้องกันไม่ให้เกิดปฏิกิริยากระตุกเข่า คำถามของคุณที่ฉันเห็นมีความคล้ายคลึงกันอย่างน่าทึ่งเพราะพวกเขาไม่มีคำใบ้ / ยืนยัน
kubanczyk

3
ทิมผู้ดูแลเพชรมีสิทธิ์เข้าถึงเครื่องมือบางอย่างที่ตรวจจับการลงคะแนนรูปแบบ ตั้งค่าสถานะและขอให้พวกเขาดู / mod ใน physics.se
dmckee

1
บางส่วนของคำถามของคุณดูไม่ผิดเพี้ยน ผู้กระทำความผิดที่เลวร้ายที่สุดดูเหมือนจะ "ไม่ว่าจะสามารถทำงานได้ต้องมีผู้จัดการหน้าต่างหรือไม่"
hkBst

คำตอบ:


26

ไม่แอพที่เขียนเป็นอย่างดีไม่จำเป็นต้องใช้โปรแกรมจัดการหน้าต่าง

แต่แอปที่ใช้งานไม่ได้ "สมัยใหม่" บางอย่างจะไม่ทำงานหากไม่มีตัวจัดการหน้าต่าง (เช่น firefox และคำแนะนำของแถบที่อยู่ซึ่งจะไม่ลดลง [1])

แอพย่อยอื่น ๆ อีกมากมายไม่เพียง แต่จะถือว่าเป็นผู้จัดการหน้าต่างเท่านั้น แต่เพื่อเพิ่มการดูถูกการบาดเจ็บให้คลิกเพื่อโฟกัสจัดการหน้าต่าง ตัวอย่างเช่นเคยเป็นว่าแอป java ใด ๆ จะเพียงแค่ขโมยโฟกัสไปที่การเริ่มต้น

หากคุณต้องการทดสอบให้ติดตั้งXephyr(เซิร์ฟเวอร์ X11 "ซ้อน") รันด้วยXephyr :1แล้วเริ่มแอปของคุณด้วยDISPLAY=:1ในสภาพแวดล้อมของพวกเขา

[1] "สุดยอดบาร์" ของ Firefox จะไม่เปิดบานหน้าต่างคำแนะนำเมื่อพิมพ์หรือคลิกที่ปุ่มประวัติเว้นแต่จะมีผู้จัดการหน้าต่างทำงานอยู่ เมนูซ่อนอัตโนมัติจะไม่ทำงาน


มีข้อผิดพลาดแบบเปิดใน firefox สำหรับปัญหาที่คุณกล่าวถึงหรือไม่ ฉันคิดว่าธรรมชาติของโอเพ่นซอร์สของ firefox ยินดีที่จะแก้ไขข้อผิดพลาดสำหรับปัญหานั้น
t3dodson

4
@ t3dodson คุณสามารถลองส่งได้ แต่ก็เป็นที่น่าสงสัยอย่างมากว่าใครก็ตามจะสนใจตรวจสอบการแก้ไขแพทช์ การเรียกใช้ firefox ไม่ได้รับการสนับสนุนโดยไม่มีตัวจัดการหน้าต่างตัวจัดการเซสชันและเมื่อเร็ว ๆ นี้เซิร์ฟเวอร์ pulseaudio ทำงาน แน่นอนว่าคุณสามารถแยกมันได้ แต่การรักษาฟอร์
ด๊อกซ์ฟอร์กซ์

Imo คำตอบใด ๆ ในรูปแบบนี้ไม่สมบูรณ์โดยไม่ต้องพูดถึง Xephyr +1
Rui F Ribeiro

38

ไม่คุณไม่จำเป็นต้องเรียกใช้ตัวจัดการหน้าต่างเพื่ออนุญาตให้ไคลเอนต์ X ทำงานได้ บางระบบมีตัวเลือกให้เรียกใช้เทอร์มินัลเมื่อเริ่มต้นและจากนั้นคุณสามารถเริ่มโปรแกรมเพิ่มเติมรวมถึงตัวจัดการหน้าต่าง การตั้งค่าคีออสก์บางตัวที่ต้องการให้แอปพลิเคชั่นเดียวทำงานไม่จำเป็นต้องใช้ตัวจัดการหน้าต่าง การติดตั้ง X สำหรับ microsoft windows บางตัวหลีกเลี่ยง X window manager โดยให้ระบบปฏิบัติการจัดการ windows

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

ใน X ตัวจัดการหน้าต่างเป็นเพียงไคลเอนต์ X ตัวอื่น นี่เป็นเรื่องผิดปกติในเวลานั้น แต่ทำให้ง่ายต่อการมีตัวจัดการหน้าต่างที่แตกต่างกัน

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


2
คำแนะนำ: มีเครื่องมือที่เรียกว่า xwit ซึ่งช่วยได้จริงเมื่อทดลองกับการกำหนดค่า wm-less
rackandboneman

7

ตัวจัดการหน้าต่างคือความสะดวกสบายสำหรับผู้ใช้

ในวันเก่า ๆ ^ Wbad ฉันเคยมี~/.Xclientsไฟล์ที่อ่าน:

#!/bin/sh

HOST=`uname -n | sed 's/\..*$//'`

xv -root -rmode 5 $HOME/misc/millennium/theme/Wallpaper.gif -quit &

xterm -geometry 80x24+0+85 \#52x71-104+0 -n $HOST -T $HOST &
xterm -geometry 80x24+510+429 \#52x71-52+0  -n $HOST -T $HOST &
xclock -digital -update 1 -geometry +1059+982 &
xscreensaver -nosplash &
exec /usr/local/lib/X11/fvwm/fvwm

ไฟล์นี้จะทำงานเมื่อผมเริ่ม X startxกับ เมื่อสคริปต์นี้เสร็จสิ้น X server จะปิดตัวลง

สังเกตบรรทัดสุดท้าย: exec .../fvwm. นี่คือบรรทัดที่เริ่มตัวจัดการหน้าต่างของฉัน (fvwm) ทุกการใช้งานก่อนหน้า ( xv, xterm, xclock, xscreensaver) กำลังวิ่งก่อนที่จะจัดการหน้าต่างเริ่มต้น เนื่องจากการเรียกใช้fvwmเป็นบรรทัดสุดท้ายและไม่ได้ใส่ไว้ในพื้นหลังหมายความว่าเมื่อfvwmสิ้นสุดแล้ว X จะปิดลง

การเริ่มต้น X แม้จะมีค่าเริ่มต้น "ถอยกลับ" ... หากไม่มีไฟล์การกำหนดค่าให้เริ่ม X ด้วยการxtermเรียกใช้ครั้งเดียว การปิดที่xtermจะสิ้นสุดเซสชัน X


อะไรคือข้อดีของการไม่ให้ภาพพื้นหลัง fvwm?
Alex Hajnal

1
เราต้องการสคริปต์ที่จะไม่ยุติเพราะถ้ามันแล้วเซิร์ฟเวอร์ X สิ้นสุดลง; โดยไม่ให้แบ็คกราวน์fvwm(และเรียกใช้โดยexec) เรามั่นใจว่ายังคงมีกระบวนการที่ทำให้เซิร์ฟเวอร์ X ปิดไม่ให้ทำงาน ด้วยการทำให้กระบวนการสุดท้ายนั้นทำให้fvwmรายการเมนู "ทางออก" ทำงานตามที่คาดไว้
Stephen Harris

เข้าใจแล้ว เป็นเวลานานแล้วที่ฉันทำระดับต่ำมากกับ X ต้องบอกว่า fvwm 2 เป็นหนึ่งในสองผู้จัดการหน้าต่างที่ฉันโปรดปราน (อีกอันคือ kwin 3)
Alex Hajnal

ในกรณีfvwm-1.24rของฉันผู้จัดการหน้าต่างคนโปรดของฉันคือ :-)
Stephen Harris

ฉันได้ยินคุณว่า ฉันดูเหมือนจะจำได้ว่า v2 นั้นสามารถปรับแต่งได้มากกว่า v1 แต่ด้วยตัวเลือกการกำหนดค่าทั้งหมดในไฟล์ข้อความเดียวและสามารถโหลดซ้ำได้แบบทันที? น้ำหนักเบาสวยโดยเฉพาะตามมาตรฐานของวันนี้ ฉันใช้มันครั้งล่าสุดทุกวันในยุค P-II IIRC
Alex Hajnal

6

เพื่อเพิ่มคำตอบอื่น ๆ ฉันได้พัฒนาและเปิดตัวแอปโอเพ่นซอร์สซึ่งทำงานได้โดยไม่ต้องใช้เครื่องมือจัดการหน้าต่าง (หมายถึงคุณสามารถเริ่มต้นได้โดยตรงจาก xinitrc) มีขั้นตอนพิเศษบางอย่างที่แอปพลิเคชันควรทำในกรณีนี้นอกเหนือจากการจัดการรูปทรงเรขาคณิตและ Z-order ของกล่องโต้ตอบ แต่ก็สามารถจัดการได้ทั้งหมด


1

มีคำตอบอย่างละเอียดที่ดีมากมายที่นี่ นี่คือคำตอบที่ชัดเจนง่าย ๆ

ไคลเอนต์ X จำเป็นต้องใช้โปรแกรมจัดการหน้าต่างเพื่อทำงานได้หรือไม่?

ไม่: แต่หากคุณไม่พยายามจัดการหน้าต่างของคุณ (การย้ายการปรับขนาดการลดขนาดการเพิ่ม ฯลฯ ) มีเครื่องมืออื่นที่สามารถทำได้หากคุณต้องการ

X client สามารถทำงานกับ X server ได้หรือไม่?

ใช่

หากไคลเอนต์ X ไม่มีหน้าต่างจะทำงานได้หรือไม่ว่าต้องใช้ตัวจัดการหน้าต่างหรือไม่

หากไม่มีหน้าต่างก็ไม่ควรมีข้อเสียของการไม่มีตัวจัดการหน้าต่าง

หากไคลเอนต์ X สามารถทำงานโดยไม่มีตัวจัดการหน้าต่างได้ไคลเอ็นต์ X จำเป็นต้องไม่มีหน้าต่างหรือไม่?

ไม่: สามารถมีหน้าต่างได้

ลองสิ่งนี้

DISPLAY=:21
vncserver -localhost -geometry 1920x1080  -SecurityTypes None $DISPLAY &
ssvnc $DISPLAY
xterm &

จากนั้นในใหม่ประเภทxtermfvwm

คุณอาจต้องติดตั้งvncserver, ssvncและfvwmเป็นครั้งแรก


1

ใช่ไคลเอ็นต์ X สามารถทำงานกับเซิร์ฟเวอร์ X เท่านั้น ตัวอย่างเช่นฉันให้เครื่องเสมือนของฉันเป็นเสมือนคอนโซลของตัวเองบนโฮสต์เช่นนี้

# Press CTRL-ALT-F5, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system CentOS -- :4

# Press CTRL-ALT-F6, login and enter this command:
startx /usr/bin/virt-viewer -a -k -r -w -c qemu:///system Windows -- :5

คำสั่ง "startx" สตาร์ทเซิร์ฟเวอร์ Xorg X บนจอแสดงผล: 4 และ: 5 โดยมี virt-viewer เป็นไคลเอ็นต์เท่านั้น

"CentOS" และ "Windows" เป็นชื่อที่ฉันตั้งให้กับเครื่องเสมือนเมื่อติดตั้ง -kสวิทช์สำหรับ virt ผู้ดูทำให้มันเต็มหน้าจอด้วยการควบคุมน้อยที่สุดเพื่อให้แต่ละเครื่องเสมือนที่ดูเหมือนจะเป็นเจ้าของเครื่องจนกว่าฉันกด CTRL-ALT-Fn เพื่อสลับไปยังคอนโซลเสมือนที่แตกต่างกัน

แน่นอนว่า CentOS กำลังเรียกใช้ตัวจัดการหน้าจอและตัวจัดการหน้าต่างภายในเครื่องเสมือน แต่ไม่มีการเชื่อมต่อกับเซิร์ฟเวอร์ X ที่ทำงานอยู่บนโฮสต์

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