1 คะแนน โดย GN⁺ 2023-12-30 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เป็นการทดลองเพื่อใช้ xrandr บน Linux หมุนจอภาพสำหรับงานพัฒนาในมุมใดก็ได้ ไม่จำกัดแค่ 0° และ 90° เพื่อให้ได้บรรทัดโค้ดที่ยาวขึ้น
  • 0° เหมาะกับแอปและวิดีโอจอกว้าง แต่เว็บไซต์·เอกสารมักมีพื้นที่ว่างเยอะ ส่วน 90° เหมาะกับการอ่าน เอกสารข้อความ แต่เสียเปรียบด้านการแสดงภาพยนตร์และมุมมอง
  • 1° อาจใช้ชดเชยความเอียงของโต๊ะได้ แต่ทำให้การเรนเดอร์ฟอนต์สั่นไหว ส่วน 45° ดูเหมือนเป็นจุดประนีประนอมระหว่างแนวนอน·แนวตั้ง แต่บน อัตราส่วนภาพที่ไม่ใช่สี่เหลี่ยมจัตุรัส การใช้พื้นที่จะดูไม่ลงตัว
  • บนจออัลตราไวด์ 21:9 การหมุนประมาณ 22° ซึ่งใกล้เคียงแนวทแยง ถูกนำเสนอว่าเป็นการตั้งค่าที่ให้ความยาวบรรทัดมากที่สุด
  • การใช้งานจริงทำบน Xorg โดยใส่เมทริกซ์แปลงค่าใน xrandr --output HDMI-3 --transform... ส่วน Wayland ไม่รองรับ

การทดลองหมุนจอภาพที่ไปไกลกว่า 0° และ 90°

  • จอภาพแนวตั้งถูกทดลองใช้สำหรับการอ่านและการเขียนโปรแกรมมานานแล้ว และมีข้อดีคือสามารถแสดงข้อความจำนวนมากได้ในครั้งเดียว
  • การเปรียบเทียบมุมพื้นฐานมีดังนี้
    • : เหมาะกับแอปพลิเคชันส่วนใหญ่และวิดีโอรูปแบบจอกว้าง
    • ข้อเสียของ 0°: เว็บไซต์และเอกสารอาจมีพื้นที่ว่างและ padding รอบ ๆ มากเกินไป
    • 90°: เหมาะกับเอกสารข้อความที่อ่านลงด้านล่างเหมือนหน้าหนังสือ
    • ข้อเสียของ 90°: แสดงภาพยนตร์ได้ไม่ดี และเกิดปัญหาเรื่องมุมมอง
  • บน Linux สามารถใช้ xrandr เพื่อหมุนหน้าจอเป็นมุมใดก็ได้
    • บน macOS และ Windows การทำแบบเดียวกันยุ่งยากกว่า
    • บน MacBook การทดลองไม่ทำงาน แต่บนเดสก์ท็อปทำงานได้โดยไม่มีปัญหา
  • ผลลัพธ์ของมุมเพิ่มเติมมีทั้งแง่ใช้งานจริงและมุกขำ ๆ ปะปนกัน
    • : พบว่าแถบเมนูหายไปทางขวา และอาจมีประโยชน์เมื่อโต๊ะเอียงเล็กน้อย แต่ทำให้การเรนเดอร์ฟอนต์แปลกไป
    • 45°: ให้ความรู้สึกว่าเป็นกึ่งกลางระหว่างแนวนอนกับแนวตั้งและใกล้เคียงแนวทแยง แต่บนอัตราส่วนภาพที่ไม่ใช่สี่เหลี่ยมจัตุรัส พื้นที่ไม่ลงตัวนัก
    • 22°: บนอัตราส่วนภาพ 21:9 เป็นมุมที่ใกล้กับการหมุนที่ต้องใช้ตามการคำนวณมุมของสามเหลี่ยม และถูกนำเสนอว่าเป็นการตั้งค่าที่ให้ความยาวบรรทัดมากที่สุด
  • การหมุน 22° นำไปสู่ข้อสรุปว่า ด้วยความยาวบรรทัดที่มาก จึงไม่ต้องกังวลกับข้อจำกัด 80 คอลัมน์ แต่ เว็บแคมเริ่มไถลลงมา

