FineFindus / eyedropper

Pick and format colors
https://apps.gnome.org/Eyedropper
GNU General Public License v3.0
260 stars 26 forks source link

"Failed to pick a color" on Mint 21.1 Cinnamon #63

Closed jjrob closed 1 year ago

jjrob commented 1 year ago

Describe the bug I installed Eyedropper on Mint 21.1 Cinnamon. It has a single button, Pick a Color. When I click it, I get the prompt "Failed to pick a color". See the screenshot below.

To Reproduce Steps to reproduce the behavior:

  1. Install Eyedropper flatpak on Mint 21.1 Cinnamon using Mint's Software Manager.
  2. Start Eyedropper and click Pick a Color.
  3. The "Failed to pick a color" prompt occurs.

Expected behavior I expected that the cursor would then let me pick a color.

Screenshots Eyedropper

Information

As you can see above, there are no buttons except Pick a Color visible when I start Eyedropper. But as you suggested I can click Ctrl-R and get a random color. At that point, the hamburger menu becomes available. I clicked About Eyedropper ⇒ Troubleshooting ⇒ Debugging Information as requested and the dump is below. If I click the eyedropper icon after getting a random color, the same "Failed to pick a color" error occurs.

Debugging Information ``` Eyedropper: 0.6.0 Profile: Backend: X11 Sandboxed: true OS: - Name: "GNOME" - Version: "43 (Flatpak runtime)" - GTK_THEME: "Unset" - Theme: "Default" - IconTheme: "Adwaita" Flatpak: - Name: com.github.finefindus.eyedropper - Runtime: runtime/org.gnome.Platform/x86_64/43 - Runtime commit: fc22585d44fa58c1bc99e1eb203c156c1a2aec27cfe795e62f5c72588ff91bec - Arch: x86_64 - Flatpak Version: 1.12.7 Libraries: - GTK: 4.8.3 - Libadwaita: 1.2.4 Portal error: Some(Portal(ZBus(MethodError(OwnedErrorName(ErrorName(Str(Owned("org.freedesktop.DBus.Error.UnknownMethod")))), Some("No such interface “org.freedesktop.portal.Screenshot” on object at path /org/freedesktop/portal/desktop"), Msg { type: Error, sender: UniqueName(Str(Borrowed(":1.86"))), reply-serial: 5, body: Signature("s") })))) ```

Additional context Add any other context about the problem here.

jjrob commented 1 year ago

I'm not sure why the Debugging Information is now showing above in my browser. But if you click the copy icon you can still get it. Apologies if I messed up the markdown.

jjrob commented 1 year ago

Ok fixed that.

FineFindus commented 1 year ago

Apologies if I messed up the markdown.

Don't worry about it.

The debugging info indicates that it is unable to find the portal used to make the request, Could use please check if you have xdg-desktop-portal, xdg-desktop-portal-gtk and xdg-desktop-portal-gnome installed?

jjrob commented 1 year ago

Thanks. According to the Mint software manager, I have xdg-desktop-portal and xdg-desktop-portal-gtk flatpaks installed but not xdg-desktop-portal-gnome. Also there is this:

jason@jason-XPS-15-9520:/$ whereis xdg-desktop-portal
xdg-desktop-portal: /usr/libexec/xdg-desktop-portal /usr/share/xdg-desktop-portal
jason@jason-XPS-15-9520:/$ whereis xdg-desktop-portal-gtk
xdg-desktop-portal-gtk: /usr/libexec/xdg-desktop-portal-gtk
jason@jason-XPS-15-9520:/$ whereis xdg-desktop-portal-gnome
xdg-desktop-portal-gnome:

Do I need to manually install xdg-desktop-portal-gnome before installing Eyedropper? Or should the flatpak have declared a dependency and installed it for me, or something like that?

FineFindus commented 1 year ago

In theory, each portal implementation should provide all the portals, but it's the most likely cause of the issue. Flatpak can only declare dependencies inside their sandbox, so they can't bring their own portal implementation. You can also run /usr/lib/xdg-desktop-portal --replace --verbose with the various portal implementation, to check, which one provides what, on my system the Screenshot portal, which is responsible for the color picking is provided by xdg-desktop-portal-gnome.

jjrob commented 1 year ago

Looks like Screenshot does not appear in that output when I run it:

jason@jason-XPS-15-9520:/$ /usr/libexec/xdg-desktop-portal --replace --verbose
XDP: load portals from /usr/share/xdg-desktop-portal/portals
XDP: loading /usr/share/xdg-desktop-portal/portals/gnome-keyring.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.Secret
XDP: loading /usr/share/xdg-desktop-portal/portals/gtk.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Print
XDP: portal implementation supports org.freedesktop.impl.portal.Notification
XDP: portal implementation supports org.freedesktop.impl.portal.Inhibit
XDP: portal implementation supports org.freedesktop.impl.portal.Access
XDP: portal implementation supports org.freedesktop.impl.portal.Account
XDP: portal implementation supports org.freedesktop.impl.portal.Email
XDP: portal implementation supports org.freedesktop.impl.portal.DynamicLauncher
XDP: portal implementation supports org.freedesktop.impl.portal.Lockdown
XDP: portal implementation supports org.freedesktop.impl.portal.Settings
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Lockdown
XDP: providing portal org.freedesktop.portal.MemoryMonitor
XDP: providing portal org.freedesktop.portal.PowerProfileMonitor
XDP: providing portal org.freedesktop.portal.NetworkMonitor
XDP: providing portal org.freedesktop.portal.ProxyResolver
XDP: providing portal org.freedesktop.portal.Trash
XDP: providing portal org.freedesktop.portal.GameMode
XDP: providing portal org.freedesktop.portal.Realtime
XDP: Using gtk.portal for org.freedesktop.impl.portal.Settings
XDP: providing portal org.freedesktop.portal.Settings
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.FileChooser
XDP: providing portal org.freedesktop.portal.FileChooser
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.AppChooser
XDP: providing portal org.freedesktop.portal.OpenURI
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Print
XDP: providing portal org.freedesktop.portal.Print
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Notification
XDP: providing portal org.freedesktop.portal.Notification
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Inhibit
XDP: providing portal org.freedesktop.portal.Inhibit
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Access
XDP: providing portal org.freedesktop.portal.Device
XDP: providing portal org.freedesktop.portal.WebExtensions
XDP: providing portal org.freedesktop.portal.Location
XDP: providing portal org.freedesktop.portal.Camera
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Account
XDP: using org.freedesktop.impl.portal.Account at org.freedesktop.impl.portal.desktop.gtk

XDP: providing portal org.freedesktop.portal.Account
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Email
XDP: providing portal org.freedesktop.portal.Email
XDP: Falling back to gnome-keyring.portal for org.freedesktop.impl.portal.Secret
XDP: providing portal org.freedesktop.portal.Secret
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.DynamicLauncher
XDP: providing portal org.freedesktop.portal.DynamicLauncher
XDP: org.freedesktop.portal.Desktop acquired

Do you think I should manually install xdg-desktop-portal-gnome? Would there be in harm in doing it, do you think? Thanks for your help. Apologies for my ignorance.

FineFindus commented 1 year ago

Yes, as I would assume it will solve this issue. I've never heard anything about a portal installation braking something, but if that would happen, uninstalling it should repair it.

jjrob commented 1 year ago

I installed xdg-desktop-portal-gnome from the Mint Software Manager.

jason@jason-XPS-15-9520:~$ whereis xdg-desktop-portal-gnome
xdg-desktop-portal-gnome: /usr/libexec/xdg-desktop-portal-gnome

During installation I was prompted which Display Manager I wanted to use, with the options of gdm and lightdm. lightdm was the one selected by default and seems to be the default on Mint Cinnamon:

jason@jason-XPS-15-9520:~$ cat /etc/X11/default-display-manager
/usr/sbin/lightdm

so I stuck with it. /usr/libexec/xdg-desktop-portal --replace --verbose seems to mention Screenshot now:

jason@jason-XPS-15-9520:~$ /usr/libexec/xdg-desktop-portal --replace --verbose
XDP: load portals from /usr/share/xdg-desktop-portal/portals
XDP: loading /usr/share/xdg-desktop-portal/portals/gnome-keyring.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.Secret
XDP: loading /usr/share/xdg-desktop-portal/portals/gtk.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Print
XDP: portal implementation supports org.freedesktop.impl.portal.Notification
XDP: portal implementation supports org.freedesktop.impl.portal.Inhibit
XDP: portal implementation supports org.freedesktop.impl.portal.Access
XDP: portal implementation supports org.freedesktop.impl.portal.Account
XDP: portal implementation supports org.freedesktop.impl.portal.Email
XDP: portal implementation supports org.freedesktop.impl.portal.DynamicLauncher
XDP: portal implementation supports org.freedesktop.impl.portal.Lockdown
XDP: portal implementation supports org.freedesktop.impl.portal.Settings
XDP: loading /usr/share/xdg-desktop-portal/portals/gnome-shell.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.Access
XDP: loading /usr/share/xdg-desktop-portal/portals/gnome.portal
XDP: portal implementation for gnome
XDP: portal implementation supports org.freedesktop.impl.portal.Account
XDP: portal implementation supports org.freedesktop.impl.portal.AppChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Screenshot
XDP: portal implementation supports org.freedesktop.impl.portal.ScreenCast
XDP: portal implementation supports org.freedesktop.impl.portal.RemoteDesktop
XDP: portal implementation supports org.freedesktop.impl.portal.Lockdown
XDP: portal implementation supports org.freedesktop.impl.portal.Background
XDP: portal implementation supports org.freedesktop.impl.portal.Settings
XDP: portal implementation supports org.freedesktop.impl.portal.Wallpaper
XDP: portal implementation supports org.freedesktop.impl.portal.FileChooser
XDP: portal implementation supports org.freedesktop.impl.portal.Print
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Lockdown
XDP: providing portal org.freedesktop.portal.MemoryMonitor
XDP: providing portal org.freedesktop.portal.PowerProfileMonitor
XDP: providing portal org.freedesktop.portal.NetworkMonitor
XDP: providing portal org.freedesktop.portal.ProxyResolver
XDP: providing portal org.freedesktop.portal.Trash
XDP: providing portal org.freedesktop.portal.GameMode
XDP: providing portal org.freedesktop.portal.Realtime
XDP: Using gnome.portal for org.freedesktop.impl.portal.Settings
XDP: Using gtk.portal for org.freedesktop.impl.portal.Settings
XDP: providing portal org.freedesktop.portal.Settings
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.FileChooser
XDP: providing portal org.freedesktop.portal.FileChooser
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.AppChooser
XDP: providing portal org.freedesktop.portal.OpenURI
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Print
XDP: providing portal org.freedesktop.portal.Print
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Screenshot
XDP: providing portal org.freedesktop.portal.Screenshot
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Notification
XDP: providing portal org.freedesktop.portal.Notification
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Inhibit
XDP: providing portal org.freedesktop.portal.Inhibit
XDP: Falling back to gnome-shell.portal for org.freedesktop.impl.portal.Access
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Background
XDP: providing portal org.freedesktop.portal.Device
XDP: providing portal org.freedesktop.portal.WebExtensions
XDP: providing portal org.freedesktop.portal.Location
XDP: providing portal org.freedesktop.portal.Camera
XDP: Starting background app monitor
XDP: providing portal org.freedesktop.portal.Background
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Wallpaper
XDP: providing portal org.freedesktop.portal.Wallpaper
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.Account
XDP: using org.freedesktop.impl.portal.Account at org.freedesktop.impl.portal.desktop.gnome

XDP: providing portal org.freedesktop.portal.Account
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.Email
XDP: providing portal org.freedesktop.portal.Email
XDP: Falling back to gnome-keyring.portal for org.freedesktop.impl.portal.Secret
XDP: providing portal org.freedesktop.portal.Secret
XDP: Falling back to gtk.portal for org.freedesktop.impl.portal.DynamicLauncher
XDP: providing portal org.freedesktop.portal.DynamicLauncher
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.ScreenCast
XDP: providing portal org.freedesktop.portal.ScreenCast
XDP: Falling back to gnome.portal for org.freedesktop.impl.portal.RemoteDesktop
XDP: providing portal org.freedesktop.portal.RemoteDesktop
XDP: org.freedesktop.portal.Desktop acquired

Unfortunately, Eyedropper exhibits the same behavior as before. Here is the new debug info:

Eyedropper: 0.6.0
Profile: 
Backend: X11
Sandboxed: true

OS:
 - Name: "GNOME"
 - Version: "43 (Flatpak runtime)"
 - GTK_THEME: "Unset"
 - Theme: "Default"
 - IconTheme: "Adwaita"

Flatpak:
 - Name: com.github.finefindus.eyedropper
 - Runtime: runtime/org.gnome.Platform/x86_64/43
 - Runtime commit: fc22585d44fa58c1bc99e1eb203c156c1a2aec27cfe795e62f5c72588ff91bec
 - Arch: x86_64
 - Flatpak Version: 1.12.7

Libraries:
 - GTK: 4.8.3
 - Libadwaita: 1.2.4

Portal error: Some(Response(Other))

Any other ideas? Thanks again!

jjrob commented 1 year ago

One quick clarification, don't know if it is important. I said above that had xdg-desktop-portal and xdg-desktop-portal-gtk installed as flatpaks. That was not correct. They are Linux Mint "system packages". When I installed xdg-desktop-portal-gnome it was also one of those, not a flatpak. I don't understand much about Linux packaging yet, so apologies if this is irrelevant, but wanted to clarify it in case it was.

FineFindus commented 1 year ago

The installation of the xdg-desktop-portal-gnome has definitely helped, as it has fixed the previous error (as you can see in the debug info, the Portal error info changed). I'm not sure what causes the new one, I'll try to reproduce it over the coming days and will report back one I find something.

FineFindus commented 1 year ago

I have been able to reproduce the problem. Unfortunately, this is not a problem with this application, but rather a problem with the portal implementation, or lack thereof, for Cinnamon.

This application simply asks the portal for a color, if the portal is not implemented it cannot respond, so the application displays this error. I have also checked with the library that this application uses to request a color, which also does not work.

As this is not a problem in this application, please open an issue in the cinnamon-desktop repository.

jjrob commented 1 year ago

Thanks for your diagnosis. Hopefully the portal will eventually be implemented for Cinnamon.

qadzek commented 1 month ago

I encountered the same issue using Linux Mint 21.3, Cinnamon 6.0.4. I am now using the Color Picker applet instead.