Schneegans / Gnome-Pie

A pie menu launcher for linux. Read the release announcement of version 0.7.2 at https://schneegans.github.io/news/2018/10/30/gnome-pie-072 Or have a look at the homepage!
http://schneegans.github.io/gnome-pie.html
MIT License
308 stars 54 forks source link

Doesn't work on Wayland #112

Closed lssimoes closed 7 years ago

lssimoes commented 9 years ago

First of all, thank you for this simple but really effective and beatiful application launcher. I've tried to run gnome-pie on Wayland but it just exited with a segafult.

I'm using an Arch Linux 64-bit machine and gnome-pie as of commit 682d3d3

(gnome-pie:8271): Gtk-WARNING **: Error setting gtk-xft-antialias in /home/kaslu/.config/gtk-3.0/settings.ini: Key file contains key 'gtk-xft-antialias' in group 'Settings' which has a value that cannot be interpreted.

(gnome-pie:8271): Gtk-WARNING **: Error setting gtk-xft-hinting in /home/kaslu/.config/gtk-3.0/settings.ini: Key file contains key 'gtk-xft-hinting' in group 'Settings' which has a value that cannot be interpreted.
[MESSAGE] Welcome to Gnome-Pie 0.6.2!
[MESSAGE] Loading Pies from "/home/kaslu/.config/gnome-pie/pies.conf".
Segmentation fault (core dumped)

On this same machine of mine, I've run gnome-pie on XOrg naturally:

(gnome-pie:7288): Gtk-WARNING **: Error setting gtk-xft-antialias in /home/kaslu/.config/gtk-3.0/settings.ini: Key file contains key 'gtk-xft-antialias' in group 'Settings' which has a value that cannot be interpreted.

(gnome-pie:7288): Gtk-WARNING **: Error setting gtk-xft-hinting in /home/kaslu/.config/gtk-3.0/settings.ini: Key file contains key 'gtk-xft-hinting' in group 'Settings' which has a value that cannot be interpreted.
[MESSAGE] Welcome to Gnome-Pie 0.6.2!
[MESSAGE] Loading Pies from "/home/kaslu/.config/gnome-pie/pies.conf".

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkAlignment:top-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkAlignment:bottom-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkAlignment:left-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkAlignment:right-padding is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkButton:xalign is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkMisc:xpad is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkMisc:ypad is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkButton:use-stock is deprecated and shouldn't be used anymore. It will be removed in a future version.

(gnome-pie:7288): GLib-GObject-WARNING **: The property GtkSettings:gtk-button-images is deprecated and shouldn't be used anymore. It will be removed in a future version.
[MESSAGE] Started happily...
lssimoes commented 9 years ago

Sorry for the bad english, I'm not a native speaker

Schneegans commented 9 years ago

Hi!

Thanks for the report. Could you please launch Gnome-Pie with gdb and post the backtrace? This would be helpful!

lssimoes commented 9 years ago

I'm not sure how I'm supposed to do that. Should I compile with debug flags enabled and run gdb gnome-pie? Could you give me further directions?

lssimoes commented 9 years ago

I'm compiling as specified on this PKGBUILD

Schneegans commented 9 years ago

It should be sufficient to run

gdb gnome-pie

Then press r, wait until Gnome-Pie has crashed and then press bt. This should print the backtrace!

lssimoes commented 9 years ago

Easier than I thought :sweat_smile:

Reading symbols from gnome-pie...(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/bin/gnome-pie 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".

(gnome-pie:28717): Gtk-WARNING **: Error setting gtk-xft-antialias in /home/kaslu/.config/gtk-3.0/settings.ini: Key file contains key 'gtk-xft-antialias' in group 'Settings' which has a value that cannot be interpreted.

(gnome-pie:28717): Gtk-WARNING **: Error setting gtk-xft-hinting in /home/kaslu/.config/gtk-3.0/settings.ini: Key file contains key 'gtk-xft-hinting' in group 'Settings' which has a value that cannot be interpreted.
[MESSAGE] Welcome to Gnome-Pie 0.6.3!
[MESSAGE] Loading Pies from "/home/kaslu/.config/gnome-pie/pies.conf".
[New Thread 0x7fffeb70e700 (LWP 28722)]
[New Thread 0x7fffebf0f700 (LWP 28721)]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff523180c in XGrabKey () from /usr/lib/libX11.so.6
(gdb) bt
#0  0x00007ffff523180c in XGrabKey () from /usr/lib/libX11.so.6
#1  0x00000000004276ca in gnome_pie_binding_manager_bind ()
#2  0x000000000043cc18 in gnome_pie_pie_manager_create_persistent_pie ()
#3  0x000000000043e5b1 in gnome_pie_pies_parse_pie ()
#4  0x000000000043e9a1 in gnome_pie_pies_load ()
#5  0x000000000043c0e4 in gnome_pie_pie_manager_init ()
#6  0x0000000000419d43 in gnome_pie_deamon_construct ()
#7  0x0000000000419e03 in gnome_pie_deamon_main ()
#8  0x00007ffff470c790 in __libc_start_main () from /usr/lib/libc.so.6
#9  0x00000000004194d9 in _start ()
(gdb) 
Schneegans commented 9 years ago

Okay. There are multiple calls to libX11 in Gnome-Pie, which obviously won't work with Wayland. I'll have to try to replace them with GTK methods. But I doubt that this will be easy.

I never used Wayland; is there a distro with which it's easy to get it up and running in a virtual machine? What are you using?

lssimoes commented 9 years ago

I'm using Arch Linux but I guess the newest Fedora works out of the box with Wayland (just changing the login option on GDM)

Schneegans commented 9 years ago

Ok. I'll look into it!

simonbcn commented 7 years ago

Same problem on Arch Linux too with Gnome Shell 3.22

pedrofleck commented 7 years ago

Same problem here. And Gnome 3.22 (and Fedora 25 that will be released next month) now uses Wayland by default.

RicardoEPRodrigues commented 7 years ago

I have the same problem on Ubuntu GNOME. It's a good distro to test this out. Comes with both X11 and Wayland and will become the default distro for Ubuntu. (Unity is dead)

I can test it out on my system if you want.

Schneegans commented 7 years ago

Yeah, I already had a look at this issue, but it seems to be a rather severe one. The segfault arises when Gnome-Pie tries to register the key bindings.

In Wayland apps are much more isolated - as far as I can tell it is impossible to intercept any input events. Therefore it will be impossible to support the deferred activation and the binding of Pies to mouse buttons. Furthermore I am not sure if I can capture the input somehow once a Pie is opened. Maybe a transparent fullscreen window? But then maybe docks which are set to auto-hide will disappear...

If anyone has more knowledge here, please feel free to discuss the issue!

Schneegans commented 7 years ago

I pushed several commits today which provide very basic Wayland support:

Hopefully this can be improved in future, however a lot of security decisions have been made during the development of Wayland which make applications like Gnome-Pie basically impossible.