การใช้เมทริกซ์แปลงค่าของ xrandr

  • สภาพแวดล้อมที่ทำงานจำกัดอยู่ที่ Xorg และไม่มีการรองรับ Wayland
  • คำสั่งพื้นฐานอยู่ในรูป xrandr --output HDMI-3 --transform lots of numbers here
  • ใน --transform ให้ใส่ เมทริกซ์แปลงค่า สำหรับตำแหน่งและการหมุนของหน้าจอ
  • รูปแบบพื้นฐานที่ต้องใช้สำหรับการหมุนและการเลื่อนมีดังนี้
cos(x),-sin(x),shift_left,sin(x),cos(x),shift_up,0,0,1
  • คำสั่งตัวอย่างไม่ได้รวมการเลื่อนไปยังจุดศูนย์กลาง และไม่ได้จัดหน้าจอให้อยู่กลางเพราะไม่ทราบความละเอียด
#-0.1
xrandr --output HDMI-3 --transform 0.999998476913288,0.00174532836589831,0,-0.00174532836589831,0.999998476913288,0,0,0,1

#1
xrandr --output HDMI-3 --transform 0.999847695156391,-0.0174524064372835,0,0.0174524064372835,0.999847695156391,0,0,0,1

#45
xrandr --output HDMI-3 --transform 0.707106781186548,-0.707106781186548,0,0.707106781186548,0.707106781186548,0,0,0,1

