classic: Replace mini-extensions with mode-specific overridesSchema
Some default values differ between classic and normal sessions. We used to implement this by overriding the shell's default values in mini-extensions (or more precisely: reversing the shell's overrides). Use a mode-specific overridesSchema instead, which has the advantage that settings defaults will not change unexpectedly when extensions are disabled/enabled (for instance during screen locks). https://bugzilla.gnome.org/show_bug.cgi?id=701717
This commit is contained in:
+2
-4
@@ -27,7 +27,7 @@ fi
|
||||
AC_SUBST([SHELL_VERSION])
|
||||
|
||||
dnl keep this in alphabetic order
|
||||
CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab default-min-max launch-new-instance static-workspaces window-list"
|
||||
CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab launch-new-instance window-list"
|
||||
DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS alternative-status-menu drive-menu windowsNavigator workspace-indicator"
|
||||
ALL_EXTENSIONS="$DEFAULT_EXTENSIONS auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator"
|
||||
AC_SUBST(CLASSIC_EXTENSIONS, [$CLASSIC_EXTENSIONS])
|
||||
@@ -71,7 +71,7 @@ for e in $enable_extensions; do
|
||||
[AC_MSG_WARN([gnome-desktop-3.0 not found, disabling xrandr-indicator])])
|
||||
;;
|
||||
dnl keep this in alphabetic order
|
||||
alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|default-min-max|drive-menu|example|launch-new-instance|native-window-placement|places-menu|static-workspaces|user-theme|window-list|windowsNavigator|workspace-indicator)
|
||||
alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|drive-menu|example|launch-new-instance|native-window-placement|places-menu|user-theme|window-list|windowsNavigator|workspace-indicator)
|
||||
ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
|
||||
;;
|
||||
*)
|
||||
@@ -88,13 +88,11 @@ AC_CONFIG_FILES([
|
||||
extensions/alternative-status-menu/Makefile
|
||||
extensions/apps-menu/Makefile
|
||||
extensions/auto-move-windows/Makefile
|
||||
extensions/default-min-max/Makefile
|
||||
extensions/drive-menu/Makefile
|
||||
extensions/example/Makefile
|
||||
extensions/launch-new-instance/Makefile
|
||||
extensions/native-window-placement/Makefile
|
||||
extensions/places-menu/Makefile
|
||||
extensions/static-workspaces/Makefile
|
||||
extensions/systemMonitor/Makefile
|
||||
extensions/user-theme/Makefile
|
||||
extensions/window-list/Makefile
|
||||
|
||||
@@ -28,6 +28,12 @@ theme_DATA = \
|
||||
$(srcdir)/gnome-classic.css \
|
||||
$(NULL)
|
||||
|
||||
gsettings_in_files = org.gnome.shell.extensions.classic-overrides.gschema.xml.in
|
||||
gsettings_SCHEMAS = $(gsettings_in_files:.xml.in=.xml)
|
||||
|
||||
@INTLTOOL_XML_NOMERGE_RULE@
|
||||
@GSETTINGS_RULES@
|
||||
|
||||
%.desktop.in:%.desktop.in.in
|
||||
$(AM_V_GEN) sed \
|
||||
-e "s|\@libexecdir\@|$(libexecdir)|" \
|
||||
@@ -54,6 +60,7 @@ EXTRA_DIST = \
|
||||
$(session_in_in_files) \
|
||||
$(xsession_in_files) \
|
||||
$(mode_in_files) \
|
||||
$(gsettings_in_files) \
|
||||
$(theme_DATA) \
|
||||
$(NULL)
|
||||
|
||||
@@ -62,4 +69,5 @@ CLEANFILES = \
|
||||
$(session_DATA) \
|
||||
$(xsession_DATA) \
|
||||
$(mode_DATA) \
|
||||
$(gsettings_SCHEMAS) \
|
||||
$(NULL)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"parentMode": "user",
|
||||
"stylesheetName": "gnome-classic.css",
|
||||
"overridesSchema": "org.gnome.shell.extensions.classic-overrides",
|
||||
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
|
||||
"panel": { "left": ["activities", "appMenu"],
|
||||
"center": [],
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
<schemalist>
|
||||
<schema id="org.gnome.shell.extensions.classic-overrides"
|
||||
path="/org/gnome/shell/extensions/classic-overrides/"
|
||||
gettext-domain="gnome-shell-extensions">
|
||||
<key name="attach-modal-dialogs" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Attach modal dialog to the parent window</_summary>
|
||||
<_description>
|
||||
This key overrides the key in org.gnome.mutter when running
|
||||
GNOME Shell.
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="edge-tiling" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Enable edge tiling when dropping windows on screen edges</_summary>
|
||||
<_description>
|
||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="workspaces-only-on-primary" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Workspaces only on primary monitor</_summary>
|
||||
<_description>
|
||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
||||
</_description>
|
||||
</key>
|
||||
|
||||
<key name="focus-change-on-pointer-rest" type="b">
|
||||
<default>true</default>
|
||||
<summary>Delay focus changes in mouse mode until the pointer stops moving</summary>
|
||||
<description>
|
||||
This key overrides the key in org.gnome.mutter when running GNOME Shell.
|
||||
</description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
@@ -1,3 +0,0 @@
|
||||
EXTENSION_ID = default-min-max
|
||||
|
||||
include ../../extension.mk
|
||||
@@ -1,20 +0,0 @@
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
|
||||
const Meta = imports.gi.Meta;
|
||||
|
||||
const BUTTON_LAYOUT_KEY = 'button-layout';
|
||||
const EXTENSION_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const SHELL_OVERRIDES_SCHEMA = 'org.gnome.shell.overrides';
|
||||
|
||||
function init(metadata) {
|
||||
}
|
||||
|
||||
function enable() {
|
||||
// Override gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema(BUTTON_LAYOUT_KEY, EXTENSION_SCHEMA);
|
||||
}
|
||||
|
||||
function disable() {
|
||||
// Restore gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema(BUTTON_LAYOUT_KEY, SHELL_OVERRIDES_SCHEMA);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Default Minimize and Maximize",
|
||||
"description": "Adds minimize and maximize buttons to the titlebar by default",
|
||||
"original-authors": [ "debarshir@gnome.org" ],
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
/* This extensions requires no special styling */
|
||||
@@ -1,3 +0,0 @@
|
||||
EXTENSION_ID = static-workspaces
|
||||
|
||||
include ../../extension.mk
|
||||
@@ -1,18 +0,0 @@
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
|
||||
const Meta = imports.gi.Meta;
|
||||
|
||||
function init(metadata) {
|
||||
}
|
||||
|
||||
function enable() {
|
||||
// Override gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema('dynamic-workspaces',
|
||||
'org.gnome.mutter');
|
||||
}
|
||||
|
||||
function disable() {
|
||||
// Restore gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema('dynamic-workspaces',
|
||||
'org.gnome.shell.overrides');
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Static workspaces",
|
||||
"description": "Disable dynamic workspace management",
|
||||
"original-authors": [ "fmuellner@gnome.org" ],
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
/* This extensions requires no special styling */
|
||||
@@ -1,6 +1,7 @@
|
||||
data/gnome-classic.desktop.in
|
||||
data/gnome-classic.session.desktop.in.in
|
||||
data/gnome-shell-classic.desktop.in.in
|
||||
data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in
|
||||
extensions/alternate-tab/prefs.js
|
||||
extensions/alternative-status-menu/extension.js
|
||||
extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in
|
||||
|
||||
Reference in New Issue
Block a user