1 पॉइंट द्वारा GN⁺ 2023-12-30 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • डेवलपमेंट के लिए मॉनिटर को सिर्फ 0° और 90° में बाँटने के बजाय, Linux के xrandr से मनचाहे angle rotation लागू कर कोड की लंबी lines पाने का एक प्रयोग
  • 0° apps और widescreen वीडियो के लिए अच्छा बैठता है, लेकिन websites और documents में बहुत whitespace रहता है; 90° text documents पढ़ने के लिए अच्छा है, लेकिन movies दिखाने और viewing angle के लिहाज से कमजोर है
  • 1° desk के tilt को ठीक करने के लिए काम आ सकता है, लेकिन font rendering डगमगाती है; 45° horizontal और vertical के compromise जैसा लगता है, लेकिन non-square aspect ratio में space का उपयोग अटपटा हो जाता है
  • 21:9 ultrawide पर diagonal के करीब लगभग 22° rotation को सबसे लंबी line length देने वाली setting के रूप में देखा गया
  • असल implementation Xorg में xrandr --output HDMI-3 --transform... में transformation matrix डालकर किया गया, और Wayland supported नहीं था

0°, 90° से आगे मॉनिटर रोटेशन का प्रयोग

  • Vertical monitor को पढ़ने और programming के लिए काफी पहले से आजमाया जाता रहा है, और इसका फायदा यह है कि बहुत सारा text एक साथ दिखाया जा सकता है
  • basic angle comparison इस तरह है
    • : ज्यादातर applications और widescreen format videos के लिए अच्छी तरह फिट बैठता है
    • 0° नुकसान: websites और documents के आसपास बहुत margin और padding बन सकती है
    • 90°: किताब के page की तरह नीचे की ओर पढ़े जाने वाले text documents के लिए उपयुक्त
    • 90° नुकसान: movies का display अच्छा नहीं रहता और viewing angle की समस्या आती है
  • Linux में xrandr से screen को मनचाहे angle पर rotate किया जा सकता है
    • macOS और Windows में यही काम ज्यादा कठिन है
    • MacBook पर यह प्रयोग काम नहीं किया, जबकि desktop पर बिना समस्या चला
  • अलग-अलग अतिरिक्त angles के results में practicality और मजाक दोनों मिले-जुले हैं
    • : menu bar के दाईं ओर गायब होने जैसा व्यवहार दिखा, और desk थोड़ा tilted हो तो उपयोगी हो सकता है, लेकिन font rendering अजीब हो जाती है
    • 45°: horizontal और vertical के बीच का, diagonal के करीब का एहसास देता है, लेकिन square नहीं होने वाले aspect ratio में space ठीक से fit नहीं होता
    • 22°: 21:9 aspect ratio में triangle angle calculation के हिसाब से जरूरी rotation के करीब है, और इसे सबसे लंबी line length देने वाली setting के रूप में लिया गया
  • 22° rotation, लंबी line length की वजह से 80-column limit की चिंता न करने वाले निष्कर्ष तक पहुँचता है, लेकिन webcam फिसलकर नीचे आने लगता है

xrandr transformation matrix से लागू करना

  • working environment Xorg तक सीमित था, और Wayland support नहीं था
  • basic command xrandr --output HDMI-3 --transform lots of numbers here के रूप में है
  • --transform में screen position और rotation के लिए transformation matrix डाली जाती है
  • rotation और movement के लिए basic format इस तरह है
cos(x),-sin(x),shift_left,sin(x),cos(x),shift_up,0,0,1
  • example command में center movement शामिल नहीं है, और resolution न पता होने की वजह से screen को center align नहीं किया गया
#-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
  • input values से xrandr command बनाने वाला एक छोटा JavaScript calculator भी शामिल है

