|
|
c7fac9 |
From 1a614826eea7ba5da2796e0eb3b62a6bb7609040 Mon Sep 17 00:00:00 2001
|
|
|
c7fac9 |
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
|
|
c7fac9 |
Date: Wed, 11 Oct 2017 00:36:18 +0200
|
|
|
c7fac9 |
Subject: [PATCH] global: Allow overriding the override schema
|
|
|
c7fac9 |
|
|
|
c7fac9 |
---
|
|
|
c7fac9 |
src/main.c | 11 ++++++++++-
|
|
|
c7fac9 |
src/shell-global.c | 20 +++++++++++++++++++-
|
|
|
c7fac9 |
2 files changed, 29 insertions(+), 2 deletions(-)
|
|
|
c7fac9 |
|
|
|
c7fac9 |
diff --git a/src/main.c b/src/main.c
|
|
|
c7fac9 |
index 857877b0b..6ebea4809 100644
|
|
|
c7fac9 |
--- a/src/main.c
|
|
|
c7fac9 |
+++ b/src/main.c
|
|
|
c7fac9 |
@@ -38,6 +38,7 @@ extern GType gnome_shell_plugin_get_type (void);
|
|
|
c7fac9 |
|
|
|
c7fac9 |
static gboolean is_gdm_mode = FALSE;
|
|
|
c7fac9 |
static char *session_mode = NULL;
|
|
|
c7fac9 |
+static char *override_schema = NULL;
|
|
|
c7fac9 |
static int caught_signal = 0;
|
|
|
c7fac9 |
|
|
|
c7fac9 |
#define DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER 1
|
|
|
c7fac9 |
@@ -450,6 +451,12 @@ GOptionEntry gnome_shell_options[] = {
|
|
|
c7fac9 |
N_("List possible modes"),
|
|
|
c7fac9 |
NULL
|
|
|
c7fac9 |
},
|
|
|
c7fac9 |
+ {
|
|
|
c7fac9 |
+ "override-schema", 0, 0, G_OPTION_ARG_STRING,
|
|
|
c7fac9 |
+ &override_schema,
|
|
|
c7fac9 |
+ N_("Override the override schema"),
|
|
|
c7fac9 |
+ "SCHEMA"
|
|
|
c7fac9 |
+ },
|
|
|
c7fac9 |
{ NULL }
|
|
|
c7fac9 |
};
|
|
|
c7fac9 |
|
|
|
c7fac9 |
@@ -507,7 +514,9 @@ main (int argc, char **argv)
|
|
|
c7fac9 |
if (session_mode == NULL)
|
|
|
c7fac9 |
session_mode = is_gdm_mode ? (char *)"gdm" : (char *)"user";
|
|
|
c7fac9 |
|
|
|
c7fac9 |
- _shell_global_init ("session-mode", session_mode, NULL);
|
|
|
c7fac9 |
+ _shell_global_init ("session-mode", session_mode,
|
|
|
c7fac9 |
+ "override-schema", override_schema,
|
|
|
c7fac9 |
+ NULL);
|
|
|
c7fac9 |
|
|
|
c7fac9 |
shell_prefs_init ();
|
|
|
c7fac9 |
|
|
|
c7fac9 |
diff --git a/src/shell-global.c b/src/shell-global.c
|
|
|
c7fac9 |
index c67ac4e4a..961fd3a70 100644
|
|
|
c7fac9 |
--- a/src/shell-global.c
|
|
|
c7fac9 |
+++ b/src/shell-global.c
|
|
|
c7fac9 |
@@ -65,6 +65,7 @@ struct _ShellGlobal {
|
|
|
c7fac9 |
MetaScreen *meta_screen;
|
|
|
c7fac9 |
|
|
|
c7fac9 |
char *session_mode;
|
|
|
c7fac9 |
+ char *override_schema;
|
|
|
c7fac9 |
|
|
|
c7fac9 |
XserverRegion input_region;
|
|
|
c7fac9 |
|
|
|
c7fac9 |
@@ -96,6 +97,7 @@ enum {
|
|
|
c7fac9 |
PROP_0,
|
|
|
c7fac9 |
|
|
|
c7fac9 |
PROP_SESSION_MODE,
|
|
|
c7fac9 |
+ PROP_OVERRIDE_SCHEMA,
|
|
|
c7fac9 |
PROP_SCREEN,
|
|
|
c7fac9 |
PROP_DISPLAY,
|
|
|
c7fac9 |
PROP_SCREEN_WIDTH,
|
|
|
c7fac9 |
@@ -138,6 +140,10 @@ shell_global_set_property(GObject *object,
|
|
|
c7fac9 |
g_clear_pointer (&global->session_mode, g_free);
|
|
|
c7fac9 |
global->session_mode = g_ascii_strdown (g_value_get_string (value), -1);
|
|
|
c7fac9 |
break;
|
|
|
c7fac9 |
+ case PROP_OVERRIDE_SCHEMA:
|
|
|
c7fac9 |
+ g_clear_pointer (&global->override_schema, g_free);
|
|
|
c7fac9 |
+ global->override_schema = g_value_dup_string (value);
|
|
|
c7fac9 |
+ break;
|
|
|
c7fac9 |
case PROP_FRAME_TIMESTAMPS:
|
|
|
c7fac9 |
global->frame_timestamps = g_value_get_boolean (value);
|
|
|
c7fac9 |
break;
|
|
|
c7fac9 |
@@ -163,6 +169,9 @@ shell_global_get_property(GObject *object,
|
|
|
c7fac9 |
case PROP_SESSION_MODE:
|
|
|
c7fac9 |
g_value_set_string (value, shell_global_get_session_mode (global));
|
|
|
c7fac9 |
break;
|
|
|
c7fac9 |
+ case PROP_OVERRIDE_SCHEMA:
|
|
|
c7fac9 |
+ g_value_set_string (value, global->override_schema);
|
|
|
c7fac9 |
+ break;
|
|
|
c7fac9 |
case PROP_SCREEN:
|
|
|
c7fac9 |
g_value_set_object (value, global->meta_screen);
|
|
|
c7fac9 |
break;
|
|
|
c7fac9 |
@@ -368,6 +377,13 @@ shell_global_class_init (ShellGlobalClass *klass)
|
|
|
c7fac9 |
g_param_spec_string ("session-mode",
|
|
|
c7fac9 |
"Session Mode",
|
|
|
c7fac9 |
"The session mode to use",
|
|
|
c7fac9 |
+ NULL,
|
|
|
c7fac9 |
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
|
c7fac9 |
+ g_object_class_install_property (gobject_class,
|
|
|
c7fac9 |
+ PROP_OVERRIDE_SCHEMA,
|
|
|
c7fac9 |
+ g_param_spec_string ("override-schema",
|
|
|
c7fac9 |
+ "Override Schema",
|
|
|
c7fac9 |
+ "The override schema to use",
|
|
|
c7fac9 |
"user",
|
|
|
c7fac9 |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
|
c7fac9 |
g_object_class_install_property (gobject_class,
|
|
|
c7fac9 |
@@ -1360,7 +1376,9 @@ shell_global_get_overrides_settings (ShellGlobal *global)
|
|
|
c7fac9 |
|
|
|
c7fac9 |
if (!settings)
|
|
|
c7fac9 |
{
|
|
|
c7fac9 |
- if (strcmp (global->session_mode, "classic") == 0)
|
|
|
c7fac9 |
+ if (global->override_schema != NULL)
|
|
|
c7fac9 |
+ schema = global->override_schema;
|
|
|
c7fac9 |
+ else if (strcmp (global->session_mode, "classic") == 0)
|
|
|
c7fac9 |
schema = "org.gnome.shell.extensions.classic-overrides";
|
|
|
c7fac9 |
else if (strcmp (global->session_mode, "user") == 0)
|
|
|
c7fac9 |
schema = "org.gnome.shell.overrides";
|
|
|
c7fac9 |
--
|
|
|
c7fac9 |
2.20.1
|
|
|
c7fac9 |
|