Commit Graph

183 Commits

Author SHA1 Message Date
Romain Vigier
1087a0f6c1 extensions-app: Update authors list
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2114>
2022-02-12 14:51:30 +00:00
Romain Vigier
77bd26fe07 extensions-app: Enable/disable an extension by activating the row
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2114>
2022-02-12 14:51:30 +00:00
Romain Vigier
859ded5790 extensions-app: Remove extension row revealer
Make all the actions (open website, open preferences, remove extension) and
information (description, version number) readily available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2114>
2022-02-12 14:51:30 +00:00
Romain Vigier
db39b792c2 extensions-app: Change lists style class to .boxed-list
The previous `.content` style class is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2114>
2022-02-12 14:51:30 +00:00
Romain Vigier
bd82a335f3 extensions-app: Move headerbar content to the main view
With the new borderless style of libadwaita, the global switch in the headerbar
did not look good. Moving it to the main view is the opportunity to also move
the content of the information popover.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2114>
2022-02-12 14:51:30 +00:00
Florian Müllner
a1dd1b25d8 js: Use templates for non-translatable strings
This reverts commit 9d941f8202 and replaces all additional
instances of .format() that have been added since.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2160>
2022-02-12 12:29:52 +00:00
Florian Müllner
5442266f28 js: Simplify promisify() calls
If the finish function isn't specified, promisify will now try
to use the async name without '_async'/'_begin' suffix (if any)
and '_finish' appended.

Everything except IBus uses a variation of that pattern, so there's
quite a bit of boilerplate we get to remove…

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2174>
2022-02-11 16:24:01 +00:00
Florian Müllner
869560e054 extensions-tool: Request missing attribute
g_file_enumerator_iterate() requires an enumerator that was created
with standard::file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2121>
2022-01-22 13:05:30 +00:00
Florian Müllner
330894f84a Bump version to 42.alpha
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2095>
2022-01-10 19:20:59 +01:00
Romain Vigier
ab5977713b extensions-app: Use AdwPreferencesPage and AdwPreferencesGroup
Give consistent styling and sizing to extensions lists.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
2022-01-05 15:50:47 +01:00
Romain Vigier
1359cedc00 extensions-app: Vertically center updates bar text
With the new stylesheet, the text is too close to the bar border.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
2022-01-05 15:50:47 +01:00
Romain Vigier
e0f2674d8b extensions-app: Replace empty views with AdwStatusPage
AdwStatusPage provides consistent styling for empty views.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
2022-01-05 15:50:47 +01:00
Romain Vigier
35b26229bc extensions-app: Use .content class for lists
Since the `.content` class comes with its own separators, we
don't need the property `use-separators` on the list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
2022-01-05 15:50:47 +01:00
Romain Vigier
ec0ee7eaec extensions-app: Use .heading class for headings
Don't hardcode headings styling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
2022-01-05 15:50:47 +01:00
Florian Müllner
f0754431bf extensions-app: Use Adw.Application's automatic style loading
Now that we switched to AdwApplication, we can automate loading
the custom stylesheet by simply using the expected name and
resource prefix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
2022-01-05 15:50:43 +01:00
Romain Vigier
891978b4eb extensions-app: Use AdwApplication
Initialize libadwaita, which loads the libadwaita stylesheet
and allow following the dark style preference of the system.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1997>
2022-01-05 14:33:35 +01:00
Florian Müllner
65450a836e build: Drop incorrect positional arg
Unlike other targets that take a name, i18n.merge_file() does not.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2078>
2021-12-23 18:43:25 +00:00
Florian Müllner
00e5f40ddd build: Use meson's gnome.post_install()
... instead of the external script.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2077>
2021-12-23 15:52:21 +00:00
Florian Müllner
daf729de11 build: Replace deprecated meson functions
Replace deprecated functions with their direct replacements:

 - dep.get_pkgconfig_variable() → dep.get_variable()
 - prg.path() → prg.full_path()
 - source/build_root() → project_source/build_root()

In one case we need meson.global_source_root() that was only
added in meson 0.58, so bump the requirement to that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2077>
2021-12-23 15:52:21 +00:00
Florian Müllner
e8d5564e9e extensions-app: Start as service when D-Bus activated
When the app is properly launched, D-Bus activation will be followed
by a call to org.freedesktop.Application.Activate() to open the window.

But it's also possible for D-Bus activation to happen in other
circumstances, for example during gdbus command line completion.