1 टिप्पणियां

 
GN⁺ 2023-12-30
Hacker News राय
  • यह लेख मज़ाकिया अंदाज़ में लिखा गया है, लेकिन असल में कुछ air traffic control systems तिरछे घुमाए हुए screens का इस्तेमाल करते हैं, और उस “लंबी लाइन” को airport के मुख्य approach path के साथ align रखते हैं
    मैंने जो setup देखा था वह stylus input वाला बड़ा display था; ultra-wide screen नहीं, बल्कि अपेक्षाकृत standard aspect ratio वाला display था जिसे तिरछा घुमाया गया था
    • मैंने भी दूसरों की तरह search किया, और 1:1 ratio screens काफ़ी दिखीं; इतना हो तो बुरा नहीं लगेगा
    • उस setup की photo ज़रूर देखना चाहूंगा
    • दिलचस्प। इसलिए travel direction को “up” रखने वाली setting इस्तेमाल करने के बावजूद GPS/map apps को landscape-mode device पर इस्तेमाल करने का चुनाव समझना मुश्किल लगता है
      मैं अपने बाएँ-दाएँ की नहीं, बल्कि जिस “आगे” की दिशा में मैं drive कर रहा हूँ, उसकी जानकारी maximize करना चाहूँगा
  • अगर ultra-wide monitor हो, तो उसे घुमाकर persistence of vision effect से एक विशाल circular display बनाया जा सकता है क्या? GPU लगातार redraw करते हुए जो heat निकालेगा, उसे फैलाने वाला fan भी बन जाएगा
    • कुछ दिन पहले YouTube feed में “spinning gaming monitor” आया था: https://youtu.be/J6P3o6zrqsc?si=NUB7YviQNYoSW7Vi
    • ज़्यादातर compositors पहले से ही लगातार redraw करते रहते हैं, और modern chips पर इसका load लगभग नहीं होता। अतिरिक्त move और rotate operations भी शायद महसूस नहीं होंगे
  • थोड़ा अलग मुद्दा है, लेकिन मेरी सलाह है कि ultra-wide से बड़ा 4K बेहतर है। ज़्यादा pixels कम दाम में मिल जाते हैं
    meaningful ultra-wide सिर्फ 5K x 2K resolution वाले models हैं, और इनमें single 4K से ज़्यादा pixels होते हैं, लेकिन ये महंगे हैं। फिर भी 16:9 5K monitor में pixels और ज़्यादा होते हैं
    निजी तौर पर मैं 27-inch 4K के 3 monitors इस्तेमाल करता हूँ; यह एक 5K ultra-wide से सस्ता है और pixel count कहीं ज़्यादा है
    • मुझे समझ नहीं आता कि कई monitors इस्तेमाल करने की ज़रूरत क्यों पड़ती है। अभी मैं 32-inch 4K 16:9 एक monitor पर ही 98% काम करता हूँ, और सब कुछ एक बड़े screen पर रखता हूँ
      बगल में docs, hot reload हो रही webapp, काम करते समय देखने वाला video, और screen sharing के दौरान video meeting के लिए secondary monitor तो है, लेकिन गर्दन घुमाने का effort ज़्यादा है, इसलिए असल में ज़्यादा इस्तेमाल नहीं होता। 80% तो बस खाली रहता है
    • मेरा अनुभव बिल्कुल उल्टा है। कई साल तक 2 4K monitors इस्तेमाल किए, फिर पिछले साल ultra-wide पर switch किया, और फर्क पूरी तरह अलग था
      लगा कि मुझे 4K के दो monitor तो क्या, dual monitor setup ही नहीं लेना चाहिए था। field of view के ठीक center में दो monitors की मोटी bezels होने की तुलना में ultra-wide कहीं ज़्यादा perfect और functional है
    • उल्टा, मैं 49-inch 32:9 monitor इस्तेमाल करता हूँ, और laptop के लिए यह शानदार है। single monitor support dual या उससे ऊपर के setups से कहीं बेहतर है
      laptop में सीधे plug करो तो बस काम करता है। दो displays इस्तेमाल करते समय docking station की ज़रूरत पड़ती थी, और सच कहूँ तो ज़्यादातर खराब ही थे। higher-end models तक जाते-जाते सस्ते monitors से बचाया पैसा पूरा खत्म हो जाता है
      आम तौर पर Thunderbolt-compatible dock भी चाहिए होता है, और laptop support करे तब भी वह अपने आप में समस्याओं वाली category है। ultra-wide में window management shortcuts set करना भी आसान था
    • हमेशा 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 साल पुराने system को replace करने के लिए नया build तैयार कर रहा हूँ, और monitor सिरदर्द बन गया है। general work/coding और photo editing की requirements आपस में टकराती हैं
      40 megapixel से अधिक images पर काम करता हूँ, इसलिए zoom in/out कम करने के लिए जितना हो सके high-resolution screen अच्छा है। लेकिन फिर बाकी UI elements के लिए display scaling चाहिए
      Windows आम तौर पर ठीक करता है, लेकिन जब नहीं करता तो अक्सर इस्तेमाल किया जाने वाला program ही अधूरा होता है। काफी research के बाद लगता है कि सबसे अच्छा तरीका है desired resolution को ऐसी physical size के साथ match करना, जिसे excessive scaling, जैसे 300%, के बिना इस्तेमाल किया जा सके
      Dell Ultrasharp 32" 6K पर ध्यान से नज़र है। dpi 223 के साथ थोड़ा high है, लेकिन uncropped photo का लगभग 75% दिखा सकता है। शायद साथ में एक LG DualUp भी खरीदूँगा
      दोनों में कमी यह है कि, खासकर Dell की कीमत देखते हुए, निराशाजनक रूप से ये 8bit+FRC panels हैं। मैं बाद में यह नहीं जानना चाहता कि मैं flicker-sensitive हूँ या panel ज़्यादा टिकता नहीं। फिर भी Dell की 3-year warranty है और LG का commercial version भी 3-year warranty के साथ खरीदा जा सकता है
  • आदर्श तो बेशक monitor को लगभग 54.74-degree magic angle पर rotate करना है, ताकि anisotropic interactions के प्रभाव को हटाया जा सके
    https://en.m.wikipedia.org/wiki/Magic_angle
    • यह Wikipedia article मज़ाक जैसा पढ़ा जाता है। बहुत मज़ेदार
  • maximum line length के लिए वास्तविक “ideal” rotation 22° की बजाय 23° के ज़्यादा करीब नहीं है? क्योंकि Atan(9/21) = 23.20°
    और क्या इससे भी आगे नहीं जा सकते? अगर screen content को किसी arbitrary plane की तरह देखें, तो SNES Mode 7 या Star Wars opening crawl की तरह screen content को user से दूर की ओर tilt कर दें तो कैसा रहेगा? अनंत screen height!
    • क्या character height उस calculation को प्रभावित नहीं करती? सबसे लंबी possible line तो दोनों सिरों पर render नहीं हो पाएगी, इसलिए किसी दूसरे angle की छोटी line ज़्यादा text दिखा सकती है क्या?
    • अगर monitor curved हो, तो शायद यह 24° के और करीब हो सकता है
  • मेरे Go code के लिए 90 degrees सबसे अच्छा है। उस orientation में “if err != nil” blocks बहुत ज़्यादा फिट हो जाते हैं
    • ऐसा करने से 2-column layout भी possible है। वैसे भी किसी को 80 characters से ज़्यादा लिखना नहीं चाहिए
  • इसी संदर्भ में, काश 3:2 displays ज़्यादा होते और लोग उन्हें बेहतर जानते। इंसानों की central vision, peripheral vision नहीं, बल्कि ratio 3:2 के बहुत करीब है, लेकिन economies of scale की वजह से 16:9 थोड़ा सस्ता और बहुत ज़्यादा common है
    और जिन्हें curiosity हो, उनके लिए बता दूँ: vertical space बढ़ाने के लिए 16:9 को portrait में rotate करना मददगार नहीं है। क्योंकि वह बहुत संकरा हो जाता है। मेरे लिए शायद square display सबसे अच्छा होगा
    इसके अलावा subpixel rendering issues और TN panels के viewing angle issues भी हैं, लेकिन वे अपेक्षाकृत छोटे issues हैं
    • Eizo ने 1920x1920 display बनाया था, लेकिन लगता है अब discontinued है। एक अच्छा review है: https://youtu.be/gJG9HOQITrg

