XRANDR(1) X Version 11 XRANDR(1)

xrandr - تنظیم اندازه، جهت‌گیری و بازتاب خروجی‌های صفحه نمایش با استفاده از افزونه RandR

xrandr [--help] [--display display] [-q] [-v] [--verbose] [--dryrun]
       [--screen snum] [--q1] [--q12] [--current] [--noprimary]
       [--panning widthxheight[+x+y[/track_widthxtrack_height+track_x+track_y[/border_left/border_top/border_right/border_bottom]]]]
       [--scale x[xy]] [--scale-from wxh] [--transform a,b,c,d,e,f,g,h,i]
       [--primary] [--prop] [--fb widthxheight] [--fbmm widthxheight]
       [--dpi dpi] [--dpi from-output]
       [--newmode name mode] [--rmmode name] [--addmode output name]
       [--delmode output name] [--output output] [--auto] [--mode mode]
       [--preferred] [--pos xxy] [--rate rate]
       [--reflect reflection] [--rotate orientation]
       [--left-of output] [--right-of output]
       [--above output] [--below output] [--same-as output]
       [--set property value] [--off] [--crtc crtc]
       [--gamma red[:green:blue]] [--brightness brightness]
       [-o orientation] [-s size] [-r rate] [-x] [-y]
       [--listproviders] [--setprovideroutputsource provider source]
       [--setprovideroffloadsink provider sink]
       [--listmonitors] [--listactivemonitors]
       [--setmonitor name geometry outputs] [--delmonitor name]

دستور Xrandr برای تنظیم اندازه، جهت‌گیری و/یا بازتاب خروجی‌های یک صفحه نمایش به کار می‌رود. این ابزار همچنین می‌تواند اندازه کلی صفحه نمایش را تنظیم کند.

اگر بدون هیچ گزینه‌ای فراخوانی شود، وضعیت خروجی‌ها را نمایش داده و حالت‌های موجود برای هر یک را چاپ می‌کند؛ به طوری که یک علامت '+' پس از حالت‌های ترجیحی و یک علامت '*' پس از حالت فعلی قرار می‌گیرد.

تعدادی گزینه سراسری وجود دارد. سایر گزینه‌ها آخرین خروجی مشخص‌شده در پارامترهای قبلی خط فرمان را تغییر می‌دهند. با ارسال چندین گزینه --output که بلافاصله با گزینه‌های تغییردهنده مربوطه‌شان همراه باشند، می‌توان چندین خروجی را به طور همزمان تغییر داد.

چکیده‌ای از نحوه استفاده را چاپ کرده و خارج می‌شود.
نسخه RandR گزارش‌شده توسط کارساز X را چاپ کرده و خارج می‌شود.
موجب نمایش خروجی با جزئیات بیشتر می‌شود. هنگامی که همراه با -q (یا بدون سایر گزینه‌ها) استفاده شود، xrandr اطلاعات بیشتری درباره وضعیت کارساز نمایش خواهد داد. لطفاً توجه داشته باشید که اطلاعات گاما و روشنایی تنها تقریبی از نمایه رنگ کامل ذخیره‌شده در کارساز هستند. هنگامی که همراه با گزینه‌های پیکربندی مجدد سیستم استفاده شود، پیشرفت عملیات در حین اعمال تغییرات پیکربندی گزارش خواهد شد.
هنگامی که این گزینه مشخص شود، یا هیچ تغییر پیکربندی درخواست نشده باشد، xrandr وضعیت فعلی سیستم را نمایش می‌دهد.
تمام اقدامات مشخص‌شده را بدون اعمال هیچ تغییری اجرا می‌کند (اجرای آزمایشی).
تغییرات را بدون قبضه کردن صفحه نمایش اعمال می‌کند. این گزینه از مسدود شدن سایر برنامه‌ها در حین به‌روزرسانی جلوگیری می‌کند، اما ممکن است باعث شود برخی برنامه‌هایی که تغییر اندازه صفحه را تشخیص می‌دهند، مقادیر قدیمی را دریافت کنند.
نمایشگر X (display) مورد استفاده را انتخاب می‌کند. توجه داشته باشید این به مفهوم انتزاعی screen در X اشاره دارد، نه مانیتور (یا خروجی).
صفحه نمایشی (screen) که باید تغییر داده شود را انتخاب می‌کند. توجه داشته باشید این به مفهوم انتزاعی screen در X اشاره دارد، نه مانیتور (یا خروجی).
استفاده از پروتکل RandR نسخه ۱.۱ را اجباری می‌کند، حتی اگر نسخه بالاتری در دسترس باشد.
استفاده از پروتکل RandR نسخه ۱.۲ را اجباری می‌کند، حتی اگر نمایشگر پشتیبانی از آن را گزارش ندهد یا نسخه بالاتری در دسترس باشد.

