Sziasztok,

szeretném nektek leírni a címben leírt problémára a megoldásomat.
Eléggé fapados és egyszerű, és igyekszem hozzá szkriptet készíteni, hogy megoldaható legyen akár GUI-n keresztül is.

Szóval...
A problémám az volt, hogy a Lenovo notimon csak egy HDMI csatlakozóm van viszont a munkámból adódóan jól jön ha van 3 kijelzőm.
Adott a noti 1920x1080-as kijelzőjén kívül még 2 db Philips 273V7QDSB, 1920x1080-as felbontású monitorom.
Ezeken felül akadt itthon egy ChromeCast v.3 is.
Arra gondoltam, hogy Miracast-tal áttolom a képet és kész, igen ám, de KDE-t használok, ahol még ez a kérdéskör nem megoldott.

A pontos cél: laptop kijelző (1920x1080), ettől jobbra monitor 1 (1920x1080), ettől jobbra monitor 2 (1920x1080)
Tehát összesen 3 kijelző, aminek együttes felbontása = (3x1920)x1080px.

Megoldásom:

  1. monitor csatlakoztatása a notihoz, ChromeCast bedugása a 2. monitorba, majd "játék" az XRANR-rel.

  2. lépés: kérdezzük le a kijelzőinket XRANDR segítségével:

$ xrandr --listmonitors

Monitors: 2
0: +*eDP-1 1920/344x1080/194+0+0 eDP-1 <- beépített laptop monitor
1: +HDMI-1 1920/598x1080/336+3840+0 HDMI-1 <-HDMI porton keresztül csatlakoztatott 1. monitor

  1. Lépés: Hozzunk létre egy új virtuális monitort XRANDR-rel:

$ xrandr --setmonitor +HDMI-2 1920/598x1080/336+3840+0 HDMI-2

a +HDMI-2 lehet mondjuk virtual1 is akár.

1920/598 = px/mm
1080/336 = px/mm
3840+0 = monitor bal oldal leendő pozíciója
HDMI-2 a monitor neve, ahogy majd XRANR-rel eléred

Ezzel létrejön egy új monitor, viszont még nem "látja" a rendszer

  1. Lépés: Adjuk meg az új monitornak a megjelenítési módot

$ xrandr --addmode HDMI-2 1920x1080

Azért HDMI-2, mert ezen a néven hoztam létre korábban a virtuális kijelzőt!

  1. Lépés : Terjesszük ki a megjelenítési területet, esettemben ugye 3x1920 = 5760 x 1080 px

$ xrandr --fb 5760x1080
Itt ki és bekapcsolnak majd a kijelzők!

  1. lépés: "kapcsoljuk be" az új kijelzőnket és helyezzük el ezt a kívánt helyen:

$ xrandr --output HDMI-2 --mode 1920x1080 --right-of HDMI-1

Én ugye a fizikailag létező HDMI-1 nevű monitortól jobbra szerettem volna megjeleníteni a képet.
A --right-of paraméter lehet még --left-of vagy --below-of

Ezek után elvileg már ha mozgatjátok a kurzort, már áttévedhet a virtuális kijelzőre is.
De ugye még azt nem látjuk 🙂

  1. Lépés: Jelenítsük meg végre és kezdjük el használni a monitort 🙂

*Ehhez fontos, hogy egy hálózaton legyetek a ChromeCast eszközzel, vagy más egyéb miracast eszközzel!
*Extra info: leírások alapján azt találtam, hogy nagyban csökkenti a "laggot", ha 5GHz-ra állítod a routeredet (nem csak 2,4Ghz-ra), már ha képes rá. (ezt sajnos nem tudtam tesztelni)

Indítsd el a Chrome böngészőt, majd a címsorban kattints a kis share ikonra, majd válaszd ki a menüből az átküldés lehetőséget.
Itt a "Források"-nál válaszd a képernyő átküldése lehetőséget, és válaszd ki a virtuális kijelződet.
Ez fekete lesz, de már látni fogod rajta a kurzort és ráhúzhatod a kívánt tartalmadat 🙂

  1. Lépés: Telepítsd az arandr nevű GUI programot

$ sudo apt-get install arandr

Ez egy GUI ahhoz, hogy megtudd változtatni egyes kijelzőid pozícióját. Egyszerű drag'n'drop módon. Sajnos a KDE kijelzőkezelője nálam nem ismerte fel a virtuális kijelzőt, ezért szükség volt az arandr-re.

  1. Lépés Élvezd az eredményt
    Sajnos minden egyes kijelentkezésnél újra végig kell menni a prancsok listáján!

  2. Lépés csakis számomra: Hamarosan készítek egy weblapot, ahol összeállíthatod a kijelzőidet és legyártódik hozzá a kívánt parancsok listája. Terveim szerint ezeket a parancsokat terminálba másolva könnyítheti a felhasználók életét 🙂

Extra: találtam megoldást arra, hogy USB3.0-n átlehessen tolni a képet, de ezt még USB3.0->HDMI átalakító hiányában nem tudtam kipróbálni, ha esetleg valakit érdekel:
https://www.synaptics.com/products/displaylink-graphics/downloads/ubuntu

A fent leírtakhoz nem használtam a Chrome-on kívül semmilyen más extra progit. Semmi dummy-display vagy miegymás...

Remélem segíthettem!

  • klt válaszolt erre.
    Ennyivel később: 20 nap

    Ubuntumutu Nnna.
    Olyat csináltam, hogy az általad bemutatott módszerrel bekapcsoltam a VIRTUAL1 kijelzőt, és FullHD-ra állítottam.
    ezután ffmpeg-gel (mert az mindenre jó! 😃 ) elkezdem "sugározni" a láthatatlan kijelző tartalmát.
    Csak 10fps, mert így nem terhel túlzottan, és nem mozizni akarok vele, csak mondjuk fényképeket nézegetni.
    Szóval, ez a művelet bekerült egy szkriptbe.
    A veőoldal nekem egy RPi, amin többek közt Kodi futkározik, az egyik fő célja éppen ez.
    Ide létrehoztam egy m3u fájlt, aminek hatására elindul a sugárzott képernyő megjelenítése:

    screen.m3u:
    udp://@192.168.1.8:5004

    A sugárzó szkript:

    #!/bin/sh
    
    xrandr --setmonitor VIRTUAL1 1920/508x1080/286+1920+0 VIRTUAL1
    xrandr --addmode VIRTUAL1 1920x1080
    xrandr --output VIRTUAL1 --mode 1920x1080 --right-of eDP1
    
    ffmpeg -f x11grab -s 1920x1080 -r 10 -i :0.0+1920,0 -vcodec libx264 -pix_fmt yuv420p -preset ultrafast -tune zerolatency -x264-params keyint=1:min-keyint=1 -b:v 4000K -f mpegts udp://192.168.1.8:5004?pkt_size=1316

    A "sugárzás" befejezése:

    #!/bin/sh
    pkill screenmirror
    xrandr --output VIRTUAL1 --off

    Úgy néz ki, kb 0.7 .. 1 másodperc a kép késleltetése. Még nézegetem, tudok-e rajta valamit tuningolni? De már ez is tetszik... 😃

    Ennyivel később: egy év