Monitor beállítása Linux alatt

Ebben a cikkben megismerjük miképp lehet Linux alatt “egyszerűbb” ablakkezelővel is szépen beállítani a monitorok felbontását és helyzetét xrandr/arandr segítségével. Még akkor is, ha nincs az ablakkezelőnek egy saját kijelző beállító programja.
Az openbox telepítése után szembesültem azzal, hogy a két monitorom felbontása, pozíciója nem megfelelő. Fel van cserélve, maximális felbontással üzemelnek. Az egér a két monitor közt nem tud átmenni, a „rossz” oldalon lehet átmozgatni a másikra.

Ezen valamiképp segíteni kell, mert nem így akarom használni őket:

  • fordított elhelyezéssel és
  • kisebb felbontással

szeretném majd használni őket.
Eddigi ablakkezelőknél minden esetben volt valami olyan megoldás, ahol grafikusan lehetett mozgatni a két, vagy több monitor helyzetét, és a felbontást stb. állítani lehet. Az Arcolinux alatt, Xfce felületen (illetve pontosabban bármely Xfce-n) a kijelzők beállításáról ebben a videóban volt szó.
Itt is van kényelmes megoldás, mert lehet telepíteni ArandR-t, ami egy jó grafikus beállítási lehetőség. Használata egyszerű, nem okoz senkinek sem gondot. Ha nincs fenn a Linux disztribúciódban, tedd fel a nálad szokásos módon.
Én pluszban egy másik lehetőségére hívnám fel a figyelmet: a beállításokat scriptbe is menteni lehet, azaz több beállítást is létrehozhatunk, majd azt a scripteket, amibe mentettük, lefuttatva váltani is lehet. Egy ilyen scriptet érdemes létrehozni és belenézni. Az elérési út (alapesetben):

/home/laci/.screenlayout/

ahol természetesen a laci a te felhasználói neved legyen.

Arandr és xrandr használata

Egy hibája van ennek a megoldásnak: induláskor nem azzal indul a rendszer, amivel akarom, hanem megint be kell állítani, vagy az adott scriptet futtatni.
Természetesen van arra is lehetőség, hogy az autostart-ba beírjuk a parancsokat és a paramétereket. Én ezt választottam.
Az ArandR az xrandr előtétprogramja, azaz „csak” azt paraméterezi fel és menti el a paramétereket a scriptekbe. Így már viszonylag egyszerű dolgunk van. Ha megfelel a beállítás, amit a ArandR létrehozott, akkor simán be kell másolni az autostart-ba, és ki és belépni.

xrandr --output VIRTUAL1 --off --output DP2 --off --output DP1 --off --output HDMI2 --off --output HDMI1 --mode 1280x720 --pos 0x0 --rotate normal --output VGA1 --mode 1024x768 --pos 1280x0 --rotate normal

igencsak hosszú beállítást adott. A fele nem kell (off-al letiltott monitorok, rotate forgatás stb.) és jó lenne, ha számomra jobban átlátható lenne. Ezért a google keresés után javasolt manuális megoldást választottam.
Bár a fenti ArandR sorokból ki tudjuk olvasni az adatokat, de most elölről kezdve mutatom be.
xrandr
Futtassuk le paraméter nélkül, így felderíti a rendszert és kiírja az eredményeket:

