Compare commits

...

1482 Commits

Author SHA1 Message Date
Jeremy Bícha
caaca66c74 releasing package gnome-shell-extensions version 50~alpha-1 2026-02-10 08:49:09 -05:00
Jeremy Bícha
ad23447a2e gnome-classic: Remove Provides: x-session-manager 2026-02-10 08:48:40 -05:00
Jeremy Bícha
03f2e97b57 Run wrap-and-sort 2026-02-10 08:47:23 -05:00
Jeremy Bícha
ea01a72a48 debian/copyright: updates 2026-02-10 08:44:53 -05:00
Jeremy Bícha
9579fea6be Bump Standards Version to 4.7.3 2026-02-10 08:41:11 -05:00
Daniel van Vugt
de2c1953b4 Add new gnome-session files to gnome-classic 2026-02-10 16:25:41 +08:00
Daniel van Vugt
1e5428134b debian/changelog: Fix typo copied from NEWS 2026-02-10 16:18:52 +08:00
Daniel van Vugt
3f96465cba debian: Add missing dependency
Of gnome-shell-extensions on gnome-shell-extension-status-icons
2026-02-10 16:16:12 +08:00
Daniel van Vugt
917228d35c debian/changelog: Draft an entry for 50~alpha 2026-02-10 16:10:27 +08:00
Daniel van Vugt
863fd1724f Merge tag 'upstream/50_alpha' into debian/latest 2026-02-10 16:08:51 +08:00
Daniel van Vugt
020d99d463 New upstream version 50.alpha 2026-02-10 16:05:03 +08:00
Florian Müllner
6cadcd0674 Bump version to 50.alpha
Update NEWS.
2026-01-14 13:34:56 +01:00
Jordan Petridis
1b2bf601e1 Update POTFILES.in
Followup to 377467876d

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/439>
2026-01-12 11:59:52 +00:00
Ibai Oihanguren Sala
2466e352a5 Update Basque translation 2026-01-11 20:01:00 +00:00
Baurzhan Muftakhidinov
7c455cb548 Update Kazakh translation 2026-01-11 18:03:09 +00:00
twlvnn kraftwerk
8f3baad61e Update Bulgarian translation 2026-01-01 16:42:48 +00:00
twlvnn kraftwerk
59bb24ce2d Update Bulgarian translation 2026-01-01 16:31:17 +00:00
twlvnn kraftwerk
fe11a0d8b9 Update Bulgarian translation 2026-01-01 15:59:05 +00:00
twlvnn kraftwerk
467487c0cf Update Bulgarian translation 2026-01-01 15:56:22 +00:00
Hugo Carvalho
43198efbc2 Update Portuguese translation 2025-12-30 23:19:48 +00:00
Asier Saratsua Garmendia
69c52fc031 Update Basque translation
(cherry picked from commit 58f6e6f048b980225c7922d9724d78366cfb1e58)
2025-12-18 08:51:32 +00:00
Adrian Vovk
2df8fc4fb2 gnome-classic: Define a gnome-session session
For one, this is simply more correct: the gnome-classic session is a
different session from the default gnome session. So let's define it as
such

For two, this enables us to directly tell gnome-shell which shell mode
to use, rather than passing it through an environment variable. In other
words, this enables us to integrate with
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3960
2025-12-16 15:44:02 -05:00
Jeremy Bícha
ada172e8d1 releasing package gnome-shell-extensions version 49.0-4 2025-12-15 23:55:52 -05:00
Jeremy Bícha
d15040a6f6 gnome-classic: add Depends: fonts-adwaita 2025-12-15 23:55:30 -05:00
Jeremy Bícha
a6f7fdab22 Remove obsolete dh_gnome_clean override
dh_gnome_clean no longer exists
2025-12-15 23:54:06 -05:00
Jeremy Bícha
c3105ecb80 releasing package gnome-shell-extensions version 49.0-3 2025-12-05 21:09:19 -05:00
Jeremy Bícha
9e13f39313 debian/copyright: fix some issues noticed by Lintian 2025-12-05 21:07:00 -05:00
Jeremy Bícha
dbe2a49850 gnome-shell-extensions-common: Set Multi-Arch: foreign
per Multiarch hinter
2025-12-05 20:59:10 -05:00
Jeremy Bícha
59ccc9b7f6 Remove unnecessary Priority: optional field
no longer recommended in unreleased Debian Policy
and no longer a warning in unreleased lintian
2025-12-05 20:58:56 -05:00
Giannis Antypas
bfa3e52c6e Update Greek translation 2025-11-09 01:49:08 +00:00
Jordan Petridis
377467876d gnome-classic: Drop xorg sessions
Remove the xorg .desktop file sessions, and also the separate
-wayland desktop file since we will only have a single Session
now that will be a Wayland session.

Mirror of the changes in gnome-session [1]

[1]: https://gitlab.gnome.org/GNOME/gnome-session/-/merge_requests/98

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/283>
2025-11-05 14:47:26 +01:00
Florian Müllner
d80ae21740 js: Always use EVENT_STOP/EVENT_PROPAGATE in event handlers
The constants are more self-explanatory (and therefore readable)
than plain true/false.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/435>
2025-11-02 20:03:06 +01:00
Florian Müllner
30347ea701 js: Always use SOURCE_CONTINUE/SOURCE_REMOVE in source functions
The constants are more self-explanatory (and therefore readable)
than plain true/false.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/435>
2025-11-02 19:53:44 +01:00
Jeremy Bícha
0d786a0fc2 releasing package gnome-shell-extensions version 49.0-2 2025-10-31 08:34:52 -04:00
Florian Müllner
14e847102f auto-move-windows: Use correct namespace for DesktopAppInfo
The type is platform-specific, so use the correct GioUnix namespace.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/434>
2025-10-30 15:17:11 +01:00
Florian Müllner
c0df345bea tools: Update ci-run-eslint
We are currently still using eslint 8.x which has been unsupported
for quite a while. Update the ci-run-eslint script to a version
that uses the supported eslint 9.x.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/433>
2025-10-28 22:18:39 +01:00
Florian Müllner
9ae6d55e0d tools: Symlink node_modules in project root
NPM assumes quite strongly that it manages the project as a
whole and its package/lock files are located in the project
root.

While we somehow managed to keep the npm tooling in a subfolder,
this comes at the cost of breaking imports of additional modules.

This will become relevant when we update eslint to a supported
version, as we want to keep using the `junit` formatter in CI,
which has now been split out into a separate module.

So bite the bullet and make the node_modules folder available in
the project root.

On the plus side, having the node_modules folder in the project
root allows language servers in IDEs/editors to pick it up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/431>
2025-10-28 21:45:07 +01:00
Florian Müllner
a8b5705274 tools: Pin git node modules
Both changes in the config (like new/changes rules) and the eslint wrapper
(like updating to eslint 9.x) could require changes here, and therefore
require a conscious update rather than randomly breaking the CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/431>
2025-10-28 21:45:07 +01:00
Florian Müllner
93eac46b1d lint: Enable 'prefer-const' rule
Now that all code conforms with the rule, we can enforce it to make
sure we stick to it with new code.

Relax the rule for destructuring, so we don't have to jump through
hoops to avoid "mixed" assignments.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/432>
2025-10-26 15:09:30 +00:00
Florian Müllner
57b7f526df js: Use const declarations where possible
It is useful to indicate clearly that a value is read-only, and
we have already been doing so for new code for a long time. But
in order to actually enforce this, we have to adjust all existing
code.

Luckily the change is trivial enough to do (thanks to `eslint --fix`),
so do it now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/432>
2025-10-26 15:09:30 +00:00
Florian Müllner
ef285ea96b ci: Drop check-merge-request job
The job is broken due to permission changes in GitLab, and it seems what
is checked for is now the default, making the job less useful, thus drop
it.

Related: https://gitlab.freedesktop.org/freedesktop/ci-templates/-/issues/81
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/430>
2025-10-25 12:15:35 +02:00
Florian Müllner
f6ed0ef74b ci: Use !reference tag for pipeline/prereview guards
It's a bit more flexible than yaml anchors, and already used in
mutter and gnome-shell for the same purpose.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/430>
2025-10-25 12:13:24 +02:00
Florian Müllner
40068b2359 ci: Consistently use dashes in job/stage names
We currently have a mix of dashes and underscores, with the former
being predominantly used by newer jobs, so settle on that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/430>
2025-10-25 12:11:43 +02:00
Florian Müllner
4f7b9de4a2 workspace-indicator: Use visible property to control edit mode
Using a 0 opacity and making the inactive actor non-reactive works,
but is less obvious than properly hiding it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/429>
2025-10-20 14:48:35 +02:00
Florian Müllner
9ce153437c reuse: Replace multi-line string with string list
The latest version of the reuse tool no longer supports multi-line
strings, so use a string list instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/425>
2025-10-15 00:43:37 +02:00
BoF ButterflyOfFire
0bfbd6738e Update Kabyle translation 2025-09-16 17:52:19 +00:00
Jeremy Bícha
eeb61cd96b releasing package gnome-shell-extensions version 49.0-1 2025-09-15 07:33:33 -04:00
Jeremy Bícha
a4162b0730 Bump Standards Version to 4.7.2 2025-09-15 07:32:30 -04:00
Jeremy Bícha
ed5797ff43 New upstream release 2025-09-15 07:31:04 -04:00
Jeremy Bícha
e734cc0689 Update upstream source from tag 'upstream/49.0'
Update to upstream version '49.0'
with Debian dir b591508587
2025-09-15 07:30:42 -04:00
Jeremy Bícha
1c5d965e3c New upstream version 49.0 2025-09-15 07:30:41 -04:00
Jeremy Bícha
9cc5bf586f Update changelog 2025-09-15 07:30:32 -04:00
Florian Müllner
437c61ac13 Bump version to 49.0
Update NEWS.
2025-09-14 22:07:46 +02:00
Antoine Jacoutot
027e8c1674 system-monitor: Unbreak runtime on (at least) BSD
Calling glibtop_init is not optional on BSD[0], and not doing so will
crash gnome-shell with:

  glibtop(c=57582): [ERROR] glibtop_get_swap: Function not implemented
  gnome-session-binary[34511]: WARNING: Application 'org.gnome.Shell.desktop' killed by signal 6

[0]: https://gitlab.gnome.org/GNOME/libgtop/-/issues/44

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/356>
2025-09-14 21:43:25 +02:00
Aurimas Aurimas Černius
d03a2a49f1 Update Lithuanian translation 2025-09-13 18:23:24 +00:00
Jiri Grönroos
595a73e171 Update Finnish translation 2025-09-11 16:55:08 +00:00
Florian Müllner
229d39701a workspace-indicator: Ignore 'e' press when already in edit mode
While events should already be consumed by the entry while editing,
it does not hurt to be explicit, so only process 'e' to enter edit
mode while not already in edit mode.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/423>
2025-09-11 04:06:44 +02:00
Florian Müllner
e9153db954 workspace-indicator: Add missing return value to event handler
Event handlers are expected to return a boolean to indicate whether
the event should be stopped or propagated further. Omitting the
return value effectively means returning a random value, which can
lead to unexpected behavior.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/423>
2025-09-10 19:48:25 +02:00
Florian Müllner
6d45688dc7 ci: Publish releases on extensions website
Use the new `gnome-extensions upload` command to publish the
generated bundles to the extension website when run in a tag
pipeline.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/422>
2025-09-10 19:37:00 +02:00
Florian Müllner
327bcbae42 ci: Bump js image
gnome-shell switched to F43 for its JS image, follow suit.

Notably the image contains the `gnome-extensions upload` command,
which will allow us to automate publishing releases to the extensions
website.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/422>
2025-09-10 19:36:26 +02:00
Florian Müllner
a3dce37094 window-list: Adjust to renamed gesture
The action to bring up the OSK is now gesture-based, and was therefore
renamed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/576
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/421>
2025-09-08 14:18:22 +02:00
Florian Müllner
ecc0932ba4 Bump version to 49.rc
Update NEWS.
2025-08-31 18:37:59 +02:00
Yosef Or Boczko
82f99d904d Update Hebrew translation 2025-08-30 20:37:11 +00:00
Balázs Úr
b02872eca0 Update Hungarian translation 2025-08-27 21:09:57 +00:00
Piotr Drąg
8e74914d33 Update Polish translation 2025-08-25 18:00:26 +02:00
Nathan Follens
497a1546ee Update Dutch translation 2025-08-19 21:51:27 +00:00
Daniel Rusek
1143b893e2 Update Czech translation 2025-08-18 21:56:47 +00:00
Dušan Kazik
d426ff10f8 Update Slovak translation 2025-08-14 10:25:52 +00:00
Emilio Sepúlveda
77d6867141 Update Interlingua translation 2025-08-05 02:58:36 +00:00
Florian Müllner
eeb86824f0 Bump version to 49.beta
Update NEWS.
2025-08-03 12:38:46 +02:00
Jordi Mas i Hernandez
b433b00344 Update Catalan translation 2025-08-03 08:47:37 +00:00
Florian Müllner
96031ee1e7 lint: Remove old configuration
It is now unused after the switch to the new flat config format.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/408>
2025-07-30 17:44:23 +00:00
Florian Müllner
f4bf96cbbc ci: Use script from tools to run eslint
Now that we include a more public version of the script, there
is no reason to keep the original script just for CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/408>
2025-07-30 17:44:23 +00:00
Florian Müllner
7d41858bab tools: Switch to flat config for eslint
Both the .json and .yml config formats are deprecated in favor
of flat configs exported from eslint.config.js files.

The good news is that gjs' config is now available as a shared
config from the `eslint-config-gnome` package in World/javascript,
so we no longer have to copy the entire thing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/408>
2025-07-30 17:44:23 +00:00
Florian Müllner
f1e0058e67 tools: Add run-eslint.sh script
The script is a small wrapper around the `ci-run-eslint` package
from World/javascript, which is a generalized and improved version
of the .gitlab-ci/run-eslint script from gnome-shell.

It only requires `npm` to be available, so it simplifies running
eslint locally quite a lot

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/408>
2025-07-30 17:44:23 +00:00
Danial Behzadi
c03a76bb77 Update Persian translation 2025-07-29 10:32:26 +00:00
Makoto Sakaguchi
ed3db834b3 Update Japanese translation 2025-07-14 08:54:41 +00:00
Marco Trevisan (Treviño)
80ad8ca283 d/copyright: Update references
And drop a trailing space
2025-07-08 23:26:48 +02:00
Marco Trevisan (Treviño)
24893f750d debian/control: Remove gnome-classic-xsession
We do not need to add any transitional package here, since if someone
was only relying on gnome-classic-xsession it was also depending on
gnome-classic and that will pull in the rest

Gbp-Dch: Full
2025-07-08 23:10:53 +02:00
Marco Trevisan (Treviño)
70bbc3a6d8 New upstream release 2025-07-08 22:34:37 +02:00
Marco Trevisan (Treviño)
d10d7185b8 Update upstream source from tag 'upstream/49_alpha.1'
Update to upstream version '49~alpha.1'
with Debian dir eb7d245514
2025-07-08 22:34:37 +02:00
Marco Trevisan (Treviño)
686d7cd4eb New upstream version 49~alpha.1 2025-07-08 22:34:36 +02:00
Marco Trevisan (Treviño)
fe4bd7eb24 d/watch: Watch for alpha versions 2025-07-08 22:34:11 +02:00
Anders Jonsson
b8baead85b Update Swedish translation 2025-07-02 21:26:16 +00:00
Florian Müllner
9fd7f7a939 Bump version to 49.alpha.1
Update NEWS.
2025-06-29 01:15:46 +02:00
Sergej A.
7466de0f20 Update Russian translation 2025-06-28 16:37:22 +00:00
Álvaro Burns
6f7dabe3f0 Update Brazilian Portuguese translation 2025-06-24 14:53:46 +00:00
Vasil Pupkin
0f4121ee71 Update Belarusian translation 2025-06-21 12:53:28 +00:00
Ekaterine Papava
8797f13694 Update Georgian translation 2025-06-21 04:44:06 +00:00
Florian Müllner
9e11ec9940 cleanup: Remove unused eslint-disable directives
The 'camelcase' rule only applies to variables and properties,
not to function names are getter/setter.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/413>
2025-06-18 23:31:15 +00:00
Florian Müllner
3a76b9eec4 cleanup: Remove unused catch bindings
Optional catch bindings have been supported for quite a while now,
so we can treat unused error bindings in catch statements like
any other unused variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/413>
2025-06-18 23:31:15 +00:00
Yago Raña
5a84fe0051 Update Galician translation 2025-06-18 18:11:24 +00:00
Luming Zh
01f7a6e32c Update Chinese (China) translation 2025-06-18 00:43:48 +00:00
Yuri Chornoivan
a3d27dd674 Update Ukrainian translation 2025-06-17 16:14:35 +00:00
Florian Müllner
0081bd0d99 window-list: Animate transitions to/from overview
Instead of abruptly hiding/showing the window list, slide it out/in
when transitioning to/from the overview.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/568
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/412>
2025-06-17 15:44:23 +00:00
Emin Tufan Çetin
c59d6cdad8 Update Turkish translation 2025-06-17 15:17:08 +00:00
Martin
7d48bcc845 Update Slovenian translation 2025-06-17 15:10:34 +00:00
Florian Müllner
76514e8b23 window-list: Adjust to workspace-indicator changes
Keep the `.panel-button` class to get the expected hover/focus/active
styling when using a regular menu button, but remove the horizontal
padding when using previews for fittsability.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:12 +02:00
Florian Müllner
1899d502a9 workspace-indicator: Remove workspace names from prefs
Now that names can be changed from the extension itself, we no
longer need to expose them in the prefs dialog.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
762903618d workspace-indicator: Allow changing workspace names from menu
Instead of requiring the user to open the prefs dialog to change
workspace names, make the menu items themselves editable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
b5ac041c1a workspace-indicator: Include workspace settings
While the "Multitasking" panel in Settings already exposes workspace
settings, it makes sense to expose them in our prefs dialog as well
where they are more in context.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
83d7ae031b workspace-indicator: Refine preview settings
Add a group title, and change the single switch row to radio rows
to explicitly choose between "Previews" and "Workspace Name".

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
17b37ff577 workspace-indicator: Add background when using name label
Panel buttons are flat, so the name+arrow are not immediately
recognizable as a single control. Address this by adding a
background to the button when using the name label.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
ee2c76de1d workspace-indicator: Show full name when using menu
With workspace names becoming a more prominent feature, it makes
sense to expose them without opening the menu.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
01d8d4871e workspace-indicator: Expose active workspace name on menu
When not using previews, we currently use a numerical presentation
like "1 / 4" for the top bar button. We will change that to use
the active workspace name instead.

As the menu already has to track workspace switches and name changes,
expose the active workspace name there, so that the button doesn't
have to duplicate the tracking.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
1186b2a7a0 workspace-indicator: Include menu with previews
The menu is currently only used when previews are disabled. But
as we are going to use the menu for changing workspace names, it
should be always available. So add it unconditionally, and show
it on right-click when using previews.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
2840a6b364 workspace-indicator: Remove preview labels
Previews are no longer used in the menu, so they are never
shown with labels.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
990e340366 workspace-indicator: Add back plain workspaces menu
Unlike in the top bar, the previews in the menu were not too
successful. Change back to a regular menu with a list of workspace
names.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
c9678e89d2 workspace-indicator: Split out WorkspacesMenu
The menu currently only contains the previews without any logic
on its own. This is about to change, so split the menu into a
separate class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
53ba3ce620 workspace-indicator: Remove left-over variable
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/405>
2025-06-17 17:02:11 +02:00
Florian Müllner
301017904b lint: Require dangling comma in multi-line imports
This keeps the config in line with gjs, which added the option
in gjs@f7d3b5d4c8.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/411>
2025-06-17 15:59:58 +02:00
Florian Müllner
0ad959de1e window-list: Only remove fullscreen tracking in overview
Since commit 981e8e42e2, we untrack chrome in the overview to avoid
fullscreen tracking interfering with hiding the window list in the
overview.

However this also means that we no longer contribute to the struts
while in the overview, which can lead to unwanted window resizes
around the transition.

So instead of fully untracking the actor, retrack without fullscreen
tracking.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/409>
2025-06-17 13:13:09 +02:00
Florian Müllner
a3ff3c79b2 Revert "window-list: Fix initial visibility"
Since we no longer track fullscreen state in the overview,
the workaround is no longer necessary.

This reverts commit 6ee4205f1e.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/409>
2025-06-17 13:13:09 +02:00
Florian Müllner
8819ed01c8 Bump version to 49.alpha.0
Update NEWS.
2025-06-08 13:40:14 +02:00
Florian Müllner
59e6aefd5e build: Use build-aux for auxiliary build scripts
This is the name most projects have settled on, so let's use that
as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/406>
2025-06-08 13:22:39 +02:00
Jeremy Bícha
edb105ecec releasing package gnome-shell-extensions version 48.2-1 2025-05-27 09:02:09 -04:00
Jeremy Bícha
3b2a9c1e44 New upstream release 2025-05-27 09:01:39 -04:00
Jeremy Bícha
e3822036de Update upstream source from tag 'upstream/48.2'
Update to upstream version '48.2'
with Debian dir 8476855c2f
2025-05-27 09:01:39 -04:00
Jeremy Bícha
4052f0694e New upstream version 48.2 2025-05-27 09:01:38 -04:00
Emilio Sepúlveda
7c6c4f0ef9 Update Interlingua translation 2025-05-27 00:22:06 +00:00
Florian Müllner
f1e2121b5e Bump version to 48.2
Update NEWS.
2025-05-24 19:10:03 +02:00
Neal Gompa
27c86490c2 build: Do not install anything in xsessions when X11 is disabled
Fixes: b05eb4eb6d ("build: Allow disabling the X11 session")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/400>
(cherry picked from commit 2552c92fe1)
2025-05-23 19:09:47 +02:00
Neal Gompa
64900f4a2e build: Allow disabling the X11 session
This is consistent with gnome-session and the rest of the GNOME
session stack.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/396>
(cherry picked from commit b05eb4eb6d)
2025-05-23 19:09:32 +02:00
Daniel Buch Hansen
bf84e5d58f windowsNavigator: Adjust to get_key_focus() changes in Clutter
Clutter.Stage.get_key_focus() now always returns the value of
the Clutter.Stage.keyFocus property, whereas previously it
would return the stage itself when no explicit focus was set.

Adjust the code accordingly.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/561
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/395>
(cherry picked from commit e06b1e8236)
2025-05-23 19:09:21 +02:00
Neal Gompa
2552c92fe1 build: Do not install anything in xsessions when X11 is disabled
Fixes: b05eb4eb6d ("build: Allow disabling the X11 session")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/400>
2025-05-12 21:45:26 +00:00
Jordan Petridis
d6b605e801 meson: Switch the x11 default value to false
We might remove it completely this cycle, but till then we certainly want
to disable it by default regardless

Mirror change of gnome-session [1]

[1] 21f10a9eda

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/399>
2025-05-12 22:49:54 +03:00
Florian Müllner
b0b0f527be screenshot-window-sizer: Adapt to maximization changes
Mutter now exposes the is_maximized() method for checking for
full maximization, and the plain (un)maximize() methods no
longer cover partial maximization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/398>
2025-05-07 13:17:56 +02:00
Florian Müllner
30f4beb3e1 window-list: Adapt to maximization changes
Mutter now exposes the is_maximized() method for checking for
full maximization, and the plain (un)maximize() methods no
longer cover partial maximization.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/398>
2025-05-07 13:16:34 +02:00
Neal Gompa
b05eb4eb6d build: Allow disabling the X11 session
This is consistent with gnome-session and the rest of the GNOME
session stack.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/396>
2025-04-24 09:40:01 -04:00
Jeremy Bícha
b09da8172c releasing package gnome-shell-extensions version 48.1-1 2025-04-17 10:55:32 -04:00
Jeremy Bícha
23b902dbef New upstream release 2025-04-17 10:54:40 -04:00
Jeremy Bícha
e8aeb41c22 Update upstream source from tag 'upstream/48.1'
Update to upstream version '48.1'
with Debian dir 20b4372336
2025-04-17 10:54:40 -04:00
Jeremy Bícha
e6f477f38a New upstream version 48.1 2025-04-17 10:54:39 -04:00
Daniel Buch Hansen
e06b1e8236 windowsNavigator: Adjust to get_key_focus() changes in Clutter
Clutter.Stage.get_key_focus() now always returns the value of
the Clutter.Stage.keyFocus property, whereas previously it
would return the stage itself when no explicit focus was set.

Adjust the code accordingly.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/561
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/395>
2025-04-14 18:57:14 +02:00
Florian Müllner
76e4dbae3f Bump version to 48.1
Update NEWS.
2025-04-13 17:06:43 +02:00
Danial Behzadi
1d2155b446 Update Persian translation 2025-04-01 03:45:27 +00:00
Hugo Carvalho
f68d61eeca Update Portuguese translation 2025-03-29 14:54:30 +00:00
Jeremy Bícha
18b3f6e271 releasing package gnome-shell-extensions version 48.0-1 2025-03-17 10:23:21 -04:00
Jeremy Bícha
386e6fdbc4 New upstream release 2025-03-17 10:22:35 -04:00
Jeremy Bícha
9bae2c5985 Update upstream source from tag 'upstream/48.0'
Update to upstream version '48.0'
with Debian dir 7a86a4ba31
2025-03-17 10:22:35 -04:00
Jeremy Bícha
6bc806ffd7 New upstream version 48.0 2025-03-17 10:22:31 -04:00
Florian Müllner
63e6fec602 Bump version to 48.0
Update NEWS.
2025-03-16 13:25:14 +01:00
Stuart Hayhurst
27d463f572 meta: Correct case and styling for "Launch new instance" and "windowNavigator"
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/392>
2025-03-15 15:31:02 +00:00
Victor Kareh
f4e044b4fe apps-menu: Scroll application into view when active
When an ApplicationMenuItem becomes active, scroll the application
scroll box so that it becomes visible. This stopped working when the
gnome-shell API changed from getActive()/setActive() to the active
GObject property.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/562

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/391>
2025-03-13 18:56:07 -04:00
Florian Müllner
3b4e241b26 apps-menu: Stop tracking icon-theme changes
St.Icon already tracks theme change, so this is no longer necessary.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/390>
2025-03-13 22:46:51 +01:00
Jeremy Bícha
4c1f143359 releasing package gnome-shell-extensions version 48~rc-1 2025-03-03 12:42:07 -05:00
Jeremy Bícha
2562b2f42f New upstream version 48~rc 2025-03-03 12:40:37 -05:00
Jeremy Bícha
0f3b9d8d6d New upstream release 2025-03-03 12:40:37 -05:00
Jeremy Bícha
53883fc51f Update upstream source from tag 'upstream/48_rc'
Update to upstream version '48~rc'
with Debian dir f8278d7689
2025-03-03 12:40:37 -05:00
Florian Müllner
019c935647 Bump version to 48.rc
Update NEWS.
2025-03-03 17:23:22 +01:00
Florian Müllner
29d11e5879 screenshot-window-sizer: Adjust to mutter change
Mutter no longer hides the `event` parameter in Meta.KeyHandlerFuncs,
so update the function to account for the additional parameter.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/559

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/388>
2025-03-03 16:18:52 +01:00
Jeremy Bícha
1606a50a76 releasing package gnome-shell-extensions version 48~beta-2 2025-03-02 05:31:40 -05:00
Jiri Grönroos
662fe8e144 Update Finnish translation 2025-03-02 10:02:51 +00:00
Luming Zh
8bf1132bec Update Chinese (China) translation 2025-03-02 06:20:42 +00:00
Aurimas Černius
c989fa165c Update Lithuanian translation 2025-02-24 20:27:18 +00:00
Yuri Chornoivan
881d5aae59 Update Ukrainian translation 2025-02-23 20:17:24 +00:00
Ekaterine Papava
d9ff138f9e Update Georgian translation 2025-02-23 05:58:19 +00:00
Anders Jonsson
fcf8892bf7 Update Swedish translation 2025-02-22 22:01:50 +00:00
Piotr Drąg
082b585ae6 Update Polish translation 2025-02-22 12:55:50 +01:00
Daniel Rusek
898f7b0d6f Update Czech translation 2025-02-20 22:44:26 +00:00
Mathews M
fecd26851f Update Malayalam translation 2025-02-15 02:37:36 +00:00
Emilio Sepúlveda
8a7d2fd86d Update Interlingua translation 2025-02-14 13:38:39 +00:00
Florian Müllner
f1f05b58b9 ci: Pull in defaults/workflow from template
The template was added recently, so the same rules don't have
to be replicated by every project.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/385>
2025-02-06 02:06:02 +01:00
Florian Müllner
c9838125a1 ci: Includes templates from project
Now that the freedesktop templates are mirrored on GNOME infrastructure,
we don't have to include them via HTTPS anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/385>
2025-02-06 01:59:40 +01:00
Jeremy Bícha
048f3c48f2 releasing package gnome-shell-extensions version 48~beta-1 2025-02-05 06:31:59 -05:00
Jeremy Bícha
678b72cb57 New upstream release 2025-02-05 06:28:23 -05:00
Jeremy Bícha
b0795b8841 Update upstream source from tag 'upstream/48_beta'
Update to upstream version '48~beta'
with Debian dir 29b403c363
2025-02-05 06:28:23 -05:00
Jeremy Bícha
d0bd498efe New upstream version 48~beta 2025-02-05 06:28:22 -05:00
Jeremy Bícha
f62c2daad7 releasing package gnome-shell-extensions version 47.4-1 2025-02-05 06:26:11 -05:00
Jeremy Bícha
28fb677629 New upstream release 2025-02-05 06:24:48 -05:00
Jeremy Bícha
6cc06e1aef Update upstream source from tag 'upstream/47.4'
Update to upstream version '47.4'
with Debian dir 4818bbc5b1
2025-02-05 06:24:47 -05:00
Jeremy Bícha
b84d5407ce New upstream version 47.4 2025-02-05 06:24:44 -05:00
Florian Müllner
af35772b72 Actually bump version
Fixes: 61b5bdb4 ("Bump version to 48.beta")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/384>
2025-02-05 12:11:54 +01:00
Florian Müllner
61b5bdb4e9 Bump version to 48.beta
Update NEWS.
2025-02-05 00:43:25 +01:00
Florian Müllner
fa5c4bade1 Bump version to 47.4
Update NEWS.
2025-02-05 00:40:33 +01:00
Florian Müllner
aa5df48c45 apps-menu: Set BoxLayout orientation
Use the new `orientation` property instead of `vertical`, as the
latter is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/380>
2025-01-27 20:02:36 +01:00
Florian Müllner
3929dd86bc workspace-indicator: Set BoxLayout orientation
Use the new `orientation` property instead of `vertical`, as the
latter is deprecated.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/380>
2025-01-27 20:02:36 +01:00
Emilio Sepúlveda
b1b16bcfe1 Add Interlingua translation 2025-01-20 21:45:01 +00:00
Rafael Fontenelle
e2b1503acd Update Brazilian Portuguese translation 2025-01-20 00:13:23 +00:00
Florian Müllner
a7d4d8df80 window-list: Use correct params when re-tracking chrome
Since commit 981e8e42, we temporarily untrack the window-list actor
while in the overview.

However as we don't pass pass the chrome parameters when re-tracking
chrome, the window-list no longer contributes to struts or tracks
fullscreen changes, whoops.

Make sure to pass the original parameters when re-tracking chrome
to restore the expected behavior.

Fixes: 981e8e42 ("window-list: Untrack chrome while in overview")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/550
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/379>
(cherry picked from commit 01f7df1e8a)
2025-01-16 12:09:05 +01:00
Florian Müllner
01f7df1e8a window-list: Use correct params when re-tracking chrome
Since commit 981e8e42, we temporarily untrack the window-list actor
while in the overview.

However as we don't pass pass the chrome parameters when re-tracking
chrome, the window-list no longer contributes to struts or tracks
fullscreen changes, whoops.

Make sure to pass the original parameters when re-tracking chrome
to restore the expected behavior.

Fixes: 981e8e42 ("window-list: Untrack chrome while in overview")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/550
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/379>
2025-01-15 12:39:22 +01:00
Jeremy Bícha
ad443ba451 releasing package gnome-shell-extensions version 47.3-1 2025-01-14 10:13:04 -05:00
Jeremy Bícha
d920760706 Opt into dpkg build API v1 2025-01-14 10:12:27 -05:00
Jeremy Bícha
3bdb4d72b4 New upstream release 2025-01-14 10:04:29 -05:00
Jeremy Bícha
cef7e3fbcd Update upstream source from tag 'upstream/47.3'
Update to upstream version '47.3'
with Debian dir 7d59b581e4
2025-01-14 10:04:29 -05:00
Jeremy Bícha
0deab770e3 New upstream version 47.3 2025-01-14 10:04:25 -05:00
Florian Müllner
b7de680805 Bump version to 48.alpha
Update NEWS.
2025-01-13 17:21:40 +01:00
Florian Müllner
791682e836 ci: Switch ci-templates to master
The alternative is to monitor the upstream repository and update
the references when necessary. I don't have the resources to do
that, so trust upstream to not mess up their development branch.

(cherry picked from commit 4e50e9f8dc)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/376>
2025-01-13 16:29:57 +01:00
Florian Müllner
4e50e9f8dc ci: Switch ci-templates to master
The alternative is to monitor the upstream repository and update
the references when necessary. I don't have the resources to do
that, so trust upstream to not mess up their development branch.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/375>
2025-01-13 16:11:09 +01:00
Florian Müllner
c815e506dd Bump version to 47.3
Update NEWS.
2025-01-12 21:59:15 +01:00
Florian Müllner
176206a38c places-menu: Remove left-over modeline
This one slipped through commit 253ddb864 ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/370>
(cherry picked from commit 83c41bad30)
2025-01-12 20:53:59 +00:00
Bartłomiej Piotrowski
72b2534790 ci: Switch to GNOME GitLab mirror of ci-templates
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/368>
(cherry picked from commit 0f69d7663b)
2025-01-12 20:53:59 +00:00
Florian Müllner
28ac6906c2 ci: Adapt to updated release module template
The release module moved into production now. The process changed
slightly with regard to the testing period, so we will have to
adapt the existing job a bit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 5d8d3601b4)
2025-01-12 20:53:59 +00:00
Florian Müllner
e30f634d08 ci: Move LINT_LOG variable out of global section
It is only used by the eslint job, so better define it there.

While at it, make sure the variable is quoted as that's considered
good practice (even when safe to use unquoted as in this case).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit ea77b557e5)
2025-01-12 20:53:59 +00:00
Florian Müllner
aed90a3f6c ci: Use variable for meson build directory
This ensures that the value is consistent between jobs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 9f48149346)
2025-01-12 20:53:59 +00:00
Florian Müllner
7054010520 Revert "ci: Use meson introspect to generate artifact path"
The new release service that now moved into production expects
the tag to match the release version.

Instead of using the $VERSION-real pattern in case of error,
switch to a pre-push hook to hopefully prevent those errors
in the first place:

  https://gitlab.gnome.org/-/snippets/6710

This reverts commit 8c014a6b1d.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 0d1b279a64)
2025-01-12 20:53:59 +00:00
Florian Müllner
cc3e2842a8 ci: Bump js image
gnome-shell switched to F41 for its JS image, follow suit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/365>
(cherry picked from commit b30871d105)
2025-01-12 20:53:59 +00:00
Florian Müllner
f6d4e44ee4 workspace-indicator: Do not only exclude DESKTOP windows
There are other window types that should be excluded from workspace
previews, including more common ones like menus. Instead of checking
for a variety of window types, delegate the decision to mutter by
checking for the `skip-taskbar` property.

(The internal `skip-pager` property would be more apt in this case,
but as it only differs from `skip-taskbar` for X11 clients that
explicitly set one and not the other, it shouldn't matter in practice)

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/537
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/363>
(cherry picked from commit 77a11fd9cd)
2025-01-12 20:53:59 +00:00
Florian Müllner
bcf0be86af window-list: Untrack chrome while in overview
The window list is set up to track the monitor's fullscreen state.
Monitors are never considered in fullscreen while showing the overview,
so if shell's layout manager updates the fullscreen visibility after
we hid the bottom bar, it ends up being visible in the overview.

To avoid this, untrack the actor while the overview is visible.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/364>
(cherry picked from commit 981e8e42e2)
2025-01-12 20:53:59 +00:00
Florian Müllner
fb86b18cf1 window-list: Fix disconnecting window signals in context menu
Menus are not actors themselves, so they are not "destroyables" in
terms of automatic signal disconnection, with the result that we
currently leak window signals.

Fix this by using the menu's actor as tracked object, so the signals
are disconnected automatically when the actor is destroyed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/474
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/362>
(cherry picked from commit 4a841dfd49)
2025-01-12 20:53:59 +00:00
Florian Müllner
6400be4a6c places-menu: Update fake mount operation source
gnome-shell now checks for an associated drive to automatically
cancel the operation on disconnect, so fake the corresponding
method. While at it, drop the `get_icon()` method that hasn't
been used for quite a while now.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/508
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
(cherry picked from commit 8957f488dc)
2025-01-12 20:53:59 +00:00
Florian Müllner
b1f727fa34 places-menu: Catch errors during async operation
Uncaught errors in async functions don't provide a good stack, because
the unhandled promise rejection masks the error that triggered it.

While we already handle *expected* errors inside the function, make
sure we catch all errors to get useful stack information for unexpected
errors as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
(cherry picked from commit e0b68a319e)
2025-01-12 20:53:59 +00:00
Yi-Jyun Pan
459d654b23 Update Chinese (Taiwan) translation
(cherry picked from commit 97d0a0e514)
2025-01-12 15:59:50 +00:00
Yi-Jyun Pan
97d0a0e514 Update Chinese (Taiwan) translation 2025-01-12 15:59:38 +00:00
Sabri Ünal
5a3812e5d6 Update Turkish translation 2025-01-11 14:39:59 +00:00
Florian Müllner
83c41bad30 places-menu: Remove left-over modeline
This one slipped through commit 253ddb864 ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/370>
2025-01-10 13:40:03 +01:00
Florian Müllner
2a45d8c145 window-list: Add attention indicator
Some X11 clients still rely on the traditional urgent/demand-attention
hints instead of notifications to request the user's attention.

Support these by adding a visual indication to the corresponding
buttons, based on the visual indicator in libadwaita's tabs.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/543
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/366>
2025-01-08 12:46:37 +00:00
Bartłomiej Piotrowski
0f69d7663b ci: Switch to GNOME GitLab mirror of ci-templates
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/368>
2024-12-27 10:17:38 +01:00
Florian Müllner
5d8d3601b4 ci: Adapt to updated release module template
The release module moved into production now. The process changed
slightly with regard to the testing period, so we will have to
adapt the existing job a bit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
2024-12-17 22:34:16 +01:00
Florian Müllner
ea77b557e5 ci: Move LINT_LOG variable out of global section
It is only used by the eslint job, so better define it there.

While at it, make sure the variable is quoted as that's considered
good practice (even when safe to use unquoted as in this case).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
2024-12-17 22:34:00 +01:00
Florian Müllner
9f48149346 ci: Use variable for meson build directory
This ensures that the value is consistent between jobs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
2024-12-17 22:34:00 +01:00
Florian Müllner
0d1b279a64 Revert "ci: Use meson introspect to generate artifact path"
The new release service that now moved into production expects
the tag to match the release version.

Instead of using the $VERSION-real pattern in case of error,
switch to a pre-push hook to hopefully prevent those errors
in the first place:

  https://gitlab.gnome.org/-/snippets/6710

This reverts commit 8c014a6b1d.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
2024-12-17 22:26:20 +01:00
Florian Müllner
b30871d105 ci: Bump js image
gnome-shell switched to F41 for its JS image, follow suit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/365>
2024-12-05 13:26:28 +01:00
Florian Müllner
77a11fd9cd workspace-indicator: Do not only exclude DESKTOP windows
There are other window types that should be excluded from workspace
previews, including more common ones like menus. Instead of checking
for a variety of window types, delegate the decision to mutter by
checking for the `skip-taskbar` property.

(The internal `skip-pager` property would be more apt in this case,
but as it only differs from `skip-taskbar` for X11 clients that
explicitly set one and not the other, it shouldn't matter in practice)

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/537
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/363>
2024-12-04 22:20:45 +00:00
Florian Müllner
981e8e42e2 window-list: Untrack chrome while in overview
The window list is set up to track the monitor's fullscreen state.
Monitors are never considered in fullscreen while showing the overview,
so if shell's layout manager updates the fullscreen visibility after
we hid the bottom bar, it ends up being visible in the overview.

To avoid this, untrack the actor while the overview is visible.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/364>
2024-12-03 12:28:06 +01:00
Florian Müllner
4a841dfd49 window-list: Fix disconnecting window signals in context menu
Menus are not actors themselves, so they are not "destroyables" in
terms of automatic signal disconnection, with the result that we
currently leak window signals.

Fix this by using the menu's actor as tracked object, so the signals
are disconnected automatically when the actor is destroyed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/474
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/362>
2024-12-02 13:10:50 +01:00
Florian Müllner
8957f488dc places-menu: Update fake mount operation source
gnome-shell now checks for an associated drive to automatically
cancel the operation on disconnect, so fake the corresponding
method. While at it, drop the `get_icon()` method that hasn't
been used for quite a while now.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/508
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
2024-11-30 14:56:27 +01:00
Florian Müllner
e0b68a319e places-menu: Catch errors during async operation
Uncaught errors in async functions don't provide a good stack, because
the unhandled promise rejection masks the error that triggered it.

While we already handle *expected* errors inside the function, make
sure we catch all errors to get useful stack information for unexpected
errors as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
2024-11-30 14:48:10 +01:00
Jeremy Bícha
8a7871b926 releasing package gnome-shell-extensions version 47.2-1 2024-11-25 13:48:51 -05:00
Jeremy Bícha
0e1895d7b7 New upstream release 2024-11-25 13:48:37 -05:00
Jeremy Bícha
d1422ddb33 Update upstream source from tag 'upstream/47.2'
Update to upstream version '47.2'
with Debian dir 8d5f4aad9b
2024-11-25 13:48:36 -05:00
Jeremy Bícha
5b0f7e40d4 New upstream version 47.2 2024-11-25 13:48:34 -05:00
Florian Müllner
70e2a02e69 Bump version to 47.2
Update NEWS.
2024-11-25 16:14:41 +01:00
Florian Müllner
079daac9bb screenshot-window-sizer: Mention shortcut in description
Loosely based on the README entry, so users know how to actually use the
extension.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/541
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/358>
2024-11-25 15:43:54 +01:00
Florian Müllner
3f1aa9f221 screenshot-window-sizer: Mention shortcut in description
Loosely based on the README entry, so users know how to actually use the
extension.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/541
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/358>
2024-11-25 14:37:37 +00:00
Florian Müllner
99d49c1800 places-menu: Inherit from PopupImageMenuItem
PopupImageMenuItems used to position the icon after the label,
so we ended up with our own icon+label items.

However the icon position was changed years ago in the shell, so
inherit from PopupImageMenuItem instead.

This does not only simplify the code a bit, but also pulls in
features we are currently missing, like a11y labelling.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/542
(cherry picked from commit 568826e489)
2024-11-25 14:19:07 +01:00
Florian Müllner
95c4bc5d87 build: Sync check-version script with gnome-shell
The script was updated to not require appstream-util to check for
a corresponding release element in metainfo.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/354>
(cherry picked from commit 1218aee87f)
2024-11-25 14:18:56 +01:00
Florian Müllner
451a12d1fd cleanup: Use consistent line break style in meson.build
Either have all arguments on the same line, or have a separate
line for every argument (that is, don't special-case the first
arg).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 265935e14b)
2024-11-25 14:18:35 +01:00
Florian Müllner
48b917ab86 cleanup: Fix indent errors in meson.build
We are supposed to use a 2-space indent, but some inconsistencies
sneaked in over time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit b903618050)
2024-11-25 14:18:00 +01:00
Florian Müllner
d273dc4e59 cleanup: Always use dangling commas in meson.build
This is meson's default formatting, and matches what we already
do in JS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 720933b08e)
2024-11-25 14:17:53 +01:00
Florian Müllner
683080441f cleanup: Use format strings in meson.build
Those are a bit more concise than ''.format(), and have been
in meson for a long time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 85ee8829bf)
2024-11-25 14:17:45 +01:00
Florian Müllner
5bbf7f5c6c build: Use SPDX identifier for license
Meson strongly recommends to use SPDX identifiers for the license
string, and there's no reason for us to not do so.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 6df4905286)
2024-11-25 14:17:35 +01:00
Florian Müllner
f30990535f extensions: Remove modelines
We already include an .editorconfig that is supported by many
editors, including emacs, so no need to repeat an emacs-specific
modeline in every source file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 253ddb8642)
2024-11-25 14:17:25 +01:00
Florian Müllner
d14885f96d Add .editorconfig
This should ensure that all editors which support
https://editorconfig.org/ use the correct indentation
with spaces (not tabs) by default.

This is hardly a full specification of our coding style,
but it's a correct subset and better than nothing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 0ca156a2b6)
2024-11-25 14:15:52 +01:00
Yaron Shahrabani
d9ee5fdf55 Update Hebrew translation 2024-11-25 08:46:27 +00:00
Florian Müllner
568826e489 places-menu: Inherit from PopupImageMenuItem
PopupImageMenuItems used to position the icon after the label,
so we ended up with our own icon+label items.

However the icon position was changed years ago in the shell, so
inherit from PopupImageMenuItem instead.

This does not only simplify the code a bit, but also pulls in
features we are currently missing, like a11y labelling.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/542
2024-11-19 16:00:31 +01:00
Марко Костић
fde934fed7 Update Serbian translation
(cherry picked from commit 0a153b78f9)
2024-11-04 07:15:08 +00:00
Марко Костић
0a153b78f9 Update Serbian translation 2024-11-04 07:15:02 +00:00
Jeremy Bícha
697380130b releasing package gnome-shell-extensions version 47.1-1 2024-10-30 12:46:01 +01:00
Jeremy Bícha
ec0eb48131 Bump minimum meson to 1.1.0 2024-10-30 12:44:34 +01:00
Jeremy Bícha
54390185c8 New upstream release 2024-10-30 12:44:04 +01:00
Jeremy Bícha
9c56e9c515 Update upstream source from tag 'upstream/47.1'
Update to upstream version '47.1'
with Debian dir dafbb07580
2024-10-30 12:44:04 +01:00
Jeremy Bícha
a49f851320 New upstream version 47.1 2024-10-30 12:43:59 +01:00
Artur S0
2cbab10188 Update Russian translation 2024-10-28 14:20:30 +00:00
Nathan Follens
a8168d47fa Update Dutch translation
(cherry picked from commit 598007f994)
2024-10-27 22:37:40 +00:00
Nathan Follens
598007f994 Update Dutch translation 2024-10-27 22:37:35 +00:00
Vasil Pupkin
ad707e643d Update Belarusian translation 2024-10-22 14:21:09 +00:00
Florian Müllner
1218aee87f build: Sync check-version script with gnome-shell
The script was updated to not require appstream-util to check for
a corresponding release element in metainfo.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/354>
2024-10-21 10:14:02 +00:00
Jordi Mas i Hernandez
e31d7828e9 Update Catalan translation 2024-10-21 08:38:45 +00:00
Florian Müllner
265935e14b cleanup: Use consistent line break style in meson.build
Either have all arguments on the same line, or have a separate
line for every argument (that is, don't special-case the first
arg).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
b903618050 cleanup: Fix indent errors in meson.build
We are supposed to use a 2-space indent, but some inconsistencies
sneaked in over time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
720933b08e cleanup: Always use dangling commas in meson.build
This is meson's default formatting, and matches what we already
do in JS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
85ee8829bf cleanup: Use format strings in meson.build
Those are a bit more concise than ''.format(), and have been
in meson for a long time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
6df4905286 build: Use SPDX identifier for license
Meson strongly recommends to use SPDX identifiers for the license
string, and there's no reason for us to not do so.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
253ddb8642 extensions: Remove modelines
We already include an .editorconfig that is supported by many
editors, including emacs, so no need to repeat an emacs-specific
modeline in every source file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Florian Müllner
0ca156a2b6 Add .editorconfig
This should ensure that all editors which support
https://editorconfig.org/ use the correct indentation
with spaces (not tabs) by default.

This is hardly a full specification of our coding style,
but it's a correct subset and better than nothing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
2024-10-20 22:23:28 +00:00
Fabio Tomat
7fc2bbb896 Update Friulian translation 2024-10-20 20:05:12 +00:00
Fabio Tomat
06caed8c0c Update Friulian translation 2024-10-20 20:01:51 +00:00
Florian Müllner
eb4a17c2c8 docs: Mention code of conduct in README
All project interactions are subject to the code of conduct,
so it seems like a good idea to explicitly mention that in
the README.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
15ffbf147f docs: Elaborate on issue reporting
We currently just link to the issue tracker without providing
any further guidance.

Improve on that by pointing to the appropriate handbook chapter,
point out extensions as a possible source of issues, and direct
users towards discourse/matrix for support/discussions.

Based on a similar section in gnome-shell's README.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
3201a1f8ac docs: Add small introduction to extensions section
Directly starting the section with a long list doesn't look very
good :-)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
3f631c7398 docs: Add new "Ex-Extensions" subsection
It is odd that the first entry of the list of extensions refers
to an obsolete extension that was removed years ago.

Move it into a new "Ex-Extensions" subsection at the bottom of
the list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
84fc1b671f docs: Don't mention gsettings in auto-move description
The extension has included a preference dialog for a long time,
which is much more user-friendly than manually changing a
(relocatable!) gsetting.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
e41da8fcae docs: Use user data theme dir in user-themes description
The XDG paths are preferred over the old `~/.themes`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
6cfdd9db38 docs: Update list of extensions
The README has a list of extensions with a brief description, but
the most recent additions haven't been added yet. Rectify that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
f12badc7aa docs: Improve tone of support notice
Instead of a generic note about gnome-shell API stability and
extension compatibility in general, positively state what is
supported by the project.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
6e5cef8761 docs: Remove project wiki reference from README
The wiki is in the process of being retired, so we should stop
linking to it.

Death to the wiki!

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
0cb409f1c2 docs: Drop default branch section from README
It's been more than 3 years since we renamed the default branch,
people have probably got the message by now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/352>
2024-10-19 03:03:37 +00:00
Florian Müllner
2c922a6d3a gitlab: Add issue templates
Providing templates is good practice, to guide users
towards more actionable reports.

This also gives us a place to point out where to
report issues with gnome-shell's extension system
or the website, and thus hopefully reducing the
number of misfiled issues.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/351>
2024-10-19 04:50:13 +02:00
Florian Müllner
9991f90804 Bump version to 47.1
Update NEWS.
2024-10-18 21:54:13 +02:00
Florian Müllner
0bc77ef7c9 build: Rename meson_options.txt to meson.options
The name is a bit cleaner, and has been the preferred option(!)
since meson 1.1.

Mutter recently updated the name, so follow suite.

The meson version bump shouldn't be an issue, given that several
hard dependencies like mutter and glib already require higher
versions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/349>
(cherry picked from commit 1088435120)
2024-10-18 19:15:44 +02:00
Florian Müllner
099b2eeb49 cleanup: Use null for nick/blurb in ParamSpecs
As they are only used by gstreamer for gst-inspect & other tools.
Projects like mutter and gtk have already completely dropped them,
so follow their lead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/347>
(cherry picked from commit 46a4fa0976)
2024-10-18 19:15:02 +02:00
Florian Müllner
1088435120 build: Rename meson_options.txt to meson.options
The name is a bit cleaner, and has been the preferred option(!)
since meson 1.1.

Mutter recently updated the name, so follow suite.

The meson version bump shouldn't be an issue, given that several
hard dependencies like mutter and glib already require higher
versions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/349>
2024-10-18 17:29:27 +02:00
Florian Müllner
de6b9bf473 reuse: Use inline comments for markdown documents
Comments are hidden in gitlab, so including the copyright information
in the documents themselves doesn't get too much in the way.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/348>
2024-10-18 00:32:58 +02:00
Florian Müllner
62e95e4b28 reuse: Use CC-BY-SA-4.0 for licensing project documentation
Writing and maintaining free-form documentation is non-trivial
work, and CC0 is therefore not the right license.

Reflect that by changing the license to CC-BY-SA and update the
list of copyright holders based on the files' git history.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/348>
2024-10-18 00:32:58 +02:00
Florian Müllner
c8b54bdf25 docs: Remove obsolete sass submodule documentation
Thankfully the submodule is gone, so we don't have to document
how to updated it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/348>
2024-10-17 23:07:32 +02:00
Florian Müllner
46a4fa0976 cleanup: Use null for nick/blurb in ParamSpecs
As they are only used by gstreamer for gst-inspect & other tools.
Projects like mutter and gtk have already completely dropped them,
so follow their lead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/347>
2024-10-17 22:52:17 +02:00
Florian Müllner
b13984a752 export-zips: Use --destdir instead of custom prefix
meson skips some steps like schema compilation when DESTDIR is
set, so this is slightly more efficient.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/345>
(cherry picked from commit 8f75ccae34)
2024-10-17 20:59:07 +02:00
Florian Müllner
67cdd0bea2 window-list: Remove outdated style
A long time ago, the window list used to embed the bottom message
tray, which caused notifications to inherit the window-list's
font style.

Since that's no longer the case, we have no business in messing
with notification styling, so stop doing that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
(cherry picked from commit f1671bc206)
2024-10-17 20:56:38 +02:00
Florian Müllner
87a849c5af window-list: Switch to Adw.SwitchRow
libadwaita fixed the actionable implementation of Adw.SwitchRow,
so can use the convenience widget instead of composing our own.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341>
(cherry picked from commit 548d7659e1)
2024-10-17 20:56:26 +02:00
Florian Müllner
f0bff952be window-list: Remove superfluous bindings
The setting is already bound to the switch via the corresponding action,
no need to also set up a binding.

In fact, the second binding is actively harmful, as it keeps the
connection alive until dispose, so the setting is reset on
garbage collection.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/511

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341>
(cherry picked from commit 0162644041)
2024-10-17 20:56:18 +02:00
Florian Müllner
b3ff771a1d window-list: Add missing action
Commit 24ba03fe9 added a new setting, but forgot to create the
corresponding action.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341>
(cherry picked from commit 062a3d21ab)
2024-10-17 20:56:09 +02:00
Florian Müllner
3ef718d34c window-list: Fix active state
Commit c72b8b21 fixed the styling of the active window's button,
but missed that the `active` property uses the style information
as well.

Adjust it to use the correct actor when checking for the style class.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/529

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/342>
(cherry picked from commit a5a92026ac)
2024-10-17 20:55:59 +02:00
Florian Müllner
fb2d87c1da window-list: Fix minimized styling
Commit 039c66e7b7 wrapped the button in a container to
animate transitions, but didn't adjust the `.minimized`
styling to still apply to the button (where it is
expected) rather than the wrapper.

Fix this just like commit c72b8b21 did for the
`.focused` styling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/342>
(cherry picked from commit 28fd210f28)
2024-10-17 20:55:52 +02:00
Florian Müllner
6d3fbceec9 classic: Add missing top bar indicators
The only intended difference from the regular session is that the
date menu moves to the right. However in the meantime, gnome-shell
added a couple more (usually hidden) indicators, but we never
updated the session mode definition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/339>
(cherry picked from commit 81aade6659)
2024-10-17 20:55:43 +02:00
Florian Müllner
4da312040b window-list: Don't recreate icons on theme changes
All icons use `StIcon`, which already updates itself correctly
on icon theme changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337>
(cherry picked from commit d43abe0869)
2024-10-17 20:55:22 +02:00
Florian Müllner
89276cc184 window-list: Small stylesheet cleanup
The light stylesheet duplicates some declarations, and the
last occurrence matches what we already inherit from the
dark stylesheet.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337>
(cherry picked from commit 860c56f83e)
2024-10-17 20:55:07 +02:00
Jeremy Bícha
68e66259e2 releasing package gnome-shell-extensions version 47.0-3 2024-10-17 08:12:07 -04:00
Jeremy Bícha
75184584b9 Have system-monitor extension depend on gir1.2-gtop-2.0
Closes: #1085240
2024-10-17 08:10:45 -04:00
Martin
97d64614af Update Slovenian translation 2024-10-16 21:42:58 +00:00
Florian Müllner
8f75ccae34 export-zips: Use --destdir instead of custom prefix
meson skips some steps like schema compilation when DESTDIR is
set, so this is slightly more efficient.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/345>
2024-10-16 16:46:15 +02:00
Florian Müllner
a81f4f4885 places-menu: Add nautilus-specific items
Both the "Starred" and "Network" locations are internal to nautilus
and not exposed to gvfs.

We can still support them by opening them explicitly in nautilus,
so add corresponding places if nautilus is installed and set up
as default file manager.

After this change, the list of places should be consistent with
the sidebar in the file manager again.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/522
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
8a62e491a8 places-menu: Add "Trash" item
While much less prominent then "Recent", let's include it for
consistency with nautilus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
8da874355c places-menu: Add "Recent" item
Recent files are much more prominent in Nautilus nowadays, so it makes
sense to include it in the list of places.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
f0e7358de4 places-menu: Stop sorting special locations
Nautilus uses a fixed order rather than sorting items alphabetically,
so do the same.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
c4e344f1d7 places-menu: Drop user-special dirs
Nautilus no longer special-cases user directories, and instead
added them to the default bookmarks, so the user can customize
which they want to have displayed.

We already show bookmarked places, so just dropping the hard-coded
list gives us the same locations as nautilus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
411da924a7 places-menu: Drop root location
Nautilus no longer exposes it, so stop including it here as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
60f30c5bbe places-menu: Drop network item
Nautilus replaced its support for the `network:///` scheme with
an internal network view. The former now shows as empty folder,
so drop it from the list of places.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
1506a730c5 places-menu: Use Gio.File to check for equality
Strings may be different, but still refer to the same file
('/home/user' vs. '/home/user/', or even '/home/user/./').

Account for that by comparing files for equality rather than
paths.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
527ce99851 places-menu: Remove superfluous error handling
None of the constructors checks whether the file exists, so
there is no reason to check for `NOT_FOUND` errors.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/340>
2024-10-16 14:38:09 +00:00
Florian Müllner
51ce4981c8 window-list: Add workspaces page to prefs
This brings back the workspace-previews setting, and adds the
ability to change the workspace names.

Given that those names are used as tooltips or preview titles,
it makes sense to allow editing them from the extension prefs
rather than relying on external tools (like dconf-editor).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
63ea38a16d window-list: Remove workspace-previews setting from prefs
We are about to include the workspace prefs page from the
workspace-indicator extension, which already includes
the setting.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
3bc06bb78f window-list: Set title and icon on prefs page
Like the workspace prefs page, the existing window list prefs
should set title and icon for the view switcher.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
832cf0fc84 workspace-indicator: Set title and icon on prefs page
The window-list extension will add the workspace prefs as
additional page, so it needs a title and icon for the
view switcher.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
fc265fbe59 workspace-indicator: Don't mention "top bar" in prefs
The preferences will be shared with the window-list extension,
so avoid mentioning a specific placement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
1459e3d6f9 workspace-indicator: Use Adw.EntryRow for workspace rows
Entries in lists are tricky, so best stick with default
patterns provided by libadwaita than rolling our own.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
e6bc9fc2fc workspace-indicator: Use Adw.ButtonRow for new-item row
libadwaita added a dedicated widget for button rows, so let's
use that instead of rolling our own. While at it, promote the
accessible label to the (visible) title to be more in line with
current design patterns.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
2b4db8095e workspace-indicator: Split out workspaces prefs page
The window-list extension already uses the extension code for
its embedded workspace indicator, this will allow it to do the
same for the preference page.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/344>
2024-10-16 14:36:32 +02:00
Florian Müllner
fa3f9bcaee window-list: Save and restore positions as runtime state
While it doesn't make sense for window list positions to be truly
persistent like dash items, some persistence is desirable.

Otherwise any manually set position is lost when the extension
is disabled, for example when locking the screen.

To address this, serialize the positions as runtime state on drop,
and restore them when populating the list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
3f660ee973 window-list: Add id property to buttons
A string ID that uniquely identifies a button will allow to
serialize/deserialize the positions in the next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
f87a25e913 window-list: Handle DND events near the drop target
Even with the previous change, the dragged actor has the tendency
of obscuring the possible drop target. To alleviate this, handle
DND events near drop targets as if they occurred on the target.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
228811b873 window-list: Shrink drag-actor size during drags
Like the previous commit, this helps with putting the focus on
the target location instead of the dragged item.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
9b34ac1eea window-list: Fade out drag source during drag
During a drag operation, the focus is on the where to drop the dragged
item, not to identify it or its origin.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Jakub Steiner
a725361fc9 window-list: Indicate drop target more prominently
The drop target is the main focus of the drag operation, so make
its styling more prominent.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
3461a0523c window-list: Allow rearranging window buttons
We currently sort buttons by the stable sequence to get a persistent
and predictable order. However some users want to customize that
order, and rearrange the buttons as they see fit.

Support that use case by implementing drag-and-drop behavior based
on the overview's dash.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/4

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
911387bc49 window-list: Rename XDND related methods and props
The window list buttons themselves will become draggable, so
include "xdnd" in the existing drag handling to disambiguate
it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
93a75dccd7 window-list: Split out _createTitleActor() hook
This will allow creating a suitable drag actor that matches the
current title. In particular this allows for a drag actor that
isn't based on `ClutterClone`, and therefore doesn't inherit
focus/active/minimize/etc. styles that don't make sense outside
the actual window list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
763d66b827 window-list: Add TitleWidget:abstract-label property
When true, the real label is replaced by a more abstract
representation. When used as drag actor, the focus is not
on identifying the window/app, but about picking a drop
location, and the reduced style helps with that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
3c325c1562 window-list: Split out common TitleWidget class
Both app- and window title use the same structure, so add a shared
base class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
dba3de2a8e window-list: Split out some common code
Adding an app button and adding a window button involves some
shared steps, move those to a shared `_addButton()` method.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
f1671bc206 window-list: Remove outdated style
A long time ago, the window list used to embed the bottom message
tray, which caused notifications to inherit the window-list's
font style.

Since that's no longer the case, we have no business in messing
with notification styling, so stop doing that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/338>
2024-10-16 12:19:52 +00:00
Florian Müllner
824c2a5cee reuse: Convert to REUSE.toml
The latest iteration of the spec deprecates .reuse/dep5 in favor
of REUSE.toml. Not a fan of the change (more in-your-face, makes
completing for README.md harder), but what do you do 🤷

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/343>
2024-10-15 22:38:18 +02:00
Florian Müllner
548d7659e1 window-list: Switch to Adw.SwitchRow
libadwaita fixed the actionable implementation of Adw.SwitchRow,
so can use the convenience widget instead of composing our own.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341>
2024-10-07 19:17:54 +00:00
Florian Müllner
0162644041 window-list: Remove superfluous bindings
The setting is already bound to the switch via the corresponding action,
no need to also set up a binding.

In fact, the second binding is actively harmful, as it keeps the
connection alive until dispose, so the setting is reset on
garbage collection.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/511

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341>
2024-10-07 19:17:54 +00:00
Florian Müllner
062a3d21ab window-list: Add missing action
Commit 24ba03fe9 added a new setting, but forgot to create the
corresponding action.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/341>
2024-10-07 19:17:54 +00:00
Florian Müllner
a5a92026ac window-list: Fix active state
Commit c72b8b21 fixed the styling of the active window's button,
but missed that the `active` property uses the style information
as well.

Adjust it to use the correct actor when checking for the style class.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/529

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/342>
2024-10-07 18:51:32 +00:00
Florian Müllner
28fd210f28 window-list: Fix minimized styling
Commit 039c66e7b7 wrapped the button in a container to
animate transitions, but didn't adjust the `.minimized`
styling to still apply to the button (where it is
expected) rather than the wrapper.

Fix this just like commit c72b8b21 did for the
`.focused` styling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/342>
2024-10-07 18:51:32 +00:00
Fabio Tomat
b14f040386 Update Friulian translation 2024-10-07 15:05:58 +00:00
Jeremy Bícha
a8e15a36af releasing package gnome-shell-extensions version 47.0-2 2024-10-04 19:26:15 -04:00
Florian Müllner
81aade6659 classic: Add missing top bar indicators
The only intended difference from the regular session is that the
date menu moves to the right. However in the meantime, gnome-shell
added a couple more (usually hidden) indicators, but we never
updated the session mode definition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/339>
2024-09-28 04:54:18 +02:00
Florian Müllner
9d7d52c1de window-list: Simplify app button
Depending on the number of windows, the button either shows the
title of the lone window, or the app title for multiple windows.

While we always recreate the single-window title, we only create
the app title once and hide it as necessary. Avoiding re-creating
a simple actor 50% of mode transitions isn't worth the additional
complexity, so just handle both single- and multi-window titles
the same way.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337>
2024-09-25 16:44:48 +02:00
Florian Müllner
3830985fa9 window-list: Split out AppTitle class
Even though it's just a box with icon and label, it's cleaner to
have a dedicated class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337>
2024-09-25 16:44:48 +02:00
Florian Müllner
d43abe0869 window-list: Don't recreate icons on theme changes
All icons use `StIcon`, which already updates itself correctly
on icon theme changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337>
2024-09-25 03:45:39 +02:00
Florian Müllner
860c56f83e window-list: Small stylesheet cleanup
The light stylesheet duplicates some declarations, and the
last occurrence matches what we already inherit from the
dark stylesheet.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/337>
2024-09-25 03:39:28 +02:00
Jeremy Bícha
6521bbf9b9 releasing package gnome-shell-extensions version 47.0-1 2024-09-14 20:13:55 -04:00
Jeremy Bícha
dfa173cdfc Remove obsolete gnome-session-classic shell wrapper hack
Closes: #726065
2024-09-14 20:13:54 -04:00
Jeremy Bícha
da954b9b63 Have gnome-classic Depend on gnome-session for now
Unfortunately I can't login without this package
installed
2024-09-14 20:13:54 -04:00
Jeremy Bícha
ad69a39c68 Split extensions into separate packages (Closes: #1081798)
Add gnome-classic package as alternative to gnome-session
to install GNOME Shell, the GNOME Classic session files,
and the extensions it needs (Closes: #777538)

Add gnome-classic-xsession package for the GNOME Classic on Xorg
session.

Gbp-Dch: Full
2024-09-14 20:13:51 -04:00
Jeremy Bícha
ca523c03e6 Update debian/copyright 2024-09-14 20:13:45 -04:00
Jeremy Bícha
9386aa35a7 New upstream release 2024-09-14 19:26:30 -04:00
Jeremy Bícha
13fa15ba61 Update upstream source from tag 'upstream/47.0'
Update to upstream version '47.0'
with Debian dir b0b43d7a1d
2024-09-14 19:26:30 -04:00
Jeremy Bícha
ec3382c6ae New upstream version 47.0 2024-09-14 19:26:26 -04:00
Florian Müllner
2716cb0b98 Bump version to 47.0
Update NEWS.
2024-09-14 18:48:33 +02:00
Irénée THIRION
6048971663 Update French translation 2024-09-12 13:06:50 +00:00
Rūdolfs Mazurs
04cab9954b Update Latvian translation 2024-09-10 19:45:49 +00:00
Dušan Kazik
cbb622a099 Update Slovak translation 2024-09-10 10:45:22 +00:00
Aefgh Threenine
f3b505867f Update Thai translation 2024-09-10 09:19:08 +00:00
Ask Hjorth Larsen
7bee509ecd Update Danish translation 2024-09-08 17:01:48 +00:00
Andi Chandler
b6ac158139 Update British English translation 2024-09-08 13:02:41 +00:00
Jeremy Bícha
862f6e7845 releasing package gnome-shell-extensions version 47~rc-1 2024-09-04 10:27:00 -04:00
Jeremy Bícha
64b9c0d057 New upstream release 2024-09-04 10:26:11 -04:00
Jeremy Bícha
94e90731ad New upstream version 47~rc 2024-09-04 10:26:10 -04:00
Jeremy Bícha
ba61172de0 Update upstream source from tag 'upstream/47_rc'
Update to upstream version '47~rc'
with Debian dir 7ee95bb06b
2024-09-04 10:26:10 -04:00
Jeremy Bícha
e3256255a4 Remove obsolete Files-Excluded 2024-09-04 10:25:39 -04:00
Andika Triwidada
9af1a79434 Update Indonesian translation 2024-09-03 23:36:50 +00:00
Daniel
fa9e2dc71c Updated Spanish translation 2024-09-03 11:26:45 +02:00
Aurimas Černius
e94f10ac16 Update Lithuanian translation 2024-09-02 19:41:25 +00:00
Fran Dieguez
0319c6e8cb Update Galician translation 2024-09-02 18:16:21 +00:00
Alexander Shopov
fe1ae49dbe Update Bulgarian translation 2024-09-02 08:50:17 +00:00
twlvnn kraftwerk
353598e6d8 Update Bulgarian translation
(cherry picked from commit a99515feef)
2024-09-02 08:47:25 +00:00
Florian Müllner
36266e5a5a Bump version to 47.rc
Update NEWS.
2024-09-01 13:55:50 +02:00
Florian Müllner
f7a371c0bf ci: Update ci-fairy include 2024-09-01 13:55:50 +02:00
Sabri Ünal
018815d9e9 Update Turkish translation 2024-09-01 11:09:10 +00:00
Piotr Drąg
82fd82b30c Update Polish translation 2024-08-31 13:42:26 +00:00
Daniel Șerbănescu
26f5e23faa Update Romanian translation 2024-08-30 14:12:48 +00:00
Hugo Carvalho
0989cb3836 Update Portuguese translation 2024-08-30 10:28:12 +00:00
Changwoo Ryu
c55df7c239 Update Korean translation 2024-08-29 23:33:05 +00:00
Jürgen Benvenuti
9a840c437c Update German translation 2024-08-29 18:07:10 +00:00
Anders Jonsson
f33a833f7c Update Swedish translation 2024-08-29 11:18:17 +00:00
Quentin PAGÈS
7c284b6bdc Update Occitan translation 2024-08-27 08:35:49 +00:00
Rafael Fontenelle
6af5cbe4e0 Update Brazilian Portuguese translation 2024-08-26 15:50:33 +00:00
Danial Behzadi
5d6c2a3008 Update Persian translation 2024-08-26 08:50:08 +00:00
Asier Sarasua Garmendia
7ffe7b9aec Update Basque translation 2024-08-25 08:19:43 +00:00
Brage Fuglseth
2e912861f1 Update Norwegian Bokmål translation 2024-08-24 20:22:09 +00:00
Brage Fuglseth
f8ac973802 Update Norwegian Bokmål translation 2024-08-24 20:03:23 +00:00
Luming Zh
5bb15ae1cf Update Chinese (China) translation 2024-08-24 05:32:51 +00:00
Vasil Pupkin
34f379f6c7 Update Belarusian translation 2024-08-23 13:00:34 +00:00
Daniel Rusek
14d6920dd3 Update Czech translation 2024-08-23 12:32:38 +00:00
Jiri Grönroos
3d1c253369 Update Finnish translation 2024-08-23 11:07:46 +00:00
Yuri Chornoivan
b5dd68d6f2 Update Ukrainian translation 2024-08-23 09:33:47 +00:00
Jordi Mas i Hernandez
93c2c408be Update Catalan translation 2024-08-20 05:40:09 +00:00
Ekaterine Papava
c2c57c8e29 Update Georgian translation 2024-08-17 05:19:11 +00:00
Sophie Herold
9432ae260b doap: Remove marge-bot maintainer entry
marge-bot has had GNOME wide Developer access for a while, which should be sufficient.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/333>
2024-08-15 13:22:36 +00:00
Giannis Antypas
69f3132f4c Update Greek translation
(cherry picked from commit 7953cd130d)
2024-08-12 20:30:46 +00:00
Jeremy Bícha
b1326b1fd7 releasing package gnome-shell-extensions version 47~beta-1 2024-08-06 15:06:46 -04:00
Jeremy Bícha
39f4a16cfc Bump Standards Version to 4.7.0 2024-08-06 15:06:27 -04:00
Jeremy Bícha
dc8575ac89 Temporarily avoid installing the new status-icons extension
to avoid one extra breaks/replaces when I try to split
this into separate binary packages
2024-08-06 15:05:35 -04:00
Jeremy Bícha
2d56420241 New upstream release 2024-08-06 07:52:30 -04:00
Jeremy Bícha
3a32323337 Update upstream source from tag 'upstream/47_beta'
Update to upstream version '47~beta'
with Debian dir 0a144d60cf
2024-08-06 07:52:29 -04:00
Jeremy Bícha
1b0637abc0 New upstream version 47~beta 2024-08-06 07:52:24 -04:00
Daniel Șerbănescu
4ccffbb27d Update Romanian translation
(cherry picked from commit 75b1ea879b)
2024-08-05 20:05:46 +00:00
Florian Müllner
8a9aa6a818 Bump version to 47.beta
Update NEWS.
2024-08-03 19:51:04 +02:00
Jeremy Bícha
bd0e0db372 releasing package gnome-shell-extensions version 46.2-3 2024-08-01 08:57:15 -04:00
Jeremy Bícha
2d8cc4c0fb Add Breaks/Replaces gnome-shell-extension-system-monitor
because gnome-shell-extensions now provides this extension
and the gsettings schema

Closes: #1077748
Gbp-Dch: Full
2024-08-01 08:55:50 -04:00
Florian Müllner
017c6470b9 workspace-indicator: Re-fittsify workspace previews
For the window-list extension, it is important that the workspace
previews extend to the bottom edge for easier click targets.

That broke while merging the code with the workspace-indicator,
fix it again by moving the padding from the parent box into the
thumbnail children.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/327>
2024-07-31 15:01:08 +00:00
Florian Müllner
1e25fc1b5a status-icons: Add new extension
Based on an original "top-icons" extension by Adel Gadllah that
is no longer maintained.

The code has been heavily simplified and modernised, and adapted
to integrate into the top bar more seemlessly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/194>
2024-07-31 14:42:55 +00:00
Jakub Steiner
e28215f38f window-list: Update styling
- Contemporary look. Fewer borders, thinner outlines for workspace indicators
- Lacks the designed unfocused window separators.
- Relies on https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/328

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/330>
2024-07-31 14:37:31 +00:00
Florian Müllner
8d06bc8b64 ci: Bump image
node occasionally fails with an "Illegal instruction" error,
which hopefully has been fixed by a package update.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/331>
2024-07-31 15:49:22 +02:00
Chao-Hsiung Liao
9e475cb279 Update Chinese (Taiwan) translation
(cherry picked from commit b89a93a4fc)
2024-07-24 10:26:16 +00:00
Sabri Ünal
cbbb2d2869 Update Turkish translation 2024-07-19 15:12:16 +00:00
Jeremy Bícha
f6157394d3 releasing package gnome-shell-extensions version 46.2-2 2024-07-12 18:34:15 -04:00
Florian Müllner
c72b8b2122 window-list: Fix .focused styling
Commit 039c66e7b7 wrapped the button in a container to
animate transitions, but didn't adjust the `.focused`
styling to still apply to the button (where it is
expected) rather than the wrapper.

Fix that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/328>
2024-07-13 00:11:19 +02:00
Florian Müllner
c302db7545 Bump version to 47.alpha
Update NEWS.
2024-06-29 14:11:12 +02:00
Florian Müllner
0554a8e97d window-list: Replace custom tooltip implementation
DashItemContainer already has support for showing a tooltip-like
label, so now that we use that for animating items, we can use
it for tooltips as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325>
2024-06-29 13:43:55 +02:00
Florian Müllner
039c66e7b7 window-list: Animate buttons in and out
Buttons are currently added and removed from the list without
any transitions, which gives the list a "jumpy" feel. Instead,
do what we do elsewhere and smoothly animate additions and
removals by re-using the dash's ItemContainer class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325>
2024-06-29 13:43:55 +02:00
Florian Müllner
7eb00e350e window-list: Don't hide window button while unmanaging
This will allow to animate the transition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325>
2024-06-29 13:43:55 +02:00
Florian Müllner
f76f9e8220 window-list: Don't use homogeneous layout
We want all buttons in the window list to have the same size,
but that's already achieved via max/natural-width in the CSS.

Not enforcing the equal size via the layout manager will allow
buttons to temporarily have a different size when we start
animating additions and removals.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/325>
2024-06-29 13:13:12 +02:00
Balázs Úr
17c963b63f Update Hungarian translation 2024-06-28 14:25:44 +00:00
Yosef Or Boczko
5d45a697ce Update Hebrew translation 2024-06-28 07:34:33 +00:00
Милош Поповић
ef729f2d66 Update Serbian translation 2024-06-20 15:00:07 +00:00
Jeremy Bícha
87bfb01642 releasing package gnome-shell-extensions version 46.2-1 2024-05-28 16:19:40 -04:00
Jeremy Bícha
c74ab7aa23 New upstream release 2024-05-28 16:19:27 -04:00
Jeremy Bícha
48b00e6a0a Update upstream source from tag 'upstream/46.2'
Update to upstream version '46.2'
with Debian dir b698465cef
2024-05-28 16:19:27 -04:00
Jeremy Bícha
6b2f4e801e New upstream version 46.2 2024-05-28 16:19:26 -04:00
Artur S0
1394e82bd0 Update Russian translation 2024-05-27 10:19:22 +00:00
Florian Müllner
ae9411a23d Bump version to 46.2
Update NEWS.
2024-05-25 23:40:02 +02:00
Florian Müllner
0334834a0f ci: Hook up release-module
In the future, the module will automate uploading the release
tarball. We already use the CI pipeline to generate the tarball,
so it's easy to hook up the module and provide some testing
before the module goes into production.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/324>
2024-05-25 23:39:20 +02:00
Florian Müllner
b0ba8ca5c0 ci: Use meson introspect to generate artifact path
We currently assume that the `CI_COMMIT_TAG` variable matches the
version component of the generated dist tarball.

That is usually correct, but sometimes errors happen and a wrong
tag is pushed, and the real release uses something like "46.0-real".

Account for that by building the artifact path from `meson introspect`
and exporting it as environment variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/324>
2024-05-25 23:39:20 +02:00
Scrambled 777
9e61aaf08c Update Hindi translation 2024-05-25 17:17:19 +00:00
Scrambled 777
ae00cf6b4e Update Hindi translation 2024-05-25 17:01:54 +00:00
Florian Müllner
6ac76140a5 ci: Hook up release-module
In the future, the module will automate uploading the release
tarball. We already use the CI pipeline to generate the tarball,
so it's easy to hook up the module and provide some testing
before the module goes into production.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/324>
2024-05-24 15:18:59 +02:00
Florian Müllner
8c014a6b1d ci: Use meson introspect to generate artifact path
We currently assume that the `CI_COMMIT_TAG` variable matches the
version component of the generated dist tarball.

That is usually correct, but sometimes errors happen and a wrong
tag is pushed, and the real release uses something like "46.0-real".

Account for that by building the artifact path from `meson introspect`
and exporting it as environment variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/324>
2024-05-24 15:18:59 +02:00
Jordi Mas i Hernandez
ee730d9e29 Update Catalan translation 2024-05-23 20:59:49 +00:00
Florian Müllner
c290d7ddb3 window-list: Use getter methods for events
The underlying structs were made opaque a while ago, so direct
access to the struct fields is no longer possible.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/320>
(cherry picked from commit da90d365ec)
2024-05-23 13:18:04 +02:00
Florian Müllner
de033a04fa apps-menu: Set label_actor of Category items
Category items are based on BaseMenuItem rather than MenuItem,
so the accessible relationship isn't set up automatically for us.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/319>
(cherry picked from commit 02ff72b2f0)
2024-05-23 13:17:57 +02:00
Scrambled 777
2fe844f412 Update Hindi translation 2024-05-12 13:44:51 +00:00
Jose Riha
8185b43d54 Update Slovak translation
(cherry picked from commit 1219dfc144)
2024-05-11 22:19:20 +00:00
Jose Riha
1219dfc144 Update Slovak translation 2024-05-11 22:19:15 +00:00
Hugo Carvalho
59ab3f834d Update Portuguese translation
(cherry picked from commit dd16556530)
2024-05-04 23:22:30 +00:00
Hugo Carvalho
dd16556530 Update Portuguese translation 2024-05-04 23:22:24 +00:00
Martin
8b6835c3d6 Update Slovenian translation 2024-05-01 22:12:17 +00:00
Florian Müllner
bb5bb70ac5 Update POTFILES.in
The file is now copied at build time from the workspace-indicator
extension.

Fixes: 0c42f162 ("window-list: Use actual copy of workspace-indicator")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/321>
2024-04-29 16:49:30 +02:00
Florian Müllner
da90d365ec window-list: Use getter methods for events
The underlying structs were made opaque a while ago, so direct
access to the struct fields is no longer possible.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/320>
2024-04-26 15:22:16 +02:00
Florian Müllner
02ff72b2f0 apps-menu: Set label_actor of Category items
Category items are based on BaseMenuItem rather than MenuItem,
so the accessible relationship isn't set up automatically for us.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/319>
2024-04-25 14:42:53 +00:00
Jordi Mas i Hernandez
9c7a086870 Update Catalan translation 2024-04-25 11:53:01 +00:00
Florian Müllner
24ba03fe96 window-list: Expose workspace preview option
Now that we have the option, the window-list should expose it
in its preference window like the workspace-indicator.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
69d8d1a335 workspace-indicator: Make previews configurable
Now that previews scroll when there are too many workspaces,
there is no longer a reason for the 6-workspace limit.

However some users do prefer the menu, so rather than drop it,
turn it into a proper preference.

Closes
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/336

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
d495a2eed8 workspace-indicator: Also show previews in menu
Since the regular session also switched to horizontal workspaces,
using a vertical menu has been a bit awkward.

Now that our previews have become more flexible, we can use them
in the collapsed state as well as when embedded into the top bar.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
6b3990457e workspace-indicator: Stop handling vertical layouts
Both the regular session and GNOME classic use a horizontal layout
nowadays, so it doesn't seem worth to specifically handle vertical
layouts anymore.

The extension will still work when the layout is changed (by some
other extension), there will simply be a mismatch between horizontal
previews and the actual layout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
099cff0b95 workspace-indicator: Support labels in previews
The space in the top bar is too limited to include the workspace
names. However we'll soon replace the textual menu with a preview
popover. We can use bigger previews there, so we can include the
names to not lose functionality with regards to the current menu.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
fac7fedfd3 workspace-indicator: Handle preview overflow
We currently avoid previews from overflowing in most setups by
artificially limiting them to a maximum of six workspaces.

Add some proper handling to also cover cases where space is more
limited, and to allow removing the restriction in the future.

For that, wrap the previews in an auto-scrolling scroll view
and add overflow indicators on each side.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
6ed1b56526 workspace-indicator: Split out WorkspacePreviews
The previews will become a bit more complex soon, so spit them out
into a dedicated class.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
a2ffb1238f workspace-indicator: Handle active indication in thumbnail
Meta.Workspace has had an `active` property for a while now, so
we can use a property binding instead of tracking the active
workspace ourselves.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
b55e7a4dc8 workspace-indicator: Simplify scroll handling
gnome-shell already includes a method for switching workspaces
via scroll events. Use that instead of implementing our own.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/316>
2024-04-24 14:23:22 +00:00
Florian Müllner
0c42f162d3 window-list: Use actual copy of workspace-indicator
We are now at a point where the code from the workspace-indicator
extension is usable from the window-list.

However instead of updating the copy, go one step further and
remove it altogether, and copy the required files at build time.

This ensures that future changes are picked up by both extensions
without duplicating any work.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
01a37c8f26 export-zips: Pick up non-default stylesheets
The window-list extension is about to import the workspace-indicator
stylesheet. Explicitly pack css files, so the stylesheet is included
in the bundle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
5e88c7d891 workspace-indicator: Support light style
The window-list extension already includes light styling for
its copy of the workspace indicator. Just copy that over to
support the light variant here as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
af23a8491c workspace-indicator: Tweak preview style
Sync sizes and padding with the window-list previews.

Tone down the colors a bit, but less then the current window-list
style where workspaces blend too much into the background and
the selection is unclear.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
32a454f917 workspace-indicator: Include n-workspaces in status label
The two extensions currently use a slightly different label
in menu mode:
The workspace indicator uses the plain workspace number ("2"),
while the window list includes the number of workspaces ("2 / 4").

The additional information seem useful, as well as the slightly
bigger click/touch target, so copy the window-list behavior.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
63ff5b2ac1 workspace-indicator: Simplify getting status text
Currently the same method is used to get the label text for the
indicator itself and for the menu items.

A method that behaves significantly different depending on whether
a parameter is passed is confusing, so only deal with the indicator
label and directly use the mutter API to get the workspace names
for menu items.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
a9fff9861b workspace-indicator: Small cleanup
The code to update the menu labels is a bit cleaner in the
window-list extension, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
89a3daf9fe workspace-indicator: Only change top bar redirect when in top bar
While this is always the case for the workspace indicator, adding
the check will allow to use the same code in the window list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
078a5a01ae workspace-indicator: Support showing tooltips above
The indicator is located in the top bar, so tooltips are always
shown below the previews. However supporting showing tooltips
above previews when space permits allows the same code to be
used in the copy that is included with the window-list extension.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
9c8c3495b6 workspace-indicator: Don't use menu section
We never added anything else to the menu, so we can just operate
on the entire menu instead of an intermediate section.

This removes another difference with the window-list copy.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
25e854dde8 workspace-indicator: Use existing property
We already track the current workspace index, use that
instead of getting it from the workspace manager again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
64060ef4c5 workspace-indicator: Don't use SCHEMA/KEY constants
Each constant is only used once, so all they do is disconnect
the actual value from the code that uses it.

The copy in the window-list extension just uses the strings directly,
do the same here.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
9c97f01bc2 window-list: Handle changes to workspace menu
For now the menu is always set at construction time, however this
will change in the future. Prepare for that by handling the
`menu-set` signal, similar to the top bar.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
8693a8a74c window-list: Externally adjust workspace menu
In order to use a PanelMenu.Button in the bottom bar, we have
to tweak its menu a bit.

We currently handle this inside the indicator, but that means the
code diverges from the original code in the workspace-indicator
extension.

Avoid this by using a small subclass that handles the adjustments.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
47c12c6279 window-list: Override base style class
Apply the changes from the last commit to the workspace-indicator
copy, and override the base style class from the extension.

This will eventually allow us to share the exact same code between
the two extensions, but still use individual styling if necessary.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
e96015b9ea workspace-indicator: Allow overriding base style class
This will allow reusing the code from the window-list extension
without limiting the ability to specify styling that only applies
to one of the extensions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
d3debab713 window-list: Use consistent style class prefix
This will eventually allow us to re-use the workspace-indicator
extension without changing anything but the used prefix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
00045b7396 workspace-indicator: Use descendant style selectors
Add a style class to the indicator itself, and only select
descendant elements. This allows using the briefer class names
from the window-list extension without too much risk of conflicts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
19877302a6 workspace-indicator: Move indicator code into separate file
Shortly after the window-list extension was added, it gained a
workspace switcher based on the workspace indicator extension.

Duplicating the code wasn't a big issue while the switcher was
a simple menu, but since it gained previews with a fair bit of
custom styling, syncing changes between the two extensions has
become tedious, in particular as the two copies have slightly
diverged over time.

In order to allow the two copies to converge again, the indicator
code needs to be separate from the extension boilerplate, so
split out the code into a separate module.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/307>
2024-04-24 14:19:51 +00:00
Florian Müllner
56a74abb8a window-list: Use more appropriate fallback icon
'icon-missing' is not an actual icon name. It somewhat works
because an invalid icon name will fallback to the correct
'image-missing', however for apps the generic app icon is
a better fallback.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/315>
2024-04-24 14:10:41 +00:00
Jeremy Bícha
421abfd1a6 releasing package gnome-shell-extensions version 46.1-2 2024-04-23 17:34:11 -04:00
Jeremy Bícha
b836faee4a Add Depends: gir1.2-gtop-2.0 for system monitor extension
LP: #2063267
2024-04-23 17:33:15 -04:00
Jeremy Bícha
48cf148c23 releasing package gnome-shell-extensions version 46.1-1 2024-04-21 16:46:27 -04:00
Jeremy Bícha
e566a22f22 New upstream release 2024-04-21 16:44:48 -04:00
Jeremy Bícha
3ea76e3ecc New upstream version 46.1 2024-04-21 16:44:47 -04:00
Jeremy Bícha
0d5685a279 Update upstream source from tag 'upstream/46.1'
Update to upstream version '46.1'
with Debian dir e1d60f69a1
2024-04-21 16:44:47 -04:00
Florian Müllner
78c3957f64 Bump version to 46.1
Update NEWS.
2024-04-21 16:34:14 +02:00
Florian Müllner
38e267ae64 screenshot-window-sizer: Add additional size
1000x700 is the maximum recommended screenshot size on flathub[0]. As
that's a primary use case of the extension, it makes sense to include
the size.

[0] https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/quality-guidelines/#reasonable-window-size

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/317>
2024-04-20 14:33:40 +00:00
Fabio Tomat
59899a211d Update Friulian translation 2024-04-16 19:03:09 +00:00
Matheus Polkorny
d3348761c3 Update Brazilian Portuguese translation 2024-03-29 11:13:45 +00:00
Rachida SACI
79a01c62bc Update Kabyle translation 2024-03-23 09:11:17 +00:00
Jeremy Bícha
d2d5629bdd releasing package gnome-shell-extensions version 46.0-1 2024-03-18 15:30:32 -04:00
Jeremy Bícha
f590df238a New upstream release 2024-03-18 15:30:17 -04:00
Jeremy Bícha
7d92287596 Update upstream source from tag 'upstream/46.0'
Update to upstream version '46.0'
with Debian dir ac78a6675d
2024-03-18 15:30:17 -04:00
Jeremy Bícha
9c08df11dc New upstream version 46.0 2024-03-18 15:30:16 -04:00
Florian Müllner
e65c561e6f Bump version to 46.0
Update NEWS.
2024-03-16 01:58:46 +01:00
Florian Müllner
6d36da1ce6 system-monitor: Fix net speed
We use different formats for values above and below 10, to only
include a fraction for the latter.

However we use the same factor to determine the format and to
compute the number to format, with the result that values above
10 are off by a factor of 10.

Address this by adding a separate "unitFactor" value for computing
the value.

Spotted by Yannick Daveluy.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/494

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/313>
2024-03-16 00:50:59 +00:00
Ask Hjorth Larsen
cd9341adf1 Update Danish translation 2024-03-13 17:11:10 +00:00
Changwoo Ryu
13842a012b Update Korean translation 2024-03-13 10:15:22 +00:00
Athmane MOKRAOUI
f4f7d2dffb Update Kabyle translation 2024-03-12 11:27:34 +00:00
Quentin PAGÈS
87a5fc42b8 Update Occitan translation 2024-03-12 09:12:03 +00:00
Milo Casagrande
f1456002d4 Update Italian translation 2024-03-08 13:39:43 +00:00
Aral Balkan
30266011bf screenshow-window-sizer: Document keyboard shortcuts
Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/492

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/311>
2024-03-06 13:53:50 +01:00
Balázs Úr
5a76dedb50 Update Hungarian translation 2024-03-04 11:35:06 +00:00
Piotr Drąg
dc8ab6cf77 Update Polish translation 2024-03-03 19:05:37 +00:00
Anders Jonsson
b97efdb584 Update Swedish translation 2024-03-03 15:56:53 +00:00
Florian Müllner
a91e6aad87 Bump version to 46.rc
Update NEWS.
2024-03-03 15:39:24 +01:00
Florian Müllner
6f03ca0434 ci: Drop custom image
Since we no longer depend on sassc for classic styling, the
regular JS image from gnome-shell already includes everything
we need for the fedora jobs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/309>
2024-03-03 15:25:24 +01:00
Florian Müllner
7a01e3e103 ci: Update to F40-based image
gnome-shell switched to F40 for its JS image, follow suit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/309>
2024-03-03 15:10:50 +01:00
Jiri Grönroos
e539a65709 Update Finnish translation 2024-03-02 15:31:24 +00:00
Daniel Mustieles
2402c1bef5 Updated Spanish translation 2024-02-26 14:10:47 +01:00
Guillaume Bernard
1fd238b31d Update French translation 2024-02-25 12:53:54 +00:00
Rūdolfs Mazurs
21a65c1558 Update Latvian translation 2024-02-25 10:49:23 +00:00
Baurzhan Muftakhidinov
f42d1f7ca9 Update Kazakh translation 2024-02-24 18:03:25 +00:00
Brage Fuglseth
b77ecb2380 Update Norwegian Bokmål translation 2024-02-24 13:42:23 +00:00
Andi Chandler
4fc80e0ef3 Update British English translation 2024-02-23 12:23:32 +00:00
Fran Dieguez
df61f9aadf Update Galician translation 2024-02-23 09:27:53 +00:00
Kukuh Syafaat
7862bfd2aa Update Indonesian translation 2024-02-22 13:20:52 +00:00
Florian Müllner
f6c74e93b7 window-list: Replace Meta.Rectangle
It's deprecated in favor of Mtk.Rectangle, which is a drop-in
replacement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/306>
2024-02-22 00:02:40 +00:00
Sabri Ünal
81880982b2 Update Turkish translation 2024-02-21 17:24:56 +00:00
Florian Müllner
f53984670c window-list: Fix menu ornament in workspace indicator
The default ornament is now HIDDEN, so in order to align items,
we always have set an initial ornament.

In gnome-shell 46, the expected "counter ornament" to DOT is NO_DOT
rather than NONE, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/305>
2024-02-21 00:07:15 +01:00
Florian Müllner
537530707e workspace-indicator: Fix menu ornament
The default ornament is now HIDDEN, so in order to align items,
we always have set an initial ornament.

In gnome-shell 46, the expected "counter ornament" to DOT is NO_DOT
rather than NONE, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/305>
2024-02-21 00:01:11 +01:00
Boyuan Yang
e069f391c7 Update Chinese (China) translation 2024-02-20 14:06:58 +00:00
Florian Müllner
b00f5c4604 window-list: Fix window previews
St.Bin no longer expands its child automatically. Unless do we do
explicitly, the preview actor will be allocated with a size of 0x0.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/304>
2024-02-19 19:59:54 +01:00
Florian Müllner
a326fa737e workspace-indicator: Fix window previews
St.Bin no longer expands its child automatically. Unless do we do
explicitly, the preview actor will be allocated with a size of 0x0.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/304>
2024-02-19 19:59:54 +01:00
Matej Urbančič
fcd5618321 Update Slovenian translation 2024-02-19 10:08:02 +00:00
Aurimas Černius
55e085894a Update Lithuanian translation 2024-02-18 20:38:56 +00:00
Nathan Follens
801ba69f54 Update Dutch translation 2024-02-18 16:18:10 +00:00
Brage Fuglseth
abdd839073 Update Norwegian Bokmål translation 2024-02-17 21:46:21 +00:00
Yaron Shahrabani
24a5c5fd4e Update Hebrew translation 2024-02-16 22:15:45 +00:00
Asier Sarasua Garmendia
6d49de36a8 Update Basque translation 2024-02-15 18:10:00 +00:00
Vasil Pupkin
ef3c74db8a Update Belarusian translation 2024-02-15 05:28:14 +00:00
Yuri Chornoivan
419b7fad10 Update Ukrainian translation 2024-02-13 17:43:29 +00:00
Artur S0
ad43f16a9a Update Russian translation 2024-02-13 16:33:00 +00:00
Sabri Ünal
db8b779859 Update Turkish translation 2024-02-13 13:34:13 +00:00
Ekaterine Papava
67a91f9a1d Update Georgian translation 2024-02-12 17:39:32 +00:00
Danial Behzadi
ec95dcd330 Update Persian translation 2024-02-12 16:58:42 +00:00
Danial Behzadi
b71ddd1b00 Update Persian translation 2024-02-12 16:48:40 +00:00
Florian Müllner
d6ffd7859e Bump version to 46.beta
Update NEWS.
2024-02-11 17:59:16 +01:00
Gabriel Brand
ded50f8b01 Update German translation 2024-02-08 16:36:27 +00:00
Daniel Rusek
06066be0a8 Update Czech translation 2024-02-07 14:08:50 +00:00
Florian Müllner
fb52f89cc5 system-monitor: Adjust to renamed .desktop file
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/302>
2024-02-06 20:47:44 +01:00
Allan Day
86761952c3 apps-menu: Rename Applications to Apps
Nowadays people call applications apps, and GNOME uses the latter
term rather than the former.

Closes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/481

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/299>
2024-02-06 19:40:30 +01:00
Sabri Ünal
edc916533a Update Turkish translation 2024-02-06 18:25:32 +00:00
Yosef Or Boczko
6a7e99eb81 Update Hebrew translation 2024-02-05 19:49:02 +00:00
Artur S0
8ca1d5f3ee Update Russian translation 2024-02-05 06:31:00 +00:00
Vasil Pupkin
a3068dc145 Update Belarusian translation 2024-02-03 22:45:30 +00:00
Florian Müllner
3e9d648078 apps-menu: Stop using deprecated vscroll-bar property
The adjustments are now exposed by the view itself.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/301>
2024-02-02 19:37:39 +01:00
Florian Müllner
3e398b9a2f apps-menu: Stop setting scroll policy
The defaults are now "automatic" for vertical scrolling and "never"
for horizontal scrolling, so no need to set that explicitly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/301>
2024-02-02 19:37:39 +01:00
Florian Müllner
3fb756687b apps-menu: Remove obsolete code
There hasn't been a `passEvents` property on menus since 2011.

Not that it hurts setting it, but it simply doesn't do anything.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/301>
2024-02-02 19:37:39 +01:00
Aefgh Threenine
93fb1a6496 Update Thai translation 2024-02-02 08:50:43 +00:00
Florian Müllner
dfa328a769 ci: Do not create pipelines for branches with open MRs
Pipelines for non-protected branches are set to 'manual', and
thus cheap. However they may still get picked by `@marge-bot`,
meaning that the bot waits for the completion of a pipeline that
never starts.

Avoid that by not creating pipelines for branches with open
merge requests.

Credit to Jordan, who came up with this for gst.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/300>
2024-02-01 16:18:03 +01:00
Fran Dieguez
90b59b6753 Update Galician translation 2024-01-23 21:19:29 +00:00
Daniel Rusek
121c9d891b Update Czech translation 2024-01-22 14:28:45 +00:00
Gabriel Brand
e6a8046d33 Update German translation 2024-01-19 22:38:30 +00:00
Florian Müllner
3cd964e60d system-monitor: Fix POTFILES entry
The gsettings schema is in a subdirectory, whoops.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/297>
2024-01-13 18:45:55 +01:00
Florian Müllner
fa8866d627 ci: Check for missing entries in POTFILES
It is a common mistake to add new translatable strings without
adding the corresponding file to POTFILES. At least for JS sources,
we have a tool we can use to catch these errors during CI.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/296>
2024-01-07 20:12:39 +01:00
Florian Müllner
bf3cb76766 ci: Update default image
We are using a fairly outdated image by now, update to the latest
image that gnome-shell produces.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/296>
2024-01-07 20:12:39 +01:00
Florian Müllner
25d02d17d2 system-monitor: Add missing files to POTFILES
The files contain translatable strings, but were not added to
POTFILES, whoops.

Spotted by Piotr (of course).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/296>
2024-01-07 20:12:39 +01:00
Florian Müllner
ffcbf03c9c Bump version to 46.alpha
Update NEWS.
2024-01-06 22:16:52 +01:00
Jeremy Bícha
fc5611719d releasing package gnome-shell-extensions version 45.2-2 2023-12-05 12:07:54 -05:00
Jeremy Bícha
ad69ee299f Restore required dh-sequence-gnome build dependency 2023-12-05 12:07:07 -05:00
Jeremy Bícha
b912f8cd0b releasing package gnome-shell-extensions version 45.2-1 2023-12-05 10:05:36 -05:00
Jeremy Bícha
e5f43e9a90 Update standards version to 4.6.2, no changes needed.
Changes-By: lintian-brush
Fixes: lintian: out-of-date-standards-version
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
2023-12-05 10:05:15 -05:00
Jeremy Bícha
2b7bb1798a Set upstream metadata fields: Bug-Database, Bug-Submit.
Changes-By: lintian-brush
2023-12-05 10:05:15 -05:00
Jeremy Bícha
8250b82869 Stop using debian/control.in and dh-sequence-gnome 2023-12-05 10:04:41 -05:00
Jeremy Bícha
e4183488d9 New upstream version 45.2 2023-12-05 10:03:40 -05:00
Jeremy Bícha
101ca9c738 New upstream release 2023-12-05 10:03:40 -05:00
Jeremy Bícha
7ecee1c9e6 Update upstream source from tag 'upstream/45.2'
Update to upstream version '45.2'
with Debian dir 427736dd01
2023-12-05 10:03:40 -05:00
Florian Müllner
1d7f37f420 system-monitor: Add new extension
A long time ago, we used to include a system monitor extension,
that added CPU/memory graphs to the (long gone) message tray.

However demand for this type of extensions hasn't died down, to the
point where RHEL includes a revived version of the old extension.

Account for that demand by adding a newly written system-monitor
extension that has been properly designed, and hopefully does not
bring back the CPU/memory issues of the previous one (unlikely
without the graphs) …

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/277>
2023-12-04 13:20:13 +01:00
Florian Müllner
b02e43d84c Bump version to 45.2
Update NEWS.
2023-12-01 20:15:09 +01:00
Florian Müllner
8ed3b72a56 workspace-indicator: Update visibility on window-type changes
The visibility depends on the type, so we should listen for
changes (even if the property is unlikely to change).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
(cherry picked from commit 30a15387b5)
2023-12-01 20:03:38 +01:00
Florian Müllner
a929cf9370 workspace-indicator: Don't hide previews on other monitors
Workspace thumbnails are clipped, so there's no major benefit
of hiding the actors explicitly.

On the other hand, the check is useful on size/position changes
to avoid unnecessary relayouts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
(cherry picked from commit b5b841dd38)
2023-12-01 20:03:38 +01:00
Florian Müllner
a5343c33ec window-list: Update visibility on window-type changes
The visibility depends on the type, so we should listen for
changes (even if the property is unlikely to change).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
(cherry picked from commit 071584621e)
2023-12-01 20:03:15 +01:00
Florian Müllner
8efd73c50e window-list: Don't hide previews on other monitors
Workspace thumbnails are clipped, so there's no major benefit
of hiding the actors explicitly.

On the other hand, the check is useful on size/position changes
to avoid unnecessary relayouts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
(cherry picked from commit 5c57f44838)
2023-12-01 20:03:15 +01:00
Florian Müllner
d5f617b3e2 window-list: Move additional padding into buttons
Commit ca1c4b0f9e added additional padding, which means that the
interactive area of buttons no longer extends to the bottom of
the screen.

Address this by moving the new padding into the buttons themselves.
That restores the Fittsability of the bottom bar, without affecting
the cleaner visual appearance.

Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/453

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/291>
2023-12-01 20:02:51 +01:00
Florian Müllner
d1ff099200 window-list: Clean up stylesheet indent
Replaces tabs with spaces.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/291>
2023-12-01 20:02:49 +01:00
Florian Müllner
6bbc329e7b apps-menu: Use customized layout manager to limit height
To avoid continuous height changes while browsing through categories,
we let the list of categories determine the overall height, and rely
on scrolling for the list of apps within a category.

We currently achieve this by assigning a fixed height via the
`style` property. This has been found to trigger a crash when
running headless, as we end up querying an actor's height request
before a valid resource scale is available.

Instead, use a custom layout manager, which seems more elegant anyway.

Close: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/472
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
(cherry picked from commit 5652182fb3)
2023-12-01 19:48:04 +01:00
Florian Müllner
ed31f08f2f apps-menu: Remove vertical separator
Ever since gnome-shell stopped using a stippled separator in the
calendar menu, the styling required by the separator has been
missing.

There haven't been any complaints about the invisible separator,
so we can just as well drop it altogether.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
(cherry picked from commit c3cbef19ac)
2023-12-01 19:48:03 +01:00
Florian Müllner
ed60502f10 apps-menu: Use stylesheet to set width
The `style` property is useful for computed CSS declarations,
but for regular styling the stylesheet is preferable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
(cherry picked from commit 8c8f990a28)
2023-12-01 19:47:16 +01:00
Florian Müllner
0fa592a516 apps-menu: Adjust to events API changes
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
(cherry picked from commit f6a6bdda99)
2023-12-01 19:47:16 +01:00
Florian Müllner
30a15387b5 workspace-indicator: Update visibility on window-type changes
The visibility depends on the type, so we should listen for
changes (even if the property is unlikely to change).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
2023-12-01 19:14:26 +01:00
Florian Müllner
b5b841dd38 workspace-indicator: Don't hide previews on other monitors
Workspace thumbnails are clipped, so there's no major benefit
of hiding the actors explicitly.

On the other hand, the check is useful on size/position changes
to avoid unnecessary relayouts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
2023-12-01 19:13:42 +01:00
Florian Müllner
5f2b199627 Revert "workspace-indicator: Only initialize preview visibility on map"
It is not possible to unmap an actor from within the map vfunc,
so the fix broke the initial visibility again.

This reverts commit 25a75e1b0e.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
2023-12-01 19:11:42 +01:00
Florian Müllner
071584621e window-list: Update visibility on window-type changes
The visibility depends on the type, so we should listen for
changes (even if the property is unlikely to change).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
2023-12-01 19:10:08 +01:00
Florian Müllner
5c57f44838 window-list: Don't hide previews on other monitors
Workspace thumbnails are clipped, so there's no major benefit
of hiding the actors explicitly.

On the other hand, the check is useful on size/position changes
to avoid unnecessary relayouts.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
2023-12-01 19:09:30 +01:00
Florian Müllner
93741e9e1c Revert "window-list: Only initialize preview visibility on map"
It is not possible to unmap an actor from within the map vfunc,
so the fix broke the initial visibility again.

This reverts commit 8b7cfff558.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/292>
2023-12-01 19:09:30 +01:00
Florian Müllner
836f81f2e2 window-list: Move additional padding into buttons
Commit ca1c4b0f9e added additional padding, which means that the
interactive area of buttons no longer extends to the bottom of
the screen.

Address this by moving the new padding into the buttons themselves.
That restores the Fittsability of the bottom bar, without affecting
the cleaner visual appearance.

Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/453

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/291>
2023-12-01 12:34:20 +00:00
Florian Müllner
574638328e window-list: Clean up stylesheet indent
Replaces tabs with spaces.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/291>
2023-12-01 12:34:20 +00:00
Jonas Ådahl
e0750db1bd Mark session file as X-GDM-CanRunHeadless=true
This will make it possible to launch the session headlessly for
remote-only access.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/289>
2023-11-30 20:41:58 +00:00
Florian Müllner
5652182fb3 apps-menu: Use customized layout manager to limit height
To avoid continuous height changes while browsing through categories,
we let the list of categories determine the overall height, and rely
on scrolling for the list of apps within a category.

We currently achieve this by assigning a fixed height via the
`style` property. This has been found to trigger a crash when
running headless, as we end up querying an actor's height request
before a valid resource scale is available.

Instead, use a custom layout manager, which seems more elegant anyway.

Close: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/472
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
2023-11-23 21:20:56 +01:00
Florian Müllner
c3cbef19ac apps-menu: Remove vertical separator
Ever since gnome-shell stopped using a stippled separator in the
calendar menu, the styling required by the separator has been
missing.

There haven't been any complaints about the invisible separator,
so we can just as well drop it altogether.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
2023-11-23 21:15:51 +01:00
Florian Müllner
8c8f990a28 apps-menu: Use stylesheet to set width
The `style` property is useful for computed CSS declarations,
but for regular styling the stylesheet is preferable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
2023-11-23 21:13:30 +01:00
Florian Müllner
f6a6bdda99 apps-menu: Adjust to events API changes
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/290>
2023-11-23 14:25:57 +01:00
Florian Müllner
0d5d06fdd7 apps-menu: Adjust to ClutterContainer removal
The `actor-added` signal got renamed to `child-added` when
moving it to ClutterActor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/288>
2023-11-14 16:26:06 +00:00
Florian Müllner
d10b98c4fc extensions: Stop using ClutterContainer API
The methods have long been deprecated in favor of the equivalent
ClutterActor methods, so use the latter instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/288>
2023-11-14 16:26:06 +00:00
Florian Müllner
8b7cfff558 window-list: Only initialize preview visibility on map
The check whether the window overlaps with the monitor the actor
is on requires the actor to be added to the stage first, so delay
the initial visibility update that was added in commit f576f1b1b6.

Fixes: f576f1b1 ("window-list: Initialize preview visibility")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/286>
2023-11-08 16:36:59 +00:00
Florian Müllner
25a75e1b0e workspace-indicator: Only initialize preview visibility on map
The check whether the window overlaps with the monitor the actor
is on requires the actor to be added to the stage first, so delay
the initial visibility update that was added in commit b9d2a445b2.

Fixes: b9d2a445 ("workspace-indicator: Initialize preview visibility")
Closes:
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/469

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/286>
2023-11-08 16:36:59 +00:00
Florian Müllner
91a1b8245b window-list: Remove window picker
Now that the overview is available again in the classic session,
the window picker that used to replace it is unused.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/287>
2023-11-07 17:43:18 +01:00
Florian Müllner
4abde90e82 classic: Reenable overview
Since we disabled the overview in the classic session, gnome-shell
switched to a horizontal workspace layout and replaced the activities
button with an indicator.

Those are big enough changes to reevaluate the decision, so remove
the delta with the regular session and turn it back on.

This reverts commit 82d2011061.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/287>
2023-11-07 16:38:37 +01:00
Jeremy Bícha
abf3365cc2 releasing package gnome-shell-extensions version 45.1-1 2023-11-04 12:31:37 +02:00
Jeremy Bícha
1e254c1723 New upstream release 2023-11-04 12:30:48 +02:00
Jeremy Bícha
0676c02419 Update upstream source from tag 'upstream/45.1'
Update to upstream version '45.1'
with Debian dir 81d7461a20
2023-11-04 12:30:48 +02:00
Jeremy Bícha
cb7b8e7c5a New upstream version 45.1 2023-11-04 12:30:40 +02:00
Florian Müllner
f27b239f55 Bump version to 45.1
Update NEWS.
2023-11-01 00:28:14 +01:00
Florian Müllner
7f192d0208 screenshot-window-sizer: Handle wrapping around backwards
The mod takes care of wrapping at the top, but not when
decrementing 0. Fix this by using Array.prototype.at(),
which handles negative indexes.

Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/467

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/284>
(cherry picked from commit dd8ee2931a)
2023-11-01 00:24:47 +01:00
Florian Müllner
eff6f6ef88 screenshot-window-sizer: Use built-in support for reversed bindings
Mutter has had explicit support for reversed bindings for a while now.
Use that, as it's more reliably than examining the modifiers manually.

Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/467

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/284>
(cherry picked from commit f530acbf9e)
2023-11-01 00:24:47 +01:00
Florian Müllner
dd8ee2931a screenshot-window-sizer: Handle wrapping around backwards
The mod takes care of wrapping at the top, but not when
decrementing 0. Fix this by using Array.prototype.at(),
which handles negative indexes.

Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/467

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/284>
2023-10-24 21:15:06 +02:00
Florian Müllner
f530acbf9e screenshot-window-sizer: Use built-in support for reversed bindings
Mutter has had explicit support for reversed bindings for a while now.
Use that, as it's more reliably than examining the modifiers manually.

Close https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/467

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/284>
2023-10-24 21:15:06 +02:00
Brage Fuglseth
7d296d2fd2 Update Norwegian Bokmål translation 2023-10-12 20:28:03 +00:00
Florian Müllner
fb858ed0e4 window-list: Complete move to connectObject()
Commit 3bfaf6f88a removed the explicit disconnect, but forgot
to use connectObject() to connect the handler.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/459
Fixes: 3bfaf6f8 ("js: Use connectObject()")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/281>
2023-10-09 15:36:39 +02:00
Florian Müllner
f576f1b1b6 window-list: Initialize preview visibility
Otherwise we can end up showing window previews in the workspace
thumbnail that shouldn't be visible, if none of the properties we
track for updates changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/280>
2023-09-29 21:35:33 +02:00
Florian Müllner
b9d2a445b2 workspace-indicator: Initialize preview visibility
Otherwise we can end up showing windows that shouldn't be visible
if none of the properties we track for updates changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/280>
2023-09-29 21:33:04 +02:00
Florian Müllner
092b268823 drive-menu: Remove left-over signal connection
The handler itself was removed in commit 3bfaf6f88a, so the
code now fails.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/455
Fixes: 3bfaf6f8 ("js: Use connectObject()")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/278>
2023-09-29 12:33:13 +00:00
Kristjan SCHMIDT
b64cb0f195 Update Esperanto translation 2023-09-27 20:47:58 +00:00
Florian Müllner
2510bb3625 extensions: Stop using run_dispose()
It is considered bad practice, and mainly a lazy way of disconnecting
signal handlers without tracking individual handler IDs.

We can do better by using connectObject(), which provides the same
level of convenience without the dodginess of getting behind the
garbage collector's back.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/275>
2023-09-26 15:21:41 +00:00
Florian Müllner
4fbd878208 lint: Sync with gnome-shell
gnome-shell itself no longer requires parameter descriptions in
doc comments (just type annotations). The requirement makes even
less sense for extensions, so sync up the configuration.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/276>
2023-09-26 14:30:27 +02:00
Florian Müllner
e8840da00c doap: Actually remove defunct mailing list
Fixes: e405d09c ("DOAP: Remove defunct mailing list; add Discourse")
2023-09-20 13:30:42 +02:00
Jeremy Bícha
153e100e7e releasing package gnome-shell-extensions version 45.0-1 2023-09-18 08:50:31 -04:00
Jeremy Bícha
3ea3d1a405 releasing package gnome-shell-extensions version 45.0-1 2023-09-18 08:45:49 -04:00
Jeremy Bícha
37de3bfba3 New upstream release 2023-09-18 08:45:38 -04:00
Jeremy Bícha
db24e0c6c3 Update upstream source from tag 'upstream/45.0'
Update to upstream version '45.0'
with Debian dir 74306402cf
2023-09-18 08:45:38 -04:00
Jeremy Bícha
a6131bd00b New upstream version 45.0 2023-09-18 08:45:37 -04:00
Florian Müllner
ba5783ff8c Bump version to 45.0
Update NEWS.
2023-09-16 20:29:57 +02:00
Andre Klapper
e405d09c98 DOAP: Remove defunct mailing list; add Discourse 2023-09-15 22:08:36 +02:00
Jeremy Bícha
4d741a1ece debian/watch: Watch for beta and rc releases too 2023-09-06 10:00:16 -04:00
Bruce Cowan
fee98cf385 Update British English translation
(cherry picked from commit 54d6a839f849bbe7c6acbbe03adbcbb909dbd80a)
2023-09-06 11:14:58 +00:00
Florian Müllner
e6b6b0c589 Bump version to 45.rc
Update NEWS.
2023-09-06 11:53:48 +02:00
Florian Müllner
f54b96c327 auto-move: Fix signal name
The functionality is still broken for wayland windows that use
xdg-activation, because the workspace information from the startup
sequence is handled later.

But at least it's a baby step towards a fix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/272>
2023-09-06 00:00:36 +02:00
Amin Bandali
6ce713f305 Change debian-branch from debian/master to debian/latest 2023-09-04 10:18:31 -04:00
A S Alam
5e025ba194 Update Punjabi translation 2023-09-02 15:54:18 +00:00
Jeremy Bícha
db248b3ce6 releasing package gnome-shell-extensions version 45~beta-1 2023-08-21 10:17:30 -04:00
Jeremy Bícha
2e2651ea4c New upstream release 2023-08-21 10:17:06 -04:00
Jeremy Bícha
696225fdc9 Update upstream source from tag 'upstream/45_beta'
Update to upstream version '45~beta'
with Debian dir fd31c81873
2023-08-21 10:16:23 -04:00
Simon McVittie
fd31c81873 d/control: Regenerate 2023-08-21 00:37:44 +01:00
Simon McVittie
981f094061 Upload to unstable (part of transition: #1043144) 2023-08-20 23:04:54 +01:00
Florentina Musat
5bf98cbe8f Update Romanian translation 2023-08-17 16:26:01 +00:00
Florian Müllner
3677931bd2 ci: Add reuse job
Now that we are Reuse-compliant, check for it during CI to make
sure we remain compliant.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/224>
2023-08-17 11:51:48 +00:00
Florian Müllner
b7f285d733 Make project compatible with Reuse Software spec
Provide all licenses used in the project in a LICENSES folder and
add SPDX license and copyright information for all files in
accordance with the Reuse Software[0] specification.

The copyright information is based on the file's git history,
using a fairly generous definition of "non-trivial".

As of the spec recommendation, the information is generally added
as comments in the files themselves, except for

 - NEWS, README and similar top-level standard files, so that
   a SPDX code isn't the first thing people encounter
 - files that don't support comments (json) or where they'd
   be a bit awkward (.desktop, .service)
 - anything under po/, to not interfere with translation teams

Those are covered by a .reuse/dep5 files, except for image assets,
where separate .license files are used (It would be possible to
add comments to SVG files, but I don't trust image editors to
preserve them).

[0] https://reuse.software/

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/224>
2023-08-17 11:51:48 +00:00
Florian Müllner
b966cb6b22 doap: Remove Giovanni from maintainers
He is an emeritus member, which means he is no longer active.

In particular he is no longer in the 'gnomecvs' group, which
is a pre-condition for being listed in the .doap file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/267>
2023-08-17 11:41:21 +00:00
Jeremy Bícha
e864d0d1cc New upstream version 45~beta 2023-08-16 22:55:57 -04:00
Sabri Ünal
e238b0f6aa Update Turkish translation 2023-08-16 18:38:33 +00:00
Florian Müllner
4345703c2e Bump version to 45.beta
Update NEWS.
2023-08-07 16:41:23 +02:00
Florian Müllner
a911447375 js: Port to ESM
The shell pulled the trigger and switched to ESM for all its
imports, follow suit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/269>
2023-08-06 15:59:35 +02:00
Florian Müllner
2d3307c657 window-list: Use InjectionManager instead of custom classes
Once the shell is ported to ESM, it will no longer be possible
to replace entire classes (even when imported). Prepare for that
by overriding methods of the regular WorkspaceBackground class
instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268>
2023-08-06 13:45:56 +02:00
Florian Müllner
d59bc0b7f0 window-list: Do not inject WindowPicker into Main
This will become impossible once Main is converted to ESM. Instead,
use the Extension class itself to hold the window picker.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268>
2023-08-06 13:45:56 +02:00
Florian Müllner
cb8c2eb27f windowsNavigator: Use InjectionManager instead of custom classes
Once the shell is ported to ESM, it will no longer be possible
to replace entire classes (even when exported). Prepare for that
by overriding methods of the regular classes, instead of creating
custom subclasses.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268>
2023-08-06 13:45:56 +02:00
Florian Müllner
0544729bba launch-new-instance: Use InjectionManager
The extension uses a straight-forward override that doesn't
benefit a lot from the new InjectionManager class, but let's
use the provided convenience API anyway.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268>
2023-08-05 21:32:27 +02:00
Florian Müllner
017c410a6a native-window-placement: Use InjectionManager
The new convenience class was modelled after the code in the
extension, so it's a drop-in replacement.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268>
2023-08-05 18:53:41 +02:00
Florian Müllner
f2c73329be extensions: Use new convenience classes
Convenience APIs for extensions are now provided as Extension/Prefs
base classes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/268>
2023-08-05 18:53:41 +02:00
Efstathios Iosifidis
ce644be96f Update Greek translation 2023-08-01 20:41:56 +00:00
Florian Müllner
e75a1a15ac extensions: Import ExtensionUtils as module
ExtensionUtils has been converted to ESM and split into two modules,
for extensions and prefs respectively.

Adjust to those changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/266>
2023-07-15 14:13:25 +02:00
Florian Müllner
1155170c7c window-list: Stop using getCurrentExtension()
The method is no longer exported. There will be a nicer alternative
soon, in the meantime we can just keep track of our main Extension
object ourselves.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/266>
2023-07-15 14:10:27 +02:00
Florian Müllner
6d8f54a20b js: Really use connectObject()
I forgot in two places to change the actual connect() function
to connectObject() 🤦️

Fixes commit 3bfaf6f88a.
2023-07-10 07:22:25 +02:00
Florian Müllner
93a2e7bdba extensions: Stop using global.log()
It has been deprecated since 3.6(!) in favor of the actually
global log().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/264>
2023-07-10 06:51:45 +02:00
Florian Müllner
3bfaf6f88a js: Use connectObject()
gnome-shell added (dis)connectObject() methods to partially automate
signal handling. It doesn't only save a significant amount of code,
but also makes it harder to miss cleaning up on destroy.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/263>
2023-07-09 18:45:07 +02:00
Florian Müllner
37baccd9fc window-list: Remove some dead code
The code that connected the signal was removed in 9fa522c29a.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/263>
2023-07-09 18:33:52 +02:00
Florian Müllner
9365725246 ci: Use wrapper to run eslint
The eslint job report its results as artifacts in junit format,
so that gitlab can present them in its UI.

However many psople miss that, and unsuccessfully check the logs
instead.

Address this by using a simplified version of gnome-shell's eslint
wrapper, so we can report results both on stdout and in a file
without re-running the linter.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/262>
2023-07-09 16:21:03 +02:00
Florian Müllner
f1257c4523 Ignore some common patterns
Ignore patches, vim session files and project configuration
of GNOME Builder and VSCode.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/261>
2023-07-09 15:59:34 +02:00
Florian Müllner
f0865f039e Clean up .gitignore
Meson enforces a separate build dir, so we no longer have to
care about build artifacts in the source tree. Same applies for
all the generated crap autotools like to spread around.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/261>
2023-07-09 15:59:34 +02:00
Florian Müllner
4955c20669 data: Remove left-over file
We no longer have a separate classic theme that could(*) use
custom assets, so the file is now very officially a left-over.

(*) spoiler alert: The made-up property where the image was
used has been ignored by gnome-shell for years

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/260>
2023-07-09 14:27:44 +02:00
Florian Müllner
cf007dd472 extensions: Turn extensions into modules
As gnome-shell is moving to ESM, it will now load extensions as
standard modules instead of using legacy imports. The change boils
down to exporting the Extension class as default, but we can also
start using standard imports for introspected modules now, so do
that at the same time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/259>
2023-07-07 00:35:08 +02:00
Florian Müllner
701b14ecbf extensions: Use extension class for all extensions
This will be the only supported entry point when extension loading
switches to dynamic imports, so prepare for that by wrapping the
remaining standalone enable()/disable() methods in Extension classes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/259>
2023-07-07 00:12:41 +02:00
Florian Müllner
18674b2e35 lint: Migrate eslint-plugin-jsdoc rule
Migrate a removed jsdoc, copied from the corresponding gnome-shell
change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/259>
2023-07-07 00:11:57 +02:00
Florian Müllner
278d0afc79 Bump version to 45.alpha
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/258>
2023-07-03 00:25:31 +02:00
Florian Müllner
90031432da build: Remove left-over variable
We no longer install a separate mode style, so the variable is
now unused.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/258>
2023-07-03 00:25:03 +02:00
Florian Müllner
b11f0f16f4 light-style: Always save scheme preference on enable()
Disable() should restore the scheme preference that was used when
the extension was enabled, not when it was first initialized.

Even if it's unlikely to be relevant in practice, let's make sure
we save the correct state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/257>
2023-07-02 23:24:33 +02:00
Florian Müllner
b7895ad956 extensions: Add new light-style extension
Now that gnome-shell supports a light style, people may want to
use it without forcing all apps to be light.

Add a small extension that switches the default to light, so the
shell follows the regular "dark style" preference.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/256>
2023-06-23 14:36:09 +00:00
Arik W
22b9f888fb window-list: Add tooltip for long window titles
Adds a tooltip feature to the window buttons.
If a button’s label is too long to fit, a tooltip will show the complete content when the user hovers over the button.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/251>
2023-06-18 19:08:53 +00:00
Florian Müllner
61a260bc94 places-menu: Account for app menu removal
The app menu has been removed from the top bar, so we can no longer
base our own indicator position on it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/255>
2023-05-27 00:44:26 +02:00
Florian Müllner
ced3c94dfa classic: Account for removal of app menu
We no longer include the app menu in the regular GNOME session,
we shouldn't bring it back in Classic (not least because there
never was a similar menu in GNOME 2).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/255>
2023-05-26 21:00:14 +02:00
Florian Müllner
904ead1fb1 window-list: Replace classic- with light style
Now that classic styling is based on color scheme instead of
a dedicated "classic" stylesheet, we should do the same for
extension styling, with the bonus that it also works with the
regular appearance setting outside the classic session.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/254>
2023-05-26 20:26:43 +02:00
Florian Müllner
f6b6049bc5 classic: Use light color scheme instead of classic styling
gnome-shell now includes a light variant, and supports switching
between dark- and light styling at runtime.

That means we no longer have to build our own stylesheet, and can
instead just instruct gnome-shell to always use the light style
in the classic session.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/254>
2023-05-26 20:26:43 +02:00
Alexander Weichart
ca1c4b0f9e window-list: Improve default stylesheet
Adjust colors to be more consistent with the current shell look.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/253>
2023-05-26 18:25:35 +02:00
Jeremy Bicha
b9067eed79 releasing package gnome-shell-extensions version 44.0-1 2023-03-27 08:50:38 -04:00
Jeremy Bicha
68c7beabab debian/control.in: Build-Depend on libglib2.0-bin 2023-03-27 08:49:19 -04:00
Jeremy Bicha
3ba184bfe2 debian/control.in: Bump minimum meson to 0.58.0 2023-03-27 08:47:54 -04:00
Jeremy Bicha
24fa8a6e04 New upstream release 2023-03-27 08:47:19 -04:00
Jeremy Bicha
923f204478 Update upstream source from tag 'upstream/44.0'
Update to upstream version '44.0'
with Debian dir 2e07466bb9
2023-03-27 08:47:19 -04:00
Jeremy Bicha
930595003d New upstream version 44.0 2023-03-27 08:47:18 -04:00
Florian Müllner
58b4b3c8d6 Bump version to 44.0
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 05:14:23 +01:00
Florian Müllner
25cc126ebc build: Add configuration summary
Meson now has a summary() function to easily summarize the build
configuration after the project was configured, use that for some
fancy output when the feature is available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 04:52:56 +01:00
Florian Müllner
30bac19c5a build: Compile gschemas if necessary
It is good practice to recompile schemas after installing a new
schema, but for some reason we never did.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 04:30:45 +01:00
Florian Müllner
7689d660dc build: Bump meson requirement
Using the same minimum version as gnome-shell should be
uncontroversial, and allows us to use some new features.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 04:14:01 +01:00
Jeremy Bicha
a69d37f2ee releasing package gnome-shell-extensions version 44~rc-1 2023-03-07 12:20:07 -05:00
Jeremy Bicha
2e715149db New upstream release 2023-03-07 12:19:37 -05:00
Jeremy Bicha
26d067d301 Update upstream source from tag 'upstream/44_rc'
Update to upstream version '44~rc'
with Debian dir 0ecf357214
2023-03-07 12:19:36 -05:00
Jeremy Bicha
51df22adcf New upstream version 44~rc 2023-03-07 12:19:33 -05:00
Florian Müllner
e0d5ede296 Bump version to 44.rc
Update NEWS.
2023-03-06 04:35:46 +01:00
Florian Müllner
2c25e22145 Update sass submodule 2023-03-06 04:34:45 +01:00
Jeremy Bicha
c1df8cedb8 releasing package gnome-shell-extensions version 44~beta-1 2023-02-15 11:01:42 -05:00
Jeremy Bicha
2189f8cc58 New upstream release 2023-02-15 10:59:27 -05:00
Jeremy Bicha
6cd74c86ae Update upstream source from tag 'upstream/44_beta'
Update to upstream version '44~beta'
with Debian dir bd191be89d
2023-02-15 10:59:27 -05:00
Jeremy Bicha
6ff6eb2c22 New upstream version 44~beta 2023-02-15 10:59:26 -05:00
Florian Müllner
ffa9806d40 Bump version to 44.beta
Update NEWS.
2023-02-14 18:01:27 +01:00
Florian Müllner
5ff41b9151 Update sass submodule 2023-02-14 17:59:37 +01:00
robxnano
7e8ba59304 Center-align all menus
Make popup menus center-aligned on their parent buttons, to
match the default GNOME Shell panel menus. Affects:
- Places menu
- Drive menu
- Workspace indicator
- Window menu workspace indicator

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/246>
2023-01-13 16:12:03 +00:00
Jeremy Bicha
88657c2def Update debian/changelog 2022-11-29 16:04:18 -05:00
Debian Janitor
68b7915bc6 Remove constraints unnecessary since buster (oldstable)
* gnome-shell-extensions: Drop versioned constraint on gnome-shell-common in Replaces.
* gnome-shell-extensions: Drop versioned constraint on gnome-shell-common in Breaks.

Changes-By: deb-scrub-obsolete
2022-11-29 10:14:04 +00:00
Vasil Pupkin
497d175ae9 Update Belarusian translation 2022-11-27 18:57:09 +00:00
Jeremy Bicha
f6e66faf8f releasing package gnome-shell-extensions version 43.1-1 2022-11-22 14:15:06 -05:00
Jeremy Bicha
ee0bb2c636 New upstream release 2022-11-22 14:13:09 -05:00
Jeremy Bicha
6bee46bf1a New upstream version 43.1 2022-11-22 14:13:08 -05:00
Jeremy Bicha
1edb245e85 Update upstream source from tag 'upstream/43.1'
Update to upstream version '43.1'
with Debian dir 8c75b5968c
2022-11-22 14:13:08 -05:00
Florian Müllner
de48d02c62 Bump version to 43.1
Update NEWS.
2022-10-22 18:11:14 +02:00
Florian Müllner
ac3e095e27 Update sass submodule 2022-10-22 18:09:45 +02:00
mowemcfc
95a58358f8 build: Change zip export script shebang to use bash
The use of () array syntax and $() (which are not available in Bourne
shell) command substitution implies that this script is meant to be
executed using bash.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/244>
2022-10-22 15:02:56 +02:00
Florian Müllner
cc72a34973 window-list: Explicitly dispose settings on destroy
This will not only disconnect the signal handler, but also remove
any bindings. This works around a crash that happens if a setting
that triggers the binding changes at the same time as a setting
that rebuilds the window list; in that case, the binding handler
runs after gjs has dropped its wrapper object, but before the
binding is removed automaticalled when the object is finalized.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/416

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/243>
2022-09-30 19:55:44 +02:00
Jeremy Bicha
7a010d5a72 releasing package gnome-shell-extensions version 43.0-2 2022-09-27 19:14:00 -04:00
Jeremy Bicha
9e4b7488b3 releasing package gnome-shell-extensions version 43.0-1 2022-09-19 10:57:47 -04:00
Jeremy Bicha
18cf40a521 New upstream release 2022-09-19 10:57:27 -04:00
Jeremy Bicha
ed6d806617 Update upstream source from tag 'upstream/43.0'
Update to upstream version '43.0'
with Debian dir d0bf484be0
2022-09-19 10:57:27 -04:00
Jeremy Bicha
f4347d240a New upstream version 43.0 2022-09-19 10:57:25 -04:00
Sabri Ünal
77b35dcda3 Update Turkish translation 2022-09-18 08:11:02 +00:00
Florian Müllner
6ebb41b1e8 Bump version to 43.0
Update NEWS.
2022-09-17 18:41:49 +02:00
Florian Müllner
11cb22bd24 Update sass submodule 2022-09-17 18:40:47 +02:00
Aleksandr Melman
6fc3f5cea2 Update Russian translation 2022-09-17 16:18:03 +00:00
Zurab Kargareteli
c8484e77d3 Update Georgian translation 2022-09-14 14:37:50 +00:00
Pawan Chitrakar
98c5d4a739 Update Nepali translation 2022-09-07 21:15:50 +00:00
Jeremy Bicha
4f5e421539 releasing package gnome-shell-extensions version 43~rc-1 2022-09-06 14:39:08 -04:00
Jeremy Bicha
72868ac7c5 New upstream release 2022-09-06 14:38:17 -04:00
Jeremy Bicha
5dea503cbd Update upstream source from tag 'upstream/43_rc'
Update to upstream version '43~rc'
with Debian dir eda3854675
2022-09-06 14:38:17 -04:00
Jeremy Bicha
81b8ad4499 New upstream version 43~rc 2022-09-06 14:38:13 -04:00
Florian Müllner
01d3d8fd6d Bump version to 43.rc
Update NEWS.
2022-09-04 15:25:43 +02:00
Florian Müllner
47c2834ffa Update sass submodule 2022-09-04 15:24:50 +02:00
Jeremy Bicha
8f8292afb3 releasing package gnome-shell-extensions version 43~beta-1 2022-08-21 10:59:29 -04:00
Jeremy Bicha
d505f75c9b New upstream release 2022-08-21 10:59:17 -04:00
Jeremy Bicha
a8a2729531 Update upstream source from tag 'upstream/43_beta'
Update to upstream version '43~beta'
with Debian dir 54ab7f9898
2022-08-21 10:59:17 -04:00
Jeremy Bicha
aeee81a82c New upstream version 43~beta 2022-08-21 10:59:16 -04:00
Florian Müllner
9f88e98d1b extensions: Stop monkey-patching signal methods
gnome-shell added an EventEmitter class that can be used as base
for any non-GObject class that needs to emit signals.

Use that instead of the old monkey-patching.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240>
2022-08-20 19:03:36 +02:00
Florian Müllner
4b7055d0da places-menu: Mark PlacesManager as exported
For some reason eslint failed to complain about this.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240>
2022-08-20 19:03:36 +02:00
Florian Müllner
563d7770d3 lint: Sync with gnome-shell
gnome-shell started transitioning to gjs' object spacing rule,
i.e. `{foo: 42}` instead of `{ foo: 42 }`.

We have a much smaller code base than the shell and aren't using
a secondary "allowed-but-deprecated" configuration that allows a
gradual transition, so just pull the switch and update to the new
style.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240>
2022-08-20 19:00:32 +02:00
Florian Müllner
d62b58b1d9 Bump version to 43.beta
Update NEWS.
2022-08-10 20:03:20 +02:00
Florian Müllner
4f78bb96a7 Update sass submodule 2022-08-10 20:03:20 +02:00
Florian Müllner
c94678e2be classic: Adjust to quick settings
The aggregate menu has been replaced with quick settings. Adjust
the session mode definition accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/238>
2022-08-10 16:21:13 +02:00
Nart Tlisha
3c515d42f2 Update Abkhazian translation 2022-07-26 10:45:41 +00:00
Jeremy Bicha
9306ee7a5d releasing package gnome-shell-extensions version 42.3-1 2022-07-13 17:49:11 +02:00
Jeremy Bicha
e8c8c7d940 New upstream release 2022-07-13 17:48:52 +02:00
Jeremy Bicha
871c9c39dc Update upstream source from tag 'upstream/42.3'
Update to upstream version '42.3'
with Debian dir 1a2f6557b5
2022-07-13 17:46:11 +02:00
Jeremy Bicha
fcefdc3271 New upstream version 42.3 2022-07-13 17:46:10 +02:00
Florian Müllner
bb5869f8df ci: Instruct gitlab to checkout submodules
... instead of doing it in the script.

This will become important when we switch to a CI image with an
updated meson version that no longer checks out submodules as
part of the dist command.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/237>
2022-07-11 00:33:47 +02:00
Florian Müllner
faaa66eb3f ci: Don't define image globally
This has been deprecated in favor of defining the default image
in the default section.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/237>
2022-07-11 00:33:47 +02:00
Florian Müllner
14c60eb954 Bump version to 43.alpha
Update NEWS.
2022-07-10 14:36:37 +02:00
Florian Müllner
0234cd74f7 Update sass submodule 2022-07-10 14:36:37 +02:00
Florian Müllner
f637e81c8c native-window-placement: Minor style fix
JSDoc prefer "object" over "Object", so update the doc comment
accordingly.
2022-07-10 14:20:25 +02:00
Marco Ciampa
ea82830a9f Update it.po, corrected the file-manager name File. 2022-07-06 12:51:16 +00:00
Florian Müllner
8b62c38e20 Bump version to 42.3
Update NEWS.
2022-07-02 18:41:28 +02:00
Florian Müllner
4667b4704d window-list: Open menu on long press
Right-click isn't available on touch, so implement long-press as
an alternative.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/233>
2022-06-20 14:45:58 +02:00
Florian Müllner
fe60614b41 window-list: Fix primary button action on touch
If a click event was triggered via touch rather than a pointer
device, the button parameter is 0 rather than a mouse button
number.

Account for that to make sure that touch events are not misinterpreted
as right clicks.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/233>
2022-06-20 14:45:58 +02:00
Florian Müllner
1e833f542f screenshot-window-sizer: Delay size popup
We use the actual frame size for the popup rather than the target
size. That means (on wayland), we have to wait for the size to
actually change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/232>
2022-06-09 19:20:44 +02:00
Florian Müllner
faabfa11c2 screenshot-window-sizer: Remove superfluous check
We already filter out sizes that don't fit the screen when
building the scaledSizes array, no need to check again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/232>
2022-06-09 19:06:24 +02:00
Jeremy Bicha
ecc955b4cd releasing package gnome-shell-extensions version 42.2-1 2022-06-03 09:23:35 -04:00
Jeremy Bicha
7e5f7eb0aa New upstream release 2022-06-03 09:19:26 -04:00
Jeremy Bicha
1c3407c05f Update upstream source from tag 'upstream/42.2'
Update to upstream version '42.2'
with Debian dir a5ea5896c1
2022-06-03 09:19:25 -04:00
Jeremy Bicha
7a017c1e76 New upstream version 42.2 2022-06-03 09:19:21 -04:00
Florian Müllner
959782835d Bump version to 42.2
Update NEWS.
2022-05-28 14:30:58 +02:00
Jason Lynch
412762ae9d window-list: Set visibility based on the target monitor.
Currently, the visibility of the window list on a given monitor is set
according to the fullscreen status of the primary monitor. When a
fullscreen application is on a secondary monitor (but not on the primary
monitor), entering and exiting the overview will lead to the window list
incorrectly being visible on the monitor with the fullscreen
application.

Instead, determine the visibility based on the fullscreen status of the
monitor being evaluated.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/230>
2022-05-19 18:31:33 -07:00
Florian Müllner
6e4f4126b6 native-window-placement: Adjust to 42 changes
gnome-shell's new screenshot UI reuses the overview's window
picker layout, but its window previews don't give access to
the underlying MetaWindow.

Adjust to that by using the boundingBox property instead, which
is all we really need from the window anyway.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/399

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/229>
2022-05-19 19:08:59 +02:00
Cheng-Chia Tseng
5dc212d1e5 Update Chinese (Taiwan) translation 2022-05-11 16:02:45 +00:00
Jeremy Bicha
26fb856ffc releasing package gnome-shell-extensions version 42.1-1 2022-05-09 08:09:41 -04:00
Jeremy Bicha
9d2b15ba26 New upstream release 2022-05-09 08:08:22 -04:00
Jeremy Bicha
28cdc1df1a Update upstream source from tag 'upstream/42.1'
Update to upstream version '42.1'
with Debian dir f8b48c4000
2022-05-09 08:02:14 -04:00
Jeremy Bicha
b2455f0ecd New upstream version 42.1 2022-05-09 08:02:09 -04:00
Florian Müllner
a02c9b6589 Bump version to 42.1
Update NEWS.
2022-05-06 13:35:32 +02:00
Florian Müllner
18e18f240f Update sass submodule 2022-05-06 13:30:26 +02:00
Jeremy Bicha
0c501f84b9 Update debian/watch
Gbp-Dch: Ignore
2022-04-27 13:01:36 -04:00
Zurab Kargareteli
96bdc7c74a Add Georgian translation 2022-04-23 16:59:34 +00:00
Ngọc Quân Trần
812b96a571 Update Vietnamese translation 2022-04-03 07:51:00 +00:00
Florian Müllner
a51145f9db window-list: Fix cleaning up signal on removal
The map uses windows as key, so trying to remove the handler ID
will leave stray windows/signals.

Spotted by Ron Yorston.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/225>
2022-03-29 17:06:40 +02:00
Jeremy Bicha
c6d5ea5934 releasing package gnome-shell-extensions version 42.0-2 2022-03-28 11:18:24 -04:00
Nathan Follens
36fc042e27 Update Dutch translation 2022-03-25 11:44:09 +00:00
Rūdolfs Mazurs
54f39318ba Update Latvian translation 2022-03-24 20:15:56 +00:00
Florian Müllner
cbd5c2438d classic: Drop unnecessary calendar styling
It is already fully covered by the light variant.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/222>
2022-03-24 00:08:09 +00:00
Florian Müllner
29e032d89c classic: Drop unused toggle-switch style/assets
gnome-shell dropped the separate us/intl handling back in 2019.
That includes adding the corresponding style classes, so the
style and assets are completely unused now.

Nobody noticed because gnome-shell itself includes assets for
a light variant, so we can simply drop the unused stuff.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/222>
2022-03-24 00:08:09 +00:00
Florian Müllner
72a9696249 build: Remove unused stylesheets
The only reason for installing empty stylesheets is minimizing
build system differences between extensions. That's not a very
good reason and we don't do this for other optional files like
schemas.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/223>
2022-03-24 00:53:13 +01:00
Milo Casagrande
9ca89cdf63 Update Italian translation 2022-03-17 08:34:22 +00:00
Jeremy Bicha
047f939b63 releasing package gnome-shell-extensions version 42.0-1 2022-03-14 11:30:41 -04:00
Jeremy Bicha
3d693372ad New upstream release 2022-03-14 11:29:57 -04:00
Jeremy Bicha
a33802d3e5 Update upstream source from tag 'upstream/42.0'
Update to upstream version '42.0'
with Debian dir 534fb27166
2022-03-14 11:29:57 -04:00
Jeremy Bicha
573aba17d7 New upstream version 42.0 2022-03-14 11:29:53 -04:00
Florian Müllner
227c900d1c Bump version to 42.0
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/220>
2022-03-12 23:57:47 +01:00
Baurzhan Muftakhidinov
49b304f3b7 Update Kazakh translation 2022-03-12 17:57:43 +00:00
sicklylife
ac77f0b879 Update Japanese translation 2022-03-12 10:42:11 +00:00
Марко Костић
54e02b1925 Update Serbian translation 2022-03-11 06:11:09 +00:00
Balázs Úr
1489e42c46 Update Hungarian translation 2022-03-11 00:39:00 +00:00
Philipp Kiemle
684004bd89 Update German translation 2022-03-10 23:34:18 +00:00
Jeremy Bicha
d483244ecb releasing package gnome-shell-extensions version 42~rc-1 2022-03-08 17:55:04 -05:00
Jeremy Bicha
8e39e0d363 Revert "debian/control: Support pre-release versions of gnome-shell"
This reverts commit e2369147b1.

Fixed in gnome-pkg-tools instead
2022-03-08 09:55:43 -05:00
Jeremy Bicha
2762830b10 Revert "debian/watch: Look for any released version"
This reverts commit a2c271d677.

Now that the 42 devel series is basically done, let's
return to looking for stable releases.

Yes, I know there is some disagreement about our watch files,
but this matches what nearly all the Debian GNOME packages do.
2022-03-08 09:32:45 -05:00
Jeremy Bicha
df1df4b8e1 New upstream release 2022-03-08 09:32:30 -05:00
Jeremy Bicha
210e86641b Update upstream source from tag 'upstream/42_rc'
Update to upstream version '42~rc'
with Debian dir 7835943993
2022-03-08 09:32:30 -05:00
Jeremy Bicha
2117c42d74 New upstream version 42~rc 2022-03-08 09:32:26 -05:00
Florian Müllner
80e68be9fa Bump version to 42.rc
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/219>
2022-03-07 16:04:51 +01:00
Florian Müllner
06af10e0d3 Update sass submodule
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/219>
2022-03-07 16:03:40 +01:00
Changwoo Ryu
95b8aa38cb Update Korean translation 2022-03-03 12:45:28 +00:00
Charles Monzat
b010bff5d9 Update French translation 2022-03-03 07:53:48 +00:00
Alan Mortensen
a8b73861a6 Updated Danish translation 2022-02-28 18:46:32 +01:00
Luna Jernberg
bd002fa96d Update Swedish translation 2022-02-28 15:17:45 +00:00
Jiri Grönroos
5712dd05d9 Update Finnish translation 2022-02-27 16:54:51 +00:00
Piotr Drąg
694b0552c2 Update Polish translation 2022-02-26 15:17:47 +01:00
Dušan Kazik
d9f5726d45 Update Slovak translation 2022-02-25 07:14:55 +00:00
Marco Trevisan (Treviño)
a8a49e3c65 Upload to experimental 2022-02-23 07:35:20 +01:00
Marco Trevisan (Treviño)
bfe26eaf84 Update changelog 2022-02-23 03:12:07 +01:00
Marco Trevisan (Treviño)
60a08debff debian/patches: Drop applied upstream 2022-02-23 03:12:07 +01:00
Marco Trevisan (Treviño)
132bd9259e debian/control: Depend on libadwaita and gtk-4 (instead of gtk-3) 2022-02-23 03:03:05 +01:00
Marco Trevisan (Treviño)
5eb4dcf6bf New upstream release 2022-02-23 02:57:10 +01:00
Marco Trevisan (Treviño)
5edffcd859 New upstream version 42~beta 2022-02-23 02:57:09 +01:00
Marco Trevisan (Treviño)
295fb67225 Update upstream source from tag 'upstream/42_beta'
Update to upstream version '42~beta'
with Debian dir 7f35debfa0
2022-02-23 02:57:09 +01:00
Marco Trevisan (Treviño)
a2c271d677 debian/watch: Look for any released version 2022-02-23 02:56:48 +01:00
Florian Müllner
3c5a56b440 auto-move: Bind list to model
Using a model gives us a clear separation between data and representation,
as well as between regular rows and the "new item" row at the end.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218>
2022-02-18 13:09:35 +01:00
Florian Müllner
725cf83551 auto-move-windows: Change 'update' action to 'rename'
Limiting the action to the row that changed instead of the list as
a whole makes it easier to only update the changed value and not
recreate the entire list.

This doesn't make a difference right now, because we carefully sync
the list to reuse existing rows, but we are about to back the list
with a GListModel instead of updating it manually.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218>
2022-02-18 13:08:09 +01:00
Florian Müllner
f91275ffd2 workspace-indicator: Bind list to model
Using a model gives us a clear separation between data and representation,
as well as between regular rows and the "new item" row at the end.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218>
2022-02-18 13:02:17 +01:00
Florian Müllner
f0e46f4b12 workspace-indicator: Change 'update' action to 'rename'
Limiting the action to the row that changed instead of the list as
a whole makes it easier to only update the changed value and not
recreate the entire list.

This doesn't make a difference right now, because we carefully sync
the list to reuse existing rows, but we are about to back the list
with a GListModel instead of updating it manually.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218>
2022-02-18 12:55:57 +01:00
Florian Müllner
57f7f21ecb workspace-indicator: Bind name to action target
Since we now have an override for bind_properties_full(), we can
use that instead of an explicit notify handler.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/218>
2022-02-18 12:42:07 +01:00
Florian Müllner
9f673f27ef cleanup: Use static class blocks for gtype registration
gjs enabled support for static class blocks, which gives us a
less error-prone and more readable alternative to _classInit(),
provided we make sure to call registerClass() first.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215>
2022-02-18 03:34:06 +00:00
Florian Müllner
08db193b31 cleanup: Use regular constructors in GObject subclasses
As a side-effect of supporting class fields, regular constructors
now work in GObject subclasses. Using _init() still works and
there's no functional difference, but it's simply much nicer
to use the same syntax for all classes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215>
2022-02-18 03:34:06 +00:00
Florian Müllner
0be8b10995 cleanup: Simplify action handling
GTK4 has dedicated API for widget-specific actions, make use of that
instead of explicitly managing an action group.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215>
2022-02-18 03:34:06 +00:00
Florian Müllner
b35df9062c lint: Sync with gjs
This is needed for eslint to recognize static class blocks.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215>
2022-02-18 03:34:06 +00:00
Florian Müllner
f6f34c6341 ci: Replace js78 job
Provided we use the correct version of the SpiderMonkey shell, we
can perform checks using the same engine that is used by gjs.

However some engine features are opt-in, so the set of features enabled
by gjs and js91 may differ. The obvious option for avoiding this is
replacing js91 with gjs for tests.

Switch to the newly added gjs-check-syntax script, which does precisely
that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215>
2022-02-18 03:34:06 +00:00
Florian Müllner
22e4ca8925 ci: Bump gnome-shell image
We are about to make use of new language features, so update to an
image that has the necessary tooling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/215>
2022-02-18 03:34:06 +00:00
Marek Černocký
4fd2be744e Updated Czech translation 2022-02-16 10:00:12 +01:00
Simon McVittie
6901f6187d Backport patch from upstream to fix FBTFS with Meson 0.61
Closes: #1005534
2022-02-15 11:18:42 +00:00
Florian Müllner
31e48437ec classic: Update list of sass sources 2022-02-14 23:49:00 +01:00
Florian Müllner
78f1bb3cc9 Update sass submodule 2022-02-14 23:48:12 +01:00
Florian Müllner
14cdb5fa16 Bump version to 42.beta
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/216>
2022-02-14 23:18:46 +01:00
Emin Tufan Çetin
533cd07cfd Update Turkish translation 2022-02-13 22:42:10 +00:00
Alexander Shopov
7232118978 Update Bulgarian translation 2022-02-13 10:41:54 +00:00
Naala Nanba
7a1286ec1c Update Abkhazian translation 2022-02-12 20:25:06 +00:00
Naala Nanba
a51a52268e Update Abkhazian translation 2022-02-12 19:40:52 +00:00
Naala Nanba
6db43f9603 Add Abkhazian translation 2022-02-12 19:36:35 +00:00
Florian Müllner
f7b5836c75 auto-move-windows: Use custom spin button in prefs
Gtk.SpinButton doesn't look great in lists, so replace it with a
small custom widget based on current mockups from the design team.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/213>
2022-02-12 02:05:50 +00:00
Florian Müllner
ffb2b27477 auto-move-windows: Use libadwaita's row widgets
We get to remove a bunch of boring code, and get something better
looking and more standardized in return.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/213>
2022-02-12 02:05:50 +00:00
Florian Müllner
dd3c524c49 prefs: Replace 'content' list style
It's deprecated in favor of 'boxed-list'.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/213>
2022-02-12 02:05:50 +00:00
Florian Müllner
b92973df00 cleanup: 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.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/214>
2022-02-11 16:22:38 +01:00
Florian Müllner
0b7e8f9720 user-theme: Stop using Gio._LocalFilePrototype
Now that promisify() works on interfaces, we don't need this
cludge anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/214>
2022-02-11 16:22:38 +01:00
Florian Müllner
f6342d3b52 cleanup: Replace Promise wrappers
gjs now supports overriding interface methods, which means that
promisify started to work on interfaces.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/214>
2022-02-11 16:22:38 +01:00
Florian Müllner
013b3fb73c apps-menu: Adapt to Clutter.Grab changes
Device grabs are gone, switch to the new API.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/212>
2022-02-10 00:28:04 +01:00
Florian Müllner
69527857f8 window-list: Adapt to Clutter.Grab changes
pushModal() now returns a grab object that has to be passed to
popModal() to release the grab.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/212>
2022-02-10 00:12:22 +01:00
Florian Müllner
e0128a7817 window-list: Use libadwaita for preferences
libadwaita has now become stable and will be part of the GNOME 42
platform. Time to embrace it and get fancier preferences with
less code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/209>
2022-02-08 19:22:41 +00:00
Florian Müllner
62628b25c6 auto-move-windows: Use libadwaita for preferences
libadwaita has now become stable and will be part of the GNOME 42
platform. Time to embrace it and get fancier preferences with
less code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/209>
2022-02-08 19:22:41 +00:00
Florian Müllner
3f89b57c96 workspace-indicator: Use libadwaita for preferences
libadwaita has now become stable and will be part of the GNOME 42
platform. Time to embrace it and get fancier preferences with
less code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/209>
2022-02-08 19:22:41 +00:00
Florian Müllner
01537b401f user-theme: Use libadwaita for preferences
libadwaita has now become stable and will be part of the GNOME 42
platform. Time to embrace it and get fancier preferences with
less code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/209>
2022-02-08 19:22:41 +00:00
Matej Urbančič
30e846274c Update Slovenian translation 2022-01-26 21:03:10 +00:00
Florian Müllner
d340922fea window-list: Track window-created/unmanaged
Shell's WindowTracker switched to those signals instead of tracking
windows through MetaWorkspace's window-added/removed signals.

As ::window-created is only emitted after a window has been added to
its workspace, looking up its app on ::window-added now fails because
the window isn't tracked yet.

Address this by switching to the same signals for window tracking
(which is simpler anyway).

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/372

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/207>
2022-01-26 12:33:35 +00:00
Florian Müllner
8dd8d6f561 workspace-indicator: Fix cancelling editing with Esc
The CallbackAction's callback must return true to stop the event
from propagating to the dialog, where it will trigger the close
binding.

It makes sense to still allow closing the dialog with Escape while
not editing a row. The easiest way to achieve that is by moving the
controller to the entry.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/208>
2022-01-26 10:55:59 +00:00
Jan Beich
cdaa837d48 meson: Drop unused argument for i18n.merge_file()
Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0.

data/meson.build:23:0: ERROR: Function does not take positional arguments.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/210>
2022-01-25 11:52:56 +00:00
Boyuan Yang
7576b5c602 Update Chinese (China) translation 2022-01-13 20:28:37 +00:00
Florian Müllner
fac3d8b8c4 Bump version to 42.alpha
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/206>
2022-01-10 22:40:29 +01:00
Rafael Fontenelle
cecf778381 Update Brazilian Portuguese translation 2022-01-07 22:59:34 +00:00
Kukuh Syafaat
0663a989f4 Update Indonesian translation 2022-01-05 03:24:29 +00:00
Asier Sarasua Garmendia
7b2d9d0b73 Update Basque translation 2021-12-25 14:00:09 +00:00
Aurimas Černius
f220e11bce Updated Lithuanian translation 2021-12-14 13:49:10 +02:00
Aleksandr Melman
af4165d3e5 Update Russian translation 2021-12-13 11:27:53 +00:00
Sveinn í Felli
c82ca68c03 Update Icelandic translation 2021-12-13 09:08:27 +00:00
Jeremy Bicha
e2ee6bacd0 releasing package gnome-shell-extensions version 41.1-1 2021-12-12 20:30:29 -05:00
Jeremy Bicha
bc6c24fc4e New upstream release 2021-12-12 20:29:02 -05:00
Jeremy Bicha
58f72a073d Update upstream source from tag 'upstream/41.1'
Update to upstream version '41.1'
with Debian dir c5965b647a
2021-12-12 20:29:01 -05:00
Jeremy Bicha
d8b526a715 New upstream version 41.1 2021-12-12 20:28:55 -05:00
Florian Müllner
a5b6871562 Bump version to 41.1
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/200>
2021-12-11 14:20:23 +01:00
Florian Müllner
deb6031381 window-list: Fix OSK
The reveal animation moved from Main.layoutManager.keyboardBox to
the keyboard itself, so instead of applying an additional translation
for the bottom panel, we override the translation that would reveal
the keyboard (and thus prevent it from showing altogether).

Fix this by moving our translation to the keyboardBox instead.

(cherry picked from commit 02e5029eb6)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/202>
2021-12-11 14:04:21 +01:00
Sebastian Keller
486cb59aff native-window-placement: Remove custom styling
The window-picker padding was causing it to become smaller in the
overview resulting in a jump when opening it and caused sizing issues
with the workspace view in the app picker. However it is not needed
anymore with the new overview, so this can be fixed by simply removing
it.

The horizontal- and vertical-spacing properties got replaced with a
spacing property a while ago. However this is only used in
WorkspaceLayout::_createBestLayout() which gets overridden by this
extension which does not use it. So they can simply be removed.

The shell-caption-spacing property got removed when the window captions
got changed to always use the full length and has not been doing
anything since.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/301
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/309
(cherry picked from commit 4a26cecd7d)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/202>
2021-12-11 14:04:07 +01:00
Neal Gompa
de9a3df7bd classic: Add X-GNOME-SessionRegisters
GDM has supported sessions registering with it for a few years now so
it can know when to shut down the greeter. Having the GNOME Classic
session declare that it will register itself allows GDM to avoid
executing a fallback codepath.

This has been supported with the regular GNOME session for a while,
and this session was likely forgotten about when it was added there.

(cherry picked from commit a79d2afb2d)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/202>
2021-12-11 14:03:33 +01:00
Florian Müllner
02e5029eb6 window-list: Fix OSK
The reveal animation moved from Main.layoutManager.keyboardBox to
the keyboard itself, so instead of applying an additional translation
for the bottom panel, we override the translation that would reveal
the keyboard (and thus prevent it from showing altogether).

Fix this by moving our translation to the keyboardBox instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/199>
2021-11-26 20:01:40 +01:00
Daniel Mustieles
d98153ba9e Updated Spanish translation 2021-11-26 18:05:13 +01:00
Fran Dieguez
4d913adcec Update Galician translation 2021-11-19 22:22:52 +00:00
MohammadSaleh Kamyab
5729d0b84a Update Persian translation 2021-11-18 22:40:00 +00:00
Sebastian Keller
4a26cecd7d native-window-placement: Remove custom styling
The window-picker padding was causing it to become smaller in the
overview resulting in a jump when opening it and caused sizing issues
with the workspace view in the app picker. However it is not needed
anymore with the new overview, so this can be fixed by simply removing
it.

The horizontal- and vertical-spacing properties got replaced with a
spacing property a while ago. However this is only used in
WorkspaceLayout::_createBestLayout() which gets overridden by this
extension which does not use it. So they can simply be removed.

The shell-caption-spacing property got removed when the window captions
got changed to always use the full length and has not been doing
anything since.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/301
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/309
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/189>
2021-11-17 12:37:28 +00:00
Jordi Mas i Hernandez
e5a3fa4cfa Update Catalan translation 2021-11-15 07:57:14 +00:00
Goran Vidović
6268e82f35 Update Croatian translation 2021-11-12 11:25:34 +00:00
Yaron Shahrabani
348a5777d3 Update Hebrew translation 2021-11-11 22:54:01 +00:00
Hugo Carvalho
594af0c412 Update Portuguese translation 2021-11-07 22:32:42 +00:00
Quentin PAGÈS
d6a81150b6 Update Occitan translation 2021-11-07 19:54:26 +00:00
Fabio Tomat
38b3413e94 Update Friulian translation 2021-11-07 16:51:51 +00:00
Just Perfection
762ec75601 user-theme: Extensions review guidelines compatibility
Extensions review guidelines enforces extensions to
don't create objects in the constructor of the class
that init() returns. so creating settings object in enable()
can make the extension compatible with the ego review guidelines.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/197>
2021-11-06 21:58:59 +00:00
Yuri Chornoivan
6da9a39959 Update Ukrainian translation 2021-11-06 16:35:25 +00:00
Piotr Drąg
2938a1a312 Update POTFILES.in
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/198>
2021-11-06 15:02:17 +01:00
Neal Gompa
eb517c8517 classic: Install the session for Wayland and ship override sessions
The regular GNOME session ships with three options:

* GNOME
* GNOME on Wayland (available when GDM starts in X11)
* GNOME on Xorg (available when GDM starts in Wayland)

The main GNOME session is set up so it works to match how GDM starts,
so GNOME is on Wayland if GDM is (or GNOME is on X11 if GDM is).

For GNOME Classic, we are missing this setup, so port this behavior
over from the GNOME session setup.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/195>
2021-10-29 10:00:02 -04:00
Neal Gompa
a79d2afb2d classic: Add X-GNOME-SessionRegisters
GDM has supported sessions registering with it for a few years now so
it can know when to shut down the greeter. Having the GNOME Classic
session declare that it will register itself allows GDM to avoid
executing a fallback codepath.

This has been supported with the regular GNOME session for a while,
and this session was likely forgotten about when it was added there.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/195>
2021-10-29 09:58:38 -04:00
Simon McVittie
c83a75766c Release to unstable 2021-10-16 20:06:11 +01:00
Jeremy Bicha
c016fb531c releasing package gnome-shell-extensions version 41.0-1 2021-10-10 17:05:00 -04:00
Jeremy Bicha
1615745a1f Bump Standards-Version to 4.6.0 2021-10-09 06:35:40 -04:00
Jeremy Bicha
dc50382d22 debian/control.in: Bump minimum meson to 0.53.0 2021-10-03 20:43:18 -04:00
Jeremy Bicha
a5b84379f4 New upstream release 2021-10-03 20:42:41 -04:00
Jeremy Bicha
d168261fa5 Update upstream source from tag 'upstream/41.0'
Update to upstream version '41.0'
with Debian dir e15005271d
2021-10-03 20:42:41 -04:00
Jeremy Bicha
db131fc7da New upstream version 41.0 2021-10-03 20:42:40 -04:00
Jeremy Bicha
e83760388f Update debian/gbp.conf & debian/watch for team style 2021-10-03 20:41:29 -04:00
Sveinn í Felli
396f4ef566 Update Icelandic translation 2021-09-29 10:18:03 +00:00
Goran Vidović
c26b4803c3 Update Croatian translation 2021-09-23 14:38:14 +00:00
Florian Müllner
4ccf12e988 Bump version to 41.0
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/192>
2021-09-19 12:47:07 +02:00
Simon McVittie
82d19a5433 Release to unstable 2021-09-11 21:53:21 +01:00
Florian Müllner
74121fce78 Bump version to 41.rc.1
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/191>
2021-09-06 01:40:31 +02:00
Florian Müllner
0a7491d747 build: Bump meson requirement
Passing arguments to dist scripts was only introduced after 0.44,
so bump the requirement to shut up the corresponding warning.

Meson 0.53 is the same version requirement as gnome-shell, so that
shouldn't be an issue for distributors.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/191>
2021-09-06 01:40:11 +02:00
Florian Müllner
68bf3e7ff7 ci: Fix classic build
The option name used in CI was wrong, so we did not actually build
the auxiliary classic mode file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/190>
2021-09-06 00:41:04 +02:00
Florian Müllner
93dd8f535d ci: Init submodule
As the gnome-shell-sass submodule isn't included under subprojects,
meson doesn't handle it automatically.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/190>
2021-09-06 00:39:50 +02:00
Florian Müllner
0b993525f5 build: Check sassc errors when generating stylesheet
We currently just call sassc, but don't check its return value. That
means as long as sassc is available, the script (and therefore the
newly added dist CI job) will succeed.

Make sure we fail on failure.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/190>
2021-09-06 00:33:08 +02:00
Florian Müllner
5dfdb68c75 Bump version to 41.rc
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/188>
2021-09-05 02:02:52 +02:00
Florian Müllner
443d1dc42b ci: Add dist job
So far, releases are done locally by invoking `meson dist`.

We can do better and leverage the existing CI infrastructure, to get
to the following release workflow:

 - bump version in meson.build, update NEWS etc.
 - open merge request for the release
 - merge when the pipeline (including dist check) succeeds
 - tag the release
 - wait for the tag pipeline to spit out the tarball artifact

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/186>
2021-09-04 05:10:23 +02:00
Florian Müllner
34f6c9514a ci: Add a fedora build job
We currently use a setup modelled after the flatpak CI workflow,
where we produce extension bundles and expose them as artifacts
for easy testing.

It still makes sense to test a regular build though, in particular
as that can include classic mode support.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/186>
2021-09-04 05:10:23 +02:00
Florian Müllner
2f2619403a ci: Build custom image
The gnome-shell image we are using is well-suited for the jobs we
are running, but the lack of sassc means that we don't cover classic
mode.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/186>
2021-09-04 05:10:23 +02:00
Florian Müllner
d25cc847f3 ci: Reindent yaml configuration
The file currently uses a mix of 4 and 2 space indentation (with the
occasional 1 space thrown in). It looks like most GNOME projects have
settled on 2-space indentation, so use that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/186>
2021-09-04 05:10:23 +02:00
Florian Müllner
769ad859e6 build: Check NEWS for version
I don't think this ever happened to me, but it can't hurt enforcing
that every release has a corresponding NEWS entry.

(The script has been copied from Polari, thus the metainfo support)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/186>
2021-09-04 05:10:23 +02:00
Florian Müllner
7ba0e5b42c apps-menu: Stop using panel-main-menu shortcut
It's an old GNOME 2 shortcut that's no longer worth supporting in
the regular session. Instead, set up a new shortcut backed by our
own schema.

https://discourse.gnome.org/t/difference-between-show-the-overview-and-show-the-activities-overview-keyboard-shortcuts/6572

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/173>
2021-08-31 23:42:23 +02:00
Jeremy Bicha
e3e39728ce releasing package gnome-shell-extensions version 40.4-2 2021-08-29 10:46:41 -04:00
Jeremy Bicha
76dfb8ef31 releasing package gnome-shell-extensions version 40.4-1 2021-08-29 09:17:31 -04:00
Jeremy Bicha
544cf566b5 Revert "debian/control: Don't build depend on sassc"
This reverts commit 3e87fa8aa5.
2021-08-29 08:51:47 -04:00
Jeremy Bicha
da88313488 New upstream release 2021-08-29 08:50:45 -04:00
Jeremy Bicha
2aa0720e93 Update upstream source from tag 'upstream/40.4'
Update to upstream version '40.4'
with Debian dir e6eaad7d17
2021-08-29 08:50:45 -04:00
Jeremy Bicha
80c6656c4f New upstream version 40.4 2021-08-29 08:50:41 -04:00
Jeremy Bicha
be536ee32e Update debian/changelog 2021-08-29 08:49:07 -04:00
Jeremy Bicha
339e06634f debian/copyright: Add gnome-classic.css to Files-Excluded
to ensure we build it from source
2021-08-29 08:47:48 -04:00
Jeremy Bicha
ff9527ea52 debian/watch: Watch for stable releases 2021-08-29 08:36:43 -04:00
Florian Müllner
201339345d window-list: Only show at the end of the overview transition
gnome-shell now considers the work area in the overview, so popping
up at the beginning of the overview transition is now more jarring
than at the end.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/185>
2021-08-26 23:36:53 +02:00
Florian Müllner
6ee4205f1e window-list: Fix initial visibility
Mutter uses an undefined initial in-fullscreen state, so it will
always emit the `in-fullscreen-changed` signal when it determines
the actual initial state.

This didn't use to be an issue when the shell started in the session,
but now results in the window list ending up visible in the overview
on startup.

Work around this by hiding ourselves again when the in-fullscreen
state changes in the overview.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/185>
2021-08-26 23:28:44 +02:00
Florian Müllner
2307e2cabe Bump version to 41.beta
Update NEWS.
2021-08-18 01:50:19 +02:00
Florian Müllner
4becaa28ce Update sass submodule 2021-08-18 01:50:19 +02:00
Florian Müllner
a5a3523df8 Bump version to 40.4
Update NEWS.
2021-08-18 01:18:19 +02:00
Florian Müllner
cc45bd63ab cleanup: Use new gettext() convenience
gnome-shell now includes convenience helpers for gettext functions that
use an extension's text domain (as initialized by initTranslations()).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/183>
2021-08-14 23:15:56 +02:00
Florian Müllner
757bcee4e2 build: Use backend-agnostic meson commands for export
There's no alternative backend in sight for us, but it's nice to
only deal with a single build tool.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/182>
2021-08-13 05:25:47 +02:00
Florian Müllner
1340b209f9 window-list: Simplify radio handling
Instead of handling the active state manually and updating settings
on changes, we can use GActions to leave the nitty-gritty to GTK.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/181>
2021-08-13 05:22:41 +02:00
Florian Müllner
8f362d57fe lint: Synchronize configuration with gjs
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/180>
2021-08-13 04:57:35 +02:00
Florian Müllner
d0b9c9b54a cleanup: Document functions
gjs now enforces this in its eslint configuration. Adding type
information generally is a good idea, so add appropriate comments
to public functions before picking up that configuration change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/180>
2021-08-13 04:48:22 +02:00
Florian Müllner
6284b0c489 window-list: Move functions into base class
The helper functions date back to a time when AppButton and WindowButton
were unconnected classes. But nowadays they share a common base class, so
we have a better place for them than external helper functions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/180>
2021-08-13 04:39:00 +02:00
Florian Müllner
06acd9ff25 build: Rewrite gettext domain when exporting zips
Now that every extension picks up its gettext domain from
its metadata, we can easily change it when exporting the
zips.

That ensures that every extension only binds its own domain
instead of messing up other extension's translations.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/335

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/179>
2021-08-12 04:17:46 +02:00
Florian Müllner
1a1d45d9e4 build: Remove unused variable
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/335

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/179>
2021-08-12 04:17:46 +02:00
Florian Müllner
1d3775b3d1 extensions: Pick up gettext domain from metadata
Since commit a6ee142f21, the extension archives that are uploaded
to extensions.gnome.org only contain strings that are relevant for
the extension, not all translations from all extensions.

Unfortunately all extensions still share a common gettext domain,
so the extension with the last bind_textdomain() call wins and
leaves the others without translations.

We'll address this by using distinct domains when not installed
system-wide. That becomes easier if there is a canonical place
for the text domain, with the existing metadata key being the
natural choice.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/335

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/179>
2021-08-12 04:17:46 +02:00
Florian Müllner
8a211f98fd build: Rewrite gettext domain when exporting zips
Now that every extension picks up its gettext domain from
its metadata, we can easily change it when exporting the
zips.

That ensures that every extension only binds its own domain
instead of messing up other extension's translations.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/335

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/179>
2021-08-11 19:05:45 +02:00
Florian Müllner
d6633397b7 build: Remove unused variable
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/335

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/179>
2021-08-11 19:05:45 +02:00
Florian Müllner
0d06cc685e extensions: Pick up gettext domain from metadata
Since commit a6ee142f21, the extension archives that are uploaded
to extensions.gnome.org only contain strings that are relevant for
the extension, not all translations from all extensions.

Unfortunately all extensions still share a common gettext domain,
so the extension with the last bind_textdomain() call wins and
leaves the others without translations.

We'll address this by using distinct domains when not installed
system-wide. That becomes easier if there is a canonical place
for the text domain, with the existing metadata key being the
natural choice.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/335

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/179>
2021-08-11 18:42:43 +02:00
Marco Trevisan (Treviño)
8de89a44a4 README: Fix typo on instructions to move to main branch 2021-07-21 19:50:34 +02:00
Florian Müllner
f3b1f10f6c ci: Set FDO_UPSTREAM_REPO
ci-fairy uses the variable to set the upstream remote that is used
to build the commit range to check.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/178>
2021-07-19 17:23:44 +02:00
Florian Müllner
15c83db793 drive-menu: Hide items initially
Now that the check for network mounts is non-blocking, the initial
sync doesn't take effect immediately. We don't want hidden items
to briefly flash the indicator, so create them initially hidden.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/176>
2021-07-19 16:44:37 +02:00
Florian Müllner
cc021589b8 drive-menu: Fix indicator visibility
Commit 519269be9d made the check for network mounts non-blocking, and
we now update the indicator's visibility before a newly-added network
mount is hidden.

Address this by monitoring the item itself for visibility changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/176>
2021-07-19 16:44:37 +02:00
Florian Müllner
2bced47762 classic: Remove padding from app menu
It is now inconsistent with other top bar items, so drop it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/167>
2021-07-18 21:57:38 +00:00
Florian Müllner
7ba9b87064 docs: Add README section for default branch
We are about to change it, so briefly outline how to update local
checkouts.

(Copied from glib)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/177>
2021-07-14 21:11:59 +02:00
Florian Müllner
a642c439ce docs: Use HEAD in external URLs
That way the link will keep working when the other project changes
its default branch name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/177>
2021-07-14 20:37:15 +02:00
Florian Müllner
d421bbfa60 drive-menu: Hide items initially
Now that the check for network mounts is non-blocking, the initial
sync doesn't take effect immediately. We don't want hidden items
to briefly flash the indicator, so create them initially hidden.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/176>
2021-07-13 11:54:21 +02:00
Florian Müllner
3539ce1139 drive-menu: Fix indicator visibility
Commit 519269be9d made the check for network mounts non-blocking, and
we now update the indicator's visibility before a newly-added network
mount is hidden.

Address this by monitoring the item itself for visibility changes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/176>
2021-07-13 11:46:16 +02:00
Florian Müllner
5e316d37cb Bump version to 40.3
Update NEWS.
2021-07-12 18:18:45 +02:00
Florian Müllner
28dbb47937 window-list: Init translations
Whoops, we are missing the bindtextdomain() call, which means translations
won't work when no other extension that shares the same domain is used
(like in GNOME Classic for instance).

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/340
(cherry picked from commit c9d7f99d50f96d29c38380d9f0e3c9ddc660db9f)
2021-07-12 18:06:31 +02:00
Florian Müllner
619de9d5ee drive-menu: Avoid blocking I/O when querying filesystem
The last commit improved the heuristics for detecting network mounts,
but at the price of potentially blocking the shell. Avoid that drawback
by making the code in question async.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/53

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/27>
(cherry picked from commit 519269be9d)
2021-07-12 18:06:31 +02:00
Florian Müllner
561b8aeb03 drive-menu: Don't assume mounts without volume are local
The intention of the code is to only expose actually plugged in
devices rather than network mounts, but the existing heuristics are
based on GVolume and simply assume a local mount where there's no
associated volume. Fill that gap by querying the ::remote filesystem
attribute in that case.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/53

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/27>
(cherry picked from commit 7d6670ce3c)
2021-07-12 18:06:31 +02:00
Florian Müllner
94b907f46d window-list: Init translations
Whoops, we are missing the bindtextdomain() call, which means translations
won't work when no other extension that shares the same domain is used
(like in GNOME Classic for instance).

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/340

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/174>
2021-07-12 16:04:50 +00:00
Alexander Shopov
1e04622eb4 Update Bulgarian translation 2021-07-11 08:21:24 +00:00
Florian Müllner
519269be9d drive-menu: Avoid blocking I/O when querying filesystem
The last commit improved the heuristics for detecting network mounts,
but at the price of potentially blocking the shell. Avoid that drawback
by making the code in question async.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/53

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/27>
2021-06-23 18:15:42 +02:00
Florian Müllner
7d6670ce3c drive-menu: Don't assume mounts without volume are local
The intention of the code is to only expose actually plugged in
devices rather than network mounts, but the existing heuristics are
based on GVolume and simply assume a local mount where there's no
associated volume. Fill that gap by querying the ::remote filesystem
attribute in that case.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/53

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/27>
2021-06-23 17:52:19 +02:00
Florian Müllner
4286fd1bcc Tag release 40.2
Update NEWS.
2021-06-10 13:41:34 +02:00
Adam Goode
3bb0897bc1 window-list: Don't use panel-button class for the workspace indicator
The panel-button introduces some horizontal padding which is insensitive
to scroll events. Without this change, there is a small dead zone in the
corner that cannot be used to switch workspaces with the mouse wheel.

For useMenu mode, this has the effect of removing all of the horizontal
space to the edge of the screen, so I add some back with the
status-label-bin margin.

This a is similar change to 8bad8a3b63.

Fixes #315.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/171>
(cherry picked from commit d6648b0b5c)
2021-06-10 13:38:47 +02:00
Juliano de Souza Camargo
50bd597baa Update Portuguese translation
(cherry picked from commit 12eedcf6f7)
2021-06-07 10:22:07 +00:00
Juliano de Souza Camargo
12eedcf6f7 Update Portuguese translation 2021-06-07 10:22:02 +00:00
Hugo Carvalho
4403b54fbc Update Portuguese translation
(cherry picked from commit 08d382facc)
2021-06-02 16:10:00 +00:00
Hugo Carvalho
08d382facc Update Portuguese translation 2021-06-02 16:09:54 +00:00
Marco Trevisan (Treviño)
e2369147b1 debian/control: Support pre-release versions of gnome-shell
Gnome version will now point to the stable version and not to the
development version, so we need to adjust the dependency to support
alpha, beta and rc releases.
2021-05-30 20:18:03 +02:00
Marco Trevisan (Treviño)
5e559c4444 Upload to experimental 2021-05-30 20:05:13 +02:00
Marco Trevisan (Treviño)
e30762ea43 Update changelog 2021-05-30 20:04:52 +02:00
Marco Trevisan (Treviño)
1fa4a078d8 debian/control: Build-depend on dh-sequence-gnome 0.22
It's the first version that supports new GNOME versioning schema.
2021-05-30 19:36:26 +02:00
Marco Trevisan (Treviño)
3e87fa8aa5 debian/control: Don't build depend on sassc
Since we compile from tarball, this is not needed anymore given that
compiled css are provided already.
2021-05-30 18:09:10 +02:00
Marco Trevisan (Treviño)
e52ca120c4 debian/control: Update runtime dependencies to match code
Found grepping code via:

  grep "imports\.gi" --include "*.js" -rh -B2 . \
     | grep -o "\b[A-Z][A-Za-z]\+\b" | sed "s/,\?\s*$//g" | sort -u
2021-05-30 18:04:19 +02:00
Marco Trevisan (Treviño)
3eadbba8a1 New upstream release 2021-05-30 17:53:16 +02:00
Marco Trevisan (Treviño)
41f9451070 Update upstream source from tag 'upstream/40.1'
Update to upstream version '40.1'
with Debian dir 0cbf40a23d
2021-05-30 17:53:16 +02:00
Marco Trevisan (Treviño)
d9ae9a023a New upstream version 40.1 2021-05-30 17:53:15 +02:00
Marco Trevisan (Treviño)
d2f5bfdbfd debian/watch: Update for new gnome versioning schema 2021-05-30 17:52:23 +02:00
Marco Trevisan (Treviño)
b4a1953372 debian/gbp.conf: Use upstream/latest branch 2021-05-30 17:50:41 +02:00
Adam Goode
d6648b0b5c window-list: Don't use panel-button class for the workspace indicator
The panel-button introduces some horizontal padding which is insensitive
to scroll events. Without this change, there is a small dead zone in the
corner that cannot be used to switch workspaces with the mouse wheel.

For useMenu mode, this has the effect of removing all of the horizontal
space to the edge of the screen, so I add some back with the
status-label-bin margin.

This a is similar change to 8bad8a3b63.

Fixes #315.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/171>
2021-05-26 11:57:41 +00:00
Florian Müllner
96a1de92db build: Only use major version in shell-versions
The website changed its version handling again, and now takes "40.0"
to mean "40.0, and only 40.0".

Not complaining though, as "40" is more correct in my opinion anyway ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/172>
2021-05-25 19:26:08 +02:00
Florian Müllner
861e5c0be6 build: Only use major version in shell-versions
The website changed its version handling again, and now takes "40.0"
to mean "40.0, and only 40.0".

Not complaining though, as "40" is more correct in my opinion anyway ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/172>
2021-05-25 15:45:21 +02:00
Florian Müllner
bf86b84d6c Post-release version bump 2021-05-14 17:01:12 +02:00
Florian Müllner
cc2f46b837 Post-release version bump 2021-05-14 17:00:35 +02:00
Florian Müllner
605dd02217 Tag release 40.1
Update NEWS.
2021-05-13 16:51:52 +02:00
Florian Müllner
b33a62f2dc Update sass submodule 2021-05-13 16:50:34 +02:00
Quentin PAGÈS
8a320eb0a1 Update Occitan translation 2021-05-10 20:04:48 +00:00
Pawan Chitrakar
83c4ced407 Update Nepali translation 2021-05-01 05:49:03 +00:00
Florian Müllner
e094dead91 windowsNavigator: Adjust to gnome-shell change
Parts of WindowPreview were moved to C for performance reasons, which
turned a formerly private JS property into a GObject property.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/302

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/170>
2021-04-08 16:38:40 +02:00
Carmen Bianca BAKKER
6cdf86b6b3 Update Esperanto translation 2021-04-07 12:05:20 +00:00
Florian Müllner
3e8bbb07ea classic: Disable welcome dialog
The Tour focuses on new overview features, which aren't relevant
for gnome-classic where the overview is disabled altogether.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/169>
2021-04-05 20:32:19 +02:00
Anders Jonsson
e3ddd8e7d0 Update Swedish translation 2021-03-27 20:14:29 +00:00
Ngọc Quân Trần
aa67982129 Update Vietnamese translation 2021-03-27 07:54:17 +00:00
Florian Müllner
8aa645ae5d build: Adjust shell-version
With the new version scheme, only the major version is relevant as
far as gnome-shell is concerned. However the extension website does
not handle that at the moment, so always append a ".0".
2021-03-20 13:39:25 +01:00
Florian Müllner
20540cb843 Post-release version bump 2021-03-20 13:39:25 +01:00
Florian Müllner
d338930d69 Tag release 40.0
Update NEWS.
2021-03-20 13:10:47 +01:00
Jiri Grönroos
35c1763792 Update Finnish translation 2021-03-16 10:15:46 +00:00
Florian Müllner
7a87bdcb1b Post-release version bump 2021-03-16 00:00:31 +01:00
Florian Müllner
50b6bd1884 Tag release 40.rc
Update NEWS.
2021-03-15 16:32:30 +01:00
Florian Müllner
db853d9023 Update sass submodule 2021-03-15 16:29:55 +01:00
Florian Müllner
5be44705f7 window-list: Improve preview styling
The current styling doesn't indicate the active workspace very well, and
makes it difficult to differentiate empty workspaces from workspaces with
maximized windows.

Tweak the styling to address those issues.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/166>
2021-03-11 12:08:38 +00:00
Florian Müllner
fdfa46099b workspace-indicator: Improve preview styling
The current styling doesn't indicate the active workspace very well, and
makes it difficult to differentiate empty workspaces from workspaces with
maximized windows.

Tweak the styling to address those issues.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/166>
2021-03-11 12:08:38 +00:00
Florian Müllner
f987e5f13d workspace-indicator: Reindent stylesheet
For some reason the CSS here uses a different indentation than
gnome-shell or the other extensions, fix that.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/166>
2021-03-11 12:08:38 +00:00
Florian Müllner
c766230118 window-list: Only show previews for up to six workspaces
On request of GNOME Classic users, we add GNOME2-like workspace previews
when using a horizontal workspace layout. The previews scale a lot worse
than the menu though, with the risk that they take up all the available
width in extreme cases.

Address this by also taking the number of workspaces into account, and
switch to the menu when we have more than six.

This is particularly important now that we switched to a horizontal
layout by default.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/165>
2021-03-10 20:11:18 +01:00
Florian Müllner
bb2b1204b4 workspace-indicator: Only show previews for up to six workspaces
On request of GNOME Classic users, we add GNOME2-like workspace previews
when using a horizontal workspace layout. The previews scale a lot worse
than the menu though, with the risk that they take up all the available
width in extreme cases.

Address this by also taking the number of workspaces into account, and
switch to the menu when we have more than six.

This is particularly important now that we switched to a horizontal
layout by default.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/165>
2021-03-10 20:11:18 +01:00
Florian Müllner
cf3690a434 windowsNavigator: Adjust to gnome-shell changes
Unsurprisingly, the big overview changes in gnome-shell broke the
extension. Make the necessary adjustments to get it working again:
 - changed constructor parameters for Workspace/WorkspacesView
 - overall state handling done by adjustment
 - window preview layout changes

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/296

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/163>
2021-03-10 15:28:37 +00:00
Florian Müllner
7062acf10f native-window-placement: Adjust to gnome-shell changes
More unsurprising breakage:
 - the workspace layout/strategy relation has been cleaned up
 - window previews now include an icon that influences the
   title position
 - window previews scale up on hover, which again influences
   the title position

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/164>
2021-03-10 15:26:26 +00:00
Fran Dieguez
7ace9c4d51 Update Galician translation 2021-02-24 21:14:57 +00:00
Florian Müllner
23887ce2a3 Post-release version bump 2021-02-24 01:57:00 +01:00
Florian Müllner
e8b8677bfe Tag release 40.beta
Update NEWS.
2021-02-24 01:50:31 +01:00
Florian Müllner
3603bc7c6a Update sass submodule 2021-02-24 01:50:31 +01:00
Florian Müllner
1e44941db6 drive-menu: Remove unused style class
The .single-indicator class was added to add extra spacing to
lone top bar items when removing the arrows, but dropped again
after solving the extra spacing differently.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/161>
2021-02-24 00:45:58 +00:00
Florian Müllner
f71da9e843 window-list: Replace WorkspaceBackground as well
The shell now scales down the backgrounds and adds a rounded corner
clip. Undo both those changes with another override.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/160>
2021-02-24 01:24:11 +01:00
Florian Müllner
1b4a20a8af window-list: Replace Workspace prototype
This is arguably more elegant than injecting into individual methods, and
will be consistent with an upcoming override that cannot be implemented
as method injection.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/160>
2021-02-24 01:24:11 +01:00
Florian Müllner
d8e179ed09 window-list: Adjust to OSK changes
Visibility changes are now handled internally, without an easy way
for us to hook into. We can resort to a hack though, as the gesture
action to bring up the keyboard is only enabled while the keyboard
is hidden.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/160>
2021-02-24 01:24:11 +01:00
A S Alam
8016cf7ae9 Update Punjabi translation 2021-02-14 00:58:36 +00:00
Аляксей
7774426eb9 Update Belarusian translation 2021-02-12 16:18:20 +00:00
Florian Müllner
9fa522c29a window-list: Adjust to overview changes
The overview code changed significantly, including the bits we re-use
to implement the window picker in the classic session. Adjust to those
changes to unbreak the extension.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/159>
2021-02-12 02:20:20 +01:00
Florian Müllner
b92295ad2c Update sass submodule
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/159>
2021-02-12 02:20:20 +01:00
Florian Müllner
d7c8a5d193 extensions: Remove horizontal-workspaces extension
Workspaces are now horizontal by default, so we don't need to change
the layout for classic mode anymore.

That was the only reason why the extension was added, so it has now
outlived its usefulness.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/158>
2021-01-29 16:09:59 +00:00
Michael Lawton
0d8d6dceb0 places-menu: Mark mounts that can be unmounted as removable
While the eject() code falls back to unmount() for mounts that
don't support ejecting, it's not possible to actually do so
because we hide the eject button.

Fix this by treating all mounts as removable that can either be
ejected or unmounted.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/161

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/152>
2021-01-28 12:25:26 +01:00
Daniel van Vugt
8a5e793b3d auto-move-windows: Don't move windows already on all workspaces
This fixes a particular case of mutter#992.

Although gnome-shell will also be softened to not crash in future, it's
also a good idea for the extension to explicitly decide how it wants to
handle windows that are already on all workspaces.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/157>
2021-01-28 16:33:50 +08:00
Florian Müllner
8fcbed6481 classic: Remove arrow-override
No need to hide what is no longer there.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/156>
2021-01-26 17:00:24 +01:00
Florian Müllner
ac2ed286e1 extensions: Remove arrows from top bar menus
... following the corresponding gnome-shell change.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/156>
2021-01-26 16:59:43 +01:00
Florian Müllner
3c3c1f702d window-list: Add tooltips to workspace thumbnails
When showing previews instead of the menu, the workspace names
don't appear anywhere. Some users care strongly about those, so
expose them as tooltip on hover.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/155>
2021-01-20 23:58:13 +01:00
Florian Müllner
c33be29f56 workspace-indicator: Add tooltips to workspace thumbnails
When showing previews instead of the menu, the workspace names from
our preferences don't appear anywhere. Some users care strongly about
those, so expose them as tooltip on hover.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/155>
2021-01-20 23:58:13 +01:00
Florian Müllner
d8ae2dcba2 window-list: Drop height override
gnome-shell's top bar got taller, and is now just 1px smaller than
our size override. We don't need that additional pixel to fit our
UI, so remove the override to make the sizes of both bars consistent.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/271

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/154>
2021-01-18 22:43:52 +01:00
Florian Müllner
3b14c0a04e Post-release version bump 2021-01-14 19:04:45 +01:00
Florian Müllner
0e3d6465eb Tag release 40.alpha.1
Update NEWS.
2021-01-14 19:02:07 +01:00
Florian Müllner
d381a0b89b auto-move-windows: Use Gtk.Button.icon_name property
Image buttons are a very common pattern, so GTK4 added some
convenience API we can use to construct them.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
5df0fa145b workspace-indicator: Use Gtk.Button.icon_name property
Image buttons are a very common pattern, so GTK4 added some
convenience API we can use to construct them.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
f0ff0e1400 workspace-indicator: Stop using header func for separators
GTK4 added built-in support for this common pattern, so use that
instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
53f5a92dc8 user-theme: Stop using header func for separators
GTK4 provides built-in support for this common pattern, so use
that instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
d5c31273ee auto-move-windows: Stop using header func for separators
GTK4 added built-in support for this common pattern, so use that
instead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
22ea58a849 workspace-indicator: Port to GTK4
With this port, all extensions now use GTK4 for their preferences.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
67d96993ce auto-move-windows: Port to GTK4
Just like the previous ports, this consists mostly of
replacing the old Gtk.Container methods.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
96dd4f9835 window-list: Port to GTK4
Another easy port:
 - replace Gtk.Container methods
 - stop using show_all()
 - Gtk.CheckButton now provides the
   Gtk.RadioButton functionality as well

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
3bef6be7c1 user-theme: Port to GTK4
With the previous preparations in place, the actual GTK4 port is
now trivial:
 - replace Gtk.Container methods with widget-specific methods
 - stop using show_all()

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:55 +01:00
Florian Müllner
b83d38a72e user-theme: Track GSettings to sync checkmark
GTK4 removes the generic GtkWidget API for accessing an inserted
action group, so we need an alternative for tracking the currently
selected theme.

Using the underlying GSettings object looks like the easiest option,
so do that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/148>
2021-01-14 14:40:54 +01:00
Florian Müllner
5b73960f34 extensions: 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-extensions/-/merge_requests/148>
2021-01-14 14:40:54 +01:00
Jonas Dreßler
505a7f4ac9 classic: Fixup panel styling after gnome-shell changes
We don't want a transparent panel in the classic session (this is
already taken care of by the existing panel background-color overrides),
and we want to avoid the new pill-shaped hover/focus indicators in the
classic session.

For the gnome-shell changes, see
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1397.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/153>
2021-01-14 00:25:47 +01:00
Florian Müllner
e8acfb2b51 Update sass submodule
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/153>
2021-01-14 00:25:47 +01:00
Florian Müllner
dcd5dc4c7f ci: Add back commit-rules file
Somehow git-mv ended up as git-rm without me noticing, whoops.
2021-01-11 14:17:04 +01:00
Florian Müllner
2702cdf889 ci: Update ci-fairy image
The default rules file name has changed from commitrules.yml to
commit-rules.yml, adjust to that change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/151>
2021-01-11 14:03:44 +01:00
Florian Müllner
669e7c32a2 classic: Pre-generate stylesheet
We follow the rule of not putting generated files under version
control, but that means drawing in additional build-time dependencies.
We can reduce those when building from a released tarball by
generating the stylesheets at dist time though, so do that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/150>
2020-12-29 00:27:07 +01:00
Florian Müllner
294eb0feb5 data: Update list of theme dependencies
The scss sources were split up in gnome-shell last cycle, catch
up with that change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/150>
2020-12-29 00:16:16 +01:00
Florian Müllner
a7ddbd0d53 Change upcoming version (again)
The extension website doesn't handle the chosen scheme correctly,
so use 40.alpha.1 instead.
2020-12-25 23:29:06 +01:00
Florian Müllner
c745dd6362 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:33:44 +01:00
Florian Müllner
a4cf9f956e ci: Add some more commit message rules
Now that we have the ability to easily define custom rules, add some
more to enforce the existing commit message style.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/149>
2020-12-18 19:26:50 +01:00
Florian Müllner
02aa68b24a ci: Replace custom commit-log script with ci-fairy
ci-fairy now supports checking commit messages for required/disallowed
patterns. Use that to replace our custom commit-log script.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/149>
2020-12-18 19:26:42 +01:00
Simon McVittie
db1342e5ff Release to unstable 2020-12-03 10:18:08 +00:00
Simon McVittie
86c5057d62 d/gbp.conf: Use upstream/3.38.x branch
Version 40~alpha was already released upstream.
2020-12-03 10:17:52 +00:00
Simon McVittie
779dea8408 Standards-Version: 4.5.1 (no changes required) 2020-12-03 10:12:34 +00:00
Simon McVittie
544f374e44 New upstream release 2020-12-03 10:11:15 +00:00
Simon McVittie
b55d783cc2 Update upstream source from tag 'upstream/3.38.2'
Update to upstream version '3.38.2'
with Debian dir 30b73fdd03
2020-12-03 10:11:15 +00:00
Simon McVittie
9f25047e24 New upstream version 3.38.2 2020-12-03 10:11:14 +00:00
Florian Müllner
fb66afbf71 Bump version to 3.38.2
Update NEWS.
2020-12-03 00:14:49 +01:00
Florian Müllner
365fa6abc9 Update sass submodule 2020-12-03 00:14:49 +01:00
Florian Müllner
d7a824f35f workspace-indicator: Use overlap to determine preview visibility
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>

(cherry picked from commit 50d3ee5703)
2020-12-03 00:09:21 +01:00
Florian Müllner
0d8e412220 window-list: Use overlap to determine preview visibility
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>

(cherry picked from commit 08dfb78815)
2020-12-03 00:09:19 +01:00
Florian Müllner
991f6ef508 workspace-indicator: Account for monitor offset in window previews
Windows' frame rects are in screen coordinates, while the workspace
thumbnails are based on the monitor work area. Unless we account
for the difference, previews end up mispositioned in multi-monitor
setups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>

(cherry picked from commit 6949a5d075)
2020-12-03 00:09:16 +01:00
Florian Müllner
37f03f5e2e window-list: Account for monitor offset in window previews
Windows' frame rects are in screen coordinates, while the workspace
thumbnails are based on the monitor work area. Unless we account
for the difference, previews end up mispositioned in multi-monitor
setups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>

(cherry picked from commit 893d3b0473)
2020-12-03 00:09:12 +01:00
Florian Müllner
b4a4ff0a06 workspace-indicator: Round calculated preview sizes
While not strictly necessary, there's no reason to differ from the
copy in the window-list extension ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>

(cherry picked from commit f5128e13f2)
2020-12-03 00:09:09 +01:00
Ray Strode
de8876bd5e window-list: Stop monitoring drag operation if window list is destroyed
If a user is in the middle of a drag in the window list and the
window list associated with the drag gets destroyed, the drag
monitor gets leaked.

Later when the drag motion is processed, spew goes to the log:

clutter_actor_contains: assertion 'CLUTTER_IS_ACTOR (self)' failed

Examples of triggers for this bug:

- The monitor topology changes
- The screen gets locked during the drag

This commit fixes the spew and the leak by ensuring any pending
drag monitoring is disabled when the window lists are destroyed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/145>

(cherry picked from commit 8318ea919f)
2020-12-03 00:08:57 +01:00
Thun Pin
5ad272e628 window-navigator: Adjust to 3.38 overview changes
gnome-shell's overview code changed significantly in 3.38,
adjust the extension to work without the separate overlay.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/259

(cherry picked from commit 737c897624)
2020-12-03 00:08:30 +01:00
Florian Müllner
3b22582752 auto-move-windows: Exclude sticky windows from empty-check
We modify gnome-shell's workspace tracker to only remove empty
workspaces from the end. However we currently don't take into
account that sticky windows appear on all workspaces, so those
are preventing any workspace from getting removed at the moment.

Exclude them when determining whether a workspace is empty to
get the expected behavior.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/135

(cherry picked from commit 61cf679b8c)
2020-12-03 00:08:07 +01:00
Florian Müllner
4e731e1dce Post-release version bump 2020-12-02 20:40:19 +01:00
Florian Müllner
eee341e907 Tag release 40.alpha
Update NEWS.
2020-12-02 20:33:56 +01:00
Florian Müllner
aad96bb1c4 Update sass submodule 2020-12-02 20:33:56 +01:00
Florian Müllner
50d3ee5703 workspace-indicator: Use overlap to determine preview visibility
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:27:44 +01:00
Florian Müllner
08dfb78815 window-list: Use overlap to determine preview visibility
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:22:51 +01:00
Florian Müllner
6949a5d075 workspace-indicator: Account for monitor offset in window previews
Windows' frame rects are in screen coordinates, while the workspace
thumbnails are based on the monitor work area. Unless we account
for the difference, previews end up mispositioned in multi-monitor
setups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:22:12 +01:00
Florian Müllner
893d3b0473 window-list: Account for monitor offset in window previews
Windows' frame rects are in screen coordinates, while the workspace
thumbnails are based on the monitor work area. Unless we account
for the difference, previews end up mispositioned in multi-monitor
setups.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:20:08 +01:00
Florian Müllner
f5128e13f2 workspace-indicator: Round calculated preview sizes
While not strictly necessary, there's no reason to differ from the
copy in the window-list extension ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/142>
2020-12-02 19:17:36 +01:00
Ray Strode
8318ea919f window-list: Stop monitoring drag operation if window list is destroyed
If a user is in the middle of a drag in the window list and the
window list associated with the drag gets destroyed, the drag
monitor gets leaked.

Later when the drag motion is processed, spew goes to the log:

clutter_actor_contains: assertion 'CLUTTER_IS_ACTOR (self)' failed

Examples of triggers for this bug:

- The monitor topology changes
- The screen gets locked during the drag

This commit fixes the spew and the leak by ensuring any pending
drag monitoring is disabled when the window lists are destroyed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/145>
2020-11-25 17:48:21 +00:00
Florian Müllner
bde20e78f0 ci: Bump ci-fairy template include
This fixes the check-merge-request job when MR branch and target branch are
on the same repo.

See
https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/66

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/146>
2020-11-24 16:28:40 +01:00
Jordan Petridis
02db9525e7 ci: Replace only/except with rules
only/except keywords where deperecated in favor of rules.

Since we started using GNOME/gnome-shell!1492 it introduced
a second pipeline being run for each commit.

Detached pipelines are the only way to access CI_MERGE_REQUEST_*
variables, and if we disable normal pipelines you will need to
create wip/spam MRs in order to run the tests.

This reworked rules makes it so, the normal pipeline needs manual
interaction to be started, and the detached/MR pipleines is always
run.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Jordan Petridis
8d4586bd57 ci: Set some sensible defaults
* Allow for all jobs to be cancelled if a newer commit is pushed
* Automatically retry jobs if they fail due to some infrastructure issue

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Jonas Ådahl
8872659621 ci: Check that merge requests have the right settings
This will catch the missing "allow write access for maintainers" check
box being checked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Florian Müllner
46c7677643 ci: Use ci-fairy image for commit log check
This is in line with what mutter/gnome-shell are using, and should
be smaller (read: faster) than the gjs image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Florian Müllner
e734fcbd21 window-list: Adjust to overview changes
Window DND in the overview is now based on the metaWindow,
not the window actor (misnamed as "real window").

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133
2020-11-19 04:54:07 +01:00
Florian Müllner
435879c121 workspace-indicator: Adjust to overview changes
Window DND in the overview is now based on the metaWindow,
not the window actor (misnamed as "real window").

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133
2020-11-19 04:54:07 +01:00
Jonas Ådahl
4b9f4b1b63 doap: Make marge-bot a maintainer
This is so that the merge button can be restricted to maintainers, thus
decreasing the risk of merging using the merge button.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:32:23 +01:00
Jonas Ådahl
b64c93897b ci: Wait for 'check-commit-log' before continuing
The check-commit-log is quick, and to get a result early is helpful as
one can then more quickly check for failures via the report provided via
the JUnit report.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:32:23 +01:00
Jonas Ådahl
a7939f18d1 ci/check-commit-log: Generate JUnit report
This means the merge request will see the commit log review issues
causing the pipeline to fail without having to dig through CI log files.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:13:11 +01:00
Jonas Ådahl
15efbc29be ci/check-commit-log: Reverse the merge request URL check
Instead of making sure there is a reference to a bug or merge request,
make sure there isn't. The reason for this is that marge-bot will always
append a merge request URL in the end of the commit message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:13:11 +01:00
Florian Müllner
6e5466a4ec ci: Explicitly specify job dependencies
We can speed up CI a bit by allowing build jobs to run in parallel
with review jobs.

See https://gitlab.gnome.org/help/ci/yaml/README.md#needs for details.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/141>
2020-11-19 01:12:29 +01:00
Thun Pin
737c897624 window-navigator: Adjust to 3.38 overview changes
gnome-shell's overview code changed significantly in 3.38,
adjust the extension to work without the separate overlay.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/259
2020-11-18 23:54:18 +00:00
Florian Müllner
c317a876dd ci: Switch to updated gnome-shell image
gnome-shell now produces a CI image as part of its pipeline. Use that
instead of the old, manually-updated image.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/140
2020-11-19 00:22:01 +01:00
Florian Müllner
72c67aacc4 lint: Sync configuration with gjs
gjs updated its eslint configuration, so sync our copy.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/137
2020-11-14 00:58:52 +01:00
Florian Müllner
ba7e3fc0b5 cleanup: Remove empty leading/trailing lines in blocks
gjs added a new rule to its eslint ruleset that forbids "block padding",
so make sure we conform to that rule before syncing up the configuration.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/137
2020-11-14 00:58:52 +01:00
Florian Müllner
61cf679b8c auto-move-windows: Exclude sticky windows from empty-check
We modify gnome-shell's workspace tracker to only remove empty
workspaces from the end. However we currently don't take into
account that sticky windows appear on all workspaces, so those
are preventing any workspace from getting removed at the moment.

Exclude them when determining whether a workspace is empty to
get the expected behavior.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/135
2020-11-13 23:53:49 +00:00
Florian Müllner
ba55bacab4 ci: Use junit output format
Gitlab has built-in support for junit reports, so switch eslint's
output to that format.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/136
2020-11-07 01:55:02 +01:00
Jordi Mas
9445bd2205 Update Catalan translation 2020-10-23 21:10:23 +02:00
Florian Müllner
ed81650f55 window-list: Use custom layout manager for thumbnails
The current code positions window previews explicitly using a fixed
layout manager. For that it relies on a valid parent allocation,
which is error-prone and frequently results in warnings.

Address this by moving the positioning code into a custom layout
manager, and only update the visibility from the window preview.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260
2020-10-21 13:44:44 +02:00
Florian Müllner
1276a880de workspace-indicator: Use custom layout manager for thumbnails
The current code positions window previews explicitly using a fixed
layout manager. For that it relies on a valid parent allocation,
which is error-prone and frequently results in warnings.

Address this by moving the positioning code into a custom layout
manager, and only update the visibility from the window preview.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260
2020-10-21 13:44:44 +02:00
Florian Müllner
6ed1f45ffd window-list: Use custom layout manager for thumbnails
The current code positions window previews explicitly using a fixed
layout manager. For that it relies on a valid parent allocation,
which is error-prone and frequently results in warnings.

Address this by moving the positioning code into a custom layout
manager, and only update the visibility from the window preview.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260
2020-10-21 03:09:45 +02:00
Florian Müllner
81be1d2e2f workspace-indicator: Use custom layout manager for thumbnails
The current code positions window previews explicitly using a fixed
layout manager. For that it relies on a valid parent allocation,
which is error-prone and frequently results in warnings.

Address this by moving the positioning code into a custom layout
manager, and only update the visibility from the window preview.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260
2020-10-21 03:09:40 +02:00
Florian Müllner
52abf74088 window-list: Adjust to overview changes
Window DND in the overview is now based on the metaWindow,
not the window actor (misnamed as "real window").

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133
2020-10-21 01:05:07 +00:00
Florian Müllner
623bc6dbf3 workspace-indicator: Adjust to overview changes
Window DND in the overview is now based on the metaWindow,
not the window actor (misnamed as "real window").

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133
2020-10-21 01:05:07 +00:00
Fabio Tomat
04b23ec68f Update Friulian translation 2020-10-17 20:14:41 +00:00
Sergio Costas
584016c291 window-list: Honor changes in skip-taskbar property
Although window-list checks the 'skip-taskbar' property when a
window is added to the desktop to decide wether it should be
shown in the bar or not, it doesn't honor that when the property
is changed after a window has already been added. Since the new
WaylandClient API allows to change this property for already
mapped windows, supporting this is a good idea.

This patch fixes this.

Fix https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/130


(cherry picked from commit b65f362f0d)
2020-10-08 21:50:07 +00:00
Sergio Costas
b65f362f0d window-list: Honor changes in skip-taskbar property
Although window-list checks the 'skip-taskbar' property when a
window is added to the desktop to decide wether it should be
shown in the bar or not, it doesn't honor that when the property
is changed after a window has already been added. Since the new
WaylandClient API allows to change this property for already
mapped windows, supporting this is a good idea.

This patch fixes this.

Fix https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/130
2020-10-08 23:42:21 +02:00
Jeremy Bicha
4e948b2b48 releasing package gnome-shell-extensions version 3.38.1-1 2020-10-06 17:44:35 -04:00
Jeremy Bicha
b6bce374ad Recommend gnome-shell-extension-prefs instead of gnome-tweaks 2020-10-06 17:38:18 -04:00
Jeremy Bicha
6cbd8abdca New upstream release 2020-10-06 17:36:39 -04:00
Jeremy Bicha
5947f38421 Update upstream source from tag 'upstream/3.38.1'
Update to upstream version '3.38.1'
with Debian dir e97ed2a443
2020-10-06 17:36:39 -04:00
Jeremy Bicha
41664b152c New upstream version 3.38.1 2020-10-06 17:36:33 -04:00
Florian Müllner
7c30f35b12 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-extensions/-/merge_requests/131
2020-10-06 15:07:54 +02:00
Florian Müllner
9e976f06b4 Bump version to 3.38.1
Update NEWS.
2020-10-05 20:43:21 +02:00
Florian Müllner
369801dbeb Update sass submodule 2020-10-05 20:42:16 +02:00
Yosef Or Boczko
2c3c7e8a73 Update Hebrew translation 2020-09-28 19:05:19 +00:00
Simon McVittie
29b24e391a Release to unstable 2020-09-25 23:01:23 +01:00
Simon McVittie
0cdb80a9e0 Revert "debian/watch: Watch for unstable releases"
This reverts commit a289bbfb93.
2020-09-25 23:00:48 +01:00
Stas Solovey
bb8f34de83 Update Russian translation 2020-09-22 19:52:00 +00:00
Cheng-Chia Tseng
6c98658fe1 Update Chinese (Taiwan) translation 2020-09-22 15:07:44 +00:00
Simon McVittie
a8907d6fb1 Release to experimental 2020-09-22 11:49:57 +01:00
Simon McVittie
4851a66c57 Fix gnome-classic regression in 3.37.91-1
gnome-session no longer takes the `--session gnome-classic` argument
when running in classic mode.
2020-09-22 11:49:19 +01:00
Simon McVittie
1d5c2091cc Update standards version to 4.5.0, no changes needed.
Changes-By: lintian-brush
Fixes: lintian: out-of-date-standards-version
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
2020-09-22 09:18:46 +01:00
Simon McVittie
e5abcaf7c8 Set upstream metadata fields: Bug-Database, Bug-Submit, Repository, Repository-Browse.
Changes-By: lintian-brush
Fixes: lintian: upstream-metadata-file-is-missing
See-also: https://lintian.debian.org/tags/upstream-metadata-file-is-missing.html
Fixes: lintian: upstream-metadata-missing-bug-tracking
See-also: https://lintian.debian.org/tags/upstream-metadata-missing-bug-tracking.html
Fixes: lintian: upstream-metadata-missing-repository
See-also: https://lintian.debian.org/tags/upstream-metadata-missing-repository.html
2020-09-22 09:18:46 +01:00
Simon McVittie
d5733eed90 New upstream release 2020-09-22 09:17:08 +01:00
Simon McVittie
8957c277a1 New upstream version 3.38.0 2020-09-22 09:16:27 +01:00
Simon McVittie
a22cc0dc4e Update upstream source from tag 'upstream/3.38.0'
Update to upstream version '3.38.0'
with Debian dir c70415b74c
2020-09-22 09:16:27 +01:00
Yacine Bouklif
3f06c2bc04 Add Kabyle translation 2020-09-19 11:51:36 +00:00
Florian Müllner
9e38b091a9 Bump version to 3.38.0
Update NEWS.
2020-09-14 22:52:43 +02:00
Rūdolfs Mazurs
62d7b883f0 Update Latvian translation 2020-09-12 09:06:28 +00:00
Milo Casagrande
e56a9c5681 Update Italian translation 2020-09-10 08:12:04 +00:00
Tim Sabsch
03aa180472 Update German translation 2020-09-09 06:04:41 +00:00
Juliano Camargo
bbb0775e1a Update Portuguese translation 2020-09-08 20:08:29 +00:00
Alan Mortensen
c41d285131 Updated Danish translation 2020-09-07 19:58:09 +02:00
Balázs Meskó
cc63876b7e Update Hungarian translation 2020-09-06 21:06:21 +00:00
Florian Müllner
08769ec0b6 Bump version to 3.37.92
Update NEWS.
2020-09-06 01:06:49 +02:00
Dušan Kazik
5615c21797 Update Slovak translation 2020-09-02 12:02:31 +00:00
Changwoo Ryu
48d2b4c902 Update Korean translation 2020-08-30 07:46:02 +00:00
Marek Černocký
a43db7233d Updated Czech translation 2020-08-28 22:21:25 +02:00
Marco Trevisan (Treviño)
276f6a1c6f Upload to experimental 2020-08-27 17:39:42 +02:00
Marco Trevisan (Treviño)
e161e32b63 Update changelog 2020-08-27 17:11:21 +02:00
Marco Trevisan (Treviño)
e31a351c56 debian/control: Remove useless dependency on clutter gir
While the extensions do depend on clutter, they depend on the one that
is provided by the shell via the internal mutter fork, so no need to
pull the standalone library here.
2020-08-27 08:35:23 +02:00
Marco Trevisan (Treviño)
f728c0172b debian/rules: Don't override dh_missing equal default behavior
As per dh 13, --fail-missing is the default
2020-08-27 08:28:33 +02:00
Marco Trevisan (Treviño)
136644d45e debian/control: B-D on debhelper 13 2020-08-27 08:28:12 +02:00
Marco Trevisan (Treviño)
24308612fd debian/patches: Refresh 2020-08-27 08:26:46 +02:00
Marco Trevisan (Treviño)
1ae3e89b57 New upstream release 2020-08-27 08:18:08 +02:00
Marco Trevisan (Treviño)
8b9be8f120 New upstream version 3.37.91 2020-08-27 08:18:07 +02:00
Marco Trevisan (Treviño)
c1bb6ca349 Update upstream source from tag 'upstream/3.37.91'
Update to upstream version '3.37.91'
with Debian dir 024b4338a7
2020-08-27 08:18:07 +02:00
Aurimas Černius
25143c92f4 Updated Lithuanian translation 2020-08-26 22:34:38 +03:00
Zander Brown
c4ab7e9bbf Update British English translation 2020-08-26 12:25:53 +00:00
Nathan Follens
1d082fc026 Update Dutch translation 2020-08-25 15:38:07 +00:00
Florian Müllner
75919911f5 Bump version to 3.37.91
Update NEWS.
2020-08-24 18:09:27 +02:00
Florian Müllner
bf1f129854 Update sass submodule 2020-08-24 18:07:44 +02:00
Goran Vidović
59bcc0a6a7 Update Croatian translation 2020-08-19 22:39:08 +00:00
Goran Vidović
61a54add2e Update Croatian translation 2020-08-19 22:38:38 +00:00
Марко Костић
17d07239c1 Update Serbian translation 2020-08-19 05:21:54 +00:00
Jiri Grönroos
bf8a31a6c8 Update Finnish translation 2020-08-16 15:17:57 +00:00
Rafael Fontenelle
1d2fdf5c19 Update Brazilian Portuguese translation 2020-08-16 10:30:03 +00:00
Piotr Drąg
f6ada58f5f Update Polish translation 2020-08-15 11:39:47 +02:00
Kukuh Syafaat
ebfbc397be Update Indonesian translation 2020-08-13 12:19:05 +00:00
Akarshan Biswas
02290e8bba Update Bengali (India) translation 2020-08-13 04:36:03 +00:00
Fran Dieguez
1537ac39d4 Update Galician translation 2020-08-12 23:02:45 +00:00
Florian Müllner
e39c3b4561 Bump version to 3.37.90
Update NEWS.
2020-08-11 17:32:17 +02:00
Florian Müllner
80030687d9 Update sass submodule 2020-08-11 17:30:02 +02:00
Alexandre Franke
3859c09318 Update French translation 2020-08-10 10:50:40 +00:00
Asier Sarasua Garmendia
a41cd3c19a Update Basque translation 2020-08-10 07:06:33 +00:00
Anders Jonsson
fcbdeba8c5 Update Swedish translation 2020-08-01 23:10:54 +00:00
Piotr Drąg
116f074e3b Update POTFILES.in
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/128
2020-08-01 14:38:05 +02:00
Florian Müllner
9a78c7e4f4 classic: Drop separate gnome-session definition
Originally the classic session replaced `gnome-shell.desktop` with
`gnome-shell-classic.desktop` (to add the --mode=classic parameter)
and added `nautilus-classic.desktop` (to force on desktop icons).

Neither is the case anymore (and hasn't been for years): Nowadays the
only expected difference is the GNOME_SHELL_SESSION_MODE variable and
the DesktopNames field, which are both set from the session .desktop
file rather than the gnome-session session definition.

Any difference in the latter - like not starting the USBProtection
plugin and missing systemd user session support - are bugs. The
easiest way to avoid those in the future is by removing the obsolete
duplication that enables them, so do just that.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/126
2020-07-31 08:52:51 +00:00
Efstathios Iosifidis
9a2d6d68ff Update Greek translation 2020-07-13 21:42:11 +00:00
Fabio Tomat
bc49778100 Update Friulian translation 2020-07-12 16:10:38 +00:00
Florian Müllner
67d2e2f623 Bump version to 3.37.3
Update NEWS.
2020-07-07 18:47:17 +02:00
Florian Müllner
eff625fcb8 native-window-placement: Adjust to gnome-shell changes
The extension was affected pretty badly by the window picker overhaul;
adjust to all(?) the major and minor changes to get it to work again.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/124
2020-07-07 17:39:36 +02:00
Florian Müllner
3742f79d4b window-list: Adjust to gnome-shell changes
The window picker saw a significant overhaul. Amazingly the adjustments
necessary are relatively small ...

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/124
2020-07-07 17:31:52 +02:00
Florian Müllner
b6a3503f5e window-list: Remove some dead code
Since PanelMenu.Button started to inherit from St.Widget, the custom
_allocate() function isn't called anymore.

Simply changing the function to vfunc_allocate() doesn't work as other
changes happened in the meantime, so for now just remove it altogether.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/124
2020-07-07 17:31:52 +02:00
Baurzhan Muftakhidinov
f449ab31c9 Update Kazakh translation 2020-07-02 06:40:14 +00:00
Baurzhan Muftakhidinov
920b925b12 Update Kazakh translation
(cherry picked from commit 9a8b5caca3)
2020-06-25 05:18:54 +00:00
Boyuan Yang
ad5e70b03b Update Chinese (China) translation 2020-06-23 21:15:19 +00:00
sicklylife
7beebc11f6 Update Japanese translation 2020-06-10 12:34:10 +00:00
sicklylife
1391acd71f Update Japanese translation 2020-06-10 12:18:25 +00:00
Jordi Mas
761fdf1036 Update Catalan translation 2020-06-06 14:42:37 +02:00
Florian Müllner
7f2c39cdb2 Bump version to 3.37.2
Update NEWS.
2020-06-02 22:16:25 +02:00
Matej Urbančič
b5ff860118 Updated Slovenian translation 2020-06-01 22:08:36 +02:00
Florian Müllner
aeaba3f379 window-list: Replace removed Clutter.BoxLayout method
The method was deprecated for years and has finally been removed.
Just set appropriate expand/align properties on the children and
add them with the usual add_child() method.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/122
2020-05-28 02:46:06 +02:00
Florian Müllner
f96943a4dc window-list: Replace allocation-changed signal
It has been removed in favor of notify::allocation.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/122
2020-05-28 02:46:06 +02:00
Florian Müllner
60ad2e37ff window-list: Stop using obsolete StBin properties
Those properties were deprecated (and made no-ops) last cycle, and
have now been removed altogether.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/122
2020-05-28 02:46:06 +02:00
Florian Müllner
8c53fd9590 workspace-indicator: Stop using obsolete StBin properties
Those properties were deprecated (and made no-ops) last cycle, and
have now been removed altogether.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/122
2020-05-28 02:46:06 +02:00
Daniel Șerbănescu
867ace0b0a Update Romanian translation 2020-05-22 09:14:46 +00:00
Danial Behzadi
a74862e745 Update Persian translation 2020-05-12 14:27:33 +00:00
Emin Tufan Çetin
c16f9828bd Update Turkish translation 2020-05-05 14:34:53 +00:00
Daniel Mustieles
608a8b1639 Updated Spanish translation 2020-05-04 15:45:54 +02:00
Yuri Chornoivan
7bc9b282a2 Update Ukrainian translation 2020-05-03 19:20:15 +00:00
Florian Müllner
9db7b96f24 window-list: Modernize preference dialog a bit
The current widget uses UI patterns that are reminiscent of GNOME 2.
It doesn't take a lot to make it look more modern: Simply giving the
radio group a distinct background and border allows us to move the
whole UI to the center, making the dialog more balanced and visually
pleasing.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/121
2020-05-03 19:51:24 +02:00
Florian Müllner
c87cfc822a auto-move: Overhaul preference dialog
auto-move uses the same outdated UI pattern as workspace-indicator did
until commit 90d3c5c51d, imposing the same problems for a future GTK4
port.

So replace treeview and toolbar with an editable list like we did for
the other extension.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/121
2020-05-03 19:51:24 +02:00
Laurent Bigonville
b03d1b9cc7 Release to unstable 2020-05-03 10:02:23 +02:00
Laurent Bigonville
3ce0485742 New upstream release 2020-05-03 10:01:15 +02:00
Laurent Bigonville
100651a74c Update upstream source from tag 'upstream/3.36.2'
Update to upstream version '3.36.2'
with Debian dir 76e64ae93a
2020-05-03 10:01:15 +02:00
Laurent Bigonville
d3b687df8b New upstream version 3.36.2 2020-05-03 10:01:14 +02:00
Cheng-Chia Tseng
ff94c5a143 Update Chinese (Taiwan) translation 2020-05-02 08:06:58 +00:00
Florian Müllner
81f999f761 Bump version to 3.37.1
Update NEWS.
2020-04-29 21:55:52 +02:00
Florian Müllner
17b5c0400a Update sass submodule 2020-04-29 21:49:53 +02:00
Florian Müllner
ac937b9549 user-theme: Make rows non-selectable
A row has to be activated to select a theme, not merely selected.
The selection therefore doesn't do anything, so disable it.
2020-04-29 21:44:13 +02:00
Daniel Mustieles
0c223de045 Updated Spanish translation 2020-04-28 17:47:14 +02:00
Anders Jonsson
564235d44c Update Swedish translation 2020-04-26 18:52:30 +00:00
Yuri Chornoivan
92a2361306 Update Ukrainian translation 2020-04-25 08:07:50 +00:00
Danial Behzadi
9f27654729 Update Persian translation 2020-04-24 20:13:04 +00:00
Dz Chen
f4013c7a5c Update Chinese (China) translation 2020-04-18 09:59:29 +00:00
Kristjan SCHMIDT
9e7eff4a3e Update Esperanto translation
(cherry picked from commit c5246b7415)
2020-04-18 09:00:54 +00:00
Florian Müllner
5b2bdd138a user-themes: Support session mode styles
Session mode stylesheets are installed in gnome-shell's theme
directory instead of a subdirectory of the global themes direc-
tory.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/118
2020-04-17 16:33:03 +00:00
Florian Müllner
90d3c5c51d workspace-indicator: Overhaul prefs widget
Inline toolbars are an outdated UI pattern, and both the toolbar widget
and the inline styling have been removed from GTK4. Making sure the
extension doesn't get in the way of a future GTK4 port is a good excuse
for modernizing the UI, so do just that :-)

Replace treeview and toolbar with an editable list as outline in the HIG:
https://developer.gnome.org/hig/stable/lists.html.en

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/120
2020-04-17 17:54:15 +02:00
Milan Crha
b00e531626 window-list: Invalid current mode selected in Preferences
It seems that gtk+ resets the active radio whenever a new radio button
is added into the group, thus rather restore the current mode after
the group is fully populated.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/119
2020-04-17 09:37:13 +02:00
Florian Müllner
b1c1b01184 po: Update POTFILES.in
The user-themes extension actually never had translatable strings.
2020-04-12 04:41:53 +02:00
Florian Müllner
739b1e11a0 user-themes: Add preference widget
While we don't endorse or support 3rd party theming, the extension
exists and is actively used. However right now the most convenient
way of setting it up is by installing Tweak Tool; give users an
alternative by providing a simple settings dialog ourselves.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/117
2020-04-12 04:13:25 +02:00
Florian Müllner
a3541ff0d9 ci: Drop "regular" build job
We already do a meson build/install when exporting extension bundles, and
now that the syntax check is handled by the CI instead of `meson test`,
the job just duplicates work.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/116
2020-04-11 01:08:11 +02:00
Florian Müllner
8fb5476a1c build: Drop syntax-checks from meson test
Those checks are just as well handled by the CI, and removing them
makes for a nice build system cleanup.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/116
2020-04-11 01:08:02 +02:00
Florian Müllner
fc8a46f15a ci: Syntax-check js sources
This is currently done as part of `ninja test`, but doing the check
in a separate CI job means it can run in parallel with other review
jobs and fail before trying to build.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/116
2020-04-11 01:07:55 +02:00
Florian Müllner
2e21f7cf72 ci: Combine commit/source checks under 'review'
The current names are an artifact from when flatpak-ci used
review/stop_review jobs. 'review' is a much better name and
matches what gnome-shell itself uses.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/116
2020-04-11 01:07:45 +02:00
Florian Müllner
a317d79016 ci: Set a default image
All jobs but one use the same issue, so specify that globally instead
of for each job.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/116
2020-04-11 01:07:37 +02:00
Florian Müllner
4722b89cc3 cleanup: Don't linebreak before closing parentheses
Otherwise recent versions of eslint want "dangling" commas,
which is at least ugly considering that most functions don't
allow adding arguments at leisure.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/116
2020-04-11 01:03:38 +02:00
Florian Müllner
5a4b71ba90 ci: Create and expose extension bundles
Similar to how we let CI create flatpaks for application, create
and expose extension bundles for easier testing.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/114
2020-04-10 23:57:09 +02:00
Florian Müllner
a6ee142f21 build: Omit unneeded translations from zip files
Each extension zip we create includes the translations of all extensions,
which is clearly wasteful. Avoid that by generating per-extension .pot
files and filtering out unnecessary translations.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/114
2020-04-10 23:11:43 +02:00
Florian Müllner
35427ed4f1 build: Use gnome-extensions-tool for zipping up
The tool has a dedicated command for creating an extension bundle. It
knows how to handle translations and GSettings schemas, so we don't
have to.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/114
2020-04-10 23:11:43 +02:00
Florian Müllner
bce63d3168 places-menu: Emphasize eject buttons here as well
We already align the buttons correctly here, but otherwise they can
use the same treatment as in the drive-menu.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/223
2020-04-10 14:31:40 +00:00
Florian Müllner
0426d1d8d5 drive-menu: Emphasize eject buttons as distinct controls
The buttons currently appear more as an attachment to the label
than as distinct controls. Address that by:

 - applying .button styling
 - increasing spacing between label and button
 - aligning buttons at the end

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/223
2020-04-10 14:31:40 +00:00
Xiaoguang Wang
f9aaa732b2 windowPicker: Wrong signal ID _nWorkspacesNotifyId
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/106
2020-04-10 16:27:41 +02:00
Florian Müllner
7b82c5e12b ci: Update URL check
Gitlab started inserting a /-/ in its URLs, account for that.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/113
2020-04-10 16:19:27 +02:00
Simon McVittie
5138e30a2a Release to unstable 2020-04-10 15:13:18 +01:00
Simon McVittie
a69fa591da New upstream release 2020-04-02 10:14:08 +01:00
Simon McVittie
7f2a3eb2ca Update upstream source from tag 'upstream/3.36.1'
Update to upstream version '3.36.1'
with Debian dir 10076e8e1e
2020-04-02 10:14:08 +01:00
Simon McVittie
a4987d03b8 New upstream version 3.36.1 2020-04-02 10:14:07 +01:00
Yosef Or Boczko
db305687d5 Update Hebrew translation
(cherry picked from commit c477f10bfb)
2020-04-01 15:22:54 +00:00
Florian Müllner
f527fe3774 build: Post-release version bump
... and official start of the next development cycle.
2020-03-31 01:03:14 +02:00
Iain Lane
e45cc8cdc0 Finalise changelog 2020-03-16 12:39:05 +00:00
Iain Lane
3c8edd7b3a New upstream release 2020-03-16 12:38:45 +00:00
Iain Lane
ac33058086 New upstream version 3.36.0 2020-03-16 12:13:26 +00:00
Iain Lane
855832d08b Update upstream source from tag 'upstream/3.36.0'
Update to upstream version '3.36.0'
with Debian dir d3a51685f5
2020-03-16 12:13:26 +00:00
Iain Lane
9f07981fe5 Finalise changelog 2020-02-24 18:29:30 +00:00
Marco Trevisan (Treviño)
a27d6d3c7e New upstream release 2020-02-24 14:53:49 +01:00
Marco Trevisan (Treviño)
2a4da355f1 Update upstream source from tag 'upstream/3.35.91'
Update to upstream version '3.35.91'
with Debian dir 10862f27f4
2020-02-24 14:48:46 +01:00
Marco Trevisan (Treviño)
c7a08aaf74 New upstream version 3.35.91 2020-02-24 14:48:45 +01:00
Laurent Bigonville
ca47fbc16b Release to unstable 2019-12-30 00:51:17 +01:00
Laurent Bigonville
5a3c3de1a4 debian/control.in: Bump Standards-Version to 4.4.1 (no further changes) 2019-12-30 00:51:08 +01:00
Laurent Bigonville
ff9062ac17 New upstream release 2019-12-30 00:41:33 +01:00
Laurent Bigonville
9486fc3f98 Update upstream source from tag 'upstream/3.34.2'
Update to upstream version '3.34.2'
with Debian dir 38d5f5c015
2019-12-30 00:41:32 +01:00
Laurent Bigonville
8c1d6d88cf New upstream version 3.34.2 2019-12-30 00:41:31 +01:00
Florian Müllner
33b16681c6 Bump version to 3.34.2
Update NEWS.
2019-12-11 22:56:08 +01:00
Umarzuki Bin Mochlis Moktar
3c51716268 Update Malay translation 2019-12-09 11:59:58 +00:00
Willy Stadnick
e5421b6cc6 screenshot-window-sizer: Fix cycling through all valid sizes
When cycling through window sizes, we should skip any sizes that are
bigger than the available area. We do that, but the current code
assumes that the possible sizes are sorted, which is no longer the
case since the addition of "phone" sizes in commit 5b43d4733c.

As a result, we may now skip sizes that would fit perfectly fine.
Address this by filtering out invalid sizes beforehand instead of
assuming a certain order (wich no longer work due to the addition
of a portrait format).

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/97
2019-11-27 20:56:55 +01:00
Florian Müllner
f1e7ae1010 workspace-indicator: Exclude DESKTOP windows from window previews
While nautilus removed its desktop support a while ago in favor of an
extension, it's still possible that some external X11 desktop icon app
is used. As DESKTOP windows cannot be moved between workspaces or stacked,
and aren't perceived as regular windows, it doesn't make sense to show
them as previews in the workspace switcher.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/93
2019-11-21 22:47:01 +01:00
Florian Müllner
10fe907c83 window-list: Exclude DESKTOP windows from window previews
While nautilus removed its desktop support a while ago in favor of an
extension, it's still possible that some external X11 desktop icon app
is used. As DESKTOP windows cannot be moved between workspaces or stacked,
and aren't perceived as regular windows, it doesn't make sense to show
them as previews in the workspace switcher.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/93
2019-11-21 22:47:01 +01:00
Stas Solovey
ae9809caba Update Russian translation 2019-11-13 18:42:24 +00:00
Jeremy Bicha
28e873b5e0 releasing package gnome-shell-extensions version 3.34.1-2 2019-10-08 22:50:33 -04:00
Jeremy Bicha
39d532ca3f releasing package gnome-shell-extensions version 3.34.1-1 2019-10-08 22:49:50 -04:00
Jeremy Bicha
07a602e404 Drop unnecessary Build-Depend on gnome-pkg-tools
provided by dh-sequence-gnome

Gbp-Dch: Ignore
2019-10-08 22:46:37 -04:00
Jeremy Bicha
a448e48cdb New upstream release 2019-10-08 22:45:47 -04:00
Jeremy Bicha
092a3ee21a Update upstream source from tag 'upstream/3.34.1'
Update to upstream version '3.34.1'
with Debian dir 0812829987
2019-10-08 22:45:47 -04:00
Jeremy Bicha
c95d197c5c New upstream version 3.34.1 2019-10-08 22:45:42 -04:00
Andreas Henriksson
88cfcdbd2e Upload to unstable 2019-09-30 17:27:45 +02:00
Iain Lane
f3378c7b6f Finalise changelog 2019-09-10 10:59:33 +01:00
Iain Lane
50545c1486 New upstream release 2019-09-10 10:53:19 +01:00
Iain Lane
ae8749b7e1 New upstream version 3.34.0 2019-09-10 10:53:04 +01:00
Iain Lane
ff678d06ea Update upstream source from tag 'upstream/3.34.0'
Update to upstream version '3.34.0'
with Debian dir 31efb81a24
2019-09-10 10:53:04 +01:00
Iain Lane
6345449d50 Finalise changelog 2019-09-05 18:22:15 +01:00
Iain Lane
8951266183 Update changelog 2019-09-05 18:21:38 +01:00
Iain Lane
6911624d4d New upstream release 2019-09-05 18:21:23 +01:00
Iain Lane
84a548c0b9 New upstream version 3.33.92 2019-09-05 18:21:22 +01:00
Iain Lane
da6efff220 Update upstream source from tag 'upstream/3.33.92'
Update to upstream version '3.33.92'
with Debian dir e0dd3abd73
2019-09-05 18:21:22 +01:00
Iain Lane
cc99aff03b Finalise changelog 2019-08-13 11:59:25 +01:00
Iain Lane
cdc5210c25 Update changelog 2019-08-13 11:39:41 +01:00
Iain Lane
4838833d72 compat, control, rules: Move to compat 12 and specifying via build-deps 2019-08-13 11:30:21 +01:00
Iain Lane
0fad184fda rules: Build with --fail-missing 2019-08-13 11:27:58 +01:00
Iain Lane
6d8c96d665 rules: Build all extensions via the upstream build system
We don't need to hardcode the list to build, as the build system
provides a way to build 'all' extensions.
2019-08-13 11:26:54 +01:00
Marco Trevisan (Treviño)
e6c1a3b052 New upstream release 2019-08-13 04:33:12 +02:00
Marco Trevisan (Treviño)
f047cb0baf New upstream version 3.33.90 2019-08-13 04:25:54 +02:00
Marco Trevisan (Treviño)
71add2e391 Update upstream source from tag 'upstream/3.33.90'
Update to upstream version '3.33.90'
with Debian dir 0efb035d04
2019-08-13 04:25:54 +02:00
Iain Lane
61abd2a48f Finalise changelog 2019-03-12 16:34:19 +00:00
Iain Lane
6ba2f49866 New upstream release 2019-03-12 16:33:31 +00:00
Iain Lane
2fd2cf9074 Update upstream source from tag 'upstream/3.32.0'
Update to upstream version '3.32.0'
with Debian dir 4724138f6f
2019-03-12 16:33:31 +00:00
Iain Lane
28494941e1 New upstream version 3.32.0 2019-03-12 16:33:30 +00:00
Iain Lane
d0d40f248d Update control 2019-03-12 16:33:01 +00:00
Iain Lane
cc2a2ca153 Finalise changelog 2019-03-06 15:45:15 +00:00
Iain Lane
2307b639dd New upstream release 2019-03-06 15:41:51 +00:00
Iain Lane
1e0ea36a81 Update upstream source from tag 'upstream/3.31.92'
Update to upstream version '3.31.92'
with Debian dir d20ac803ed
2019-03-06 15:39:48 +00:00
Iain Lane
b70059ac4d New upstream version 3.31.92 2019-03-06 15:39:47 +00:00
Iain Lane
4e1250a6ba Finalise changelog 2019-02-21 10:33:13 +00:00
Iain Lane
56d2852004 Update changelog 2019-02-21 10:15:11 +00:00
Iain Lane
3fa8edcb1a rules: alternate-tab is dropped; stop trying to enable it 2019-02-21 10:15:11 +00:00
Iain Lane
edb14ea03c New upstream release 2019-02-21 10:08:47 +00:00
Iain Lane
a2f554bc1e Update upstream source from tag 'upstream/3.31.90'
Update to upstream version '3.31.90'
with Debian dir f0ccfd59b6
2019-02-21 10:08:47 +00:00
Iain Lane
eb567c1120 New upstream version 3.31.90 2019-02-21 10:08:46 +00:00
Iain Lane
a289bbfb93 debian/watch: Watch for unstable releases 2019-02-21 10:08:08 +00:00
Simon McVittie
5486c2040d 3.30.1-1 2018-11-02 09:27:05 +00:00
Simon McVittie
84c95be03f d/p/gnome-session-classic-wrapper-script.patch: Re-word to avoid a Lintian warning 2018-11-02 09:26:42 +00:00
Simon McVittie
d9e6c6c4c5 Bump Standards-Version to 4.2.1 2018-11-02 09:23:06 +00:00
Simon McVittie
25559e758c New upstream release 2018-11-02 09:22:10 +00:00
Simon McVittie
89ce4aee4a Update upstream source from tag 'upstream/3.30.1'
Update to upstream version '3.30.1'
with Debian dir 0588a7440a
2018-11-02 09:22:10 +00:00
Simon McVittie
b1eb9b9080 New upstream version 3.30.1 2018-11-02 09:22:09 +00:00
Jeremy Bicha
ba9d2e7919 releasing package gnome-shell-extensions version 3.30.0-1 2018-09-05 12:35:10 -04:00
Jeremy Bicha
9d0c742f34 Update debian/gbp.conf 2018-09-05 12:33:05 -04:00
Jeremy Bicha
1e69961bc7 New upstream release 2018-09-05 12:32:55 -04:00
Jeremy Bicha
e4ddc4c14e Update upstream source from tag 'upstream/3.30.0'
Update to upstream version '3.30.0'
with Debian dir d0677ad034
2018-09-05 12:32:29 -04:00
Jeremy Bicha
a0b6535210 New upstream version 3.30.0 2018-09-05 12:32:25 -04:00
Jeremy Bicha
be149bab3d Revert "d/watch: Watch for development versions"
This reverts commit e37782c2ce.
2018-09-05 12:31:44 -04:00
Simon McVittie
1b4bbe19e3 3.29.91-1 2018-08-20 20:28:07 +01:00
Simon McVittie
2e6b602a04 d/p/series: Remove commented-out line 2018-08-20 20:00:42 +01:00
Simon McVittie
5b9012152c d/copyright: Remove unnecessary sentence fragment 2018-08-20 20:00:08 +01:00
Simon McVittie
efd20bb4f7 Sort dependency lists (wrap-and-sort -a) 2018-08-20 19:58:52 +01:00
Simon McVittie
7d595e4774 Bump Standards-Version to 4.2.0 2018-08-20 19:58:00 +01:00
Simon McVittie
7b4c3085c0 New upstream development release 2018-08-20 19:56:46 +01:00
Simon McVittie
9a9b3afa31 New upstream version 3.29.91 2018-08-20 19:55:42 +01:00
Simon McVittie
7045a5dcea Update upstream source from tag 'upstream/3.29.91'
Update to upstream version '3.29.91'
with Debian dir 7aa6de354f
2018-08-20 19:55:42 +01:00
Simon McVittie
777bae87b5 3.29.90-1 2018-08-02 10:46:54 +01:00
Simon McVittie
06ae867c2f New upstream development release 2018-08-02 10:33:59 +01:00
Simon McVittie
77ebd3d202 Update upstream source from tag 'upstream/3.29.90'
Update to upstream version '3.29.90'
with Debian dir 556645e633
2018-08-02 10:32:11 +01:00
Simon McVittie
59bc054ef6 New upstream version 3.29.90 2018-08-02 10:32:10 +01:00
Simon McVittie
227f999001 3.29.3+really3.29.3-1 2018-07-27 23:58:30 +01:00
Simon McVittie
e37782c2ce d/watch: Watch for development versions 2018-07-27 10:49:37 +01:00
Simon McVittie
f210be5ab4 3.29.3-1 2018-07-27 09:37:49 +01:00
Simon McVittie
12b1a0639e Set Rules-Requires-Root to no 2018-07-27 09:18:19 +01:00
Simon McVittie
34098b871b Merge branch 'upstream/latest' into debian/master 2018-07-27 09:15:18 +01:00
Simon McVittie
57e9dfe722 Merge remote-tracking branch 'origin/upstream/latest' into upstream/latest 2018-07-27 09:14:56 +01:00
Simon McVittie
cc2ebff0e3 Bump Standards-Version to 4.1.5 2018-07-27 08:49:34 +01:00
Simon McVittie
7c21766dd5 New upstream release 2018-07-27 08:48:10 +01:00
Simon McVittie
965dfd2d39 Update upstream source from tag 'upstream/3.29.3'
Update to upstream version '3.29.3'
with Debian dir db66300472
2018-07-27 08:43:27 +01:00
Simon McVittie
f17a519c38 New upstream version 3.29.3 2018-07-27 08:43:26 +01:00
Jeremy Bicha
49e598b4b7 releasing package gnome-shell-extensions version 3.28.1-1 2018-05-14 21:54:28 -04:00
Jeremy Bicha
40f13f3afa Bump Standards-Version to 4.1.4 2018-05-14 21:51:38 -04:00
Jeremy Bicha
356e2054fa New upstream release 2018-05-14 21:50:59 -04:00
Jeremy Bicha
8223ca9739 New upstream version 3.28.1 2018-05-14 21:50:46 -04:00
Jeremy Bicha
dab22e927b Update upstream source from tag 'upstream/3.28.1'
Update to upstream version '3.28.1'
with Debian dir a3ec8283f8
2018-05-14 21:50:46 -04:00
Jeremy Bicha
a1f60be674 releasing package gnome-shell-extensions version 3.28.0-2 2018-03-19 18:21:11 -04:00
Jeremy Bicha
e0ec59d30b Fix missing auto-move-windows, native-window-placement, & user-theme extns 2018-03-19 18:20:51 -04:00
Jeremy Bicha
abc1c9ef7e releasing package gnome-shell-extensions version 3.28.0-1 2018-03-18 20:17:31 -04:00
Jeremy Bicha
3e4a778978 New upstream release 2018-03-15 21:28:56 -04:00
Jeremy Bicha
ca85495a1c Update upstream source from tag 'upstream/3.28.0'
Update to upstream version '3.28.0'
with Debian dir f3988d1137
2018-03-15 21:28:24 -04:00
Jeremy Bicha
fe20c27b60 New upstream version 3.28.0 2018-03-15 21:28:20 -04:00
Jeremy Bicha
41dc03222c releasing package gnome-shell-extensions version 3.27.92-2 2018-03-10 19:38:07 -05:00
Jeremy Bicha
3cf56d8270 releasing package gnome-shell-extensions version 3.27.92-1 2018-03-05 21:02:11 -05:00
Jeremy Bicha
9436564a76 Drop explicit dependency on mutter's gir since gnome-shell already depends on it
It's a headache to remember to update the dependency every 6 months
and wonder why gnome-shell is stuck in Ubuntu -proposed.
2018-03-05 21:01:51 -05:00
Jeremy Bicha
142065d58b Revert "debian/watch: Watch for unstable releases"
This reverts commit 7cbf2533fe.
2018-03-05 20:56:44 -05:00
Jeremy Bicha
2ffd3d95bb New upstream release candidate 2018-03-05 20:56:32 -05:00
Jeremy Bicha
6b9f87dbea Update upstream source from tag 'upstream/3.27.92'
Update to upstream version '3.27.92'
with Debian dir a05b57e9d4
2018-03-05 20:55:44 -05:00
Jeremy Bicha
5ba59d1096 New upstream version 3.27.92 2018-03-05 20:55:43 -05:00
Jeremy Bicha
3b2aee92fb Depend on gir1.2-mutter-2 instead of gir1.2-mutter-1 2018-03-04 07:31:42 -05:00
Simon McVittie
12dac8ee62 Recommend gnome-tweaks instead of transitional gnome-tweak-tool 2018-02-24 11:30:32 +00:00
Jeremy Bicha
f8df77051b releasing package gnome-shell-extensions version 3.27.91-1 2018-02-23 19:52:07 -05:00
Jeremy Bicha
fd9c0f6be4 Bump debhelper compat to 11 2018-02-23 19:51:43 -05:00
Jeremy Bicha
cf05510b0d Build-Depend on sassc 2018-02-23 19:49:25 -05:00
Jeremy Bicha
207923a1b6 Build with meson 2018-02-23 19:49:25 -05:00
Jeremy Bicha
fbbcb058fa Drop patches applied in new release 2018-02-23 19:49:25 -05:00
Jeremy Bicha
cef1736de2 New upstream development release 2018-02-23 19:30:40 -05:00
Jeremy Bicha
da10cfc062 Update upstream source from tag 'upstream/3.27.91'
Update to upstream version '3.27.91'
with Debian dir 1d6bdda2db
2018-02-23 19:30:15 -05:00
Jeremy Bicha
0ad1e9bbc1 New upstream version 3.27.91 2018-02-23 19:30:14 -05:00
Jeremy Bicha
7cbf2533fe debian/watch: Watch for unstable releases 2018-02-23 19:29:45 -05:00
Simon McVittie
1a9d1c235c Team upload 2018-01-30 09:16:33 +00:00
Simon McVittie
5c8a19f54f Avoid frequent tracebacks from the Places menu with gjs >= 1.50.2-3
Closes: #888608
2018-01-30 09:11:30 +00:00
Simon McVittie
44fe593f8a d/patches: Re-export with gbp pq export 2018-01-30 09:09:02 +00:00
Jeremy Bicha
b8d1af4e50 Update Vcs fields for migration to https://salsa.debian.org/ 2018-01-19 20:44:11 -05:00
Jeremy Bicha
18f189b887 releasing package gnome-shell-extensions version 3.26.2-2 2017-12-15 15:19:34 -05:00
Jeremy Bicha
c9776c97de Bump Standards-Version to 4.1.2 2017-12-15 15:19:06 -05:00
Jeremy Bicha
57a4241749 Fix file permissions after git conversion 2017-12-15 15:17:53 -05:00
Jeremy Bicha
163ff997b1 Drop old files left over from git conversion 2017-12-15 15:17:40 -05:00
Jeremy Bicha
449e9879ce Update upstream source from tag 'upstream/3.26.2'
Update to upstream version '3.26.2'
with Debian dir 6437420a17
2017-12-15 15:11:44 -05:00
Jeremy Bicha
5ea14f063f New upstream version 3.26.2 2017-12-15 15:11:42 -05:00
Jeremy Bicha
84350c3776 Update Vcs fields for conversion to git 2017-12-15 15:11:26 -05:00
Jeremy Bicha
3cc3d03f0b Initial upstream branch 2017-12-15 15:11:26 -05:00
Jeremy Bicha
91027ae9a4 Add default gbp.conf 2017-12-15 15:11:26 -05:00
Michael Biebl
9db80785a5 Release version 3.26.2-1 to unstable 2017-11-05 19:17:20 +00:00
Michael Biebl
a876817127 New upstream release 2017-11-05 19:16:18 +00:00
Florian Müllner
057e5bb0c1 Bump version to 3.26.2
Update NEWS.
2017-11-02 19:51:10 +01:00
Florian Müllner
07fc66765d auto-move: Remove unused imports 2017-10-27 14:45:09 +02:00
Jeremy Bicha
3a0c70aef7 Release to unstable 2017-10-13 20:50:07 +00:00
Jeremy Bicha
bbb6a73af1 Bump Standards-Version to 4.1.1 2017-10-13 20:49:25 +00:00
Jeremy Bicha
51119ec213 unbranch gnome-shell-extensions from experimental 2017-10-13 20:45:48 +00:00
Simon McVittie
2690ee46f2 Team upload 2017-10-06 10:53:43 +00:00
Simon McVittie
bc2e456a6a New upstream stable release 2017-10-06 09:42:26 +00:00
Xavi Ivars
daa7b9b6ab [l10n] Updated Catalan (Valencian) translation 2017-10-05 14:02:06 +02:00
Simon McVittie
b27c3719f0 Team upload 2017-09-13 11:41:47 +00:00
Simon McVittie
147482d5e8 New upstream stable release 2017-09-13 08:38:35 +00:00
Simon McVittie
514403e1ba Team upload 2017-09-05 20:49:03 +00:00
Simon McVittie
109d3aad6a New upstream release, for GNOME Shell 3.25.91
- d/p/adapt-to-gsd324.patch: Drop, applied upstream
- Switch dependency to gir1.2-mutter-1
2017-09-01 08:35:51 +00:00
Simon McVittie
15779e204d Branch to experimental 2017-09-01 07:45:39 +00:00
Jordi Mallach
49e403f822 Release to unstable. 2017-08-06 21:39:20 +00:00
Jeremy Bicha
ffb5b76f4e Depend on gnome-session-bin instead of gnome-session (LP: #1702832) 2017-07-28 19:57:38 +00:00
Jeremy Bicha
b21932ffd9 Bump Standards-Version to 4.0.0 2017-07-27 22:19:58 +00:00
Jeremy Bicha
46d8f1c8d9 Drop version from gnome-tweak-tool recommends 2017-07-27 22:19:03 +00:00
Jeremy Bicha
8caffac3d7 Explicitly depend on gnome-settings-daemon >= 3.24 2017-07-27 22:18:10 +00:00
Jeremy Bicha
40da5360a4 Add adapt-to-gsd324.patch (Closes: #869948) 2017-07-27 22:16:39 +00:00
Michael Biebl
5b9f91991f Release version 3.22.2-1 to unstable 2016-11-10 18:37:05 +00:00
Michael Biebl
a565f2d984 New upstream release. 2016-11-10 18:36:21 +00:00
Michael Biebl
0b7269a4b8 Release version 3.22.1-1 to unstable 2016-10-11 15:58:49 +00:00
Michael Biebl
c7805b4b40 New upstream release. 2016-10-11 15:56:36 +00:00
Michael Biebl
e6b65be75a Release version 3.22.0-1 to unstable 2016-09-20 00:01:00 +00:00
Michael Biebl
7043fe592c New upstream release. 2016-09-19 23:57:06 +00:00
Michael Biebl
f7d35c41ae Release version 3.21.92-1 to unstable 2016-09-13 20:14:18 +00:00
Michael Biebl
afb4942a72 * New upstream development release.
* Replace Build-Depends gnome-common with pkg-config and gettext.
2016-09-13 20:13:14 +00:00
Jeremy Bicha
4f7bd0918b B-D on debhelper 10 instead of debhelper 9.20160403~ to satisfy lintian 2016-09-11 14:01:13 +00:00
Andreas Henriksson
fb8d34254a New upstream beta release. 2016-08-30 18:00:46 +00:00
Andreas Henriksson
2a390c4c25 Release to experimental 2016-08-21 03:45:50 +00:00
Jeremy Bicha
040fbf72e9 minor: alphabetize extensions list 2016-08-20 18:49:13 +00:00
Jeremy Bicha
395e9aea3c Convert from cdbs to dh and bump dh compat to 10 2016-08-20 18:36:00 +00:00
Jeremy Bicha
bb3508327f Refresh patches 2016-08-20 18:12:14 +00:00
Jeremy Bicha
068ae45f6c Update Vcs fields 2016-08-20 18:01:41 +00:00
Andreas Henriksson
02ff0f658b * New upstream beta release.
* Update build-dependencies according to configure.ac changes:
  - drop intltool, now gettext is used instead.
2016-08-20 16:43:11 +00:00
Andreas Henriksson
3c14d9b524 * New upstream development release.
* Stop hard-coding Victor Seva in the Uploaders field
2016-08-12 14:34:58 +00:00
Andreas Henriksson
8de00babad Branch gnome-shell-extensions to experimental 2016-08-12 14:26:35 +00:00
Jeremy Bicha
59768f0514 restore trailing newlines to d/copyright and /watch 2016-05-26 21:42:36 +00:00
Jeremy Bicha
e185fe30f8 Use https for copyright headers 2016-05-25 03:18:37 +00:00
Jeremy Bicha
0d20be43d4 Use https in d/watch and use new "special strings" to help standardize format 2016-05-23 02:15:25 +00:00
Michael Biebl
356632063c Release version 3.20.1-1 to unstable 2016-05-11 13:22:07 +00:00
Michael Biebl
3a592ddb59 Bump Standards-Version to 3.9.8. 2016-05-11 13:14:23 +00:00
Michael Biebl
652ade33b5 New upstream release. 2016-05-11 13:12:20 +00:00
Michael Biebl
05e6188921 Release version 3.20.0-2 to unstable 2016-04-16 22:26:10 +00:00
Michael Biebl
b222ebed80 Upload to unstable. 2016-04-16 22:25:22 +00:00
Michael Biebl
179d9b9ae1 Move experimental branch of gnome-shell-extensions to unstable 2016-04-16 22:23:15 +00:00
Andreas Henriksson
ab7f50d2c8 New upstream release. 2016-03-25 09:50:27 +00:00
Andreas Henriksson
51cc3c7cd1 * New upstream release.
* Update dont-require-nautilus-classic.patch to apply.
2016-03-17 11:59:57 +00:00
Andreas Henriksson
d51f14529a Branch gnome-shell-extensions to experimental 2016-03-17 11:50:36 +00:00
Michael Biebl
563dfc3d4d Release version 3.18.4-1 to unstable 2016-03-06 21:39:12 +00:00
Michael Biebl
3ad72a04af Bump Standards-Version to 3.9.7. 2016-03-06 21:38:55 +00:00
Michael Biebl
d43130f779 New upstream release. 2016-03-06 21:36:49 +00:00
Andreas Henriksson
ce997ff4fd * Add Breaks/Replaces gnome-shell-common (<< 3.18) (Closes: #808906)
- Helps upgrades from Jessie by allowing overwriting
    /usr/share/gnome-shell/theme/calendar-today.svg et.al.
    which was previously shipped in gnome-shell-common.
2016-02-10 00:33:18 +00:00
Michael Biebl
7a5d530358 Release version 3.18.3-1 to unstable 2016-01-14 21:49:38 +00:00
Michael Biebl
dd0520f334 New upstream release. 2016-01-14 21:39:21 +00:00
Michael Biebl
aab9143c13 Release version 3.18.2-1 to unstable 2015-11-12 23:04:26 +00:00
Michael Biebl
b689ec2ef4 New upstream release. 2015-11-12 23:01:24 +00:00
Michael Biebl
c9c2da444b Release version 3.18.1-1 to unstable 2015-10-16 20:09:34 +00:00
Michael Biebl
9c931c175c New upstream release. 2015-10-16 20:07:21 +00:00
Laurent Bigonville
39db8f1768 New upstream release and upload to unstable 2015-10-11 14:30:04 +00:00
Michael Biebl
f7ed9ff131 Use https:// for Vcs-Browser
[[Split portion of a mixed commit.]]
2015-10-08 13:38:05 +00:00
Michael Biebl
4423126272 Use https:// for Vcs-Browser
[[Split portion of a mixed commit.]]
2015-10-08 13:38:05 +00:00
Andreas Henriksson
5294bc510b New upstream release candidate. 2015-09-18 15:30:14 +00:00
Andreas Henriksson
1b599315a2 Branch g-s-e to experimental 2015-09-18 15:25:52 +00:00
Michael Biebl
b561655503 Release version 3.16.2-1 to unstable 2015-07-02 17:13:48 +00:00
Michael Biebl
64923382b4 Add bug ref to changelog for #782747 2015-07-02 17:13:24 +00:00
Michael Biebl
5ef6525be7 Bump debhelper compatibility level to 9. 2015-07-02 17:08:31 +00:00
Michael Biebl
6dc066f7dd Update Homepage. 2015-07-02 17:06:24 +00:00
Michael Biebl
380cf61811 New upstream release. 2015-07-02 17:06:14 +00:00
Emilio Pozuelo Monfort
4624ca952e * debian/gnome-shell-extensions.gsettings-override:
+ Dropped, no longer needed as the enabled extension no longer exists.
    Thanks Artur Rona for noticing.
2015-06-29 08:40:05 +00:00
Emilio Pozuelo Monfort
6f1475e944 release to unstable 2015-06-14 13:24:17 +00:00
Emilio Pozuelo Monfort
22256eec46 fix changelog 2015-06-14 12:30:51 +00:00
Emilio Pozuelo Monfort
31a5de2577 * debian/patches/apps-center-labels.patch,
debian/patches/dont-require-nautilus-classic.patch,
  debian/patches/menu-arrows-icons.patch:
  + Dropped, merged upstream.
2015-06-14 12:29:29 +00:00
Emilio Pozuelo Monfort
269e008541 * debian/control.in,
debian/rules:
  + The system monitor extension was removed. Drop the libgtop
    build and runtime dependencies and stop enabling it.
2015-06-14 12:22:40 +00:00
Emilio Pozuelo Monfort
79d866e9b5 New upstream release. 2015-06-14 12:18:06 +00:00
Josselin Mouette
6d4341f8a4 * New upstream bugfix release.
* menu-arrows-icons: new patch. Make arrows consistent with the rest 
  of the shell.
* apps-center-labels.patch: patch from upstream git. Center labels 
  vertically in the applications menu.
* window-list-pointerInNotification.patch: patch from upstream git. 
  Update window-list extension for an older shell API change.
2014-11-30 15:07:11 +00:00
Laurent Bigonville
61dd96a29e Release to unstable 2014-10-19 19:18:06 +00:00
Laurent Bigonville
9e2a8e0fb2 * New upstream release.
* debian/control.in: Bump Standards-Version to 3.9.6 (no further changes)
* Add missing dependencies against gir packages, including gir1.2-gmenu-3.0,
  this should fix the apps-menu extension for some people (Closes: #765460).
2014-10-19 19:17:54 +00:00
Michael Biebl
82ff7afe2b Release version 3.14.0-2 to unstable 2014-09-23 23:16:17 +00:00
Michael Biebl
0017eaebfc * Drop xrandr from EXTENSIONS_DISABLED, this extension was removed
upstream.
* Add new screenshot-window-sizer extension to EXTENSIONS_ENABLED.
2014-09-23 23:14:55 +00:00
Andreas Henriksson
fa729854b8 Move experimental branch to unstable 2014-09-23 13:48:11 +00:00
Andreas Henriksson
5644aebac7 * New upstream release.
* Upload to unstable.
2014-09-23 13:48:01 +00:00
Andreas Henriksson
941f5e43b4 debian/watch: only scan for stable releases. 2014-09-07 01:16:05 +00:00
Andreas Henriksson
a595407d39 New upstream development release. 2014-09-06 18:18:14 +00:00
Andreas Henriksson
60417b361e Branch gnome-shell-extensions to experimental 2014-09-06 18:14:53 +00:00
Andreas Henriksson
c3adf1724c Move experimental branch to unstable 2014-07-15 06:22:51 +00:00
Andreas Henriksson
435bbff3b0 * New upstream release.
* Bump Standards-Version to 3.9.5
* Upload to unstable.
2014-07-15 06:22:30 +00:00
Andreas Henriksson
706ea0dd7e * New upstream release (3.10.1)
* New upstream release (3.12.0)
* debian/local/gnome-session-classic,
  debian/patches/gnome-session-classic-wrapper-script.patch:
  - update script to include new GNOME_SHELL_SESSION_MODE env variable
    and update patch to apply again.
2014-04-04 19:56:02 +00:00
Jean Schurger
e7c37a9d54 * New upstream release
* debian/rules: remove one of the 'windowsNavigator' extension listed twice
  and the 'alternative-system-menu' extension (does not exists anymore)
* debian/copyright: Update 'Format:' line
2013-12-05 17:50:32 +00:00
Emilio Pozuelo Monfort
a7f66d648e Upload to unstable. 2013-10-13 16:13:05 +00:00
Emilio Pozuelo Monfort
013dc818e3 move gnome-shell-extensions exp branch to unstable 2013-10-12 21:09:23 +00:00
Michael Biebl
9430670019 Release version 3.8.4-1 to experimental 2013-10-11 16:56:11 +00:00
Michael Biebl
67c795b610 Add a wrapper script to start the GNOME Classic session as currently
Xsession doesn't allow to run gnome-session with custom arguments due to
#653327.
2013-10-11 16:52:46 +00:00
Michael Biebl
42158401ac Actually drop the patches 2013-10-11 14:41:56 +00:00
Jeremy Bicha
06a9891d77 * New upstream release
* Dropped patches applied in new version:
  - fix-hibernate.patch
  - fix-applications-menu-resolution-change.patch
  - look-in-data-home-for-themes.patch
2013-09-11 20:43:21 +00:00
Andreas Henriksson
c53e5325c3 Upload to experimental 2013-08-16 18:34:09 +00:00
Jeremy Bicha
6161d531fc use canonical Vcs-* fields 2013-07-28 04:21:50 +00:00
Jeremy Bicha
ad52e75e97 * debian/patches/fix-applications-menu-resolution-change.patch:
- Backport commit to not break applications menu when screen resolution
    changes
* debian/patches/fix-hibernate.patch:
  - Backport patch to fix checking whether hibernate is allowed
* debian/patches/look-in-data-home-for-themes.patch:
  - Backport commit to also look in XDG_DATA_HOME (usually ~/.local/share/)
    for user themes
2013-07-21 21:01:44 +00:00
Jeremy Bicha
2db7b6756d * debian/patches/dont-require-nautilus-classic.patch:
- Don't require nautilus-classic since it forces desktop icons
2013-06-29 02:25:53 +00:00
Jeremy Bicha
2f70c6c8a7 update homepages 2013-06-29 02:18:49 +00:00
Jeremy Bicha
8fd8943460 new release, drop git patch 2013-06-17 20:14:26 +00:00
Jeremy Bicha
695b533be1 - Run autoreconf
* debian/patches/git-drop-IsRunnableHelper.patch:
  - Don't run IsRunnableHelper since it's ignored anyway
2013-06-09 00:34:35 +00:00
Jeremy Bicha
491e9fb3e9 * debian/rules:
- Specify the location of gnome-session-check-accelerated
2013-06-09 00:17:39 +00:00
Jeremy Bicha
4d8bccc861 * New upstream release
- default-min-max and static-workspaces extensions have been dropped.
    Use Classic Mode or tweak org.gnome.shell.overrides in dconf-editor
* debian/control.in:
  - Depend on gnome-session and nautilus 3.8, needed for the new
    Classic mode.
2013-06-08 23:57:29 +00:00
Simon McVittie
88b5fea2f9 release to experimental 2013-05-23 08:10:54 +00:00
Simon McVittie
91e886c564 New upstream release 3.8.2
* Install the "classic mode"
* Enable windowNavigator extension (this means we have everything except
  example and xrandr, the same as in the Ubuntu gnome3-team's PPA)
2013-05-23 08:07:17 +00:00
Jean Schurger
1e8ff58d82 * debian/control.in
- Added runtime dependency to 'gvfs' (>= 1.16.0).
    The 'Places' extension rely on a 'gvfs' linked to 'udisks2'.
2013-04-04 14:04:41 +00:00
Jean Schurger
0b84052458 * debian/patches
- fix-places-volume-without-class.diff (fix 'places', #697266)
2013-04-04 13:35:51 +00:00
Jean Schurger
4abc92ef44 New upstream release. 2013-03-27 15:19:34 +00:00
Jean Schurger
d12833afc4 New upstreap release. 2013-03-27 15:19:05 +00:00
Andreas Henriksson
8de34e23a3 fix typo in changelog 2013-03-21 20:39:21 +00:00
Jean Schurger
3158caa1be * New Upstream release.
* Enabled new extensions.
* Dropped 'dock' and 'gajim'.
* Use ./configure instead of autoreconf.
* Bunped Standards-Version to 3.9.4.
* Updated Vcs-Svn.
2013-03-21 17:32:15 +00:00
Victor Seva Lopez
8a6d13c416 Added gnome-tweak-tool as recommends 2012-07-27 07:35:38 +00:00
Michael Biebl
90fe2cfb36 Release version 3.4.0-2 to unstable 2012-05-30 11:23:16 +00:00
Michael Biebl
c91d5ebec1 Upload to unstable. 2012-05-25 05:53:18 +00:00
Michael Biebl
5a00d5e117 Move experimental branch of gnome-shell-extensions to unstable 2012-05-25 05:52:36 +00:00
Michael Biebl
1b938d9d5b Release version 3.4.0-1 to experimental 2012-05-20 22:25:15 +00:00
Michael Biebl
62cbbef068 Bump Standards-Version to 3.9.3 2012-05-20 22:24:52 +00:00
Michael Biebl
684547a66d * Remove 01_status-menu_disable_accounts.patch: The alternative-status-menu
extension no longer recreates the complete user menu but reuses the one
  from gnome-shell, so we can't easily get rid of the "Online Accounts" menu
  entry. We will patch gnome-shell directly instead.
* Remove 02-Revert-all-remove-all-GSettings-usage.patch and
  03-Revert-Remove-all-references-to-localedir-from-metad.patch, no longer
  required.
2012-05-20 22:23:40 +00:00
Michael Biebl
261569c9fd New upstream release. 2012-05-20 20:49:10 +00:00
Michael Biebl
e8d3ad369a Branch gnome-shell-extensions to experimental 2012-05-20 20:43:18 +00:00
Michael Biebl
f81ae009f9 Release version 3.2.3-1 to unstable 2012-02-11 22:29:11 +00:00
Michael Biebl
8b954a2937 Add 03-Revert-Remove-all-references-to-localedir-from-metad.patch: Use
locales from system-wide location.
2012-02-11 22:26:30 +00:00
Michael Biebl
1e58f48f1d Use dh-autoreconf to generate the build system. 2012-02-11 22:08:34 +00:00
Michael Biebl
1a0e9905fb Update enable_extensions to alternative-status-menu@gnome-shell-extensions.gcampax.github.com
See http://git.gnome.org/browse/gnome-shell-extensions/commit/?id=d76abc79c77953de1be4322d96c14e0b8cccf047
2012-02-11 21:58:17 +00:00
Michael Biebl
8a04a843f6 Add debian/patches/02-Revert-all-remove-all-GSettings-usage.patch: Use
GSettings since we install the extensions system-wide.
2012-02-11 21:55:11 +00:00
Michael Biebl
814e57fbd0 Refresh debian/patches/01_status-menu_disable_accounts.patch. 2012-02-11 21:53:25 +00:00
Michael Biebl
f69389a76b * Drop patches which have been merged upstream:
- debian/patches/upstream/*
  - debian/patches/fix-*
2012-02-11 21:50:52 +00:00
Michael Biebl
3f9b1357ff New upstream release. 2012-02-11 21:43:10 +00:00
Michael Biebl
e0cb098823 Remove useless comment from package synopsis
We don't have a package split
2012-02-11 21:28:23 +00:00
Josselin Mouette
bc470533bf 01_status-menu_disable_accounts.patch: new patch. Drop the unusable
advertisement for Google. It is already available in the control 
center anyway.
2011-12-29 09:54:02 +00:00
Michael Biebl
84d4e7efe3 Upload to unstable. 2011-12-13 21:44:11 +00:00
Josselin Mouette
39b900243e Use ${gnome:Version} to generate strict dependencies, it’s very
unlikely that extensions remain compatible after a major upgrade.
2011-12-03 21:10:49 +00:00
Josselin Mouette
017aedadd2 gnome-shell-extensions.gsettings-override: enable the alternative
status menu by default. Closes: #648112.
2011-11-17 00:37:49 +00:00
Michael Biebl
7c06399818 Release version 3.2.0-1 to experimental 2011-11-12 17:32:53 +00:00
Victor Seva Lopez
26646997b0 Add alternate-tab_gnome-shell_version patch. 2011-11-12 16:24:11 +00:00
Victor Seva Lopez
1b3f651c7e Add patch to fix alternate-tab from 661281 bug report. 2011-11-12 16:23:56 +00:00
Victor Seva Lopez
23b002adaa Add gir1.2-gtop-2.0 Depends for systemMonitor extension 2011-11-12 13:03:47 +00:00
Victor Seva Lopez
d9118a8653 Enable systemMonitor.
Add patch to get dock loaded.
2011-11-12 12:41:23 +00:00
Victor Seva Lopez
245714aa0c Added upstream patches
enabled/disabled extensions
2011-11-12 11:39:10 +00:00
Victor Seva Lopez
2618620d04 Use GPL-2.0+ Licence for debian/* 2011-11-07 17:28:11 +00:00
Michael Biebl
1d3d0585a2 * debian/rules:
- Include gnome-get-source.mk.
2011-11-07 17:05:16 +00:00
Michael Biebl
2e263b1cdc Add Vcs-Svn and Vcs-Browser field. 2011-11-07 17:04:20 +00:00
Michael Biebl
f4aece9488 Wrap (Build-)Depends. 2011-11-07 17:02:22 +00:00
Michael Biebl
c1928689da Remove duplicate line in long description 2011-11-07 17:01:12 +00:00
Michael Biebl
6972b3458d * debian/control.in:
- Set pkg-gnome-maintainers@lists.alioth.debian.org as Maintainer and add
    Victor Seva <linuxmaniac@torreviejawireless.org> to Uploaders.
2011-11-07 17:00:45 +00:00
Michael Biebl
bb6634bbb0 debian/watch: Track .xz tarballs. 2011-11-07 16:59:27 +00:00
Michael Biebl
1b2a6bdc72 Merge changelog entries 2011-11-07 16:57:37 +00:00
Michael Biebl
901c12671e Import debian/ directory from https://github.com/linuxmaniac/pkg_gnome-shell-extensions/tree/master/debian 2011-11-07 16:41:45 +00:00
Bilal Akhtar
3c564fd613 Create directory for gnome-shell-extensions 2011-06-11 08:05:17 +00:00
218 changed files with 23235 additions and 16215 deletions

17
.editorconfig Normal file
View File

@@ -0,0 +1,17 @@
# SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
# SPDX-License-Identifier: CC0-1.0
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
trim_trailing_whitespace = true
[*.js]
indent_size = 4
[meson.build]
indent_size = 2

View File

@@ -1,3 +0,0 @@
extends:
- ./lint/eslintrc-gjs.yml
- ./lint/eslintrc-shell.yml

4
.gitattributes vendored Normal file
View File

@@ -0,0 +1,4 @@
# SPDX-FileCopyrightText: No rights reserved
# SPDX-License-Identifier: CC0-1.0
package-lock.json -diff

39
.gitignore vendored
View File

@@ -1,29 +1,14 @@
ABOUT-NLS
Makefile
Makefile.in
Makefile.in.in
aclocal.m4
autom4te.cache/
config/
configure
config.log
config.status
data/*.json
m4/
po/*.header
po/*.sed
po/*.sin
po/Makevars.template
po/POTFILES
po/Rules-quot
po/gnome-shell-extensions.pot
po/stamp-it
staging/
zip-files/
# SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
# SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: CC0-1.0
po/gnome-shell-extensions.pot
zip-files/
*~
*.gmo
metadata.json
*.desktop
*.gschema.valid
*.session
*.patch
*.sw?
.buildconfig
.eslintcache
.vscode
node_modules

View File

@@ -1,40 +1,159 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
include:
- project: Infrastructure/freedesktop-ci-templates
file: templates/fedora.yml
- project: Infrastructure/freedesktop-ci-templates
file: templates/ci-fairy.yml
- project: GNOME/citemplates
file: templates/default-rules.yml
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
inputs:
job-stage: deploy
dist-job-name: fedora-dist-tarball
tarball-artifact-path: "$TARBALL_ARTIFACT_PATH"
stages:
- commit_check
- source_check
- build
- pre-review
- prepare
- review
- build
- deploy
default:
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/43:2025-09-10.1
variables:
LINT_LOG: "eslint-report.txt"
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
MESON_BUILD_DIR: build
TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
.only_default: &only_default
only:
- branches
- tags
- merge_requests
.pipeline-guard:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
- when: 'manual'
check_commit_log:
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis
stage: commit_check
script:
- ./.gitlab-ci/check-commit-log.sh
only:
- merge_requests
.prereview-req:
needs:
- check-commit-log
check-commit-log:
extends:
- .fdo.ci-fairy
stage: pre-review
script:
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
then
ci-fairy check-commits --junit-xml=commit-message-junit-report.xml ;
else
echo "Not a merge request" ;
fi
rules:
- !reference [.pipeline-guard, rules]
artifacts:
expire_in: 1 week
paths:
- commit-message-junit-report.xml
reports:
junit: commit-message-junit-report.xml
check-reuse:
stage: pre-review
image:
name: fsfe/reuse:latest
entrypoint: [""]
script:
- reuse lint
js-check:
stage: review
needs:
- !reference [.prereview-req, needs]
script:
- gjs-check-syntax
eslint:
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: source_check
stage: review
needs:
- !reference [.prereview-req, needs]
variables:
LINT_LOG: "eslint-report.xml"
script:
- eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; }
<<: *only_default
- ./tools/run-eslint.sh --output-file "$LINT_LOG" --format junit --stdout
artifacts:
reports:
junit: "$LINT_LOG"
potfile-js-check:
stage: review
needs:
- !reference [.prereview-req, needs]
script:
- gjs-check-potfiles
artifacts:
reports:
junit: gjs-check-potfiles.junit.xml
build-bundles:
stage: build
needs:
- !reference [.prereview-req, needs]
script:
- ./export-zips.sh
artifacts:
name: 'Extension bundles'
expose_as: 'Get Extension bundles here'
paths:
- zip-files/
dist-bundles:
stage: deploy
needs:
- build-bundles
script:
- gnome-extensions upload --accept-tos --user "$EGO_USER" --password "$EGO_PASSWORD" zip-files/*.zip
rules:
- if: '$CI_COMMIT_TAG'
fedora-build:
stage: build
needs:
- !reference [.prereview-req, needs]
script:
- meson setup "$MESON_BUILD_DIR" --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C "$MESON_BUILD_DIR"
- meson test -C "$MESON_BUILD_DIR"
- meson install -C "$MESON_BUILD_DIR"
artifacts:
paths:
- ${LINT_LOG}
when: on_failure
- "$MESON_BUILD_DIR"
build-shell-extensions:
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: build
fedora-dist:
stage: deploy
needs:
- fedora-build
variables:
GIT_SUBMODULE_STRATEGY: normal
script:
- meson _build .
- ninja -C _build test install
<<: *only_default
- meson dist -C "$MESON_BUILD_DIR"
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- "**/meson.build"
- meson/*
fedora-dist-tarball:
extends: fedora-dist
artifacts:
expose_as: 'Get tarball here'
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths:
- "$TARBALL_ARTIFACT_PATH"
rules:
- if: '$CI_COMMIT_TAG'

View File

@@ -1,31 +0,0 @@
#!/usr/bin/env bash
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
echo Cannot review non-merge request
exit 1
fi
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
branch_point=$(git merge-base HEAD FETCH_HEAD)
commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA)
if [ -z "$commits" ]; then
echo Commit range empty
exit 1
fi
function commit_message_has_url() {
commit=$1
commit_message=$(git show -s --format='format:%b' $commit)
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
return $?
}
for commit in $commits; do
if ! commit_message_has_url $commit; then
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
exit 1
fi
done

View File

@@ -0,0 +1,17 @@
# SPDX-FileCopyrightText: 2021 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
patterns:
deny:
- regex: '^$CI_MERGE_REQUEST_PROJECT_URL/(-/)?merge_requests/$CI_MERGE_REQUEST_IID$'
message: Commit message must not contain a link to its own merge request
- regex: '^extensions/'
message: Commit message subject should not be prefixed with 'extensions/', use the extension name instead
where: subject
- regex: '^[^:]+: [a-z]'
message: "Commit message subject should be properly Capitalized. E.g. 'window: Marginalize extradicity'"
where: subject
- regex: '^\S*\.js:'
message: Commit message subject prefix should not include .js
where: subject

View File

@@ -0,0 +1,72 @@
<!--
Please read https://handbook.gnome.org/issues/reporting.html
first to ensure that you create a clear and specific issue.
-->
### Which extension
<!--
Which extension is the issue about?
See the project README for a complete list of extensions:
https://gitlab.gnome.org/GNOME/gnome-shell-extensions#extensions
Do not report issues for any other extensions here.
Report general issues about gnome-shell's extension support to
https://gitlab.gnome.org/GNOME/gnome-shell.
Report issues with the extensions.gnome.org website to
https://gitlab.gnome.org/Infrastructure/extensions-web/
-->
### Affected version
<!--
Provide at least the following information:
* Your OS and version
* Extension version
* Affected GNOME Shell version
-->
### Bug summary
<!--
Provide a short summary of the bug you encountered.
-->
### Steps to reproduce
<!--
1. Step one
2. Step two
3. ...
-->
### What happened
<!--
What did the extension do that was unexpected?
-->
### What did you expect to happen
<!--
What did you expect the extension to do?
-->
### Relevant logs, screenshots, screencasts etc.
<!--
If you have further information, such as technical documentation, logs,
screenshots or screencasts related, please provide them here.
If the bug is a crash, please obtain a stack trace with installed debug
symbols (at least for GNOME Shell and Mutter) and attach it to
this issue following the instructions on
https://handbook.gnome.org/issues/stack-traces.html.
-->
<!-- Do not remove the following line. -->
/label ~"1. Bug"

View File

@@ -0,0 +1,2 @@
SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
SPDX-License-Identifier: CC-BY-SA-4.0

View File

@@ -0,0 +1,47 @@
<!--
Please read https://handbook.gnome.org/issues/reporting.html
first to ensure that you create a clear and specific issue.
-->
### Which extension
<!--
Which extension is the issue about?
See the project README for a complete list of extensions:
https://gitlab.gnome.org/GNOME/gnome-shell-extensions#extensions
Do not report issues for any other extensions here.
Report general issues about gnome-shell's extension support to
https://gitlab.gnome.org/GNOME/gnome-shell.
Report issues with the extensions.gnome.org website to
https://gitlab.gnome.org/Infrastructure/extensions-web/
-->
### Feature summary
<!--
Describe what you would like to be able to do with the extension
that you currently cannot do.
-->
### How would you like it to work
<!--
If you can think of a way the extension might be able to do this,
let us know here.
-->
### Relevant links, screenshots, screencasts etc.
<!--
If you have further information, such as technical documentation,
code, mockups or a similar feature in another desktop environments,
please provide them here.
-->
<!-- Do not remove the following line. -->
/label ~"1. Feature"

View File

@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
SPDX-License-Identifier: CC-BY-SA-4.0

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "data/gnome-shell-sass"]
path = data/gnome-shell-sass
url = https://gitlab.gnome.org/GNOME/gnome-shell-sass.git

View File

@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>"""
SPDX-License-Identifier: CC-BY-SA-4.0
-->
## Creating a New Extension
To create a new extension, add a subdirectory in extensions. Then create
@@ -20,12 +26,9 @@ need in gnome-shell.
Generally, we follow [GJS coding style][coding-style], which in short is:
indent 4 spaces, no tabs, space after comma, no space after function call.
The Emacs mode line for this
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
Imports should be at the top, in two groups, one for standard
imports (like imports.lang or imports.dbus) and introspection,
the other for Shell API. Within the same group, put everything
in alphabetic order.
[coding-style]: https://gitlab.gnome.org/GNOME/gjs/blob/master/doc/Style_Guide.md
[coding-style]: https://gitlab.gnome.org/GNOME/gjs/blob/HEAD/doc/Style_Guide.md

170
LICENSES/CC-BY-SA-4.0.txt Normal file
View File

@@ -0,0 +1,170 @@
Creative Commons Attribution-ShareAlike 4.0 International
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors.
Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensors permission is not necessary for any reasonfor example, because of any applicable exception or limitation to copyrightthen that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described.
Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public.
Creative Commons Attribution-ShareAlike 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
Section 1 Definitions.
a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
Section 2 Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
A. reproduce and Share the Licensed Material, in whole or in part; and
B. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
3. Term. The term of this Public License is specified in Section 6(a).
4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
5. Downstream recipients.
A. Offer from the Licensor Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
B. Additional offer from the Licensor Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapters License You apply.
C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
2. Patent and trademark rights are not licensed under this Public License.
3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
Section 3 License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified form), You must:
A. retain the following if it is supplied by the Licensor with the Licensed Material:
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of warranties;
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.
1. The Adapters License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
Section 4 Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
Section 5 Disclaimer of Warranties and Limitation of Liability.
a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
Section 6 Term and Termination.
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
2. upon express reinstatement by the Licensor.
c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
Section 7 Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
Section 8 Interpretation.
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
Creative Commons may be contacted at creativecommons.org.

121
LICENSES/CC0-1.0.txt Normal file
View File

@@ -0,0 +1,121 @@
Creative Commons Legal Code
CC0 1.0 Universal
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
HEREUNDER.
Statement of Purpose
The laws of most jurisdictions throughout the world automatically confer
exclusive Copyright and Related Rights (defined below) upon the creator
and subsequent owner(s) (each and all, an "owner") of an original work of
authorship and/or a database (each, a "Work").
Certain owners wish to permanently relinquish those rights to a Work for
the purpose of contributing to a commons of creative, cultural and
scientific works ("Commons") that the public can reliably and without fear
of later claims of infringement build upon, modify, incorporate in other
works, reuse and redistribute as freely as possible in any form whatsoever
and for any purposes, including without limitation commercial purposes.
These owners may contribute to the Commons to promote the ideal of a free
culture and the further production of creative, cultural and scientific
works, or to gain reputation or greater distribution for their Work in
part through the use and efforts of others.
For these and/or other purposes and motivations, and without any
expectation of additional consideration or compensation, the person
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
is an owner of Copyright and Related Rights in the Work, voluntarily
elects to apply CC0 to the Work and publicly distribute the Work under its
terms, with knowledge of his or her Copyright and Related Rights in the
Work and the meaning and intended legal effect of CC0 on those rights.
1. Copyright and Related Rights. A Work made available under CC0 may be
protected by copyright and related or neighboring rights ("Copyright and
Related Rights"). Copyright and Related Rights include, but are not
limited to, the following:
i. the right to reproduce, adapt, distribute, perform, display,
communicate, and translate a Work;
ii. moral rights retained by the original author(s) and/or performer(s);
iii. publicity and privacy rights pertaining to a person's image or
likeness depicted in a Work;
iv. rights protecting against unfair competition in regards to a Work,
subject to the limitations in paragraph 4(a), below;
v. rights protecting the extraction, dissemination, use and reuse of data
in a Work;
vi. database rights (such as those arising under Directive 96/9/EC of the
European Parliament and of the Council of 11 March 1996 on the legal
protection of databases, and under any national implementation
thereof, including any amended or successor version of such
directive); and
vii. other similar, equivalent or corresponding rights throughout the
world based on applicable law or treaty, and any national
implementations thereof.
2. Waiver. To the greatest extent permitted by, but not in contravention
of, applicable law, Affirmer hereby overtly, fully, permanently,
irrevocably and unconditionally waives, abandons, and surrenders all of
Affirmer's Copyright and Related Rights and associated claims and causes
of action, whether now known or unknown (including existing as well as
future claims and causes of action), in the Work (i) in all territories
worldwide, (ii) for the maximum duration provided by applicable law or
treaty (including future time extensions), (iii) in any current or future
medium and for any number of copies, and (iv) for any purpose whatsoever,
including without limitation commercial, advertising or promotional
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
member of the public at large and to the detriment of Affirmer's heirs and
successors, fully intending that such Waiver shall not be subject to
revocation, rescission, cancellation, termination, or any other legal or
equitable action to disrupt the quiet enjoyment of the Work by the public
as contemplated by Affirmer's express Statement of Purpose.
3. Public License Fallback. Should any part of the Waiver for any reason
be judged legally invalid or ineffective under applicable law, then the
Waiver shall be preserved to the maximum extent permitted taking into
account Affirmer's express Statement of Purpose. In addition, to the
extent the Waiver is so judged Affirmer hereby grants to each affected
person a royalty-free, non transferable, non sublicensable, non exclusive,
irrevocable and unconditional license to exercise Affirmer's Copyright and
Related Rights in the Work (i) in all territories worldwide, (ii) for the
maximum duration provided by applicable law or treaty (including future
time extensions), (iii) in any current or future medium and for any number
of copies, and (iv) for any purpose whatsoever, including without
limitation commercial, advertising or promotional purposes (the
"License"). The License shall be deemed effective as of the date CC0 was
applied by Affirmer to the Work. Should any part of the License for any
reason be judged legally invalid or ineffective under applicable law, such
partial invalidity or ineffectiveness shall not invalidate the remainder
of the License, and in such case Affirmer hereby affirms that he or she
will not (i) exercise any of his or her remaining Copyright and Related
Rights in the Work or (ii) assert any associated claims and causes of
action with respect to the Work, in either case contrary to Affirmer's
express Statement of Purpose.
4. Limitations and Disclaimers.
a. No trademark or patent rights held by Affirmer are waived, abandoned,
surrendered, licensed or otherwise affected by this document.
b. Affirmer offers the Work as-is and makes no representations or
warranties of any kind concerning the Work, express, implied,
statutory or otherwise, including without limitation warranties of
title, merchantability, fitness for a particular purpose, non
infringement, or the absence of latent or other defects, accuracy, or
the present or absence of errors, whether or not discoverable, all to
the greatest extent permissible under applicable law.
c. Affirmer disclaims responsibility for clearing rights of other persons
that may apply to the Work or any use thereof, including without
limitation any person's Copyright and Related Rights in the Work.
Further, Affirmer disclaims responsibility for obtaining any necessary
consents, permissions or other rights required for any use of the
Work.
d. Affirmer understands and acknowledges that Creative Commons is not a
party to this document and has no duty or obligation with respect to
this CC0 or use of the Work.

View File

@@ -0,0 +1,117 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and modification follow.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
one line to give the program's name and an idea of what it does. Copyright (C) yyyy name of author
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
signature of Ty Coon, 1 April 1989 Ty Coon, President of Vice

View File

@@ -0,0 +1,174 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public Licenses are intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some specially designated Free Software Foundation software, and to any other libraries whose authors decide to use it. You can use it for your libraries, too.
When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis or for a fee, you must give the recipients all the rights that we gave you. You must make sure that they, too, receive or can get the source code. If you link a program with the library, you must provide complete object files to the recipients so that they can relink them with the library, after making changes to the library and recompiling it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright the library, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain that everyone understands that there is no warranty for this free library. If the library is modified by someone else and passed on, we want its recipients to know that what they have is not the original version, so that any problems introduced by others will not reflect on the original authors' reputations.
Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that companies distributing free software will individually obtain patent licenses, thus in effect transforming the program into proprietary software. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary GNU General Public License, which was designed for utility programs. This license, the GNU Library General Public License, applies to certain designated libraries. This license is quite different from the ordinary one; be sure to read it in full, and don't assume that anything in it is the same as in the ordinary license.
The reason we have a separate public license for some libraries is that they blur the distinction we usually make between modifying or adding to a program and simply using it. Linking a program with a library, without changing the library, is in some sense simply using the library, and is analogous to running a utility program or application program. However, in a textual and legal sense, the linked executable is a combined work, a derivative of the original library, and the ordinary General Public License treats it as such.
Because of this blurred distinction, using the ordinary General Public License for libraries did not effectively promote software sharing, because most developers did not use the libraries. We concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the users of those programs of all benefit from the free status of the libraries themselves. This Library General Public License is intended to permit developers of non-free programs to use free libraries, while preserving your freedom as a user of such programs to change the free libraries that are incorporated in them. (We have not seen how to achieve this as regards changes in header files, but we have achieved it as regards changes in the actual functions of the Library.) The hope is that this will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and modification follow. Pay close attention to the difference between a "work based on the library" and a "work that uses the library". The former contains code derived from the library, while the latter only works together with the library.
Note that it is possible for a library to be covered by the ordinary General Public License rather than by this special one.
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which contains a notice placed by the copyright holder or other authorized party saying it may be distributed under the terms of this Library General Public License (also called "this License"). Each licensee is addressed as "you".
A "library" means a collection of software functions and/or data prepared so as to be conveniently linked with application programs (which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work which has been distributed under these terms. A "work based on the Library" means either the Library or any derivative work under copyright law: that is to say, a work containing the Library or a portion of it, either verbatim or with modifications and/or translated straightforwardly into another language. (Hereinafter, translation is included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for making modifications to it. For a library, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the library.
Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running a program using the Library is not restricted, and output from such a program is covered only if its contents constitute a work based on the Library (independent of the use of the Library in a tool for writing it). Whether that is true depends on what the Library does and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's complete source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and distribute a copy of this License along with the Library.
You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Library or any portion of it, thus forming a work based on the Library, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a table of data to be supplied by an application program that uses the facility, other than as an argument passed when the facility is invoked, then you must make a good faith effort to ensure that, in the event an application does not supply such function or table, the facility still operates, and performs whatever part of its purpose remains meaningful.
(For example, a function in a library to compute square roots has a purpose that is entirely well-defined independent of the application. Therefore, Subsection 2d requires that any application-supplied function or table used by this function must be optional: if the application does not supply it, the square root function must still compute square roots.)
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Library, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Library, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Library.
In addition, mere aggregation of another work not based on the Library with the Library (or with a work based on the Library) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public License instead of this License to a given copy of the Library. To do this, you must alter all the notices that refer to this License, so that they refer to the ordinary GNU General Public License, version 2, instead of to this License. (If a newer version than version 2 of the ordinary GNU General Public License has appeared, then you can specify that version instead if you wish.) Do not make any other change in these notices.
Once this change is made in a given copy, it is irreversible for that copy, so the ordinary GNU General Public License applies to all subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or derivative of it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange.
If distribution of object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place satisfies the requirement to distribute the source code, even though third parties are not compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the Library, but is designed to work with the Library by being compiled or linked with it, is called a "work that uses the Library". Such a work, in isolation, is not a derivative work of the Library, and therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License. Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file that is part of the Library, the object code for the work may be a derivative work of the Library even though the source code is not. Whether this is true is especially significant if the work can be linked without the Library, or if the work is itself a library. The threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or link a "work that uses the Library" with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer's own use and reverse engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:
a) Accompany the work with the complete corresponding machine-readable source code for the Library including whatever changes were used in the work (which must be distributed under Sections 1 and 2 above); and, if the work is an executable linked with the Library, with the complete machine-readable "work that uses the Library", as object code and/or source code, so that the user can modify the Library and then relink to produce a modified executable containing the modified Library. (It is understood that the user who changes the contents of definitions files in the Library will not necessarily be able to recompile the application to use the modified definitions.)
b) Accompany the work with a written offer, valid for at least three years, to give the same user the materials specified in Subsection 6a, above, for a charge no more than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy from a designated place, offer equivalent access to copy the above specified materials from the same place.
d) Verify that the user has already received a copy of these materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the Library" must include any data and utility programs needed for reproducing the executable from it. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
It may happen that this requirement contradicts the license restrictions of other proprietary libraries that do not normally accompany the operating system. Such a contradiction means you cannot use both them and the Library together in an executable that you distribute.
7. You may place library facilities that are a work based on the Library side-by-side in a single library together with other library facilities not covered by this License, and distribute such a combined library, provided that the separate distribution of the work based on the Library and of the other library facilities is otherwise permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities. This must be distributed under the terms of the Sections above.
b) Give prominent notice with the combined library of the fact that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute the Library except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, link with, or distribute the Library is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Library or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Library (or any work based on the Library), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the Library), the recipient automatically receives a license from the original licensor to copy, distribute, link with or modify the Library subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
11. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Library at all. For example, if a patent license would not permit royalty-free redistribution of the Library by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply, and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Library under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
13. The Free Software Foundation may publish revised and/or new versions of the Library General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Library does not specify a license version number, you may choose any version ever published by the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free programs whose distribution conditions are incompatible with these, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Libraries
If you develop a new library, and you want it to be of the greatest possible use to the public, we recommend making it free software that everyone can redistribute and change. You can do so by permitting redistribution under these terms (or, alternatively, under the terms of the ordinary General Public License).
To apply these terms, attach the following notices to the library. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
one line to give the library's name and an idea of what it does.
Copyright (C) year name of author
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details.
You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
Also add information on how to contact you by electronic and paper mail.
You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the library, if necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in
the library `Frob' (a library for tweaking knobs) written
by James Random Hacker.
signature of Ty Coon, 1 April 1990
Ty Coon, President of Vice
That's all there is to it!

9
LICENSES/MIT.txt Normal file
View File

@@ -0,0 +1,9 @@
MIT License
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

641
NEWS
View File

@@ -1,17 +1,644 @@
3.36.2
======
* Misc. bug fixes and cleanups [Florian, Xiaoguang; !113, !106]
50.alpha
========
* classic: Drop xorg sessions [Jordan; !283]
* classic: Deifne a gnome-session session [Adrian; !3960]
* Misc. bug fixes and cleanups [Florian, Jordan; !425, !429, !430, !432, !431,
!433, !434, !435, !439]
Contributors:
Florian Müllner, Xiaoguang Wang
Florian Müllner, Jordan Petridis, Adrian Vovk
Translators:
Yosef Or Boczko [he], Kristjan SCHMIDT [eo]
3.36.1
BoF ButterflyOfFire [kab], Giannis Antypas [el],
Asier Saratsua Garmendia [eu], Hugo Carvalho [pt], twlvnn kraftwerk [bg],
Baurzhan Muftakhidinov [kk], Ibai Oihanguren Sala [eu]
49.0
====
* window-list: Adjust to gnome-shell changes [Florian; !421]
* system-monitor: Unbreak on BSD [Antoine; !356]
* Misc. bug fixes and cleanups [Florian; !422, !423]
Contributors:
Antoine Jacoutot, Florian Müllner
Translators:
Jiri Grönroos [fi], Aurimas Aurimas Černius [lt]
49.rc
=====
Translators:
Emilio Sepúlveda [ia], Dušan Kazik [sk], Daniel Rusek [cs],
Nathan Follens [nl], Piotr Drąg [pl], Balázs Úr [hu], Yosef Or Boczko [he]
49.beta
=======
* Misc. bug fixes and cleanups [Florian; !408]
Contributors:
Florian Müllner
Translators:
Anders Jonsson [sv], Makoto Sakaguchi [ja], Danial Behzadi [fa],
Jordi Mas i Hernandez [ca]
49.alpha.1
==========
* workspaces-indicator, window-list: Better expose workspace names
[Florian; !405]
* window-list: Animate transition to/from overview [Florian; !412]
* Misc. bug fixes and cleanups [Florian; !409, !411, !413]
Contributors:
Florian Müllner
Translators:
Martin [sl], Emin Tufan Çetin [tr], Yuri Chornoivan [uk], Luming Zh [zh_CN],
Yago Raña [gl], Ekaterine Papava [ka], Vasil Pupkin [be],
Álvaro Burns [pt_BR], Sergej A. [ru]
49.alpha.0
==========
* windowsNavigator: Fix handling keyboard shortcuts [Daniel; !395]
* build: Allow disabling the X11 session [Neal; !396, !400]
* Disable X11 session by default [Jordan; !399]
* Misc. bug fixes and cleanups [Florian; !398, !406]
Contributors:
Daniel Buch Hansen, Neal Gompa, Florian Müllner, Jordan Petridis
Translators:
Emilio Sepúlveda [ia]
48.1
====
Translators:
Hugo Carvalho [pt], Danial Behzadi [fa]
48.0
====
* apps-menu: Fix scrolling items into view on keynav [Victor; !391]
* Misc. bug fixes and cleanups [Florian, Stuart; !390, !392]
Contributors:
Stuart Hayhurst, Victor Kareh, Florian Müllner
48.rc
=====
* Misc. bug fixes and cleanups [Florian; !385, !388]
Contributors:
Florian Müllner
Translators:
Emilio Sepúlveda [ia], Mathews M [ml], Daniel Rusek [cs], Piotr Drąg [pl],
Anders Jonsson [sv], Ekaterine Papava [ka], Yuri Chornoivan [uk],
Aurimas Černius [lt], Luming Zh [zh_CN], Jiri Grönroos [fi]
48.beta
=======
* window-list: Fix regression in chrome tracking [Florian; !379]
* Misc. bug fixes and cleanups [Florian; !380]
Contributors:
Florian Müllner, Emilio Sepúlveda
Translators:
Rafael Fontenelle [pt_BR], Emilio Sepúlveda [ia]
48.alpha
========
* classic: Add missing top-bar indicators [Florian; !339]
* window-list: Fix window state styling [Florian; !342]
* window-list: Fix "ignore-workspace" setting getting reset [Florian; !341]
* window-list: Allow rearranging window buttons [Florian, Jakub; !338]
* window-list: Add workspaces page to preference dialog [Florian; !344]
* places-menu: Sync list of places with nautilus [Florian; !340]
* places-menu: Fix a11y labelling [Florian; #542]
* places-menu: Fix opening drives with mount operations [Florian; !361]
* window-list: Fix hiding when entering overview with gestures [Florian; !364]
* workspace-indicator: Only show previews of regular windows [Florian; !363]
* window-list: Add attention indicator [Florian; !366]
* Misc. bug fixes and cleanups [Florian, Bartłomiej; !337, !343, !345, !347,
!348, !349, !351, !352, !353, !354, !358, !362, !365, !367, !368, !370, !375]
Contributors:
Florian Müllner, Bartłomiej Piotrowski, Jakub Steiner
Translators:
Fabio Tomat [fur], Martin [sl], Jordi Mas i Hernandez [ca], Vasil Pupkin [be],
Nathan Follens [nl], Artur S0 [ru], Марко Костић [sr],
Yaron Shahrabani [he], Sabri Ünal [tr], Yi-Jyun Pan [zh_TW]
47.0
====
Translators:
twlvnn kraftwerk [bg], Alexander Shopov [bg], Fran Dieguez [gl],
Aurimas Černius [lt], Daniel [es], Andika Triwidada [id],
Andi Chandler [en_GB], Ask Hjorth Larsen [da], Aefgh Threenine [th],
Dušan Kazik [sk], Rūdolfs Mazurs [lv], Irénée THIRION [fr]
47.rc
=====
* Misc. bug fixes and cleanups [Sophie; !333]
Contributors:
Sophie Herold
Translators:
Daniel Șerbănescu [ro], Giannis Antypas [el], Ekaterine Papava [ka],
Jordi Mas i Hernandez [ca], Yuri Chornoivan [uk], Jiri Grönroos [fi],
Daniel Rusek [cs], Vasil Pupkin [be], Luming Zh [zh_CN], Brage Fuglseth [nb],
Asier Sarasua Garmendia [eu], Danial Behzadi [fa], Rafael Fontenelle [pt_BR],
Quentin PAGÈS [oc], Anders Jonsson [sv], Jürgen Benvenuti [de],
Changwoo Ryu [ko], Hugo Carvalho [pt], Piotr Drąg [pl], Sabri Ünal [tr]
47.beta
=======
* window-list: Modernize styling [Jakub; !330]
* Include "status-icons" extension [Florian; !194]
* Misc. bug fixes and cleanups [Florian; !328, !331, !327]
Contributors:
Florian Müllner, Jakub Steiner
Translators:
Sabri Ünal [tr], Chao-Hsiung Liao [zh_TW]
47.alpha
========
* Improve workspace previews in window-list and workspace-indicator
[Florian; !307, !316]
* apps-menu: Fix a11y of category labels [Florian; !319]
* window-list: Fix long-press support [Florian; !320]
* window-list: Animate transitions [Florian; !325]
* Misc. bug fixes and cleanups [Florian; !315, !321, !324]
Contributors:
Florian Müllner
Translators:
Jordi Mas i Hernandez [ca], Martin [sl], Hugo Carvalho [pt], Jose Riha [sk],
Scrambled 777 [hi], Artur S0 [ru], Милош Поповић [sr], Yosef Or Boczko [he],
Balázs Úr [hu]
46.1
====
* screenshot-window-sizer: Add flathub-recommended size [Florian; !317]
Contributors:
Florian Müllner
Translators:
Rachida SACI [kab], Matheus Polkorny [pt_BR], Fabio Tomat [fur]
46.0
====
* system-monitor: Fix net speed [Florian; !313]
* Misc. bug fixes and cleanups [Aral; !311]
Contributors:
Aral Balkan, Florian Müllner
Translators:
Anders Jonsson [sv], Piotr Drąg [pl], Balázs Úr [hu], Milo Casagrande [it],
Quentin PAGÈS [oc], Athmane MOKRAOUI [kab], Changwoo Ryu [ko],
Ask Hjorth Larsen [da]
46.rc
=====
* Fix window previews in workspace indicator [Florian; !304]
* Fix menu ornament in workspace indicator [Florian; !305]
* Misc. bug fixes and cleanups [Florian; !306, !309]
Contributors:
Florian Müllner
Translators:
Danial Behzadi [fa], Ekaterine Papava [ka], Sabri Ünal [tr], Artur S0 [ru],
Yuri Chornoivan [uk], Vasil Pupkin [be], Asier Sarasua Garmendia [eu],
Yaron Shahrabani [he], Brage Fuglseth [nb], Nathan Follens [nl],
Aurimas Černius [lt], Matej Urbančič [sl], Boyuan Yang [zh_CN],
Kukuh Syafaat [id], Fran Dieguez [gl], Andi Chandler [en_GB],
Baurzhan Muftakhidinov [kk], Rūdolfs Mazurs [lv], Guillaume Bernard [fr],
Daniel Mustieles [es], Jiri Grönroos [fi]
46.beta
=======
* apps-menu: Rename Applications to Apps [Allan; !299]
* Misc. bug fixes and cleanups [Florian; !296, !297, !300, !301, !302]
Contributors:
Allan Day, Florian Müllner
Translators:
Gabriel Brand [de], Daniel Rusek [cs], Fran Dieguez [gl],
Aefgh Threenine [th], Vasil Pupkin [be], Artur S0 [ru], Yosef Or Boczko [he],
Sabri Ünal [tr]
46.alpha
========
* workspace-indicator: Fix initial preview visibility [Florian; !280, !292]
* screenshot-window-sizer: Fix cycling between sizes backwards [Florian; !284]
* Add back overview in Classic session [Florian; !287]
* Allow running Classic session headless [Jonas; !289]
* window-list: Fix buttons not being clickable at the screen edge
[Florian; !291]
* Add system-monitor extension [Florian; !277]
* Fixed crash [Florian; !290]
* Misc. bug fixes and cleanups [Florian; !276, !275, !278, !281, !286, !288]
Contributors:
Jonas Ådahl, Florian Müllner
Translators:
Kristjan SCHMIDT [eo], Brage Fuglseth [nb]
45.0
====
Contributors:
Andre Klapper
Translators:
Bruce Cowan [en_GB]
45.rc
=====
* Misc. bug fixes and cleanups [Florian; !267, !224, !272]
Contributors:
Florian Müllner
Translators:
Sabri Ünal [tr], Florentina Musat [ro], A S Alam [pa]
45.beta
=======
* Port extensions to ESM [Florian; !259, !266, !268, !269]
* Misc. bug fixes and cleanups [Florian; !260, !261, !262, !263, !264]
Contributors:
Florian Müllner
Translators:
Efstathios Iosifidis [el]
45.alpha
========
* window-list: Modernize default styling [Alexander; !253]
* Replace classic styling with built-in light style [Florian; !254]
* window-list: Add tooltip for long window titles [Arik; !251]
* light-style: New extension [Florian; !256]
* Misc. bug fixes and cleanups [Florian; !255, !257]
Contributors:
Florian Müllner, Arik W, Alexander Weichart
44.0
====
* Bump version
44.rc
=====
* Bump version
44.beta
=======
* Tweak menu alignment [robxnano; !246]
Contributors:
Florian Müllner, robxnano
Translators:
Vasil Pupkin [be]
43.1
====
* Fixed crash [Florian; !243]
* Misc. bug fixes and cleanups [mowemcfc; !244]
Contributors:
Florian Müllner, mowemcfc
Translators:
Sabri Ünal [tr]
43.0
====
Contributors:
Florian Müllner
Translators:
Pawan Chitrakar [ne], Zurab Kargareteli [ka], Aleksandr Melman [ru]
43.rc
=====
* Misc. bug fixes and cleanups [Florian; !240]
Contributors:
Florian Müllner
43.beta
=======
* Misc. bug fixes and cleanups [Florian; !237, !238]
Contributors:
Florian Müllner
Translators:
Nart Tlisha [ab]
43.alpha
========
Contributors:
Florian Müllner
Translators:
Marco Ciampa [it]
42.3
====
* screenshot-window-sizer: Fix reported sizes on wayland [Florian; !232]
* window-list: Improve touch support [Florian; !233]
Contributors:
Florian Müllner
42.2
====
* native-window-placement: Adjust to gnome-shell 42 changes [Florian; !229]
* window-list: Fix visibility on non-primary monitors [Jason; !230]
Contributors:
Jason Lynch, Florian Müllner
Translators:
Cheng-Chia Tseng [zh_TW]
42.1
====
* Misc. bug fixes and cleanups [Florian; !223, !222, !225]
Contributors:
Florian Müllner
Translators:
Milo Casagrande [it], Rūdolfs Mazurs [lv], Nathan Follens [nl],
Ngọc Quân Trần [vi], Zurab Kargareteli [ka]
42.0
====
Translators:
Philipp Kiemle [de], Balázs Úr [hu], Марко Костић [sr], sicklylife [ja],
Baurzhan Muftakhidinov [kk]
42.rc
=====
* Misc. bug fixes and cleanups [Florian; !215, !218]
Contributors:
Florian Müllner
Translators:
Marek Černocký [cs], Dušan Kazik [sk], Piotr Drąg [pl], Jiri Grönroos [fi],
Luna Jernberg [sv], Alan Mortensen [da], Charles Monzat [fr],
Changwoo Ryu [ko]
42.beta
=======
* workspace-indicator: Fix cancelling editing with Esc [Florian; !208]
* window-list: Update window tracking to avoid missing icons [Florian; !207]
* Use libadwaita for preferences [Florian; !209, !213]
* Adapt to Clutter grab API changes [Florian; !212]
* Misc. bug fixes and cleanups [Jan, Florian; !210, !214]
Contributors:
Jan Beich, Florian Müllner, Naala Nanba
Translators:
Boyuan Yang [zh_CN], Matej Urbančič [sl], Naala Nanba [ab],
Alexander Shopov [bg], Emin Tufan Çetin [tr]
42.alpha
========
* native-window-placement: Fix distorted layout in app grid [Sebastian; !189]
* window-list: Fix on-screen keyboard [Florian; !199]
* Misc. bug fixes and cleanups [Neal; Just; !195, !197]
Contributors:
Piotr Drąg, Neal Gompa, Sebastian Keller, Florian Müllner, Just Perfection
Translators:
Goran Vidović [hr], Sveinn í Felli [is], Yuri Chornoivan [uk],
Fabio Tomat [fur], Quentin PAGÈS [oc], Hugo Carvalho [pt],
Yaron Shahrabani [he], Jordi Mas i Hernandez [ca], MohammadSaleh Kamyab [fa],
Fran Dieguez [gl], Daniel Mustieles [es], Aleksandr Melman [ru],
Aurimas Černius [lt], Asier Sarasua Garmendia [eu], Kukuh Syafaat [id],
Rafael Fontenelle [pt_BR]
41.0
====
* Bump version
41.rc.1
=======
* Fix pre-generating stylesheets in tarball [Florian; !190]
Contributors:
Florian Müllner
41.rc
=====
* window-list: Adapt to overview-on-startup [Florian; !185]
* apps-menu: Use a custom 'toggle-menu' shortcut [Florian; !173]
* Misc. bug fixes and cleanups [Florian; !186]
Contributors:
Florian Müllner
41.beta
=======
* window-list: Extend reactive area of minimap to screen edges [Adam; !171]
* drive-menu: Improve detection of network mounts [Florian; !27, !176]
* Use distinct gettext domain for e.g.o uploads [Florian; #335]
* Misc. bug fixes and cleanups [Florian; !172, !174, !177, !167, !178, !180,
!181, !182, !183]
Contributors:
Marco Trevisan (Treviño), Adam Goode, Florian Müllner
Translators:
Hugo Carvalho [pt], Juliano de Souza Camargo [pt], Alexander Shopov [bg]
40.1
====
* Disable welcome dialog in classic session [Florian; !169]
* windowsNavigator: Adjust to a late gnome-shell change [Florian; !170]
Contributors:
Florian Müllner
Translators:
Ngọc Quân Trần [vi], Anders Jonsson [sv], Carmen Bianca BAKKER [eo],
Pawan Chitrakar [ne], Quentin PAGÈS [oc]
40.0
====
Translators:
Jiri Grönroos [fi]
40.rc
=====
* native-window-placement: Adjust to gnome-shell changes [Florian; !164]
* windows-navigator: Adjust to gnome-shell changes [Florian; !163]
* window-list, workspace-indicator: Only show previews for up to six workspaces
[Florian; !165]
* window-list, workspace-indicator: Improve workspace preview appearance
[Florian; !166]
Contributors:
Florian Müllner
Translators:
Fran Dieguez [gl]
40.beta
=======
* Add tooltips to workspace thumbnails [Florian; !155]
* Drop arrows from top bar menus [Florian; !156]
* drive-menu: Mark mounts that can be unmounted as removable [Michael; !152]
* Remove horizontal-workspaces extension [Florian; !158]
* Adjust to shell overview changes [Florian; !159, !160]
* Fix crashes [Daniel; !157]
* Misc. bug fixes and cleanups [Florian; !154, !161]
Contributors:
Michael Lawton, Florian Müllner, Daniel van Vugt
Translators:
Аляксей [be], A S Alam [pa]
40.alpha.1
==========
* Don't depend on sassc when building from tarball [Florian; !150]
* Port extensions preferences to GTK4 [Florian; !148]
* Misc. bug fixes and cleanups [Florian, Jonas; !149, !151, !153]
Contributors:
Jonas Dreßler, Florian Müllner
40.alpha
========
* window-list: Honor changes in skip-taskbar property [Sergio; !130]
* window-list, workspace-indicator: Adjust to 3.38 changes [Florian; !133]
* window-list, workspace-indicator: Improve previews in workspace thumbs
[Florian; #260, !142]
* auto-move: Improve behavior on multi-monitor setups [Florian; !135]
* windowNavigator: Adjust to 3.38 changes [Thun; #259]
* Misc. bug fixes and cleanups [Florian, Jonas Å, Jordan, Ray; !131, !136,
!137, !140, !141, !144, !146, !145]
Contributors:
Sergio Costas, Florian Müllner, Jordan Petridis, Thun Pin, Ray Strode,
Jonas Ådahl
Translators:
Fabio Tomat [fur], Jordi Mas [ca]
3.38.1
======
Contributors:
Yacine Bouklif, Florian Müllner
Translators:
Yacine Bouklif [kab], Cheng-Chia Tseng [zh_TW], Stas Solovey [ru],
Yosef Or Boczko [he]
3.38.0
======
Translators:
Daniel Korostil [uk]
Balázs Meskó [hu], Alan Mortensen [da], Juliano Camargo [pt], Tim Sabsch [de],
Milo Casagrande [it], Rūdolfs Mazurs [lv]
3.37.92
=======
Translators:
Nathan Follens [nl], Zander Brown [en_GB], Aurimas Černius [lt],
Marek Černocký [cs], Changwoo Ryu [ko], Dušan Kazik [sk]
3.37.91
=======
Contributors:
Florian Müllner
Translators:
Fran Dieguez [gl], Akarshan Biswas [bn_IN], Kukuh Syafaat [id],
Piotr Drąg [pl], Rafael Fontenelle [pt_BR], Jiri Grönroos [fi],
Марко Костић [sr], Goran Vidović [hr]
3.37.90
=======
* Misc. bug fixes and cleanups [Florian, Piotr; !126, !128]
Contributors:
Piotr Drąg, Florian Müllner
Translators:
Fabio Tomat [fur], Efstathios Iosifidis [el], Anders Jonsson [sv],
Asier Sarasua Garmendia [eu], Alexandre Franke [fr]
3.37.3
======
* window-list, native-window-placement: Adjust to shell changes [Florian; !124]
Contributors:
Florian Müllner
Translators:
Jordi Mas [ca], sicklylife [ja], Boyuan Yang [zh_CN],
Baurzhan Muftakhidinov [kk]
3.37.2
======
* window-list, auto-move: Modernize preference dialogs [Florian; !121]
* Adjust to gnome-shell changes [Florian; !122]
Contributors:
Florian Müllner
Translators:
Cheng-Chia Tseng [zh_TW], Yuri Chornoivan [uk], Daniel Mustieles [es],
Emin Tufan Çetin [tr], Danial Behzadi [fa], Daniel Șerbănescu [ro],
Matej Urbančič [sl]
3.37.1
======
* drive-menu: Emphasize eject buttons [Florian; #223]
* user-theme: Add preference dialog [Florian; !117]
* window-list: Fix inconsistent state in preference dialog [Milan; !119]
* workspace-indicator: Overhaul preference dialog [Florian; !120]
* user-theme: Support session mode styles [Florian; !118]
* Misc. bug fixes and cleanups [Florian, Xiaoguang; !113, !106, !114, !116]
Contributors:
Milan Crha, Florian Müllner, Xiaoguang Wang
Translators:
Daniel Korostil [uk], Yosef Or Boczko [he], Kristjan SCHMIDT [eo],
Dz Chen [zh_CN], Danial Behzadi [fa], Yuri Chornoivan [uk],
Anders Jonsson [sv], Daniel Mustieles [es]
3.36.0
======

101
README.md
View File

@@ -1,25 +1,34 @@
<!--
SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
SPDX-FileCopyrightText: 2011 Adam Dingle <adam@yorba.org>
SPDX-FileCopyrightText: 2011 Vamsi Krishna Brahmajosyula <vamsikrishna.brahmajosyula@gmail.com>
SPDX-FileCopyrightText: 2014 Michael Catanzaro <mcatanzaro@gnome.org>
SPDX-FileCopyrightText: 2015 Florian Müllner <fmuellner@gnome.org>
SPDX-FileCopyrightText: 2019 Fabian P. Schmidt <kerel-fs@gmx.de>
SPDX-FileCopyrightText: 2024 Aral Balkan <aral@aralbalkan.com>"""
SPDX-License-Identifier: CC-BY-SA-4.0
-->
# GNOME Shell Extensions
GNOME Shell Extensions is a collection of extensions providing additional
and optional functionality to GNOME Shell.
Since GNOME Shell is not API stable, extensions work only against a very
specific version of the shell, usually the same as this package (see
"configure --version"). The extensions in this package are supported by GNOME
and will be updated to reflect future API changes in GNOME Shell.
The extensions in this package are supported by GNOME and will be updated
to reflect future API changes in GNOME Shell.
The GNOME wiki has more information about [GNOME Shell Extensions][project-page],
as well as some general information about [GNOME Shell][shell-page].
Both the most recent stable release and the previous stable release of
GNOME Shell are actively supported, as well as the current development
branch.
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
Please refer to the [schedule] to see when a new version will be released.
[schedule]: https://release.gnome.org/calendar
## Extensions
* alternate-tab (**OBSOLETE**)
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
This extension is obsolete since GNOME 3.30, see [this blogpost][alternatetab-post]
for further details.
The following is a complete list of extensions that are provided by this
project.
* apps-menu
@@ -28,8 +37,7 @@ Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
* auto-move-windows
Lets you manage your workspaces more easily, assigning a specific workspace to
each application as soon as it creates a window, in a manner configurable with a
GSettings key.
each application as soon as it creates a window.
* drive-menu
@@ -40,6 +48,11 @@ GSettings key.
Changes application icons to always launch a new instance when activated.
* light-style
Changes the default shell style to "light", while still following the
system-wide "dark" preference.
* native-window-placement
An alternative algorithm for layouting the thumbnails in the windows overview, that
@@ -51,11 +64,19 @@ GSettings key.
* screenshot-window-sizer
Adds a shortcut for resizing the focus window to a size that is suitable for GNOME Software screenshots
Adds a shortcut for resizing the focus window to a size that is suitable for GNOME Software screenshots. Ctrl + Alt + s cycles forwards through the available sizes and Ctrl + Alt + Shift + s cycles backwards.
* status-icons
Show (XEmbed) status icons in the top bar.
* system-monitor
Shows system usage information in the top bar.
* user-theme
Loads a shell theme from ~/.themes/<name>/gnome-shell.
Loads a shell theme from `$XDG_DATA_HOME/themes/<name>/gnome-shell`.
* window-list
@@ -69,6 +90,50 @@ GSettings key.
Adds a simple workspace switcher to the top bar.
### Ex-Extensions
Occasionally over the years, some extensions were removed.
The following list is not complete, but limited to cases that
are notable for some reason; either the removal happened
relatively recently, or the extension used to be particularly
popular in the past.
* alternate-tab
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
This extension is obsolete since GNOME 3.30, see [this blogpost][alternatetab-post]
for further details.
[alternatetab-post]: https://blogs.gnome.org/fmuellner/2018/10/11/the-future-of-alternatetab-and-why-you-need-not-worry/
## Reporting bugs
Bugs should be reported to the [issue tracking system][bug-tracker].
The [GNOME handbook][bug-handbook] has useful information for creating
effective issue reports.
Please note that the issue tracker is meant to be used for
actionable issues only.
For support questions, feedback on changes or general discussions,
you can use:
- the [#gnome-shell matrix room][matrix-room]
- the `Desktop` category or `extensions` and `shell` tags on [GNOME Discourse][discourse]
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues
[bug-handbook]: https://handbook.gnome.org/issues/reporting.html
[matrix-room]: https://matrix.to/#/#gnome-shell:gnome.org
[discourse]: https://discourse.gnome.org
## Code of Conduct
All interactions with the project should follow the [Code of Conduct][conduct].
[conduct]: https://conduct.gnome.org/
## License
GNOME Shell Extensions are distributed under the terms of the GNU General
@@ -76,8 +141,4 @@ Public License, version 2 or later. See the [COPYING file][license] for details.
Individual extensions may be licensed under different terms, see each source
file for details.
[project-page]: https://wiki.gnome.org/Projects/GnomeShell/Extensions
[shell-page]: https://wiki.gnome.org/Projects/GnomeShell
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues
[license]: COPYING
[alternatetab-post]: https://blogs.gnome.org/fmuellner/2018/10/11/the-future-of-alternatetab-and-why-you-need-not-worry/

48
REUSE.toml Normal file
View File

@@ -0,0 +1,48 @@
# SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
# SPDX-License-Identifier: CC0-1.0
version = 1
SPDX-PackageName = "gnome-shell-extensions"
SPDX-PackageSupplier = "Florian Müllner <fmuellner@gnome.org>"
SPDX-PackageDownloadLocation = "https://gitlab.gnome.org/GNOME/gnome-shell-extensions"
[[annotations]]
path = "NEWS"
SPDX-FileCopyrightText = [
"2011 Giovanni Campagna <gcampagna@src.gnome.org>",
"2013 Florian Müllner <fmuellner@gnome.org>"
]
SPDX-License-Identifier = "CC-BY-SA-4.0"
[[annotations]]
path = [
"**.json.in",
"**.desktop.in",
"**.gschema.override",
"**.session",
"**.session.conf",
]
SPDX-FileCopyrightText = "Florian Müllner <fmuellner@gnome.org>"
SPDX-License-Identifier = "GPL-2.0-or-later"
[[annotations]]
# managed by translation teams
path = "po/**.po"
SPDX-FileCopyrightText = "GNOME Translation Teams <i18n@gnome.org>"
SPDX-License-Identifier = "GPL-2.0-or-later"
[[annotations]]
# managed by translation teams
path = ["po/LINGUAS", "po/POTFILES.in"]
SPDX-FileCopyrightText = "No rights reserved"
SPDX-License-Identifier = "CC0-1.0"
[[annotations]]
path = "tools/package.json"
SPDX-FileCopyrightText = "2025 Florian Müllner <fmuellner@gnome.org>"
SPDX-License-Identifier = "MIT OR LGPL-2.0-or-later"
[[annotations]]
path = "**package-lock.json"
SPDX-FileCopyrightText = "No rights reserved"
SPDX-License-Identifier = "CC0-1.0"

40
build-aux/check-version.py Executable file
View File

@@ -0,0 +1,40 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: 2021 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
import os, sys
from pathlib import Path
from xml.etree.ElementTree import ElementTree
import argparse
def check_version(version, file, type='news'):
if type == 'news':
line = file.open().readline()
ok = line.startswith(version)
print("{}: {}".format(file, "OK" if ok else "FAILED"))
if not ok:
raise Exception("{} does not start with {}".format(file, version))
elif type == 'metainfo':
query = './releases/release[@version="{}"]'.format(version)
ok = ElementTree(file=file).find(query) is not None
print("{}: {}".format(file, "OK" if ok else "FAILED"))
if not ok:
raise Exception("{} does not contain release {}".format(file, version))
else:
raise Exception('Not implemented')
parser = argparse.ArgumentParser(description='Check release version information.')
parser.add_argument('--type', choices=['metainfo','news'], default='news')
parser.add_argument('version', help='the version to check for')
parser.add_argument('files', nargs='+', help='files to check')
args = parser.parse_args()
distroot = os.environ.get('MESON_DIST_ROOT', './')
try:
for file in args.files:
check_version(args.version, Path(distroot, file), args.type)
except:
sys.exit(1)

View File

@@ -1,2 +0,0 @@
To update the gnome-shell-sass submodule to latest upstream commit:
git submodule update --rebase

View File

@@ -1,178 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg10621"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="calendar-today.svg">
<defs
id="defs10623">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient99561-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<linearGradient
inkscape:collect="always"
id="linearGradient34508-1-3">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop34510-1-9" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop34512-4-5" />
</linearGradient>
<radialGradient
r="42"
fy="30"
fx="51"
cy="30"
cx="51"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
gradientUnits="userSpaceOnUse"
id="radialGradient10592"
xlink:href="#linearGradient34508-1-3"
inkscape:collect="always" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3770"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3001"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3007"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3067"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3072"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient2997"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#d3d3d3"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="8"
inkscape:cx="-55.349829"
inkscape:cy="-31.442864"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2133"
inkscape:window-height="1241"
inkscape:window-x="238"
inkscape:window-y="89"
inkscape:window-maximized="0"
borderlayer="true"
inkscape:showpageshadow="false">
<inkscape:grid
type="xygrid"
id="grid3109"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata10626">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-469.08263,-537.99307)">
<circle
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#555753;fill-opacity:0.23756906;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="path7305"
cx="481.57138"
cy="559.4649"
r="1.5" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -1,262 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-off-intl.svg">
<defs
id="defs10867">
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
id="linearGradient62821-5-8">
<stop
id="stop62823-2-4"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient62852-6-5-3">
<stop
id="stop62854-6-7-6"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0-3" />
<stop
id="stop62860-5-3-9"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect62829-6-8-0"
is_visible="true" />
<linearGradient
id="linearGradient62821-5-8-1">
<stop
id="stop62823-2-4-2"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8-9"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="507.42715"
x2="702.58966"
y1="484.49405"
x1="702.58966"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
gradientUnits="userSpaceOnUse"
id="linearGradient11647"
xlink:href="#linearGradient62821-5-8-1"
inkscape:collect="always" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath65663">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
id="rect65665"
width="96.999924"
height="24.292892"
x="708.71954"
y="406.96973"
rx="3.1139846"
ry="1.9595497"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/content selection/content-selection.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9"
id="linearGradient65582"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5250827,0,0,0.72144839,620.16092,156.4917)"
x1="207.17195"
y1="497.39584"
x2="207.17195"
y2="531.48669" />
<linearGradient
inkscape:collect="always"
id="linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9">
<stop
style="stop-color:#f4f6f4;stop-opacity:1"
offset="0"
id="stop5380-6-1-1-9-3-6-3-6-45-6-4-4-9-9-8-9" />
<stop
style="stop-color:#d7dad7;stop-opacity:1"
offset="1"
id="stop5382-06-3-6-4-2-4-6-8-0-9-6-8-7-7-6-7" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient65584">
<stop
style="stop-color:#f1f1f1;stop-opacity:1"
offset="0"
id="stop65586" />
<stop
style="stop-color:#a7aba7;stop-opacity:0;"
offset="1"
id="stop65588" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9"
id="linearGradient65582-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5250827,0,0,0.72144839,-75.348673,-359.16458)"
x1="207.17195"
y1="497.39584"
x2="207.17195"
y2="531.48669" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient65584"
id="linearGradient65590-6"
x1="716.62506"
y1="537.23358"
x2="716.62506"
y2="535.23358"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0139469,0,0,1.0139469,-705.52354,-521.99915)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="23.565368"
inkscape:cy="19.596892"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:#cecece;fill-opacity:1;stroke:#a7a7a7;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;clip-rule:nonzero;opacity:1;isolation:auto;mix-blend-mode:normal;solid-color:#000000;solid-opacity:1;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient65582);fill-opacity:1;stroke:#a7a7a7;stroke-width:0.97313344;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;color:#000000;clip-rule:nonzero;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62937"
width="29.97398"
height="17.022524"
x="646.55896"
y="485.61429"
rx="1"
ry="1" />
<g
transform="translate(-38.048674,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 647.78241,486.57192 27.73523,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 647.78241,486.57192 27.73523,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g11665"
transform="matrix(0.78906097,0,0,0.78906097,178.78814,111.57844)" />
<path
sodipodi:type="arc"
id="path3016"
sodipodi:cx="50.375"
sodipodi:cy="11.875"
sodipodi:rx="4.625"
sodipodi:ry="4.625"
d="M 55,11.875 A 4.625,4.625 0 0 1 50.375,16.5 4.625,4.625 0 0 1 45.75,11.875 4.625,4.625 0 0 1 50.375,7.25 4.625,4.625 0 0 1 55,11.875 Z"
transform="translate(642.41421,512.02037)"
style="fill:none;stroke:#2e3436;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 9.5 KiB

View File

@@ -1,222 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-off-us.svg">
<defs
id="defs10867">
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
id="linearGradient62821-5-8">
<stop
id="stop62823-2-4"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient62852-6-5-3">
<stop
id="stop62854-6-7-6"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0-3" />
<stop
id="stop62860-5-3-9"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect62829-6-8-0"
is_visible="true" />
<linearGradient
id="linearGradient62821-5-8-1">
<stop
id="stop62823-2-4-2"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8-9"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="507.42715"
x2="702.58966"
y1="484.49405"
x1="702.58966"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
gradientUnits="userSpaceOnUse"
id="linearGradient11647"
xlink:href="#linearGradient62821-5-8-1"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9"
id="linearGradient65582"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5250827,0,0,0.72144839,620.16092,156.4917)"
x1="207.17195"
y1="497.39584"
x2="207.17195"
y2="531.48669" />
<linearGradient
inkscape:collect="always"
id="linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9">
<stop
style="stop-color:#f4f6f4;stop-opacity:1"
offset="0"
id="stop5380-6-1-1-9-3-6-3-6-45-6-4-4-9-9-8-9" />
<stop
style="stop-color:#d7dad7;stop-opacity:1"
offset="1"
id="stop5382-06-3-6-4-2-4-6-8-0-9-6-8-7-7-6-7" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0-6"
effect="spiro" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="78.222729"
inkscape:cy="-3.6620078"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
style="display:inline"
transform="translate(0,30)"
id="g62931">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cecece;fill-opacity:1;fill-rule:nonzero;stroke:#a7a7a7;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient65582);fill-opacity:1;fill-rule:nonzero;stroke:#a7a7a7;stroke-width:0.97313344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62937"
width="29.97398"
height="17.022524"
x="646.55896"
y="485.61429"
rx="1"
ry="1" />
<g
transform="translate(-38.048674,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 647.78241,486.57192 27.73523,0"
inkscape:path-effect="#path-effect62989-8-0-6"
id="path62947"
d="m 647.78241,486.57192 27.73523,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g11665"
transform="matrix(0.78906097,0,0,0.78906097,167.78814,111.57844)">
<text
xml:space="preserve"
style="font-size:12.69556618px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
x="644.46393"
y="533.87158"
id="text62949"
sodipodi:linespacing="125%"
transform="scale(1.0113976,0.98873084)"><tspan
sodipodi:role="line"
id="tspan62951"
x="644.46393"
y="533.87158">OFF</tspan></text>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -1,175 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-on-intl.svg">
<defs
id="defs10867">
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient38513"
id="linearGradient38519"
x1="690"
y1="506.25049"
x2="690"
y2="480.93414"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient38513">
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="0"
id="stop38515" />
<stop
style="stop-color:#6f9ccd;stop-opacity:1"
offset="1"
id="stop38517" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,57.747905,92.132229)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0-8"
effect="spiro" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="9.3225163"
inkscape:cy="-0.1588306"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
style="display:inline"
transform="translate(0,30)"
id="g62931">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient38519);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="display:inline;fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect62937"
width="29.97398"
height="17.022524"
x="676.49646"
y="485.67679"
rx="1"
ry="1" />
<g
transform="translate(-7.9861743,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 677.59874,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0-8"
id="path62947"
d="m 677.59874,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
inkscape:connector-curvature="0"
id="path4444"
d="m 661.91421,522.09451 0,7"
style="fill:#3465a4;stroke:#3465a4;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;fill-opacity:1;fill-rule:nonzero;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 18,7.96875 0,7"
id="path3922"
inkscape:connector-curvature="0"
transform="translate(643.91421,513.06326)" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -1,209 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-on-us.svg">
<defs
id="defs10867">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,57.747905,92.132229)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath65663">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
id="rect65665"
width="96.999924"
height="24.292892"
x="708.71954"
y="406.96973"
rx="3.1139846"
ry="1.9595497"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/content selection/content-selection.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient38513"
id="linearGradient38519"
x1="690"
y1="506.25049"
x2="690"
y2="480.93414"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient38513">
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="0"
id="stop38515" />
<stop
style="stop-color:#6f9ccd;stop-opacity:1"
offset="1"
id="stop38517" />
</linearGradient>
<linearGradient
gradientTransform="translate(-644,-483)"
inkscape:collect="always"
xlink:href="#linearGradient38513"
id="linearGradient38519-3"
x1="690"
y1="506.25049"
x2="690"
y2="480.93414"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="20.775745"
inkscape:cy="7.0434022"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:url(#linearGradient38519);fill-opacity:1;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect62937"
width="29.97398"
height="17.022524"
x="676.49646"
y="485.67679"
rx="1"
ry="1" />
<g
transform="translate(-7.9861743,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 677.59874,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 677.59874,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<text
transform="scale(1.0113976,0.98873084)"
sodipodi:linespacing="125%"
id="text62949-7"
y="534.96918"
x="646.71399"
style="font-size:10.01104736px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#3465a4;fill-opacity:1;stroke:none;display:inline;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold;"
xml:space="preserve"><tspan
y="534.96918"
x="646.71399"
id="tspan62951-7"
sodipodi:role="line">ON</tspan></text>
<text
transform="scale(1.0113976,0.98873084)"
sodipodi:linespacing="125%"
id="text62949"
y="533.94482"
x="646.71399"
style="font-size:10.01104736px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
xml:space="preserve"><tspan
y="533.94482"
x="646.71399"
id="tspan62951"
sodipodi:role="line">ON</tspan></text>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -1,10 +1,10 @@
{
"parentMode": "user",
"stylesheetName": "gnome-classic.css",
"hasOverview": false,
"colorScheme": "force-light",
"showWelcomeDialog": false,
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
"panel": { "left": ["appMenu"],
"panel": { "left": ["activities"],
"center": [],
"right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"]
"right": ["screenRecording", "screenSharing", "dwellClick", "a11y", "keyboard", "dateMenu", "quickSettings"]
}
}

View File

@@ -1,5 +0,0 @@
@import url("gnome-classic.css");
stage {
-st-icon-style: symbolic;
}

View File

@@ -1,7 +1,9 @@
[Desktop Entry]
Name=GNOME Classic
Comment=This session logs you into GNOME Classic
Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session --session gnome-classic
Exec=gnome-session --session gnome-classic
TryExec=gnome-session
Type=Application
DesktopNames=GNOME-Classic;GNOME;
X-GDM-SessionRegisters=true
X-GDM-CanRunHeadless=true

View File

@@ -1,96 +0,0 @@
/* Use the gnome-shell theme, but with light colors */
$variant: 'light';
@import "gnome-shell-sass/_colors"; //use gtk colors
@import "gnome-shell-sass/_drawing";
@import "gnome-shell-sass/_common";
@import "gnome-shell-sass/_widgets";
/* Overrides */
#panel, #panel.solid {
font-weight: normal;
background-color: $bg_color;
background-gradient-direction: vertical;
background-gradient-end: darken($bg_color,5%);
border-top-color: #666; /* we don't support non-uniform border-colors and
use the top border color for any border, so we
need to set it even if all we want is a bottom
border */
border-bottom: 1px solid #666;
app-icon-bottom-clip: 0px;
&:overview {
background-color: #000;
background-gradient-end: #000;
border-top-color: #000;
border-bottom: 1px solid #000;
.panel-button { color: #fff; }
}
.panel-button {
-natural-hpadding: 8px;
-minimum-hpadding: 4px;
font-weight: normal;
color: $fg_color;
text-shadow: none;
&:hover {
color: lighten($fg_color,10%);
text-shadow: none;
& .system-status-icon { icon-shadow: none; }
}
&:active, &:overview, &:focus, &:checked {
// Trick due to St limitations. It needs a background to draw
// a box-shadow
background-color: $selected_bg_color;
color: $selected_fg_color;
box-shadow: none;
& > .system-status-icon { icon-shadow: none; }
}
.app-menu-icon { width: 0; height: 0; margin: 0; } // shell's display:none; :D
.system-status-icon {
icon-shadow: none;
}
}
.panel-corner,
.panel-corner:active,
.panel-corner:overview,
.panel-corner:focus {
-panel-corner-radius: 0;
}
&.lock-screen,
&.unlock-screen,
&.login-screen {
background-color: transparentize($bg_color, 0.5);
background-gradient-start: transparentize($bg_color, 0.5);
background-gradient-end: transparentize($bg_color, 0.5);
border-bottom: none;
.panel-button { color: $osd_fg_color; }
}
.popup-menu-arrow { width: 0; height: 0; } // shell's display: none;
}
#appMenu {
padding: 0 8px 0 8px;
spinner-image: url("classic-process-working.svg");
}
.tile-preview-left.on-primary,
.tile-preview-right.on-primary,
.tile-preview-left.tile-preview-right.on-primary {
/* keep in sync with -panel-corner-radius */
border-radius: 0;
}
@each $v in us, intl {
.toggle-switch-#{$v} {
background-image: url("classic-toggle-off-#{$v}.svg");
&:checked { background-image: url("classic-toggle-on-#{$v}.svg"); }
}
}
.calendar-day-with-events {
background-image: url("calendar-today.svg");
}

View File

@@ -0,0 +1,2 @@
[GNOME Session]
Name=GNOME Classic

View File

@@ -0,0 +1,3 @@
[Unit]
Requires=gnome-session-services.target
Requires=org.gnome.Shell@classic.service

View File

@@ -1,3 +0,0 @@
[GNOME Session]
Name=GNOME Classic
RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;

View File

@@ -1,22 +1,21 @@
sessions = [
['gnome-classic.session.desktop.in', sessiondir],
['gnome-classic.desktop.in', xsessiondir]
]
foreach s : sessions
name_array = s[0].split('.')
i18n.merge_file('',
input: s[0],
output: '.'.join([name_array[0], name_array[1]]),
po_dir: '../po',
install: true,
install_dir: s[1],
type: 'desktop'
)
endforeach
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
session_desktop = 'gnome-classic.desktop'
i18n.merge_file(
input: session_desktop + '.in',
output: session_desktop,
po_dir: '../po',
install: true,
install_dir: wlsessiondir,
type: 'desktop',
)
classic_uuids = []
foreach e : classic_extensions
classic_uuids += e + uuid_suffix
classic_uuids += e + uuid_suffix
endforeach
mode_conf = configuration_data()
@@ -27,37 +26,18 @@ configure_file(
input: mode_file + '.in',
output: mode_file,
configuration: mode_conf,
install_dir: modedir
install_dir: modedir,
)
theme_sources = files(
'gnome-shell-sass/_colors.scss',
'gnome-shell-sass/_common.scss',
'gnome-shell-sass/_drawing.scss',
'gnome-shell-sass/_high-contrast-colors.scss'
)
theme_data = [
'calendar-today.svg',
'classic-process-working.svg',
'classic-toggle-off-intl.svg',
'classic-toggle-off-us.svg',
'classic-toggle-on-intl.svg',
'classic-toggle-on-us.svg',
'gnome-classic-high-contrast.css'
]
style = 'gnome-classic'
custom_target(style + '.css',
input: style + '.scss',
output: style + '.css',
depend_files: theme_sources,
command: [sassc, '-a', '@INPUT@', '@OUTPUT@'],
install: true,
install_dir: themedir
)
install_data(theme_data, install_dir: themedir)
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
install_data(classic_override, install_dir: schemadir)
install_data(
'gnome-classic.session',
install_dir: sessiondir,
)
install_data(
'gnome-classic.session.conf',
install_dir: systemd_userunitdir / 'gnome-session@gnome-classic.target.d',
)

1133
debian/changelog vendored Normal file

File diff suppressed because it is too large Load Diff

289
debian/control vendored Normal file
View File

@@ -0,0 +1,289 @@
Source: gnome-shell-extensions
Standards-Version: 4.7.3
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Uploaders: Jeremy Bícha <jbicha@ubuntu.com>,
Laurent Bigonville <bigon@debian.org>,
Marco Trevisan (Treviño) <marco@ubuntu.com>
Section: gnome
Build-Depends: debhelper-compat (= 13),
dh-sequence-gnome,
dpkg-build-api (= 1),
libglib2.0-bin,
meson (>= 1.1.0),
sassc
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell-extensions
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell-extensions.git
Homepage: https://wiki.gnome.org/Projects/GnomeShell/Extensions
Package: gnome-shell-extensions
Architecture: all
Section: oldlibs
Depends: gnome-shell-extension-apps-menu,
gnome-shell-extension-auto-move-windows,
gnome-shell-extension-drive-menu,
gnome-shell-extension-launch-new-instance,
gnome-shell-extension-light-style,
gnome-shell-extension-native-window-placement,
gnome-shell-extension-places-menu,
gnome-shell-extension-screenshot-window-sizer,
gnome-shell-extension-status-icons,
gnome-shell-extension-system-monitor,
gnome-shell-extension-user-theme,
gnome-shell-extension-window-list,
gnome-shell-extension-windows-navigator,
gnome-shell-extension-workspace-indicator,
gnome-shell-extensions-common,
${misc:Depends}
Recommends: gnome-classic
Description: Extensions to extend functionality of GNOME Shell
GNOME Shell is extensible using extensions. This package contains
all the official GNOME Shell extensions.
.
This is an empty transitional package and will likely be removed
in the future.
Package: gnome-classic
Architecture: all
Depends: fonts-adwaita,
fonts-cantarell,
gnome-session,
gnome-session-bin (>= 46),
gnome-session-common (>= 46),
gnome-shell-extension-apps-menu,
gnome-shell-extension-launch-new-instance,
gnome-shell-extension-places-menu,
gnome-shell-extension-window-list,
xdg-desktop-portal-gnome,
${misc:Depends}
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: Classic version of the GNOME desktop
This package contains the required components for the GNOME Classic
session, based on the GNOME Shell. It can be started from a display
manager such as GDM, and requires 3D acceleration to work properly.
.
The GNOME Shell provides core interface functions like switching
windows, launching applications or see your notifications. It takes
advantage of the capabilities of modern graphics hardware and
introduces innovative user interface concepts to provide a
delightful and easy to use experience. GNOME Shell is the defining
technology of the GNOME user experience.
.
GNOME Classic provides an alternative version of GNOME Shell that uses
more traditional design elements.
Package: gnome-shell-extensions-common
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends}
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: common files for official GNOME Shell extensions
GNOME Shell is extensible using extensions. This package contains
common data files such as translations for the official GNOME Shell
extensions.
Package: gnome-shell-extension-apps-menu
Architecture: all
Depends: gir1.2-gmenu-3.0,
gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: Category based app menu for GNOME Shell
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to add a category based Apps menu
similar to what is found in classic desktops.
.
This package is part of the GNOME Classic default set of extensions.
Package: gnome-shell-extension-auto-move-windows
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to move apps to specific workspaces
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to move apps to specific workspaces when
they create windows.
Package: gnome-shell-extension-drive-menu
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: Removable drive status menu for GNOME Shell
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to add a status menu for accessing and
unmounting removable devices.
Package: gnome-shell-extension-launch-new-instance
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to launch new instances of apps
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to always launch a new instance of an
app when clicking in the Dash or the application view.
.
This package is part of the GNOME Classic default set of extensions.
Package: gnome-shell-extension-light-style
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to switch the Shell to light style
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to switch GNOME Shell to use a light
style instead of the default.
Package: gnome-shell-extension-native-window-placement
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to arrange windows in a more compact way
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to arrange windows in the GNOME Shell
overview in a more compact way.
Package: gnome-shell-extension-places-menu
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: Places menu for GNOME Shell
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to add a menu for quickly navigating to
places in the system, similar to the menu in GNOME 2.
.
This package is part of the GNOME Classic default set of extensions.
Package: gnome-shell-extension-screenshot-window-sizer
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to resize windows for GNOME Software screenshots
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to resize windows to the recommended
size for creating screenshots for use in the GNOME Software app.
Package: gnome-shell-extension-status-icons
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Description: GNOME Shell extension to show some status icons in the top bar
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to show some status icons in the top bar.
Package: gnome-shell-extension-system-monitor
Architecture: all
Depends: gir1.2-gtop-2.0,
gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: Display system information in GNOME Shell status bar
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to display system information such as
memory usage, cpu usage, network rates and more in the top bar.
Package: gnome-shell-extension-user-theme
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to load alternative GNOME Shell themes
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to allow switching to alternative
GNOME Shell themes.
Package: gnome-shell-extension-window-list
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to display a window list
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to display a window list at the bottom
of the screen.
.
This package is part of the GNOME Classic default set of extensions.
Package: gnome-shell-extension-windows-navigator
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: GNOME Shell extension to allow keyboard selection in overlay mode
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to allow keyboard selections of windows
and workspaces in overlay mode. Ctrl+number selects a workspace and
Alt+number selects a window.
Package: gnome-shell-extension-workspace-indicator
Architecture: all
Depends: gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gnome-shell-extensions-common (= ${source:Version}),
${misc:Depends}
Recommends: gnome-shell-extension-prefs | gnome-shell-extension-manager
Breaks: gnome-shell-extensions (<< 47)
Replaces: gnome-shell-extensions (<< 47)
Description: Workspace indicator for GNOME Shell
GNOME Shell is extensible using extensions. This package contains an
official GNOME Shell extension to add an indicator to the panel to
show what workspace you are using and allow you to switch to a different
workspace.

189
debian/copyright vendored Normal file
View File

@@ -0,0 +1,189 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://download.gnome.org/sources/gnome-shell-extensions/
Files: *
Copyright: 2011-2013 Giovanni Campagna
2013-2024 Florian Müllner
2011 Iranian Free Software Users Group (IFSUG.org) translation team
2021-2022 Alexander Shopov
2011-2023 Red Hat, Inc
2013 Rosetta Contributors and Canonical Ltd
Free Software Foundation, Inc
Rūdofls Mazurs
Ville-Pekka Vainio
License: GPL-2+
Files: debian/*
Copyright: 2011 Victor Seva <linuxmaniac@torreviejawireless.org>
2011 Bilal Akhtar <bilalakhtar@ubuntu.com>
License: GPL-2+
Files: extensions/apps-menu/extension.js
Copyright: 2011 Giovanni Campagna
2011 Vamsi Krishna Brahmajosyula
2013 Debarshi Ray
2013 Florian Müllner
License: GPL-2+
Files: extensions/auto-move-windows/extension.js
Copyright: 2011 Alessandro Crismani
2011 Giovanni Campagna
2014 Florian Müllner
License: GPL-2+
Files: extensions/launch-new-instance/extension.js
Copyright: 2013 Florian Müllner
2013 Gabriel Rossetti
License: GPL-2+
Files: extensions/native-window-placement/extension.js
Copyright: 2011 Giovanni Campagna
2011 Stefano Facchini
2011 Wepmaschda
2015 Florian Müllner
License: GPL-2+
Files: extensions/places-menu/extension.js
Copyright: 2011 Giovanni Campagna
2011 Vamsi Krishna Brahmajosyula
2013 Florian Müllner
2016 Rémy Lefevre
License: GPL-2+
Files: extensions/places-menu/placeDisplay.js
Copyright: 2012 Giovanni Campagna
2013 Debarshi Ray
2015 Florian Müllner
2016 Rémy Lefevre
2017 Christian Kellner
License: GPL-2+
Files: extensions/screenshot-window-sizer/extension.js
Copyright: 2013 Owen Taylor
2013 Richard Hughes
2014 Florian Müllner
2016 Will Thompson
2017 Florian Müllner
2019 Adrien Plazas
2019 Willy Stadnick
License: GPL-2+
Files: extensions/status-icons/extension.js
Copyright: 2018 Adel Gadllah
2018 Florian Müllner
License: GPL-2+
Files: extensions/system-monitor/icons/*
Copyright: GNOME Design Team Icon Development Kit
License: CC0-1.0
Files: extensions/user-theme/extension.js
Copyright: 2011 Elad Alfassa
2011 Giovanni Campagna
2011 John Stowers
2014 Florian Müllner
License: GPL-2+
Files: extensions/window-list/prefs.js
Copyright: 2013 Florian Müllner
2014 Sylvain Pasche
License: GPL-2+
Files: extensions/window-list/stylesheet-light.css
extensions/workspace-indicator/stylesheet-light.css
Copyright: 2011-2013 Giovanni Campagna
2013-2024 Florian Müllner
License: GPL-2+
Files: extensions/windowsNavigator/extension.js
Copyright: 2011 Giovanni Campagna
2011, Maxim Ermilov
2017, Florian Müllner
2019, Marco Trevisan (Treviño)
2020, Thun Pin
License: GPL-2+
Files: extensions/windowsNavigator/stylesheet.css
Copyright: 2011 Maxim Ermilov
License: GPL-2+
Files: extensions/workspace-indicator/stylesheet-dark.css
Copyright: 2011 Erick Pérez Castellanos
2019 Florian Müllner
License: GPL-2+
Files: tools/run-eslint.sh
Copyright: 2020 Philip Chimento
2025 Florian Müllner
License: Expat or LGPL-2+
Files: tools/eslint.config.js
Copyright: 2020 Philip Chimento
2025 Florian Müllner
License: Expat or LGPL-2+
License: CC0-1.0
To the extent possible under law, the author(s) have dedicated all copyright
and related and neighboring rights to this software to the public domain
worldwide. This software is distributed without any warranty.
.
You should have received a copy of the CC0 Public Domain Dedication along with
this software. If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
.
On Debian systems, the complete text of the CC0 1.0 Universal license can be
found in "/usr/share/common-licenses/CC0-1.0".
License: Expat
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
.
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
License: GPL-2+
This package is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
.
This package is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
License: LGPL-2+
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
.
This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
for more details.
.
You should have received a copy of the GNU Lesser General Public
License along with this library. If not, see <https://www.gnu.org/licenses/>.
Comment:
The oldest version of the Lesser General Public License under that name
was version 2.1.
.
On Debian systems, the full text of the GNU Lesser General Public License
version 2.1 can be found in the file /usr/share/common-licenses/LGPL-2.1,
and its predecessor the GNU Library General Public License version 2 can
be found in /usr/share/common-licenses/LGPL-2.

2
debian/docs vendored Normal file
View File

@@ -0,0 +1,2 @@
NEWS
README.md

17
debian/gbp.conf vendored Normal file
View File

@@ -0,0 +1,17 @@
[DEFAULT]
pristine-tar = True
debian-branch = debian/latest
upstream-branch = upstream/latest
[buildpackage]
sign-tags = True
[dch]
multimaint-merge = True
[import-orig]
postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
upstream-vcs-tag = %(version%~%.)s
[pq]
patch-numbers = False

6
debian/gnome-classic.install vendored Normal file
View File

@@ -0,0 +1,6 @@
debian/local/gnome-session-classic usr/bin
usr/lib/systemd/user/gnome-session@gnome-classic.target.d/gnome-classic.session.conf
usr/share/glib-2.0/schemas/00_org.gnome.shell.extensions.classic.gschema.override
usr/share/gnome-session/sessions/gnome-classic.session
usr/share/gnome-shell/modes/classic.json
usr/share/wayland-sessions

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.apps-menu.gschema.xml
usr/share/gnome-shell/extensions/apps-menu@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.auto-move-windows.gschema.xml
usr/share/gnome-shell/extensions/auto-move-windows@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1 @@
usr/share/gnome-shell/extensions/drive-menu@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1 @@
usr/share/gnome-shell/extensions/launch-new-instance@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1 @@
usr/share/gnome-shell/extensions/light-style@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.native-window-placement.gschema.xml
usr/share/gnome-shell/extensions/native-window-placement@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1 @@
usr/share/gnome-shell/extensions/places-menu@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml
usr/share/gnome-shell/extensions/screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1 @@
usr/share/gnome-shell/extensions/status-icons@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml
usr/share/gnome-shell/extensions/system-monitor@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.user-theme.gschema.xml
usr/share/gnome-shell/extensions/user-theme@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.window-list.gschema.xml
usr/share/gnome-shell/extensions/window-list@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1 @@
usr/share/gnome-shell/extensions/windowsNavigator@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1,2 @@
usr/share/glib-2.0/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml
usr/share/gnome-shell/extensions/workspace-indicator@gnome-shell-extensions.gcampax.github.com

View File

@@ -0,0 +1 @@
usr/share/locale

2
debian/local/gnome-session-classic vendored Executable file
View File

@@ -0,0 +1,2 @@
#! /bin/sh
env GNOME_SHELL_SESSION_MODE=classic gnome-session "$@"

0
debian/patches/series vendored Normal file
View File

9
debian/rules vendored Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_configure:
dh_auto_configure -- \
-Dextension_set=all \
-Dclassic_mode=true

1
debian/source/format vendored Normal file
View File

@@ -0,0 +1 @@
3.0 (quilt)

5
debian/upstream/metadata vendored Normal file
View File

@@ -0,0 +1,5 @@
---
Bug-Database: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues
Bug-Submit: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/new
Repository: https://gitlab.gnome.org/GNOME/gnome-shell-extensions.git
Repository-Browse: https://gitlab.gnome.org/GNOME/gnome-shell-extensions

4
debian/watch vendored Normal file
View File

@@ -0,0 +1,4 @@
version=4
opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \
https://download.gnome.org/sources/@PACKAGE@/cache.json \
[\d.]+/@PACKAGE@-([\d.]+\.?(?:alpha|beta|rc)?[\d.]*)@ARCHIVE_EXT@

1
eslint.config.js Symbolic link
View File

@@ -0,0 +1 @@
tools/eslint.config.js

View File

@@ -1,37 +1,53 @@
#!/bin/sh
#!/bin/bash
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
srcdir=`dirname $0`
srcdir=`(cd $srcdir && pwd)`
builddir=`mktemp -p $srcdir -d _build.XXXXXX` || exit 1
installdir=`mktemp -p $srcdir -d _install.XXXXXX` || exit 1
destdir=`mktemp -p $srcdir -d _dest.XXXXXX` || exit 1
meson setup --prefix=$installdir -Dextension_set=all $srcdir $builddir
ninja -C$builddir install
meson setup --prefix=/usr -Dextension_set=all $srcdir $builddir
meson install --destdir $destdir -C $builddir
rm -rf $srcdir/zip-files
mkdir $srcdir/zip-files
extensiondir=$installdir/share/gnome-shell/extensions
schemadir=$installdir/share/glib-2.0/schemas
localedir=$installdir/share/locale
extensiondir=$destdir/usr/share/gnome-shell/extensions
schemadir=$destdir/usr/share/glib-2.0/schemas
for f in $extensiondir/*; do
name=`basename ${f%%@*}`
uuid=$name@gnome-shell-extensions.gcampax.github.com
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
cp $srcdir/NEWS $srcdir/COPYING $f
cp -r $localedir $f
olddomain=gnome-shell-extensions
newdomain=gnome-shell-extension-$name
sed -i "/gettext-domain/ s:$olddomain:$newdomain:" $f/metadata.json
if [ -f $schema ]; then
mkdir $f/schemas
cp $schema $f/schemas;
glib-compile-schemas $f/schemas
xgettext --from-code=UTF-8 --output-dir=$builddir --output=$name.pot $f/*.js
if [ -f $builddir/$name.pot ]; then
mkdir $f/po
for l in $(<$srcdir/po/LINGUAS); do
msgmerge --quiet --output-file=$f/po/$l.po \
$srcdir/po/$l.po $builddir/$name.pot
done
fi
(cd $f && zip -rmq $srcdir/zip-files/$uuid.shell-extension.zip .)
cp $srcdir/NEWS $srcdir/COPYING $f
sources=(NEWS COPYING $(cd $f; ls *.js *.css 2>/dev/null))
[ -d $f/icons ] && sources+=(icons)
[ -f $schema ] || unset schema
gnome-extensions pack ${sources[@]/#/--extra-source=} \
${schema:+--schema=$schema} --out-dir=$srcdir/zip-files $f
done
rm -rf $builddir
rm -rf $installdir
rm -rf $destdir

0
extensions/.lock Normal file
View File

View File

@@ -1,19 +1,28 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init enable disable */
// SPDX-FileCopyrightText: 2011 Vamsi Krishna Brahmajosyula <vamsikrishna.brahmajosyula@gmail.com>
// SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
// SPDX-FileCopyrightText: 2013 Debarshi Ray <debarshir@gnome.org>
// SPDX-FileCopyrightText: 2013 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
const {
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St,
} = imports.gi;
const Signals = imports.signals;
import Atk from 'gi://Atk';
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GMenu from 'gi://GMenu';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
import Meta from 'gi://Meta';
import Shell from 'gi://Shell';
import St from 'gi://St';
import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const appSys = Shell.AppSystem.get_default();
@@ -25,17 +34,21 @@ const NAVIGATION_REGION_OVERSHOOT = 50;
Gio._promisify(Gio._LocalFilePrototype, 'query_info_async', 'query_info_finish');
Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish');
var ApplicationMenuItem = GObject.registerClass(
class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(button, app) {
super._init();
static {
GObject.registerClass(this);
}
constructor(button, app) {
super();
this._app = app;
this._button = button;
this._iconBin = new St.Bin();
this.add_child(this._iconBin);
this._icon = this.getDragActor();
this._icon.style_class = 'icon-dropshadow';
this.add_child(this._icon);
let appLabel = new St.Label({
const appLabel = new St.Label({
text: app.get_name(),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER,
@@ -43,23 +56,17 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
this.add_child(appLabel);
this.label_actor = appLabel;
let textureCache = St.TextureCache.get_default();
let iconThemeChangedId = textureCache.connect('icon-theme-changed',
this._updateIcon.bind(this));
this.connect('destroy', () => {
textureCache.disconnect(iconThemeChangedId);
});
this._updateIcon();
this._delegate = this;
let draggable = DND.makeDraggable(this);
const draggable = DND.makeDraggable(this);
let maybeStartDrag = draggable._maybeStartDrag;
const maybeStartDrag = draggable._maybeStartDrag;
draggable._maybeStartDrag = event => {
if (this._dragEnabled)
return maybeStartDrag.call(draggable, event);
return false;
};
this.connect('notify::active', this._onActiveChanged.bind(this));
}
activate(event) {
@@ -71,10 +78,11 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
Main.overview.hide();
}
setActive(active, params) {
if (active)
this._button.scrollToButton(this);
super.setActive(active, params);
_onActiveChanged() {
if (!this.active)
return;
this._button.scrollToButton(this);
}
setDragEnabled(enabled) {
@@ -86,20 +94,17 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
}
getDragActorSource() {
return this._iconBin;
return this._icon;
}
}
_updateIcon() {
let icon = this.getDragActor();
icon.style_class = 'icon-dropshadow';
this._iconBin.set_child(icon);
}
});
var CategoryMenuItem = GObject.registerClass(
class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(button, category) {
super._init();
static {
GObject.registerClass(this);
}
constructor(button, category) {
super();
this._category = category;
this._button = button;
@@ -112,7 +117,10 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
else
name = _('Favorites');
this.add_child(new St.Label({ text: name }));
const label = new St.Label({text: name});
this.add_child(label);
this.actor.label_actor = label;
this.connect('motion-event', this._onMotionEvent.bind(this));
this.connect('notify::active', this._onActiveChanged.bind(this));
}
@@ -124,7 +132,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
}
_isNavigatingSubmenu([x, y]) {
let [posX, posY] = this.get_transformed_position();
const [posX, posY] = this.get_transformed_position();
if (this._oldX === -1) {
this._oldX = x;
@@ -132,8 +140,8 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
return true;
}
let deltaX = Math.abs(x - this._oldX);
let deltaY = Math.abs(y - this._oldY);
const deltaX = Math.abs(x - this._oldX);
const deltaY = Math.abs(y - this._oldY);
this._oldX = x;
this._oldY = y;
@@ -163,7 +171,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
// Ensure that the point P always lies below line AC so that we can
// only check for triangle ABC.
if (posY > y) {
let offset = posY - y;
const offset = posY - y;
y = posY + this.height + offset;
}
@@ -181,27 +189,31 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
}
_onMotionEvent(actor, event) {
let device = event.get_device();
if (!device.get_grabbed_actor()) {
if (!this._grab) {
this._oldX = -1;
this._oldY = -1;
device.grab(this);
const grab = global.stage.grab(this);
if (grab.get_seat_state() !== Clutter.GrabState.NONE)
this._grab = grab;
else
grab.dismiss();
}
this.hover = true;
if (this._isNavigatingSubmenu(event.get_coords()))
return true;
return Clutter.EVENT_STOP;
this._oldX = -1;
this._oldY = -1;
this.hover = false;
device.ungrab();
this._grab?.dismiss();
delete this._grab;
let source = event.get_source();
if (source instanceof St.Widget)
source.sync_hover();
const targetActor = global.stage.get_event_actor(event);
if (targetActor instanceof St.Widget)
targetActor.sync_hover();
return false;
return Clutter.EVENT_PROPAGATE;
}
_onActiveChanged() {
@@ -211,7 +223,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
this._button.selectCategory(this._category);
this._button.scrollToCatButton(this);
}
});
}
class ApplicationsMenu extends PopupMenu.PopupMenu {
constructor(sourceActor, arrowAlignment, arrowSide, button) {
@@ -230,13 +242,15 @@ class ApplicationsMenu extends PopupMenu.PopupMenu {
}
}
class DesktopTarget {
class DesktopTarget extends EventEmitter {
constructor() {
super();
this._desktop = null;
this._desktopDestroyedId = 0;
this._windowAddedId =
global.window_group.connect('actor-added',
global.window_group.connect('child-added',
this._onWindowAdded.bind(this));
global.get_window_actors().forEach(a => {
@@ -258,9 +272,7 @@ class DesktopTarget {
_setDesktop(desktop) {
if (this._desktop) {
this._desktop.disconnect(this._desktopDestroyedId);
this._desktopDestroyedId = 0;
this._desktop.disconnectObject(this);
delete this._desktop._delegate;
}
@@ -268,9 +280,9 @@ class DesktopTarget {
this.emit('desktop-changed');
if (this._desktop) {
this._desktopDestroyedId = this._desktop.connect('destroy', () => {
this._desktop.connectObject('destroy', () => {
this._setDesktop(null);
});
}, this);
this._desktop._delegate = this;
}
}
@@ -282,15 +294,15 @@ class DesktopTarget {
}
async _markTrusted(file) {
let modeAttr = Gio.FILE_ATTRIBUTE_UNIX_MODE;
let trustedAttr = 'metadata::trusted';
let queryFlags = Gio.FileQueryInfoFlags.NONE;
let ioPriority = GLib.PRIORITY_DEFAULT;
const modeAttr = Gio.FILE_ATTRIBUTE_UNIX_MODE;
const trustedAttr = 'metadata::trusted';
const queryFlags = Gio.FileQueryInfoFlags.NONE;
const ioPriority = GLib.PRIORITY_DEFAULT;
try {
let info = await file.query_info_async(modeAttr, queryFlags, ioPriority, null);
let mode = info.get_attribute_uint32(modeAttr) | 0o100;
const mode = info.get_attribute_uint32(modeAttr) | 0o100;
info.set_attribute_uint32(modeAttr, mode);
info.set_attribute_string(trustedAttr, 'yes');
await file.set_attributes_async(info, queryFlags, ioPriority, null);
@@ -310,15 +322,12 @@ class DesktopTarget {
}
destroy() {
if (this._windowAddedId)
global.window_group.disconnect(this._windowAddedId);
this._windowAddedId = 0;
global.window_group.disconnectObject(this);
this._setDesktop(null);
}
handleDragOver(source, _actor, _x, _y, _time) {
let appInfo = this._getSourceAppInfo(source);
const appInfo = this._getSourceAppInfo(source);
if (!appInfo)
return DND.DragMotionResult.CONTINUE;
@@ -326,16 +335,16 @@ class DesktopTarget {
}
acceptDrop(source, _actor, _x, _y, _time) {
let appInfo = this._getSourceAppInfo(source);
const appInfo = this._getSourceAppInfo(source);
if (!appInfo)
return false;
this.emit('app-dropped');
let desktop = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP);
const desktop = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP);
let src = Gio.File.new_for_path(appInfo.get_filename());
let dst = Gio.File.new_for_path(GLib.build_filenamev([desktop, src.get_basename()]));
const src = Gio.File.new_for_path(appInfo.get_filename());
const dst = Gio.File.new_for_path(GLib.build_filenamev([desktop, src.get_basename()]));
try {
// copy_async() isn't introspectable :-(
@@ -348,12 +357,28 @@ class DesktopTarget {
return true;
}
}
Signals.addSignalMethods(DesktopTarget.prototype);
let ApplicationsButton = GObject.registerClass(
class MainLayout extends Clutter.BoxLayout {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_height(container, forWidth) {
const [mainChild] = container;
const [minHeight, natHeight] =
mainChild.get_preferred_height(forWidth);
return [minHeight, natHeight + MENU_HEIGHT_OFFSET];
}
}
class ApplicationsButton extends PanelMenu.Button {
_init() {
super._init(1.0, null, false);
static {
GObject.registerClass(this);
}
constructor() {
super(1.0, null, false);
this.setMenu(new ApplicationsMenu(this, 1.0, St.Side.TOP, this));
Main.panel.menuManager.addMenu(this.menu);
@@ -363,29 +388,27 @@ class ApplicationsButton extends PanelMenu.Button {
// role ATK_ROLE_MENU like other elements of the panel.
this.accessible_role = Atk.Role.LABEL;
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._label = new St.Label({
text: _('Applications'),
text: _('Apps'),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
hbox.add_child(this._label);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.add_actor(hbox);
this.add_child(this._label);
this.name = 'panelApplications';
this.label_actor = this._label;
this._showingId = Main.overview.connect('showing', () => {
this.add_accessible_state(Atk.StateType.CHECKED);
});
this._hidingId = Main.overview.connect('hiding', () => {
this.remove_accessible_state(Atk.StateType.CHECKED);
});
Main.layoutManager.connect('startup-complete',
this._setKeybinding.bind(this));
this._setKeybinding();
Main.overview.connectObject(
'showing', () => this.add_accessible_state(Atk.StateType.CHECKED),
'hiding', () => this.remove_accessible_state(Atk.StateType.CHECKED),
this);
Main.wm.addKeybinding(
'apps-menu-toggle-menu',
Extension.lookupByURL(import.meta.url).getSettings(),
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
() => this.menu.toggle());
this._desktopTarget = new DesktopTarget();
this._desktopTarget.connect('app-dropped', () => {
@@ -397,16 +420,16 @@ class ApplicationsButton extends PanelMenu.Button {
});
});
this._tree = new GMenu.Tree({ menu_basename: 'applications.menu' });
this._treeChangedId = this._tree.connect('changed',
this._onTreeChanged.bind(this));
this._tree = new GMenu.Tree({menu_basename: 'applications.menu'});
this._tree.connectObject('changed',
() => this._onTreeChanged(), this);
this._applicationsButtons = new Map();
this.reloadFlag = false;
this._createLayout();
this._display();
this._installedChangedId = appSys.connect('installed-changed',
this._onTreeChanged.bind(this));
appSys.connectObject('installed-changed',
() => this._onTreeChanged(), this);
}
_onTreeChanged() {
@@ -418,59 +441,27 @@ class ApplicationsButton extends PanelMenu.Button {
}
}
_createVertSeparator() {
let separator = new St.DrawingArea({
style_class: 'calendar-vertical-separator',
pseudo_class: 'highlighted',
});
separator.connect('repaint', this._onVertSepRepaint.bind(this));
return separator;
}
_onDestroy() {
super._onDestroy();
Main.overview.disconnect(this._showingId);
Main.overview.disconnect(this._hidingId);
appSys.disconnect(this._installedChangedId);
this._tree.disconnect(this._treeChangedId);
this._tree = null;
delete this._tree;
Main.wm.setCustomKeybindingHandler('panel-main-menu',
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
Main.sessionMode.hasOverview
? Main.overview.toggle.bind(Main.overview)
: null);
Main.wm.removeKeybinding('apps-menu-toggle-menu');
this._desktopTarget.destroy();
}
_onMenuKeyPress(actor, event) {
let symbol = event.get_key_symbol();
const symbol = event.get_key_symbol();
if (symbol === Clutter.KEY_Left || symbol === Clutter.KEY_Right) {
let direction = symbol === Clutter.KEY_Left
const direction = symbol === Clutter.KEY_Left
? Gtk.DirectionType.LEFT : Gtk.DirectionType.RIGHT;
if (this.menu.actor.navigate_focus(global.stage.key_focus, direction, false))
return true;
return Clutter.EVENT_STOP;
}
return super._onMenuKeyPress(actor, event);
}
_onVertSepRepaint(area) {
let cr = area.get_context();
let themeNode = area.get_theme_node();
let [width, height] = area.get_surface_size();
let stippleColor = themeNode.get_color('-stipple-color');
let stippleWidth = themeNode.get_length('-stipple-width');
let x = Math.floor(width / 2) + 0.5;
cr.moveTo(x, 0);
cr.lineTo(x, height);
Clutter.cairo_set_source_color(cr, stippleColor);
cr.setDash([1, 3], 1); // Hard-code for now
cr.setLineWidth(stippleWidth);
cr.stroke();
}
_onOpenStateChanged(menu, open) {
if (open) {
if (this.reloadFlag) {
@@ -482,12 +473,6 @@ class ApplicationsButton extends PanelMenu.Button {
super._onOpenStateChanged(menu, open);
}
_setKeybinding() {
Main.wm.setCustomKeybindingHandler('panel-main-menu',
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
() => this.menu.toggle());
}
_redisplay() {
this.applicationsBox.destroy_all_children();
this.categoriesBox.destroy_all_children();
@@ -495,26 +480,26 @@ class ApplicationsButton extends PanelMenu.Button {
}
_loadCategory(categoryId, dir) {
let iter = dir.iter();
const iter = dir.iter();
let nextType;
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
if (nextType === GMenu.TreeItemType.ENTRY) {
let entry = iter.get_entry();
const entry = iter.get_entry();
let id;
try {
id = entry.get_desktop_file_id(); // catch non-UTF8 filenames
} catch (e) {
} catch {
continue;
}
let app = appSys.lookup_app(id);
if (!app)
app = new Shell.App({ app_info: entry.get_app_info() });
app = new Shell.App({app_info: entry.get_app_info()});
if (app.get_app_info().should_show())
this.applicationsByCategory[categoryId].push(app);
} else if (nextType === GMenu.TreeItemType.SEPARATOR) {
this.applicationsByCategory[categoryId].push('separator');
} else if (nextType === GMenu.TreeItemType.DIRECTORY) {
let subdir = iter.get_directory();
const subdir = iter.get_directory();
if (!subdir.get_is_nodisplay())
this._loadCategory(categoryId, subdir);
}
@@ -522,11 +507,11 @@ class ApplicationsButton extends PanelMenu.Button {
}
scrollToButton(button) {
let appsScrollBoxAdj = this.applicationsScrollBox.get_vscroll_bar().get_adjustment();
let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
let currentScrollValue = appsScrollBoxAdj.get_value();
let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
let buttonAlloc = button.get_allocation_box();
const appsScrollBoxAdj = this.applicationsScrollBox.get_vadjustment();
const appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
const currentScrollValue = appsScrollBoxAdj.get_value();
const boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
const buttonAlloc = button.get_allocation_box();
let newScrollValue = currentScrollValue;
if (currentScrollValue > buttonAlloc.y1 - 10)
newScrollValue = buttonAlloc.y1 - 10;
@@ -537,11 +522,11 @@ class ApplicationsButton extends PanelMenu.Button {
}
scrollToCatButton(button) {
let catsScrollBoxAdj = this.categoriesScrollBox.get_vscroll_bar().get_adjustment();
let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
let currentScrollValue = catsScrollBoxAdj.get_value();
let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
let buttonAlloc = button.get_allocation_box();
const catsScrollBoxAdj = this.categoriesScrollBox.get_vadjustment();
const catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
const currentScrollValue = catsScrollBoxAdj.get_value();
const boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
const buttonAlloc = button.get_allocation_box();
let newScrollValue = currentScrollValue;
if (currentScrollValue > buttonAlloc.y1 - 10)
newScrollValue = buttonAlloc.y1 - 10;
@@ -552,80 +537,66 @@ class ApplicationsButton extends PanelMenu.Button {
}
_createLayout() {
let section = new PopupMenu.PopupMenuSection();
const section = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(section);
this.mainBox = new St.BoxLayout({ vertical: false });
this.leftBox = new St.BoxLayout({ vertical: true });
this.mainBox = new St.BoxLayout({layoutManager: new MainLayout()});
this.leftBox = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
});
this.applicationsScrollBox = new St.ScrollView({
style_class: 'apps-menu vfade',
x_expand: true,
});
this.applicationsScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
let vscroll = this.applicationsScrollBox.get_vscroll_bar();
vscroll.connect('scroll-start', () => {
this.menu.passEvents = true;
});
vscroll.connect('scroll-stop', () => {
this.menu.passEvents = false;
});
this.categoriesScrollBox = new St.ScrollView({
style_class: 'vfade',
});
this.categoriesScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
vscroll = this.categoriesScrollBox.get_vscroll_bar();
vscroll.connect('scroll-start', () => (this.menu.passEvents = true));
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
this.leftBox.add_child(this.categoriesScrollBox);
this.applicationsBox = new St.BoxLayout({ vertical: true });
this.applicationsScrollBox.add_actor(this.applicationsBox);
this.categoriesBox = new St.BoxLayout({ vertical: true });
this.categoriesScrollBox.add_actor(this.categoriesBox);
this.applicationsBox = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
});
this.applicationsScrollBox.set_child(this.applicationsBox);
this.categoriesBox = new St.BoxLayout({
orientation: Clutter.Orientation.VERTICAL,
});
this.categoriesScrollBox.set_child(this.categoriesBox);
this.mainBox.add(this.leftBox);
this.mainBox.add_child(this._createVertSeparator());
this.mainBox.add_child(this.leftBox);
this.mainBox.add_child(this.applicationsScrollBox);
section.actor.add_actor(this.mainBox);
section.actor.add_child(this.mainBox);
}
_display() {
this._applicationsButtons.clear();
this.mainBox.style = 'width: 35em;';
this.mainBox.hide();
// Load categories
this.applicationsByCategory = {};
this._tree.load_sync();
let root = this._tree.get_root_directory();
const root = this._tree.get_root_directory();
let categoryMenuItem = new CategoryMenuItem(this, null);
this.categoriesBox.add_actor(categoryMenuItem);
let iter = root.iter();
this.categoriesBox.add_child(categoryMenuItem);
const iter = root.iter();
let nextType;
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
if (nextType !== GMenu.TreeItemType.DIRECTORY)
continue;
let dir = iter.get_directory();
const dir = iter.get_directory();
if (dir.get_is_nodisplay())
continue;
let categoryId = dir.get_menu_id();
const categoryId = dir.get_menu_id();
this.applicationsByCategory[categoryId] = [];
this._loadCategory(categoryId, dir);
if (this.applicationsByCategory[categoryId].length > 0) {
categoryMenuItem = new CategoryMenuItem(this, dir);
this.categoriesBox.add_actor(categoryMenuItem);
this.categoriesBox.add_child(categoryMenuItem);
}
}
// Load applications
this._displayButtons(this._listApplications(null));
let themeContext = St.ThemeContext.get_for_stage(global.stage);
let scaleFactor = themeContext.scale_factor;
let categoriesHeight = this.categoriesBox.height / scaleFactor;
let height = Math.round(categoriesHeight) + MENU_HEIGHT_OFFSET;
this.mainBox.style += `height: ${height}px`;
}
selectCategory(dir) {
@@ -633,7 +604,7 @@ class ApplicationsButton extends PanelMenu.Button {
if (c._delegate instanceof PopupMenu.PopupSeparatorMenuItem)
c._delegate.destroy();
else
this.applicationsBox.remove_actor(c);
this.applicationsBox.remove_child(c);
});
if (dir)
@@ -644,7 +615,7 @@ class ApplicationsButton extends PanelMenu.Button {
_displayButtons(apps) {
for (let i = 0; i < apps.length; i++) {
let app = apps[i];
const app = apps[i];
let item;
if (app instanceof Shell.App)
item = this._applicationsButtons.get(app);
@@ -656,7 +627,7 @@ class ApplicationsButton extends PanelMenu.Button {
this._applicationsButtons.set(app, item);
}
if (!item.get_parent())
this.applicationsBox.add_actor(item);
this.applicationsBox.add_child(item);
}
}
@@ -673,21 +644,19 @@ class ApplicationsButton extends PanelMenu.Button {
return applist;
}
});
let appsMenuButton;
function enable() {
appsMenuButton = new ApplicationsButton();
let index = Main.sessionMode.panel.left.indexOf('activities') + 1;
Main.panel.addToStatusArea('apps-menu', appsMenuButton, index, 'left');
}
function disable() {
Main.panel.menuManager.removeMenu(appsMenuButton.menu);
appsMenuButton.destroy();
}
export default class AppsMenuExtension extends Extension {
enable() {
this._appsMenuButton = new ApplicationsButton();
const index = Main.sessionMode.panel.left.indexOf('activities') + 1;
Main.panel.addToStatusArea(
'apps-menu', this._appsMenuButton, index, 'left');
}
function init() {
ExtensionUtils.initTranslations();
disable() {
Main.panel.menuManager.removeMenu(this._appsMenuButton.menu);
this._appsMenuButton.destroy();
delete this._appsMenuButton;
}
}

View File

@@ -1,5 +1,11 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -1,9 +1,10 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Applications Menu",
"description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
"name": "Apps Menu",
"description": "Add a category-based menu for apps.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
"original-authors": [ "e2002@bk.ru", "debarshir@gnome.org" ],
"shell-version": [ "@shell_current@" ],
"url": "@url@"

View File

@@ -0,0 +1,18 @@
<!--
SPDX-FileCopyrightText: 2021 Florian Müllner <fmuellner@gnome.org>
SPDX-License-Identifier: GPL-2.0-or-later
-->
<schemalist gettext-domain="gnome-shell-extensions">
<schema id="org.gnome.shell.extensions.apps-menu"
path="/org/gnome/shell/extensions/apps-menu/">
<key name="apps-menu-toggle-menu" type="as">
<default>["&lt;Alt&gt;F1"]</default>
<summary>Keybinding to open the applications menu</summary>
<description>
Keybinding to open the applications menu.
</description>
</key>
</schema>
</schemalist>

View File

@@ -1,3 +1,11 @@
/*
* SPDX-FileCopyrightText: 2013 Florian Müllner <fmuellner@gnome.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
.apps-menu {width: 26em;}
.apps-menu:ltr {
padding-right: 3px;
}

View File

@@ -1,24 +1,26 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces
/* exported init enable disable */
// SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
// SPDX-FileCopyrightText: 2011 Alessandro Crismani <alessandro.crismani@gmail.com>
// SPDX-FileCopyrightText: 2014 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
const { Shell } = imports.gi;
import Shell from 'gi://Shell';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
class WindowMover {
constructor() {
this._settings = ExtensionUtils.getSettings();
constructor(settings) {
this._settings = settings;
this._appSystem = Shell.AppSystem.get_default();
this._appConfigs = new Map();
this._appData = new Map();
this._appsChangedId =
this._appSystem.connect('installed-changed',
this._updateAppData.bind(this));
this._appSystem.connectObject('installed-changed',
() => this._updateAppData(), this);
this._settings.connect('changed', this._updateAppConfigs.bind(this));
this._settings.connectObject('changed',
this._updateAppConfigs.bind(this), this);
this._updateAppConfigs();
}
@@ -26,7 +28,7 @@ class WindowMover {
this._appConfigs.clear();
this._settings.get_strv('application-list').forEach(v => {
let [appId, num] = v.split(':');
const [appId, num] = v.split(':');
this._appConfigs.set(appId, parseInt(num) - 1);
});
@@ -34,50 +36,39 @@ class WindowMover {
}
_updateAppData() {
let ids = [...this._appConfigs.keys()];
let removedApps = [...this._appData.keys()].filter(
a => !ids.includes(a.id)
);
const ids = [...this._appConfigs.keys()];
const removedApps = [...this._appData.keys()]
.filter(a => !ids.includes(a.id));
removedApps.forEach(app => {
app.disconnect(this._appData.get(app).windowsChangedId);
app.disconnectObject(this);
this._appData.delete(app);
});
let addedApps = ids.map(id => this._appSystem.lookup_app(id)).filter(
app => app && !this._appData.has(app)
);
const addedApps = ids
.map(id => this._appSystem.lookup_app(id))
.filter(app => app && !this._appData.has(app));
addedApps.forEach(app => {
let data = {
windowsChangedId: app.connect('windows-changed',
this._appWindowsChanged.bind(this)),
moveWindowsId: 0,
windows: app.get_windows(),
};
this._appData.set(app, data);
app.connectObject('windows-changed',
this._appWindowsChanged.bind(this), this);
this._appData.set(app, {windows: app.get_windows()});
});
}
destroy() {
if (this._appsChangedId) {
this._appSystem.disconnect(this._appsChangedId);
this._appsChangedId = 0;
}
if (this._settings) {
this._settings.run_dispose();
this._settings = null;
}
this._appSystem.disconnectObject(this);
this._settings.disconnectObject(this);
this._settings = null;
this._appConfigs.clear();
this._updateAppData();
}
_moveWindow(window, workspaceNum) {
if (window.skip_taskbar)
if (window.skip_taskbar || window.is_on_all_workspaces())
return;
// ensure we have the required number of workspaces
let workspaceManager = global.workspace_manager;
const workspaceManager = global.workspace_manager;
for (let i = workspaceManager.n_workspaces; i <= workspaceNum; i++) {
window.change_workspace_by_index(i - 1, false);
workspaceManager.append_new_workspace(false, 0);
@@ -87,18 +78,18 @@ class WindowMover {
}
_appWindowsChanged(app) {
let data = this._appData.get(app);
let windows = app.get_windows();
const data = this._appData.get(app);
const windows = app.get_windows();
// If get_compositor_private() returns non-NULL on a removed windows,
// the window still exists and is just moved to a different workspace
// or something; assume it'll be added back immediately, so keep it
// to avoid moving it again
windows.push(...data.windows.filter(
w => !windows.includes(w) && w.get_compositor_private() !== null
));
windows.push(...data.windows.filter(w => {
return !windows.includes(w) && w.get_compositor_private() !== null;
}));
let workspaceNum = this._appConfigs.get(app.id);
const workspaceNum = this._appConfigs.get(app.id);
windows.filter(w => !data.windows.includes(w)).forEach(window => {
this._moveWindow(window, workspaceNum);
});
@@ -106,39 +97,41 @@ class WindowMover {
}
}
let prevCheckWorkspaces;
let winMover;
function init() {
ExtensionUtils.initTranslations();
}
function myCheckWorkspaces() {
let keepAliveWorkspaces = [];
let foundNonEmpty = false;
for (let i = this._workspaces.length - 1; i >= 0; i--) {
if (!foundNonEmpty)
foundNonEmpty = this._workspaces[i].list_windows().length > 0;
else if (!this._workspaces[i]._keepAliveId)
keepAliveWorkspaces.push(this._workspaces[i]);
export default class AutoMoveExtension extends Extension {
enable() {
this._prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces =
this._getCheckWorkspaceOverride(this._prevCheckWorkspaces);
this._windowMover = new WindowMover(this.getSettings());
}
// make sure the original method only removes empty workspaces at the end
keepAliveWorkspaces.forEach(ws => (ws._keepAliveId = 1));
prevCheckWorkspaces.call(this);
keepAliveWorkspaces.forEach(ws => delete ws._keepAliveId);
disable() {
Main.wm._workspaceTracker._checkWorkspaces = this._prevCheckWorkspaces;
this._windowMover.destroy();
delete this._windowMover;
}
return false;
}
function enable() {
prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces = myCheckWorkspaces;
winMover = new WindowMover();
}
function disable() {
Main.wm._workspaceTracker._checkWorkspaces = prevCheckWorkspaces;
winMover.destroy();
_getCheckWorkspaceOverride(originalMethod) {
/* eslint-disable no-invalid-this */
return function () {
const keepAliveWorkspaces = [];
let foundNonEmpty = false;
for (let i = this._workspaces.length - 1; i >= 0; i--) {
if (!foundNonEmpty) {
foundNonEmpty = this._workspaces[i].list_windows().some(
w => !w.is_on_all_workspaces());
} else if (!this._workspaces[i]._keepAliveId) {
keepAliveWorkspaces.push(this._workspaces[i]);
}
}
// make sure the original method only removes empty workspaces at the end
keepAliveWorkspaces.forEach(ws => (ws._keepAliveId = 1));
originalMethod.call(this);
keepAliveWorkspaces.forEach(ws => delete ws._keepAliveId);
return false;
};
/* eslint-enable no-invalid-this */
}
}

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,

View File

@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2016 Florian Müllner <fmuellner@gnome.org>
SPDX-License-Identifier: GPL-2.0-or-later
-->
<schemalist gettext-domain="gnome-shell-extensions">
<schema id="org.gnome.shell.extensions.auto-move-windows" path="/org/gnome/shell/extensions/auto-move-windows/">
<key name="application-list" type="as">

View File

@@ -1,282 +1,351 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces
/* exported init buildPrefsWidget */
// SPDX-FileCopyrightText: 2012 Giovanni Campagna <gcampagna@src.gnome.org>
// SPDX-FileCopyrightText: 2014 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
const { Gio, GObject, Gtk } = imports.gi;
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GioUnix from 'gi://GioUnix';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = e => e;
const ExtensionUtils = imports.misc.extensionUtils;
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const SETTINGS_KEY = 'application-list';
const WORKSPACE_MAX = 36; // compiled in limit of mutter
const Columns = {
APPINFO: 0,
DISPLAY_NAME: 1,
ICON: 2,
WORKSPACE: 3,
ADJUSTMENT: 4,
};
class NewItem extends GObject.Object {}
GObject.registerClass(NewItem);
const Widget = GObject.registerClass(
class Widget extends Gtk.Grid {
_init(params) {
super._init(params);
this.set_orientation(Gtk.Orientation.VERTICAL);
this._settings = ExtensionUtils.getSettings();
this._settings.connect('changed', this._refresh.bind(this));
this._changedPermitted = false;
this._store = new Gtk.ListStore();
this._store.set_column_types([
Gio.AppInfo,
GObject.TYPE_STRING,
Gio.Icon,
GObject.TYPE_INT,
Gtk.Adjustment,
]);
let scrolled = new Gtk.ScrolledWindow({ shadow_type: Gtk.ShadowType.IN });
scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
this.add(scrolled);
this._treeView = new Gtk.TreeView({
model: this._store,
hexpand: true,
vexpand: true,
});
this._treeView.get_selection().set_mode(Gtk.SelectionMode.SINGLE);
let appColumn = new Gtk.TreeViewColumn({
expand: true,
sort_column_id: Columns.DISPLAY_NAME,
title: _('Application'),
});
let iconRenderer = new Gtk.CellRendererPixbuf();
appColumn.pack_start(iconRenderer, false);
appColumn.add_attribute(iconRenderer, 'gicon', Columns.ICON);
let nameRenderer = new Gtk.CellRendererText();
appColumn.pack_start(nameRenderer, true);
appColumn.add_attribute(nameRenderer, 'text', Columns.DISPLAY_NAME);
this._treeView.append_column(appColumn);
let workspaceColumn = new Gtk.TreeViewColumn({
title: _('Workspace'),
sort_column_id: Columns.WORKSPACE,
});
let workspaceRenderer = new Gtk.CellRendererSpin({ editable: true });
workspaceRenderer.connect('edited', this._workspaceEdited.bind(this));
workspaceColumn.pack_start(workspaceRenderer, true);
workspaceColumn.add_attribute(workspaceRenderer, 'adjustment', Columns.ADJUSTMENT);
workspaceColumn.add_attribute(workspaceRenderer, 'text', Columns.WORKSPACE);
this._treeView.append_column(workspaceColumn);
scrolled.add(this._treeView);
let toolbar = new Gtk.Toolbar({ icon_size: Gtk.IconSize.SMALL_TOOLBAR });
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR);
this.add(toolbar);
let newButton = new Gtk.ToolButton({
icon_name: 'bookmark-new-symbolic',
label: _('Add Rule'),
is_important: true,
});
newButton.connect('clicked', this._createNew.bind(this));
toolbar.add(newButton);
let delButton = new Gtk.ToolButton({ icon_name: 'edit-delete-symbolic' });
delButton.connect('clicked', this._deleteSelected.bind(this));
toolbar.add(delButton);
let selection = this._treeView.get_selection();
selection.connect('changed', () => {
delButton.sensitive = selection.count_selected_rows() > 0;
});
delButton.sensitive = selection.count_selected_rows() > 0;
this._changedPermitted = true;
this._refresh();
class NewItemModel extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
_createNew() {
let dialog = new Gtk.Dialog({
title: _('Create new matching rule'),
transient_for: this.get_toplevel(),
use_header_bar: true,
modal: true,
});
dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL);
let addButton = dialog.add_button(_('Add'), Gtk.ResponseType.OK);
dialog.set_default_response(Gtk.ResponseType.OK);
#item = new NewItem();
let grid = new Gtk.Grid({
column_spacing: 10,
row_spacing: 15,
margin: 10,
});
dialog._appChooser = new Gtk.AppChooserWidget({ show_all: true });
dialog._appChooser.connect('application-selected', (w, appInfo) => {
addButton.sensitive = appInfo && this._checkId(appInfo.get_id());
});
let appInfo = dialog._appChooser.get_app_info();
addButton.sensitive = appInfo && this._checkId(appInfo.get_id());
vfunc_get_item_type() {
return NewItem;
}
grid.attach(dialog._appChooser, 0, 0, 2, 1);
grid.attach(new Gtk.Label({
label: _('Workspace'),
halign: Gtk.Align.END,
}), 0, 1, 1, 1);
let adjustment = new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
});
dialog._spin = new Gtk.SpinButton({
adjustment,
snap_to_ticks: true,
});
dialog._spin.set_value(1);
grid.attach(dialog._spin, 1, 1, 1, 1);
dialog.get_content_area().add(grid);
vfunc_get_n_items() {
return 1;
}
vfunc_get_item(_pos) {
return this.#item;
}
}
class Rule extends GObject.Object {
static [GObject.properties] = {
'app-info': GObject.ParamSpec.object(
'app-info', null, null,
GObject.ParamFlags.READWRITE,
GioUnix.DesktopAppInfo),
'workspace': GObject.ParamSpec.uint(
'workspace', null, null,
GObject.ParamFlags.READWRITE,
1, WORKSPACE_MAX, 1),
};
static {
GObject.registerClass(this);
}
}
class RulesList extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#settings;
#rules = [];
#changedId;
constructor(settings) {
super();
this.#settings = settings;
this.#changedId =
this.#settings.connect(`changed::${SETTINGS_KEY}`,
() => this.#sync());
this.#sync();
}
append(appInfo) {
const pos = this.#rules.length;
this.#rules.push(new Rule({appInfo}));
this.#saveRules();
this.items_changed(pos, 0, 1);
}
remove(id) {
const pos = this.#rules.findIndex(r => r.appInfo.get_id() === id);
if (pos < 0)
return;
this.#rules.splice(pos, 1);
this.#saveRules();
this.items_changed(pos, 1, 0);
}
changeWorkspace(id, workspace) {
const pos = this.#rules.findIndex(r => r.appInfo.get_id() === id);
if (pos < 0)
return;
this.#rules[pos].set({workspace});
this.#saveRules();
}
#saveRules() {
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(SETTINGS_KEY,
this.#rules.map(r => `${r.app_info.get_id()}:${r.workspace}`));
this.#settings.unblock_signal_handler(this.#changedId);
}
#sync() {
const removed = this.#rules.length;
this.#rules = [];
for (const stringRule of this.#settings.get_strv(SETTINGS_KEY)) {
const [id, workspace] = stringRule.split(':');
const appInfo = GioUnix.DesktopAppInfo.new(id);
if (appInfo)
this.#rules.push(new Rule({appInfo, workspace}));
else
log(`Invalid ID ${id}`);
}
this.items_changed(0, removed, this.#rules.length);
}
vfunc_get_item_type() {
return Rule;
}
vfunc_get_n_items() {
return this.#rules.length;
}
vfunc_get_item(pos) {
return this.#rules[pos] ?? null;
}
}
class AutoMoveSettingsWidget extends Adw.PreferencesGroup {
static {
GObject.registerClass(this);
this.install_action('rules.add', null, self => self._addNewRule());
this.install_action('rules.remove', 's',
(self, name, param) => self._rules.remove(param.unpack()));
this.install_action('rules.change-workspace', '(si)',
(self, name, param) => self._rules.changeWorkspace(...param.deepUnpack()));
}
constructor(settings) {
super({
title: _('Workspace Rules'),
});
this._settings = settings;
this._rules = new RulesList(this._settings);
const store = new Gio.ListStore({item_type: Gio.ListModel});
const listModel = new Gtk.FlattenListModel({model: store});
store.append(this._rules);
store.append(new NewItemModel());
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
css_classes: ['boxed-list'],
});
this.add(this._list);
this._list.bind_model(listModel, item => {
return item instanceof NewItem
? new NewRuleRow()
: new RuleRow(item);
});
}
_addNewRule() {
const dialog = new NewRuleDialog(this.get_root(), this._settings);
dialog.connect('response', (dlg, id) => {
if (id !== Gtk.ResponseType.OK) {
dialog.destroy();
return;
}
appInfo = dialog._appChooser.get_app_info();
if (!appInfo)
return;
let index = Math.floor(dialog._spin.value);
if (isNaN(index) || index < 0)
index = 1;
this._changedPermitted = false;
this._appendItem(appInfo.get_id(), index);
this._changedPermitted = true;
this._appendRow(appInfo, index);
const appInfo = id === Gtk.ResponseType.OK
? dialog.get_widget().get_app_info() : null;
if (appInfo)
this._rules.append(appInfo);
dialog.destroy();
});
dialog.show_all();
dialog.show();
}
}
class WorkspaceSelector extends Gtk.Widget {
static [GObject.properties] = {
'number': GObject.ParamSpec.uint(
'number', null, null,
GObject.ParamFlags.READWRITE,
1, WORKSPACE_MAX, 1),
};
static {
GObject.registerClass(this);
this.set_layout_manager_type(Gtk.BoxLayout);
}
_deleteSelected() {
let [any, model_, iter] = this._treeView.get_selection().get_selected();
constructor() {
super();
if (any) {
let appInfo = this._store.get_value(iter, Columns.APPINFO);
this.layout_manager.spacing = 6;
this._changedPermitted = false;
this._removeItem(appInfo.get_id());
this._changedPermitted = true;
this._store.remove(iter);
}
}
_workspaceEdited(renderer, pathString, text) {
let index = parseInt(text);
if (isNaN(index) || index < 0)
index = 1;
let path = Gtk.TreePath.new_from_string(pathString);
let [model_, iter] = this._store.get_iter(path);
let appInfo = this._store.get_value(iter, Columns.APPINFO);
this._changedPermitted = false;
this._changeItem(appInfo.get_id(), index);
this._store.set_value(iter, Columns.WORKSPACE, index);
this._changedPermitted = true;
}
_refresh() {
if (!this._changedPermitted)
// Ignore this notification, model is being modified outside
return;
this._store.clear();
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let validItems = [];
for (let i = 0; i < currentItems.length; i++) {
let [id, index] = currentItems[i].split(':');
let appInfo = Gio.DesktopAppInfo.new(id);
if (!appInfo)
continue;
validItems.push(currentItems[i]);
this._appendRow(appInfo, parseInt(index));
}
if (validItems.length !== currentItems.length) // some items were filtered out
this._settings.set_strv(SETTINGS_KEY, validItems);
}
_appendRow(appInfo, workspace) {
let iter = this._store.append();
let icon = appInfo.get_icon();
let displayName = appInfo.get_display_name();
let adj = new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
value: workspace,
const label = new Gtk.Label({
xalign: 1,
margin_end: 6,
});
let { APPINFO, ICON, DISPLAY_NAME, WORKSPACE, ADJUSTMENT } = Columns;
this._store.set(iter,
[APPINFO, ICON, DISPLAY_NAME, WORKSPACE, ADJUSTMENT],
[appInfo, icon, displayName, workspace, adj]);
this.bind_property('number',
label, 'label',
GObject.BindingFlags.SYNC_CREATE);
label.set_parent(this);
const buttonProps = {
css_classes: ['circular'],
valign: Gtk.Align.CENTER,
};
this._decButton = new Gtk.Button({
icon_name: 'list-remove-symbolic',
...buttonProps,
});
this._decButton.set_parent(this);
this._decButton.connect('clicked', () => this.number--);
this._incButton = new Gtk.Button({
icon_name: 'list-add-symbolic',
...buttonProps,
});
this._incButton.set_parent(this);
this._incButton.connect('clicked', () => this.number++);
this.connect('notify::number', () => this._syncButtons());
this._syncButtons();
}
_checkId(id) {
let items = this._settings.get_strv(SETTINGS_KEY);
return !items.some(i => i.startsWith(`${id}:`));
_syncButtons() {
this._decButton.sensitive = this.number > 1;
this._incButton.sensitive = this.number < WORKSPACE_MAX;
}
_appendItem(id, workspace) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
currentItems.push(`${id}:${workspace}`);
this._settings.set_strv(SETTINGS_KEY, currentItems);
}
_removeItem(id) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let index = currentItems.map(el => el.split(':')[0]).indexOf(id);
if (index < 0)
return;
currentItems.splice(index, 1);
this._settings.set_strv(SETTINGS_KEY, currentItems);
}
_changeItem(id, workspace) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let index = currentItems.map(el => el.split(':')[0]).indexOf(id);
if (index < 0)
currentItems.push(`${id}:${workspace}`);
else
currentItems[index] = `${id}:${workspace}`;
this._settings.set_strv(SETTINGS_KEY, currentItems);
}
});
function init() {
ExtensionUtils.initTranslations();
}
function buildPrefsWidget() {
let widget = new Widget({ margin: 12 });
widget.show_all();
class RuleRow extends Adw.ActionRow {
static {
GObject.registerClass(this);
}
return widget;
constructor(rule) {
const {appInfo} = rule;
const id = appInfo.get_id();
super({
activatable: false,
title: rule.appInfo.get_display_name(),
});
const icon = new Gtk.Image({
css_classes: ['icon-dropshadow'],
gicon: appInfo.get_icon(),
pixel_size: 32,
});
this.add_prefix(icon);
const wsButton = new WorkspaceSelector();
rule.bind_property('workspace',
wsButton, 'number',
GObject.BindingFlags.SYNC_CREATE);
this.add_suffix(wsButton);
wsButton.connect('notify::number', () => {
this.activate_action('rules.change-workspace',
new GLib.Variant('(si)', [id, wsButton.number]));
});
const button = new Gtk.Button({
action_name: 'rules.remove',
action_target: new GLib.Variant('s', id),
icon_name: 'edit-delete-symbolic',
has_frame: false,
valign: Gtk.Align.CENTER,
});
this.add_suffix(button);
}
}
class NewRuleRow extends Gtk.ListBoxRow {
static {
GObject.registerClass(this);
}
constructor() {
super({
action_name: 'rules.add',
child: new Gtk.Image({
icon_name: 'list-add-symbolic',
pixel_size: 16,
margin_top: 12,
margin_bottom: 12,
margin_start: 12,
margin_end: 12,
}),
});
this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Rule')]);
}
}
class NewRuleDialog extends Gtk.AppChooserDialog {
static {
GObject.registerClass(this);
}
constructor(parent, settings) {
super({
transient_for: parent,
modal: true,
});
this._settings = settings;
this.get_widget().set({
show_all: true,
show_other: true, // hide more button
});
this.get_widget().connect('application-selected',
this._updateSensitivity.bind(this));
this._updateSensitivity();
}
_updateSensitivity() {
const rules = this._settings.get_strv(SETTINGS_KEY);
const appInfo = this.get_widget().get_app_info();
this.set_response_sensitive(Gtk.ResponseType.OK,
appInfo && !rules.some(i => i.startsWith(appInfo.get_id())));
}
}
export default class AutoMovePrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new AutoMoveSettingsWidget(this.getSettings());
}
}

View File

@@ -1 +0,0 @@
/* This extensions requires no special styling */

View File

@@ -1,73 +1,93 @@
/* exported init enable disable */
// SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
// SPDX-FileCopyrightText: 2018 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
// Drive menu extension
const { Gio, GObject, Shell, St } = imports.gi;
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Shell from 'gi://Shell';
import St from 'gi://St';
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const ShellMountOperation = imports.ui.shellMountOperation;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import * as ShellMountOperation from 'resource:///org/gnome/shell/ui/shellMountOperation.js';
Gio._promisify(Gio.File.prototype, 'query_filesystem_info_async');
var MountMenuItem = GObject.registerClass(
class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(mount) {
super._init();
static {
GObject.registerClass(this);
}
this.label = new St.Label({ text: mount.get_name() });
constructor(mount) {
super({
style_class: 'drive-menu-item',
});
this.label = new St.Label({
text: mount.get_name(),
x_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
this.add_child(this.label);
this.label_actor = this.label;
this.mount = mount;
this.connect('destroy', this._onDestroy.bind(this));
let ejectIcon = new St.Icon({
const ejectIcon = new St.Icon({
icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon',
});
let ejectButton = new St.Button({ child: ejectIcon });
const ejectButton = new St.Button({
child: ejectIcon,
style_class: 'button',
});
ejectButton.connect('clicked', this._eject.bind(this));
this.add(ejectButton);
this.add_child(ejectButton);
this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
this.hide();
mount.connectObject('changed',
() => this._syncVisibility(), this);
this._syncVisibility();
}
_onDestroy() {
if (this._changedId) {
this.mount.disconnect(this._changedId);
this._changedId = 0;
}
super.destroy();
}
_isInteresting() {
async _isInteresting() {
if (!this.mount.can_eject() && !this.mount.can_unmount())
return false;
if (this.mount.is_shadowed())
return false;
let volume = this.mount.get_volume();
const volume = this.mount.get_volume();
if (!volume) {
// probably a GDaemonMount, could be network or
// local, but we can't tell; assume it's local for now
return true;
if (volume)
return volume.get_identifier('class') !== 'network';
const root = this.mount.get_root();
try {
const attr = Gio.FILE_ATTRIBUTE_FILESYSTEM_REMOTE;
const info = await root.query_filesystem_info_async(attr, null);
return !info.get_attribute_boolean(attr);
} catch (e) {
log(`Failed to query filesystem: ${e.message}`);
}
return volume.get_identifier('class') !== 'network';
// Hack, fall back to looking at GType
return Gio._LocalFilePrototype.isPrototypeOf(root);
}
_syncVisibility() {
this.visible = this._isInteresting();
async _syncVisibility() {
this.visible = await this._isInteresting();
}
_eject() {
let unmountArgs = [
const unmountArgs = [
Gio.MountUnmountFlags.NONE,
new ShellMountOperation.ShellMountOperation(this.mount).mountOp,
null, // Gio.Cancellable
@@ -100,43 +120,41 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
_reportFailure(exception) {
// TRANSLATORS: %s is the filesystem name
let msg = _('Ejecting drive “%s” failed:').format(this.mount.get_name());
const msg = _('Ejecting drive “%s” failed:').format(this.mount.get_name());
Main.notifyError(msg, exception.message);
}
activate(event) {
let uri = this.mount.get_root().get_uri();
let context = global.create_app_launch_context(event.get_time(), -1);
const uri = this.mount.get_root().get_uri();
const context = global.create_app_launch_context(event.get_time(), -1);
Gio.AppInfo.launch_default_for_uri(uri, context);
super.activate(event);
}
});
}
let DriveMenu = GObject.registerClass(
class DriveMenu extends PanelMenu.Button {
_init() {
super._init(0.0, _('Removable devices'));
static {
GObject.registerClass(this);
}
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
let icon = new St.Icon({
constructor() {
super(0.5, _('Removable devices'));
const icon = new St.Icon({
icon_name: 'media-eject-symbolic',
style_class: 'system-status-icon',
});
hbox.add_child(icon);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.add_child(hbox);
this.add_child(icon);
this._monitor = Gio.VolumeMonitor.get();
this._addedId = this._monitor.connect('mount-added', (monitor, mount) => {
this._addMount(mount);
this._updateMenuVisibility();
});
this._removedId = this._monitor.connect('mount-removed', (monitor, mount) => {
this._removeMount(mount);
this._updateMenuVisibility();
});
this._monitor.connectObject(
'mount-added', (monitor, mount) => this._addMount(mount),
'mount-removed', (monitor, mount) => {
this._removeMount(mount);
this._updateMenuVisibility();
}, this);
this._mounts = [];
@@ -144,8 +162,8 @@ class DriveMenu extends PanelMenu.Button {
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addAction(_('Open Files'), event => {
let appSystem = Shell.AppSystem.get_default();
let app = appSystem.lookup_app('org.gnome.Nautilus.desktop');
const appSystem = Shell.AppSystem.get_default();
const app = appSystem.lookup_app('org.gnome.Nautilus.desktop');
app.activate_full(-1, event.get_time());
});
@@ -160,14 +178,16 @@ class DriveMenu extends PanelMenu.Button {
}
_addMount(mount) {
let item = new MountMenuItem(mount);
const item = new MountMenuItem(mount);
this._mounts.unshift(item);
this.menu.addMenuItem(item, 0);
item.connect('notify::visible', () => this._updateMenuVisibility());
}
_removeMount(mount) {
for (let i = 0; i < this._mounts.length; i++) {
let item = this._mounts[i];
const item = this._mounts[i];
if (item.mount === mount) {
item.destroy();
this._mounts.splice(i, 1);
@@ -176,30 +196,16 @@ class DriveMenu extends PanelMenu.Button {
}
log('Removing a mount that was never added to the menu');
}
}
_onDestroy() {
if (this._addedId) {
this._monitor.disconnect(this._addedId);
this._monitor.disconnect(this._removedId);
this._addedId = 0;
this._removedId = 0;
}
super._onDestroy();
export default class PlaceMenuExtension extends Extension {
enable() {
this._indicator = new DriveMenu();
Main.panel.addToStatusArea('drive-menu', this._indicator);
}
});
function init() {
ExtensionUtils.initTranslations();
}
let _indicator;
function enable() {
_indicator = new DriveMenu();
Main.panel.addToStatusArea('drive-menu', _indicator);
}
function disable() {
_indicator.destroy();
disable() {
this._indicator.destroy();
delete this._indicator;
}
}

View File

@@ -1,5 +1,10 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')

View File

@@ -1 +1,13 @@
/* This extensions requires no custom styling */
/*
* SPDX-FileCopyrightText: 2020 Florian Müllner <fmuellner@gnome.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
.drive-menu-item { spacing: 12px; }
.drive-menu-item .button {
border-radius: 99px;
padding: 3px;
min-height: auto;
}

View File

@@ -1,38 +0,0 @@
/* exported init */
const { Meta } = imports.gi;
const { ThumbnailsBox } = imports.ui.workspaceThumbnail;
class Extension {
constructor() {
this._origUpdateSwitcherVisibility =
ThumbnailsBox.prototype._updateSwitcherVisibility;
}
enable() {
global.workspace_manager.override_workspace_layout(
Meta.DisplayCorner.TOPLEFT,
false,
1,
-1);
ThumbnailsBox.prototype._updateSwitcherVisibility = function () {
this.hide();
};
}
disable() {
global.workspace_manager.override_workspace_layout(
Meta.DisplayCorner.TOPLEFT,
false,
-1,
1);
ThumbnailsBox.prototype._updateSwitcherVisibility =
this._origUpdateSwitcherVisibility;
}
}
function init() {
return new Extension();
}

View File

@@ -1 +0,0 @@
/* This extensions requires no special styling */

View File

@@ -1,15 +1,27 @@
/* exported enable disable */
const AppDisplay = imports.ui.appDisplay;
// SPDX-FileCopyrightText: 2013 Gabriel Rossetti <rossetti.gabriel@gmail.com>
// SPDX-FileCopyrightText: 2013 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
let _activateOriginal = null;
import {AppIcon} from 'resource:///org/gnome/shell/ui/appDisplay.js';
import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
function enable() {
_activateOriginal = AppDisplay.AppIcon.prototype.activate;
AppDisplay.AppIcon.prototype.activate = function () {
_activateOriginal.call(this, 2);
};
}
function disable() {
AppDisplay.AppIcon.prototype.activate = _activateOriginal;
export default class Extension {
constructor() {
this._injectionManager = new InjectionManager();
}
enable() {
this._injectionManager.overrideMethod(AppIcon.prototype, 'activate',
originalMethod => {
return function () {
// eslint-disable-next-line no-invalid-this
originalMethod.call(this, 2);
};
});
}
disable() {
this._injectionManager.clear();
}
}

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,

View File

@@ -3,7 +3,7 @@
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Launch new instance",
"name": "Launch New Instance",
"description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
"shell-version": [ "@shell_current@" ],
"url": "@url@"

View File

@@ -1 +0,0 @@
/* This extensions requires no special styling */

View File

@@ -0,0 +1,23 @@
// SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
import St from 'gi://St';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
export default class Extension {
_updateColorScheme(scheme) {
Main.sessionMode.colorScheme = scheme;
St.Settings.get().notify('color-scheme');
}
enable() {
this._savedColorScheme = Main.sessionMode.colorScheme;
this._updateColorScheme('prefer-light');
}
disable() {
this._updateColorScheme(this._savedColorScheme);
}
}

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,

View File

@@ -3,8 +3,8 @@
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Horizontal workspaces",
"description": "Use a horizontal workspace layout",
"name": "Light Style",
"description": "Switch default to light style",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -1,9 +1,13 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_schemas = []
js_sources = []
metadata_name = 'metadata.json'
foreach e : all_extensions
foreach e : enabled_extensions
uuid = e + uuid_suffix
metadata_conf = configuration_data()
@@ -12,34 +16,20 @@ foreach e : all_extensions
metadata_conf.set('gschemaname', 'org.gnome.shell.extensions.' + e)
metadata_conf.set('gettext_domain', gettext_domain)
metadata_conf.set('shell_current', shell_version)
metadata_conf.set('url', 'https://gitlab.gnome.org/GNOME/gnome-shell-extensions')
metadata_conf.set(
'url',
'https://gitlab.gnome.org/GNOME/gnome-shell-extensions',
)
extension_sources = files(e + '/extension.js')
extension_data = files(e + '/stylesheet.css')
extension_data = []
subdir(e)
js_sources += extension_sources
if (enabled_extensions.contains(e))
install_data (extension_sources + extension_data,
install_dir: join_paths(extensiondir, uuid)
)
endif
install_data(
extension_sources + extension_data,
install_dir: join_paths(extensiondir, uuid),
)
endforeach
install_data (extension_schemas,
install_dir: schemadir
)
foreach js_source : js_sources
if (js68.found())
path_array = '@0@'.format(js_source).split('/')
name = join_paths(path_array[-2], path_array[-1])
test('Checking syntax of ' + name, js68,
args: ['-s', '-c', js_source],
workdir: meson.current_source_dir()
)
endif
endforeach
install_data(extension_schemas, install_dir: schemadir)

View File

@@ -1,8 +1,13 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)
# extension_data += files('stylesheet.css')
# extension_sources += files('prefs.js')
# extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -1,7 +1,17 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported enable disable */
const ExtensionUtils = imports.misc.extensionUtils;
const Workspace = imports.ui.workspace;
// SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
// SPDX-FileCopyrightText: 2011 Stefano Facchini <stefano.facchini@gmail.com>
// SPDX-FileCopyrightText: 2011 Wepmaschda <wepmaschda@gmx.de>
// SPDX-FileCopyrightText: 2015 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
import Clutter from 'gi://Clutter';
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js';
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
// testing settings for natural window placement strategy:
const WINDOW_PLACEMENT_NATURAL_ACCURACY = 20; // accuracy of window translate moves (KDE-default: 20)
@@ -19,7 +29,7 @@ class Rect {
}
union(rect2) {
let dest = this.copy();
const dest = this.copy();
if (rect2.x < dest.x) {
dest.width += dest.x - rect2.x;
dest.x = rect2.x;
@@ -37,7 +47,7 @@ class Rect {
}
adjusted(dx, dy, dx2, dy2) {
let dest = this.copy();
const dest = this.copy();
dest.x += dx;
dest.y += dy;
dest.width += -dx + dx2;
@@ -63,13 +73,15 @@ class Rect {
}
class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
constructor(settings) {
super();
constructor(params, settings) {
super(params);
this._settings = settings;
}
computeLayout(windows, layout) {
layout.windows = windows;
computeLayout(windows, _params) {
return {
windows,
};
}
/*
@@ -82,16 +94,16 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
// As we are using pseudo-random movement (See "slot") we need to make sure the list
// is always sorted the same way no matter which window is currently active.
let areaRect = new Rect(area.x, area.y, area.width, area.height);
const areaRect = new Rect(area.x, area.y, area.width, area.height);
let bounds = areaRect.copy();
let clones = layout.windows;
const clones = layout.windows;
let direction = 0;
let directions = [];
let rects = [];
const directions = [];
const rects = [];
for (let i = 0; i < clones.length; i++) {
// save rectangles into 4-dimensional arrays representing two corners of the rectangular: [left_x, top_y, right_x, bottom_y]
let rect = clones[i].metaWindow.get_frame_rect();
const rect = clones[i].boundingBox;
rects[i] = new Rect(rect.x, rect.y, rect.width, rect.height);
bounds = bounds.union(rects[i]);
@@ -100,7 +112,6 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
direction++;
if (direction === 4)
direction = 0;
}
let loopCounter = 0;
@@ -109,10 +120,10 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
overlap = false;
for (let i = 0; i < rects.length; i++) {
for (let j = 0; j < rects.length; j++) {
let adjustments = [-1, -1, 1, 1]
const adjustments = [-1, -1, 1, 1]
.map(v => (v *= WINDOW_PLACEMENT_NATURAL_GAPS));
let iAdjusted = rects[i].adjusted(...adjustments);
let jAdjusted = rects[j].adjusted(...adjustments);
const iAdjusted = rects[i].adjusted(...adjustments);
const jAdjusted = rects[j].adjusted(...adjustments);
if (i !== j && iAdjusted.overlap(jAdjusted)) {
loopCounter++;
overlap = true;
@@ -121,8 +132,8 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
// Determine pushing direction
let iCenter = rects[i].center();
let jCenter = rects[j].center();
let diff = [jCenter[0] - iCenter[0], jCenter[1] - iCenter[1]];
const jCenter = rects[j].center();
const diff = [jCenter[0] - iCenter[0], jCenter[1] - iCenter[1]];
// Prevent dividing by zero and non-movement
if (diff[0] === 0 && diff[1] === 0)
@@ -199,8 +210,7 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
} while (overlap && loopCounter < WINDOW_PLACEMENT_NATURAL_MAX_TRANSLATIONS);
// Work out scaling by getting the most top-left and most bottom-right window coords.
let scale;
scale = Math.min(
const scale = Math.min(
areaRect.width / bounds.width,
areaRect.height / bounds.height,
1.0);
@@ -217,66 +227,78 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
// rescale to workspace
let slots = [];
const slots = [];
for (let i = 0; i < rects.length; i++) {
rects[i].x = rects[i].x * scale + areaRect.x;
rects[i].y = rects[i].y * scale + areaRect.y;
rects[i].width *= scale;
rects[i].height *= scale;
slots.push([rects[i].x, rects[i].y, scale, clones[i]]);
slots.push([rects[i].x, rects[i].y, rects[i].width, rects[i].height, clones[i]]);
}
return slots;
}
}
let winInjections, workspaceInjections;
export default class NativeWindowPlacementExtension extends Extension {
constructor(metadata) {
super(metadata);
function resetState() {
winInjections = { };
workspaceInjections = { };
}
function enable() {
resetState();
let settings = ExtensionUtils.getSettings();
workspaceInjections['_getBestLayout'] = Workspace.Workspace.prototype._getBestLayout;
Workspace.Workspace.prototype._getBestLayout = function (windows) {
let strategy = new NaturalLayoutStrategy(settings);
let layout = { strategy };
strategy.computeLayout(windows, layout);
return layout;
};
// position window titles on top of windows in overlay
winInjections['relayout'] = Workspace.WindowOverlay.prototype.relayout;
Workspace.WindowOverlay.prototype.relayout = function (animate) {
if (settings.get_boolean('window-captions-on-top')) {
let [, , , cloneHeight] = this._windowClone.slot;
this.title.translation_y = -cloneHeight;
}
winInjections['relayout'].call(this, animate);
};
}
function removeInjection(object, injection, name) {
if (injection[name] === undefined)
delete object[name];
else
object[name] = injection[name];
}
function disable() {
var i;
for (i in workspaceInjections)
removeInjection(Workspace.Workspace.prototype, workspaceInjections, i);
for (i in winInjections)
removeInjection(Workspace.WindowOverlay.prototype, winInjections, i);
global.stage.queue_relayout();
resetState();
this._injectionManager = new InjectionManager();
}
enable() {
const settings = this.getSettings();
const layoutProto = Workspace.WorkspaceLayout.prototype;
const previewProto = WindowPreview.prototype;
this._injectionManager.overrideMethod(layoutProto, '_createBestLayout', () => {
/* eslint-disable no-invalid-this */
return function () {
this._layoutStrategy = new NaturalLayoutStrategy({
monitor: Main.layoutManager.monitors[this._monitorIndex],
}, settings);
return this._layoutStrategy.computeLayout(this._sortedWindows);
};
/* eslint-enable no-invalid-this */
});
// position window titles on top of windows in overlay
this._injectionManager.overrideMethod(previewProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
if (!settings.get_boolean('window-captions-on-top'))
return;
const alignConstraint = this._title.get_constraints().find(
c => c.align_axis && c.align_axis === Clutter.AlignAxis.Y_AXIS);
alignConstraint.factor = 0;
const bindConstraint = this._title.get_constraints().find(
c => c.coordinate && c.coordinate === Clutter.BindCoordinate.Y);
bindConstraint.offset = 0;
};
/* eslint-enable no-invalid-this */
});
this._injectionManager.overrideMethod(previewProto, '_adjustOverlayOffsets', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
if (settings.get_boolean('window-captions-on-top'))
this._title.translation_y = -this._title.translation_y;
};
/* eslint-enable no-invalid-this */
});
}
disable() {
this._injectionManager.clear();
global.stage.queue_relayout();
}
}

View File

@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,

View File

@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2016 Florian Müllner <fmuellner@gnome.org>
SPDX-License-Identifier: GPL-2.0-or-later
-->
<schemalist gettext-domain="gnome-shell-extensions">
<schema id="org.gnome.shell.extensions.native-window-placement" path="/org/gnome/shell/extensions/native-window-placement/">
<key name="use-more-screen" type="b">

View File

@@ -1,9 +0,0 @@
.window-caption {
-shell-caption-spacing: 13px; /* current caption height is 26px => set it to half of it. TODO: better solution needed */
}
.window-picker {
-horizontal-spacing: 32px;
-vertical-spacing: 32px;
padding: 64px 32px;
}

View File

@@ -1,58 +1,50 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init enable disable */
// SPDX-FileCopyrightText: 2011 Vamsi Krishna Brahmajosyula <vamsikrishna.brahmajosyula@gmail.com>
// SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
// SPDX-FileCopyrightText: 2013 Florian Müllner <fmuellner@gnome.org>
// SPDX-FileCopyrightText: 2016 Rémy Lefevre <lefevreremy@gmail.com>
//
// SPDX-License-Identifier: GPL-2.0-or-later
const { Clutter, GObject, St } = imports.gi;
import Clutter from 'gi://Clutter';
import GObject from 'gi://GObject';
import St from 'gi://St';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import {PlacesManager} from './placeDisplay.js';
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = x => x;
const Me = ExtensionUtils.getCurrentExtension();
const PlaceDisplay = Me.imports.placeDisplay;
class PlaceMenuItem extends PopupMenu.PopupImageMenuItem {
static {
GObject.registerClass(this);
}
const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass(
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(info) {
super._init();
this._info = info;
this._icon = new St.Icon({
gicon: info.icon,
icon_size: PLACE_ICON_SIZE,
constructor(info) {
super(info.name, info.icon, {
style_class: 'place-menu-item',
});
this.add_child(this._icon);
this._label = new St.Label({ text: info.name, x_expand: true });
this.add_child(this._label);
this._info = info;
if (info.isRemovable()) {
this._ejectIcon = new St.Icon({
icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon',
});
this._ejectButton = new St.Button({ child: this._ejectIcon });
this._ejectButton = new St.Button({
child: this._ejectIcon,
style_class: 'button',
});
this._ejectButton.connect('clicked', info.eject.bind(info));
this.add_child(this._ejectButton);
}
this._changedId = info.connect('changed',
this._propertiesChanged.bind(this));
}
destroy() {
if (this._changedId) {
this._info.disconnect(this._changedId);
this._changedId = 0;
}
super.destroy();
info.connectObject('changed',
this._propertiesChanged.bind(this), this);
}
activate(event) {
@@ -62,10 +54,10 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
}
_propertiesChanged(info) {
this._icon.gicon = info.icon;
this._label.text = info.name;
this.setIcon(info.icon);
this.label.text = info.name;
}
});
}
const SECTIONS = [
'special',
@@ -74,27 +66,27 @@ const SECTIONS = [
'network',
];
let PlacesMenu = GObject.registerClass(
class PlacesMenu extends PanelMenu.Button {
_init() {
super._init(0.0, _('Places'));
static {
GObject.registerClass(this);
}
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
let label = new St.Label({
constructor() {
super(0.5, _('Places'));
const label = new St.Label({
text: _('Places'),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
hbox.add_child(label);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.add_actor(hbox);
this.add_child(label);
this.placesManager = new PlaceDisplay.PlacesManager();
this.placesManager = new PlacesManager();
this._sections = { };
for (let i = 0; i < SECTIONS.length; i++) {
let id = SECTIONS[i];
const id = SECTIONS[i];
this._sections[id] = new PopupMenu.PopupMenuSection();
this.placesManager.connect(`${id}-updated`, () => {
this._redisplay(id);
@@ -118,30 +110,27 @@ class PlacesMenu extends PanelMenu.Button {
}
_create(id) {
let places = this.placesManager.get(id);
const places = this.placesManager.get(id);
for (let i = 0; i < places.length; i++)
this._sections[id].addMenuItem(new PlaceMenuItem(places[i]));
this._sections[id].actor.visible = places.length > 0;
}
});
function init() {
ExtensionUtils.initTranslations();
}
let _indicator;
export default class PlacesMenuExtension extends Extension {
enable() {
this._indicator = new PlacesMenu();
function enable() {
_indicator = new PlacesMenu();
let pos = Main.sessionMode.panel.left.length;
if ('apps-menu' in Main.panel.statusArea)
pos++;
Main.panel.addToStatusArea('places-menu', this._indicator, pos, 'left');
}
let pos = Main.sessionMode.panel.left.indexOf('appMenu');
if ('apps-menu' in Main.panel.statusArea)
pos++;
Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
}
function disable() {
_indicator.destroy();
disable() {
this._indicator.destroy();
delete this._indicator;
}
}

View File

@@ -1,7 +1,12 @@
# SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
#
# SPDX-License-Identifier: GPL-2.0-or-later
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_sources += files('placeDisplay.js')

View File

@@ -1,26 +1,32 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
// SPDX-FileCopyrightText: 2012 Giovanni Campagna <gcampagna@src.gnome.org>
// SPDX-FileCopyrightText: 2013 Debarshi Ray <debarshir@gnome.org>
// SPDX-FileCopyrightText: 2015 Florian Müllner <fmuellner@gnome.org>
// SPDX-FileCopyrightText: 2016 Rémy Lefevre <lefevreremy@gmail.com>
// SPDX-FileCopyrightText: 2017 Christian Kellner <christian@kellner.me>
//
// SPDX-License-Identifier: GPL-2.0-or-later
const { Gio, GLib, Shell } = imports.gi;
const Signals = imports.signals;
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import Shell from 'gi://Shell';
import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
const Main = imports.ui.main;
const ShellMountOperation = imports.ui.shellMountOperation;
import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as ShellMountOperation from 'resource:///org/gnome/shell/ui/shellMountOperation.js';
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = x => x;
Gio._promisify(Gio.AppInfo, 'launch_default_for_uri_async');
Gio._promisify(Gio.File.prototype, 'mount_enclosing_volume');
const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
const Hostname1Iface = '<node> \
<interface name="org.freedesktop.hostname1"> \
<property name="PrettyHostname" type="s" access="read" /> \
</interface> \
</node>';
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
class PlaceInfo {
class PlaceInfo extends EventEmitter {
constructor(...params) {
super();
this._init(...params);
}
@@ -28,7 +34,7 @@ class PlaceInfo {
this.kind = kind;
this.file = file;
this.name = name || this._getFileName();
this.icon = icon ? new Gio.ThemedIcon({ name: icon }) : this.getIcon();
this.icon = icon ? new Gio.ThemedIcon({name: icon}) : this.getIcon();
}
destroy() {
@@ -40,22 +46,22 @@ class PlaceInfo {
async _ensureMountAndLaunch(context, tryMount) {
try {
await this._launchDefaultForUri(this.file.get_uri(), context, null);
await Gio.AppInfo.launch_default_for_uri_async(this.file.get_uri(), context, null);
} catch (err) {
if (!err.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
Main.notifyError(_('Failed to launch “%s”').format(this.name), err.message);
return;
}
let source = {
get_icon: () => this.icon,
const source = {
get_drive: () => null,
};
let op = new ShellMountOperation.ShellMountOperation(source);
const op = new ShellMountOperation.ShellMountOperation(source);
try {
await this._mountEnclosingVolume(0, op.mountOp, null);
await this.file.mount_enclosing_volume(0, op.mountOp, null);
if (tryMount)
this._ensureMountAndLaunch(context, false);
this._ensureMountAndLaunch(context, false).catch(logError);
} catch (e) {
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
Main.notifyError(_('Failed to mount volume for “%s”').format(this.name), e.message);
@@ -66,8 +72,8 @@ class PlaceInfo {
}
launch(timestamp) {
let launchContext = global.create_app_launch_context(timestamp, -1);
this._ensureMountAndLaunch(launchContext, true);
const launchContext = global.create_app_launch_context(timestamp, -1);
this._ensureMountAndLaunch(launchContext, true).catch(logError);
}
getIcon() {
@@ -77,7 +83,7 @@ class PlaceInfo {
null,
(file, result) => {
try {
let info = file.query_info_finish(result);
const info = file.query_info_finish(result);
this.icon = info.get_symbolic_icon();
this.emit('changed');
} catch (e) {
@@ -91,22 +97,22 @@ class PlaceInfo {
// icon from the query info above
switch (this.kind) {
case 'network':
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'});
case 'devices':
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'});
case 'special':
case 'bookmarks':
default:
if (!this.file.is_native())
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'});
else
return new Gio.ThemedIcon({ name: 'folder-symbolic' });
return new Gio.ThemedIcon({name: 'folder-symbolic'});
}
}
_getFileName() {
try {
let info = this.file.query_info('standard::display-name', 0, null);
const info = this.file.query_info('standard::display-name', 0, null);
return info.get_display_name();
} catch (e) {
if (e instanceof Gio.IOErrorEnum)
@@ -114,74 +120,21 @@ class PlaceInfo {
throw e;
}
}
_launchDefaultForUri(uri, context, cancel) {
return new Promise((resolve, reject) => {
Gio.AppInfo.launch_default_for_uri_async(uri, context, cancel, (o, res) => {
try {
Gio.AppInfo.launch_default_for_uri_finish(res);
resolve();
} catch (e) {
reject(e);
}
});
});
}
_mountEnclosingVolume(flags, mountOp, cancel) {
return new Promise((resolve, reject) => {
this.file.mount_enclosing_volume(flags, mountOp, cancel, (o, res) => {
try {
this.file.mount_enclosing_volume_finish(res);
resolve();
} catch (e) {
reject(e);
}
});
});
}
}
Signals.addSignalMethods(PlaceInfo.prototype);
class RootInfo extends PlaceInfo {
_init() {
super._init('devices', Gio.File.new_for_path('/'), _('Computer'));
let busName = 'org.freedesktop.hostname1';
let objPath = '/org/freedesktop/hostname1';
new Hostname1(Gio.DBus.system, busName, objPath, (obj, error) => {
if (error)
return;
this._proxy = obj;
this._proxy.connect('g-properties-changed',
this._propertiesChanged.bind(this));
this._propertiesChanged(obj);
});
}
getIcon() {
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
}
_propertiesChanged(proxy) {
// GDBusProxy will emit a g-properties-changed when hostname1 goes down
// ignore it
if (proxy.g_name_owner) {
this.name = proxy.PrettyHostname || _('Computer');
this.emit('changed');
}
}
destroy() {
if (this._proxy) {
this._proxy.run_dispose();
this._proxy = null;
}
super.destroy();
}
}
class NautilusSpecialInfo extends PlaceInfo {
constructor(file, name, icon) {
super('special', file, name, icon);
const appSystem = Shell.AppSystem.get_default();
this._app = appSystem.lookup_app('org.gnome.Nautilus.desktop');
}
launch(timestamp) {
const launchContext = global.create_app_launch_context(timestamp, -1);
this._app.appInfo.launch([this.file], launchContext);
}
}
class PlaceDeviceInfo extends PlaceInfo {
_init(kind, mount) {
@@ -194,11 +147,11 @@ class PlaceDeviceInfo extends PlaceInfo {
}
isRemovable() {
return this._mount.can_eject();
return this._mount.can_eject() || this._mount.can_unmount();
}
eject() {
let unmountArgs = [
const unmountArgs = [
Gio.MountUnmountFlags.NONE,
new ShellMountOperation.ShellMountOperation(this._mount).mountOp,
null, // Gio.Cancellable
@@ -230,7 +183,7 @@ class PlaceDeviceInfo extends PlaceInfo {
}
_reportFailure(exception) {
let msg = _('Ejecting drive “%s” failed:').format(this._mount.get_name());
const msg = _('Ejecting drive “%s” failed:').format(this._mount.get_name());
Main.notifyError(msg, exception.message);
}
}
@@ -250,7 +203,7 @@ class PlaceVolumeInfo extends PlaceInfo {
this._volume.mount(0, null, null, (volume, result) => {
volume.mount_finish(result);
let mount = volume.get_mount();
const mount = volume.get_mount();
this.file = mount.get_root();
super.launch(timestamp);
});
@@ -261,16 +214,10 @@ class PlaceVolumeInfo extends PlaceInfo {
}
}
const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_DOCUMENTS,
GLib.UserDirectory.DIRECTORY_PICTURES,
GLib.UserDirectory.DIRECTORY_MUSIC,
GLib.UserDirectory.DIRECTORY_DOWNLOAD,
GLib.UserDirectory.DIRECTORY_VIDEOS,
];
var PlacesManager = class {
export class PlacesManager extends EventEmitter {
constructor() {
super();
this._places = {
special: [],
devices: [],
@@ -278,16 +225,32 @@ var PlacesManager = class {
network: [],
};
this._settings = new Gio.Settings({ schema_id: BACKGROUND_SCHEMA });
this._showDesktopIconsChangedId = this._settings.connect(
'changed::show-desktop-icons', this._updateSpecials.bind(this));
this._settings = new Gio.Settings({schema_id: BACKGROUND_SCHEMA});
this._settings.connectObject('changed::show-desktop-icons',
() => this._updateSpecials(), this);
this._privacySettings = new Gio.Settings({
schema_id: 'org.gnome.desktop.privacy',
});
this._privacySettings.connectObject('changed::remember-recent-files',
() => this._updateSpecials(), this);
this._updateSpecials();
/*
* Show devices, code more or less ported from nautilus-places-sidebar.c
*/
this._volumeMonitor = Gio.VolumeMonitor.get();
this._connectVolumeMonitorSignals();
this._volumeMonitor.connectObject(
'volume-added', () => this._updateMounts(),
'volume-removed', () => this._updateMounts(),
'volume-changed', () => this._updateMounts(),
'mount-added', () => this._updateMounts(),
'mount-removed', () => this._updateMounts(),
'mount-changed', () => this._updateMounts(),
'drive-connected', () => this._updateMounts(),
'drive-disconnected', () => this._updateMounts(),
'drive-changed', () => this._updateMounts(),
this);
this._updateMounts();
this._bookmarksFile = this._findBookmarksFile();
@@ -304,7 +267,7 @@ var PlacesManager = class {
GLib.PRIORITY_DEFAULT, 100, () => {
this._bookmarkTimeoutId = 0;
this._reloadBookmarks();
return false;
return GLib.SOURCE_REMOVE;
});
});
@@ -312,34 +275,14 @@ var PlacesManager = class {
}
}
_connectVolumeMonitorSignals() {
const signals = [
'volume-added',
'volume-removed',
'volume-changed',
'mount-added',
'mount-removed',
'mount-changed',
'drive-connected',
'drive-disconnected',
'drive-changed',
];
this._volumeMonitorSignals = [];
let func = this._updateMounts.bind(this);
for (let i = 0; i < signals.length; i++) {
let id = this._volumeMonitor.connect(signals[i], func);
this._volumeMonitorSignals.push(id);
}
}
destroy() {
if (this._settings)
this._settings.disconnect(this._showDesktopIconsChangedId);
this._settings?.disconnectObject(this);
this._settings = null;
for (let i = 0; i < this._volumeMonitorSignals.length; i++)
this._volumeMonitor.disconnect(this._volumeMonitorSignals[i]);
this._privacySettings.disconnectObject(this);
this._privacySettings = null;
this._volumeMonitor.disconnectObject(this);
if (this._monitor)
this._monitor.cancel();
@@ -347,74 +290,92 @@ var PlacesManager = class {
GLib.source_remove(this._bookmarkTimeoutId);
}
_shouldShowRecent() {
const vfs = Gio.Vfs.get_default();
const schemes = vfs.get_supported_uri_schemes();
return this._privacySettings.get_boolean('remember-recent-files') &&
schemes.includes('recent');
}
_updateSpecials() {
this._places.special.forEach(p => p.destroy());
this._places.special = [];
let homePath = GLib.get_home_dir();
const appSystem = Shell.AppSystem.get_default();
const nautilusApp = appSystem.lookup_app('org.gnome.Nautilus.desktop');
const defaultFm = Gio.AppInfo.get_default_for_type('inode/directory', true);
const showNautilusSpecials =
nautilusApp && defaultFm && nautilusApp.appInfo.equal(defaultFm);
const homeFile = Gio.File.new_for_path(GLib.get_home_dir());
this._places.special.push(new PlaceInfo(
'special',
Gio.File.new_for_path(homePath),
homeFile,
_('Home')));
let specials = [];
let dirs = DEFAULT_DIRECTORIES.slice();
if (this._settings.get_boolean('show-desktop-icons'))
dirs.push(GLib.UserDirectory.DIRECTORY_DESKTOP);
for (let i = 0; i < dirs.length; i++) {
let specialPath = GLib.get_user_special_dir(dirs[i]);
if (!specialPath || specialPath === homePath)
continue;
let file = Gio.File.new_for_path(specialPath), info;
try {
info = new PlaceInfo('special', file);
} catch (e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
continue;
throw e;
}
specials.push(info);
if (this._shouldShowRecent()) {
this._places.special.push(new PlaceInfo(
'special',
Gio.File.new_for_uri('recent:///'),
_('Recent')));
}
specials.sort((a, b) => GLib.utf8_collate(a.name, b.name));
this._places.special = this._places.special.concat(specials);
if (showNautilusSpecials) {
this._places.special.push(new NautilusSpecialInfo(
Gio.File.new_for_uri('starred:///'),
_('Starred'),
'starred-symbolic'));
}
if (this._settings.get_boolean('show-desktop-icons')) {
const desktopPath = GLib.get_user_special_dir(
GLib.UserDirectory.DIRECTORY_DESKTOP);
const desktopFile = desktopPath
? Gio.File.new_for_path(desktopPath)
: null;
if (desktopFile && !desktopFile.equal(homeFile)) {
this._places.special.push(
new PlaceInfo('special', desktopFile));
}
}
if (showNautilusSpecials) {
this._places.special.push(new NautilusSpecialInfo(
Gio.File.new_for_uri('x-network-view:///'),
_('Network'),
'network-workgroup-symbolic'));
}
this._places.special.push(new PlaceInfo(
'special',
Gio.File.new_for_uri('trash:///'),
_('Trash')));
this.emit('special-updated');
}
_updateMounts() {
let networkMounts = [];
let networkVolumes = [];
const networkMounts = [];
const networkVolumes = [];
this._places.devices.forEach(p => p.destroy());
this._places.devices = [];
this._places.network.forEach(p => p.destroy());
this._places.network = [];
/* Add standard places */
this._places.devices.push(new RootInfo());
this._places.network.push(new PlaceInfo(
'network',
Gio.File.new_for_uri('network:///'),
_('Browse Network'),
'network-workgroup-symbolic'));
/* first go through all connected drives */
let drives = this._volumeMonitor.get_connected_drives();
const drives = this._volumeMonitor.get_connected_drives();
for (let i = 0; i < drives.length; i++) {
let volumes = drives[i].get_volumes();
const volumes = drives[i].get_volumes();
for (let j = 0; j < volumes.length; j++) {
let identifier = volumes[j].get_identifier('class');
const identifier = volumes[j].get_identifier('class');
if (identifier && identifier.includes('network')) {
networkVolumes.push(volumes[j]);
} else {
let mount = volumes[j].get_mount();
const mount = volumes[j].get_mount();
if (mount)
this._addMount('devices', mount);
}
@@ -422,23 +383,23 @@ var PlacesManager = class {
}
/* add all volumes that is not associated with a drive */
let volumes = this._volumeMonitor.get_volumes();
const volumes = this._volumeMonitor.get_volumes();
for (let i = 0; i < volumes.length; i++) {
if (volumes[i].get_drive())
continue;
let identifier = volumes[i].get_identifier('class');
const identifier = volumes[i].get_identifier('class');
if (identifier && identifier.includes('network')) {
networkVolumes.push(volumes[i]);
} else {
let mount = volumes[i].get_mount();
const mount = volumes[i].get_mount();
if (mount)
this._addMount('devices', mount);
}
}
/* add mounts that have no volume (/etc/mtab mounts, ftp, sftp,...) */
let mounts = this._volumeMonitor.get_mounts();
const mounts = this._volumeMonitor.get_mounts();
for (let i = 0; i < mounts.length; i++) {
if (mounts[i].is_shadowed())
continue;
@@ -446,7 +407,7 @@ var PlacesManager = class {
if (mounts[i].get_volume())
continue;
let root = mounts[i].get_default_location();
const root = mounts[i].get_default_location();
if (!root.is_native()) {
networkMounts.push(mounts[i]);
continue;
@@ -455,7 +416,7 @@ var PlacesManager = class {
}
for (let i = 0; i < networkVolumes.length; i++) {
let mount = networkVolumes[i].get_mount();
const mount = networkVolumes[i].get_mount();
if (mount) {
networkMounts.push(mount);
continue;
@@ -472,7 +433,7 @@ var PlacesManager = class {
}
_findBookmarksFile() {
let paths = [
const paths = [
GLib.build_filenamev([GLib.get_user_config_dir(), 'gtk-3.0', 'bookmarks']),
GLib.build_filenamev([GLib.get_home_dir(), '.gtk-bookmarks']),
];
@@ -486,22 +447,21 @@ var PlacesManager = class {
}
_reloadBookmarks() {
this._bookmarks = [];
let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
let lines = content.split('\n');
const content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
const lines = content.split('\n');
let bookmarks = [];
const bookmarks = [];
for (let i = 0; i < lines.length; i++) {
let line = lines[i];
let components = line.split(' ');
let [bookmark] = components;
const line = lines[i];
const components = line.split(' ');
const [bookmark] = components;
if (!bookmark)
continue;
let file = Gio.File.new_for_uri(bookmark);
const file = Gio.File.new_for_uri(bookmark);
if (file.is_native() && !file.query_exists(null))
continue;
@@ -536,35 +496,16 @@ var PlacesManager = class {
}
_addMount(kind, mount) {
let devItem;
try {
devItem = new PlaceDeviceInfo(kind, mount);
} catch (e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
return;
throw e;
}
const devItem = new PlaceDeviceInfo(kind, mount);
this._places[kind].push(devItem);
}
_addVolume(kind, volume) {
let volItem;
try {
volItem = new PlaceVolumeInfo(kind, volume);
} catch (e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
return;
throw e;
}
const volItem = new PlaceVolumeInfo(kind, volume);
this._places[kind].push(volItem);
}
get(kind) {
return this._places[kind];
}
};
Signals.addSignalMethods(PlacesManager.prototype);
}

View File

@@ -1 +1,14 @@
/* none used*/
/*
* SPDX-FileCopyrightText: 2020 Florian Müllner <fmuellner@gnome.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
.place-menu-item .button {
border-radius: 99px;
padding: 3px;
min-height: auto;
}
.place-menu-item .button:ltr { margin-left: 6px; }
.place-menu-item .button:rtl { margin-right: 6px; }

Some files were not shown because too many files have changed in this diff Show More