The workspace management done by auto-move-windows is semi-dynamic,
in that it collects empty workspaces at the end, and ensures there
is always one free.
This is undesirable when the user explicitly choose static
workspaces in the tweak tool or in dconf-editor.
A long due update, since this was merged in gjs and core shell.
We no longer need to mess with __proto__ and prototype, and can
use decent syntax for true object oriented programming.
(This affects all except xrandr-indicator, since I want to port
that to GDBus too, using the new bindings right from the start)
Retrieve Convenience from the extension helper object (Me), and
pass no arguments to initTranslations and getSettings (since the
metadata has all that is required)
Introduce a common settings.mk file, which is included in extensions
that need GSettings, to ensure that conventions are respected, and
necessary fixes can be applied from one place.
Add "gettext-domain", "extension-id" (containing the base part of the
UUID) and "gschemabase" (which, combined with "extension-id", gives
the GSettings schema) to metadata.json, autogenerated by the build
system.
It is not used anymore, now that translations are bundled with
the extension. Also, in the zip files it ended up with my home
folder, which is not nice.
Common code for retrieving translations and GSettings schemas has
been factored out into lib/convenience.js, which is part of
every extension installation.
Since that code relies on renames done at zip file creation time,
extensions can no longer be installed with "make install". Instead,
one should create the zip file and install it with the tweak-tool.
There is also a bash script, local-install.sh, that will install
everything in zip-files.
Also, since the GSettingsSchemaSource code is not yet in a stable
GLib release, extensions using GSettings have seen their stable
shell version removed.
Now, typing "make zip-file" will create a standard zip-file for each
extension, with everything necessary, including translations and GSettings schemas.
These files can then be installed with the tweak-tool or uploaded
at extensions.gnome.org
Based on an earlier patch by Jasper St. Pierre.
This is the stable release, so we support all of GNOME Shell
stable cycle without updates.
(As said earlier, dock and alternate-tab have issues, so they're
not marked 3.2 but just 3.2.0)
main() has been replaced by init(), enable() and disable()
I'm not sure it actually disables, it should unless you have more
extensions messing with the same methods.
Using the auto move window the overview is not shown when the last
window on the last workspace is closed, instead the workspace before is
activated. This differs from the core gnome-shell's behaviour. Fix the
extension to show the ovreview instead of changing workspace when the
last window is closed on the last workspace. The fix is basically merged
from gnome-shell master.
Summarizing, the behaviour is now:
- The last window is closed on any workspace but the last: do nothing
- The last window is closed on the last workspace: show the overview
instead of switching to the "upper" workspace
https://bugzilla.gnome.org/show_bug.cgi?id=651586
Using the auto move window the overview is not shown when the last
window on a workspace is closed, instead the workspace before is
activated. Fix the extension to show the ovreview instead of changing
workspace when the last window is closed. The fix is basically merged
from gnome-shell master.
https://bugzilla.gnome.org/show_bug.cgi?id=651586
GNOME Shell emits a warning when "url" is absent in metadata.json,
adding it costs nothing. Links to the GIT repository because I
found no better page to reference.
Modify workspace management to only remove empty workspaces at end,
which is more consistent with a fixed workspace layout.
Also, some whitespace cleanup.
Patch provided by Thomas Bouffon <thomas.bouffon@gmail.com>
First of all, remove windows that are not interesting (like popup
menus and tooltips). Then, queue once an idle if the app is null,
in the hope that ShellWindowTracker picks up the window.
Introduce a new extensions that allows to manage your workspaces
more easily, assigning a specific workspace to each application,
as soon as it creates a windows, in manner configurable with a
GSettings key.