Compare commits
No commits in common. 'c8' and 'c9' have entirely different histories.
@ -1 +1 @@
|
|||||||
SOURCES/gnome-session-3.28.1.tar.xz
|
SOURCES/gnome-session-40.1.1.tar.xz
|
||||||
|
@ -1 +1 @@
|
|||||||
3233201cc82fa736997ddee7e54cb7f61c9d0074 SOURCES/gnome-session-3.28.1.tar.xz
|
497bcbe97f8d665618438d352c555373393f89d7 SOURCES/gnome-session-40.1.1.tar.xz
|
||||||
|
@ -1,63 +0,0 @@
|
|||||||
From a42ccfa0e8be2e658d081c3637ff0f43e2b38d3c Mon Sep 17 00:00:00 2001
|
|
||||||
From: Takao Fujiwara <tfujiwar@redhat.com>
|
|
||||||
Date: Tue, 22 Oct 2019 20:44:04 +0900
|
|
||||||
Subject: [PATCH] gnome-session: avoid setting LC_ unless LANG and region
|
|
||||||
disagree
|
|
||||||
|
|
||||||
At the moment, gnome-session explicitly sets the various LC_ variables
|
|
||||||
to the user configured region.
|
|
||||||
|
|
||||||
That's unnecessary, though. If the LC_ variables are unset,
|
|
||||||
applications know to use LANG. Furthermore, setting the LC_ variables
|
|
||||||
makes it so you can't override them with LANG anymore.
|
|
||||||
|
|
||||||
This commit makes sure the LC_ variables only get set when absolutely
|
|
||||||
necesary. That is, when they are different than LANG.
|
|
||||||
|
|
||||||
https://gitlab.gnome.org/GNOME/gnome-session/issues/37
|
|
||||||
---
|
|
||||||
gnome-session/gnome-session.in | 14 +++++++++-----
|
|
||||||
1 file changed, 9 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
|
|
||||||
index 7d967d34..90566f1d 100755
|
|
||||||
--- a/gnome-session/gnome-session.in
|
|
||||||
+++ b/gnome-session/gnome-session.in
|
|
||||||
@@ -1,25 +1,29 @@
|
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
|
|
||||||
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
|
|
||||||
[ -n "$SHELL" ]; then
|
|
||||||
if [ "$1" != '-l' ]; then
|
|
||||||
exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
|
|
||||||
else
|
|
||||||
shift
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
SETTING=$(gsettings get org.gnome.system.locale region)
|
|
||||||
REGION=${SETTING#\'}
|
|
||||||
REGION=${REGION%\'}
|
|
||||||
|
|
||||||
if [ -n "$REGION" ]; then
|
|
||||||
- export LC_TIME=$REGION
|
|
||||||
- export LC_NUMERIC=$REGION
|
|
||||||
- export LC_MONETARY=$REGION
|
|
||||||
- export LC_MEASUREMENT=$REGION
|
|
||||||
- export LC_PAPER=$REGION
|
|
||||||
+ unset LC_TIME LC_NUMERIC LC_MONETARY LC_MEASUREMENT LC_PAPER
|
|
||||||
+
|
|
||||||
+ if [ "$LANG" != "$REGION" ] ; then
|
|
||||||
+ export LC_TIME=$REGION
|
|
||||||
+ export LC_NUMERIC=$REGION
|
|
||||||
+ export LC_MONETARY=$REGION
|
|
||||||
+ export LC_MEASUREMENT=$REGION
|
|
||||||
+ export LC_PAPER=$REGION
|
|
||||||
+ fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
exec @libexecdir@/gnome-session-binary "$@"
|
|
||||||
--
|
|
||||||
2.41.0.rc2
|
|
||||||
|
|
@ -0,0 +1,126 @@
|
|||||||
|
From 51949dd2b944604742406a7464eb945cb5b610e9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Benjamin Berg <bberg@redhat.com>
|
||||||
|
Date: Mon, 15 Nov 2021 14:56:14 +0100
|
||||||
|
Subject: [PATCH 1/2] main: Lower fallback warning when running in GDM
|
||||||
|
|
||||||
|
It is currently expected for the fallback to happen. So hide the errors,
|
||||||
|
but still log a single message to inform users about it.
|
||||||
|
---
|
||||||
|
gnome-session/main.c | 11 +++++++----
|
||||||
|
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gnome-session/main.c b/gnome-session/main.c
|
||||||
|
index 443bc045..45ec6597 100644
|
||||||
|
--- a/gnome-session/main.c
|
||||||
|
+++ b/gnome-session/main.c
|
||||||
|
@@ -512,100 +512,103 @@ main (int argc, char **argv)
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR");
|
||||||
|
|
||||||
|
if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') {
|
||||||
|
env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0);
|
||||||
|
gsm_util_set_autostart_dirs (env_override_autostart_dirs_v);
|
||||||
|
} else {
|
||||||
|
gsm_util_set_autostart_dirs (override_autostart_dirs);
|
||||||
|
|
||||||
|
/* Export the override autostart dirs parameter to the environment
|
||||||
|
* in case we are running on systemd. */
|
||||||
|
if (override_autostart_dirs) {
|
||||||
|
g_autofree char *autostart_dirs = NULL;
|
||||||
|
autostart_dirs = g_strjoinv (":", override_autostart_dirs);
|
||||||
|
g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gsm_util_export_activation_environment (&error);
|
||||||
|
if (error) {
|
||||||
|
g_warning ("Failed to upload environment to DBus: %s", error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
}
|
||||||
|
|
||||||
|
session_name = opt_session_name;
|
||||||
|
|
||||||
|
#ifdef HAVE_SYSTEMD
|
||||||
|
gsm_util_export_user_environment (&error);
|
||||||
|
- if (error) {
|
||||||
|
+ if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||||
|
g_warning ("Failed to upload environment to systemd: %s", error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_SYSTEMD_SESSION
|
||||||
|
if (use_systemd && !systemd_service) {
|
||||||
|
g_autofree gchar *gnome_session_target;
|
||||||
|
const gchar *session_type;
|
||||||
|
|
||||||
|
session_type = g_getenv ("XDG_SESSION_TYPE");
|
||||||
|
|
||||||
|
/* We really need to resolve the session name at this point,
|
||||||
|
* which requires talking to GSettings internally. */
|
||||||
|
if (IS_STRING_EMPTY (session_name)) {
|
||||||
|
session_name = _gsm_manager_get_default_session (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reset all failed units; we are going to start a lof ot things and
|
||||||
|
* really do not want to run into errors because units have failed
|
||||||
|
* in a previous session
|
||||||
|
*/
|
||||||
|
gsm_util_systemd_reset_failed (&error);
|
||||||
|
- if (error) {
|
||||||
|
+ if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||||
|
g_warning ("Failed to reset failed state of units: %s", error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We don't escape the name (i.e. we leave any '-' intact). */
|
||||||
|
gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name);
|
||||||
|
if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) {
|
||||||
|
/* We started the unit, open fifo and sleep forever. */
|
||||||
|
systemd_leader_run ();
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We could not start the unit, fall back. */
|
||||||
|
- g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
|
||||||
|
- g_clear_error (&error);
|
||||||
|
+ if (g_getenv ("RUNNING_UNDER_GDM"))
|
||||||
|
+ g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions.");
|
||||||
|
+ else
|
||||||
|
+ g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
|
||||||
|
+ g_clear_error (&error);
|
||||||
|
}
|
||||||
|
#endif /* ENABLE_SYSTEMD_SESSION */
|
||||||
|
|
||||||
|
{
|
||||||
|
gchar *ibus_path;
|
||||||
|
|
||||||
|
ibus_path = g_find_program_in_path("ibus-daemon");
|
||||||
|
|
||||||
|
if (ibus_path) {
|
||||||
|
const gchar *p;
|
||||||
|
p = g_getenv ("QT_IM_MODULE");
|
||||||
|
if (!p || !*p)
|
||||||
|
p = "ibus";
|
||||||
|
gsm_util_setenv ("QT_IM_MODULE", p);
|
||||||
|
p = g_getenv ("XMODIFIERS");
|
||||||
|
if (!p || !*p)
|
||||||
|
p = "@im=ibus";
|
||||||
|
gsm_util_setenv ("XMODIFIERS", p);
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free (ibus_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We want to use the GNOME menus which has the designed categories.
|
||||||
|
*/
|
||||||
|
gsm_util_setenv ("XDG_MENU_PREFIX", "gnome-");
|
||||||
|
|
||||||
|
/* Talk to logind before acquiring a name, since it does synchronous
|
||||||
|
* calls at initialization time that invoke a main loop and if we
|
||||||
|
* already owned a name, then we would service too early during
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -1,107 +0,0 @@
|
|||||||
From 7cdf11b1b4b04f8cd366316f6c50a9bd0b4e67d3 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ray Strode <rstrode@redhat.com>
|
|
||||||
Date: Wed, 6 May 2020 13:45:50 -0400
|
|
||||||
Subject: [PATCH] main: only log check-accelerated errors when debugging
|
|
||||||
enabled
|
|
||||||
|
|
||||||
The journal currently gets spammed with messages like:
|
|
||||||
|
|
||||||
gnome-session: gnome-session-check-accelerated: GL Helper exited with code 512
|
|
||||||
gnome-session: libEGL warning: DRI2: failed to authenticate
|
|
||||||
gnome-session: gnome-session-check-accelerated: GLES Helper exited with code 512
|
|
||||||
|
|
||||||
if a the machine lacks accelerated graphics. But lacking accelerated
|
|
||||||
graphics isn't actually an error (many servers do).
|
|
||||||
|
|
||||||
This commit changes the messages to only show when debugging is enabled.
|
|
||||||
---
|
|
||||||
gnome-session/main.c | 8 +++++++-
|
|
||||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/gnome-session/main.c b/gnome-session/main.c
|
|
||||||
index b1ac3850..0e75eecf 100644
|
|
||||||
--- a/gnome-session/main.c
|
|
||||||
+++ b/gnome-session/main.c
|
|
||||||
@@ -193,72 +193,78 @@ require_dbus_session (int argc,
|
|
||||||
g_return_val_if_fail (!g_str_has_prefix (argv[0], "dbus-launch"),
|
|
||||||
TRUE);
|
|
||||||
|
|
||||||
/* +2 for our new arguments, +1 for NULL */
|
|
||||||
new_argv = g_malloc ((argc + 3) * sizeof (*argv));
|
|
||||||
|
|
||||||
new_argv[0] = "dbus-launch";
|
|
||||||
new_argv[1] = "--exit-with-session";
|
|
||||||
for (i = 0; i < argc; i++) {
|
|
||||||
new_argv[i + 2] = argv[i];
|
|
||||||
}
|
|
||||||
new_argv[i + 2] = NULL;
|
|
||||||
|
|
||||||
if (!execvp ("dbus-launch", new_argv)) {
|
|
||||||
g_set_error (error,
|
|
||||||
G_SPAWN_ERROR,
|
|
||||||
G_SPAWN_ERROR_FAILED,
|
|
||||||
"No session bus and could not exec dbus-launch: %s",
|
|
||||||
g_strerror (errno));
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Should not be reached */
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
check_gl (GError **error)
|
|
||||||
{
|
|
||||||
int status;
|
|
||||||
+ g_autofree char *error_output = NULL;
|
|
||||||
+
|
|
||||||
char *argv[] = { LIBEXECDIR "/gnome-session-check-accelerated", NULL };
|
|
||||||
|
|
||||||
if (getenv ("DISPLAY") == NULL) {
|
|
||||||
/* Not connected to X11, someone else will take care of checking GL */
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, NULL,
|
|
||||||
+ if (!g_spawn_sync (NULL, (char **) argv, NULL, 0, NULL, NULL, &gl_renderer, &error_output,
|
|
||||||
&status, error)) {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (error_output != NULL) {
|
|
||||||
+ g_debug ("%s", error_output);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return g_spawn_check_exit_status (status, error);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
initialize_gio (void)
|
|
||||||
{
|
|
||||||
char *disable_fuse = NULL;
|
|
||||||
char *use_vfs = NULL;
|
|
||||||
|
|
||||||
disable_fuse = g_strdup (g_getenv ("GVFS_DISABLE_FUSE"));
|
|
||||||
use_vfs = g_strdup (g_getenv ("GIO_USE_VFS"));
|
|
||||||
|
|
||||||
g_setenv ("GVFS_DISABLE_FUSE", "1", TRUE);
|
|
||||||
g_setenv ("GIO_USE_VFS", "local", TRUE);
|
|
||||||
g_vfs_get_default ();
|
|
||||||
|
|
||||||
if (use_vfs) {
|
|
||||||
g_setenv ("GIO_USE_VFS", use_vfs, TRUE);
|
|
||||||
g_free (use_vfs);
|
|
||||||
} else {
|
|
||||||
g_unsetenv ("GIO_USE_VFS");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (disable_fuse) {
|
|
||||||
g_setenv ("GVFS_DISABLE_FUSE", disable_fuse, TRUE);
|
|
||||||
g_free (disable_fuse);
|
|
||||||
} else {
|
|
||||||
g_unsetenv ("GVFS_DISABLE_FUSE");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.33.1
|
|
||||||
|
|
@ -1,124 +0,0 @@
|
|||||||
From 06271eea2a12970fbe73b3d3f2c6ae5d79339379 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Ray Strode <rstrode@redhat.com>
|
|
||||||
Date: Mon, 29 Jun 2020 15:15:48 -0400
|
|
||||||
Subject: [PATCH] session-selector: show cursor explicitly
|
|
||||||
|
|
||||||
Normally the window manager would show the cursor at start up, but
|
|
||||||
the session selector runs when no window manager is present.
|
|
||||||
|
|
||||||
This commit makes the session selector explicitly set a cursor, so
|
|
||||||
users can interact with the dialog using the mouse.
|
|
||||||
---
|
|
||||||
tools/gnome-session-selector.c | 5 +++++
|
|
||||||
1 file changed, 5 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/tools/gnome-session-selector.c b/tools/gnome-session-selector.c
|
|
||||||
index 71892c43..9225639e 100644
|
|
||||||
--- a/tools/gnome-session-selector.c
|
|
||||||
+++ b/tools/gnome-session-selector.c
|
|
||||||
@@ -594,60 +594,61 @@ auto_save_next_session_if_needed (void)
|
|
||||||
static int
|
|
||||||
compare_sessions (GtkTreeModel *model,
|
|
||||||
GtkTreeIter *a,
|
|
||||||
GtkTreeIter *b,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
char *name_a, *name_b;
|
|
||||||
int result;
|
|
||||||
|
|
||||||
gtk_tree_model_get (model, a, 0, &name_a, -1);
|
|
||||||
gtk_tree_model_get (model, b, 0, &name_b, -1);
|
|
||||||
|
|
||||||
result = g_utf8_collate (name_a, name_b);
|
|
||||||
|
|
||||||
g_free (name_a);
|
|
||||||
g_free (name_b);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
on_map (GtkWidget *widget,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
gdk_window_focus (gtk_widget_get_window (widget), GDK_CURRENT_TIME);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char *argv[])
|
|
||||||
{
|
|
||||||
+ GdkCursor *cursor;
|
|
||||||
GtkWidget *window;
|
|
||||||
GtkWidget *widget;
|
|
||||||
GtkCellRenderer *cell;
|
|
||||||
GtkTreeViewColumn *column;
|
|
||||||
GtkTreeSelection *selection;
|
|
||||||
GError *error;
|
|
||||||
|
|
||||||
if (getenv ("SESSION_MANAGER") != NULL)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
gtk_init (&argc, &argv);
|
|
||||||
if (argc > 1) {
|
|
||||||
g_print ("create and select session\n");
|
|
||||||
if (!create_and_select_session (argv[1]))
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
builder = gtk_builder_new ();
|
|
||||||
gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE);
|
|
||||||
|
|
||||||
error = NULL;
|
|
||||||
if (!gtk_builder_add_from_file (builder, GTKBUILDER_DIR "/" "session-selector.ui", &error)) {
|
|
||||||
g_warning ("Could not load file 'session-selector.ui': %s", error->message);
|
|
||||||
exit (1);
|
|
||||||
}
|
|
||||||
|
|
||||||
window = (GtkWidget *) gtk_builder_get_object (builder, "main-window");
|
|
||||||
|
|
||||||
@@ -663,36 +664,40 @@ main (int argc, char *argv[])
|
|
||||||
session_list = (GtkWidget *) gtk_builder_get_object (builder, "session-list");
|
|
||||||
|
|
||||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (session_list));
|
|
||||||
gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
|
|
||||||
|
|
||||||
populate_session_list (session_list);
|
|
||||||
|
|
||||||
cell = gtk_cell_renderer_text_new ();
|
|
||||||
g_signal_connect (cell, "edited", G_CALLBACK (on_row_edited), NULL);
|
|
||||||
|
|
||||||
column = gtk_tree_view_column_new_with_attributes ("", cell, "text", 0, NULL);
|
|
||||||
gtk_tree_view_append_column (GTK_TREE_VIEW (session_list), GTK_TREE_VIEW_COLUMN (column));
|
|
||||||
|
|
||||||
g_signal_connect (session_list, "row-activated", G_CALLBACK (on_row_activated), NULL);
|
|
||||||
|
|
||||||
g_signal_connect (selection, "changed",
|
|
||||||
G_CALLBACK (on_selection_changed), NULL);
|
|
||||||
|
|
||||||
widget = (GtkWidget *) gtk_builder_get_object (builder, "new-session");
|
|
||||||
g_signal_connect (widget, "clicked", G_CALLBACK (on_new_session_clicked), NULL);
|
|
||||||
widget = (GtkWidget *) gtk_builder_get_object (builder, "remove-session");
|
|
||||||
g_signal_connect (widget, "clicked", G_CALLBACK (on_remove_session_clicked), NULL);
|
|
||||||
widget = (GtkWidget *) gtk_builder_get_object (builder, "rename-session");
|
|
||||||
g_signal_connect (widget, "clicked", G_CALLBACK (on_rename_session_clicked), NULL);
|
|
||||||
widget = (GtkWidget *) gtk_builder_get_object (builder, "continue-button");
|
|
||||||
g_signal_connect (widget, "clicked", G_CALLBACK (on_continue_clicked), NULL);
|
|
||||||
|
|
||||||
g_signal_connect (window, "map", G_CALLBACK (on_map), NULL);
|
|
||||||
gtk_widget_show (window);
|
|
||||||
|
|
||||||
+ cursor = gdk_cursor_new_from_name (gtk_widget_get_display (window),
|
|
||||||
+ "default");
|
|
||||||
+ gdk_window_set_cursor (gtk_widget_get_window (window), cursor);
|
|
||||||
+
|
|
||||||
gtk_main ();
|
|
||||||
|
|
||||||
auto_save_next_session_if_needed ();
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.26.0
|
|
||||||
|
|
@ -0,0 +1,115 @@
|
|||||||
|
From d39c345191f83ba37d24c07a831c9bb91cdde079 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Benjamin Berg <bberg@redhat.com>
|
||||||
|
Date: Sun, 17 Apr 2022 15:58:13 +0200
|
||||||
|
Subject: [PATCH 2/2] main: Also clear error when running under GDM
|
||||||
|
|
||||||
|
Commit 0349a77ad875 ("main: Lower fallback warning when running in GDM")
|
||||||
|
removed error logging when running under GDM. However, the error was not
|
||||||
|
cleared afterwards, leaking it to later operations and causing other
|
||||||
|
issues.
|
||||||
|
|
||||||
|
Closes: #105
|
||||||
|
---
|
||||||
|
gnome-session/main.c | 10 ++++------
|
||||||
|
1 file changed, 4 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/gnome-session/main.c b/gnome-session/main.c
|
||||||
|
index 45ec6597..6a683ae0 100644
|
||||||
|
--- a/gnome-session/main.c
|
||||||
|
+++ b/gnome-session/main.c
|
||||||
|
@@ -512,88 +512,86 @@ main (int argc, char **argv)
|
||||||
|
exit (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
env_override_autostart_dirs = g_getenv ("GNOME_SESSION_AUTOSTART_DIR");
|
||||||
|
|
||||||
|
if (env_override_autostart_dirs != NULL && env_override_autostart_dirs[0] != '\0') {
|
||||||
|
env_override_autostart_dirs_v = g_strsplit (env_override_autostart_dirs, ":", 0);
|
||||||
|
gsm_util_set_autostart_dirs (env_override_autostart_dirs_v);
|
||||||
|
} else {
|
||||||
|
gsm_util_set_autostart_dirs (override_autostart_dirs);
|
||||||
|
|
||||||
|
/* Export the override autostart dirs parameter to the environment
|
||||||
|
* in case we are running on systemd. */
|
||||||
|
if (override_autostart_dirs) {
|
||||||
|
g_autofree char *autostart_dirs = NULL;
|
||||||
|
autostart_dirs = g_strjoinv (":", override_autostart_dirs);
|
||||||
|
g_setenv ("GNOME_SESSION_AUTOSTART_DIR", autostart_dirs, TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gsm_util_export_activation_environment (&error);
|
||||||
|
if (error) {
|
||||||
|
g_warning ("Failed to upload environment to DBus: %s", error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
}
|
||||||
|
|
||||||
|
session_name = opt_session_name;
|
||||||
|
|
||||||
|
#ifdef HAVE_SYSTEMD
|
||||||
|
gsm_util_export_user_environment (&error);
|
||||||
|
- if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||||
|
+ if (error && !g_getenv ("RUNNING_UNDER_GDM"))
|
||||||
|
g_warning ("Failed to upload environment to systemd: %s", error->message);
|
||||||
|
- g_clear_error (&error);
|
||||||
|
- }
|
||||||
|
+ g_clear_error (&error);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ENABLE_SYSTEMD_SESSION
|
||||||
|
if (use_systemd && !systemd_service) {
|
||||||
|
g_autofree gchar *gnome_session_target;
|
||||||
|
const gchar *session_type;
|
||||||
|
|
||||||
|
session_type = g_getenv ("XDG_SESSION_TYPE");
|
||||||
|
|
||||||
|
/* We really need to resolve the session name at this point,
|
||||||
|
* which requires talking to GSettings internally. */
|
||||||
|
if (IS_STRING_EMPTY (session_name)) {
|
||||||
|
session_name = _gsm_manager_get_default_session (NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Reset all failed units; we are going to start a lof ot things and
|
||||||
|
* really do not want to run into errors because units have failed
|
||||||
|
* in a previous session
|
||||||
|
*/
|
||||||
|
gsm_util_systemd_reset_failed (&error);
|
||||||
|
- if (error && !g_getenv ("RUNNING_UNDER_GDM")) {
|
||||||
|
+ if (error && !g_getenv ("RUNNING_UNDER_GDM"))
|
||||||
|
g_warning ("Failed to reset failed state of units: %s", error->message);
|
||||||
|
- g_clear_error (&error);
|
||||||
|
- }
|
||||||
|
+ g_clear_error (&error);
|
||||||
|
|
||||||
|
/* We don't escape the name (i.e. we leave any '-' intact). */
|
||||||
|
gnome_session_target = g_strdup_printf ("gnome-session-%s@%s.target", session_type, session_name);
|
||||||
|
if (gsm_util_start_systemd_unit (gnome_session_target, "fail", &error)) {
|
||||||
|
/* We started the unit, open fifo and sleep forever. */
|
||||||
|
systemd_leader_run ();
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* We could not start the unit, fall back. */
|
||||||
|
if (g_getenv ("RUNNING_UNDER_GDM"))
|
||||||
|
g_message ("Falling back to non-systemd startup procedure. This is expected to happen for GDM sessions.");
|
||||||
|
else
|
||||||
|
g_warning ("Falling back to non-systemd startup procedure due to error: %s", error->message);
|
||||||
|
g_clear_error (&error);
|
||||||
|
}
|
||||||
|
#endif /* ENABLE_SYSTEMD_SESSION */
|
||||||
|
|
||||||
|
{
|
||||||
|
gchar *ibus_path;
|
||||||
|
|
||||||
|
ibus_path = g_find_program_in_path("ibus-daemon");
|
||||||
|
|
||||||
|
if (ibus_path) {
|
||||||
|
const gchar *p;
|
||||||
|
p = g_getenv ("QT_IM_MODULE");
|
||||||
|
if (!p || !*p)
|
||||||
|
p = "ibus";
|
||||||
|
gsm_util_setenv ("QT_IM_MODULE", p);
|
||||||
|
p = g_getenv ("XMODIFIERS");
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
Section "ServerFlags"
|
|
||||||
Option "DontVTSwitch" "on"
|
|
||||||
EndSection
|
|
@ -1,38 +0,0 @@
|
|||||||
[org/gnome/desktop/a11y/applications]
|
|
||||||
screen-keyboard-enabled=true
|
|
||||||
|
|
||||||
[org/gnome/desktop/interface]
|
|
||||||
gtk-im-module='ibus'
|
|
||||||
toolkit-accessibility=true
|
|
||||||
|
|
||||||
[org/gnome/desktop/lockdown]
|
|
||||||
disable-command-line=true
|
|
||||||
disable-lock-screen=true
|
|
||||||
disable-application-handlers=true
|
|
||||||
disable-user-switching=true
|
|
||||||
user-administration-disabled=true
|
|
||||||
|
|
||||||
[org/gnome/desktop/wm/keybindings]
|
|
||||||
always-on-top=@as []
|
|
||||||
begin-move=@as []
|
|
||||||
begin-resize=@as []
|
|
||||||
close=@as []
|
|
||||||
lower=@as []
|
|
||||||
maximize=@as []
|
|
||||||
maximize-horizontally=@as []
|
|
||||||
maximize-vertically=@as []
|
|
||||||
minimize=@as []
|
|
||||||
panel-main-menu=@as []
|
|
||||||
panel-run-dialog=@as []
|
|
||||||
raise=@as []
|
|
||||||
raise-or-lower=@as []
|
|
||||||
show-desktop=@as []
|
|
||||||
toggle-fullscreen=@as []
|
|
||||||
toggle-maximized=@as []
|
|
||||||
unmaximize=@as []
|
|
||||||
|
|
||||||
[org/gnome/desktop/wm/preferences]
|
|
||||||
num-workspaces=1
|
|
||||||
|
|
||||||
[org/gnome/mutter]
|
|
||||||
dynamic-workspaces=false
|
|
@ -1,8 +0,0 @@
|
|||||||
/org/gnome/desktop/a11y/applications/screen-keyboard-enabled
|
|
||||||
/org/gnome/desktop/interface/gtk-im-module
|
|
||||||
/org/gnome/desktop/interface/toolkit-accessibility
|
|
||||||
/org/gnome/desktop/lockdown/disable-command-line
|
|
||||||
/org/gnome/desktop/lockdown/disable-lock-screen
|
|
||||||
/org/gnome/desktop/lockdown/disable-application-handlers
|
|
||||||
/org/gnome/desktop/lockdown/disable-user-switching
|
|
||||||
/org/gnome/desktop/lockdown/user-administration-disabled
|
|
@ -1,5 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Kiosk
|
|
||||||
Type=Application
|
|
||||||
Exec=redhat-kiosk
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=Mutter
|
|
||||||
Comment=Window manager
|
|
||||||
Exec=/usr/bin/mutter
|
|
||||||
Categories=GNOME;GTK;Core;
|
|
||||||
OnlyShowIn=GNOME;
|
|
||||||
NoDisplay=true
|
|
||||||
X-GNOME-Autostart-Phase=DisplayServer
|
|
||||||
X-GNOME-Provides=windowmanager;
|
|
||||||
X-GNOME-Autostart-Notify=true
|
|
||||||
X-GNOME-AutoRestart=false
|
|
||||||
X-GNOME-HiddenUnderSystemd=true
|
|
@ -1,6 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Kiosk
|
|
||||||
Comment=Kiosk mode
|
|
||||||
Exec=/usr/bin/gnome-session --session=redhat-kiosk
|
|
||||||
DesktopNames=Red-Hat-Kiosk;GNOME;
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Type=Application
|
|
||||||
Name=GNOME Shell Kiosk Mode
|
|
||||||
Comment=Window manager
|
|
||||||
Exec=env DCONF_PROFILE=redhatkiosk /usr/bin/gnome-shell --mode=redhat-kiosk
|
|
||||||
Categories=GNOME;GTK;Core;
|
|
||||||
OnlyShowIn=GNOME;
|
|
||||||
NoDisplay=true
|
|
||||||
X-GNOME-Autostart-Phase=DisplayServer
|
|
||||||
X-GNOME-Provides=windowmanager;
|
|
||||||
X-GNOME-Autostart-Notify=true
|
|
||||||
X-GNOME-AutoRestart=false
|
|
||||||
X-GNOME-HiddenUnderSystemd=true
|
|
@ -1,6 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=Kiosk (with on-screen keyboard)
|
|
||||||
Comment=Kiosk mode with on-screen keyboard
|
|
||||||
Exec=/usr/bin/env DCONF_PROFILE=redhatkiosk /usr/bin/gnome-session --session=redhat-kiosk-with-keyboard
|
|
||||||
DesktopNames=Red-Hat-Kiosk;GNOME;
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
if [ ! -e ~/.local/bin/redhat-kiosk ]; then
|
|
||||||
mkdir -p ~/.local/bin ~/.config
|
|
||||||
cat > ~/.local/bin/redhat-kiosk << EOF
|
|
||||||
#!/bin/sh
|
|
||||||
# This script is located in ~/.local/bin.
|
|
||||||
# It's provided as an example script to show how
|
|
||||||
# the kiosk session works. At the moment, the script
|
|
||||||
# just starts a text editor open to itself, but it
|
|
||||||
# should get customized to instead start a full screen
|
|
||||||
# application designed for the kiosk deployment.
|
|
||||||
# The "while true" bit just makes sure the application gets
|
|
||||||
# restarted if it dies for whatever reason.
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
gedit ~/.local/bin/redhat-kiosk
|
|
||||||
done
|
|
||||||
|
|
||||||
EOF
|
|
||||||
|
|
||||||
chmod +x ~/.local/bin/redhat-kiosk
|
|
||||||
touch ~/.config/gnome-initial-setup-done
|
|
||||||
fi
|
|
||||||
|
|
||||||
export DCONF_PROFILE=redhatkiosk
|
|
||||||
systemctl --user import-environment DCONF_PROFILE
|
|
||||||
|
|
||||||
exec ~/.local/bin/redhat-kiosk "$@"
|
|
@ -1,3 +0,0 @@
|
|||||||
[GNOME Session]
|
|
||||||
Name=Kiosk
|
|
||||||
RequiredComponents=com.redhat.KioskWithKeyboard.WindowManager;com.redhat.Kiosk.Script;
|
|
@ -1,5 +0,0 @@
|
|||||||
user-db:user
|
|
||||||
system-db:redhatkiosk
|
|
||||||
system-db:local
|
|
||||||
system-db:site
|
|
||||||
system-db:distro
|
|
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"parentMode": "user",
|
|
||||||
"hasOverview": false,
|
|
||||||
"hasRunDialog": false,
|
|
||||||
"allowSettings": false,
|
|
||||||
"panel": { "left": [""],
|
|
||||||
"center": [],
|
|
||||||
"right": ["keyboard"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
[GNOME Session]
|
|
||||||
Name=Kiosk
|
|
||||||
RequiredComponents=com.redhat.Kiosk.WindowManager;com.redhat.Kiosk.Script;
|
|
@ -0,0 +1,26 @@
|
|||||||
|
From 523602887f92b448b497e99bf56d0b9f1ef376f7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Kalev Lember <klember@redhat.com>
|
||||||
|
Date: Mon, 6 Sep 2021 21:12:38 +0200
|
||||||
|
Subject: [PATCH] data: Require org.gnome.SettingsDaemon.Subscription
|
||||||
|
|
||||||
|
Make sure the gnome-settings-daemon subman plugin gets started on
|
||||||
|
session startup.
|
||||||
|
---
|
||||||
|
data/meson.build | 1 +
|
||||||
|
1 file changed, 1 insertion(+)
|
||||||
|
|
||||||
|
diff --git a/data/meson.build b/data/meson.build
|
||||||
|
index e02b80d3..1684a99e 100644
|
||||||
|
--- a/data/meson.build
|
||||||
|
+++ b/data/meson.build
|
||||||
|
@@ -24,6 +24,7 @@ required_components = {
|
||||||
|
'org.gnome.SettingsDaemon.Sharing',
|
||||||
|
'org.gnome.SettingsDaemon.Smartcard',
|
||||||
|
'org.gnome.SettingsDaemon.Sound',
|
||||||
|
+ 'org.gnome.SettingsDaemon.Subscription',
|
||||||
|
'org.gnome.SettingsDaemon.UsbProtection',
|
||||||
|
'org.gnome.SettingsDaemon.Wacom',
|
||||||
|
'org.gnome.SettingsDaemon.XSettings',
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
Loading…
Reference in new issue