گزینه‌های RandR 1.5 به عنوان ابرمجموعه‌ای از گزینه‌های RandR 1.4 استفاده می‌شوند.

اطلاعات مربوط به تمام مانیتورهای تعریف‌شده را گزارش می‌دهد.
اطلاعات مربوط به مانیتورهای فعال فعلی را گزارش می‌دهد.
یک مانیتور جدید با هندسه مشخص‌شده و مرتبط با خروجی‌های داده‌شده تعریف می‌کند. آرگومان output-list یا کلمه کلیدی none یا فهرستی از خروجی‌ها جداشده با کاما است. آرگومان geometry یا کلمه کلیدی auto است (که در این صورت مانیتور به طور خودکار هندسه خروجی‌های مرتبط را دنبال می‌کند) یا یک مشخصات دستی به فرم:
w/mmwxh/mmh+x+y
که در آن w, h, x, y بر حسب پیکسل و mmw, mmh ابعاد فیزیکی مانیتور بر حسب میلی‌متر هستند.
مانیتور تعریف‌شده توسط کاربر مشخص‌شده را حذف می‌کند.

گزینه‌های RandR 1.4 به عنوان ابرمجموعه‌ای از گزینه‌های RandR 1.3 استفاده می‌شوند.

اطلاعات مربوط به ارائه‌دهندگان (providers) موجود را گزارش می‌دهد.
خروجی source را به عنوان منبع تصاویر خروجی نمایشگر برای provider تنظیم می‌کند. این کار تنها در صورتی ممکن است که source و provider به ترتیب دارای قابلیت‌های Source Output و Sink Output باشند. اگر source برابر با 0x0 باشد، اتصال provider از منبع خروجی فعلی‌اش قطع می‌شود.
دستگاه provider را به عنوان یک دستگاه تخلیه بار رندر (render offload) برای sink تنظیم می‌کند. این کار تنها در صورتی ممکن است که provider و sink به ترتیب دارای قابلیت‌های Source Offload و Sink Offload باشند. اگر sink برابر با 0x0 باشد، اتصال provider از مقصد فعلی تخلیه بار رندر قطع می‌شود.

گزینه‌های RandR 1.3 به عنوان ابرمجموعه‌ای از گزینه‌های RandR 1.2 استفاده می‌شوند.

پیکربندی فعلی صفحه نمایش را بدون استعلام تغییرات سخت‌افزاری برمی‌گرداند.
هیچ خروجی اصلی (primary) تعیین نمی‌کند.

گزینه‌های به ازای هر خروجی (Per-output options)

