From 7b8f11bd1a19e4e8ff963f6be7d1b8b74d71ed8d Mon Sep 17 00:00:00 2001 From: Cas Cremers Date: Thu, 28 Jan 2021 14:05:09 +0100 Subject: [PATCH 1/2] Added config option to disable minimizing windows. By default, the extension minimizes windows after some down presses. This commit makes this behavior configurable: toggling it off stops windows from being minimized. --- extension.js | 25 ++++++--- gschemas.compiled | Bin 0 -> 701 bytes ...gnome.shell.extensions.wintile.gschema.xml | 48 ++++++++++++++++++ prefs.js | 16 ++++++ 4 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 gschemas.compiled create mode 100644 org.gnome.shell.extensions.wintile.gschema.xml diff --git a/extension.js b/extension.js index e37108b..9369386 100644 --- a/extension.js +++ b/extension.js @@ -26,6 +26,7 @@ var _log = function(str) { let config = { cols: 2, useMaximize: true, + useMinimize: true, debug: true, preview: { enabled: true, @@ -51,6 +52,7 @@ function updateSettings() { config.cols = (settings.get_value('cols').deep_unpack())+2; config.preview.doubleWidth = settings.get_value('double-width').deep_unpack(); config.useMaximize = settings.get_value('use-maximize').deep_unpack(); + config.useMinimize = settings.get_value('use-minimize').deep_unpack(); config.preview.enabled = settings.get_value('preview').deep_unpack(); config.preview.distance = settings.get_value('distance').deep_unpack(); config.preview.delay = settings.get_value('delay').deep_unpack(); @@ -79,6 +81,17 @@ var oldbindings = { toggle_tiled_right: [] } +// Minimize app if config allows +function requestMinimize(app) { + _log("useMinimize: "+config.useMinimize); + if (config.useMinimize) { + _log("Minimize"); + app.minimize(); + } else { + _log("Not minimizing due to config"); + } +} + function moveApp(app, loc) { _log("moveApp: " + JSON.stringify(loc)); var space = null; @@ -252,7 +265,7 @@ function sendMove(direction) { break; case "down": // Minimize - app.minimize(); + requestMinimize(app); break; } } else if (config.cols == 3) { @@ -275,7 +288,7 @@ function sendMove(direction) { break; case "down": // Minimize - app.minimize(); + requestMinimize(app); break; } } else { @@ -298,7 +311,7 @@ function sendMove(direction) { break; case "down": // Minimize - app.minimize(); + requestMinimize(app); break; } } @@ -402,7 +415,7 @@ function sendMove(direction) { } else { // We are bottom half, minimize _log('down - 6') - app.minimize(); + requestMinimize(app); } break; } @@ -494,7 +507,7 @@ function sendMove(direction) { } else { // We are bottom half, minimize _log('down - 6') - app.minimize(); + requestMinimize(app); } break; } @@ -594,7 +607,7 @@ function sendMove(direction) { } else { // We are bottom half, minimize _log('down - 7') - app.minimize(); + requestMinimize(app); } break; } diff --git a/gschemas.compiled b/gschemas.compiled new file mode 100644 index 0000000000000000000000000000000000000000..f84f84bb84685e148c893e7131c7430c14e2a3da GIT binary patch literal 701 zcmZWmJxjw-6uoL|>j#K~po5E30-87|j=HJf&$@*!1Y7Z1I0QEzl4uH z;CS|Ei#~M<{sH(3n6K>L(WlP9Z-Q?CS9wky{s+!k29E%5Y?7gkx}mjcnr=|Zd1|7n z-Dm@SH*zMH**m5&G61#<`7Z{`pqP!LQ=5 zF=RU)vK + + + + 0 + Number of columns + + + + + true + Turn on/off use of maximizing windows + When on, certain windows that won't resize full screen like Terminal will, however animations may occur between tile shifts. + + + true + Turn use of minimizing windows on/off + When off, windows will never be minimized. + + + true + Turn on/off mouse positioning + When on, dragging windows with the mouse will allow placement into the grid. + + + true + Use double width previews on sides in 4 column mode + When on, dragging a window to the side will preview 2 columns wide instead of 1. + + + 25 + Pixels from edge to start preview + + + + + 500 + Delay in ms before preview displays + + + + + false + Turn on/off debug output + + + + diff --git a/prefs.js b/prefs.js index 054d68b..14ee3ac 100644 --- a/prefs.js +++ b/prefs.js @@ -93,6 +93,21 @@ function buildPrefsWidget() { layout.attach(maximizeLabel, 0, row, 1, 1); layout.attach(maximizeInput, 1, row++, 1, 1); + // Minimize setting + let minimizeLabel = new Gtk.Label({ + label: _("Allow minimizing of windows"), + visible: true, + hexpand: true, + halign: Gtk.Align.START + }); + let minimizeInput = new Gtk.Switch({ + active: gsettings.get_boolean ('use-minimize'), + halign: Gtk.Align.END, + visible: true + }); + layout.attach(minimizeLabel, 0, row, 1, 1); + layout.attach(minimizeInput, 1, row++, 1, 1); + // Preview settings let previewEnabled = gsettings.get_boolean ('preview'); let previewLabel = new Gtk.Label({ @@ -193,6 +208,7 @@ function buildPrefsWidget() { gsettings.bind('cols', colsInput, 'active', Gio.SettingsBindFlags.DEFAULT); gsettings.bind('use-maximize', maximizeInput, 'active', Gio.SettingsBindFlags.DEFAULT); + gsettings.bind('use-minimize', minimizeInput, 'active', Gio.SettingsBindFlags.DEFAULT); gsettings.bind('preview', previewInput, 'active', Gio.SettingsBindFlags.DEFAULT); gsettings.bind('double-width', doubleWidthInput, 'active', Gio.SettingsBindFlags.DEFAULT); previewDistanceSettingInt.connect('value-changed', function(entry) { From 885d184faf4cf8d08b83309ae490fd4b9a281abc Mon Sep 17 00:00:00 2001 From: Cas Cremers Date: Mon, 1 Feb 2021 15:58:31 +0100 Subject: [PATCH 2/2] Bugfix to schema location, noticed by Ben Curtis. --- gschemas.compiled | Bin 701 -> 0 bytes ...gnome.shell.extensions.wintile.gschema.xml | 48 ------------------ schemas/gschemas.compiled | Bin 652 -> 701 bytes ...gnome.shell.extensions.wintile.gschema.xml | 5 ++ 4 files changed, 5 insertions(+), 48 deletions(-) delete mode 100644 gschemas.compiled delete mode 100644 org.gnome.shell.extensions.wintile.gschema.xml diff --git a/gschemas.compiled b/gschemas.compiled deleted file mode 100644 index f84f84bb84685e148c893e7131c7430c14e2a3da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 701 zcmZWmJxjw-6uoL|>j#K~po5E30-87|j=HJf&$@*!1Y7Z1I0QEzl4uH z;CS|Ei#~M<{sH(3n6K>L(WlP9Z-Q?CS9wky{s+!k29E%5Y?7gkx}mjcnr=|Zd1|7n z-Dm@SH*zMH**m5&G61#<`7Z{`pqP!LQ=5 zF=RU)vK - - - - 0 - Number of columns - - - - - true - Turn on/off use of maximizing windows - When on, certain windows that won't resize full screen like Terminal will, however animations may occur between tile shifts. - - - true - Turn use of minimizing windows on/off - When off, windows will never be minimized. - - - true - Turn on/off mouse positioning - When on, dragging windows with the mouse will allow placement into the grid. - - - true - Use double width previews on sides in 4 column mode - When on, dragging a window to the side will preview 2 columns wide instead of 1. - - - 25 - Pixels from edge to start preview - - - - - 500 - Delay in ms before preview displays - - - - - false - Turn on/off debug output - - - - diff --git a/schemas/gschemas.compiled b/schemas/gschemas.compiled index 3c98933e747d1e410a738dce332612b36d6c567e..f84f84bb84685e148c893e7131c7430c14e2a3da 100644 GIT binary patch literal 701 zcmZWmJxjw-6uoL|>j#K~po5E30-87|j=HJf&$@*!1Y7Z1I0QEzl4uH z;CS|Ei#~M<{sH(3n6K>L(WlP9Z-Q?CS9wky{s+!k29E%5Y?7gkx}mjcnr=|Zd1|7n z-Dm@SH*zMH**m5&G61#<`7Z{`pqP!LQ=5 zF=RU)vKw`yk1^Bc+x>dJLZ)eDsuXx|IWuJ%IhDinzr3lYWda3+xk zG6}L^V*L8#lG#5i9k~WS0?+3ci~Kg~H2g969T*jE&sa~Lg8u>j1-9P~mg!Too&z_4 zVte>PpE?7d3&;asnZXWy>LvKQ;632}@aKj;HT^R91lW3r`%|-j9o(Q!c1SH!k|uZv zI64SzuNrM*9hnx>h!G!#Hu{Fvxm?a{+F{+oQmtsIRPG!swEOseK+9SQB3+p zW2gNb<=Xvk?0|XB{hY&Nns2sLN2_ks0{1j3Imd5TT$S%?C#=VI?6(7zZ`eKE(1ZA- ayd~>ZrCm!3`5%(sz`Jr3gLh5=^T0oeMRx80 diff --git a/schemas/org.gnome.shell.extensions.wintile.gschema.xml b/schemas/org.gnome.shell.extensions.wintile.gschema.xml index e10f571..6dab216 100644 --- a/schemas/org.gnome.shell.extensions.wintile.gschema.xml +++ b/schemas/org.gnome.shell.extensions.wintile.gschema.xml @@ -12,6 +12,11 @@ Turn on/off use of maximizing windows When on, certain windows that won't resize full screen like Terminal will, however animations may occur between tile shifts. + + true + Turn use of minimizing windows on/off + When off, windows will never be minimized. + true Turn on/off mouse positioning