Now seems that all build steps are successful completed:
Directory already configured.
Just run your build command (e.g. ninja) and Meson will regenerate as necessary.
If ninja fails, run "ninja reconfigure" or "meson setup --reconfigure"
to force Meson to regenerate.
If build failures persist, run "meson setup --wipe" to rebuild from scratch
using the same options as passed when configuring the build.
To change option values, run "meson configure" instead.
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja
[8/8] Linking target qubes-compositor
Running `qubes-compositor --help` will provide detailed usage information; please report a bug if it is not sufficient.
But the command âqubes-compositorâ or âsudo qubes-compositorâ is unknown (fedora 38 template). Which package provides this command? No match with âdnf provides */qubes-compositorâ.
sudo meson install in /home/user/qubes-wayland/build did it. Now command âqubes-compositor --helpâ works:
Usage: qubes-compositor [options]
Options:
-v, --log-level [silent|error|info|debug]:
Set log level. Default is "debug" if the qube has debugging
enabled, otherwise "error".
-p, --primary-selection boolean-option:
Enable or disable the primary selection. The default is
disabled, as it is easy to accidentally paste data from the
primary selection (which might not be trusted) into a
terminal.
-n, --sigint-handler boolean-option:
Enable or disable the SIGINT handler. The handler allows the
compositor to shut down cleanly when SIGINT is received. This
is usually what one wants, but it conflicts with the use of
SIGINT by GDB.
-x, --xwayland boolean-option:
Enable or disable Xwayland support. Xwayland allows legacy X11
programs to run under Wayland compositors such as this one.
The default is enabled.
-g, --gui-domain-id [Xen domid]:
Specifiy the Xen domain ID of the GUI daemon. The default is
to read the domain ID from QubesDB, which is nearly always
what you want. This option is only useful for GUI domain
testing.
-s, --startup-cmd shell-command [shell command]:
Run the argument to this option as a shell command after
startup.
--keymap-errors [exit|continue]:
Specify what to do if the keyboard layout changes and the new
layout cannot be switched to. "exit" means to exit with status
78. "continue" means to continue using the old layout.
"continue" is the default.
For boolean option arguments, "yes", "1", "enabled", and "true"
are considered true, "no", "0", "disabled", and "false" are
considered false, and anything else is an error.
Which is the command that enables wayland for the AppVM from the dispvm console?
You need to disable standard GUI agent by running this command in the console of the template where youâve installed qubes-wayland: sudo systemctl disable qubes-gui-agent.service
I think the qubes-compositor systemd unit should be installed in the template after running sudo meson install so it should work by default after qube start.
For a test I guess you can stop the standard GUI agent service in the console of the AppVM where youâve installed qubes-wayland: sudo systemctl stop qubes-gui-agent.service
And then start the qubes-compositor by running the installed systemd service e.g.: sudo systemctl start qubes-gui-agent-wayland.service
But I donât know how the installed systemd service is named so you need to figure that out.
Try looking at the list of the available services:
Thank you very much. It is qubes-gui-agent-wayland.service. If I try to enable the wayland service from the dispVM console, I get the answer: âUser not known to the underlying authentication module.â What is wrong?
I tried via dom0 âqvm-run (APPVM name) âsudo systemctl start qubes-gui-agent-wayland.serviceââ, but it failed with error code 1. I restarted the AppVM. The output of your commands:
sudo systemctl status qubes-gui-agent-wayland.service | cat
â qubes-gui-agent-wayland.service - Qubes OS Wayland Compositor
Loaded: loaded (/usr/local/lib/systemd/system/qubes-gui-agent-wayland.service; disabled; preset: enabled)
Drop-In: /usr/lib/systemd/system/service.d
ââ10-timeout-abort.conf
Active: inactive (dead)
[user@user ~]$ sudo systemctl cat qubes-gui-agent-wayland.service
# /usr/local/lib/systemd/system/qubes-gui-agent-wayland.service
[Unit]
Description=Qubes OS Wayland Compositor
Conflicts=qubes-gui-agent.service
[Service]
UMask=0077
Type=exec
ExecStartPre=/bin/sh -c 'echo 1000 > /sys/module/grant_table/parameters/free_pe>
ExecStart=/usr/local/bin/qubes-gui-runuser '' /bin/sh sh -c 'exec "$@"' sh /usr>
[Install]
WantedBy=default.targetgui-agent
# /usr/lib/systemd/system/service.d/10-timeout-abort.conf
# This file is part of the systemd package.
# See https://fedoraproject.org/wiki/Changes/Shorter_Shutdown_Timer.
#
# To facilitate debugging when a service fails to stop cleanly,
# TimeoutStopFailureMode=abort is set to "crash" services that fail to stop in
# the time allotted. This will cause the service to be terminated with SIGABRT
# and a coredump to be generated.
#
sudo /usr/local/bin/qubes-gui-runuser '' /bin/sh sh -c 'exec "$@"' sh /usr/local/bin/qubes-compositor -s /usr/local/bin/qubes-wayland-session
sudo: /usr/local/bin/qubes-gui-runuser: command not found