Congratulations to Jente Hidskes on the first release of Cage! Cage is a Wayland compositor designed for kiosks - though, as you’ll shortly find out, is useful in many unexpected ways. It launches a single application, in fullscreen, and exits the compositor when that application exits. This lets you basically add a DRM+KMS+libinput session to any Wayland-compatible application (or X application via XWayland) and run it in a tiny wlroots compositor.
I actually was planning on writing something like this at some point (for a project which still hasn’t really come off the ground yet), so I was excited when Jente announced it in December. With the addition of the RDP backend in wlroots, I thought it would be cool to combine these to make a seamless remote desktop experience. In short, I installed FreeRDP and Cage on my laptop, and sway on my desktop. On my desktop, I generated TLS certificates per the wlroots docs and ran sway like so:
WLR_RDP_TLS_CERT_PATH=$HOME/tls.crt \ WLR_RDP_TLS_KEY_PATH=$HOME/tls.key \ WLR_BACKENDS=rdp \ sway
Then, on my laptop, I can run this script:
#!/bin/sh if [ $# -eq 0 ] then export XDG_RUNTIME_DIR=/tmp exec cage sway-remote launch else sleep 3 exec xfreerdp \ -v homura \ --bpp 32 \ --size 1280x800 \ --rfx fi
The first branch is taken on the first run, and it starts up cage and asks it to
run this script again. The second branch then starts up xfreerdp and connects to
my desktop (its hostname is
homura). xfreerdp is then fullscreened and all of
my laptop’s input events are directed to it. The result is an experience which
is basically identical to running sway directly on my laptop, except it’s
actually running on my desktop and using the remote desktop protocol to send
everything back and forth.
This isn’t especially practical, but it is a cool hack. It’s definitely not network transparency like some people want, but I wasn’t aiming for that. It’s just a neat thing you can do now that we have an RDP backend for wlroots. And congrats again to Jente - be sure to give Cage a look and see if you can think of any other novel use-cases, too!
Articles from blogs I follow around the net
We are excited to launch the new Go official swag and merch store shipping worldwide. We are even more excited to announce that 100% of the proceeds from the Go store go directly to GoBridge. GoBridge is a non-profit organization focused on building bridges…via The Go Programming Language Blog July 18, 2019
This is a psuedo-transcript for a talk given at Deconstruct 2019. To make this accessible for people on slow connections as well as people using screen readers, the slides have been replaced by in-line text (the talk has ~120 slides; at an average of 20 k…via Dan Luu July 12, 2019
This post gives an overview of the recent updates to the Writing an OS in Rust blog and the used libraries and tools. My focus this month was to finish the Heap Allocation post, on which I had been working since March. I originally wanted to include a sect…via Writing an OS in Rust July 6, 2019
Generated by openring