این گزینه پارامترهای حرکت سراسری (panning) را تنظیم می‌کند. به محض فعال شدن پنینیگ، موقعیت CRTC می‌تواند با هر حرکت اشاره‌گر ماوس تغییر کند. چهار پارامتر اول، کل ناحیه پنینیگ را مشخص می‌کنند، چهار پارامتر بعدی ناحیه ردیابی اشاره‌گر را تعیین می‌کنند (که به طور پیش‌فرض همان ناحیه است). چهار پارامتر پایانی حاشیه را مشخص می‌کنند و پیش‌فرض آن‌ها 0 است. تنظیم عرض یا ارتفاع روی صفر، پنینیگ را در آن محور غیرفعال می‌کند. معمولاً باید اندازه صفحه نمایش را همزمان با --fb تنظیم کنید.
یک ماتریس تبدیل برای اعمال روی خروجی مشخص می‌کند. یک فیلتر خطی دوگانه (bilinear) به طور خودکار انتخاب می‌شود، مگر اینکه پارامتر --filter نیز مشخص شده باشد. شکل ریاضی این تبدیل متناظر است با:
a b c
d e f
g h i
تبدیل بر اساس مختصات همگن (homogeneous coordinates) استوار است. ماتریس در بردار مختصات یک پیکسل از خروجی ضرب شده و بردار مختصات تبدیل‌شده یک پیکسل در بافر گرافیکی را به دست می‌دهد. به طور دقیق‌تر، بردار (x y) پیکسل خروجی به ۳ مقدار (x y w) گسترش می‌یابد، به طوری که 1 به عنوان مختصات w در نظر گرفته شده و در ماتریس ضرب می‌شود. سپس مختصات نهایی دستگاه برای پیکسل با تقسیم موسوم به تقسیم همگن بر مختصات تبدیل‌شده w محاسبه می‌گردد. به عبارت دیگر، مختصات دستگاه (x' y') برای پیکسل تبدیل‌شده برابر است با:
x' = (ax + by + c) / w'   and
y' = (dx + ey + f) / w'   ,
with  w' = (gx + hy + i)  .
به طور معمول، a و e متناظر با مقیاس‌بندی در محورهای X و Y هستند، c و f متناظر با انتقال (translation) در آن محورها هستند، و g، h و i به ترتیب برابر با 0، 0 و 1 می‌باشند. از این ماتریس همچنین می‌توان برای بیان تبدیل‌های پیچیده‌تر مانند تصحیح اعوجاج کی‌استون (keystone) یا چرخش استفاده کرد. برای چرخش با زاویه T، می‌توان از این فرمول استفاده کرد:
cos T  -sin T   0
sin T   cos T   0
 0       0      1
به عنوان یک آرگومان خاص، به جای ارسال ماتریس، می‌توان رشته none را ارسال کرد که در این صورت مقادیر پیش‌فرض استفاده می‌شوند (یک ماتریس همانی بدون فیلتر).
روش فیلتر مقیاس‌بندی را که باید هنگام تغییر مقیاس یا تبدیل صفحه اعمال شود انتخاب می‌کند. می‌تواند یکی از مقادیر 'bilinear' یا 'nearest' باشد.
ابعاد تصویر خروجی را تغییر می‌دهد. اگر مقدار y حذف شود، مقدار x برای هر دو بعد استفاده خواهد شد. مقادیر بزرگتر از 1 منجر به فشرده شدن صفحه (ابعاد صفحه بزرگتر از ابعاد حالت خروجی) و مقادیر کمتر از 1 منجر به بزرگنمایی (زوم) روی خروجی می‌شوند. این گزینه در واقع یک نسخه میان‌بر از گزینه --transform است.
اندازه بر حسب پیکسل از ناحیه بافر فریم را که باید روی این خروجی نمایش داده شود مشخص می‌کند. این گزینه در واقع یک نسخه میان‌بر از گزینه --transform است.
خروجی را به عنوان خروجی اصلی تنظیم می‌کند. این خروجی در درخواست‌های هندسه Xinerama و RANDR در ابتدا مرتب خواهد شد.

این گزینه‌ها تنها برای کارسازهای X که از RandR نسخه ۱.۲ یا جدیدتر پشتیبانی می‌کنند در دسترس هستند.