We don't want to pop up a window then, so pass the --gapplication-service
flag to properly separate D-Bus activation from activating the app.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2076>
2021-12-22 21:04:33 +00:00
Florian Müllner
09ed1c533c extensions-tool/prefs: Log D-Bus errors
We currently ignore any error that may occur when calling the
OpenExtensionPrefs D-Bus method. Right now such an error is highly
unlikely, given that we already checked that we are running under
gnome-shell and the extension in question exists and has prefs.

We'll soon make sure that only one dialog is shown at any time,
which is an error that we can realistically expect, so handle that
properly.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4564

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
2021-10-30 21:50:47 +00:00
Florian Müllner
79f448958b extensions-tool: Add missing newline
Unlike g_warning() and friends, g_printerr() does not append
a trailing newline.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4564

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2013>
2021-10-30 21:50:47 +00:00
Florian Müllner
0bf515eb10 Bump version to 41.0
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1981>
2021-09-19 12:47:55 +02:00
Florian Müllner
72e3e60411 Bump version to 41.rc.1
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1976>
2021-09-07 15:15:11 +02:00
Florian Müllner
743044291d Bump version to 41.rc
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1971>
2021-09-05 09:35:45 +02:00
Florian Müllner
537f754fb0 build: Move metainfo version check into distscript
The time we really care about current release information in appdata is
when preparing a release, not during regular builds.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1968>
2021-09-04 23:46:46 +02:00
Florian Müllner
ef70364e81 cleanup: Replace non-standard ByteArray module
gjs landed support for TextDecoder/TextEncoder. Use those instead
of gjs' own ByteArray module.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1946>
2021-09-01 14:49:30 +00:00
Florian Müllner
06c4929493 subprojects: Use meson compile to generate translations
... for the same cosmetic reasons as the previous commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1937>
2021-08-24 08:18:26 +00:00
Florian Müllner
ea6433b2cb extensions-tool: Remove GNOME Software reference from man page
It no longer manages extensions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1956>
2021-08-22 19:25:34 +00:00
Florian Müllner
aec128fdee Bump versiont to 41.beta
Update NEWS.
2021-08-18 01:10:41 +02:00
Florian Müllner
1deb13e1aa extensionUtils: Add gettext convenience helpers
We have initTranslations() for binding an extension's
gettext domain, but nothing to help with using gettext
from an extension.

Such help would be useful though, as an extension that
calls textdomain() like a normal application would
inadvertently changes the default domain for the whole
gnome-shell process.

Instead, extensions have to use domain-specific versions
of the gettext functions:

```js
const Gettext = imports.gettext.domain('my-extension');
const _ = Gettext.gettext;
```

Make this a bit easier by adding those functions directly
to the extensions object when initTranslations() is called,
then expose helper functions for calling them.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2594

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1941>
2021-08-14 18:45:25 +00:00
Florian Müllner
df76c3fd11 Update links to use HEAD instead of master
That way the link will keep working when projects change their
default branch name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1914>
2021-07-18 21:45:46 +00:00
Leleat
f8cd01c6dc extension-tool: Always print extension location after its creation
The extension location was only printed, if there was no handler for
the newly created extension. This is confusing for new extension
developers. So always print the extension location.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2515.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1856>
2021-05-25 18:30:25 +00:00
Florian Müllner
e6089c83e2 extensions-app: Enable hardware acceleration
GTK4 will make use of it if it's available, so allow it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1854>
2021-05-19 18:23:56 +02:00
Florian Müllner
fe466fafce Post-release version bump 2021-05-14 16:54:06 +02:00
Florian Müllner
bf6d668cab Post-release version bump 2021-03-20 13:40:49 +01:00
Florian Müllner
750ade34da extensions-app: Fix broken metainfo
Eeeks, should have put the post-release version bump into a MR.
2021-03-15 16:39:28 +01:00
Florian Müllner
55323e44af Post-release version bump 2021-03-15 16:23:45 +01:00
Florian Müllner
1d5f3f14fa Tag release 40.rc
Update NEWS.
2021-03-15 16:17:06 +01:00
Florian Müllner
fe4fa1d2b0 extension-tool/create: Update for new versioning scheme
The "shell-version" field generated by the create command still
uses the old even/odd schema instead of the new "alpha", "beta"
etc. one.

