Title: Is there a way to "almost mirror" but keep one workspace private on my laptop?

Body:

I teach Python classes and I’m trying to figure out a display setup that seems simple in my head but I can’t find a clean solution.

What I want:

  • TV/projector shows my teaching content (PPT, browser, code) – students see this

  • Laptop screen shows the SAME teaching content, PLUS my private workspace (notes, terminal, files) that the students CANNOT see

In other words: I want it to act like mirroring, EXCEPT one workspace is excluded from the mirror and stays ONLY on my built-in screen.

So on my laptop:

  • Workspace 1 (teaching) → Shows on BOTH laptop + TV

  • Workspace 2 (private) → Shows ONLY on laptop (TV stays on Workspace 1)

What I’ve tried:

  • Full mirror → Shows everything (bad)

  • Extended → TV stays on one workspace but I CAN’T see what students are looking at (I have to turn around)

  • GNOME extensions → Mostly broken on Fedora

Current setup: Fedora 44(Workstation Edition NVIDIA 3050), willing to switch DEs., willing to switch DEs.

Questions:

  1. Is this possible on KDE?

  2. Does COSMIC support this natively?

  3. Any other way to achieve this?


TL;DR: I want mirroring but with one “private” workspace that only I see on my laptop. Students should never see me switch to it.

Thanks! :folded_hands:

Maybe a docking station with 2 monitors attached. One is the TV that is mirrored with the laptop screen. One is an extended monitor with workspace2 and sets beside the laptop for your private info. Many small monitors are available that are near in size to the laptop for easy transport.

I will do some testing tomorrow with this concept and see if it is workable.

that seems to be a brilliant solution please let me know it worked thank you for the reply and support

I tested with my laptop today and a docking station with 2 external monitors.
Unfortunately what I found with my system is that mirroring involves all attached monitors and I could not limit it to just the laptop and one external monitor. I am using fedora 44 Workstation, fully updated for the testing.

Joining the monitors allows each to have its own apps displayed but that seems like it would involve turning around as you mentioned in order to view the TV.

I guess potentially, you might use an additional laptop or tablet for the private info and just mirror the laptop that contains the teaching info on-screen.

You also could use the screens joined and simply have the podium to one side of the lecturn and turn the podium where you are teaching so on one side would be the classroom and on the other would be the TV with the presentation. (yes, I know that they are often fixed in place but it would be an idea.) A turn of the head would be easier than a full turn of the body.

If someone else has a different idea I would be interested to hear that.

This sounds like a kanshi job, but iwhere you can do all whqt you asking with dicled profile qnd activate it like keybind or automatically and so on

You mentioned willingness so switch DEs, but maybe you can adopt my Sway solution for Gnome. (I’m not sure about Gnome’s workspace feature, though, if that is what you mean by workspace.)

For the background: Sway does not support “clone/mirror” but only what is called “extended” in Gnome, that is treating each display as independent screen. The advantage is that each screen gets it preferred resolution (rather than having to use one supported by both source and mirror screen). The disadvantage is “no simple clone”, and the solution is “wl-mirror”: A simple programme that takes the content of a screen and displays it in a window. You can put that window on any screen that you want, even in fullscreen mode (for a mirror-like experience).

In particular, you can use wl-mirror in “window mode” to have, say, the beamer content displayed in a window on your laptop screen. Super useful for me. In Sway, I even combine this with “headless screens” (with a resolution and aspect ratio of your choice) for a flexible screen sharing setup (sharing the headless screen in a videoconference, wl-mirroring it to one of my physical screens).

It does take a bit to set this up and get used to the fact that the mirror ist just a window (so that you need focus on the source for all inputs), but it makes for a super flexible and reliable solution (you share/project only what’s on that screen, period).

Hello, I don’t think this is possible with any desktop environment. There are options to show/hide windows on multiple virtual desktops, not on multiple physical monitors.

If I wanted to do something similar, I would setup the monitors as independent displays (i.e. extend desktops), put all the windows in the “public” displays than share it via RDP.

In the private display, you can then import the public display via RDP to localhost, and put an additional window with you notes on the side. You can play with fullscreen RDP and keep above other for a more seamless look if you care. Or export the windows one by one with RDP. It can get complicated if you want to make it look seamless, but a basic setup should work fine for your purpose.

P.s. I’m not sure that the gnome RDP (Remote desktop) configuration let’s you share only one monitor, you can in KDE or using a third party remote desktop such as rust desk.

thank you

i used to turn the podium and i did that for long time but now like you said they fixed it in one place thanks for taking you time and trying tho much appreciated

wl-mirror is available in f44 already installed on some edition/spins and seems available for all.

