Feedback Qubes OS alpha with sys-gui

Hello,

It’s a topic for all the feedback you have from using QubesOS with sys-gui enabled

You can share your experience, tips, recommandation, screenshoot or what ever you want to share about sys-gui, everything is welcomed

I’m on QubesOS 4.1 alpha, I personnally didn’t try it, I’m a bit scared because of the lack of information about it but you can always try to change my mind :yum:

Time to try sys-gui, I can’t resist to try it haha

I will do what’s indicate here :

1 Like

Been 10 minutes doing the command in dom0 qubesctl --all state.highstate and nothing is happening, still not finished, is this normal ? :see_no_evil:

1 Like

So took like 2 hour to finish itself, everything seems ok :

Just in case someone need the output for whatever reason here it is :

[user@dom0 ~]$ sudo qubesctl top.enable qvm.sys-gui pillar=True
local:
    ----------
    qvm.sys-gui.top:
        ----------
        status:
            enabled
[user@dom0 ~]$ sudo qubesctl --all state.highstate
local:
----------
          ID: qubes-template-fedora-33-xfce
    Function: pkg.installed
      Result: True
     Comment: 1 targeted package was installed/updated.
     Started: 01:17:48.186769
    Duration: 5405881.683 ms
     Changes:   
              ----------
              qubes-template-fedora-33-xfce:
                  ----------
                  new:
                      4.0.6-202102140100
                  old:
----------
          ID: dummy-psu-sender
    Function: pkg.installed
      Result: True
     Comment: The following packages were installed/updated: dummy-psu-sender
     Started: 02:47:54.154003
    Duration: 114349.202 ms
     Changes:   
              ----------
              dummy-psu-sender:
                  ----------
                  new:
                      1.0.0-1.fc32
                  old:
----------
          ID: dummy-backlight-dom0
    Function: pkg.installed
      Result: True
     Comment: 1 targeted package was installed/updated.
     Started: 02:49:48.570264
    Duration: 113780.304 ms
     Changes:   
              ----------
              dummy-backlight-dom0:
                  ----------
                  new:
                      1.0.0-1
                  old:
----------
          ID: /usr/share/xsessions/sys-gui.desktop
    Function: file.managed
      Result: True
     Comment: File /usr/share/xsessions/sys-gui.desktop updated
     Started: 02:51:42.361381
    Duration: 12.799 ms
     Changes:   
              ----------
              diff:
                  New file
----------
          ID: sys-gui
    Function: qvm.vm
      Result: True
     Comment: ====== ['present'] ======
              /usr/bin/qvm-create sys-gui --class=AppVM --template=fedora-33-xfce --label=black 
              
              ====== ['prefs'] ======
              
              
              ====== ['service'] ======
              
              
              ====== ['features'] ======
     Started: 02:51:42.382822
    Duration: 8453.782 ms
     Changes:   
              ----------
              qvm.features:
                  ----------
                  qvm.features:
                      ----------
                      gui-allow-fullscreen:
                          ----------
                          new:
                              1
                          old:
                              None
              qvm.prefs:
                  ----------
                  qvm.create:
                      ----------
                      audiovm:
                          ----------
                          new:
                              None
                          old:
                              *default*
                      autostart:
                          ----------
                          new:
                              True
                          old:
                              *default*
                      guivm:
                          ----------
                          new:
                              dom0
                          old:
                              *default*
                      netvm:
                          ----------
                          new:
                              None
                          old:
                              *default*
              qvm.service:
                  ----------
                  qvm.service:
                      ----------
                      dummy-backlight:
                          ----------
                          new:
                              Enabled
                          old:
                              Missing
                      dummy-psu:
                          ----------
                          new:
                              Enabled
                          old:
                              Missing
                      guivm-gui-agent:
                          ----------
                          new:
                              Enabled
                          old:
                              Missing