#22
xrandr --output HDMI-3 --transform 0.927183854566787,-0.374606593415912,0,0.374606593415912,0.927183854566787,0,0,0,1
  • มี เครื่องคำนวณ JavaScript ขนาดเล็กที่สร้างคำสั่ง xrandr จากค่าที่ป้อนด้วย

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

 
GN⁺ 2023-12-30
ความเห็นจาก Hacker News
  • บทความนี้เขียนแบบขำ ๆ แต่ในความเป็นจริง ระบบ ควบคุมการจราจรทางอากาศ บางระบบก็ใช้จอที่หมุนเฉียง โดยให้ “เส้นยาว” ตรงกับแนวทางเข้าหลักของสนามบิน
    ชุดที่ฉันเคยเห็นเป็นจอขนาดใหญ่ที่รองรับปากกา stylus และไม่ได้เป็นจอ ultrawide แต่เป็นจออัตราส่วนมาตรฐานที่หมุนเอียง
    • ฉันก็ลองค้นเหมือนคนอื่น ๆ แล้วพบว่ามีจอ อัตราส่วน 1:1 อยู่พอสมควร ซึ่งก็ดูไม่เลวเลย
    • อยากเห็นรูปของชุดนั้นจริง ๆ
    • น่าสนใจ เลยยิ่งทำให้ฉันเข้าใจยากว่าทำไมถึงเลือกใช้ แอป GPS/แผนที่ บนอุปกรณ์แนวนอน ทั้งที่ตั้งค่าให้ทิศการเดินทางเป็น “ขึ้น”
      ฉันอยากให้ข้อมูล “ข้างหน้า” ที่กำลังจะขับไปมีมากที่สุด ไม่ใช่ด้านซ้ายขวา
  • ถ้ามีจอ ultrawide อยู่แล้ว อาจจะหมุนมันเพื่อสร้างจอวงกลมขนาดยักษ์ด้วย เอฟเฟกต์ภาพค้างตา ก็ได้ไหม? แถมยังทำหน้าที่เป็นพัดลมกระจายความร้อนจาก GPU ที่ต้องคอยวาดภาพใหม่ตลอดเวลาได้ด้วย
    • เมื่อไม่กี่วันก่อนในฟีด YouTube ของฉันมี “spinning gaming monitor” โผล่มา: https://youtu.be/J6P3o6zrqsc?si=NUB7YviQNYoSW7Vi
    • compositor ส่วนใหญ่ก็วาดใหม่ตลอดเวลาอยู่แล้ว และบนชิปรุ่นใหม่แทบไม่เป็นภาระเลย การคำนวณการเลื่อนกับการหมุนเพิ่มก็คงแทบไม่รู้สึก
  • เป็นอีกประเด็นหนึ่ง แต่ถ้าจะให้แนะนำ 4K ที่ใหญ่กว่า ultrawide จะดีกว่า ได้พิกเซลมากกว่าในราคาถูกกว่า
    ultrawide ที่มีความหมายจริง ๆ มีแค่รุ่นความละเอียด 5K x 2K ซึ่งแม้จะมีพิกเซลมากกว่า 4K เดี่ยว แต่ก็แพงกว่า และจอ 16:9 5K ก็ยังมีพิกเซลมากกว่าอยู่ดี
    ส่วนตัวฉันใช้ 27 นิ้ว 4K อยู่ 3 จอ ซึ่งถูกกว่า ultrawide 5K หนึ่งจอ และมีจำนวนพิกเซลมากกว่ามาก
    • ฉันไม่ค่อยเข้าใจว่าทำไมต้องใช้หลายจอ ตอนนี้ฉันทำงาน 98% บน 32 นิ้ว 4K 16:9 จอเดียว และวางทุกอย่างไว้บนจอใหญ่จอเดียว
      แม้จะมีจอเสริมไว้ด้านข้างสำหรับเอกสาร, เว็บแอปที่ hot reload, วิดีโอที่เปิดดูระหว่างทำงาน, และวิดีโอคอลตอนแชร์หน้าจอ แต่เพราะการต้องหันคอไปมามันลำบาก เลยแทบไม่ได้ใช้จริง ๆ 80% ของเวลาก็ว่างเปล่า
    • ฉันตรงกันข้ามเลย ใช้ จอ 4K 2 จอ มาหลายปี แล้วปีที่แล้วเปลี่ยนเป็น ultrawide ซึ่งต่างกันโดยสิ้นเชิง
      รู้สึกเลยว่าไม่น่าซื้อ 4K สองจอ หรือจริง ๆ คือไม่น่าซื้อจอคู่ตั้งแต่แรก เพราะ ultrawide สมบูรณ์และใช้งานได้ดีกว่ามาก เมื่อเทียบกับการมีขอบจอหนา ๆ ของสองจออยู่ตรงกลางสายตาพอดี
    • ส่วนฉันใช้ จอ 49 นิ้ว 32:9 ซึ่งยอดเยี่ยมมากสำหรับแล็ปท็อป การรองรับจอเดี่ยวดีกว่าการต่อหลายจอมาก
      เสียบเข้ากับแล็ปท็อปตรง ๆ ก็ใช้งานได้เลย แต่ตอนใช้จอสองจอต้องมี docking station และบอกตรง ๆ ว่าส่วนใหญ่ไม่ค่อยดี ถ้าขยับไปใช้รุ่นบน เงินที่ประหยัดจากการซื้อจอถูกก็หายหมด
      ปกติก็ยังต้องใช้ dock ที่รองรับ Thunderbolt และถึงแล็ปท็อปจะรองรับ ก็ยังเป็นกลุ่มที่มีปัญหาได้อยู่ดี ส่วน ultrawide ตั้งค่าคีย์ลัดจัดการหน้าต่างก็ง่ายกว่าด้วย
    • ต้องดู PPI เสมอ โดยประมาณก็แบบนี้
      27” 5K (5120 x 2880) -> 218 PPI
      32” 4K (3840 x 2160) -> 137.68 PPI
      34” 5K (5120 x 2160) -> 163.44 PPI
      39.7” 5K (5120 x 2160) -> 139.97 PPI
      Apple Pro Display XDR 32" 6K (6016 x 3384) -> 218 PPI
    • ฉันกำลังเตรียมประกอบเครื่องใหม่มาแทนระบบอายุ 11 ปี และเรื่องจอทำให้ปวดหัวมาก ความต้องการของงานทั่วไป/เขียนโค้ดกับ การแต่งภาพ มันขัดกัน
      เพราะต้องจัดการภาพขนาดเกิน 40 ล้านพิกเซล จอที่ความละเอียดสูงที่สุดเท่าที่จะเป็นไปได้จึงดีกว่าเพื่อจะได้ซูมเข้าออกน้อยลง แต่พอเป็นแบบนั้น องค์ประกอบ UI อื่น ๆ ก็ต้องใช้การปรับสเกลหน้าจอแทน
      บน Windows โดยรวมถือว่าทำได้ดี แต่เวลามีปัญหาก็มักเป็นเพราะโปรแกรมที่ใช้อยู่ทำได้ไม่ดี จากที่หาข้อมูลมาเยอะ ดูเหมือนว่าวิธีที่ดีที่สุดคือเลือกขนาดจริงของจอให้เหมาะกับความละเอียดที่ต้องการ เพื่อให้ใช้งานได้โดยไม่ต้องสเกลหนักเกินไป เช่น 300%
      ตอนนี้กำลังมอง Dell Ultrasharp 32" 6K อย่างจริงจัง ค่า dpi 223 ถือว่าสูงไปนิด แต่สามารถแสดงภาพที่ไม่ครอปได้ประมาณ 75% และน่าจะซื้อ LG DualUp เพิ่มอีกตัวด้วย
      สิ่งที่น่าเสียดายของทั้งคู่คือ โดยเฉพาะเมื่อคิดถึงราคาของ Dell มันน่าผิดหวังที่ยังเป็น พาเนล 8bit+FRC ฉันไม่อยากมารู้ทีหลังว่าตัวเองไวต่อการกะพริบ หรือพาเนลพวกนี้อายุไม่ยืน อย่างน้อย Dell ก็รับประกัน 3 ปี และ LG ก็ซื้อรุ่นเชิงพาณิชย์ที่รับประกัน 3 ปีได้
  • แบบที่เหมาะที่สุดแน่นอนก็คือจอที่หมุนประมาณ 54.74 องศามหัศจรรย์ เพื่อกำจัดผลของปฏิสัมพันธ์แบบแอนไอโซทรอปิก
    https://en.m.wikipedia.org/wiki/Magic_angle
    • บทความ Wikipedia นี้อ่านเหมือนมุกตลกเลย ฮามาก
  • ถ้าพูดถึงการหมุนที่ “เหมาะที่สุด” จริง ๆ เพื่อให้ได้ความยาวบรรทัดสูงสุด มันไม่น่าจะใกล้ 23° มากกว่า 22° เหรอ? เพราะ Atan(9/21) = 23.20°
    แล้วจะไปไกลกว่านั้นอีกก็ได้ไหม? ถ้ามองเนื้อหาบนจอเป็นระนาบอิสระ แบบ SNES Mode 7 หรือข้อความเปิดเรื่อง Star Wars ที่เอียงออกไปด้านหลังผู้ใช้ จะเป็นอย่างไร? ความสูงหน้าจอไม่จำกัด!
    • ความสูงของตัวอักษรไม่กระทบกับการคำนวณนั้นเหรอ? บรรทัดที่ยาวที่สุดอาจเรนเดอร์ตรงปลายทั้งสองด้านไม่ได้ ดังนั้นบรรทัดที่สั้นกว่าในมุมอื่นอาจแสดงข้อความได้มากกว่าก็ได้ไม่ใช่หรือ?
    • ถ้าจอเป็นจอโค้ง ก็อาจจะใกล้ 24° มากกว่าด้วยซ้ำ
  • สำหรับ โค้ด Go ของฉัน 90 องศาคือที่สุด เพราะถ้าเป็นแบบนั้นก็ยัดบล็อก “if err != nil” ได้อีกเยอะมาก
    • ถ้าทำแบบนั้นก็จัดเลย์เอาต์สองคอลัมน์ได้ด้วย ยังไงซะก็ไม่มีใครควรเขียนเกิน 80 ตัวอักษรอยู่แล้ว
  • ในทำนองเดียวกัน ฉันอยากให้มี จอ 3:2 มากขึ้นและคนรู้จักมันมากขึ้น สัดส่วนของการมองเห็นส่วนกลางของมนุษย์ ไม่ใช่การมองเห็นรอบข้าง แต่เป็นอัตราส่วนที่ใกล้กับ 3:2 มาก เพียงแต่เพราะ economy of scale ทำให้ 16:9 ถูกกว่าเล็กน้อยและพบได้ทั่วไปกว่ามาก
    และสำหรับคนที่สงสัย การหมุนจอ 16:9 เป็นแนวตั้งเพื่อเพิ่มพื้นที่แนวตั้งนั้นไม่ได้ช่วย เพราะมันจะแคบเกินไป สำหรับฉันจอทรงสี่เหลี่ยมจัตุรัสน่าจะดีที่สุด
    ปัญหาเรื่อง subpixel rendering กับมุมมองของพาเนล TN ก็มีด้วย แต่ถือว่าเป็นปัญหาเล็กกว่าเมื่อเทียบกัน
    • Eizo เคยทำจอ 1920x1920 แต่ดูเหมือนตอนนี้เลิกผลิตแล้ว มีรีวิวที่ดีอยู่: https://youtu.be/gJG9HOQITrg