Do that now, and also drop the different behavior for stable/unstable
releases (that is, always use only the major number, i.e. "40").

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3787

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1719>
2021-02-26 23:06:43 +01:00
Florian Müllner
5cd7434abd Post-release version bump 2021-02-23 00:22:58 +01:00
Florian Müllner
d6a1414a94 extensions-app: Use development profile for nightly build
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>
2021-02-11 17:47:27 +01:00
Florian Müllner
5069572f85 extensions-app: Stop prefixing .desktop file
Adding prefixes like (Nightly) is discouraged nowadays in favor of
the radioactive icon overlays.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>
2021-02-11 17:47:27 +01:00
Florian Müllner
6bea1e7a47 extensions-app: Include commit hash in nightly version
It's useful information for development snapshots, so include
it when building from a git checkout.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>
2021-02-11 17:45:00 +01:00
Florian Müllner
60d640189b extensions-app: Support building a separate Devel app
Follow the pattern used by most GNOME applications and add a profile
build option that allows building a Devel app instead of the regular
release.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>
2021-02-11 17:45:00 +01:00
Florian Müllner
e8ca92a0ff extensions-app: Pick up app ID from package
This will allow us to build different applications from the
same sources (namely "Extensions" and "Extensions Nightly").

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3612

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1661>
2021-02-11 17:45:00 +01:00
Leleat
9fcbf3d0f9 extensions-app: Add description tooltip to rows
... to allow showing the full description in case the label is ellipsized.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1663>
2021-02-11 11:20:30 +01:00
Florian Müllner
ec0d8e3a72 extensions-tool: Remove menu arrow from extension template
We stopped putting arrows into the top bar, so we shouldn't encourage
new extensions to still do that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1618>
2021-02-01 11:40:03 +00:00
Florian Müllner
5070e6405c Post-release version bump (again) 2021-01-18 17:46:04 +01:00
Florian Müllner
40ac6143a4 Tag release 40.alpha.1.1
Like the mutter 40.alpha.1.1 release, we missed adjusting to a
GSettings schema move from g-s-d to gsettings-desktop-schemas,
resulting in an abort on startup with the latest released
gnome-settings-daemon.
2021-01-18 17:41:04 +01:00
Florian Müllner
40b65f21f3 Post-release version bump 2021-01-14 18:34:05 +01:00
Florian Müllner
edd34c50d9 Port extensions app and portal to GTK4
With the previous preparations in place, it is time to take the plunge.

As both the app and the portal use the same small library for handling
external windows, port everything at once to avoid the hassle of building
and installing two versions of the library.

With the portal using GTK4 now, all extensions must port their preference
widgets as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
1bb0e1b9fc extensions-app: Explicitly dispose window when removed
Unlike in previous GTK version (or Clutter), destroy() no longer
breaks reference cycles but just releases the reference held by
GTK itself.

So any reference we hold - either the explicit property or any signal
handlers that bind the window as `this` - prevents the window from
being disposed when closed, and the application won't quit.

Work around this by explicitly running dispose() on the window when
it is removed from the application.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
3af90918a3 extensions-app: Stop using :margin shortcut
The property has been removed in GTK4, so prepare for a port by
setting the four individual margin properties instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
ad6fbaa245 extensions-app: Don't use deprecated margin-left/right properties
Use the text-direction-aware start/end variants instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
8eb1792d39 extensions-app: Use consistent style for property names
GtkBuilder understands both dashes and underscores in property names,
and we currently use a mix of both. The actual properties use dashes,
so settle on that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
20a68a609c extensions-app: Set title on window instead of headerbar
GTK4 will remove the GtkHeaderBar:title property, so stop using it
and set the window's title property instead, as that's what headbars
use in both GTK3 and GTK4 unless explicitly overridden.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
c9c7629753 extensions-app: Remove stray angle brackets
Not sure how those sneaked in. GtkBuilder apparently ignores them,
but that's no reason for keeping them.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
eb0339e223 shew: Use Xlib to set transient hint
The GDK API for setting the hint has been removed in GDK4, so prepare
for a port by using the underlying Xlib API directly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1495>
2021-01-14 13:03:21 +00:00
Florian Müllner
9ef9a5ff8a build: Pre-generate man pages at dist time
The man pages don't change very often, but draw in both docbook and
asciidoc. The latter is particularly problematic, as some distros
still ship only a python2 version of the tool.

Address this by generating the man pages at dist time, and including
the result in the tarball.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1553>
2020-12-28 02:25:24 +01:00
Florian Müllner
93115c3d8f Change upcoming version (again)
The extension website doesn't handle the chosen scheme correctly,
so use 40.alpha.1 instead.
2020-12-25 23:30:25 +01:00
Florian Müllner
adaa5ec6bd build: Change upcoming version to 40.alpha2
I messed up and released 40.alpha at the same time as 3.38.2, when it's
supposed to be in January. In order to re-align with the schedule, change
the upcoming version to 40.alpha2 so we don't have to skip a release and
will be back on track in time of 40.beta.
2020-12-22 01:46:14 +01:00
Florian Müllner
f2ee1587da Post-release version bump 2020-12-02 20:40:04 +01:00
Florian Müllner
12d9761c29 Tag version 40.alpha
Update NEWS.
2020-12-02 18:44:14 +01:00
Florian Müllner
9ef59b3b4f extensions-app: Add extension filtering
It's possible for the list of installed extension to get long
enough to make searching more convenient than scrolling.