----------
          ID: sys-gui-rpc
    Function: file.managed
        Name: /etc/qubes/policy.d/50-gui-sys-gui.policy
      Result: True
     Comment: File /etc/qubes/policy.d/50-gui-sys-gui.policy updated
     Started: 02:51:50.837375
    Duration: 7.745 ms
     Changes:   
              ----------
              diff:
                  New file
----------
          ID: sys-gui-admin-local-rwx
    Function: file.append
        Name: /etc/qubes/policy.d/include/admin-local-rwx
      Result: True
     Comment: Appended 2 lines
     Started: 02:51:50.845328
    Duration: 13.722 ms
     Changes:   
              ----------
              diff:
                  --- 
                  
                  +++ 
                  
                  @@ -8,3 +8,5 @@
                  
                   
                   ## Add your entries here, make sure to append "target=dom0" to all allow/ask actions
                   
                  +sys-gui @tag:guivm-sys-gui allow target=dom0
                  +sys-gui sys-gui allow target=dom0
----------
          ID: sys-gui-admin-global-rwx
    Function: file.append
        Name: /etc/qubes/policy.d/include/admin-global-rwx
      Result: True
     Comment: Appended 3 lines
     Started: 02:51:50.859263
    Duration: 4.591 ms
     Changes:   
              ----------
              diff:
                  --- 
                  
                  +++ 
                  
                  @@ -8,3 +8,6 @@
                  
                   
                   ## Add your entries here, make sure to append "target=dom0" to all allow/ask actions
                   
                  +sys-gui @adminvm allow target=dom0
                  +sys-gui @tag:guivm-sys-gui allow target=dom0
                  +sys-gui sys-gui allow target=dom0
----------
          ID: topd-always-passes
    Function: test.succeed_without_changes
        Name: foo
      Result: True
     Comment: Success!
     Started: 02:51:50.865545
    Duration: 0.901 ms
     Changes:   

Summary for local
------------
Succeeded: 9 (changed=8)
Failed:    0
------------
Total states run:     9
Total run time: 5642.505 s
debian-10: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
fedora-33: SKIP (nothing to do)
whonix-gw-15: SKIP (nothing to do)
whonix-ws-15: SKIP (nothing to do)
fedora-33-xfce: OK
debian-10-c: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
default-mgmt-dvm: SKIP (nothing to do)
X: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
debian-10-X: SKIP (nothing to do)
debian-X: SKIP (nothing to do)
fedora-33-X: SKIP (nothing to do)
sys-net: SKIP (nothing to do)
sys-net-X: SKIP (nothing to do)
sys-usb: SKIP (nothing to do)
sys-whonix: SKIP (nothing to do)
vault: SKIP (nothing to do)
whonix-ws-15-X: SKIP (nothing to do)
whonix-ws-15-dvm: SKIP (nothing to do)
whonix-ws-15-X: SKIP (nothing to do)
whonix-ws-15-X: SKIP (nothing to do)
sys-gui: OK

The X in the name are to keep the name of my qubes private

1 Like

Also, its needed to update fedora-33-xfce, its a pretty big update, it took like 20 minutes to do it.

Time to restart now

I restarted it but …

So now, I can login to Qubes OS with Xfce like the one before installing sys-gui, or using the new sys-gui xfce. So in the normal/old XFCE everything is working as usual and normally, but when I login to the sys-gui environment I just have as describe here and here only only dom0 and sys-gui with zero other of my Qubes. Do I need to do something else after that ?

As explaned here I would need to do the following command :

qubes-prefs default_guivm sys-gui

But nobody in the forum mentionned about it so I don’t know what to expect and what can I do to revert it

if I’m doing the qubes-prefs default_guivm sys-gui command, I can revert it with right ?

qubes-prefs default_guivm dom0

So I don’t know if it’s because I restarted once again or because I apply the following command qubes-prefs default_guivm sys-gui but in the Qube manager I could now see all of my Qubes but still can’t see it in the app menu.

