GNOME Bugzilla – Bug 679132
fallback greeter: Esc key does not abort the password entering dialog
Last modified: 2014-05-14 19:05:42 UTC
Choosing a user from the list the window changes and the user is asked to enter the password. In GDM 3.0.x it was possible to use the ESC key to abort that and go back to the user list. Using Debian Sid/unstable with GDM 3.4.1 this does not work anymore.
This is Debian bug report #685674 [1]. [1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=685674
Please note that this was also not present in GDM 2.30.5-6squeeze4 and 2.30.5-10.
I believe this was fixed some time ago, please reopen if you continue to have problems.
(In reply to comment #3) > I believe this was fixed some time ago, please reopen if you continue to have > problems. Thanks for your answer. Unfortunately I am not able to find that fix. Also I do not understand why GDM was not kept as component. As far as I understand the Debian package is built from the GDM sources and not the gnome-shell sources. Also this problem started to surface when only upgrading the GDM package. Grepping through the gnome-shell source files [1] I only found bug 681537 [2], but I do not know how that applies to the GDM package. I am reopening this report until I can test a patch against GDM 3.4.1 to verify the fix and to have that patch backported to the version in Debian Wheezy/testing. Ray, it would be great if you could help me further to find that patch. [1] http://git.gnome.org/browse/gnome-shell/ [2] https://bugzilla.gnome.org/show_bug.cgi?id=681537
This is strange, git blame tells me that escape key support in the gnome-shell gdm greeter was supported from the very beginning (9f1da201). In fact, it works fine here. As far as the component is concerned, gnome-shell is the right choice because since 3.2 gdm uses gnome-shell for its UI.
(In reply to comment #5) > This is strange, git blame tells me that escape key support in the gnome-shell > gdm greeter was supported from the very beginning (9f1da201). Could you please tell me in what line I should look at. > In fact, it works fine here. That is great to hear! What version do you use? I am using 3.4.1. If you use a newer version that would correspond with Ray’s statement, that it has been fixed in between. > As far as the component is concerned, gnome-shell is the right choice because > since 3.2 gdm uses gnome-shell for its UI. Thank you for the explanation. Looking at the Debian package description [1] $ LANG=C aptitude show gdm3 Package: gdm3 New: yes State: installed Automatically installed: yes Version: 3.4.1-2 Priority: optional Section: gnome Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org> Architecture: i386 Uncompressed Size: 6024 k Depends: libaccountsservice0 (>= 0.6.8), libatk1.0-0 (>= 1.12.4), libattr1 (>= 1:2.4.46-8), libaudit0 (>= 1.7.13), libc6 (>= 2.4), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10.0), libcanberra-gtk3-0 (>= 0.25), libcanberra0 (>= 0.2), libdbus-1-3 (>= 1.0.2), libdbus-glib-1-2 (>= 0.88), libfontconfig1 (>= 2.9.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.30.0), libgtk-3-0 (>= 3.0.0), libpam0g (>= 0.99.7.1), libpango1.0-0 (>= 1.14.0), libselinux1 (>= 1.32), libupower-glib1 (>= 0.9.0), libwrap0 (>= 7.6-4~), libx11-6, libxau6, libxdmcp6, libxklavier16 (>= 5.0), libxrandr2 (>= 2:1.2.99.3), dconf-gsettings-backend (>= 0.12.1-2), debconf (>= 0.5) | debconf-2.0, gir1.2-freedesktop, gir1.2-glib-2.0, adduser, libpam-modules (>= 0.72-1), libpam-runtime (>= 0.76-13.1), gnome-session-bin (>= 3.2), gnome-settings-daemon (>= 3.2), metacity (>= 1:2.34.2), policykit-1-gnome, upower, gnome-session | x-session-manager | x-window-manager | x-terminal-emulator, lsb-base (>= 3.2-14), librsvg2-common, accountsservice (>= 0.6.12), gsettings-desktop-schemas, libglib2.0-bin (>= 2.26), dconf-tools (>= 0.12.1-2), x11-common (>= 1:7.6+11), x11-xserver-utils PreDepends: dpkg (>= 1.15.7.2) Recommends: zenity, xserver-xephyr, x11-xkb-utils, xserver-xorg, at-spi, gnome-icon-theme, desktop-base (>= 6) Suggests: libpam-gnome-keyring, gnome-mag, gnome-orca, gok, gnome-shell Conflicts: gdm Breaks: gnome-control-center (< 3.0), gnome-orca (< 2.30.0-2), gnome-panel (< 3.0), gnome-screensaver (< 2.17.7), gnome-shell (< 3.2) Provides: x-display-manager Description: Next generation GNOME Display Manager GDM provides the equivalent of a "login:" prompt for X displays: it asks for a login and starts X sessions. It provides all the functionality of XDM, including XDMCP support for managing remote displays, and extends it with the ability to start X servers on demand. The greeter is written using the GNOME libraries and hence looks like a GNOME application - even to the extent of supporting themes! This package contains the next generation GDM, which was developed using the technologies on which GNOME 3 is based. gnome-shell is “only” recommended (but is installed on my system anyway). So I guess some library from gnome-shell is used by GDM 3. [1] http://packages.debian.org/sid/gdm3
(In reply to comment #6) > (In reply to comment #5) > > This is strange, git blame tells me that escape key support in the gnome-shell > > gdm greeter was supported from the very beginning (9f1da201). > > Could you please tell me in what line I should look at. On 3.4.1, it's line 1024 of js/gdm/loginDialog.js in the gnome-shell tarball. > > In fact, it works fine here. > > That is great to hear! What version do you use? I am using 3.4.1. If you use a > newer version that would correspond with Ray’s statement, that it has been > fixed in between. TBH, I tested using master, but I don't expect to see differences in 3.4.1 (or 3.2, fwiw) > > As far as the component is concerned, gnome-shell is the right choice because > > since 3.2 gdm uses gnome-shell for its UI. > > Thank you for the explanation. Looking at the Debian package description [1] > [...] > > gnome-shell is “only” recommended (but is installed on my system anyway). So I > guess some library from gnome-shell is used by GDM 3. > > [1] http://packages.debian.org/sid/gdm3 That description is not totally incorrect, but it's definitely incomplete. GDM includes a gtk based UI, but it's used only for fallback mode. When the graphic card is new enough, instead of spawning the simple-greeter (gdm's builtin UI), gdm will launch gnome-shell in gdm mode. There is no gnome-shell library, it's a just a different process launched inside the GDM session.
(In reply to comment #7) > (In reply to comment #6) > > (In reply to comment #5) > > > This is strange, git blame tells me that escape key support in the gnome-shell > > > gdm greeter was supported from the very beginning (9f1da201). > > > > Could you please tell me in what line I should look at. > > On 3.4.1, it's line 1024 of js/gdm/loginDialog.js in the gnome-shell tarball. Thanks. > > > In fact, it works fine here. > > > > That is great to hear! What version do you use? I am using 3.4.1. If you use a > > newer version that would correspond with Ray’s statement, that it has been > > fixed in between. > > TBH, I tested using master, but I don't expect to see differences in 3.4.1 (or > 3.2, fwiw) But only with gnome-shell in GDM mode. Interesting. > > > As far as the component is concerned, gnome-shell is the right choice because > > > since 3.2 gdm uses gnome-shell for its UI. > > > > Thank you for the explanation. Looking at the Debian package description [1] > > [...] > > > > gnome-shell is “only” recommended (but is installed on my system anyway). So I > > guess some library from gnome-shell is used by GDM 3. > > > > [1] http://packages.debian.org/sid/gdm3 > > That description is not totally incorrect, but it's definitely incomplete. GDM > includes a gtk based UI, but it's used only for fallback mode. When the graphic > card is new enough, instead of spawning the simple-greeter (gdm's builtin UI), > gdm will launch gnome-shell in gdm mode. > There is no gnome-shell library, it's a just a different process launched > inside the GDM session. Very interesting. I think on Debian GDM is always spawning the simple greeter. So this problem seems to be related with the simple greeter. Any hints on how to start GDM in gnome-shell mode? Or could you test fallback mode or tell me where to look there? That would be awesome.
Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90). To force gdm in gnome-shell mode, you must ensure that the dconf key /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user. This is the upstream default but it could be patched. Additionally, you may need to change the IsRunnableHelper in /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force fallback mode)
(In reply to comment #9) > Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90). So should the component be changed back to gdm? Any hint where to look in GDM’s fallback greeter? > To force gdm in gnome-shell mode, you must ensure that the dconf key > /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user. > This is the upstream default but it could be patched. > Additionally, you may need to change the IsRunnableHelper in > /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force > fallback mode) I will try that this week. But it will unfortunately will not fix that bug for others using the fallback greeter. :/
(In reply to comment #10) > (In reply to comment #9) > > Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90). > > So should the component be changed back to gdm? Yes. > Any hint where to look in GDM’s fallback greeter? I don't think it's a debugging thing at this point. I just don't think this was ever implemented in the fallback greeter. > > To force gdm in gnome-shell mode, you must ensure that the dconf key > > /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user. > > This is the upstream default but it could be patched. > > Additionally, you may need to change the IsRunnableHelper in > > /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force > > fallback mode) > > I will try that this week. But it will unfortunately will not fix that bug for > others using the fallback greeter. :/ Do you get a full GNOME Shell session, or are you using gnome-panel?
(In reply to comment #11) > (In reply to comment #10) > > (In reply to comment #9) > > > Uh oh! Indeed, the fallback greeter has this bug (tested gdm 3.5.90). > > > > So should the component be changed back to gdm? > > Yes. Thanks for doing that! > > Any hint where to look in GDM’s fallback greeter? > > I don't think it's a debugging thing at this point. I just don't think this was > ever implemented in the fallback greeter. I do not know the code base. It worked with GDM 2.30.5 but I do not know if the fallback greeter and the “old” GDM share any code. > > > To force gdm in gnome-shell mode, you must ensure that the dconf key > > > /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user. > > > This is the upstream default but it could be patched. > > > Additionally, you may need to change the IsRunnableHelper in > > > /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force > > > fallback mode) > > > > I will try that this week. But it will unfortunately will not fix that bug for > > others using the fallback greeter. :/ > > Do you get a full GNOME Shell session, or are you using gnome-panel? I am using GNOME Classic by choice but GNOME Shell is supported.
(In reply to comment #9) […] > To force gdm in gnome-shell mode, you must ensure that the dconf key > /org/gnome/desktop/session/session-name is set to 'gdm-shell' for the gdm user. > This is the upstream default but it could be patched. $ sudo -u Debian-gdm dconf read /org/gnome/desktop/session/session-name $ echo $? 0 > Additionally, you may need to change the IsRunnableHelper in > /usr/share/gnome-session/gdm-shell.session to /bin/true (or /bin/false to force > fallback mode) The desktop file in Debian runs `/usr/lib/gnome-session/gnome-session-check-accelerated`. $ /usr/lib/gnome-session/gnome-session-check-accelerated $ echo $? 0
you have to set the environment variable DCONF_PROFILE=gdm to be able to read gdm's configuration. Odd that escape doesn't work in the fallback greeter. I'm pretty sure it used to. It may have broken when landing multi-stack support.
(In reply to comment #14) > you have to set the environment variable DCONF_PROFILE=gdm to be able to read > gdm's configuration. That breaks `dconf` for me. ;-) See bug 683569. > Odd that escape doesn't work in the fallback greeter. I'm pretty sure it used > to. It may have broken when landing multi-stack support. Can you point me to some file responsible for processing key presses?
Another interesting thing is, that when choosing »Other« to get to the dialog to enter a username manually, the ESC works for *both* dialogs for entering the username and the one for entering the password.
(In reply to comment #15) > (In reply to comment #14) > > you have to set the environment variable DCONF_PROFILE=gdm to be able to read > > gdm's configuration. > > That breaks `dconf` for me. ;-) See bug 683569. > > > Odd that escape doesn't work in the fallback greeter. I'm pretty sure it used > > to. It may have broken when landing multi-stack support. > > Can you point me to some file responsible for processing key presses? Grepping the `gnome-3-4` branch, `GTK_RESPONSE_CANCEL` is passed to `gtk_dialog_add_buttons()`. gui/simple-chooser/gdm-host-chooser-dialog.c- gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), d gui/simple-chooser/gdm-host-chooser-dialog.c- gtk_container_set_border_width (GTK_CONTAINER (dialog->priv->chooser_widget), 5); gui/simple-chooser/gdm-host-chooser-dialog.c- gui/simple-chooser/gdm-host-chooser-dialog.c: gtk_dialog_add_buttons (GTK_DIALOG (dialog), gui/simple-chooser/gdm-host-chooser-dialog.c- GTK_STOCK_REFRESH, GTK_RESPONSE_APPLY, gui/simple-chooser/gdm-host-chooser-dialog.c- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, gui/simple-chooser/gdm-host-chooser-dialog.c- GTK_STOCK_CONNECT, GTK_RESPONSE_OK, -- gui/simple-greeter/gdm-user-chooser-dialog.c- gui/simple-greeter/gdm-user-chooser-dialog.c- gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (dialog))), d gui/simple-greeter/gdm-user-chooser-dialog.c- gui/simple-greeter/gdm-user-chooser-dialog.c: gtk_dialog_add_buttons (GTK_DIALOG (dialog), gui/simple-greeter/gdm-user-chooser-dialog.c- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, gui/simple-greeter/gdm-user-chooser-dialog.c- GTK_STOCK_OK, GTK_RESPONSE_OK, gui/simple-greeter/gdm-user-chooser-dialog.c- NULL); I have not figured out how everything works and the password entering dialog might be done by some extension. If yes, maybe that is not passing the Esc key press down? [1] http://developer.gnome.org/gtk/2.24/GtkDialog.html#gtk-dialog-add-buttons
I guess that his bug can be closed now that the fallback greeter is gone
Indeed, this bug is no longer relevant since bug 688665