این گزینه باعث می‌شود xrandr محتوای ویژگی‌های هر خروجی را نمایش دهد. گزینه --verbose نیز --prop را فعال می‌کند.
صفحه نمایش را به اندازه مشخص‌شده بازپیکربندی می‌کند. تمام مانیتورهای پیکربندی‌شده باید درون این اندازه جای گیرند. هنگامی که این گزینه ارائه نشود، xrandr کوچکترین اندازه صفحه نمایشی را که بتواند مجموعه خروجی‌های پیکربندی‌شده را در خود جای دهد محاسبه می‌کند؛ این گزینه روشی برای نادیده گرفتن آن رفتار پیش‌فرض فراهم می‌سازد.
مقداری را که به عنوان اندازه فیزیکی کل صفحه نمایش X گزارش می‌شود تنظیم می‌کند (اجتماع تمام مانیتورهای پیکربندی‌شده). در پیکربندی‌هایی با چندین مانیتور دارای DPIهای متفاوت، این مقدار معنای فیزیکی ندارد، اما ممکن است توسط برخی برنامه‌های کلاینت قدیمی که از RandR نسخه ۱.۲ پشتیبانی نمی‌کنند، برای محاسبه مقیاس فونت مرجع استفاده شود. به طور معمول، xrandr مقادیر اندازه فیزیکی گزارش‌شده را برای ثابت نگه داشتن DPI بازنشانی می‌کند. این گزینه آن محاسبه را لغو می‌کند. مقدار پیش‌فرض DPI برابر با 96 است.
این گزینه نیز مقداری را که به عنوان اندازه فیزیکی کل صفحه نمایش X گزارش می‌شود تنظیم می‌کند (اجتماع تمام مانیتورهای پیکربندی‌شده). در پیکربندی‌هایی با چندین مانیتور دارای DPIهای متفاوت، این مقدار معنای فیزیکی ندارد، اما ممکن است توسط برخی برنامه‌های کلاینت قدیمی که از RandR نسخه ۱.۲ پشتیبانی نمی‌کنند، برای محاسبه مقیاس فونت مرجع استفاده شود. این گزینه از مقدار DPI مشخص‌شده، یا DPI خروجی داده‌شده، برای محاسبه اندازه فیزیکی مناسب با هر اندازه پیکسلی که تنظیم شود استفاده می‌کند. مقادیر معمول عبارتند از مقدار پیش‌فرض (96 DPI)، DPI تنها مانیتور در پیکربندی‌های تک‌مانیتوره، یا DPI مانیتور اصلی در پیکربندی‌های چندمانیتوره.
خطوط مد جدید (modelines) می‌توانند به کارساز اضافه شده و سپس به خروجی‌ها منتسب شوند. این گزینه مورد اول را انجام می‌دهد. آرگومان mode با استفاده از نحو ModeLine برای xorg.conf مشخص می‌شود:
clock hdisp hsyncstart hsyncend htotal vdisp vsyncstart vsyncend vtotal flags.
آرگومان flags می‌تواند صفر یا تعداد بیشتری از موارد زیر باشد: +HSync, -HSync, +VSync, -VSync, Interlace, DoubleScan, CSync, +CSync, -CSync. ابزارهای متعددی خط مد معمول را بر اساس ارتفاع، عرض و نرخ نوسازی محاسبه می‌کنند؛ برای نمونه می‌توانید از cvt(1) استفاده کنید.
در صورتی که یک حالت بلااستفاده باشد، آن را از کارساز حذف می‌کند.
یک حالت را به مجموعه حالت‌های معتبر برای یک خروجی اضافه می‌کند.
یک حالت را از مجموعه حالت‌های معتبر برای یک خروجی حذف می‌کند.

گزینه‌های به ازای هر خروجی (Per-output options)

