hyprwm / xdg-desktop-portal-hyprland

xdg-desktop-portal backend for Hyprland
BSD 3-Clause "New" or "Revised" License
305 stars 48 forks source link

GTK4 theme change ignored in git version ( v1.3.1 works fine) #171

Closed doppelhelix closed 10 months ago

doppelhelix commented 10 months ago

This only happens when building from git. The latest release v1.3.1 does not have errors and warnings in the log.

This is the problem: gtk2/3 apps are changing their themes just fine with gsettings set org.gnome.desktop.interface gtk-theme "Adw-light"

But changing GTK4 is ignored gsettings set org.gnome.desktop.interface color-scheme prefer-[dark|light]

Here's a log with errors and warnings from build g6a5de92

Log ``` ❯ journalctl -f Jan 18 00:26:08 bravo variety[183895]: [2024-01-18 00:26:08.360] [info] Unable to receive desktop \ appearance: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface \ »org.freedesktop.portal.Settings« on object at path /org/freedesktop/portal/desktop ❯ journalctl -u xdg-desktop-portal-hyprland -- No entries -- ❯ ./xdg-portal-hyprland_the-nuclear-option xdg-desktop-portal-wlr: Kein Prozess gefunden [LOG] Initializing xdph... [LOG] XDG_CURRENT_DESKTOP set to Hyprland [LOG] Gathering exported interfaces [LOG] | Got interface: wl_shm (ver 1) [LOG] | Got interface: wl_drm (ver 2) [LOG] | Got interface: zwp_linux_dmabuf_v1 (ver 4) [LOG] | Got interface: wl_compositor (ver 6) [LOG] | Got interface: wl_subcompositor (ver 1) [LOG] | Got interface: wl_data_device_manager (ver 3) [LOG] | Got interface: zwlr_export_dmabuf_manager_v1 (ver 1) [LOG] | Got interface: zwlr_data_control_manager_v1 (ver 2) [LOG] | Got interface: zwp_primary_selection_device_manager_v1 (ver 1) [LOG] | Got interface: wp_viewporter (ver 1) [LOG] | Got interface: zwlr_gamma_control_manager_v1 (ver 1) [LOG] | Got interface: zwlr_output_power_manager_v1 (ver 1) [LOG] | Got interface: xdg_wm_base (ver 6) [LOG] | Got interface: wl_seat (ver 8) [LOG] | Got interface: wp_presentation (ver 1) [LOG] | Got interface: ext_idle_notifier_v1 (ver 1) [LOG] | Got interface: zwlr_layer_shell_v1 (ver 4) [LOG] | Got interface: org_kde_kwin_server_decoration_manager (ver 1) [LOG] | Got interface: zxdg_decoration_manager_v1 (ver 1) [LOG] | Got interface: zwlr_output_manager_v1 (ver 4) [LOG] | Got interface: zwp_keyboard_shortcuts_inhibit_manager_v1 (ver 1) [LOG] | Got interface: zwp_pointer_constraints_v1 (ver 1) [LOG] | Got interface: zwp_relative_pointer_manager_v1 (ver 1) [LOG] | Got interface: zwp_virtual_keyboard_manager_v1 (ver 1) [LOG] | Got interface: zwlr_virtual_pointer_manager_v1 (ver 2) [LOG] | Got interface: zwlr_foreign_toplevel_manager_v1 (ver 3) [LOG] [toplevel] (activate) locks: 1 [LOG] | Got interface: wp_drm_lease_device_v1 (ver 1) [LOG] | Got interface: wp_drm_lease_device_v1 (ver 1) [LOG] | Got interface: zwp_tablet_manager_v2 (ver 1) [LOG] | Got interface: zwp_idle_inhibit_manager_v1 (ver 1) [LOG] | Got interface: zxdg_exporter_v1 (ver 1) [LOG] | Got interface: zxdg_importer_v1 (ver 1) [LOG] | Got interface: zxdg_exporter_v2 (ver 1) [LOG] | Got interface: zxdg_importer_v2 (ver 1) [LOG] | Got interface: zwp_pointer_gestures_v1 (ver 3) [LOG] | Got interface: zwp_text_input_manager_v3 (ver 1) [LOG] | Got interface: zwp_input_method_manager_v2 (ver 1) [LOG] | Got interface: xdg_activation_v1 (ver 1) [LOG] | Got interface: ext_session_lock_manager_v1 (ver 1) [LOG] | Got interface: wp_cursor_shape_manager_v1 (ver 1) [LOG] | Got interface: wp_tearing_control_manager_v1 (ver 1) [LOG] | Got interface: wp_single_pixel_buffer_manager_v1 (ver 1) [LOG] | Got interface: xwayland_shell_v1 (ver 1) [LOG] | Got interface: hyprland_toplevel_export_manager_v1 (ver 2) [LOG] | Got interface: wp_fractional_scale_manager_v1 (ver 1) [LOG] | Got interface: zwp_text_input_manager_v1 (ver 1) [LOG] | Got interface: hyprland_global_shortcuts_manager_v1 (ver 1) [LOG] [globalshortcuts] registered [LOG] | Got interface: zwlr_screencopy_manager_v1 (ver 3) [LOG] [pipewire] connected [LOG] [screencopy] init successful [LOG] | Got interface: zxdg_output_manager_v1 (ver 3) [LOG] | Got interface: wl_output (ver 4) [LOG] [core] dmabufFeedbackMainDevice [LOG] Found output name eDP-2 [LOG] [toplevel] Activated, bound to 59c225021a50, toplevels: 2 [LOG] [screencopy] Registered for toplevel export [LOG] [screenshot] init successful (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.013: Choosing \ gtk.portal for org.freedesktop.impl.portal.Lockdown as a last-resort fallback (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.013: The preferred \ method to match portal implementations to desktop environments is to use the portals.conf(5) \ configuration file (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.021: No skeleton \ to export (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.021: Choosing \ gtk.portal for org.freedesktop.impl.portal.FileChooser as a last-resort fallback (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.022: Choosing \ gtk.portal for org.freedesktop.impl.portal.AppChooser as a last-resort fallback (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.022: Choosing \ gtk.portal for org.freedesktop.impl.portal.Print as a last-resort fallback (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.023: Choosing \ gtk.portal for org.freedesktop.impl.portal.Notification as a last-resort fallback (/usr/lib/xdg-desktop-portal:172194): xdg-desktop-portal-WARNING **: 00:05:04.023: Choosing \ gtk.portal for org.freedesktop.impl.portal.Inhibit as a last-resort fallback ```
vaxerski commented 10 months ago

xdph does not handle your themes?

doppelhelix commented 10 months ago

Well, to be precise: Only gsettings set org.gnome.desktop.interface color-scheme prefer-[dark|light] is affected. As if xdph isn't installed at all

fufexan commented 10 months ago

You need to have xdg-desktop-portal-gtk, as that's the one that handles theme changes. Also, make sure you have a portal config for Hyprland in /etc/xdg/xdg-desktop-portal/hyprland-portals.conf, with the contents

[preferred]
default=gtk;hyprland
doppelhelix commented 10 months ago

Thank you!

hyprland-portals.conf was indeed missing and it works now.

I couldn't find any documentation about that file. Will this be eventually generated by the build scripts or does the packager have to include it in the zst/deb/rpm/OtherObscurePackageFormat

fufexan commented 10 months ago

It should be included by the package maintainer in the appropriate place.

vaxerski commented 9 months ago

should that be included in the hyprland package or xdph package? :thinking:

I think we now do it in hyprland, but some packagers do in xdph?

fufexan commented 9 months ago

Including it in Hyprland is ideal, so it's all good.