Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5643c577c6 | |||
| 7c2e1a0d0d |
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
SOURCES/gnome-session-3.28.1.tar.xz
|
||||
gnome-session-46.0.tar.xz
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
From 15be30033e5b24a8c84a4d4338da0e8a3930303a Mon Sep 17 00:00:00 2001
|
||||
From e3d6f1c1d342d0c74f2125ea0efa2a9669aaa8df Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Tue, 14 Aug 2018 14:49:59 +0200
|
||||
Subject: [PATCH] Fedora: Set grub boot-flags on shutdown / reboot
|
||||
@ -18,37 +18,10 @@ the boot-menu not being hidden.
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
|
||||
index 3cf421cd..924767af 100644
|
||||
index 6839a02d..589efb02 100644
|
||||
--- a/gnome-session/gsm-manager.c
|
||||
+++ b/gnome-session/gsm-manager.c
|
||||
@@ -3629,51 +3629,63 @@ on_shutdown_prepared (GsmSystem *system,
|
||||
gboolean success,
|
||||
GsmManager *manager)
|
||||
{
|
||||
g_debug ("GsmManager: on_shutdown_prepared, success: %d", success);
|
||||
g_signal_handlers_disconnect_by_func (system, on_shutdown_prepared, manager);
|
||||
|
||||
if (success) {
|
||||
/* move to end-session phase */
|
||||
g_assert (manager->priv->phase == GSM_MANAGER_PHASE_QUERY_END_SESSION);
|
||||
manager->priv->phase++;
|
||||
start_phase (manager);
|
||||
} else {
|
||||
disconnect_shell_dialog_signals (manager);
|
||||
gsm_shell_close_end_session_dialog (manager->priv->shell);
|
||||
/* back to running phase */
|
||||
cancel_end_session (manager);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
do_query_end_session_exit (GsmManager *manager)
|
||||
{
|
||||
gboolean reboot = FALSE;
|
||||
gboolean shutdown = FALSE;
|
||||
|
||||
switch (manager->priv->logout_type) {
|
||||
case GSM_MANAGER_LOGOUT_LOGOUT:
|
||||
@@ -3823,10 +3823,22 @@ do_query_end_session_exit (GsmManager *manager)
|
||||
break;
|
||||
case GSM_MANAGER_LOGOUT_REBOOT:
|
||||
case GSM_MANAGER_LOGOUT_REBOOT_INTERACT:
|
||||
@ -71,20 +44,6 @@ index 3cf421cd..924767af 100644
|
||||
shutdown = TRUE;
|
||||
break;
|
||||
default:
|
||||
g_warning ("Unexpected logout type %d in do_query_end_session_exit()",
|
||||
manager->priv->logout_type);
|
||||
break;
|
||||
}
|
||||
|
||||
if (reboot || shutdown) {
|
||||
g_signal_connect (manager->priv->system, "shutdown-prepared",
|
||||
G_CALLBACK (on_shutdown_prepared), manager);
|
||||
gsm_system_prepare_shutdown (manager->priv->system, reboot);
|
||||
return FALSE; /* don't leave query end session yet */
|
||||
}
|
||||
|
||||
return TRUE; /* go to end session phase */
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
2.28.0
|
||||
|
||||
@ -0,0 +1,53 @@
|
||||
From 5b150e8c9bd99cf5026a06999be4273b2d53188d 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 384ffee7..57091a54 100644
|
||||
--- a/gnome-session/main.c
|
||||
+++ b/gnome-session/main.c
|
||||
@@ -233,6 +233,8 @@ 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) {
|
||||
@@ -240,11 +242,15 @@ check_gl (GError **error)
|
||||
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);
|
||||
+ }
|
||||
+
|
||||
#if GLIB_CHECK_VERSION(2, 70, 0)
|
||||
return g_spawn_check_wait_status (status, error);
|
||||
#else
|
||||
--
|
||||
2.49.0
|
||||
|
||||
109
0001-systemd-Drop-blocking-inhibitors-before-shutdown.patch
Normal file
109
0001-systemd-Drop-blocking-inhibitors-before-shutdown.patch
Normal file
@ -0,0 +1,109 @@
|
||||
From adfe5778edea1273076ed19c51875d5d4a062693 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Vovk <adrianvovk@gmail.com>
|
||||
Date: Tue, 8 Apr 2025 11:13:57 -0400
|
||||
Subject: [PATCH] systemd: Drop blocking inhibitors before shutdown
|
||||
|
||||
Starting in systemd v257, systemd simplified the logic it uses for
|
||||
inhibitors. It'll now enforce blocking inhibitors, even for processes
|
||||
running as the same user that took them. So, gnome-session needs to make
|
||||
sure it's not holding any blocking inhibitors when it's time to shutdown,
|
||||
otherwise systemd will refuse to shutdown.
|
||||
|
||||
Fixes: https://gitlab.gnome.org/GNOME/gnome-session/-/issues/142
|
||||
---
|
||||
gnome-session/gsm-systemd.c | 51 +++++++++++++++++++++++++++----------
|
||||
1 file changed, 38 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/gnome-session/gsm-systemd.c b/gnome-session/gsm-systemd.c
|
||||
index 9361496e..362491b4 100644
|
||||
--- a/gnome-session/gsm-systemd.c
|
||||
+++ b/gnome-session/gsm-systemd.c
|
||||
@@ -913,6 +913,25 @@ inhibit_done (GObject *source,
|
||||
}
|
||||
}
|
||||
|
||||
+static void
|
||||
+gsm_systemd_call_inhibit (GsmSystemd *manager,
|
||||
+ char *what)
|
||||
+{
|
||||
+ g_dbus_proxy_call_with_unix_fd_list (manager->priv->sd_proxy,
|
||||
+ "Inhibit",
|
||||
+ g_variant_new ("(ssss)",
|
||||
+ what,
|
||||
+ g_get_user_name (),
|
||||
+ "user session inhibited",
|
||||
+ "block"),
|
||||
+ 0,
|
||||
+ G_MAXINT,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
+ inhibit_done,
|
||||
+ manager);
|
||||
+}
|
||||
+
|
||||
static void
|
||||
gsm_systemd_set_inhibitors (GsmSystem *system,
|
||||
GsmInhibitorFlag flags)
|
||||
@@ -936,19 +955,19 @@ gsm_systemd_set_inhibitors (GsmSystem *system,
|
||||
|
||||
if (locks != NULL) {
|
||||
g_debug ("Adding system inhibitor on %s", locks);
|
||||
- g_dbus_proxy_call_with_unix_fd_list (manager->priv->sd_proxy,
|
||||
- "Inhibit",
|
||||
- g_variant_new ("(ssss)",
|
||||
- locks,
|
||||
- g_get_user_name (),
|
||||
- "user session inhibited",
|
||||
- "block"),
|
||||
- 0,
|
||||
- G_MAXINT,
|
||||
- NULL,
|
||||
- NULL,
|
||||
- inhibit_done,
|
||||
- manager);
|
||||
+ gsm_systemd_call_inhibit (manager, locks);
|
||||
+ } else {
|
||||
+ drop_system_inhibitor (manager);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+gsm_systemd_reacquire_inhibitors (GsmSystemd *manager)
|
||||
+{
|
||||
+ const gchar *locks = manager->priv->inhibit_locks;
|
||||
+ if (locks != NULL) {
|
||||
+ g_debug ("Reacquiring system inhibitor on %s", locks);
|
||||
+ gsm_systemd_call_inhibit (manager, locks);
|
||||
} else {
|
||||
drop_system_inhibitor (manager);
|
||||
}
|
||||
@@ -976,6 +995,7 @@ reboot_or_poweroff_done (GObject *source,
|
||||
g_debug ("GsmSystemd: shutdown preparation failed");
|
||||
systemd->priv->prepare_for_shutdown_expected = FALSE;
|
||||
g_signal_emit_by_name (systemd, "shutdown-prepared", FALSE);
|
||||
+ gsm_systemd_reacquire_inhibitors (systemd);
|
||||
} else {
|
||||
g_variant_unref (result);
|
||||
}
|
||||
@@ -993,6 +1013,10 @@ gsm_systemd_prepare_shutdown (GsmSystem *system,
|
||||
|
||||
g_debug ("GsmSystemd: prepare shutdown");
|
||||
|
||||
+ /* if we're holding a blocking inhibitor to inhibit shutdown, systemd
|
||||
+ * will prevent us from shutting down */
|
||||
+ drop_system_inhibitor (systemd);
|
||||
+
|
||||
res = g_dbus_proxy_call_with_unix_fd_list_sync (systemd->priv->sd_proxy,
|
||||
"Inhibit",
|
||||
g_variant_new ("(ssss)",
|
||||
@@ -1010,6 +1034,7 @@ gsm_systemd_prepare_shutdown (GsmSystem *system,
|
||||
g_warning ("Failed to get delay inhibitor: %s", error->message);
|
||||
g_error_free (error);
|
||||
g_signal_emit_by_name (systemd, "shutdown-prepared", FALSE);
|
||||
+ gsm_systemd_reacquire_inhibitors (systemd);
|
||||
return;
|
||||
}
|
||||
|
||||
--
|
||||
2.47.1
|
||||
|
||||
@ -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
|
||||
|
||||
@ -1,53 +0,0 @@
|
||||
From ae60cb25636b6f68d087591de11fd681f6f8c918 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Tue, 19 Nov 2019 09:29:16 -0500
|
||||
Subject: [PATCH] gnome-session: don't validate shell before using it
|
||||
|
||||
Users sometimes set their shell to an invalid shell to prevent
|
||||
login from proceeding.
|
||||
|
||||
GNOME on Wayland still allows login in these cases.
|
||||
|
||||
This commit makes the behavior match expectations by skipping
|
||||
shell validity checks when deciding to run though a login shell.
|
||||
---
|
||||
gnome-session/gnome-session.in | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
|
||||
index ce63df56..7d967d34 100755
|
||||
--- a/gnome-session/gnome-session.in
|
||||
+++ b/gnome-session/gnome-session.in
|
||||
@@ -1,28 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
|
||||
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
|
||||
- [ -n "$SHELL" ] &&
|
||||
- grep -q "$SHELL" /etc/shells &&
|
||||
- ! (echo "$SHELL" | grep -q "false") &&
|
||||
- ! (echo "$SHELL" | grep -q "nologin"); then
|
||||
+ [ -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
|
||||
fi
|
||||
|
||||
exec @libexecdir@/gnome-session-binary "$@"
|
||||
--
|
||||
2.21.0
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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,27 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name[de]=Standard (X11 Anzeige-Server)
|
||||
Name[es]=Estándar (servidor gráfico X11)
|
||||
Name[fr]=Standard (serveur affichage X11)
|
||||
Name[it]=Standard (server grafico X11)
|
||||
Name[ja]=スタンダード (X11 ディスプレイサーバー)
|
||||
Name[ko]=탠다드 (X11 디스플레이 서버)
|
||||
Name[pt_BR]=Padrão (servidor de exibição X11)
|
||||
Name[ru]=Стандартный (дисплейный сервер X11)
|
||||
Name[zh_CN]=标准(X11 显示服务器)
|
||||
Name[zh_TW]=標準(X11顯示服務器)
|
||||
Name=Standard (X11 display server)
|
||||
Comment[de]=Diese Sitzung meldet Sie bei GNOME an
|
||||
Comment[es]=Esta sesión accede a GNOME
|
||||
Comment[fr]=Cette session vous connecte dans GNOME
|
||||
Comment[it]=Questa sessione esegue l'accesso in GNOME
|
||||
Comment[ja]=このセッションで GNOME にログインします
|
||||
Comment[ko]=이 세션을 사용하면 그놈에 로그인합니다
|
||||
Comment[pt_BR]=Essa sessão o leva ao GNOME
|
||||
Comment[ru]=Этот сеанс позволяет вам войти в GNOME
|
||||
Comment[zh_CN]=此会话将您登录到 GNOME
|
||||
Comment[zh_TW]=這個工作階段讓您登入 GNOME
|
||||
Comment=This session logs you into GNOME
|
||||
Exec=gnome-session
|
||||
TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME
|
||||
@ -1,27 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name[de]=Standard (Wayland Anzeige-Server)
|
||||
Name[es]=Estándar (servidor gráfico Wayland)
|
||||
Name[fr]=Standard (serveur affichage Wayland)
|
||||
Name[it]=Standard (server grafico Wayland)
|
||||
Name[ja]=スタンダード (Wayland ディスプレイサーバー)
|
||||
Name[ko]=스탠다드 (Wayland 디스플레이 서버)
|
||||
Name[pt_BR]=Padrão (servidor de exibição Wayland)
|
||||
Name[ru]=Стандартный (дисплейный сервер Wayland)
|
||||
Name[zh_CN]=标准(Wayland 显示服务器)
|
||||
Name[zh_TW]=標準(Wayland顯示服務器)
|
||||
Name=Standard (Wayland display server)
|
||||
Comment[de]=Diese Sitzung meldet Sie bei GNOME an
|
||||
Comment[es]=Esta sesión accede a GNOME
|
||||
Comment[fr]=Cette session vous connecte dans GNOME
|
||||
Comment[it]=Questa sessione esegue l'accesso in GNOME
|
||||
Comment[ja]=このセッションで GNOME にログインします
|
||||
Comment[ko]=이 세션을 사용하면 그놈에 로그인합니다
|
||||
Comment[pt_BR]=Essa sessão o leva ao GNOME
|
||||
Comment[ru]=Этот сеанс позволяет вам войти в GNOME
|
||||
Comment[zh_CN]=此会话将您登录到 GNOME
|
||||
Comment[zh_TW]=這個工作階段讓您登入 GNOME
|
||||
Comment=This session logs you into GNOME
|
||||
Exec=gnome-session
|
||||
TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=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;
|
||||
File diff suppressed because it is too large
Load Diff
2014
gnome-session.spec
Normal file
2014
gnome-session.spec
Normal file
File diff suppressed because it is too large
Load Diff
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
||||
SHA512 (gnome-session-46.0.tar.xz) = 2187b8ae4ac4ec728283c5dc03edba6472864a704f6c6cd7a3e962515a3925d3a8438f7f89855dd082d2c013868da81e16da280c70b0e07537c8e431301b4bd8
|
||||
26
subscription-manager.patch
Normal file
26
subscription-manager.patch
Normal file
@ -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
Block a user