Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,8 @@ endif
$(DESTDIR)/etc/xdg/autostart/qubes-keymap.desktop
install -m 0644 -D appvm-scripts/etc/xdgautostart/qubes-gtk4-workarounds.desktop \
$(DESTDIR)/etc/xdg/autostart/qubes-gtk4-workarounds.desktop
install -m 0644 -D appvm-scripts/etc/xdgautostart/qubes-set-xsettings-xfconf-query.desktop \
$(DESTDIR)/etc/xdg/autostart/qubes-set-xsettings-xfconf-query.desktop
install -D -m 0644 appvm-scripts/usr/lib/sysctl.d/30-qubes-gui-agent.conf \
$(DESTDIR)/usr/lib/sysctl.d/30-qubes-gui-agent.conf
install -D -m 0644 appvm-scripts/lib/udev/rules.d/70-master-of-seat.rules \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=xfconf-query for Xfce-based QubesVM
Exec=/usr/bin/xfconf-query --channel xsettings --property /Gtk/DecorationLayout --set ""
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is assuming that the qube:

  1. has xfconf-query
  2. is currently using Xfce

Both conditions need to be met for this script to be called.

First, can be done with TryExec=/usr/bin/xfconf-query. Also, I'd rather the path was not hardcoded.

Second, XDG_SESSION_DESKTOP=X-QUBES is present on fedora-43-minimal, which is not the Xfce flavor and doesn't have xfconf-query. So you will need to find another thing to query.

Copy link
Copy Markdown
Contributor Author

@noskb noskb Mar 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your review.

Since this won't take effect unless the qubes-gui-agent-xfce is installed, I think it's reasonable to assume that xfconf-query exists. That’s why I didn’t use TryExec=, but I wonder if I’m missing something.

Also, I'd rather the path was not hardcoded.

agree.


Since minimal template is intended for advanced users, I hadn't considered it.

I expect the same thing is possible by adding xsettingsd to the qubes-gui-agent package dependencies and placing the configuration file in its proper location, but I’m hesitant to add anything by default to minimal template, which is for advanced users who prefer minimizing things…

Copy link
Copy Markdown
Contributor

@ben-grande ben-grande Mar 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since minimal template is intended for advanced users, I hadn't considered it.

For advanced users to configure, doesn't mean things should be broken. I don't know if this breaks systemd somehow if it is configured to handle xdg autostart. But I'd rather that it is not left in a failed state, but skipped.

I expect the same thing is possible by adding xsettingsd to the qubes-gui-agent package dependencies and placing the configuration file in its proper location, but I’m hesitant to add anything by default to minimal template, which is for advanced users who prefer minimizing things…

No need to add the package. It doesn't guarantee that xfce is currently running. Please find a way to know if Xfce is currently running and add that as a check to TryExec=.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since minimal template is intended for advanced users, I hadn't considered it.

For advanced users to configure, doesn't mean things should be broken.

To explain this better, minimal templates don't have everything working by default, I just don't want a failed state by default.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No need to add the package. It doesn't guarantee that xfce is currently running. Please find a way to know if Xfce is currently running and add that as a check to TryExec=.

Is it really needed to check whether Xfce is currently running here?

All environment variables recommended for checking whether XFCE (DE) is currently running are override by 60xfce-desktop included in the qubes-gui-agent-xfce package, so as I see it, if the package is installed, Xfce is assumed to be running. Furthermore,xfconf-query does not fail even if Xfce is not running. But, --set alone will fail if the channel or property does not exist, so adding --create is planned.`)

TryExec=xfconf-query
Exec=xfconf-query --channel xsettings --property /Gtk/DecorationLayout --create --type string --set ""

With this change, it should no longer default to a failed state. (for example, even in a unique environment where only xfconf and qubes-gui-agent-xfce packages are installed on minimal template)

Terminal=false
Type=Application
OnlyShowIn=X-QUBES;
3 changes: 2 additions & 1 deletion debian/qubes-gui-agent-xfce.install
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
etc/X11/Xsession.d/60xfce-desktop
etc/X11/Xsession.d/60xfce-desktop
etc/xdg/autostart/qubes-set-xsettings-xfconf-query.desktop
1 change: 1 addition & 0 deletions rpm_spec/gui-agent.spec.in
Original file line number Diff line number Diff line change
Expand Up @@ -364,6 +364,7 @@ rm -f %{name}-%{version}

%files xfce
%{xinitrc_dir}/60xfce-desktop.sh
/etc/xdg/autostart/qubes-set-xsettings-xfconf-query.desktop

%files -n qubes-gui-vnc
#/lib/systemd/system/qubes-gui-vncserver.service
Expand Down