Sys-gui Customization: Minimal Fedora and Alternate Desktop Environments / Window Managers (DE/WMs)

Guide:

  1. Start with latest Fedora template (works with Fedora, Fedora Minimal, and Fedora XFCE). In sys-gui template, install necessary packages and shutdown template:

    • GUIVM packages: gui-templ# dnf install qubes-manager qubes-desktop-linux-manager qubes-vm-guivm dummy-psu-module dummy-psu-receiver dummy-backlight-vm
      • AwesomeWM: gui-templ# dnf install awesome
      • i3WM: gui-templ# dnf install i3wm i3-settings-qubes
      • KDE: gui-templ# dnf install @kde-desktop-qubes
      • Any other Desktop Environment or Window Manager should work.
  2. Create sys-gui with the template you just created, and these modifications:

    • no NetVM
    • autostart on boot
    • allow fullscreen
    • and the services:
      • guivm
      • gui-vm-agent
      • dummy-psu
      • dummy-backlight
  3. In dom0, further modify sys-gui from command line:
    dom0$ qvm-prefs sys-gui guivm dom0
    dom0$ qvm-prefs sys-gui audiovm dom0
    dom0$ qvm-features sys-gui gui-secure-copy-sequence none
    dom0$ qvm-features sys-gui gui-secure-paste-sequence none

  4. In sys-gui, open a Xen console, login as user. In sys-gui terminal set XSESSION variable and create ~/.xinitrc. Replace <your de/wm> with the command to launch your DE/WM.
    sys-gui$ echo "exec <your de/wm>" | tee ~/.xinitrc 1> /dev/null
    sys-gui$ XSESSION=<your de/wm>

  5. In dom0 terminal, execute:
    dom0$ qubes-prefs default_guivm sys-gui

  6. Restart QubesOS and select GUIVM session in display manager menu.

Important Notes and Current Issues:

Summary:

Anyone using this guide should be mindful that there may be small tweaks needed, and that this guide isn’t a guide on how to get your favorite window manager to work. This will get your packages installed and minimally working, but configuration, bells, and whistles aren’t covered. You should be able to get anything you want working just how you would if you were running this in a regular Fedora workstation, with the caveat that you are in an unprivileged virtual environment. Certain things, like accessing hardware directly, will not work, but qrexec policy can be used as a workaround.

As of this moment, there are still minor problems that persist:

  • sys-gui is labeled as dom0 in the window manager,
  • there is a several seconds’ wait with a black screen while the window manager loads, and
  • notifications for sys-gui are sent to dom0 (this is an upstream problem that cannot be fixed with just configuration).

I plan to expand this to be OS independent, but right now Debian is posing some problems that I need to diagnose. It will be more of a priority for me if this gets likes and constructive replies; however, my schedule is unpredictable and I may have to shelf this if things come up.

1 Like

[Removed]

why is it necessary? What is it doing? :thinking:

This makes sure that sys-gui receives the sequence rather than dom0.
So, without this, dom0 would receive sys-gui’s clipboard, since that’s what’s focused in dom0, and the qubes are focused in sys-gui. When sys-gui doesn’t have the sequence, dom0 doesn’t receive it from sys-gui. In short, it’s required to ensure Qubes copy/paste works right.

It was included in the salt configs in /srv/formulas/base/virtual-machines-formula/qvm/sys-gui.sls from the Qubes team, so there may be other reasons as well.

1 Like
i3.desktop  
gnome.desktop
mate.desktop
xfce.desktop

DE/WM possible parameters?

package name is: qubes-desktop-linux-manager

Necropost

Excuse me for necroposting, but it should be mentioned in guide.

1 Like

It would depend upon your chosen DE/WM, and if a user isn’t able/willing to find it on their own, my thought was that they probably shouldn’t be doing this, since there will likely be DE/WM-specific issues that come up that have to be dealt with, and if you don’t know the command to launch, you probably don’t know how to fix those issues. Also, I was being a bit lazy because I don’t know all the commands and don’t want to find them. There are notable issues at the bottom, including that this isn’t a guide on how to handle DE/WM-specific issues, hence my judgement that the user should be ready to further troubleshoot.

For awesome, it’s awesome. For i3wm, it’s i3. For XFCE, it’s startxfce4

Fixing now, but FYI you can edit community guides when you find things like this.

1 Like

Also, there was a [WIP] (Work In Progress) flag in the title someone removed. I abandoned this until sys-gui wasn’t still too unstable for me to be fleshing this out. I haven’t checked back, but I will when 4.3 is released if I have time.

2 Likes