This is currently a WIP and will be updated as I figure it out. This guide is here for anyone who would like to join me in doing so because it is primitively working. Currently, I am figuring out if there are any packages listed in the salt configs for sys-gui template that will solve any problems. My goal is to make this work with as few and as simple changes as possible so as to be easy to configure and maintain, so work may be slow as I pinpoint exact issues. As of this moment, qube applications will not launch, sys-gui terminal (and most likely all applications) are labeled as dom0 in the wm, there is no systray or widgets, and it is too slow for comfort when logging in and starting the wm. Who knows what else; I'm tackling the issues as they arise. This guide is for debain-12-minimal and AwesomeWM, because that is what I am using; I plan to expand this to be OS and DE/WM independent. Lastly, I am very busy and may not post regular updates. My schedule is unpredictable and I may get this done quickly or I may be very slow. I will do what I can when I can, and I will update when significant progress (or failure) is made. Any help is appreciated!
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
.
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
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
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.
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
This is a work in progress, may not be updated quickly or regularly, but I will update it when I make progress. This will eventually be a complete and OS/WM/DE independent guide, but it is here to see if anyone else wants this and/or is willing to help. 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. I will be working on when and where I can. 99% of what is here is based off the salt formula and this topic.
The Guide will be updated when I have actionable information. I'm doing my best to keep clutter out of the guide. Here is the current roadmap:
[details="Summary:"]
Get everything functioning correctly in fedora-40-xfce based sys-gui. This will mostly be a Qubes thing, since that should already function perfectly.
Get AwesomeWM functioning perfectly in fedora-40-xfce based sys-gui. I don't anticipate problems.
Get AwesomeWM working in fedora-40-minimal based sys-gui. This will just be a matter of figuring out which packages are necessary and which aren't.
Get i3wm working in sys-gui.
Note: I don't plan to port this to Debian soon. It is in the plans, but I have absolutely no clue what is going on there. I will cross that bridge when I get to it. As far as DEs/WMs other than AwesomeWM and i3wm, they shouldn't be any different to get working than in dom0 if both Awesome and i3 work, so I'll just link those guides (if they exsit) when this is through. [/details]
Step one of the roadmap is complete after a reinstall of sys-gui.
Step two is done. AwesomeWM currently works with no (major) problems. I will update with a list of minor problems soon.