[qubes-users] How can I install new software in DOM0 ?

How can I install a screen recorder program in DOM0. I tried to install “OBS” or “simplescreenrecorder” but everything I tried failed. Could you please explain how I can install a program in dom0?

I am aware of the security risk it poses, I only need to install software because I have to record screen. I want to learn how I can add a new repo and download software from this repo.

Thank you very much for your answer but the guide didn’t help. The software I want to install is not in the repos and I cannot add a new repo. I have little knowledge, it would be great if you could point out how I can install directly from an new repo.

If the goal is to do screen recording/streaming, one thing you might want to consider is using OBS on a separate non-Qubes machine, and using a HDMI capture card to make the Qubes machine’s video available to OBS. I’ve done a bit of live streaming of Qubes sessions, and this is the simplest workflow for it that I’ve found (though it does require additional hardware). I’ve never tried installing OBS on dom0, but given how Qubes’ GUI works, it feels like getting it installed would only be the beginning of the trouble.

(If you do go down that route and are streaming instead of recording, screensharing an OBS projector window instead of faking the OBS output as a webcam seems to give best quality, btw.)

It is possible to configure new repos in dom0 by adding configuration files under /etc/yum.repos.d, but if you’re still getting up to speed with Qubes I would recommend against it, and would absolutely recommend against it for production use for repos that you don’t trust explicitly or control.


IIUC, you want to stream the screen via OBS.

a. You can do this from a specific qube. That is, this way, you can stream only windows from apps from a specific qube. Maybe this fits your needs, maybe it doesn’t.
b. You can stream the dom0 screen to a qube and then capture it in OBS. I have managed doing so using few terrible hacks, but there is a noticable CPU load and low FPS on my machine (Ryzen 5800X, 1440p). Also you might need some work if you have multiple screens. If you are interested in it, I can share more when I am at PC.
c. You can record (not stream!) the screen either from dom0. I think I have succeeded with gtk-recordMyDesktop.

I have tried several tools that can allow streaming dom0 screen to a domU. I don’t have notes about that, so I am writing just what I got from my memory:

  • Some of them looked useful, but they are not in the offici repositories and I didn’t want to add any extra repository to dom0. Especially ffmpeg looked promising, but there were more such tools.
  • Some recording apps insist on saving the output to a file with a specific suffix. There is usually a workaround like ln -s /dev/stout /tmp/output.mp4.
  • Many recording apps tend to encode the data. For transferring from dom0 to domU, you would probably rather want raw data for multiple reasons: 1. Quality loss, 2. Latency and 3. CPU load.
  • I think there are some apps that record the data in /tmp and postprocess them. This makes real-time streaming impossible unless you inspect the internal data.
  • There are also some screenshoting apps. You can expect low FPS and high CPU usage, but this somehow works.
  • Once you manage to capture the data in dom0, you can play then in domU using ffplay. From domU perspective, you might want to have it always-on-top and fullscreen, from dom0 perspective, you might want it hidden. Both is possible. I can share scripts for that. Some manual work is still needed, but they can be useful.

Vít Šesták ‘v6ak’