Support that by implementing the standard search pattern[0]
with a hidden search bar and a toggle in the headerbar.

[0] https://developer.gnome.org/hig/stable/search.html.en

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3382
2020-11-12 22:05:46 +00:00
Florian Müllner
8d43deaad5 extensions-app: Add quit action
It's good practice to support the standard <ctrl>-q shortcut, so
add a corresponding action and set its accel accordingly.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3335
2020-10-28 21:45:18 +01:00
Florian Müllner
deb78b9ada Bump version to 40.alpha
The GNOME project has adopted a new versioning scheme[0], and
GNOME 3.38 will be followed by GNOME 40.

Open the new development cycle by switching to the new scheme, as
well as to post-release bumps as recommended.

[0] https://discourse.gnome.org/t/new-gnome-versioning-scheme/4235

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1456
2020-10-06 15:06:03 +02:00
Florian Müllner
b3c106c63b Bump version to 3.38.1
Update NEWS.
2020-10-05 20:36:03 +02:00
Bastien Nocera
3029119c9a subprojects: Update libgvc
This update is necessary to add support for recent UCM related changes
in ALSA and PulseAudio.

See https://gitlab.gnome.org/GNOME/libgnome-volume-control/-/merge_requests/10

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1444
2020-09-21 15:08:46 +02:00
Florian Müllner
de78ed980c Bump version to 3.38.0
Update NEWS.
2020-09-14 17:56:13 +02:00
Florian Müllner
2ab6edda03 Bump version to 3.37.92
Update NEWS.
2020-09-06 01:04:54 +02:00
Florian Müllner
852303f71b Bump version to 3.37.91
Update NEWS.
2020-08-24 17:56:01 +02:00
Florian Müllner
33ff3dc44f Bump version to 3.37.90
Update NEWS.
2020-08-11 17:41:51 +02:00
Florian Müllner
7031449f01 Bump version to 3.37.3
Update NEWS.
2020-07-07 19:01:21 +02:00
Florian Müllner
35d21c0bca Bump version to 3.37.2
Update NEWS.
2020-06-03 01:29:26 +02:00
Koki Fukuda
3522338b3d extensions-tool: Escape '\' and '"' in json string
If user-input string contains '\' and/or '"', extensions-tool
generates invalid json.
This fixes that by escaping '\' and '"'.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1279
2020-05-28 11:23:19 +00:00
Florian Müllner
9cad7ae975 extensions-app: Indicate extension errors
Currently there is no indication that an extension had an error except
for the sensitivity of the switch (which may have a different cause).

This is useful information to users, so add a small error indicator
alongside the updates icon and show the actual error in the details.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2337
2020-05-21 21:45:04 +00:00
Florian Müllner
d2583aa47b extensions-app: Reset switch handle when it becomes insensitive
Currently the switches handle position reflects the requested
extension state (as in: the user (de)activated the switch),
while the actual extension state is reflected by the underlying
state.

That doesn't work well when the switch is insensitive though (for
example on error), because the desaturation neuters the color
that reflects the state.

Address this by resetting the switch handle to the state when
making it insensitive.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1263
2020-05-21 21:29:31 +00:00
Florian Müllner
94dca1606f extensions-app: Add permission to talk to gnome-session
This is required for offering a "Logout" option when handling extension
updates.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2735
2020-05-07 15:58:06 +00:00
Florian Müllner
27774582b6 extensions-app: Fix Logout call
Commit 764527c8c9 adjusted the "call" call to promisification that
never happened (in this bit of code).

We can either add back a callback or properly promisify the call;
this opts for the latter.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2735
2020-05-07 15:58:06 +00:00
AsciiWolf
05485fe04c extensions-app: Fix translatable string
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1231
2020-05-01 14:14:35 +02:00
Florian Müllner
f1af37f220 Bump version to 3.37.1
Update NEWS.
2020-04-29 21:40:33 +02:00
Florian Müllner
b02e3719b3 extensions-app: Rename executable
We kept the old binary name when overhauling the tool for the Extensions
app to avoid unnecessary churn for packagers/distributors.