But even if it was working, I would not use sys-gui because of the following problem :

  • I can’t change screen/display mode, like I can’t change primary,secondary screen, turn off one and turn on only the other …

  • There is weird graphical glitch like that appear when something is moving, like for exemple opening a window of moving it on the screen, or just opening the app menu, and you can see that it’s there is performance issue and that like I said, weird graphical glitched appear that make it not usable

So I just did qubes-prefs default_guivm dom0 and restart and I’m back to normal :grinning:

Next step is maybe to try with sys-gui-gpu instead of sys-gui

Note : The computer I use for the test of sys-gui is a thinkpad T480s

Check that answer if it helps: Sys-gui in Qubes 4.1 - devel - #17 by fepitre

I don’t really know what the purpose of this command :

so what I did is go back to the sys-gui mode with :

qubes-prefs default_guivm sys-gui

Ans also use this new command in dom0

qvm-run -p --no-gui --service sys-gui qubes.GuiVMSession

Restart the computer and loging in sys-gui/GuiVM mode

So like last time I tried, I don’t have any of my Qubes VM in the AppVM and I have performance issue with visual glitch.

If I can provide any logs that you need, don’t hesitate to tell me

Since I enable sys-gui, wihout using it, still staying with the old dom0 xfce, the suspend mode doest work anymore ifnany way.

So when I click in the dom0 xfce, on top right. and then suspend, it will just go out of xfce so like I said without acutally work, but also when I’m loggin back in Qubes OS (always in dom0 xfce) all of my Qubes windows will be reset and all of them are into one workspace

Suggest having a thorough read-through of this post to understand what sys-gui is for and where it currently stands:

In the Other Issues section it mentions removing GUI from dom0 means it also needs to [unfortunately] pull and/or open other things away that are closely tied to GUI expectations (audio, backlight, brightness, handle suspend differently, …):

Power management has numerous vital graphical tools that need some kind of access to underlying hardware. From a battery level widget to laptop power management settings, those innocuous GUI tools would like to have a surprisingly broad access to the system itself. Even suspend and shutdown need special handling. In Qubes 4.0, we could just turn off dom0 and know the rest of the system would follow, but it is no longer so simple with a non-privileged GUI domain in the picture.

A sys-gui suspend…suspends the VM. Could not wake it up (even with xl trigger commands). But this is an example of what the post meant.

To get sys-gui to rebuild the appmenus, open the Application Settings and do a refresh.

I also noticed the visual glitch when dragging windows or initial paint, but only when the lightdm session is sys-gui. I did not notice it when the session is xfce4 and running sys-gui with qubes.GuiVmSession. This is on a T460s.

1 Like

I noticed a similar experience on my T430 with R4.1 (without using sys-gui). I found X was using the modesetting driver instead of the intel Xorg driver. Once I forced the intel driver, these glitches went away.

This led me to see my T460s was also using modesetting. Forcing intel, the glitches in sys-gui went away.

1 Like

The suspend didn’t work, but after one restart,and since then, it’s working again :slight_smile:

How to you force the intel driver ? Not sure how to do it :slight_smile:

So I enable sys-gui in Qubes OS 4.1
Now I’m trying sys-gui-gpu

But I have this error :


[root@dom0 user]# qubesctl --all state.highstate
[ERROR   ] Command 'systemd-run' failed with return code: 1
[ERROR   ] stdout: Running scope as unit: run-re3eb2419b05649ab82fd156c4e33e0ec.scope
Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
Running '/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui '--exclude=qubes-template-whonix-gw-15,qubes-template-debian-10,qubes-template-fedora-33-xfce,qubes-template-fedora-33,qubes-template-whonix-ws-15' '-y' '--best' '--allowerasing' '--clean' '--action=install' 'dummy-psu-dom0'' on sys-whonix
sys-whonix: command failed with code: 1
[ERROR   ] retcode: 1
[ERROR   ] Error occurred installing package(s). Additional info follows:

errors:
    - Running scope as unit: run-re3eb2419b05649ab82fd156c4e33e0ec.scope
      Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
      Running '/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui '--exclude=qubes-template-whonix-gw-15,qubes-template-debian-10,qubes-template-fedora-33-xfce,qubes-template-fedora-33,qubes-template-whonix-ws-15' '-y' '--best' '--allowerasing' '--clean' '--action=install' 'dummy-psu-dom0'' on sys-whonix
      sys-whonix: command failed with code: 1
local:
----------
          ID: sys-gui-gpu-template
    Function: pkg.installed
        Name: qubes-template-fedora-33-xfce
      Result: True
     Comment: All specified packages are already installed
     Started: 02:31:47.754332
    Duration: 1258.074 ms
     Changes:   
----------
          ID: dummy-psu-dom0
    Function: pkg.installed
      Result: False
     Comment: Error occurred installing package(s). Additional info follows:
              
              errors:
                  - Running scope as unit: run-re3eb2419b05649ab82fd156c4e33e0ec.scope
                    Using sys-whonix as UpdateVM to download updates for Dom0; this may take some time...
                    Running '/usr/lib/qubes/qubes-download-dom0-updates.sh --doit --nogui '--exclude=qubes-template-whonix-gw-15,qubes-template-debian-10,qubes-template-fedora-33-xfce,qubes-template-fedora-33,qubes-template-whonix-ws-15' '-y' '--best' '--allowerasing' '--clean' '--action=install' 'dummy-psu-dom0'' on sys-whonix
                    sys-whonix: command failed with code: 1
     Started: 02:31:49.013171
    Duration: 59322.265 ms
     Changes:   
----------
          ID: /etc/qubes/input-proxy-target
    Function: file.managed
      Result: True
     Comment: File /etc/qubes/input-proxy-target is in the correct state
     Started: 02:32:48.359442
    Duration: 97.352 ms
     Changes:   
----------
          ID: sys-usb-previous-rpc
    Function: file.line
        Name: /etc/qubes-rpc/policy/qubes.InputMouse
      Result: True
     Comment: Changes were made
     Started: 02:32:48.459574
    Duration: 6.446 ms
     Changes:   
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1,3 +1,2 @@
                  -sys-usb dom0 allow,user=root,target=sys-gui-gpu
                   sys-net dom0 allow,user=root
                   $anyvm $anyvm deny
----------
          ID: sys-usb-input-proxy
    Function: file.prepend
        Name: /etc/qubes-rpc/policy/qubes.InputMouse
      Result: True
     Comment: Prepended 1 lines
     Started: 02:32:48.468388
    Duration: 14.283 ms
     Changes:   
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1,2 +1,3 @@
                  +sys-usb dom0 allow,user=root,target=sys-gui-gpu
                   sys-net dom0 allow,user=root
                   $anyvm $anyvm deny
----------
          ID: sys-gui-gpu
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check sys-gui-gpu None
     Started: 02:32:48.492865
    Duration: 632.673 ms
     Changes:   
----------
          ID: sys-gui-gpu-rpc
    Function: file.managed
        Name: /etc/qubes/policy.d/50-gui-sys-gui-gpu.policy
      Result: True
     Comment: File /etc/qubes/policy.d/50-gui-sys-gui-gpu.policy is in the correct state
     Started: 02:32:49.127575
    Duration: 8.434 ms
     Changes:   
----------
          ID: sys-gui-gpu-admin-local-rwx
    Function: file.append
        Name: /etc/qubes/policy.d/include/admin-local-rwx
      Result: True
     Comment: File /etc/qubes/policy.d/include/admin-local-rwx is in correct state
     Started: 02:32:49.136392
    Duration: 7.432 ms
     Changes:   
----------
          ID: sys-gui-gpu-admin-global-rwx
    Function: file.append
        Name: /etc/qubes/policy.d/include/admin-global-rwx
      Result: True
     Comment: File /etc/qubes/policy.d/include/admin-global-rwx is in correct state
     Started: 02:32:49.144423
    Duration: 7.167 ms
     Changes:   
