Hi,
Pierre Neidhardt <mail@ambrevar.xyz> skribis:
Toggle quote (10 lines)
> My config.scm installs EXWM + StumpWM, but not GNOME.
> Before the last core-update, GDM would only suggest the 2 window
> managers.
>
> After a recent Guix pull followed by a `guix system reconfigure', GDM
> also suggests GNOME. If I select it, it fails to log in, which I
> suppose is expected since it's not installed.
>
> I believe the GNOME entry in GDM should only appear if GNOME is installed.
I investigated this issue.
‘collect_sessions’ in ‘gdm-sessions.c’ does this:
Toggle snippet (29 lines)
const char *xorg_search_dirs[] = {
"/etc/X11/sessions/",
DMCONFDIR "/Sessions/",
DATADIR "/gdm/BuiltInSessions/",
DATADIR "/xsessions/",
NULL
};
xorg_search_array = g_array_new (TRUE, TRUE, sizeof (char *));
const gchar * const *system_data_dirs = g_get_system_data_dirs ();
for (i = 0; system_data_dirs[i]; i++) {
session_dir = g_build_filename (system_data_dirs[i], "xsessions", NULL);
g_array_append_val (xorg_search_array, session_dir);
}
g_array_append_vals (xorg_search_array, xorg_search_dirs, G_N_ELEMENTS (xorg_search_dirs));
if (gdm_available_sessions_map == NULL) {
gdm_available_sessions_map = g_hash_table_new_full (g_str_hash, g_str_equal,
g_free, (GDestroyNotify)gdm_session_file_free);
}
for (i = 0; i < xorg_search_array->len; i++) {
collect_sessions_from_directory (g_array_index (xorg_search_array, gchar*, i));
}
‘gnome-desktop.desktop’, which contains the GNOME entry, is picked up
from $(guix build gnome-session)/share/xsessions, which happens to be
one of the ‘system_data_dirs’ elements (via $XDG_DATA_DIR).
So I thought that setting:
system_data_dirs = { NULL };
would solve the issue. Alas, it seems that when we do that, either the
array remains empty or somehow ‘collect_sessions_from_directory’ is not
called.
I can’t attach GDM though, or I don’t know what to attach it to…
Ideas anyone?
Thanks,
Ludo’.