LG DualUp लगभग चौकोर 16:18 मॉनिटर है, इसका resolution Eizo से ज़्यादा है और कीमत लगभग आधी है

  • इंसान के केंद्रीय दृष्टि-क्षेत्र का अनुपात 3:2 के करीब है, यह बात तब ज़्यादा मायने नहीं रखती जब मॉनिटर का आकार केंद्रीय दृष्टि-क्षेत्र से काफी बड़ा हो
    अहम चीज़ गर्दन पर पड़ने वाला दबाव है। व्यवहार में, सिर को क्षैतिज रखते हुए उसे बाएँ-दाएँ घुमाने का मन होता है। बाएँ-दाएँ की गति में gravity से लड़ना नहीं पड़ता, लेकिन ऊपर-नीचे की गति में पड़ता है
    इसलिए मॉनिटर size के मामले में लंबवत ऊँचे होने के बजाय क्षैतिज रूप से चौड़ा होना बेहतर है
  • Huawei 3:2 28-inch monitor बनाता है: https://consumer.huawei.com/uk/monitors/mateview/specs/
    resolution 3840*2560 है
  • सही है। बेसमेंट में पुराना IBM Thinkpad ढूँढकर इस्तेमाल करने के बाद ही समझ आया कि widescreen display कितने गलत दिशा में चले गए हैं
    साथ ही, toolbar जैसी चीज़ें अक्सर vertical space खा जाती हैं और काम की जगह को और चौड़े ratio में दबा देती हैं। text पढ़ते या लिखते समय screen के बाएँ-दाएँ किनारे बस खाली पट्टियों जैसे रह जाते हैं
    समान area में, ज़्यादा ऊँचा display कहीं ज़्यादा spacious महसूस होता है। हालांकि दो window/panel/buffer को साथ-साथ रखना पहले जितना सुविधाजनक नहीं हो सकता
    अगर आप सच में 3:2 screen इस्तेमाल कर रहे हैं, तो जानना चाहूँगा कि कौन-सा product है
  • इसलिए SurfaceBook मुझे सचमुच बहुत पसंद था। aspect ratio लगभग perfect था। अब MBP पर लौट आया हूँ, और यह उसके बाद सबसे ठीक विकल्प है
  • 22° समाधान में triangular window implementation या “diagonal split” window view option नहीं है
    • optimal screen शायद मोटे तौर पर triangle या semicircle जैसी होगी। घुमाई हुई rectangular screen बस एक बहुत rough approximation है
  • मैंने 48-inch monitor को primary monitor के तौर पर खरीदा। rotation जैसी चीज़ों की चिंता करने की ज़रूरत नहीं, बस आँखों के सामने एक विशाल screen है
    लगता है कुछ लोगों को सामने बड़ा monitor होना बोझिल लगता है, लेकिन एक बार इस्तेमाल कर लें तो समझ आ जाता है कि 27-inch या 32-inch जैसे छोटे monitors को single/dual/triple setup में रखना बेवजह complex है
    एक बड़ा monitor कहीं बेहतर है। बड़े monitors ही future हैं; बस लोग अभी किसी न किसी वजह से उन्हें खरीदने में सहज महसूस नहीं करते
    • यह software support की समस्या भी हो सकती है। एक monitor को दो की तरह इस्तेमाल करने की तुलना में बस दो monitors रखना ज़्यादा आसान “महसूस” होता है
      इसी संदर्भ में, जानना चाहूँगा कि आपने window management कैसे setup किया है
    • अगर 48-inch 4K monitor है, तो आखिरकार मामला कुछ ऐसा है
      • बिना bezel वाले चार 24-inch 1080P monitors
      • flexibility के बिना fixed grid में बंधे चार 24-inch 1080P monitors
        हर व्यक्ति की पसंद अलग होती है, और यह ठीक है
    • मेरे पास भी 48-inch monitor है। दोनों ओर एक-एक 27-inch monitor portrait mode में रखा है
      लेकिन यह समझ नहीं आता कि multiple monitors को complex क्यों माना जाता है। plug in करो, ज़रूरत हो तो window को side में खींच दो, और काम करते रहो
    • बड़ा monitor खरीदने में हिचकिचाने की वजह यह है कि desk पर बड़े monitor को देखकर काम करना असुविधाजनक लगता है और coding के लिए extra space का निजी फायदा महसूस नहीं होता
      16-inch laptop में भी तीन vertical terminal panels—एक editing के लिए, एक documentation के लिए, और एक shell commands के लिए—रखने की जगह काफी है। web पर कुछ खोजना हो तो cmd-H से space बदलता हूँ और cmd-L से terminal में लौट आता हूँ
      मेरा workflow laptop पर चलता है, इसलिए जहाँ भी जाऊँ वही बना रहता है। बेशक यह तरीका सबके लिए नहीं है, लेकिन मुझे इस बात पर काफी संदेह है कि बड़े monitors ही ज़्यादातर लोगों का future हैं, और कम से कम मेरे लिए तो लगभग पक्का है कि वे future नहीं हैं
    • मैं किसी भी monitor पर हमेशा full screen इस्तेमाल नहीं करना चाहता, इसलिए ज़रूरत पड़ने पर दूसरे monitors बंद किए जा सकें ऐसे कई छोटे monitors बेहतर लगते हैं
      उनकी अपनी मुश्किलें हैं, लेकिन web browsing जैसी चीज़ें full screen में करना चाहता हूँ, और विशाल screen पर यह ठीक से fit नहीं बैठता