Using Another DE/WM in sys-gui

I want to use a different WM in sys-gui, but I have so far failed. I’ve successfully enabled sys-gui using salt (sudo qubesctl top.enable qvm.sys-gui && sudo qubesctl --all state.apply && sudo qubesctl top.disable qvm.sys-gui), as well as having used i3wm and AwesomeWM in dom0 for over a year now. I looked at the salt formulae for sys-gui’s template and installed the necessary non-XFCE packages and lightdm, as well as trying to tweak lightdm’s settings to use awesome and autologin.

The unmodified sys-gui works perfectly (I didn’t thoroughly test it), but when I switch to the template with awesome, the best I’ve gotten is a blank screen. In the official documentation, it says it “can be adapted very easily for other desktops and templates.” Does anyone know how to do this?

Template changes

I’m using debian-12-minimal.

The exact packages I installed are as follows:
awesome
qubes-desktop-linux-manager
qubes-vm-guivm
qubes-manager
qubes-core-agent-passwordless-root
lightdm
xdg-user-dirs-gtk

I also executed sudo systemctl enable lightdm and sudo dpkg reconfigure --force lightdm awesome

I’ve tried changing the user session in lightdm.conf as well as user autologin, neither of which fixed the issue. I’ve tried a bunch of little things that I don’t remember (many things I later found weren’t relevant, and I switched to a new template and installed these.

Here are some pointers:

I don’t think anybody tried this before :wink:

2 Likes

Thanks, marmarek! I’ll try all this and create a community guide when I get it working.

1 Like

Update:

What you said fixed the problem so I’m marking it solved, but, like a wolf spider, when it was crushed it exploded into a bunch of tiny babies. I’m currently trying to sort these out, but it mainly seems like some GUI packages from dom0 need to be ported to sys-gui.
(Like /usr/share/awesome/lib/qubes.lua, without which the Qubes security colors and VM names won’t be in the borders on the WM.) :

For some reason (I noticed this problem with sys-gui when I tested it in its original configuration), it is extremely slow to get the GUI running, even when the qube is on. There is a blank screen for a few seconds, long enough that I think there may be some problem. I’ll have to diagnose.

The systray and Qubes widgets are nowhere to be found.

No AppVM applications will launch. One program I tried to launch from the terminal (rofi, which is coincidentally my app launcher) failed to launch and said something about locale not being set. Again, I’ll need to diagnose this, but it probably has something to do with GTK/themes.

TL;DR: This will need some work before it is usable. I’ll be working on this, but for anyone else willing to test here are

Instructions to get where I am:
  1. Use Salt to configure sys-gui (top.enable qvm.sys-gui). Confirm this works. This is mainly to make sure there are no preexisting problems so things don’t get confused, but it also sets up the GUIVM policy. You’ll have to do this manually if you skip this step, but the policiy and location can be found in /srv/formulas/base/virtual-machines-formula/qvm/sys-gui-template.sls.

  2. Create debian-12-minimal-sys-gui by cloning debian-12-minimal. Get a root shell and execute these commands (include any other packages you want; I did rofi, sxhkd, emacs, etc.):
    gui-templ# apt install awesome lightdm qubes-desktop-linux-manager qubes-vm-guivm qubes-manager xdg-user-dirs-gtk
    gui-templ# systemctl enable lightdm

  3. Copy Awesome-related files:
    dom0$ qvm-copy-to-vm sys-gui /home/user/.config/awesome
    dom0$ qvm-copy-to-vm debian-12-minimal-sys-gui /usr/share/awesome/lib/qubes.lua

  4. Move copied files in debian-12-minimal-sys-gui to correct directory:
    gui-templ# mv /home/user/QubesIncoming/dom0/qubes.lua /usr/share/awesome/lib/
    Then shutdown debian-12-minimal-sys-gui.

  5. Start sys-gui and launch a Xen console. Login to root (type ‘root’ and press return). Execute these commands:
    sys-gui# mv /home/user/QubesIncoming/dom0/awesome /home/user/.config/
    sys-gui# echo "exec awesome" | tee /home/user/.xinitrc 1> /dev/null
    sys-gui# set XSESSION=awesome

  6. Restart QubesOS, and login to GUIVM.

This may take me a few days to look into with my workload, so if you’re here looking for answers please be patient. This is my main machine, so I have to work slowly when I can afford a few hours in case of breakage.

I’ve started a community guide here, for anybody who is interested. It is a work in progress.

2 Likes

I got XFCE working again with a manual reinstall, copied AwesomeWM config and required qubes.lua, and restarted sys-gui in AwesomeWM. I confirmed the qubes not appearing is an AwesomeWM thing, so I’m re-opening this.

The error seems to be coming from qubes-core-admin-client. It broke anytime I called qvm-run in sys-gui, and when I called it in dom0, it just hung after the (normal) first line telling me what was executing.I want to stress that everything works fine in XFCE, and this only happens with AwesomeWM.

Attached is the error:

I got VMs to appear in sys-gui, and the qubes-core-admin-client crash is unrelated. I am accordingly re-closing this with the original solution and opening a separate issue.