خروجی مورد نظر برای پیکربندی مجدد را انتخاب می‌کند. از نام خروجی یا XID استفاده کنید.
برای خروجی‌های متصل اما غیرفعال، آن‌ها را با استفاده از نخستین حالت ترجیحی‌شان فعال می‌کند (یا مقداری نزدیک به 96 dpi در صورتی که حالت ترجیحی نداشته باشند). برای خروجی‌های قطع‌شده اما فعال، آن‌ها را غیرفعال می‌کند.
یک حالت را انتخاب می‌کند. برای mode از نام یا XID استفاده کنید.
همان حالتی را که گزینه --auto انتخاب می‌کند برمی‌گزیند، اما خروجی را به طور خودکار فعال یا غیرفعال نمی‌کند.
خروجی را در صفحه نمایش با استفاده از مختصات پیکسلی جای‌گذاری می‌کند. در صورتی که بازتاب یا چرخش اعمال شده باشد، انتقال بعد از اعمال اثرات اعمال می‌شود.
ترجیح را برای نرخ‌های نوسازی نزدیک به مقدار مشخص‌شده تعیین می‌کند. هنگامی که چندین حالت دارای نام یکسان باشند، حالتی را که نزدیک‌ترین نرخ نوسازی را دارد انتخاب می‌کند.
بازتاب می‌تواند یکی از مقادیر normal, x, y, یا xy باشد. این باعث می‌شود محتوای خروجی حول محورهای مشخص‌شده معکوس (بازتاب) شود.
چرخش می‌تواند یکی از مقادیر normal, left, right, یا inverted باشد. این باعث می‌شود محتوای خروجی در جهت مشخص‌شده چرخانده شود. مقدار right چرخش تصویر در جهت عقربه‌های ساعت و left چرخش پادساعت‌گرد را مشخص می‌کند.
از یکی از این گزینه‌ها برای تعیین موقعیت خروجی نسبت به موقعیت یک خروجی دیگر استفاده کنید. این امکان کاشی‌بندی راحت خروجی‌ها را در صفحه نمایش فراهم می‌آورد. موقعیت همواره نسبت به موقعیت جدید خروجی دیگر محاسبه می‌شود، بنابراین استفاده از دستوری مانند --output a --left-of b --output b --left-of a مجاز نیست.
یک ویژگی خروجی را تنظیم می‌کند. ویژگی‌های عدد صحیح ممکن است به عنوان فهرستی معتبر (به --prop مراجعه کنید) از مقادیر ده‌دهی یا هگزادسیمال (با پیشوند 0x) جداشده با کاما مشخص شوند. ویژگی‌های Atom را می‌توان روی هر یک از مقادیر معتبر اتمی تنظیم کرد (به --prop مراجعه کنید). ویژگی‌های رشته‌ای را می‌توان روی هر مقداری تنظیم کرد.
خروجی را غیرفعال می‌کند.
از CRTC مشخص‌شده استفاده می‌کند (یا به عنوان نمایه در فهرست CRTCها یا به صورت XID). در استفاده عادی، این گزینه مورد نیاز نیست چرا که xrandr تلاش می‌کند انتخاب‌های معقولی درباره اینکه از کدام CRTC برای هر خروجی استفاده کند انجام دهد. هنگامی که به هر دلیلی این کار با شکست مواجه شود، این گزینه می‌تواند انتخاب پیش‌فرض را لغو کند.
مقادیر ممیز شناور مشخص‌شده را به عنوان تصحیح گاما روی CRTC متصل به این خروجی تنظیم می‌کند. اگر مقادیر سبز و آبی مشخص نشوند، مقدار قرمز برای هر سه مؤلفه استفاده خواهد شد. توجه داشته باشید که نمی‌توانید دو مقدار متفاوت برای خروجی‌های همسان‌سازی‌شده (کلون‌شده) داشته باشید (یعنی خروجی‌هایی که از یک CRTC مشترک استفاده می‌کنند) و تغییر دادن یک خروجی به یک CRTC دیگر، تصحیح‌های گامای CRTC را به هیچ وجه تغییر نمی‌دهد.
مقادیر گاما را روی CRTC متصل به خروجی در مقدار ممیز شناور مشخص‌شده ضرب می‌کند. برای خروجی‌های بیش از حد روشن یا بیش از حد کم‌نور مفید است. با این حال، این یک اصلاح صرفاً نرم‌افزاری است؛ اگر سخت‌افزار شما از تغییر واقعی روشنایی پشتیبانی می‌کند، احتمالاً ترجیح می‌دهید از xbacklight(1) استفاده کنید.

