21 คะแนน โดย xguru 14 시간 전 | 8 ความคิดเห็น | แชร์ทาง WhatsApp
  • เครื่องมือสำหรับสลับแหล่งอินพุตของมอนิเตอร์ (DisplayPort, HDMI, USB-C ฯลฯ) จากบรรทัดคำสั่งผ่านโปรโตคอล DDC/CI รองรับทั้ง Windows/macOS/Linux
  • สามารถระบุแหล่งอินพุตโดยตรงได้ด้วยการเติม =แหล่งอินพุต ต่อท้ายชื่อ/อินเด็กซ์
    • monitor-input Dell=dp1 → ตั้งค่ามอนิเตอร์ทั้งหมดที่มีคำว่า "Dell" เป็น DisplayPort1
    • monitor-input 0=usbc1 → ตั้งค่ามอนิเตอร์ตัวแรกเป็น USB-C1
  • เมื่อรันโดยไม่มีอาร์กิวเมนต์ จะแสดงรายการมอนิเตอร์ที่เชื่อมต่อทั้งหมด พร้อมฟิลด์ชื่อ/ Input Source ปัจจุบัน/Backend ในแต่ละรายการ
  • สามารถค้นหา/ดูข้อมูลมอนิเตอร์เฉพาะตัวได้ด้วยบางส่วนของชื่อ หรือ อินเด็กซ์ (ตัวเลข)
    • monitor-input Dell จะแสดงรายการมอนิเตอร์ทั้งหมดที่มีคำว่า "Dell" ในชื่อ, monitor-input 2 จะดูมอนิเตอร์อินเด็กซ์หมายเลข 2
  • รองรับแหล่งอินพุต เฉพาะผู้ผลิต (vendor-specific) ที่ไม่เป็นมาตรฐาน โดยใส่ตัวเลขเป็นแหล่งอินพุต
    • monitor-input U2723=15 P3223=17
  • รองรับ ฟังก์ชัน toggle/cycle สำหรับลงทะเบียนแหล่งอินพุตตั้งแต่สองรายการขึ้นไปด้วยเครื่องหมายจุลภาค (,) แล้วสลับตามสถานะปัจจุบัน
    • P3223=hdmi1,usbc2 → toggle ระหว่าง HDMI1 กับ USBC2, และสามารถวนมากกว่า 3 รายการได้ เช่น hdmi1,usbc2,dp1
  • ฟังก์ชัน toggle สำหรับหลายมอนิเตอร์: เมื่อสลับมอนิเตอร์หลายตัวพร้อมกัน จะใช้ แหล่งอินพุตปัจจุบันของมอนิเตอร์ตัวแรก เป็นเกณฑ์เพื่อปรับตัวอื่นให้สอดคล้องกัน
    • ใน monitor-input U2723=dp1,usbc2 P3223=hdmi1,usbc2 หากแหล่งอินพุตของมอนิเตอร์ตัวแรก U2723 เป็น DisplayPort1 จะเปลี่ยนเป็น UsbC2
    • เมื่อมอนิเตอร์ตัวแรกเปลี่ยนเป็นแหล่งที่สองในรายการ มอนิเตอร์ตัวถัด ๆ ไปก็จะเปลี่ยนเป็น แหล่งที่สอง ของรายการตัวเองเช่นกัน (เช่น P3223 เป็น UsbC2)
  • บน Windows มี เวอร์ชัน subsystem (monitor-inputw.exe) ที่ไม่เปิดหน้าต่างคอนโซลด้วยออปชัน -F winapp และแสดงข้อผิดพลาดเป็นการแจ้งเตือน toast
  • นอกจากการรันผ่านบรรทัดคำสั่งแล้ว ยังเปิดให้ใช้ในรูปแบบ ไลบรารี (as library) เพื่อเรียกจากโค้ด Rust อื่นได้โดยตรง

8 ความคิดเห็น

 
yshrust 13 시간 전

ผมใช้ Mac Mini กับโน้ตบุ๊ก Windows ร่วมกับจอ DELL 2 ตัวอยู่ครับ

Dell 1 ต่อไว้กับ Mac Mini อย่างเดียว

ส่วน Dell 2 ต่อไว้กับทั้ง Mac Mini และโน้ตบุ๊ก Windows

ผมติดตั้ง Dell Display and Peripheral Manager บน Windows แล้วตั้งฮอตคีย์ (Ctrl + Space) ไว้ เพื่อสลับหน้าจอของ Dell 2 ระหว่าง Mac กับ Windows ตามเวลาที่ต้องการใช้งาน

เครื่องมือที่แนะนำมาก็ดูน่าจะมีประโยชน์เหมือนกัน ไว้เร็ว ๆ นี้คงต้องลองเอามาใช้ดูครับ!

 

ผมใช้จอเดียวสลับไปมาระหว่าง Windows กับ Mac ครับ

จอ DELL U4025QW ไม่มีปุ่มกดครั้งเดียวเพื่อเปลี่ยน input source ต้องเข้าเมนูไปหาแล้วกดเปลี่ยน ผมเลยใช้เครื่องมือนี้ทำเป็นสคริปต์ไว้ใช้งานครับ

ของผมฝั่ง Windows เสียบไว้ที่ dp1 ส่วน Mac เสียบไว้ที่ usbc1

บน Mac ใส่ใน .zshrc ว่า alias mon='monitor-input 0=dp1'

บน Windows เปิด notepad $PROFILE แล้วเพิ่ม function mon { monitor-input 0=usbc1 } ต่อไปนี้

ทำแบบนี้แล้ว แค่พิมพ์ mon ในเชลล์ของ Windows หรือ Mac หน้าจอก็จะสลับไปมาได้เลยครับ

ผมใช้แล้วพอใจมาก เลยเอามาแนะนำครับ

 
newdps 12 시간 전

โอ้ ไม่รู้มาก่อนเลยว่าทำแบบนี้ได้ เคล็ดลับดีมาก ขอบคุณครับ

 
freedomzero 14 시간 전

ว้าว เซ็ตอัปเหมือนผมเป๊ะเลยครับ ปกติต้องกดปุ่มบนจอทุกครั้งนี่น่ารำคาญมาก เอาไปใช้เลยครับ..

 
daydreamblend 9 시간 전

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

 
loblue 12 시간 전

บน Ubuntu 24.04 ของผมใช้ไม่ได้เลย... เศร้าจัง..

 

เห็นเขียนไว้ว่าต้องติดตั้ง libudev แล้วถึงทำแบบนั้นก็ยังไม่ได้เหรอครับ?

 
loblue 9 시간 전

$ sudo apt install libudev-dev
แพ็กเกจ libudev-dev เป็นเวอร์ชันล่าสุดอยู่แล้ว (255.4-1ubuntu8.16)
$ sudo apt install librust-udev-dev
แพ็กเกจ librust-udev-dev เป็นเวอร์ชันล่าสุดอยู่แล้ว (0.8.0-1)
$ monitor-input
Error: No display monitors found for "".
ผมต่อไว้สองเส้นคือ DP กับ HDMI แต่มันตรวจไม่เจอครับ
ขี้เกียจขุดลึกต่อ เลยสรุปว่าใช้ไม่ได้แล้วปล่อยไปครับ