LG DualUp เป็นจอ 16:18 ที่เกือบเป็นสี่เหลี่ยมจัตุรัส ความละเอียดสูงกว่า Eizo และราคาถูกกว่ากันเกือบครึ่ง

  • การที่สัดส่วนลานสายตาส่วนกลางของมนุษย์ใกล้เคียง 3:2 นั้น แทบไม่เกี่ยวอะไรนักเมื่อขนาดจอใหญ่กว่าลานสายตาส่วนกลางมาก
    สิ่งสำคัญคือ ภาระที่คอ ในการใช้งานจริง เรามักอยากให้ศีรษะอยู่ในแนวระดับแล้วขยับซ้ายขวา การขยับซ้ายขวาไม่ต้องสู้กับแรงโน้มถ่วง แต่การขยับขึ้นลงต้องสู้
    เพราะงั้นสำหรับขนาดจอแล้ว จอที่กว้างในแนวนอนย่อมดีกว่าจอที่สูงในแนวตั้ง
  • Huawei ทำ จอ 3:2 ขนาด 28 นิ้ว: https://consumer.huawei.com/uk/monitors/mateview/specs/
    ความละเอียดคือ 3840*2560
  • ใช่เลย ผมเพิ่งตระหนักว่าจอไวด์สกรีนมันเพี้ยนแค่ไหนก็ตอนลองไปค้น IBM Thinkpad เก่าๆ ในห้องใต้ดินมาใช้
    เพิ่มเติมคือ พวกแถบเครื่องมือมักกินพื้นที่แนวตั้งอยู่บ่อยๆ ทำให้พื้นที่ทำงานถูกบีบให้ยิ่งกว้างเข้าไปอีก เวลาจะอ่านหรือเขียนข้อความ ขอบซ้ายขวาของจอก็เหมือนเป็นแผ่นว่างเปล่าเฉยๆ
    ถ้าพื้นที่เท่ากัน จอที่สูงกว่าจะให้ความรู้สึกว่ากว้างขวางกว่ามาก เพียงแต่การวางหน้าต่าง/พาเนล/บัฟเฟอร์สองอันเคียงกันอาจไม่สะดวกเหมือนเมื่อก่อน
    ถ้าคุณใช้จอ 3:2 อยู่จริง อยากรู้ว่าใช้รุ่นไหน
  • นั่นแหละคือเหตุผลที่ผมชอบ SurfaceBook มาก อัตราส่วนหน้าจอแทบจะสมบูรณ์แบบ ตอนนี้กลับมาใช้ MBP แล้ว ซึ่งก็ถือว่าดีรองลงมา
  • วิธีแก้แบบ 22° ยังขาดการทำ หน้าต่างทรงสามเหลี่ยม หรือมุมมองหน้าต่างแบบ “แบ่งแนวทแยง”
    • หน้าจอที่เหมาะที่สุดน่าจะใกล้เคียงรูปสามเหลี่ยมหรือครึ่งวงกลม การใช้จอสี่เหลี่ยมผืนผ้าที่หมุนแล้วเป็นเพียงการประมาณแบบหยาบมากเท่านั้น
  • ผมซื้อจอ 48 นิ้วมาเป็นจอหลัก ไม่ต้องกังวลเรื่องการหมุนอะไรเลย แค่มี จอยักษ์ อยู่ตรงหน้า
    ดูเหมือนบางคนจะรู้สึกอึดอัดกับการมีจอใหญ่ตรงหน้า แต่พอได้ลองใช้แล้วจะรู้ว่าการจัดจอเล็กขนาด 27 หรือ 32 นิ้วแบบเดี่ยว/คู่/สามจอนั้นซับซ้อนเกินความจำเป็น
    จอใหญ่จอเดียวดีกว่ามาก จอขนาดใหญ่คืออนาคต เพียงแต่ตอนนี้ผู้คนยังไม่ค่อยรู้สึกพร้อมจะซื้อมันไม่ว่าด้วยเหตุผลใดก็ตาม
    • อาจเป็นปัญหาเรื่องซอฟต์แวร์ซัพพอร์ต การใช้ จอสองจอจริงๆ ให้ความรู้สึกว่า “ง่ายกว่า” การใช้จอเดียวให้เหมือนสองจอ
      ในแง่นั้นอยากรู้ว่าคุณตั้งค่าการจัดการหน้าต่างไว้อย่างไร
    • ถ้าเป็นจอ 48 นิ้ว 4K สุดท้ายมันก็ประมาณนี้
      • จอ 24 นิ้ว 1080P 4 จอแบบไร้ขอบ
      • จอ 24 นิ้ว 1080P 4 จอที่ถูกผูกไว้กับกริดตายตัวโดยไม่มีความยืดหยุ่น
        แต่ละคนก็มีความชอบต่างกันไป ซึ่งก็ไม่เป็นไร
    • ผมก็มีจอ 48 นิ้วเหมือนกัน และมีจอ 27 นิ้วโหมดแนวตั้งวางไว้ซ้ายขวาอีกข้างละจอ
      แต่ก็ไม่ค่อยเข้าใจว่าทำไมถึงมองว่าหลายจอมันซับซ้อน แค่เสียบ ลากหน้าต่างไปด้านข้างเมื่อจำเป็น แล้วก็ทำงานได้เลย
    • เหตุผลที่ผมไม่อยากซื้อจอใหญ่ ก็เพราะรู้สึกว่าเวลานั่งทำงานที่โต๊ะแล้วต้องมอง จอขนาดใหญ่ มันไม่สบาย และผมก็ไม่เห็นประโยชน์ส่วนตัวจากพื้นที่เพิ่มสำหรับการเขียนโค้ด
      แม้แต่บนโน้ตบุ๊ก 16 นิ้ว ก็ยังมีพื้นที่พอสำหรับพาเนลเทอร์มินัลแนวตั้ง 3 อัน คืออันหนึ่งไว้แก้ไข อันหนึ่งไว้ดูเอกสาร และอีกอันไว้รันคำสั่งเชลล์ ถ้าต้องค้นอะไรบนเว็บก็สลับสเปซด้วย cmd-H แล้วกลับเข้าเทอร์มินัลด้วย cmd-L ได้เลย
      เวิร์กโฟลว์ของผมทำงานได้บนโน้ตบุ๊ก ดังนั้นไปที่ไหนก็ใช้แบบเดิมได้ แน่นอนว่าวิธีนี้ไม่ได้เหมาะกับทุกคน แต่ผมค่อนข้างสงสัยว่าจอใหญ่จะเป็นอนาคตของคนส่วนใหญ่จริงหรือไม่ และแทบมั่นใจได้เลยว่าอย่างน้อยสำหรับผม มันไม่ใช่อนาคต
    • ผมไม่ได้อยากใช้พื้นที่เต็มหน้าจอตลอดเวลาไม่ว่าจะเป็นจอแบบไหน เลยชอบ จอเล็กหลายจอ มากกว่า เพราะสามารถปิดบางจอไว้ได้เมื่อไม่ต้องการ
      มันก็มีความยุ่งยากในแบบของมัน แต่บางอย่างอย่างการท่องเว็บผมอยากใช้แบบเต็มหน้าจอ และบนจอขนาดมหึมามันไม่ค่อยลงตัว