این گزینه‌ها برای کارسازهای X که از RandR نسخه ۱.۱ یا قدیمی‌تر پشتیبانی می‌کنند در دسترس هستند. آن‌ها هنوز برای کارسازهای X جدیدتر معتبرند، اما در یک خط فرمان واحد تعامل مناسبی با گزینه‌های نسخه ۱.۲ ندارند.

اندازه صفحه نمایش را تنظیم می‌کند، یا با تطبیق مستقیم اندازه یا با استفاده از نمایه در فهرست اندازه‌های موجود.
نرخ نوسازی را روی نزدیک‌ترین مقدار به عدد مشخص‌شده تنظیم می‌کند.
جهت‌گیری صفحه نمایش را مشخص می‌کند و می‌تواند یکی از مقادیر normal, inverted, left, یا right باشد.
بازتاب در امتداد محور X.
بازتاب در امتداد محور Y.

تنظیم یک خروجی به نام LVDS روی حالت ترجیحی آن، و قرار دادن خروجی دیگری به نام VGA در سمت راست آن، تنظیم‌شده روی حالت ترجیحی یک صفحه نمایش که به صورت فیزیکی در جهت عقربه‌های ساعت چرخانده شده است:

xrandr --output LVDS --auto --rotate normal --pos 0x0        --output VGA --auto --rotate left --right-of LVDS

اجبار به استفاده از حالت 1024x768 روی خروجی VGA:

xrandr --newmode "1024x768"        63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
xrandr --addmode VGA 1024x768
xrandr --output VGA --mode 1024x768

فعال‌سازی حرکت سراسری (panning) روی یک میزکار 1600x768 در حالی که خروجی VGA با حالت 1024x768 نمایش داده می‌شود:

xrandr --fb 1600x768 --output VGA --mode 1024x768        --panning 1600x0

داشتن یک صفحه نمایش کوچک 1280x800 از نوع LVDS که نسخه کوچکی از یک میزکار بزرگ 3200x2000 را نمایش می‌دهد، و یک صفحه نمایش بزرگ VGA که محدوده اطراف ماوس را در اندازه معمولی نمایش دهد:

xrandr --fb 3200x2000 --output LVDS --scale 2.5x2.5        --output VGA --pos 0x0            --panning 3200x2000+0+0/3200x2000+0+0/64/64/64/64

نمایش خروجی VGA به شکل ذوزنقه به طوری که اثر کی‌استون (keystone) تصحیح شود هنگامی که پروژکتور کمی بالاتر از صفحه نمایش قرار گرفته است:

xrandr --fb 1024x768 --output VGA        --transform 1.24,0.16,-124,0,1.24,0,0,0.000316,1

دستور Xwayland(1) یک کارساز X است که از یک کامپوزیتور Wayland به عنوان پس‌بخش (backend) استفاده می‌کند. Xwayland به عنوان یک لایه ترجمه میان پروتکل X و پروتکل Wayland عمل می‌کند اما دسترسی مستقیم به سخت‌افزار ندارد. در حالت Xwayland بدون ریشه (rootless - حالت پیش‌فرض در بیشتر کامپوزیتورهای Wayland)، افزونه RandR شبیه‌سازی شده و تنها به صورت فقط‌خواندنی در دسترس است تا وضعیت فعلی و پیکربندی خروجی‌ها را به شکلی که برای کلاینت‌های X11 مشخص است گزارش دهد. در نتیجه، تغییر پیکربندی خروجی‌ها با استفاده از xrandr در یک محیط Wayland که Xwayland در حالت بدون ریشه اجرا می‌شود، امکان‌پذیر نیست.

Xrandr(3), cvt(1), xkeystone(1), xbacklight(1)

Keith Packard, Open Source Technology Center, Intel Corporation. و Jim Gettys, Cambridge Research Laboratory, HP Labs, HP.

2025-04-15 xrandr 1.5.4