However we now have a reason to "free" the old name, so rename the binary
to match the (sub)project name.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1220
2020-04-28 00:06:19 +02:00
Andy Holmes
3dc4f01113
JS: migrate from the global window to globalThis
As of mozjs68 (gjs-1.64) `globalThis` is recommended over `window` and
it makes more sense in this context anyways. Migrate the few instances
of `window` we use and adjust the eslint configuration.

`window` will continue to resolve to `globalThis`, so this won't affect
extensions or other downstream users.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2322

closes #2322
2020-04-26 19:07:02 -07:00
Jan Tojnar
9f1ad5d86d extension-tool/build: Install completions relative to our datadír
It is a good practice to install files relative to our own variables

https://www.bassi.io/articles/2018/03/15/pkg-config-and-paths/

and it is required on systems like NixOS.

Thanks to Iñigo, bash-completion support that since 2.10:

https://github.com/scop/bash-completion/pull/344

---

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1194
2020-04-13 15:27:09 +00:00
Florian Müllner
1b5cf0b8a8 build: Bump version requirement
We are currently optionally using a 0.53 feature, bump the requirement
to make it non-optional.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1186
2020-04-07 23:13:27 +02:00
Florian Müllner
306b005943 extensions-tool: Add small indicator template
Adding an additional icon to the top bar is one of the more common
patterns used by extensions. Make this easier by providing a template
for it.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
d229abf07d extensions-tool: Prompt for template when appropriate
When creating an extension interactively, we currently always use
the default template unless the --template option is used.

Instead, display the list of available templates to the user and
prompt them to pick one if it wasn't specified.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
6f6251c0bc extensions-tool: Add --template create option
We now have everything in place to allow users to pick a template
other than the default one (although at the moment it's the only
one we have), so add a corresponding option.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
fd034e3551 extensions-tool: Add hidden --list-templates option
This isn't a very useful option on its own, but will be used to
provide completions for a user-visible --template option.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
f9bee05d49 extensions-tool: Add template metadata
When we allow users to choose between different templates, we should
provide some context for each template to facilitate that choice.

Add that metadata in the form of a .desktop file, which allows us to
specify name and description, and is well supported by our translation
infrastructure.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
37c6fbc6b2 extensions-tool: Prepare for alternative templates
The template used when creating a new extension is intentionally
minimal, as the sample code in the old extensions-tool proved to
be annoying more often than not.

However as we support per-command options, we don't have to limit
ourselves to a single template, and can offer alternatives for
common use cases.

To prepare for that, namespace the existing template by moving it
into a subfolder.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
9719604b79 extensions-tool: Separate create metadata when prompting
When using the create command's --interactive option, we prompt for
any metadata that wasn't passed on the command line. As every prompt
is preceded by a short multi-line description, it is hard to follow
when everything is lumped together.

Improve legibility by separating all prompts by newlines.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
b6262f0666 extensions-tool: Handle NULL input when prompting for metadata
g_data_input_stream_read_line_utf8() may return NULL, for example
when interrupting the prompt with ^D. Handle that case and keep
prompting until we got a line.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/812
2020-04-07 20:27:00 +00:00
Florian Müllner
d80ef67d1d extension-tool: Use enable/disable D-Bus API if possible
Commit 4589da957 added D-Bus API for enabling/disabling extensions,
use that if possible to provide better feedback and not clutter the
settings with non-existent UUIDs.

The old code path is preserved as fallback to keep the commands
working from outside a running shell session.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2391
2020-04-05 13:42:50 +02:00
Florian Müllner
62f3457a95 extensions-tool/uninstall: Error out for system extensions
UninstallExtensions() only returns whether the operation was successful,
not why it failed. However we know that only user extensions can be
uninstalled, so check that first to provide a more meaningful error.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2391
2020-04-05 13:42:50 +02:00
Florian Müllner
636ab4b0e9 extensions-tool: Split out get_extension_property() helper
For the prefs command, we first fetch the extension info to check
whether the extension exists and actually has preferences. This
pattern can be useful for other commands and properties, so split
out a generic helper function.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2391
2020-04-05 13:42:50 +02:00
Florian Müllner
23e382dd33 extensions-tool: Log existing errors
In many cases we currently only indicate failure in the return value,
which is easily missed. Print some meaningful errors instead.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2391
2020-04-05 13:42:50 +02:00
Florian Müllner
f5a170ce46 extensions-tool: Add common option to silence errors
Error reporting is useful when used interactively, but often undesirable
when used in scripts. Account for that with a common --quiet option,
which is more convenient than redirection stderr to /dev/null.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2391
2020-04-05 13:42:50 +02:00
Florian Müllner
fbd6beea2c extensions-app: Validate .desktop file during meson test
... if desktop-file-validate is available.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1160
2020-04-05 11:02:00 +00:00