I need help to display a program window (e.g., a Firefox browser) simultaneously on two screens, with the ability to interact with at least one instance of the window.
Use case: in a university lecture hall/classroom, my desk faces the students, with my laptop on the desk. Behind me, a projector displays my laptop's output onto a wall. I have very limited possibilities to change the physical disposition of the room. Most times, I stand up and talk/show on the wall display.
Goal: I want to be able to present and interact with my laptop while seated facing the students but my laptop screen should be able to also display non-projected content.
Linux user, X11 question. Open to wayland answers, though.
What I've tried/thought of:
XrandR
: a side-by-side monitor configuration doesn't solve my problem because the projector screen is physically behind me, and I can't view the projected content while seated and facing the students. And I need to keep part of my laptop screen available for other tasks (like preparing the next lecture segment), which excludes 1:1 mirror configurationspdfpc
: it works well for presentations but it is limited to pdf slides and I also need to display and interact with other content, like code editors or browsers. Also, the "presenter window" has limited re-organisation features.xpra
: I attempted to usexpra attach
(and a server) to mirror a window, but I could not get it to work with two clients attaching from the same computer.
My other ideas streaming through OBS
, ffmpeg
or vnc
, but I'm not sure if the performance will be OK (e.g., sufficiently quick response in the video, and not a memory-hog)
Possibly related questions:
- mirror certain windows across screens: the OBS solution is probably a good bet, but I'm a bit surprised that there is no native X11 solution
- https://unix.stackexchange.com/questions/93687/one-x-client-many-x-servers
- https://unix.stackexchange.com/questions/150289/mirror-a-single-x-application-on-a-dual-monitor-setup-with-openbox
What tools or configurations could I use?