From dd9b577e292a09c20841da1d5c2152efcef19dea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= Date: Thu, 10 Oct 2019 17:49:54 +0200 Subject: [PATCH] settings: Add `use-default-background` preference Does not support timed backgrounds. fixes #122 --- Settings.ui | 30 ++---------------- prefs.js | 28 ++++------------ schemas/gschemas.compiled | Bin 5640 -> 5688 bytes ....shell.extensions.org-scrollwm.gschema.xml | 5 +++ tiling.js | 15 ++++++++- 5 files changed, 29 insertions(+), 49 deletions(-) diff --git a/Settings.ui b/Settings.ui index ae7ba07..2d71429 100644 --- a/Settings.ui +++ b/Settings.ui @@ -659,6 +659,7 @@ True False + Only supports static backgrounds 12 12 12 @@ -669,7 +670,7 @@ True False True - Default background + Use default background 0 @@ -678,24 +679,9 @@ - - Clear + True True - True - Clear default background - - - 2 - 0 - - - - - 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 2677b0f8d2390edb81bdd401406cb060dbaca896..7043ea06582267e1fc9a4a5e8489e986dd1d7003 100644 GIT binary patch delta 1415 zcmZ8hT}TvB7`>L3=9;^+t{G)Nl(Cj$izyhi77-!+kPw1IfwQ}ldvSMWnVEGntgW}8 z7i%60LI{ffUP>aYsE8!$t$h(9DCo_=K(NRHsdHxCh%THxXU=!;cYnXV(DJxtwEw_b zzYrB6A%3GR1O?h5A?k$i1IK6W`%Bh80H6R!DUNmR$g&^TSSN-=1l$4G6K^u~ zse|yl!H0qK`dfuQ^-B2t;1n=%Yi}ccY6bo|zsQR*d@Si*<1K`G1p;@#4}cFnN-YOa zH^MJ~r+|xB%HPwc_Q9V9uf~e4=uwkCwI6;2+ySf$kCf4;4#4jQ>%d$h|MoZo{NR97 z;Pu#c{f)^l^r@?v2pk7~boHj_Q*#HWz-NHc%~A8_&VdVnZ*$W<_NT5#|7q|n@bb*r zYTop09v>A5%!AkC+V4F~#Jq{2YdJBv6L?nBy_G&SC+-3F0^_f?73foQf($qd{F=M{ zlRhmQ6XT zoiuZ*V`kKtW|fI>tl1pWElVbJHEB9(+_Vh6=xc^dYmPJx)sbl(8NKFK2dggo>)iKB zqmq+G0?7un3?2bmSi0^0O+n-w)Q4jTN@Kv@&WQUlxaHEjnvk8bblc8aI%l_}Zh67y zN~e1w@HCJ!twB4Z#r5JK42y)?TtjKdhwWzcWa%sgSP#_zTLplt@M;AW=G6{s20Qjj z0q+A3g?Cdd8`f17zy)LDj*M$5HLY0#(okcj2Uds)nSVD=skBTpVKShAkaAB%NU|z@I&fYL5tO37(x>2qyCU4`R8_ zgBO5(ZP8jD2sIydCH_2WfTZ>9BYkR?>jrQWu-|uWgg$jS{0O)MC{+_RtEm%w2p9|9 v_3~3A|1!}B(eFN~n~cstF~uzSJ5VYxYAyxEA=-daYHFr#2Y0$pLP!1pqCO$3 delta 1320 zcmZ8hT}TvB7`@q=mb?7!-L?2R;ORxDc$SPaTEd z4(!g0BF>i7&6|Q`d=nNen{V1=cF3X5~ZR&%n>+ksn+@9YCP(97m?s z_?s+!>JSqGM}hXfF^fL+R`_x7DPYpqx{p3J3up&-1WH0Ir)Dp6paX^<16gowP>7k4 z<1O^5xp54f0H&_@SMi9b%i*_z4d7dITZZ$gxxoPV7I3NgV2(a@82%IRGr&w-G(6bf zec{GaFlT_Bv1=Q+fSMc6gI9nXayCexnw3@JoWg*2PyHx;>KgcQ@DbqVJvPqgJsI*aWaoD}XIPCBViHi1yV+-HaFHD$<6jT{U$3-%QxdZX(#&)KaL$u$81? z>eA#0HbVhcLCZ>|+tiY_W-x!}VW_q?XGx`Cn7vk3O-e;q`=mSDNd+eAS65h4w=`SJ zYj)8MCd7$#j;SeUxFYU!2Dh;|5wjXnvRln%Y{l_K>ik(#T2{`KN|%bnr0FPuBhESe zuXDjDi(%5eve>2RDNXOO_B)Niy|>@_yw-Y3u6H<6zzn0H^r%@Z;{U^ycfzR>KN9X) zg5Lry2NLdmrDpfegBO6b`E`M3Pt9go0B u)QwM#_?tuwBJM1PrxTM<3^4_s0oE=OHB*@bm(~0YP0i3AaHX>tIsY4BZV0{r 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;