diff --git a/Settings.ui b/Settings.ui
index ae7ba07..2d71429 100644
--- a/Settings.ui
+++ b/Settings.ui
@@ -659,6 +659,7 @@
@@ -678,24 +679,9 @@
-
-
-
- True
- False
- False
- Choose default background
1
@@ -796,15 +782,6 @@
2
-
-
-
-
-
-
-
-
-
1
@@ -846,7 +823,6 @@
True
True
never
- in
True
diff --git a/prefs.js b/prefs.js
index c1a769b..e6a0490 100644
--- a/prefs.js
+++ b/prefs.js
@@ -138,29 +138,15 @@ class SettingsWidget {
// Workspaces
- const defaultBackground = this.builder.get_object('workspace_chooser_default_background');
- const deleteDefaultBackground = this.builder.get_object('workspace_button_delete_default_background');
-
- let filename = this._settings.get_string('default-background');
- if (filename === ''){
- defaultBackground.unselect_all();
- deleteDefaultBackground.sensitive = false;
- } else {
- defaultBackground.set_filename(filename);
- deleteDefaultBackground.sensitive = true;
- }
-
- defaultBackground.connect('file-set', () => {
- let filename = defaultBackground.get_filename();
- this._settings.set_string('default-background', filename);
- deleteDefaultBackground.sensitive = true;
+ const defaultBackgroundSwitch = this.builder.get_object('use-default-background');
+ defaultBackgroundSwitch.state =
+ this._settings.get_boolean('use-default-background');
+ defaultBackgroundSwitch.connect('state-set', (obj, state) => {
+ this._settings.set_boolean('use-default-background',
+ state);
});
- deleteDefaultBackground.connect('clicked', () => {
- this._settings.set_string('default-background', '');
- defaultBackground.unselect_all();
- deleteDefaultBackground.sensitive = false;
- });
+ let useDefault = this._settings.get_boolean('use-default-background');
const workspaceCombo = this.builder.get_object('workspace_combo_text');
const workspaceStack = this.builder.get_object('workspace_stack');
diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled
index 2677b0f..7043ea0 100644
Binary files a/schemas/gschemas.compiled and b/schemas/gschemas.compiled differ
diff --git a/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml b/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml
index 7426249..29b2d57 100644
--- a/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml
+++ b/schemas/org.gnome.shell.extensions.org-scrollwm.gschema.xml
@@ -302,6 +302,11 @@
Default background image
+
+ false
+ Use the default gnome shell background
+
+
true
Show the top bar on workspaces by default
diff --git a/tiling.js b/tiling.js
index 283e465..1c2c1df 100644
--- a/tiling.js
+++ b/tiling.js
@@ -34,6 +34,10 @@ var Me = Extension.imports.tiling;
var prefs = Settings.prefs;
+var backgroundSettings = new Gio.Settings({
+ schema_id: 'org.gnome.desktop.background'
+})
+
var borderWidth = 8;
// Mutter prevints windows from being placed further off the screen than 75 pixels.
var stack_margin = 75;
@@ -258,6 +262,10 @@ class Space extends Array {
const settings = Convenience.getSettings();
this.signals.connect(settings, 'changed::default-background',
this.updateBackground.bind(this));
+ this.signals.connect(settings, 'changed::use-default-background',
+ this.updateBackground.bind(this));
+ this.signals.connect(backgroundSettings, 'changed::picture-uri',
+ this.updateBackground.bind(this));
}
layoutGrabColumn(column, x, y0, targetWidth, availableHeight, time, grabWindow) {
@@ -931,9 +939,14 @@ box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, .7);
updateBackground() {
let path = this.settings.get_string('background') || prefs.default_background;
- let file = Gio.File.new_for_path(path);
+ let useDefault = Settings.settings.get_boolean('use-default-background');
const BackgroundStyle = imports.gi.GDesktopEnums.BackgroundStyle;
let style = BackgroundStyle.ZOOM;
+ if (!path && useDefault) {
+ path = backgroundSettings.get_string('picture-uri');
+ }
+
+ let file = Gio.File.new_for_commandline_arg(path);
if (path === '' || !file.query_exists(null)) {
file = Gio.File.new_for_uri('resource:///org/gnome/shell/theme/noise-texture.png');
style = BackgroundStyle.WALLPAPER;