all: remove all GSettings usage
Since GSettings is not supported in extensions in 3.2, all settings have been replaced by constants in JS files (except for user-theme, whose only purpose is to actually bridge GSettings to the shell). Customizations are still supported in master, and distributions packaging these extensions for system-wide install may consider reverting this bug.
This commit is contained in:
@@ -1,14 +1,3 @@
|
||||
EXTENSION_ID = native-window-placement
|
||||
|
||||
include ../../extension.mk
|
||||
|
||||
gschemas_in = $(gschemabase).native-window-placement.gschema.xml.in
|
||||
|
||||
@INTLTOOL_XML_NOMERGE_RULE@
|
||||
|
||||
gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
|
||||
|
||||
@GSETTINGS_RULES@
|
||||
|
||||
CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
|
||||
EXTRA_DIST += $(gschemas_in)
|
||||
|
||||
@@ -25,6 +25,12 @@ const WindowPlacementStrategy = {
|
||||
GRID: 1,
|
||||
};
|
||||
|
||||
/* Begin user settings */
|
||||
const PLACEMENT_STRATEGY = WindowPlacementStrategy.NATURAL;
|
||||
const USE_MORE_SCREEN = true;
|
||||
const WINDOW_CAPTIONS_ON_TOP = true;
|
||||
/* End user settings - do not change anything below this line */
|
||||
|
||||
// testing settings for natural window placement strategy:
|
||||
const WINDOW_PLACEMENT_NATURAL_FILLGAPS = true; // enlarge windows at the end to fill gaps // not implemented yet
|
||||
const WINDOW_PLACEMENT_NATURAL_GRID_FALLBACK = true; // fallback to grid mode if all windows have the same size and positions. // not implemented yet
|
||||
@@ -117,19 +123,8 @@ function resetState() {
|
||||
function enable() {
|
||||
resetState();
|
||||
|
||||
let settings = new Gio.Settings({ schema: 'org.gnome.shell.extensions.native-window-placement' });
|
||||
let placementStrategy = settings.get_enum('strategy');
|
||||
let signalId = settings.connect('changed::strategy', function() {
|
||||
placementStrategy = settings.get_enum('strategy');
|
||||
// we don't update immediately, we wait for a relayout
|
||||
// (and hope for the best)
|
||||
});
|
||||
connectedSignals.push({ obj: settings, id: signalId });
|
||||
let useMoreScreen = settings.get_boolean('use-more-screen');
|
||||
signalId = settings.connect('changed::use-more-screen', function() {
|
||||
useMoreScreen = settings.get_boolean('use-more-screen');
|
||||
});
|
||||
connectedSignals.push({ obj: settings, id: signalId });
|
||||
let placementStrategy = PLACEMENT_STRATEGY;
|
||||
let useMoreScreen = USE_MORE_SCREEN;
|
||||
|
||||
/**
|
||||
* _calculateWindowTransformationsNatural:
|
||||
@@ -415,7 +410,7 @@ function enable() {
|
||||
}
|
||||
|
||||
/// position window titles on top of windows in overlay ////
|
||||
if (settings.get_boolean('window-captions-on-top')) {
|
||||
if (WINDOW_CAPTIONS_ON_TOP) {
|
||||
winInjections['_init'] = Workspace.WindowOverlay.prototype._init;
|
||||
Workspace.WindowOverlay.prototype._init = function(windowClone, parentActor) {
|
||||
let metaWindow = windowClone.metaWindow;
|
||||
@@ -529,4 +524,4 @@ function disable() {
|
||||
|
||||
function init() {
|
||||
/* do nothing */
|
||||
}
|
||||
}
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
<schemalist gettext-domain="gnome-shell-extensions">
|
||||
<enum id="org.gnome.shell.extensions.native-window-placement.strategy">
|
||||
<value nick="natural" value="0" />
|
||||
<value nick="grid" value="1" />
|
||||
</enum>
|
||||
<schema id="org.gnome.shell.extensions.native-window-placement" path="/org/gnome/shell/extensions/native-window-placement/">
|
||||
<key name="strategy" enum="org.gnome.shell.extensions.native-window-placement.strategy">
|
||||
<default>'natural'</default>
|
||||
<_summary>Window placement strategy</_summary>
|
||||
<_description>The algorithm used to layout thumbnails in the overview. 'grid' to use the default grid based algorithm,
|
||||
'natural' to use another one that reflects more the position and size of the actual window</_description>
|
||||
</key>
|
||||
<key name="use-more-screen" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Use more screen for windows</_summary>
|
||||
<_description>Try to use more screen for placing window thumbnails by adapting to screen aspect ratio, and consolidating
|
||||
them further to reduce the bounding box. This setting applies only with the natural placement strategy.</_description>
|
||||
</key>
|
||||
<key name="window-captions-on-top" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Place window captions on top</_summary>
|
||||
<_description>If true, place window captions on top the respective thumbnail, overriding shell default of placing it at
|
||||
the bottom. Changing this setting requires restarting the shell to have any effect.</_description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
Reference in New Issue
Block a user