AFAIK most (all?) laptops don’t allow external video input. The other options will work with any USB-C dock. To accomplish #1 you would need something like a NexDock.
This by itself … a USB hub (which might be a USB-C to USB-A adapter + a regular USB-A hub, or a USB hub that is specifically USB-C).
Or a more creative option … a Logitech unifying receiver (with USB-C to USB-A adapter) and then a Logitech wireless keyboard and mouse.
Or the same option but bypassing the unifying receiver - and not what you asked for - a Bluetooth keyboard and mouse.
A USB-C to HDMI adapter. Or a USB-C dock with an HDMI output.
In my experience though this by itself won’t work. The external display will be recognised but without a keyboard and mouse you won’t be able to do anything useful with it.
Then you would either definitely need the USB-C dock or you would need a TV (monitor) that has an internal USB hub and supports USB-C input directly so that you can plug the keyboard and mouse directly into the TV (monitor).
For the latter case, this is unlikely to be available with your TV and is more likely to be available with a computer monitor. However only you know what the capabilities of your TV set are.
If you have a touchscreen monitor then that in theory could substitute for a mouse.
If you now want “charging+2+3” then a USB-C dock is probably the only option.
So the summary would be: you will need a USB-C dock.
The NexDock is a viable alternative if you don’t specifically need the display to be your TV and you don’t specifically need to use your keyboard and mouse and you can stomach the relatively small screen of the NexDock.
Also, I think it depends on how much money you are prepared to throw at experimentation.
This sounds difficult but certainly on the horizon i.e. someone will eventually get this working. The Librem 5 doesn’t use X, it uses Wayland.
In any case, any kind of remote display just needs working networking, if you can get it working at all. In other words, remote display (in either direction) should not depend on the presence of or type of physical connection.
I would actually use my Librem 5 as a vnc client and have all my applications run on a more capable server (with wayvnc). That way I can have my desktop on any device (my linux laptop, or my employers windows laptop).
Here is what I can do with my Ubuntu mobile E4.5 showing its screen on my FreeBSD laptop, running KDE. This is very useful if you want to prepare a talk about the feature of the phone and capture screens or show it live
together with your slides from the desktop. The Ubuntu phone here just shows the clock app.
Technical: on the phone runs a process mirscreencast which captures the image of the MIR server once a second and offers this with netcat on a phone’s network IP addr and port. On the laptop a netcat reads this (over USB tethering) and sends the video stream to mplayer to be displayed on the laptop’s screen:
To be clear … you already have your Librem 5 and wayvnc works just fine on the Librem 5?
(I wanted to use the Librem 5 as a VNC server - just for those admin functions where I need a GUI interface on the Librem 5 i.e. for those functions where I don’t know how to do them from the shell and so can’t just use ssh into the Librem 5 or where using shell commands is too tedious. And when I say “VNC” I mean “VNC” or anything functionally equivalent e.g. RDP if I had to but I would rather not. )
Sadly no, ordered december 2018. Just mentioned it to make clear that wayland does have remote display capabilities.
RDP is actually much superior to VNC I recently found out, but also much different. VNC transfers the actual image differences which makes it slightly laggy to use even on a local network. But it is an open standard and both client and server run on almost any platform available. Also VNC is about sharing the desktop. RDP is a protocol which acts as a remote console to a Windows computer. You logon to an actual user session. AFAIK there is no RDP for Linux.
I use VNC myself to connect to a virtual machine running sway. I was using wayvnc for that but I’ve switched to simply use VNC that qemu provides (makes much more sense).
My son was notified by his teacher that he had to use Windows for the next sprints of his software development class to be able to on with C# Winforms. The solution we have for that now is that he creates an ssh tunnel from his school to our home, to relay the RDP port of my wifes Windows laptop to his Linux laptop. The performance of RDP via the internet (and an ssh tunnel even!) is superb.
Would you not be able to start a gui application on your Librem 5 via ssh Xforwarding?
You could also look into spice. I’ve used that as well with Qemu and was impressed because it also relays sound out of the box. I have no experience with a separate spice server though. Seems X only, and Red Hat has seized development, but still maybe worth looking into.
Where do you compiled it? I fetched the sources with git clone ... to the L5, but the dependencies are looking horrible to compile it on the L5 directly. Could you put it into the app store?
I compiled it on the L5. Had to install libgbm-dev and libdrm-dev, aml and neatvnc work as subprojects. It would be nice to get this packaged at some point, yes.
For my purposes that makes it superior i.e. the other person can see what I am doing (can learn) and everything is in the context of his or her login.
I guess it depends on your tolerance for lag. I’ve used it a fair bit over the internet on a relatively slow broadband connection. It is usable, it just isn’t swift or pleasant.
and you do need to be careful to disable local disk (or local printer) sharing unless it is intentional i.e. to avoid this as a vector for malware.
I installed libgbm-dev and libdrm-dev, but the two remainings are not there:
purism@pureos:~$ sudo apt install aml neatvnc
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package aml
E: Unable to locate package neatvnc