Auto sync2gitlab import of gnome-session-3.28.1-14.el8.src.rpm
This commit is contained in:
parent
299c411851
commit
bcc14f168f
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
/gnome-session-3.28.1.tar.xz
|
90
0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
Normal file
90
0001-Fedora-Set-grub-boot-flags-on-shutdown-reboot.patch
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
From 15be30033e5b24a8c84a4d4338da0e8a3930303a 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
|
||||||
|
|
||||||
|
Fedora's grub will automatically hide the boot-menu if the previous
|
||||||
|
boot has set the boot_success flag in grub's environment. This happens
|
||||||
|
automatically 30 seconds after login.
|
||||||
|
|
||||||
|
But if the user shuts down or reboots from the system-menu before then
|
||||||
|
(e.g. directly from gdm) then the boot_success flag gets not set. If
|
||||||
|
a reboot / shutdown is initiated through gnome-session then the user
|
||||||
|
is successfully interacting with the system, so set the boot_success
|
||||||
|
flag from gnome_session for this case to fix reboot from gdm leading to
|
||||||
|
the boot-menu not being hidden.
|
||||||
|
---
|
||||||
|
gnome-session/gsm-manager.c | 12 ++++++++++++
|
||||||
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/gnome-session/gsm-manager.c b/gnome-session/gsm-manager.c
|
||||||
|
index 3cf421cd..924767af 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:
|
||||||
|
break;
|
||||||
|
case GSM_MANAGER_LOGOUT_REBOOT:
|
||||||
|
case GSM_MANAGER_LOGOUT_REBOOT_INTERACT:
|
||||||
|
+ /*
|
||||||
|
+ * Fedora specific patch to make sure the boot-menu does not
|
||||||
|
+ * show when it is configured to auto-hide and a reboot is
|
||||||
|
+ * initiated directly from gdm.
|
||||||
|
+ */
|
||||||
|
+ system("/usr/sbin/grub2-set-bootflag boot_success");
|
||||||
|
reboot = TRUE;
|
||||||
|
break;
|
||||||
|
case GSM_MANAGER_LOGOUT_SHUTDOWN:
|
||||||
|
case GSM_MANAGER_LOGOUT_SHUTDOWN_INTERACT:
|
||||||
|
+ /*
|
||||||
|
+ * Fedora specific patch to make sure the boot-menu does not
|
||||||
|
+ * show when it is configured to auto-hide and a shutdown is
|
||||||
|
+ * initiated directly from gdm.
|
||||||
|
+ */
|
||||||
|
+ system("/usr/sbin/grub2-set-bootflag boot_success");
|
||||||
|
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
|
||||||
|
|
@ -0,0 +1,75 @@
|
|||||||
|
From 687ec347d2fa0bca227e3a583a3a47f9bbc10bb0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Adam Jackson <ajax@redhat.com>
|
||||||
|
Date: Tue, 4 Oct 2016 13:15:39 -0400
|
||||||
|
Subject: [PATCH] check-accelerated-gles: Use eglGetPlatformDisplay{,EXT}
|
||||||
|
|
||||||
|
eglGetDisplay forces the implementation to guess, and in general it
|
||||||
|
can't guess correctly. Be explicit.
|
||||||
|
|
||||||
|
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
||||||
|
---
|
||||||
|
.../gnome-session-check-accelerated-gles-helper.c | 36 +++++++++++++++++++++-
|
||||||
|
1 file changed, 35 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/tools/gnome-session-check-accelerated-gles-helper.c b/tools/gnome-session-check-accelerated-gles-helper.c
|
||||||
|
index 2a38d9e..472d1ad 100644
|
||||||
|
--- a/tools/gnome-session-check-accelerated-gles-helper.c
|
||||||
|
+++ b/tools/gnome-session-check-accelerated-gles-helper.c
|
||||||
|
@@ -34,11 +34,43 @@
|
||||||
|
#include <GLES2/gl2.h>
|
||||||
|
#include <GLES2/gl2ext.h>
|
||||||
|
#include <EGL/egl.h>
|
||||||
|
+#include <EGL/eglext.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "gnome-session-check-accelerated-common.h"
|
||||||
|
|
||||||
|
#ifdef GDK_WINDOWING_X11
|
||||||
|
+static EGLDisplay
|
||||||
|
+get_display (void *native)
|
||||||
|
+{
|
||||||
|
+ EGLDisplay dpy = NULL;
|
||||||
|
+ const char *client_exts = eglQueryString (NULL, EGL_EXTENSIONS);
|
||||||
|
+
|
||||||
|
+ if (g_strstr_len (client_exts, -1, "EGL_KHR_platform_base")) {
|
||||||
|
+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
|
||||||
|
+ (void *) eglGetProcAddress ("eglGetPlatformDisplay");
|
||||||
|
+
|
||||||
|
+ if (get_platform_display)
|
||||||
|
+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
|
||||||
|
+
|
||||||
|
+ if (dpy)
|
||||||
|
+ return dpy;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (g_strstr_len (client_exts, -1, "EGL_EXT_platform_base")) {
|
||||||
|
+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display =
|
||||||
|
+ (void *) eglGetProcAddress ("eglGetPlatformDisplayEXT");
|
||||||
|
+
|
||||||
|
+ if (get_platform_display)
|
||||||
|
+ dpy = get_platform_display (EGL_PLATFORM_X11_KHR, native, NULL);
|
||||||
|
+
|
||||||
|
+ if (dpy)
|
||||||
|
+ return dpy;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return eglGetDisplay ((EGLNativeDisplayType) native);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static char *
|
||||||
|
get_gles_renderer (void)
|
||||||
|
{
|
||||||
|
@@ -67,7 +99,9 @@ get_gles_renderer (void)
|
||||||
|
gdk_error_trap_push ();
|
||||||
|
|
||||||
|
display = GDK_DISPLAY_XDISPLAY (gdk_display_get_default ());
|
||||||
|
- egl_dpy = eglGetDisplay (display);
|
||||||
|
+
|
||||||
|
+ egl_dpy = get_display (display);
|
||||||
|
+
|
||||||
|
if (!egl_dpy) {
|
||||||
|
g_warning ("eglGetDisplay() failed");
|
||||||
|
goto out;
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
@ -0,0 +1,53 @@
|
|||||||
|
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
|
||||||
|
|
107
0001-main-only-log-check-accelerated-errors-when-debuggin.patch
Normal file
107
0001-main-only-log-check-accelerated-errors-when-debuggin.patch
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
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
|
||||||
|
|
124
0001-session-selector-show-cursor-explicitly.patch
Normal file
124
0001-session-selector-show-cursor-explicitly.patch
Normal file
@ -0,0 +1,124 @@
|
|||||||
|
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
|
||||||
|
|
3
20-redhat-kiosk.conf
Normal file
3
20-redhat-kiosk.conf
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Section "ServerFlags"
|
||||||
|
Option "DontVTSwitch" "on"
|
||||||
|
EndSection
|
5
com.redhat.Kiosk.Script.desktop
Normal file
5
com.redhat.Kiosk.Script.desktop
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Kiosk
|
||||||
|
Type=Application
|
||||||
|
Exec=redhat-kiosk
|
||||||
|
|
13
com.redhat.Kiosk.WindowManager.desktop
Normal file
13
com.redhat.Kiosk.WindowManager.desktop
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
[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
|
6
com.redhat.Kiosk.desktop
Normal file
6
com.redhat.Kiosk.desktop
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[Desktop Entry]
|
||||||
|
Name=Kiosk
|
||||||
|
Comment=Kiosk mode
|
||||||
|
Exec=/usr/bin/gnome-session --session=redhat-kiosk
|
||||||
|
DesktopNames=Red-Hat-Kiosk;GNOME;
|
||||||
|
|
12
gnome-session-3.3.92-nv30.patch
Normal file
12
gnome-session-3.3.92-nv30.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
--- gnome-session/data/hardware-compatibility 2012-03-21 16:30:06.269104695 -0700
|
||||||
|
+++ gnome-session/data/hardware-compatibility.new 2012-03-22 23:26:37.201967075 -0700
|
||||||
|
@@ -19,6 +19,9 @@
|
||||||
|
-Mesa DRI R[12]00[^[:digit:]]
|
||||||
|
-Mesa DRI R[12]00$
|
||||||
|
|
||||||
|
+# NV30 family on Nouveau: https://bugzilla.redhat.com/show_bug.cgi?id=745202
|
||||||
|
+-Gallium .* on NV3[0-9A-F]$
|
||||||
|
+
|
||||||
|
# Old Mesa software GL renderer
|
||||||
|
-software rasterizer
|
||||||
|
|
12
gnome-session-3.6.2-swrast.patch
Normal file
12
gnome-session-3.6.2-swrast.patch
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
diff -up gnome-session-3.6.2/data/hardware-compatibility.jx gnome-session-3.6.2/data/hardware-compatibility
|
||||||
|
--- gnome-session-3.6.2/data/hardware-compatibility.jx 2012-12-10 12:43:06.000000000 -0500
|
||||||
|
+++ gnome-session-3.6.2/data/hardware-compatibility 2012-12-10 12:43:50.424352484 -0500
|
||||||
|
@@ -23,7 +23,7 @@
|
||||||
|
-Gallium .* on NV3[0-9A-F]$
|
||||||
|
|
||||||
|
# Old Mesa software GL renderer
|
||||||
|
--software rasterizer
|
||||||
|
+#software rasterizer
|
||||||
|
|
||||||
|
# Gallium has softpipe; we explicitly enable llvmpipe
|
||||||
|
-softpipe
|
1565
gnome-session.spec
Normal file
1565
gnome-session.spec
Normal file
File diff suppressed because it is too large
Load Diff
27
gnome-xorg.desktop
Normal file
27
gnome-xorg.desktop
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[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
|
27
gnome.desktop
Normal file
27
gnome.desktop
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[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
|
26
redhat-kiosk
Executable file
26
redhat-kiosk
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
exec ~/.local/bin/redhat-kiosk "$@"
|
3
redhat-kiosk.session
Normal file
3
redhat-kiosk.session
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
[GNOME Session]
|
||||||
|
Name=Kiosk
|
||||||
|
RequiredComponents=com.redhat.Kiosk.WindowManager;com.redhat.Kiosk.Script;
|
Loading…
Reference in New Issue
Block a user