เป็นไปได้ไหมที่จะเลือก X ที่แสดงว่าอินสแตนซ์ของโปรแกรมควรทำงาน


10

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

ฉันสมมติว่าฉันมีสิทธิ์ใด ๆ ก็ตามที่จำเป็นในการใช้งานโปรแกรมดังกล่าว


เป็นไปได้ซ้ำซ้อนของDISPLAY = อะไร: 0.0 จริงหมายถึงอะไร
slm

คำตอบ:


15

โปรแกรม X รู้ว่าเซสชัน X ใดที่พวกเขาควรจะคุยด้วยโดยดูที่DISPLAYตัวแปรสภาพแวดล้อม

ก่อนอื่นคุณต้องค้นหาสิ่งที่DISPLAYตั้งค่าไว้ในเซสชัน X ที่คุณต้องการให้โปรแกรมทำงาน ทำได้โดยออกคำสั่งecho $DISPLAYภายใน X-terminal ใน X session นั้น โดยทั่วไปแล้วสิ่งที่ต้องการ:0.0คือเอาท์พุท

ช่วยบอกว่าคุณต้องการที่จะเริ่มต้นโปรแกรมที่ยอดเยี่ยมxclockโปรแกรมในเซสชั่นของคุณ X ที่DISPLAYเป็น:0.0แต่คุณต้องการจะทำเช่นนี้ที่คอนโซล จากนั้นคุณกด Alt-Ctrl-F1 เพื่อเลื่อนไปยังคอนโซลนั้นแล้วพิมพ์:

DISPLAY=:0.0 xclock   # variables set w/ a command are local to that command

จากนั้นคุณกลับไปที่ X โดยกด Alt-Ctrl-F7 หรือ Alt-Ctrl-F8 (หรืออาจจะเป็นปุ่ม F อื่น ๆ ขึ้นอยู่กับรสนิยม Linux ของคุณ) และดู wallclock อันใหม่ที่คุณมี

ในความเป็นจริงคุณสามารถรันคำสั่งด้านบนในเชลล์ใด ๆบนเครื่องเดียวกันนั้น (ผ่าน SSH, ในเซสชัน X, บนคอนโซลใด ๆ ฯลฯ ) - ข้อเท็จจริงที่คุณระบุไว้DISPLAY=:0.0ก่อนหน้าคำสั่งหมายความว่าxclockหน้าต่างจะปรากฏขึ้นเสมอ เซสชัน X เดียวกัน

ในความเป็นจริง - นอกจากความจริงที่ว่าโปรแกรม X ดูแล้ว - ไม่มีอะไรพิเศษเกี่ยวกับDISPLAYตัวแปร โดยปกติเมื่อคุณเริ่มต้นโปรแกรมจากเทอร์มินัล X โปรแกรมจะเริ่มต้นในตำแหน่งที่ถูกต้องเพราะDISPLAYได้ตั้งค่าไว้แล้วสำหรับคุณ

แทนการใช้คำสั่งดังกล่าวนอกจากนี้คุณยังสามารถแยกออกเป็นสองโดยการตั้งค่าครั้งแรกและจากนั้นทำงานDISPLAY xclockในกรณีนี้DISPLAYการตั้งค่าจะยังคงมีอยู่จนกว่าคุณจะปิดเชลล์ที่และทุกโปรแกรมที่ตามมา X เริ่มต้นจากที่นั่นจะเปิดในเซสชั่น X xclockเดียวกับ

                      # variables set w/o a command are local to the shell,
export DISPLAY=:0.0   # unless exported
xclock

1
โปรดทราบว่าบิตสุดท้ายจะไม่ทำงานเว้นแต่คุณจะส่งออกตัวแปรเชลล์ไปยังสภาพแวดล้อมก่อน
Ignacio Vazquez-Abrams

ผมคิดว่าDISPLAYจะถูกตั้งค่าการส่งออกโดยค่าเริ่มต้นตั้งแต่มันถูกนำเข้าโดยเปลือก (มันทำงานทั้งในzshและdashสำหรับฉันโดยไม่ต้องใช้export) แต่ใช่ถ้าคุณไม่สามารถรับรุ่นสองสายไปทำงานลองเปลี่ยนด้วยDISPLAY=:0.0 export DISPLAY=:0.0
zrajm

1

โดยปกติแล้วโปรแกรมไคลเอนต์ X จะใช้DISPLAYตัวแปรสภาพแวดล้อมเพื่อทราบว่าเซิร์ฟเวอร์ X ใดที่จะแสดงผลเพื่อเชื่อมต่อ บางโปรแกรมยังยอมรับพารามิเตอร์บรรทัดคำสั่ง ( -displayหรือบางอย่างที่คล้ายกัน) ซึ่งสามารถใช้เพื่อแทนที่DISPLAYตัวแปรสภาพแวดล้อม

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