Perhaps @mjg can provide the syntax to use since I can see the help but am having trouble interpreting the [output] part of that syntax.

Have you tried OBS studio with 2 monitors?

The outputs are what wlr-randr gives you as a short handle. For example, my outputs are:
DP-3 HDMI-A-1 eDP-1
(Display port via USB-C, HDMI, laptop creen)
In sway, swaymsg -t get_outputs is another way to get the same info.

In any case, that’s what the output argument of wl-mirror takes. In it’s simplest form of invocation, wl-mirror HDMI-A-1 gives you a window with the live content of HDMI-A-1. You can scale it, move it, full-size it etc.

For some extra fun, move it to the display which you are mirroring :slight_smile:

Wouldn’t GNOME’s “Workspaces on primary display only” fit your needs? I don’t use it, but it sounds like it displays workspaces only on your primary monitor, as opposed to “Workspaces on all displays” which shows workspaces on every connected monitor.

As I understand the setting, your projector would stop being aware of any workspace other than the window you put on it. You could, before presenting, just drag what you’re seeking to show onto the external display and make it fullscreen there; then, you could jump between workspaces on your laptop and the projector would keep showing only what you parked on it.

Hi Ali,

After looking this post over a few times and also trying some of the suggestions (mostly good ones :slight_smile: ) … I decided that the “Simplest” and probably the best solution would be to just get an HDMI splitter. Here is what I came up with:

  1. set your displays to be “Joined”
  2. connect the splitter to the monitor output you want to share with the class
  3. connect the “Classes” monitor, one that faces you, to one of the split outputs (let’s say output 1)
  4. connect the “Classes” split output to the projector/monitor that faces the class (let’s say output 2)

Now you can selectively drag the app/window to the monitor you want to share with the class while all others stay hidden from the class AND you see what they see in real-time.

Here is one that may work for you:
https://www.amazon.com/gp/aw/d/B0D149FL5M/?_encoding=UTF8&pd_rd_plhdr=t&aaxitk=f87cff3b73a043ef6f651acdb36f562d&hsa_cr_id=0&qid=1785444615&sr=1-3-9e67e56a-6f64-441f-a281-df67fc737124&i=aps&aref=iLinr14kQb&ref_=sbx__sbtcd_asin_2_img&pd_rd_w=R7ZYa&content-id=amzn1.sym.8de9b3d5-f5c5-40e9-9b39-d65f08d6ea68%3Aamzn1.sym.8de9b3d5-f5c5-40e9-9b39-d65f08d6ea68&pf_rd_p=8de9b3d5-f5c5-40e9-9b39-d65f08d6ea68&pf_rd_r=H6S6132X6GTVC951V059&pd_rd_wg=Ivezf&pd_rd_r=a8b4200a-dbbf-4446-8a83-7628b68795fa&th=1

It is possible your idea may work, but the item you linked explicitly says it works in mirror mode only. I would have to test and see if the other way is feasible. I guess it might be if the system said it was joined, and only one of the ports went to the splitter with 2 monitors (mirrored) attached.

Hi Jeff,

You are misinterpreting the description a little. The “Mirror mode only” means that the device is not like a “multi monitor display adapter” it means that it takes only 1 display channel and splits it so that it can be displayed on an additional monitor concurrently (Mirror of the single output) … :slight_smile:

That is what I thought as you can see with my last sentence above. If so it should work well for what the OP needs, though he still needs the second monitor to sit beside his laptop so he sees what is on the TV behind him for the class lesson.

Yes, if you have an extra screen to spare for monitoring that works. I assumed you wanted to monitor the “class view” on your laptop.

With enough screens, a splitter is easiest on the software side - nothing to configure - and somewhat demanding on the hardware side: Both outputs get the same resolution and sync rate; depending on the splitter, it’s “the splitter talking to your video card” or one of the displays, when it comes to negotiating sync rate etc.

I’ve been using that with a pen display as a “beamer white board” in class before switching to wayland and wl-mirror. Depending on the beamer, I’ve had issues with the sync rate (such as 59.95 Hz vs 60 Hz …) across the splitter.

@boszcod
I just tested the solution presented by @einer just above (post 14) and it seems ideal for your situation.

The external hdmi port on the laptop goes to the splitter and the outputs of the splitter go to 2 different monitors that mirror each other.
With the output of the splitter to one small monitor on the podium next to the laptop and the TV as the second output of the splitter it should work well for your purpose.

That splitter is only about $12 and comes with a usb cable to power it from the laptop.

Does wl-mirror work with KDE/Gnome? On their git they say only wl-root-based desktop (hyprland and co.)