----------
          ID: qubes-template-fedora-33-xfce
    Function: pkg.installed
      Result: True
     Comment: All specified packages are already installed
     Started: 02:32:49.152001
    Duration: 58.945 ms
     Changes:   
----------
          ID: dummy-psu-sender
    Function: pkg.installed
      Result: True
     Comment: All specified packages are already installed
     Started: 02:32:49.211542
    Duration: 46.145 ms
     Changes:   
----------
          ID: dummy-backlight-dom0
    Function: pkg.installed
      Result: True
     Comment: All specified packages are already installed
     Started: 02:32:49.257988
    Duration: 44.738 ms
     Changes:   
----------
          ID: /usr/share/xsessions/sys-gui.desktop
    Function: file.managed
      Result: True
     Comment: File /usr/share/xsessions/sys-gui.desktop is in the correct state
     Started: 02:32:49.302977
    Duration: 2.762 ms
     Changes:   
----------
          ID: sys-gui
    Function: qvm.exists
      Result: True
     Comment: /usr/bin/qvm-check sys-gui None
     Started: 02:32:49.305926
    Duration: 481.758 ms
     Changes:   
----------
          ID: sys-gui-rpc
    Function: file.managed
        Name: /etc/qubes/policy.d/50-gui-sys-gui.policy
      Result: True
     Comment: File /etc/qubes/policy.d/50-gui-sys-gui.policy is in the correct state
     Started: 02:32:49.788863
    Duration: 6.882 ms
     Changes:   
----------
          ID: sys-gui-admin-local-rwx
    Function: file.append
        Name: /etc/qubes/policy.d/include/admin-local-rwx
      Result: True
     Comment: File /etc/qubes/policy.d/include/admin-local-rwx is in correct state
     Started: 02:32:49.795988
    Duration: 5.217 ms
     Changes:   
----------
          ID: sys-gui-admin-global-rwx
    Function: file.append
        Name: /etc/qubes/policy.d/include/admin-global-rwx
      Result: True
     Comment: File /etc/qubes/policy.d/include/admin-global-rwx is in correct state
     Started: 02:32:49.801464
    Duration: 4.046 ms
     Changes:   
----------
          ID: topd-always-passes
    Function: test.succeed_without_changes
        Name: foo
      Result: True
     Comment: Success!
     Started: 02:32:49.817749
    Duration: 1.399 ms
     Changes:   

Summary for local
-------------
Succeeded: 17 (changed=2)
Failed:     1
-------------
Total states run:     18
Total run time:   62.006 s

I’ve found that dummy-psu-dom0 is changed to dummy-psu-sender, you should find and replace dummy-psu-dom0 to dummy-psu-sender in state files.

Thank for the info

But I can’t find the file /usr/lib/qubes/qubes-download-dom0-updates.sh in dom0 and change it as you said, don’t know where is it.

I believe this file generally runs in sys-firewall. Not in dom0. But I might be wrong.

Not from there, you should look into sys-gui-gpu state files.
Open all file that start from sys-gui-gpu then find and replace dummy-psu-dom0 to dummy-psu-sender.

Your formula states location are in /srv/formulas/base/virtual-machines-formula/qvm/

Are you sure that the location is correct?
In the folder “formulas” there is ‘base’ and ‘test’, no ‘dom0’.
I can find the state files in

/srv/formulas/base/virtual-machines-formula/qvm

I did find one line where I could replace dummy-psu-dom0 with dummy-psu-sender.

Now I got this error instead of the first one mentioned above:

Detected conflicting IDs, SLS IDs need to be globally unique. The conflicting ID is 'dummy-psu-sender' and is found in SLS 'base:qvm.sys-gui' and SLS 'base:qvm.sys-gui-gpu'

Furthermore the state files seem to be overwritten or empty, so you have to use backups because it looks like you can’t just revert to dummy-psu-dom0.

Maybe this ‘base’ folder is the wrong location. I don’t know.

Has anyone tried this and succeeded? Or any correction/ addition to make?

Edit: After logging off and on again the file is not gone/unreadable. Don’t know what happened there the first time.