Screen 0: minimum 8 x 8, current 2304 x 768, maximum 32767 x 32767
DP1 disconnected primary (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1280×720+0+0 (normal left inverted right x axis y axis) 600mm x 340mm
1920×1080 60.00 +
1680×1050 59.88
1280×1024 75.02 60.02
1440×900 74.98 59.90
1280×960 60.00
1280×720 60.00*
1024×768 75.03 60.00
800×600 75.00 60.32
640×480 75.00 72.81 66.67 59.94
720×400 70.08
HDMI2 disconnected (normal left inverted right x axis y axis)
VGA1 connected 1024×768+1280+0 (normal left inverted right x axis y axis) 470mm x 260mm
1920×1080 60.00 +
1600×1200 60.00
1680×1050 59.95
1280×1024 75.02 70.00 60.02
1440×900 59.89
1280×960 60.00
1152×864 75.00
1024×768 75.03* 70.07 60.00
832×624 74.55
800×600 75.00 60.32 56.25
640×480 75.00 72.81 59.94
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Számunkra ebből két adat a fontos: a monitor megnevezése
HDMI1 és VGA1

Ez nyilván mindenkinél más lesz, ezért is futtattuk le a parancsot, hogy megtaláljuk a pontos megnevezést. Arra figyelj (én belefutottam): ha Intel grafikus meghajtód van, és a Screen tearing-et tapasztaltál, és ezzel a módszerrel szüntetted meg, akkor lehet, hogy újra meg kell keresned a neveket, mert megváltozhatnak.
Illetve az adott monitornak az alapértelmezések szerinti felbontásait is kilistázza. Most tekintsünk el attól, hogy az Linux alatt az xrandr-nak megadható ezektől eltérő felbontás is. Az haladó megoldás, és nem kezdő szint.
Ezután már fel tudjuk paraméterezni a xrandr-unkat, hogy azt tegye amit akarunk.
Bár ahogy az ArandR scriptben láttuk, megadható egy sorban is a paraméter a két monitorra, de én ketté vettem, mert így jobban átlátható.

xrandr --auto --output VGA1 --mode 1024x768

Azaz megmondjuk a VGA1 monitornak, hogy az általam kívánt felbontásban működjön. Arra mindenképp figyeljünk, hogy a képarány ne torzuljon, ha fontos nekünk a pontos szerkesztés. A monitor működni fog, de a képe kissé torz lesz, ha tényleges monitor képarány és a beállított képarány nem egyforma. A kör ellipszis, a négyzet pedig téglalap lesz. Illetve pontosan adjuk meg listában szereplő felbontást, mert alapesetben csak azokat ismeri fel.

xrandr --auto --output HDMI1 --mode 1280x720

–left-of

 VGA1

Ugyanaz, csak a másik monitorra adjuk meg a kívánt felbontást. Majd meg kell határozni, hogy az adott monitor a másikhoz képest hol helyezkedik el.

--left-of, --right-of, --above, --below, --same-as

A másik monitorhoz képest hol helyezkedik el. Egyértelmű.
A paraméter használata egyszerű: a másik monitorhoz képest balra van nálam a HDMI1-es.
Ezt akkor hasznos, ha jól definiálható a pozíció, de van lehetőség ennél sokkal bonyolultabb pozicionálásra is a –pos kapcsolóval. Ilyenkor kerül elő az ArandR újra. Azzal beállítjuk vizuálisan a monitorok helyzetét, majd lementjük a scriptet és abból kiolvassuk az értékeket.

VGA1 --mode 1024x768 --pos 1280x720

az alábbi helyzetben:

Linux arandr beállítása
Linux arandr beállítása

Így nem kell számolgatni a pixeleket. A képen láthatónál sokkal bonyolultabb (átfedés és eltolódás) monitor elhelyezésekkel is megbirkózhatunk ezzel.
— auto paraméterrel megmondtuk az xrandr-nak, hogy minden az alapbeállítás szerinti, majd a kívánt monitoron (nálam mindegyiken) megváltoztattam amit akartam. A többi (elforgatás stb.) maradjon alapértéken.
Az xrandr -help és a man xrandr ennél lényegesen komolyabb műveletekre is segítséget nyújt Linux alatt, a lehetőségek tizedét sem érintettük, de a célt elértük: ott, és olyan elhelyezkedésben, felbontásban működnek a monitorok, ahogy akartam.
Szokjuk meg, hogy nem csak automatikusan bemásolunk egy parancsot, hanem elolvassuk a leírást és a helpet is!

Tipp: Egy script-et is készíthetünk valamilyen beállítással és azt futtatva ideiglenesen megváltoztathatjuk a felbontást – gyorsan, majd egy másikkal vissza. Aki pld. tint2-es panelt használ, ő egy gombhoz rendelhet több parancsot is, egérgombokkal való kattintás szerint. Így egy kis ikon, és jobb/bal egérgomb kattintással is megoldhatjuk a gyors felbontás váltást. Nagyon profi kinézete van, ha egy kattintással váltjuk a felbontást! A tint2-es panel beállításról van videóanyagom, így nem okozhat gondot a kivitelezés!
Vedd figyelembe, hogy ezt openbox alatt teszteltem. Ha más ablakkezelőt használsz lehetséges ütközések, torzulások, fura kinézetű felbontások ha az ablakkezelős beállítás és a script ütközik egymással! Ilyenkor, ha az automatikus indításba tetted a scriptet vedd ki abból. Majd indítsd újra a gépedet, vagy jelentkezz ki és be.
Ezt a megoldást Arcolinux és MX linux alatt teszteltem, 2019. decemberében.