Compare commits

...

287 Commits

Author SHA1 Message Date
Jeremy Bícha
e864d0d1cc New upstream version 45~beta 2023-08-16 22:55:57 -04: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
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
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
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
Vasil Pupkin
497d175ae9 Update Belarusian translation 2022-11-27 18:57:09 +00:00
Jeremy Bicha
6bee46bf1a New upstream version 43.1 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
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
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
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
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
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
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
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
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
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
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)
5edffcd859 New upstream version 42~beta 2022-02-23 02:57:09 +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
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
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
Jeremy Bicha
db131fc7da New upstream version 41.0 2021-10-03 20:42:40 -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
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
80c6656c4f New upstream version 40.4 2021-08-29 08:50:41 -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
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
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
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
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
Juliano de Souza Camargo
50bd597baa Update Portuguese translation
(cherry picked from commit 12eedcf6f7)
2021-06-07 10:22:07 +00:00
Hugo Carvalho
4403b54fbc Update Portuguese translation
(cherry picked from commit 08d382facc)
2021-06-02 16:10:00 +00:00
Marco Trevisan (Treviño)
d9ae9a023a New upstream version 40.1 2021-05-30 17:53:15 +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
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
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
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
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
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
Jeremy Bicha
41664b152c New upstream version 3.38.1 2020-10-06 17:36:33 -04:00
Simon McVittie
8957c277a1 New upstream version 3.38.0 2020-09-22 09:16:27 +01:00
Marco Trevisan (Treviño)
8b9be8f120 New upstream version 3.37.91 2020-08-27 08:18:07 +02:00
Laurent Bigonville
d3b687df8b New upstream version 3.36.2 2020-05-03 10:01:14 +02:00
Florian Müllner
df463177e7 Bump version to 3.36.2
Update NEWS.
2020-04-29 22:45:40 +02:00
Florian Müllner
62af36ebfa Update sass submodule 2020-04-29 22:44:25 +02:00
Kristjan SCHMIDT
c5246b7415 Update Esperanto translation 2020-04-18 09:00:46 +00:00
Xiaoguang Wang
d39c1fd685 windowPicker: Wrong signal ID _nWorkspacesNotifyId
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/106


(cherry picked from commit f9aaa732b2)
2020-04-10 14:31:24 +00:00
Florian Müllner
665a7fbbcb 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


(cherry picked from commit 7b82c5e12b)
2020-04-10 14:30:49 +00:00
Simon McVittie
a4987d03b8 New upstream version 3.36.1 2020-04-02 10:14:07 +01:00
Yosef Or Boczko
c477f10bfb Update Hebrew translation 2020-04-01 15:22:37 +00:00
Florian Müllner
2ae0f368b9 Bump version to 3.36.1
Update NEWS.
2020-03-31 00:58:41 +02:00
Iain Lane
ac33058086 New upstream version 3.36.0 2020-03-16 12:13:26 +00:00
Marco Trevisan (Treviño)
c7a08aaf74 New upstream version 3.35.91 2020-02-24 14:48:45 +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
c95d197c5c New upstream version 3.34.1 2019-10-08 22:45:42 -04:00
Iain Lane
ae8749b7e1 New upstream version 3.34.0 2019-09-10 10:53:04 +01:00
Iain Lane
84a548c0b9 New upstream version 3.33.92 2019-09-05 18:21:22 +01:00
Marco Trevisan (Treviño)
f047cb0baf New upstream version 3.33.90 2019-08-13 04:25:54 +02:00
Iain Lane
28494941e1 New upstream version 3.32.0 2019-03-12 16:33:30 +00:00
Iain Lane
b70059ac4d New upstream version 3.31.92 2019-03-06 15:39:47 +00:00
Iain Lane
eb567c1120 New upstream version 3.31.90 2019-02-21 10:08:46 +00:00
Simon McVittie
b1eb9b9080 New upstream version 3.30.1 2018-11-02 09:22:09 +00:00
Jeremy Bicha
a0b6535210 New upstream version 3.30.0 2018-09-05 12:32:25 -04:00
Simon McVittie
9a9b3afa31 New upstream version 3.29.91 2018-08-20 19:55:42 +01:00
Simon McVittie
59bc054ef6 New upstream version 3.29.90 2018-08-02 10:32:10 +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
f17a519c38 New upstream version 3.29.3 2018-07-27 08:43:26 +01:00
Jeremy Bicha
8223ca9739 New upstream version 3.28.1 2018-05-14 21:50:46 -04:00
Jeremy Bicha
fe20c27b60 New upstream version 3.28.0 2018-03-15 21:28:20 -04:00
Jeremy Bicha
5ba59d1096 New upstream version 3.27.92 2018-03-05 20:55:43 -05:00
Jeremy Bicha
0ad1e9bbc1 New upstream version 3.27.91 2018-02-23 19:30:14 -05:00
Jeremy Bicha
5ea14f063f New upstream version 3.26.2 2017-12-15 15:11:42 -05:00
Jeremy Bicha
3cc3d03f0b Initial upstream branch 2017-12-15 15:11:26 -05: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
Xavi Ivars
daa7b9b6ab [l10n] Updated Catalan (Valencian) translation 2017-10-05 14:02:06 +02:00
113 changed files with 5627 additions and 8981 deletions

29
.gitignore vendored
View File

@@ -1,29 +0,0 @@
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/
*~
*.gmo
metadata.json
*.desktop
*.gschema.valid
*.session

View File

@@ -1,95 +1,114 @@
include:
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
stages:
- pre_review
- review
- build
- pre_review
- prepare
- review
- build
- deploy
default:
# Cancel jobs if newer commits are pushed to the branch
interruptible: true
# Auto-retry jobs in case of infra failures
retry:
max: 1
when:
- 'runner_system_failure'
- 'stuck_or_timeout_failure'
- 'scheduler_failure'
- 'api_failure'
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/35:2022-02-18.0
# Cancel jobs if newer commits are pushed to the branch
interruptible: true
# Auto-retry jobs in case of infra failures
retry:
max: 1
when:
- 'runner_system_failure'
- 'stuck_or_timeout_failure'
- 'scheduler_failure'
- 'api_failure'
variables:
LINT_LOG: "eslint-report.xml"
JS_LOG: "js-report.txt"
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
LINT_LOG: "eslint-report.xml"
workflow:
rules:
- if: '$CI_MERGE_REQUEST_IID'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH'
rules:
- if: '$CI_MERGE_REQUEST_IID'
- if: '$CI_COMMIT_TAG'
- if: '$CI_COMMIT_BRANCH'
.pipeline_guard: &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'
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'
.gnome-shell-extensions.fedora:34:
variables:
FDO_DISTRIBUTION_VERSION: 34
FDO_DISTRIBUTION_TAG: '2021-08-31.0'
FDO_DISTRIBUTION_PACKAGES: >
meson git gettext sassc
.prereview_req: &prereview_req
needs:
- check_commit_log
- check-merge-request
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
<<: *pipeline_guard
artifacts:
expire_in: 1 week
paths:
- commit-message-junit-report.xml
reports:
junit: commit-message-junit-report.xml
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
<<: *pipeline_guard
artifacts:
expire_in: 1 week
paths:
- commit-message-junit-report.xml
reports:
junit: commit-message-junit-report.xml
check-merge-request:
extends:
- .fdo.ci-fairy
stage: pre_review
script:
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
then
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
else
echo "Not a merge request" ;
fi
<<: *pipeline_guard
artifacts:
expire_in: 1 week
paths:
- check-merge-request-report.xml
reports:
junit: check-merge-request-report.xml
extends:
- .fdo.ci-fairy
stage: pre_review
script:
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
then
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
else
echo "Not a merge request" ;
fi
<<: *pipeline_guard
artifacts:
expire_in: 1 week
paths:
- check-merge-request-report.xml
reports:
junit: check-merge-request-report.xml
build-fedora-container:
extends:
- .fdo.container-build@fedora@x86_64
- .gnome-shell-extensions.fedora:34
stage: prepare
<<: *prereview_req
js_check:
stage: review
<<: *prereview_req
script:
- find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG)
artifacts:
paths:
- ${JS_LOG}
when: on_failure
- gjs-check-syntax
eslint:
stage: review
<<: *prereview_req
script:
- eslint -o $LINT_LOG -f junit extensions
- export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout
artifacts:
paths:
- ${LINT_LOG}
@@ -98,7 +117,7 @@ eslint:
build-bundles:
stage: build
needs: ["check_commit_log"]
<<: *prereview_req
script:
- ./export-zips.sh
artifacts:
@@ -106,3 +125,45 @@ build-bundles:
expose_as: 'Get Extension bundles here'
paths:
- zip-files/
fedora-build:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell-extensions.fedora:34
stage: build
needs:
- build-fedora-container
script:
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C build
- meson test -C build
- meson install -C build
artifacts:
paths:
- build
fedora-dist:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell-extensions.fedora:34
stage: deploy
needs:
- fedora-build
variables:
GIT_SUBMODULE_STRATEGY: normal
script:
- meson dist -C build
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes:
- "**/meson.build"
- meson/*
fedora-dist-tarball:
extends: fedora-dist
artifacts:
expose_as: 'Get tarball here'
paths:
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
rules:
- if: '$CI_COMMIT_TAG'

54
.gitlab-ci/run-eslint Executable file
View File

@@ -0,0 +1,54 @@
#!/usr/bin/env node
const {ESLint} = require('eslint');
console.log(`Running ESLint version ${ESLint.version}...`);
const fs = require('fs');
const path = require('path');
function hasOption(...names) {
return process.argv.some(arg => names.includes(arg));
}
function getOption(...names) {
const optIndex =
process.argv.findIndex(arg => names.includes(arg)) + 1;
if (optIndex === 0)
return undefined;
return process.argv[optIndex];
}
(async function main() {
const outputOption = getOption('--output-file', '-o');
const outputPath = outputOption ? path.resolve(outputOption) : null;
const sourceDir = path.dirname(process.argv[1]);
process.chdir(path.resolve(sourceDir, '..'));
const sources = ['extensions'];
const eslint = new ESLint();
const results = await eslint.lintFiles(sources);
const formatter = await eslint.loadFormatter(getOption('--format', '-f'));
const resultText = formatter.format(results);
if (outputPath) {
fs.mkdirSync(path.dirname(outputPath), {recursive: true});
fs.writeFileSync(outputPath, resultText);
if (hasOption('--stdout')) {
const consoleFormatter = await eslint.loadFormatter();
console.log(consoleFormatter.format(results));
}
} else {
console.log(resultText);
}
process.exitCode = results.some(r => r.errorCount > 0) ? 1 : 0;
})().catch((error) => {
process.exitCode = 1;
console.error(error);
});

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

@@ -28,4 +28,4 @@ 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

217
NEWS
View File

@@ -1,30 +1,203 @@
40.4
====
* drive-menu: Fix indicator visibility [Florian; !176]
* Use distinct gettext domain for e.g.o uploads [Florian; #335]
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
40.3
====
* drive-menu: Improve detection of network mounts [Florian; !27]
* Misc. bug fixes [Florian; #340]
Contributors:
Florian Müllner
40.2
====
* window-list: Extend reactive area of minimap to screen edges [Adam; !171]
* Misc. bug fixes [Florian; !172]
Contributors:
Adam Goode, Florian Müllner
Translators:
Hugo Carvalho [pt], Juliano de Souza Camargo [pt]
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
====

View File

@@ -69,6 +69,19 @@ GSettings key.
Adds a simple workspace switcher to the top bar.
## Default branch
The default development branch is `main`. If you still have a local
checkout under the old name, use:
```sh
git checkout master
git branch -m master main
git fetch
git branch --unset-upstream
git branch -u origin/master
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
```
## License
GNOME Shell Extensions are distributed under the terms of the GNU General

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,11 +1,11 @@
{
"parentMode": "user",
"stylesheetName": "gnome-classic.css",
"colorScheme": "force-light",
"hasOverview": false,
"showWelcomeDialog": false,
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
"panel": { "left": ["appMenu"],
"panel": { "left": [],
"center": [],
"right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"]
"right": ["a11y", "keyboard", "dateMenu", "quickSettings"]
}
}

View File

@@ -1,5 +0,0 @@
@import url("gnome-classic.css");
stage {
-st-icon-style: symbolic;
}

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Name=GNOME Classic on Wayland
Comment=This session logs you into GNOME Classic
Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
TryExec=gnome-session
Type=Application
DesktopNames=GNOME-Classic;GNOME;
X-GDM-SessionRegisters=true

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Name=GNOME Classic on Xorg
Comment=This session logs you into GNOME Classic
Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
TryExec=gnome-session
Type=Application
DesktopNames=GNOME-Classic;GNOME;
X-GDM-SessionRegisters=true

View File

@@ -5,3 +5,4 @@ Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
TryExec=gnome-session
Type=Application
DesktopNames=GNOME-Classic;GNOME;
X-GDM-SessionRegisters=true

View File

@@ -1,107 +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;
transition-duration: 0ms;
border: 0;
border-radius: 0px;
&.clock-display {
.clock {
transition-duration: 0ms;
border: 0;
border-radius: 0px;
}
}
&: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; }
}
}
#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

@@ -1,12 +1,34 @@
session_desktop = 'gnome-classic.desktop'
i18n.merge_file('',
input: session_desktop + '.in',
output: session_desktop,
po_dir: '../po',
install: true,
install_dir: xsessiondir,
type: 'desktop'
)
session_desktop_base = 'gnome-classic'
session_desktops = [
session_desktop_base,
session_desktop_base + '-xorg',
session_desktop_base + '-wayland',
]
foreach name: session_desktops
session_desktop = name + '.desktop'
if name.endswith('-xorg')
session_instdir = xsessiondir
elif name.endswith('-wayland')
session_instdir = wlsessiondir
else
# FIXME: The same target can not be copied into two directories.
# There is a workaround in meson/session-post-install.py until proper
# solution arises:
# https://github.com/mesonbuild/meson/issues/2416
session_instdir = xsessiondir
#session_instdir = [ xesssiondir, wlsessiondir ]
endif
i18n.merge_file(
input: session_desktop + '.in',
output: session_desktop,
po_dir: '../po',
install: true,
install_dir: session_instdir,
type: 'desktop'
)
endforeach
classic_uuids = []
foreach e : classic_extensions
@@ -24,74 +46,5 @@ configure_file(
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',
'gnome-shell-sass/_widgets.scss',
'gnome-shell-sass/widgets/_a11y.scss',
'gnome-shell-sass/widgets/_app-grid.scss',
'gnome-shell-sass/widgets/_base.scss',
'gnome-shell-sass/widgets/_buttons.scss',
'gnome-shell-sass/widgets/_calendar.scss',
'gnome-shell-sass/widgets/_check-box.scss',
'gnome-shell-sass/widgets/_corner-ripple.scss',
'gnome-shell-sass/widgets/_dash.scss',
'gnome-shell-sass/widgets/_dialogs.scss',
'gnome-shell-sass/widgets/_entries.scss',
'gnome-shell-sass/widgets/_hotplug.scss',
'gnome-shell-sass/widgets/_ibus-popup.scss',
'gnome-shell-sass/widgets/_keyboard.scss',
'gnome-shell-sass/widgets/_login-dialog.scss',
'gnome-shell-sass/widgets/_looking-glass.scss',
'gnome-shell-sass/widgets/_message-list.scss',
'gnome-shell-sass/widgets/_misc.scss',
'gnome-shell-sass/widgets/_network-dialog.scss',
'gnome-shell-sass/widgets/_notifications.scss',
'gnome-shell-sass/widgets/_osd.scss',
'gnome-shell-sass/widgets/_overview.scss',
'gnome-shell-sass/widgets/_panel.scss',
'gnome-shell-sass/widgets/_popovers.scss',
'gnome-shell-sass/widgets/_screen-shield.scss',
'gnome-shell-sass/widgets/_scrollbars.scss',
'gnome-shell-sass/widgets/_search-entry.scss',
'gnome-shell-sass/widgets/_search-results.scss',
'gnome-shell-sass/widgets/_slider.scss',
'gnome-shell-sass/widgets/_switcher-popup.scss',
'gnome-shell-sass/widgets/_switches.scss',
'gnome-shell-sass/widgets/_tiled-previews.scss',
'gnome-shell-sass/widgets/_window-picker.scss',
'gnome-shell-sass/widgets/_workspace-switcher.scss',
'gnome-shell-sass/widgets/_workspace-thumbnails.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'
]
stylesheet = 'gnome-classic.css'
if fs.exists(stylesheet)
install_data(stylesheet, install_dir: themedir)
else
sassc = find_program('sassc', required: true)
custom_target(stylesheet,
input: fs.replace_suffix(stylesheet, '.scss'),
output: stylesheet,
depend_files: theme_sources,
command: [sassc, '-a', '@INPUT@', '@OUTPUT@'],
install: true,
install_dir: themedir
)
endif
install_data(theme_data, install_dir: themedir)
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
install_data(classic_override, install_dir: schemadir)

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/bin/bash
srcdir=`dirname $0`
srcdir=`(cd $srcdir && pwd)`
@@ -7,7 +7,7 @@ builddir=`mktemp -p $srcdir -d _build.XXXXXX` || exit 1
installdir=`mktemp -p $srcdir -d _install.XXXXXX` || exit 1
meson setup --prefix=$installdir -Dextension_set=all $srcdir $builddir
ninja -C$builddir install
meson install -C $builddir
rm -rf $srcdir/zip-files
mkdir $srcdir/zip-files

View File

@@ -1,20 +1,22 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init enable disable */
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 {
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St,
} = imports.gi;
const Signals = imports.signals;
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.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;
const Me = ExtensionUtils.getCurrentExtension();
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
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();
@@ -26,10 +28,13 @@ 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;
@@ -45,11 +50,8 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
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);
});
textureCache.connectObject('icon-theme-changed',
() => this._updateIcon(), this);
this._updateIcon();
this._delegate = this;
@@ -95,12 +97,15 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
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;
@@ -113,7 +118,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
else
name = _('Favorites');
this.add_child(new St.Label({ text: name }));
this.add_child(new St.Label({text: name}));
this.connect('motion-event', this._onMotionEvent.bind(this));
this.connect('notify::active', this._onActiveChanged.bind(this));
}
@@ -182,11 +187,14 @@ 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;
@@ -196,7 +204,8 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
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)
@@ -212,7 +221,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) {
@@ -231,8 +240,10 @@ class ApplicationsMenu extends PopupMenu.PopupMenu {
}
}
class DesktopTarget {
class DesktopTarget extends EventEmitter {
constructor() {
super();
this._desktop = null;
this._desktopDestroyedId = 0;
@@ -259,9 +270,7 @@ class DesktopTarget {
_setDesktop(desktop) {
if (this._desktop) {
this._desktop.disconnect(this._desktopDestroyedId);
this._desktopDestroyedId = 0;
this._desktop.disconnectObject(this);
delete this._desktop._delegate;
}
@@ -269,9 +278,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;
}
}
@@ -311,10 +320,7 @@ class DesktopTarget {
}
destroy() {
if (this._windowAddedId)
global.window_group.disconnect(this._windowAddedId);
this._windowAddedId = 0;
global.window_group.disconnectObject(this);
this._setDesktop(null);
}
@@ -349,12 +355,14 @@ class DesktopTarget {
return true;
}
}
Signals.addSignalMethods(DesktopTarget.prototype);
let ApplicationsButton = GObject.registerClass(
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);
@@ -374,15 +382,17 @@ class ApplicationsButton extends PanelMenu.Button {
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', () => {
@@ -394,16 +404,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() {
@@ -427,17 +437,9 @@ class ApplicationsButton extends PanelMenu.Button {
_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();
}
@@ -479,12 +481,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();
@@ -505,7 +501,7 @@ class ApplicationsButton extends PanelMenu.Button {
}
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) {
@@ -551,8 +547,8 @@ class ApplicationsButton extends PanelMenu.Button {
_createLayout() {
let 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({vertical: false});
this.leftBox = new St.BoxLayout({vertical: true});
this.applicationsScrollBox = new St.ScrollView({
style_class: 'apps-menu vfade',
x_expand: true,
@@ -574,9 +570,9 @@ class ApplicationsButton extends PanelMenu.Button {
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
this.leftBox.add_child(this.categoriesScrollBox);
this.applicationsBox = new St.BoxLayout({ vertical: true });
this.applicationsBox = new St.BoxLayout({vertical: true});
this.applicationsScrollBox.add_actor(this.applicationsBox);
this.categoriesBox = new St.BoxLayout({ vertical: true });
this.categoriesBox = new St.BoxLayout({vertical: true});
this.categoriesScrollBox.add_actor(this.categoriesBox);
this.mainBox.add(this.leftBox);
@@ -670,21 +666,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

@@ -3,3 +3,5 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -1,6 +1,7 @@
{
"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.",

View File

@@ -0,0 +1,12 @@
<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,22 +1,20 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces
/* exported init enable disable */
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._updateAppConfigs();
@@ -38,7 +36,7 @@ class WindowMover {
let 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);
});
@@ -46,21 +44,14 @@ class WindowMover {
.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('window-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;
}
this._appSystem.disconnectObject(this);
if (this._settings) {
this._settings.run_dispose();
@@ -105,41 +96,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().some(
w => !w.is_on_all_workspaces());
} 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,229 +1,300 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces
/* exported init buildPrefsWidget */
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
const _ = Gettext.gettext;
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 AutoMoveSettingsWidget = GObject.registerClass(
class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
_init() {
super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
class NewItem extends GObject.Object {}
GObject.registerClass(NewItem);
class NewItemModel extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#item = new NewItem();
vfunc_get_item_type() {
return NewItem;
}
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', 'app-info', 'app-info',
GObject.ParamFlags.READWRITE,
Gio.DesktopAppInfo),
'workspace': GObject.ParamSpec.uint(
'workspace', 'workspace', 'workspace',
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 = Gio.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'),
});
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
halign: Gtk.Align.CENTER,
spacing: 12,
margin_top: 36,
margin_bottom: 36,
margin_start: 36,
margin_end: 36,
});
this.set_child(box);
this._settings = settings;
this._rules = new RulesList(this._settings);
box.append(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Rules')),
use_markup: true,
halign: Gtk.Align.START,
}));
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,
valign: Gtk.Align.START,
show_separators: true,
css_classes: ['boxed-list'],
});
box.append(this._list);
this.add(this._list);
const context = this._list.get_style_context();
const cssProvider = new Gtk.CssProvider();
cssProvider.load_from_data(
'list { min-width: 30em; }');
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
this._list.append(new NewRuleRow());
this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('rules', this._actionGroup);
let action;
action = new Gio.SimpleAction({ name: 'add' });
action.connect('activate', this._onAddActivated.bind(this));
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({
name: 'remove',
parameter_type: new GLib.VariantType('s'),
this._list.bind_model(listModel, item => {
return item instanceof NewItem
? new NewRuleRow()
: new RuleRow(item);
});
action.connect('activate', this._onRemoveActivated.bind(this));
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({ name: 'update' });
action.connect('activate', () => {
this._settings.set_strv(SETTINGS_KEY,
this._getRuleRows().map(row => `${row.id}:${row.value}`));
});
this._actionGroup.add_action(action);
this._updateAction = action;
this._settings = ExtensionUtils.getSettings();
this._changedId = this._settings.connect('changed',
this._sync.bind(this));
this._sync();
this.connect('destroy', () => this._settings.run_dispose());
}
_onAddActivated() {
const dialog = new NewRuleDialog(this.get_root());
_addNewRule() {
const dialog = new NewRuleDialog(this.get_root(), this._settings);
dialog.connect('response', (dlg, id) => {
const appInfo = id === Gtk.ResponseType.OK
? dialog.get_widget().get_app_info() : null;
if (appInfo) {
this._settings.set_strv(SETTINGS_KEY, [
...this._settings.get_strv(SETTINGS_KEY),
`${appInfo.get_id()}:1`,
]);
}
if (appInfo)
this._rules.append(appInfo);
dialog.destroy();
});
dialog.show();
}
}
_onRemoveActivated(action, param) {
const removed = param.deepUnpack();
this._settings.set_strv(SETTINGS_KEY,
this._settings.get_strv(SETTINGS_KEY).filter(entry => {
const [id] = entry.split(':');
return id !== removed;
}));
}
_getRuleRows() {
return [...this._list].filter(row => !!row.id);
}
_sync() {
const oldRules = this._getRuleRows();
const newRules = this._settings.get_strv(SETTINGS_KEY).map(entry => {
const [id, value] = entry.split(':');
return { id, value };
});
this._settings.block_signal_handler(this._changedId);
this._updateAction.enabled = false;
newRules.forEach(({ id, value }, index) => {
const row = oldRules.find(r => r.id === id);
const appInfo = row
? null : Gio.DesktopAppInfo.new(id);
if (row)
row.set({ value });
else if (appInfo)
this._list.insert(new RuleRow(appInfo, value), index);
});
const removed = oldRules.filter(
({ id }) => !newRules.find(r => r.id === id));
removed.forEach(r => this._list.remove(r));
this._settings.unblock_signal_handler(this._changedId);
this._updateAction.enabled = true;
}
});
const RuleRow = GObject.registerClass({
Properties: {
'id': GObject.ParamSpec.string(
'id', 'id', 'id',
GObject.ParamFlags.READABLE,
''),
'value': GObject.ParamSpec.uint(
'value', 'value', 'value',
class WorkspaceSelector extends Gtk.Widget {
static [GObject.properties] = {
'number': GObject.ParamSpec.uint(
'number', 'number', 'number',
GObject.ParamFlags.READWRITE,
1, WORKSPACE_MAX, 1),
},
}, class RuleRow extends Gtk.ListBoxRow {
_init(appInfo, value) {
const box = new Gtk.Box({
spacing: 6,
margin_top: 6,
margin_bottom: 6,
margin_start: 6,
};
static {
GObject.registerClass(this);
this.set_layout_manager_type(Gtk.BoxLayout);
}
constructor() {
super();
this.layout_manager.spacing = 6;
const label = new Gtk.Label({
xalign: 1,
margin_end: 6,
});
this.bind_property('number',
label, 'label',
GObject.BindingFlags.SYNC_CREATE);
label.set_parent(this);
super._init({
activatable: false,
value,
child: box,
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();
}
_syncButtons() {
this._decButton.sensitive = this.number > 1;
this._incButton.sensitive = this.number < WORKSPACE_MAX;
}
}
class RuleRow extends Adw.ActionRow {
static {
GObject.registerClass(this);
}
constructor(rule) {
const {appInfo} = rule;
const id = appInfo.get_id();
super({
activatable: false,
title: rule.appInfo.get_display_name(),
});
this._appInfo = appInfo;
const icon = new Gtk.Image({
css_classes: ['icon-dropshadow'],
gicon: appInfo.get_icon(),
pixel_size: 32,
});
icon.get_style_context().add_class('icon-dropshadow');
box.append(icon);
this.add_prefix(icon);
const label = new Gtk.Label({
label: appInfo.get_display_name(),
halign: Gtk.Align.START,
hexpand: true,
max_width_chars: 20,
ellipsize: Pango.EllipsizeMode.END,
});
box.append(label);
const wsButton = new WorkspaceSelector();
rule.bind_property('workspace',
wsButton, 'number',
GObject.BindingFlags.SYNC_CREATE);
this.add_suffix(wsButton);
const spinButton = new Gtk.SpinButton({
adjustment: new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
}),
snap_to_ticks: true,
margin_end: 6,
wsButton.connect('notify::number', () => {
this.activate_action('rules.change-workspace',
new GLib.Variant('(si)', [id, wsButton.number]));
});
this.bind_property('value',
spinButton, 'value',
GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL);
box.append(spinButton);
const button = new Gtk.Button({
action_name: 'rules.remove',
action_target: new GLib.Variant('s', this.id),
action_target: new GLib.Variant('s', id),
icon_name: 'edit-delete-symbolic',
has_frame: false,
valign: Gtk.Align.CENTER,
});
box.append(button);
this.connect('notify::value',
() => this.activate_action('rules.update', null));
this.add_suffix(button);
}
}
get id() {
return this._appInfo.get_id();
}
});
const NewRuleRow = GObject.registerClass(
class NewRuleRow extends Gtk.ListBoxRow {
_init() {
super._init({
static {
GObject.registerClass(this);
}
constructor() {
super({
action_name: 'rules.add',
child: new Gtk.Image({
icon_name: 'list-add-symbolic',
@@ -237,17 +308,20 @@ class NewRuleRow extends Gtk.ListBoxRow {
this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Rule')]);
}
});
}
const NewRuleDialog = GObject.registerClass(
class NewRuleDialog extends Gtk.AppChooserDialog {
_init(parent) {
super._init({
static {
GObject.registerClass(this);
}
constructor(parent, settings) {
super({
transient_for: parent,
modal: true,
});
this._settings = ExtensionUtils.getSettings();
this._settings = settings;
this.get_widget().set({
show_all: true,
@@ -265,12 +339,10 @@ class NewRuleDialog extends Gtk.AppChooserDialog {
this.set_response_sensitive(Gtk.ResponseType.OK,
appInfo && !rules.some(i => i.startsWith(appInfo.get_id())));
}
});
function init() {
ExtensionUtils.initTranslations();
}
function buildPrefsWidget() {
return new AutoMoveSettingsWidget();
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,21 +1,26 @@
/* exported init enable disable */
// Drive menu extension
const { Clutter, 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 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 {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const Me = ExtensionUtils.getCurrentExtension();
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
const _ = Gettext.gettext;
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);
}
constructor(mount) {
super({
style_class: 'drive-menu-item',
});
@@ -44,33 +49,11 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
this.hide();
this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
mount.connectObject('changed',
() => this._syncVisibility(), this);
this._syncVisibility();
}
_onDestroy() {
if (this._changedId) {
this.mount.disconnect(this._changedId);
this._changedId = 0;
}
super.destroy();
}
_fsIsRemote(root) {
return new Promise((resolve, reject) => {
const attr = Gio.FILE_ATTRIBUTE_FILESYSTEM_REMOTE;
root.query_filesystem_info_async(attr, null, (o, res) => {
try {
const info = root.query_filesystem_info_finish(res);
resolve(!info.get_attribute_boolean(attr));
} catch (e) {
reject(e);
}
});
});
}
async _isInteresting() {
if (!this.mount.can_eject() && !this.mount.can_unmount())
return false;
@@ -85,7 +68,9 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
const root = this.mount.get_root();
try {
return await this._fsIsRemote(root);
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}`);
}
@@ -143,12 +128,15 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
super.activate(event);
}
});
}
let DriveMenu = GObject.registerClass(
class DriveMenu extends PanelMenu.Button {
_init() {
super._init(0.0, _('Removable devices'));
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Removable devices'));
let icon = new St.Icon({
icon_name: 'media-eject-symbolic',
@@ -158,12 +146,12 @@ class DriveMenu extends PanelMenu.Button {
this.add_child(icon);
this._monitor = Gio.VolumeMonitor.get();
this._addedId = this._monitor.connect('mount-added',
(monitor, mount) => this._addMount(mount));
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 = [];
@@ -205,30 +193,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

@@ -3,3 +3,4 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')

View File

@@ -1,15 +1,22 @@
/* exported enable disable */
const AppDisplay = imports.ui.appDisplay;
import {AppIcon} from 'resource:///org/gnome/shell/ui/appDisplay.js';
import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
let _activateOriginal = null;
export default class Extension {
constructor() {
this._injectionManager = new InjectionManager();
}
function enable() {
_activateOriginal = AppDisplay.AppIcon.prototype.activate;
AppDisplay.AppIcon.prototype.activate = function () {
_activateOriginal.call(this, 2);
};
}
function disable() {
AppDisplay.AppIcon.prototype.activate = _activateOriginal;
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 +0,0 @@
/* This extensions requires no special styling */

View File

@@ -0,0 +1,36 @@
/*
* 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, see <http://www.gnu.org/licenses/>.
*
* 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

@@ -0,0 +1,5 @@
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)

View File

@@ -0,0 +1,10 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Light Style",
"description": "Switch default to light style",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -15,7 +15,7 @@ foreach e : enabled_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)

View File

@@ -4,5 +4,6 @@ extension_data += configure_file(
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,11 +1,11 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported enable disable */
const { Clutter } = imports.gi;
import Clutter from 'gi://Clutter';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const { WindowPreview } = imports.ui.windowPreview;
const Workspace = imports.ui.workspace;
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)
@@ -97,7 +97,7 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
let 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();
let rect = clones[i].boundingBox;
rects[i] = new Rect(rect.x, rect.y, rect.width, rect.height);
bounds = bounds.union(rects[i]);
@@ -236,67 +236,64 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
}
}
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['_createBestLayout'] = Workspace.WorkspaceLayout.prototype._createBestLayout;
Workspace.WorkspaceLayout.prototype._createBestLayout = function (_area) {
this._layoutStrategy = new NaturalLayoutStrategy({
monitor: Main.layoutManager.monitors[this._monitorIndex],
}, settings);
return this._layoutStrategy.computeLayout(this._sortedWindows);
};
// position window titles on top of windows in overlay
winInjections['_init'] = WindowPreview.prototype._init;
WindowPreview.prototype._init = function (...args) {
winInjections['_init'].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;
};
winInjections['_adjustOverlayOffsets'] =
WindowPreview.prototype._adjustOverlayOffsets;
WindowPreview.prototype._adjustOverlayOffsets = function (...args) {
winInjections['_adjustOverlayOffsets'].call(this, ...args);
if (settings.get_boolean('window-captions-on-top'))
this._title.translation_y = -this._title.translation_y;
};
}
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.WorkspaceLayout.prototype, workspaceInjections, i);
for (i in winInjections)
removeInjection(WindowPreview.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,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,27 +1,27 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init enable disable */
import Clutter from 'gi://Clutter';
import GObject from 'gi://GObject';
import St from 'gi://St';
const { Clutter, GObject, St } = imports.gi;
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;
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 Me = ExtensionUtils.getCurrentExtension();
import {PlacesManager} from './placeDisplay.js';
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
const _ = Gettext.gettext;
const N_ = x => x;
const PlaceDisplay = Me.imports.placeDisplay;
const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass(
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(info) {
super._init({
static {
GObject.registerClass(this);
}
constructor(info) {
super({
style_class: 'place-menu-item',
});
this._info = info;
@@ -52,17 +52,8 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
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) {
@@ -75,7 +66,7 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
this._icon.gicon = info.icon;
this._label.text = info.name;
}
});
}
const SECTIONS = [
'special',
@@ -84,10 +75,13 @@ const SECTIONS = [
'network',
];
let PlacesMenu = GObject.registerClass(
class PlacesMenu extends PanelMenu.Button {
_init() {
super._init(0.0, _('Places'));
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Places'));
let label = new St.Label({
text: _('Places'),
@@ -96,7 +90,7 @@ class PlacesMenu extends PanelMenu.Button {
});
this.add_actor(label);
this.placesManager = new PlaceDisplay.PlacesManager();
this.placesManager = new PlacesManager();
this._sections = { };
@@ -132,23 +126,20 @@ class PlacesMenu extends PanelMenu.Button {
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

@@ -3,5 +3,6 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_sources += files('placeDisplay.js')

View File

@@ -1,18 +1,19 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
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 { Gio, GLib, Shell } = imports.gi;
const Signals = imports.signals;
import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const ShellMountOperation = imports.ui.shellMountOperation;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as ShellMountOperation from 'resource:///org/gnome/shell/ui/shellMountOperation.js';
const Me = ExtensionUtils.getCurrentExtension();
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
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> \
@@ -22,8 +23,10 @@ const Hostname1Iface = '<node> \
</node>';
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
class PlaceInfo {
class PlaceInfo extends EventEmitter {
constructor(...params) {
super();
this._init(...params);
}
@@ -31,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() {
@@ -43,7 +46,7 @@ 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);
@@ -55,7 +58,7 @@ class PlaceInfo {
};
let 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);
@@ -94,16 +97,16 @@ 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'});
}
}
@@ -117,34 +120,7 @@ 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() {
@@ -164,7 +140,7 @@ class RootInfo extends PlaceInfo {
}
getIcon() {
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'});
}
_propertiesChanged(proxy) {
@@ -272,8 +248,10 @@ const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_VIDEOS,
];
var PlacesManager = class {
export class PlacesManager extends EventEmitter {
constructor() {
super();
this._places = {
special: [],
devices: [],
@@ -281,16 +259,26 @@ 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._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();
@@ -315,34 +303,11 @@ 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._volumeMonitor.disconnectObject(this);
if (this._monitor)
this._monitor.cancel();
@@ -568,5 +533,4 @@ var PlacesManager = class {
get(kind) {
return this._places[kind];
}
};
Signals.addSignalMethods(PlacesManager.prototype);
}

View File

@@ -1,4 +1,3 @@
/* exported enable disable */
/* Screenshot Window Sizer for Gnome Shell
*
* Copyright (c) 2013 Owen Taylor <otaylor@redhat.com>
@@ -19,136 +18,151 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
const { Clutter, Meta, Shell, St } = imports.gi;
import Clutter from 'gi://Clutter';
import Meta from 'gi://Meta';
import Shell from 'gi://Shell';
import St from 'gi://St';
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';
const MESSAGE_FADE_TIME = 2000;
let text;
export default class ScreenshotWindowSizerExtension extends Extension {
SIZES = [
[624, 351],
[800, 450],
[1024, 576],
[1200, 675],
[1600, 900],
[360, 654], // Phone portrait maximized
[720, 360], // Phone landscape fullscreen
];
function hideMessage() {
text.destroy();
text = null;
}
function flashMessage(message) {
if (!text) {
text = new St.Label({ style_class: 'screenshot-sizer-message' });
Main.uiGroup.add_actor(text);
}
text.remove_all_transitions();
text.text = message;
text.opacity = 255;
let monitor = Main.layoutManager.primaryMonitor;
text.set_position(
monitor.x + Math.floor(monitor.width / 2 - text.width / 2),
monitor.y + Math.floor(monitor.height / 2 - text.height / 2));
text.ease({
opacity: 0,
duration: MESSAGE_FADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: hideMessage,
});
}
let SIZES = [
[624, 351],
[800, 450],
[1024, 576],
[1200, 675],
[1600, 900],
[360, 654], // Phone portrait maximized
[720, 360], // Phone landscape fullscreen
];
function cycleScreenshotSizes(display, window, binding) {
// Probably this isn't useful with 5 sizes, but you can decrease instead
// of increase by holding down shift.
let modifiers = binding.get_modifiers();
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0;
// Unmaximize first
if (window.get_maximized() !== 0)
window.unmaximize(Meta.MaximizeFlags.BOTH);
let workArea = window.get_work_area_current_monitor();
let outerRect = window.get_frame_rect();
// Double both axes if on a hidpi display
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let scaledSizes = SIZES.map(size => size.map(wh => wh * scaleFactor))
.filter(([w, h]) => w <= workArea.width && h <= workArea.height);
// Find the nearest 16:9 size for the current window size
let nearestIndex;
let nearestError;
for (let i = 0; i < scaledSizes.length; i++) {
let [width, height] = scaledSizes[i];
// ignore sizes bigger than the workArea
if (width > workArea.width || height > workArea.height)
continue;
// get the best initial window size
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
if (nearestIndex === undefined || error < nearestError) {
nearestIndex = i;
nearestError = error;
_flashMessage(message) {
if (!this._text) {
this._text = new St.Label({style_class: 'screenshot-sizer-message'});
Main.uiGroup.add_actor(this._text);
}
this._text.remove_all_transitions();
this._text.text = message;
this._text.opacity = 255;
const monitor = Main.layoutManager.primaryMonitor;
this._text.set_position(
monitor.x + Math.floor(monitor.width / 2 - this._text.width / 2),
monitor.y + Math.floor(monitor.height / 2 - this._text.height / 2));
this._text.ease({
opacity: 0,
duration: MESSAGE_FADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => this._hideMessage(),
});
}
// get the next size up or down from ideal
let newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length;
let [newWidth, newHeight] = scaledSizes[newIndex];
_hideMessage() {
this._text.destroy();
delete this._text;
}
// Push the window onscreen if it would be resized offscreen
let newX = outerRect.x;
let newY = outerRect.y;
if (newX + newWidth > workArea.x + workArea.width)
newX = Math.max(workArea.x + workArea.width - newWidth);
if (newY + newHeight > workArea.y + workArea.height)
newY = Math.max(workArea.y + workArea.height - newHeight);
/**
* @param {Meta.Display} display - the display
* @param {Meta.Window=} window - for per-window bindings, the window
* @param {Meta.KeyBinding} binding - the key binding
*/
_cycleScreenshotSizes(display, window, binding) {
// Probably this isn't useful with 5 sizes, but you can decrease instead
// of increase by holding down shift.
let modifiers = binding.get_modifiers();
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0;
window.move_resize_frame(true, newX, newY, newWidth, newHeight);
// Unmaximize first
if (window.get_maximized() !== 0)
window.unmaximize(Meta.MaximizeFlags.BOTH);
let newOuterRect = window.get_frame_rect();
let message = '%d×%d'.format(
newOuterRect.width / scaleFactor,
newOuterRect.height / scaleFactor);
let workArea = window.get_work_area_current_monitor();
let outerRect = window.get_frame_rect();
// The new size might have been constrained by geometry hints (e.g. for
// a terminal) - in that case, include the actual ratio to the message
// we flash
let actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
if (Math.abs(actualNumerator - 16) > 0.01)
message += ' (%.2f:9)'.format(actualNumerator);
// Double both axes if on a hidpi display
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let scaledSizes = this.SIZES.map(size => size.map(wh => wh * scaleFactor))
.filter(([w, h]) => w <= workArea.width && h <= workArea.height);
flashMessage(message);
}
function enable() {
Main.wm.addKeybinding(
'cycle-screenshot-sizes',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
Main.wm.addKeybinding(
'cycle-screenshot-sizes-backward',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW | Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
}
function disable() {
Main.wm.removeKeybinding('cycle-screenshot-sizes');
Main.wm.removeKeybinding('cycle-screenshot-sizes-backward');
// Find the nearest 16:9 size for the current window size
let nearestIndex;
let nearestError;
for (let i = 0; i < scaledSizes.length; i++) {
let [width, height] = scaledSizes[i];
// get the best initial window size
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
if (nearestIndex === undefined || error < nearestError) {
nearestIndex = i;
nearestError = error;
}
}
// get the next size up or down from ideal
let newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length;
let [newWidth, newHeight] = scaledSizes[newIndex];
// Push the window onscreen if it would be resized offscreen
let newX = outerRect.x;
let newY = outerRect.y;
if (newX + newWidth > workArea.x + workArea.width)
newX = Math.max(workArea.x + workArea.width - newWidth);
if (newY + newHeight > workArea.y + workArea.height)
newY = Math.max(workArea.y + workArea.height - newHeight);
const id = window.connect('size-changed', () => {
window.disconnect(id);
this._notifySizeChange(window);
});
window.move_resize_frame(true, newX, newY, newWidth, newHeight);
}
/**
* @param {Meta.Window} window - the window whose size changed
*/
_notifySizeChange(window) {
const {scaleFactor} = St.ThemeContext.get_for_stage(global.stage);
let newOuterRect = window.get_frame_rect();
let message = '%d×%d'.format(
newOuterRect.width / scaleFactor,
newOuterRect.height / scaleFactor);
// The new size might have been constrained by geometry hints (e.g. for
// a terminal) - in that case, include the actual ratio to the message
// we flash
let actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
if (Math.abs(actualNumerator - 16) > 0.01)
message += ' (%.2f:9)'.format(actualNumerator);
this._flashMessage(message);
}
enable() {
Main.wm.addKeybinding(
'cycle-screenshot-sizes',
this.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL,
this._cycleScreenshotSizes.bind(this));
Main.wm.addKeybinding(
'cycle-screenshot-sizes-backward',
this.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW | Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.NORMAL,
this._cycleScreenshotSizes.bind(this));
}
disable() {
Main.wm.removeKeybinding('cycle-screenshot-sizes');
Main.wm.removeKeybinding('cycle-screenshot-sizes-backward');
}
}

View File

@@ -3,5 +3,6 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -1,32 +1,26 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Load shell theme from ~/.local/share/themes/name/gnome-shell
/* exported init */
const { Gio } = imports.gi;
import Gio from 'gi://Gio';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
const Me = ExtensionUtils.getCurrentExtension();
const Util = Me.imports.util;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import {getThemeDirs, getModeThemeDirs} from './util.js';
const SETTINGS_KEY = 'name';
class ThemeManager {
constructor() {
this._settings = ExtensionUtils.getSettings();
}
export default class ThemeManager extends Extension {
enable() {
this._changedId = this._settings.connect(`changed::${SETTINGS_KEY}`, this._changeTheme.bind(this));
this._settings = this.getSettings();
this._settings.connect(`changed::${SETTINGS_KEY}`, this._changeTheme.bind(this));
this._changeTheme();
}
disable() {
if (this._changedId) {
this._settings.disconnect(this._changedId);
this._changedId = 0;
}
this._settings?.run_dispose();
this._settings = null;
Main.setThemeStylesheet(null);
Main.loadTheme();
@@ -37,10 +31,10 @@ class ThemeManager {
let themeName = this._settings.get_string(SETTINGS_KEY);
if (themeName) {
const stylesheetPaths = Util.getThemeDirs()
const stylesheetPaths = getThemeDirs()
.map(dir => `${dir}/${themeName}/gnome-shell/gnome-shell.css`);
stylesheetPaths.push(...Util.getModeThemeDirs()
stylesheetPaths.push(...getModeThemeDirs()
.map(dir => `${dir}/${themeName}.css`));
stylesheet = stylesheetPaths.find(path => {
@@ -50,14 +44,10 @@ class ThemeManager {
}
if (stylesheet)
global.log(`loading user theme: ${stylesheet}`);
log(`loading user theme: ${stylesheet}`);
else
global.log('loading default theme (Adwaita)');
log('loading default theme (Adwaita)');
Main.setThemeStylesheet(stylesheet);
Main.loadTheme();
}
}
function init() {
return new ThemeManager();
}

View File

@@ -1,51 +1,34 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
// we use async/await here to not block the mainloop, not to parallelize
/* eslint-disable no-await-in-loop */
const { Gio, GLib, GObject, Gtk } = imports.gi;
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
const ExtensionUtils = imports.misc.extensionUtils;
import {ExtensionPreferences} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const Me = ExtensionUtils.getCurrentExtension();
const Util = Me.imports.util;
import {getThemeDirs, getModeThemeDirs} from './util.js';
Gio._promisify(Gio._LocalFilePrototype,
'enumerate_children_async', 'enumerate_children_finish');
Gio._promisify(Gio._LocalFilePrototype,
'query_info_async', 'query_info_finish');
Gio._promisify(Gio.FileEnumerator.prototype,
'next_files_async', 'next_files_finish');
Gio._promisify(Gio.File.prototype, 'enumerate_children_async');
Gio._promisify(Gio.File.prototype, 'query_info_async');
Gio._promisify(Gio.FileEnumerator.prototype, 'next_files_async');
const UserThemePrefsWidget = GObject.registerClass(
class UserThemePrefsWidget extends Gtk.ScrolledWindow {
_init() {
super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
});
class UserThemePrefsWidget extends Adw.PreferencesGroup {
static {
GObject.registerClass(this);
}
const box = new Gtk.Box();
this.set_child(box);
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
show_separators: true,
halign: Gtk.Align.CENTER,
valign: Gtk.Align.START,
hexpand: true,
margin_start: 60,
margin_end: 60,
margin_top: 60,
margin_bottom: 60,
});
this._list.get_style_context().add_class('frame');
box.append(this._list);
constructor(settings) {
super({title: 'Themes'});
this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('theme', this._actionGroup);
this.insert_action_group('theme', this._actionGroup);
this._settings = ExtensionUtils.getSettings();
this._settings = settings;
this._actionGroup.add_action(
this._settings.create_action('name'));
@@ -58,7 +41,7 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow {
}
async _collectThemes() {
for (const dirName of Util.getThemeDirs()) {
for (const dirName of getThemeDirs()) {
const dir = Gio.File.new_for_path(dirName);
for (const name of await this._enumerateDir(dir)) {
if (this._rows.has(name))
@@ -79,7 +62,7 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow {
}
}
for (const dirName of Util.getModeThemeDirs()) {
for (const dirName of getModeThemeDirs()) {
const dir = Gio.File.new_for_path(dirName);
for (const filename of await this._enumerateDir(dir)) {
if (!filename.endsWith('.css'))
@@ -93,10 +76,10 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow {
}
_addTheme(name) {
const row = new ThemeRow(name, this._settings);
const row = new ThemeRow(name);
this._rows.set(name, row);
this._list.append(row);
this.add(row);
}
async _enumerateDir(dir) {
@@ -123,60 +106,29 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow {
return fileInfos.map(info => info.get_name());
}
});
}
const ThemeRow = GObject.registerClass(
class ThemeRow extends Gtk.ListBoxRow {
_init(name, settings) {
this._name = name;
this._settings = settings;
class ThemeRow extends Adw.ActionRow {
static {
GObject.registerClass(this);
}
const box = new Gtk.Box({
spacing: 12,
margin_start: 12,
margin_end: 12,
margin_top: 12,
margin_bottom: 12,
});
super._init({
constructor(name) {
const check = new Gtk.CheckButton({
action_name: 'theme.name',
action_target: new GLib.Variant('s', name),
child: box,
});
box.append(new Gtk.Label({
label: name || 'Default',
hexpand: true,
xalign: 0,
max_width_chars: 25,
width_chars: 25,
}));
this._checkmark = new Gtk.Image({
icon_name: 'emblem-ok-symbolic',
pixel_size: 16,
});
box.append(this._checkmark);
const id = this._settings.connect('changed::name',
this._syncCheckmark.bind(this));
this._syncCheckmark();
this.connect('destroy', () => {
this._settings.disconnect(id);
this._settings = null;
super({
title: name || 'Default',
activatable_widget: check,
});
this.add_prefix(check);
}
_syncCheckmark() {
const visible = this._name === this._settings.get_string('name');
this._checkmark.opacity = visible ? 1. : 0;
}
});
function init() {
}
function buildPrefsWidget() {
return new UserThemePrefsWidget();
export default class UserThemePrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new UserThemePrefsWidget(this.getSettings());
}
}

View File

@@ -1 +0,0 @@
/* none used */

View File

@@ -1,9 +1,11 @@
/* exported getThemeDirs getModeThemeDirs */
const { GLib } = imports.gi;
import GLib from 'gi://GLib';
const fn = (...args) => GLib.build_filenamev(args);
function getThemeDirs() {
/**
* @returns {string[]} - an ordered list of theme directories
*/
export function getThemeDirs() {
return [
fn(GLib.get_home_dir(), '.themes'),
fn(GLib.get_user_data_dir(), 'themes'),
@@ -11,7 +13,10 @@ function getThemeDirs() {
];
}
function getModeThemeDirs() {
/**
* @returns {string[]} - an ordered list of mode theme directories
*/
export function getModeThemeDirs() {
return GLib.get_system_data_dirs()
.map(dir => fn(dir, 'gnome-shell', 'theme'));
}

File diff suppressed because it is too large Load Diff

View File

@@ -3,10 +3,10 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files(
'stylesheet-dark.css',
'stylesheet-light.css'
)
extension_sources += files('prefs.js', 'windowPicker.js', 'workspaceIndicator.js')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
if classic_mode_enabled
extension_data += files('classic.css')
endif

View File

@@ -1,110 +1,86 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
const { Gio, GObject, Gtk } = imports.gi;
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
class WindowListPrefsWidget extends Adw.PreferencesPage {
static {
GObject.registerClass(this);
}
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
const _ = Gettext.gettext;
constructor(settings) {
super();
this._actionGroup = new Gio.SimpleActionGroup();
this.insert_action_group('window-list', this._actionGroup);
function init() {
ExtensionUtils.initTranslations();
}
this._settings = settings;
this._actionGroup.add_action(
this._settings.create_action('grouping-mode'));
this._actionGroup.add_action(
this._settings.create_action('show-on-all-monitors'));
this._actionGroup.add_action(
this._settings.create_action('display-all-workspaces'));
const WindowListPrefsWidget = GObject.registerClass(
class WindowListPrefsWidget extends Gtk.Box {
_init() {
super._init({
orientation: Gtk.Orientation.VERTICAL,
spacing: 6,
margin_top: 36,
margin_bottom: 36,
margin_start: 36,
margin_end: 36,
halign: Gtk.Align.CENTER,
const groupingGroup = new Adw.PreferencesGroup({
title: _('Window Grouping'),
});
this.add(groupingGroup);
let groupingLabel = '<b>%s</b>'.format(_('Window Grouping'));
this.append(new Gtk.Label({
label: groupingLabel, use_markup: true,
halign: Gtk.Align.START,
}));
const modes = [
{mode: 'never', title: _('Never group windows')},
{mode: 'auto', title: _('Group windows when space is limited')},
{mode: 'always', title: _('Always group windows')},
];
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
spacing: 12,
margin_bottom: 12,
});
this.append(box);
const context = box.get_style_context();
const cssProvider = new Gtk.CssProvider();
cssProvider.load_from_data(
'box { padding: 12px; }');
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
context.add_class('view');
this._settings = ExtensionUtils.getSettings();
let currentMode = this._settings.get_string('grouping-mode');
let range = this._settings.get_range('grouping-mode');
let modes = range.deep_unpack()[1].deep_unpack();
let modeLabels = {
'never': _('Never group windows'),
'auto': _('Group windows when space is limited'),
'always': _('Always group windows'),
};
let radio = null;
let currentRadio = null;
for (let i = 0; i < modes.length; i++) {
let mode = modes[i];
let label = modeLabels[mode];
if (!label) {
log('Unhandled option "%s" for grouping-mode'.format(mode));
continue;
}
radio = new Gtk.CheckButton({
active: !i,
label,
group: radio,
margin_end: 12,
for (const {mode, title} of modes) {
const check = new Gtk.CheckButton({
action_name: 'window-list.grouping-mode',
action_target: new GLib.Variant('s', mode),
});
box.append(radio);
if (currentMode === mode)
currentRadio = radio;
radio.connect('toggled', button => {
if (button.active)
this._settings.set_string('grouping-mode', mode);
const row = new Adw.ActionRow({
activatable_widget: check,
title,
});
row.add_prefix(check);
groupingGroup.add(row);
}
if (currentRadio)
currentRadio.active = true;
const miscGroup = new Adw.PreferencesGroup();
this.add(miscGroup);
let check = new Gtk.CheckButton({
label: _('Show on all monitors'),
let toggle = new Gtk.Switch({
action_name: 'window-list.show-on-all-monitors',
valign: Gtk.Align.CENTER,
});
this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.append(check);
let row = new Adw.ActionRow({
title: _('Show on all monitors'),
activatable_widget: toggle,
});
row.add_suffix(toggle);
miscGroup.add(row);
check = new Gtk.CheckButton({
label: _('Show windows from all workspaces'),
toggle = new Gtk.Switch({
action_name: 'window-list.display-all-workspaces',
valign: Gtk.Align.CENTER,
});
this._settings.bind('display-all-workspaces', check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.append(check);
this._settings.bind('display-all-workspaces',
toggle, 'active', Gio.SettingsBindFlags.DEFAULT);
row = new Adw.ActionRow({
title: _('Show windows from all workspaces'),
activatable_widget: toggle,
});
row.add_suffix(toggle);
miscGroup.add(row);
}
}
export default class WindowListPrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new WindowListPrefsWidget(this.getSettings());
}
});
function buildPrefsWidget() {
return new WindowListPrefsWidget();
}

View File

@@ -0,0 +1,113 @@
.window-list {
spacing: 2px;
font-size: 10pt;
}
.bottom-panel {
background-color: #000000;
border-top-width: 0px;
padding: 2px;
}
.window-button {
padding: 2px, 1px;
}
.window-button:first-child:ltr {
padding-left: 2px;
}
.window-button:last-child:rtl {
padding-right: 2px;
}
.window-button-box {
spacing: 4px;
}
.window-button > StWidget,
.window-picker-toggle > StWidget {
color: #bbb;
background-color: #1d1d1d;
border-radius: 4px;
padding: 3px 6px 1px;
transition: 100ms ease;
}
.window-button > StWidget {
-st-natural-width: 18.75em;
max-width: 18.75em;
}
.window-button:hover > StWidget,
.window-picker-toggle:hover > StWidget {
color: #fff;
background-color: #303030;
}
.window-button:active > StWidget,
.window-button:focus > StWidget {
color: #fff;
background-color: #3f3f3f;
}
.window-button.focused > StWidget,
.window-picker-toggle:checked > StWidget {
color: #fff;
background-color: #3f3f3f;
}
.window-button.focused:active > StWidget,
.window-picker-toggle:checked:active > StWidget {
color: #fff;
background-color: #3f3f3f;
}
.window-button.minimized > StWidget {
color: #666;
background-color: #161616;
}
.window-button.minimized:active > StWidget {
color: #666;
background-color: #161616;
}
.window-button-icon {
width: 24px;
height: 24px;
}
.window-list-workspace-indicator .status-label-bin {
background-color: rgba(200, 200, 200, 0.3);
padding: 0 3px;
margin: 3px;
}
.window-list-workspace-indicator .workspaces-box {
spacing: 3px;
padding: 3px;
}
.window-list-workspace-indicator .workspace {
width: 52px;
border-radius: 4px;
background-color: #1e1e1e;
}
.window-list-workspace-indicator .workspace.active {
background-color: #3f3f3f;
}
.window-list-window-preview {
background-color: #bebebe;
border-radius: 1px;
}
.window-list-window-preview.active {
background-color: #d4d4d4;
}
.notification {
font-weight: normal;
}

View File

@@ -1,4 +1,4 @@
@import url("stylesheet.css");
@import url("stylesheet-dark.css");
#panel.bottom-panel {
border-top-width: 1px;

View File

@@ -1,115 +0,0 @@
.window-list {
spacing: 2px;
font-size: 10pt;
}
.window-button {
padding: 1px;
}
.window-button:first-child:ltr {
padding-left: 2px;
}
.window-button:last-child:rtl {
padding-right: 2px;
}
.window-button-box {
spacing: 4px;
}
.window-button > StWidget,
.window-picker-toggle > StWidget {
color: #bbb;
background-color: black;
border-radius: 2px;
padding: 3px 6px 1px;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.5);
text-shadow: 1px 1px 4px rgba(0,0,0,0.8);
}
.window-picker-toggle {
padding: 3px;
}
.window-picker-toggle > StWidet {
border: 1px solid rgba(255,255,255,0.3);
}
.window-button > StWidget {
-st-natural-width: 18.75em;
max-width: 18.75em;
}
.window-button:hover > StWidget,
.window-picker-toggle:hover > StWidget {
color: white;
background-color: #1f1f1f;
}
.window-button:active > StWidget,
.window-button:focus > StWidget {
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.5);
}
.window-button.focused > StWidget,
.window-picker-toggle:checked > StWidget {
color: white;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.7);
}
.window-button.focused:active > StWidget,
.window-picker-toggle:checked:active > StWidget {
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.7);
}
.window-button.minimized > StWidget {
color: #666;
box-shadow: inset -1px -1px 4px rgba(255,255,255,0.5);
}
.window-button.minimized:active > StWidget {
box-shadow: inset -2px -2px 4px rgba(255,255,255,0.5);
}
.window-button-icon {
width: 24px;
height: 24px;
}
.window-list-workspace-indicator .status-label-bin {
background-color: rgba(200, 200, 200, .3);
border: 1px solid #cccccc;
padding: 0 3px;
margin: 3px;
}
.window-list-workspace-indicator .workspaces-box {
spacing: 3px;
padding: 3px;
}
.window-list-workspace-indicator .workspace {
border: 2px solid #000;
width: 52px;
border-radius: 4px;
background-color: #595959;
}
.window-list-workspace-indicator .workspace.active {
border-color: #fff;
}
.window-list-window-preview {
background-color: #bebebe;
border: 1px solid #828282;
}
.window-list-window-preview.active {
background-color: #d4d4d4;
}
.notification {
font-weight: normal;
}

View File

@@ -1,25 +1,30 @@
/* exported WindowPicker, WindowPickerToggle */
const { Clutter, GObject, Shell, St } = imports.gi;
import Clutter from 'gi://Clutter';
import GObject from 'gi://GObject';
import Shell from 'gi://Shell';
import St from 'gi://St';
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const { WorkspacesDisplay } = imports.ui.workspacesView;
const Workspace = imports.ui.workspace;
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Layout from 'resource:///org/gnome/shell/ui/layout.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import {WorkspacesDisplay} from 'resource:///org/gnome/shell/ui/workspacesView.js';
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
const { VIGNETTE_BRIGHTNESS } = imports.ui.lightbox;
const {
import {VIGNETTE_BRIGHTNESS} from 'resource:///org/gnome/shell/ui/lightbox.js';
import {
SIDE_CONTROLS_ANIMATION_TIME,
OverviewAdjustment,
ControlsState,
} = imports.ui.overviewControls;
ControlsState
} from 'resource:///org/gnome/shell/ui/overviewControls.js';
let MyWorkspacesDisplay = GObject.registerClass(
class MyWorkspacesDisplay extends WorkspacesDisplay {
_init(controls, overviewAdjustment) {
static {
GObject.registerClass(this);
}
constructor(controls, overviewAdjustment) {
let workspaceManager = global.workspace_manager;
this._overviewAdjustment = overviewAdjustment;
this._workspaceAdjustment = new St.Adjustment({
const workspaceAdjustment = new St.Adjustment({
value: workspaceManager.get_active_workspace_index(),
lower: 0,
page_increment: 1,
@@ -28,14 +33,16 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
upper: workspaceManager.n_workspaces,
});
this._nWorkspacesChangedId =
workspaceManager.connect('notify::n-workspaces',
this._updateAdjustment.bind(this));
super(controls, workspaceAdjustment, overviewAdjustment);
super._init(controls, this._workspaceAdjustment, this._overviewAdjustment);
this._windowPicker = controls;
this._workspaceAdjustment = workspaceAdjustment;
this._workspaceAdjustment.actor = this;
workspaceManager.connectObject('notify::n-workspaces',
() => this._updateAdjustment(), this);
this.add_constraint(
new Layout.MonitorConstraint({
primary: true,
@@ -45,7 +52,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
prepareToEnterOverview(...args) {
if (!this._scrollEventId) {
this._scrollEventId = Main.windowPicker.connect('scroll-event',
this._scrollEventId = this._windowPicker.connect('scroll-event',
this._onScrollEvent.bind(this));
}
@@ -54,7 +61,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
vfunc_hide(...args) {
if (this._scrollEventId > 0)
Main.windowPicker.disconnect(this._scrollEventId);
this._windowPicker.disconnect(this._scrollEventId);
this._scrollEventId = 0;
super.vfunc_hide(...args);
@@ -67,95 +74,28 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
value: workspaceManager.get_active_workspace_index(),
});
}
}
_onDestroy() {
if (this._nWorkspacesChangedId)
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
this._nWorkspacesChangedId = 0;
export class WindowPicker extends Clutter.Actor {
static [GObject.signals] = {
'open-state-changed': {param_types: [GObject.TYPE_BOOLEAN]},
};
super._onDestroy();
}
});
const MyWorkspace = GObject.registerClass(
class MyWorkspace extends Workspace.Workspace {
_init(...args) {
super._init(...args);
this._adjChangedId =
this._overviewAdjustment.connect('notify::value', () => {
const { value: progress } = this._overviewAdjustment;
const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress;
for (const bg of this._background?._backgroundGroup ?? []) {
bg.content.set({
vignette: true,
brightness,
});
}
});
static {
GObject.registerClass(this);
}
_onDestroy() {
super._onDestroy();
constructor() {
super({reactive: true});
if (this._adjChangedId)
this._overviewAdjustment.disconnect(this._adjChangedId);
this._adjChangedId = 0;
}
});
const MyWorkspaceBackground = GObject.registerClass(
class MyWorkspaceBackground extends Workspace.WorkspaceBackground {
_updateBorderRadius() {
}
vfunc_allocate(box) {
this.set_allocation(box);
const themeNode = this.get_theme_node();
const contentBox = themeNode.get_content_box(box);
this._bin.allocate(contentBox);
const [contentWidth, contentHeight] = contentBox.get_size();
const monitor = Main.layoutManager.monitors[this._monitorIndex];
const xRatio = contentWidth / this._workarea.width;
const yRatio = contentHeight / this._workarea.height;
const right = area => area.x + area.width;
const bottom = area => area.y + area.height;
const offsets = {
left: xRatio * (this._workarea.x - monitor.x),
right: xRatio * (right(monitor) - right(this._workarea)),
top: yRatio * (this._workarea.y - monitor.y),
bottom: yRatio * (bottom(monitor) - bottom(this._workarea)),
};
contentBox.set_origin(-offsets.left, -offsets.top);
contentBox.set_size(
offsets.left + contentWidth + offsets.right,
offsets.top + contentHeight + offsets.bottom);
this._backgroundGroup.allocate(contentBox);
}
});
var WindowPicker = GObject.registerClass({
Signals: {
'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] },
},
}, class extends Clutter.Actor {
_init() {
this._visible = false;
this._modal = false;
this._overlayKeyId = 0;
this._stageKeyPressId = 0;
super._init({ reactive: true });
this._adjustment = new OverviewAdjustment(this);
this._injectionManager = new InjectionManager();
this.connect('destroy', this._onDestroy.bind(this));
global.bind_property('screen-width',
@@ -173,21 +113,78 @@ var WindowPicker = GObject.registerClass({
if (!Main.sessionMode.hasOverview) {
this._injectBackgroundShade();
this._overlayKeyId = global.display.connect('overlay-key', () => {
global.display.connectObject('overlay-key', () => {
if (!this._visible)
this.open();
else
this.close();
});
}, this);
}
}
_injectBackgroundShade() {
this._origWorkspace = Workspace.Workspace;
this._origWorkspaceBackground = Workspace.WorkspaceBackground;
const backgroundProto = Workspace.WorkspaceBackground.prototype;
this._injectionManager.overrideMethod(backgroundProto, '_updateBorderRadius',
() => {
return function () {};
});
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_allocate',
() => {
/* eslint-disable no-invalid-this */
return function (box) {
this.set_allocation(box);
Workspace.Workspace = MyWorkspace;
Workspace.WorkspaceBackground = MyWorkspaceBackground;
const themeNode = this.get_theme_node();
const contentBox = themeNode.get_content_box(box);
this._bin.allocate(contentBox);
const [contentWidth, contentHeight] = contentBox.get_size();
const monitor = Main.layoutManager.monitors[this._monitorIndex];
const xRatio = contentWidth / this._workarea.width;
const yRatio = contentHeight / this._workarea.height;
const right = area => area.x + area.width;
const bottom = area => area.y + area.height;
const offsets = {
left: xRatio * (this._workarea.x - monitor.x),
right: xRatio * (right(monitor) - right(this._workarea)),
top: yRatio * (this._workarea.y - monitor.y),
bottom: yRatio * (bottom(monitor) - bottom(this._workarea)),
};
contentBox.set_origin(-offsets.left, -offsets.top);
contentBox.set_size(
offsets.left + contentWidth + offsets.right,
offsets.top + contentHeight + offsets.bottom);
this._backgroundGroup.allocate(contentBox);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_parent_set',
() => {
/* eslint-disable no-invalid-this */
return function () {
setTimeout(() => {
const parent = this.get_parent();
if (!parent)
return;
parent._overviewAdjustment.connectObject('notify::value', () => {
const {value: progress} = parent._overviewAdjustment;
const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress;
for (const bg of this._backgroundGroup ?? []) {
bg.content.set({
vignette: true,
brightness,
});
}
}, this);
});
};
/* eslint-enable */
});
}
get visible() {
@@ -273,45 +270,40 @@ var WindowPicker = GObject.registerClass({
if (this._modal)
return true;
this._modal = Main.pushModal(this, {
const grab = Main.pushModal(global.stage, {
actionMode: Shell.ActionMode.OVERVIEW,
});
if (!this._modal) {
if (grab.get_seat_state() !== Clutter.GrabState.NONE) {
this._grab = grab;
this._modal = true;
} else {
Main.popModal(grab);
this.hide();
return false;
}
} else if (this._modal) {
Main.popModal(this);
Main.popModal(this._grab);
this._modal = false;
this._grab = null;
}
return true;
}
_onDestroy() {
if (this._origWorkspace)
Workspace.Workspace = this._origWorkspace;
if (this._origWorkspaceBackground)
Workspace.WorkspaceBackground = this._origWorkspaceBackground;
if (this._monitorsChangedId)
Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0;
if (this._overlayKeyId)
global.display.disconnect(this._overlayKeyId);
this._overlayKeyId = 0;
this._injectionManager.clear();
if (this._stageKeyPressId)
global.stage.disconnect(this._stageKeyPressId);
this._stageKeyPressId = 0;
}
});
}
var WindowPickerToggle = GObject.registerClass(
class WindowPickerToggle extends St.Button {
_init() {
export class WindowPickerToggle extends St.Button {
static {
GObject.registerClass(this);
}
constructor() {
let iconBin = new St.Widget({
layout_manager: new Clutter.BinLayout(),
});
@@ -323,22 +315,23 @@ class WindowPickerToggle extends St.Button {
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
}));
super._init({
super({
style_class: 'window-picker-toggle',
child: iconBin,
visible: !Main.sessionMode.hasOverview,
toggle_mode: true,
});
const {windowPicker} = Extension.lookupByURL(import.meta.url);
this.connect('notify::checked', () => {
if (this.checked)
Main.windowPicker.open();
windowPicker.open();
else
Main.windowPicker.close();
windowPicker.close();
});
Main.windowPicker.connect('open-state-changed', () => {
this.checked = Main.windowPicker.visible;
windowPicker.connect('open-state-changed', () => {
this.checked = windowPicker.visible;
});
}
});
}

View File

@@ -1,48 +1,47 @@
/* exported WorkspaceIndicator */
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
import St from 'gi://St';
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 {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const Me = ExtensionUtils.getCurrentExtension();
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
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 TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button {
_init(window) {
super._init({
static {
GObject.registerClass(this);
}
constructor(window) {
super({
style_class: 'window-list-window-preview',
});
this._delegate = this;
DND.makeDraggable(this, { restoreOnSuccess: true });
DND.makeDraggable(this, {restoreOnSuccess: true});
this._window = window;
this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed',
() => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed',
() => {
this._window.connectObject(
'size-changed', () => this.queue_relayout(),
'position-changed', () => {
this._updateVisible();
this.queue_relayout();
});
this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
},
'notify::minimized', this._updateVisible.bind(this),
this);
this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this));
global.display.connectObject('notify::focus-window',
this._onFocusChanged.bind(this), this);
this._onFocusChanged();
}
@@ -51,13 +50,6 @@ class WindowPreview extends St.Button {
return this._window;
}
_onDestroy() {
this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._focusChangedId);
}
_onFocusChanged() {
if (global.display.focus_window === this._window)
this.add_style_class_name('active');
@@ -72,10 +64,13 @@ class WindowPreview extends St.Button {
this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace();
}
});
}
let WorkspaceLayout = GObject.registerClass(
class WorkspaceLayout extends Clutter.LayoutManager {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_width() {
return [0, 0];
}
@@ -102,12 +97,15 @@ class WorkspaceLayout extends Clutter.LayoutManager {
child.allocate(childBox);
}
}
});
}
let WorkspaceThumbnail = GObject.registerClass(
class WorkspaceThumbnail extends St.Button {
_init(index) {
super._init({
static {
GObject.registerClass(this);
}
constructor(index) {
super({
style_class: 'workspace',
child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(),
@@ -132,16 +130,13 @@ class WorkspaceThumbnail extends St.Button {
let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index);
this._windowAddedId = this._workspace.connect('window-added',
(ws, window) => {
this._addWindow(window);
});
this._windowRemovedId = this._workspace.connect('window-removed',
(ws, window) => {
this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.connectObject(
'window-added', (ws, window) => this._addWindow(window),
'window-removed', (ws, window) => this._removeWindow(window),
this);
global.display.connectObject('restacked',
this._onRestacked.bind(this), this);
this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked();
@@ -239,17 +234,16 @@ class WorkspaceThumbnail extends St.Button {
_onDestroy() {
this._tooltip.destroy();
this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId);
}
});
}
var WorkspaceIndicator = GObject.registerClass(
class WorkspaceIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _('Workspace Indicator'), true);
export class WorkspaceIndicator extends PanelMenu.Button {
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Workspace Indicator'), true);
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
this.add_style_class_name('window-list-workspace-indicator');
this.remove_style_class_name('panel-button');
@@ -265,7 +259,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._statusLabel = new St.Label({ text: this._getStatusText() });
this._statusLabel = new St.Label({text: this._getStatusText()});
this._statusBin = new St.Bin({
style_class: 'status-label-bin',
@@ -286,39 +280,24 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._workspacesItems = [];
this._workspaceManagerSignals = [
workspaceManager.connect('notify::n-workspaces',
this._nWorkspacesChanged.bind(this)),
workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._updateThumbnailVisibility.bind(this)),
];
workspaceManager.connectObject(
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
this);
this.connect('scroll-event', this._onScrollEvent.bind(this));
this._updateMenu();
this._updateThumbnails();
this._updateThumbnailVisibility();
this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' });
this._settingsChangedId = this._settings.connect(
'changed::workspace-names', this._updateMenuLabels.bind(this));
}
_onDestroy() {
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
this._settingsChangedId = 0;
}
super._onDestroy();
this._settings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
this._settings.connectObject('changed::workspace-names',
() => this._updateMenuLabels(), this);
}
_updateThumbnailVisibility() {
const { workspaceManager } = global;
const {workspaceManager} = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
@@ -438,5 +417,4 @@ class WorkspaceIndicator extends PanelMenu.Button {
let newIndex = this._currentWorkspace + diff;
this._activate(newIndex);
}
});
}

View File

@@ -1,267 +1,290 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init */
const { Clutter, Graphene, GObject, St } = imports.gi;
import Clutter from 'gi://Clutter';
import Graphene from 'gi://Graphene';
import St from 'gi://St';
const Main = imports.ui.main;
const OverviewControls = imports.ui.overviewControls;
const Workspace = imports.ui.workspace;
const WorkspacesView = imports.ui.workspacesView;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as OverviewControls from 'resource:///org/gnome/shell/ui/overviewControls.js';
import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js';
import {Workspace} from 'resource:///org/gnome/shell/ui/workspace.js';
import {WorkspacesView} from 'resource:///org/gnome/shell/ui/workspacesView.js';
const WINDOW_SLOT = 4;
var MyWorkspace = GObject.registerClass(
class MyWorkspace extends Workspace.Workspace {
_init(...args) {
super._init(...args);
if (this.metaWorkspace && this.metaWorkspace.index() < 9) {
this._tip = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this.add_actor(this._tip);
this.connect('notify::scale-x', () => {
this._tip.set_scale(1 / this.scale_x, 1 / this.scale_x);
});
} else {
this._tip = null;
}
}
vfunc_allocate(box) {
super.vfunc_allocate(box);
if (this._tip)
this._tip.allocate_preferred_size(0, 0);
}
showTooltip() {
if (!this._tip)
return;
this._tip.text = (this.metaWorkspace.index() + 1).toString();
this._tip.show();
this.set_child_below_sibling(this._tip, null);
}
hideTooltip() {
if (this._tip)
this._tip.hide();
}
getWindowWithTooltip(id) {
const { layoutManager } = this._container;
const slot = layoutManager._windowSlots[id - 1];
return slot ? slot[WINDOW_SLOT].metaWindow : null;
}
showWindowsTooltips() {
const { layoutManager } = this._container;
for (let i = 0; i < layoutManager._windowSlots.length; i++) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
}
}
hideWindowsTooltips() {
const { layoutManager } = this._container;
for (let i in layoutManager._windowSlots) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip();
}
}
// overriding _addWindowClone to apply the tooltip patch on the cloned
// windowPreview
_addWindowClone(metaWindow) {
const clone = super._addWindowClone(metaWindow);
// appling the tooltip patch
(function patchPreview() {
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this._text.add_constraint(new Clutter.BindConstraint({
source: this.windowContainer,
coordinate: Clutter.BindCoordinate.POSITION,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.X_AXIS,
pivot_point: new Graphene.Point({ x: 0.5, y: -1 }),
factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.Y_AXIS,
pivot_point: new Graphene.Point({ x: -1, y: 0.5 }),
factor: 0,
}));
this.add_child(this._text);
}).call(clone);
clone.showTooltip = function (text) {
this._text.set({ text });
this._text.show();
};
clone.hideTooltip = function () {
if (this._text && this._text.visible)
this._text.hide();
};
return clone;
}
});
var MyWorkspacesView = GObject.registerClass(
class MyWorkspacesView extends WorkspacesView.WorkspacesView {
_init(...args) {
super._init(...args);
this._pickWorkspace = false;
this._pickWindow = false;
this._keyPressEventId =
global.stage.connect('key-press-event', this._onKeyPress.bind(this));
this._keyReleaseEventId =
global.stage.connect('key-release-event', this._onKeyRelease.bind(this));
}
_onDestroy() {
super._onDestroy();
global.stage.disconnect(this._keyPressEventId);
global.stage.disconnect(this._keyReleaseEventId);
}
_hideTooltips() {
if (global.stage.get_key_focus() === global.stage)
global.stage.set_key_focus(this._prevFocusActor);
this._pickWindow = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideWindowsTooltips();
}
_hideWorkspacesTooltips() {
global.stage.set_key_focus(this._prevFocusActor);
this._pickWorkspace = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideTooltip();
}
_onKeyRelease(s, o) {
if (this._pickWindow &&
(o.get_key_symbol() === Clutter.KEY_Alt_L ||
o.get_key_symbol() === Clutter.KEY_Alt_R))
this._hideTooltips();
if (this._pickWorkspace &&
(o.get_key_symbol() === Clutter.KEY_Control_L ||
o.get_key_symbol() === Clutter.KEY_Control_R))
this._hideWorkspacesTooltips();
}
_onKeyPress(s, o) {
const { ControlsState } = OverviewControls;
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
return false;
let workspaceManager = global.workspace_manager;
if ((o.get_key_symbol() === Clutter.KEY_Alt_L ||
o.get_key_symbol() === Clutter.KEY_Alt_R) &&
!this._pickWorkspace) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._active = workspaceManager.get_active_workspace_index();
this._pickWindow = true;
this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
return true;
}
if ((o.get_key_symbol() === Clutter.KEY_Control_L ||
o.get_key_symbol() === Clutter.KEY_Control_R) &&
!this._pickWindow) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._pickWorkspace = true;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].showTooltip();
return true;
}
if (global.stage.get_key_focus() !== global.stage)
return false;
// ignore shift presses, they're required to get numerals in azerty keyboards
if ((this._pickWindow || this._pickWorkspace) &&
(o.get_key_symbol() === Clutter.KEY_Shift_L ||
o.get_key_symbol() === Clutter.KEY_Shift_R))
return true;
if (this._pickWindow) {
if (this._active !== workspaceManager.get_active_workspace_index()) {
this._hideTooltips();
return false;
}
let c = o.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = o.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideTooltips();
global.log(c);
return false;
}
}
let win = this._workspaces[this._active].getWindowWithTooltip(c);
this._hideTooltips();
if (win)
Main.activateWindow(win, global.get_current_time());
return true;
}
if (this._pickWorkspace) {
let c = o.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = o.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideWorkspacesTooltips();
return false;
}
}
let workspace = this._workspaces[c - 1];
if (workspace !== undefined)
workspace.metaWorkspace.activate(global.get_current_time());
this._hideWorkspacesTooltips();
return true;
}
return false;
}
});
class Extension {
export default class Extension {
constructor() {
this._origWorkspace = Workspace.Workspace;
this._origWorkspacesView = WorkspacesView.WorkspacesView;
this._injectionManager = new InjectionManager();
}
enable() {
Workspace.Workspace = MyWorkspace;
WorkspacesView.WorkspacesView = MyWorkspacesView;
const previewProto = WindowPreview.prototype;
this._injectionManager.overrideMethod(previewProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this._text.add_constraint(new Clutter.BindConstraint({
source: this.windowContainer,
coordinate: Clutter.BindCoordinate.POSITION,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.X_AXIS,
pivot_point: new Graphene.Point({x: 0.5, y: -1}),
factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.Y_AXIS,
pivot_point: new Graphene.Point({x: -1, y: 0.5}),
factor: 0,
}));
this.add_child(this._text);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(previewProto, 'showTooltip', () => {
/* eslint-disable no-invalid-this */
return function (text) {
this._text.set({text});
this._text.show();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(previewProto, 'hideTooltip', () => {
/* eslint-disable no-invalid-this */
return function () {
this._text?.hide();
};
/* eslint-enable */
});
const workspaceProto = Workspace.prototype;
this._injectionManager.overrideMethod(workspaceProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
if (this.metaWorkspace && this.metaWorkspace.index() < 9) {
this._tip = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this.add_actor(this._tip);
this.connect('notify::scale-x', () => {
this._tip.set_scale(1 / this.scale_x, 1 / this.scale_x);
});
} else {
this._tip = null;
}
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'vfunc_allocate', originalMethod => {
/* eslint-disable no-invalid-this */
return function (box) {
originalMethod.call(this, box);
this._tip?.allocate_preferred_size(0, 0);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'showTooltip', () => {
/* eslint-disable no-invalid-this */
return function () {
if (!this._tip)
return;
this._tip.text = (this.metaWorkspace.index() + 1).toString();
this._tip.show();
this.set_child_below_sibling(this._tip, null);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'hideTooltip', () => {
/* eslint-disable no-invalid-this */
return function () {
this._tip?.hide();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'getWindowWithTooltip', () => {
/* eslint-disable no-invalid-this */
return function (id) {
const {layoutManager} = this._container;
const slot = layoutManager._windowSlots[id - 1];
return slot ? slot[WINDOW_SLOT].metaWindow : null;
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'showWindowsTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
const {layoutManager} = this._container;
for (let i = 0; i < layoutManager._windowSlots.length; i++) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
}
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'hideWindowsTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
const {layoutManager} = this._container;
for (let i in layoutManager._windowSlots) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip();
}
};
/* eslint-enable */
});
const viewProto = WorkspacesView.prototype;
this._injectionManager.overrideMethod(viewProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
this._pickWorkspace = false;
this._pickWindow = false;
global.stage.connectObject(
'key-press-event', this._onKeyPress.bind(this),
'key-release-event', this._onKeyRelease.bind(this),
this);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_hideTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
if (global.stage.get_key_focus() === global.stage)
global.stage.set_key_focus(this._prevFocusActor);
this._pickWindow = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideWindowsTooltips();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_hideWorkspacesTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
global.stage.set_key_focus(this._prevFocusActor);
this._pickWorkspace = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideTooltip();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_onKeyRelease', () => {
/* eslint-disable no-invalid-this */
return function (actor, event) {
if (this._pickWindow &&
(event.get_key_symbol() === Clutter.KEY_Alt_L ||
event.get_key_symbol() === Clutter.KEY_Alt_R))
this._hideTooltips();
if (this._pickWorkspace &&
(event.get_key_symbol() === Clutter.KEY_Control_L ||
event.get_key_symbol() === Clutter.KEY_Control_R))
this._hideWorkspacesTooltips();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_onKeyPress', () => {
/* eslint-disable no-invalid-this */
return function (actor, event) {
const {ControlsState} = OverviewControls;
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
return false;
let workspaceManager = global.workspace_manager;
if ((event.get_key_symbol() === Clutter.KEY_Alt_L ||
event.get_key_symbol() === Clutter.KEY_Alt_R) &&
!this._pickWorkspace) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._active = workspaceManager.get_active_workspace_index();
this._pickWindow = true;
this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
return true;
}
if ((event.get_key_symbol() === Clutter.KEY_Control_L ||
event.get_key_symbol() === Clutter.KEY_Control_R) &&
!this._pickWindow) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._pickWorkspace = true;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].showTooltip();
return true;
}
if (global.stage.get_key_focus() !== global.stage)
return false;
// ignore shift presses, they're required to get numerals in azerty keyboards
if ((this._pickWindow || this._pickWorkspace) &&
(event.get_key_symbol() === Clutter.KEY_Shift_L ||
event.get_key_symbol() === Clutter.KEY_Shift_R))
return true;
if (this._pickWindow) {
if (this._active !== workspaceManager.get_active_workspace_index()) {
this._hideTooltips();
return false;
}
let c = event.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = event.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideTooltips();
log(c);
return false;
}
}
let win = this._workspaces[this._active].getWindowWithTooltip(c);
this._hideTooltips();
if (win)
Main.activateWindow(win, global.get_current_time());
return true;
}
if (this._pickWorkspace) {
let c = event.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = event.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideWorkspacesTooltips();
return false;
}
}
let workspace = this._workspaces[c - 1];
if (workspace !== undefined)
workspace.metaWorkspace.activate(global.get_current_time());
this._hideWorkspacesTooltips();
return true;
}
return false;
};
/* eslint-enable */
});
}
disable() {
Workspace.Workspace = this._origWorkspace;
WorkspacesView.WorkspacesView = this._origWorkspacesView;
this._injectionManager.clear();
}
}
function init() {
return new Extension();
}

View File

@@ -3,3 +3,4 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')

View File

@@ -1,18 +1,16 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init enable disable */
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
import St from 'gi://St';
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.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;
const Me = ExtensionUtils.getCurrentExtension();
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
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 WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
@@ -22,32 +20,32 @@ const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button {
_init(window) {
super._init({
static {
GObject.registerClass(this);
}
constructor(window) {
super({
style_class: 'workspace-indicator-window-preview',
});
this._delegate = this;
DND.makeDraggable(this, { restoreOnSuccess: true });
DND.makeDraggable(this, {restoreOnSuccess: true});
this._window = window;
this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed',
() => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed',
() => {
this._window.connectObject(
'size-changed', () => this.queue_relayout(),
'position-changed', () => {
this._updateVisible();
this.queue_relayout();
});
this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
},
'notify::minimized', this._updateVisible.bind(this),
this);
this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this));
global.display.connectObject('notify::focus-window',
this._onFocusChanged.bind(this), this);
this._onFocusChanged();
}
@@ -56,13 +54,6 @@ class WindowPreview extends St.Button {
return this._window;
}
_onDestroy() {
this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._focusChangedId);
}
_onFocusChanged() {
if (global.display.focus_window === this._window)
this.add_style_class_name('active');
@@ -77,10 +68,13 @@ class WindowPreview extends St.Button {
this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace();
}
});
}
let WorkspaceLayout = GObject.registerClass(
class WorkspaceLayout extends Clutter.LayoutManager {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_width() {
return [0, 0];
}
@@ -107,12 +101,15 @@ class WorkspaceLayout extends Clutter.LayoutManager {
child.allocate(childBox);
}
}
});
}
let WorkspaceThumbnail = GObject.registerClass(
class WorkspaceThumbnail extends St.Button {
_init(index) {
super._init({
static {
GObject.registerClass(this);
}
constructor(index) {
super({
style_class: 'workspace',
child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(),
@@ -137,16 +134,13 @@ class WorkspaceThumbnail extends St.Button {
let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index);
this._windowAddedId = this._workspace.connect('window-added',
(ws, window) => {
this._addWindow(window);
});
this._windowRemovedId = this._workspace.connect('window-removed',
(ws, window) => {
this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.connectObject(
'window-added', (ws, window) => this._addWindow(window),
'window-removed', (ws, window) => this._removeWindow(window),
this);
global.display.connectObject('restacked',
this._onRestacked.bind(this), this);
this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked();
@@ -244,17 +238,16 @@ class WorkspaceThumbnail extends St.Button {
_onDestroy() {
this._tooltip.destroy();
this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId);
}
});
}
let WorkspaceIndicator = GObject.registerClass(
class WorkspaceIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _('Workspace Indicator'));
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Workspace Indicator'));
let container = new St.Widget({
layout_manager: new Clutter.BinLayout(),
@@ -286,14 +279,11 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._workspaceSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._workspaceSection);
this._workspaceManagerSignals = [
workspaceManager.connect_after('notify::n-workspaces',
this._nWorkspacesChanged.bind(this)),
workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._updateThumbnailVisibility.bind(this)),
];
workspaceManager.connectObject(
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
this);
this.connect('scroll-event', this._onScrollEvent.bind(this));
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
@@ -301,28 +291,19 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._updateThumbnails();
this._updateThumbnailVisibility();
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
this._settingsChangedId = this._settings.connect(
`changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this));
this._settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
this._settings.connectObject(`changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this), this);
}
_onDestroy() {
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
this._settingsChangedId = 0;
}
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
super._onDestroy();
}
_updateThumbnailVisibility() {
const { workspaceManager } = global;
const {workspaceManager} = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
@@ -443,19 +424,16 @@ class WorkspaceIndicator extends PanelMenu.Button {
let newIndex = global.workspace_manager.get_active_workspace_index() + diff;
this._activate(newIndex);
}
});
function init() {
ExtensionUtils.initTranslations();
}
let _indicator;
export default class WorkspaceIndicatorExtension extends Extension {
enable() {
this._indicator = new WorkspaceIndicator();
Main.panel.addToStatusArea('workspace-indicator', this._indicator);
}
function enable() {
_indicator = new WorkspaceIndicator();
Main.panel.addToStatusArea('workspace-indicator', _indicator);
}
function disable() {
_indicator.destroy();
disable() {
this._indicator.destroy();
delete this._indicator;
}
}

View File

@@ -3,5 +3,6 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_sources += files('prefs.js')

View File

@@ -1,133 +1,165 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
import Pango from 'gi://Pango';
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Gettext = imports.gettext.domain(Me.metadata['gettext-domain']);
const _ = Gettext.gettext;
const N_ = e => e;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
const WorkspaceSettingsWidget = GObject.registerClass(
class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
_init() {
super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
class NewItem extends GObject.Object {}
GObject.registerClass(NewItem);
class NewItemModel extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#item = new NewItem();
vfunc_get_item_type() {
return NewItem;
}
vfunc_get_n_items() {
return 1;
}
vfunc_get_item(_pos) {
return this.#item;
}
}
class WorkspacesList extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
#names = this.#settings.get_strv(WORKSPACE_KEY);
#items = Gtk.StringList.new(this.#names);
#changedId;
constructor() {
super();
this.#changedId =
this.#settings.connect(`changed::${WORKSPACE_KEY}`, () => {
const removed = this.#names.length;
this.#names = this.#settings.get_strv(WORKSPACE_KEY);
this.#items.splice(0, removed, this.#names);
this.items_changed(0, removed, this.#names.length);
});
}
append() {
const name = _('Workspace %d').format(this.#names.length + 1);
this.#names.push(name);
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
this.#settings.unblock_signal_handler(this.#changedId);
const pos = this.#items.get_n_items();
this.#items.append(name);
this.items_changed(pos, 0, 1);
}
remove(name) {
const pos = this.#names.indexOf(name);
if (pos < 0)
return;
this.#names.splice(pos, 1);
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
this.#settings.unblock_signal_handler(this.#changedId);
this.#items.remove(pos);
this.items_changed(pos, 1, 0);
}
rename(oldName, newName) {
const pos = this.#names.indexOf(oldName);
if (pos < 0)
return;
this.#names.splice(pos, 1, newName);
this.#items.splice(pos, 1, [newName]);
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
this.#settings.unblock_signal_handler(this.#changedId);
}
vfunc_get_item_type() {
return Gtk.StringObject;
}
vfunc_get_n_items() {
return this.#items.get_n_items();
}
vfunc_get_item(pos) {
return this.#items.get_item(pos);
}
}
class WorkspaceSettingsWidget extends Adw.PreferencesGroup {
static {
GObject.registerClass(this);
this.install_action('workspaces.add', null,
self => self._workspaces.append());
this.install_action('workspaces.remove', 's',
(self, name, param) => self._workspaces.remove(param.unpack()));
this.install_action('workspaces.rename', '(ss)',
(self, name, param) => self._workspaces.rename(...param.deepUnpack()));
}
constructor() {
super({
title: _('Workspace Names'),
});
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
halign: Gtk.Align.CENTER,
spacing: 12,
margin_top: 36,
margin_bottom: 36,
margin_start: 36,
margin_end: 36,
});
this.set_child(box);
this._workspaces = new WorkspacesList();
box.append(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Names')),
use_markup: true,
halign: Gtk.Align.START,
}));
const store = new Gio.ListStore({item_type: Gio.ListModel});
const listModel = new Gtk.FlattenListModel({model: store});
store.append(this._workspaces);
store.append(new NewItemModel());
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
valign: Gtk.Align.START,
show_separators: true,
css_classes: ['boxed-list'],
});
this._list.connect('row-activated', (l, row) => row.edit());
box.append(this._list);
this.add(this._list);
const context = this._list.get_style_context();
const cssProvider = new Gtk.CssProvider();
cssProvider.load_from_data(
'list { min-width: 25em; }');
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
this._list.append(new NewWorkspaceRow());
this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('workspaces', this._actionGroup);
let action;
action = new Gio.SimpleAction({ name: 'add' });
action.connect('activate', () => {
const names = this._settings.get_strv(WORKSPACE_KEY);
this._settings.set_strv(WORKSPACE_KEY, [
...names,
_('Workspace %d').format(names.length + 1),
]);
});
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({
name: 'remove',
parameter_type: new GLib.VariantType('s'),
});
action.connect('activate', (a, param) => {
const removed = param.deepUnpack();
this._settings.set_strv(WORKSPACE_KEY,
this._settings.get_strv(WORKSPACE_KEY)
.filter(name => name !== removed));
});
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({ name: 'update' });
action.connect('activate', () => {
const names = this._getWorkspaceRows().map(row => row.name);
this._settings.set_strv(WORKSPACE_KEY, names);
});
this._actionGroup.add_action(action);
this._settings = new Gio.Settings({
schema_id: WORKSPACE_SCHEMA,
});
this._settings.connect(`changed::${WORKSPACE_KEY}`,
this._sync.bind(this));
this._sync();
}
_getWorkspaceRows() {
return [...this._list].filter(row => row.name);
}
_sync() {
const rows = this._getWorkspaceRows();
const oldNames = rows.map(row => row.name);
const newNames = this._settings.get_strv(WORKSPACE_KEY);
const removed = oldNames.filter(n => !newNames.includes(n));
const added = newNames.filter(n => !oldNames.includes(n));
removed.forEach(n => this._list.remove(rows.find(r => r.name === n)));
added.forEach(n => {
this._list.insert(new WorkspaceRow(n), newNames.indexOf(n));
this._list.bind_model(listModel, item => {
return item instanceof NewItem
? new NewWorkspaceRow()
: new WorkspaceRow(item.string);
});
}
});
}
const WorkspaceRow = GObject.registerClass(
class WorkspaceRow extends Gtk.ListBoxRow {
_init(name) {
super._init({ name });
class WorkspaceRow extends Adw.PreferencesRow {
static {
GObject.registerClass(this);
}
const controller = new Gtk.ShortcutController();
controller.add_shortcut(new Gtk.Shortcut({
trigger: Gtk.ShortcutTrigger.parse_string('Escape'),
action: Gtk.CallbackAction.new(this._stopEdit.bind(this)),
}));
this.add_controller(controller);
constructor(name) {
super({name});
const box = new Gtk.Box({
spacing: 12,
@@ -149,21 +181,39 @@ class WorkspaceRow extends Gtk.ListBoxRow {
const button = new Gtk.Button({
action_name: 'workspaces.remove',
action_target: new GLib.Variant('s', name),
icon_name: 'edit-delete-symbolic',
has_frame: false,
});
box.append(button);
this.bind_property_full('name',
button, 'action-target',
GObject.BindingFlags.SYNC_CREATE,
(bind, target) => [true, new GLib.Variant('s', target)],
null);
this._entry = new Gtk.Entry({
max_width_chars: 25,
});
const controller = new Gtk.ShortcutController();
controller.add_shortcut(new Gtk.Shortcut({
trigger: Gtk.ShortcutTrigger.parse_string('Escape'),
action: Gtk.CallbackAction.new(() => {
this._stopEdit();
return true;
}),
}));
this._entry.add_controller(controller);
this._stack = new Gtk.Stack();
this._stack.add_named(box, 'display');
this._stack.add_named(this._entry, 'edit');
this.child = this._stack;
this._entry.connect('activate', () => {
this.activate_action('workspaces.rename',
new GLib.Variant('(ss)', [this.name, this._entry.text]));
this.name = this._entry.text;
this._stopEdit();
});
@@ -172,11 +222,6 @@ class WorkspaceRow extends Gtk.ListBoxRow {
return;
this._stopEdit();
});
this.connect('notify::name', () => {
button.action_target = new GLib.Variant('s', this.name);
this.activate_action('workspaces.update', null);
});
}
edit() {
@@ -189,12 +234,15 @@ class WorkspaceRow extends Gtk.ListBoxRow {
this.grab_focus();
this._stack.visible_child_name = 'display';
}
});
}
const NewWorkspaceRow = GObject.registerClass(
class NewWorkspaceRow extends Gtk.ListBoxRow {
_init() {
super._init({
class NewWorkspaceRow extends Adw.PreferencesRow {
static {
GObject.registerClass(this);
}
constructor() {
super({
action_name: 'workspaces.add',
child: new Gtk.Image({
icon_name: 'list-add-symbolic',
@@ -208,12 +256,10 @@ class NewWorkspaceRow extends Gtk.ListBoxRow {
this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Workspace')]);
}
});
function init() {
ExtensionUtils.initTranslations();
}
function buildPrefsWidget() {
return new WorkspaceSettingsWidget();
export default class WorkspaceIndicatorPrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new WorkspaceSettingsWidget();
}
}

View File

@@ -1,8 +1,11 @@
---
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
# SPDX-FileCopyrightText: 2018 Claudio André <claudioandre.br@gmail.com>
env:
es6: true
es2021: true
extends: 'eslint:recommended'
plugins:
- jsdoc
rules:
array-bracket-newline:
- error
@@ -60,6 +63,20 @@ rules:
- 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child'
# Allow dedenting chained member expressions
MemberExpression: 'off'
jsdoc/check-alignment: error
jsdoc/check-param-names: error
jsdoc/check-tag-names: error
jsdoc/check-types: error
jsdoc/implements-on-classes: error
jsdoc/tag-lines:
- error
- any
- startLines: 1
jsdoc/require-jsdoc: error
jsdoc/require-param: error
jsdoc/require-param-description: error
jsdoc/require-param-name: error
jsdoc/require-param-type: error
key-spacing:
- error
- beforeColon: false
@@ -71,7 +88,10 @@ rules:
linebreak-style:
- error
- unix
lines-between-class-members: error
lines-between-class-members:
- error
- always
- exceptAfterSingleLine: true
max-nested-callbacks: error
max-statements-per-line: error
new-parens: error
@@ -107,8 +127,15 @@ rules:
no-octal-escape: error
no-proto: error
no-prototype-builtins: 'off'
no-restricted-globals: [error, window]
no-restricted-properties:
- error
- object: imports
property: format
message: Use template strings
- object: pkg
property: initFormat
message: Use template strings
- object: Lang
property: copyProperties
message: Use Object.assign()
@@ -167,6 +194,7 @@ rules:
object-curly-newline:
- error
- consistent: true
multiline: true
object-curly-spacing: error
object-shorthand: error
operator-assignment: error
@@ -214,14 +242,14 @@ rules:
template-curly-spacing: error
template-tag-spacing: error
unicode-bom: error
valid-jsdoc:
- error
- requireReturn: false
wrap-iife:
- error
- inside
yield-star-spacing: error
yoda: error
settings:
jsdoc:
mode: typescript
globals:
ARGV: readonly
Debugger: readonly
@@ -233,5 +261,13 @@ globals:
logError: readonly
print: readonly
printerr: readonly
window: readonly
TextEncoder: readonly
TextDecoder: readonly
console: readonly
setTimeout: readonly
setInterval: readonly
clearTimeout: readonly
clearInterval: readonly
parserOptions:
ecmaVersion: 2020
ecmaVersion: 2022

View File

@@ -3,9 +3,12 @@ rules:
- error
- properties: never
allow: [^vfunc_, ^on_]
object-curly-spacing:
consistent-return: error
eqeqeq:
- error
- always
- smart
prefer-arrow-callback: error
globals:
global: readonly
parserOptions:
sourceType: module

View File

@@ -1,6 +1,6 @@
project('gnome-shell-extensions',
version: '40.4',
meson_version: '>= 0.44.0',
version: '45.beta',
meson_version: '>= 0.58.0',
license: 'GPL2+'
)
@@ -15,11 +15,11 @@ datadir = get_option('datadir')
shelldir = join_paths(datadir, 'gnome-shell')
extensiondir = join_paths(shelldir, 'extensions')
modedir = join_paths(shelldir, 'modes')
themedir = join_paths(shelldir, 'theme')
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
xsessiondir = join_paths(datadir, 'xsessions')
wlsessiondir = join_paths(datadir, 'wayland-sessions')
ver_arr = meson.project_version().split('.')
shell_version = ver_arr[0]
@@ -36,6 +36,7 @@ classic_extensions = [
default_extensions = classic_extensions
default_extensions += [
'drive-menu',
'light-style',
'screenshot-window-sizer',
'windowsNavigator',
'workspace-indicator'
@@ -83,9 +84,32 @@ endforeach
if classic_mode_enabled
subdir('data')
meson.add_install_script(
'meson/session-post-install.py',
join_paths(get_option('prefix'), datadir)
)
endif
subdir('extensions')
subdir('po')
meson.add_dist_script('meson/generate-stylesheets.py')
gnome.post_install(
glib_compile_schemas: true,
)
meson.add_dist_script('meson/check-version.py',
meson.project_version(),
'NEWS')
summary_options = {
'extensions': enabled_extensions,
'classic_mode': get_option('classic_mode'),
}
summary_dirs = {
'prefix': get_option('prefix'),
'datadir': get_option('datadir'),
}
summary(summary_dirs, section: 'Directories')
summary(summary_options, section: 'Build Options')

32
meson/check-version.py Executable file
View File

@@ -0,0 +1,32 @@
#!/usr/bin/env python3
import os, sys
from pathlib import Path
import argparse, subprocess
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':
subprocess.run(['appstream-util', 'validate-version', file, version],
check=True)
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,13 +0,0 @@
#!/usr/bin/env python3
import os
from pathlib import PurePath
import subprocess
sourceroot = os.environ.get('MESON_SOURCE_ROOT')
distroot = os.environ.get('MESON_DIST_ROOT')
stylesheet_path = PurePath('data/gnome-classic.css')
src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss'))
dst = PurePath(distroot, stylesheet_path)
subprocess.call(['sassc', '-a', src, dst])

20
meson/session-post-install.py Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env python3
import os
import shutil
import sys
if os.environ.get('DESTDIR'):
install_root = os.environ.get('DESTDIR') + os.path.abspath(sys.argv[1])
else:
install_root = sys.argv[1]
# FIXME: Meson is unable to copy a generated target file:
# https://groups.google.com/forum/#!topic/mesonbuild/3iIoYPrN4P0
dst_dir = os.path.join(install_root, 'wayland-sessions')
if not os.path.exists(dst_dir):
os.makedirs(dst_dir)
src = os.path.join(install_root, 'xsessions', 'gnome-classic.desktop')
dst = os.path.join(dst_dir, 'gnome-classic.desktop')
shutil.copyfile(src, dst)

View File

@@ -1,3 +1,4 @@
ab
af
an
ar
@@ -32,6 +33,7 @@ id
is
it
ja
ka
kab
kk
km

View File

@@ -1,4 +1,6 @@
data/gnome-classic.desktop.in
data/gnome-classic-wayland.desktop.in
data/gnome-classic-xorg.desktop.in
extensions/apps-menu/extension.js
extensions/auto-move-windows/extension.js
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml

268
po/ab.po Normal file
View File

@@ -0,0 +1,268 @@
# Abkhazian translation for gnome-shell-extensions.
# Copyright (C) 2022 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Нанба Наала <naala-nanba@rambler.ru>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions main\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-02-12 02:08+0000\n"
"Last-Translator: Нанба Наала <naala-nanba@rambler.ru>, 2022\n"
"Language-Team: Abkhazian <ab@li.org>\n"
"Language: ab\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Аклассикатә GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Ари асеанс аклассикатә усуратә еишәа GNOME хархәагас иамоуп "
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Аклассикатә GNOME Wayland аҟны"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Аклассикатә GNOME Xorg аҟны"
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Иалкаау"
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "Аԥшьқәа"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Аԥшьи аусуратә ҵакырақәа рыхьӡынҵеи"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Ацәаҳәақәа рыхьӡынҵа аиԥшрагәаҭага аԥшьы (desktop-фаил ахьӡ )змоу, зашьҭахь "
"ҩ-кәаԥки аусуратә ҭыԥ аномери гылоу "
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Аусуратә ҵакыра аԥҟаррақәа"
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Аԥҟара ацҵара"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Адиск «%s» аҭыгара залымшахеит:"
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Иаҿыҵуа аиҿартәырақәа"
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Афаил аартра"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Изыцҵоу аекран аҵакыра аԥенџьырқәа рзы ахархәара"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Шәхы иашәырхәа изыцҵоу аекран аҵакыра аминиатиура атыԥаркразыаекран аганқәа "
"реизышәара ԥсахуа аҭыԥыркра шәыржәпала, анаҩс адаԥа ҳәаақәызҵо ашәагаа "
"архәыҷразыари ахышәара ахархәара аиуоит аминиатиура «natural» аҭыԥыркра "
"алгоритм ахархәараан"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr " Аԥенџьырқәа рыхқәа хыхь рҭыԥыркра"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"Иалхзар, ахқәа аминиатиура хыхьтәи ахәҭаҟны аҭыԥ ааныркылалоит(ишыҟоу еиԥш "
"ахқәа ҵаҟатәи аҭыԥ ааныркылоит).Ари ахышәара аԥсахраан,уи аус аура "
"иалагарцазы, иаҭахуп Shell аиҭарура."
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Аҭыԥқәа"
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr " «%s» аус арура залшом"
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Иамоуӡит атом аибыҭара «%s» азы"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
msgid "Computer"
msgstr "Акомпиутер"
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "Аҩнытәи аҭаӡ"
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "Аҳа алаԥшхагара"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "Аекран аҭыхымҭа ашәагаақәа рыԥсахра"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr "Аекран аҭыхымҭа ашәагаақәа шьҭахьҟатәи ахырхарҭала рыԥсахра"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "Атема ахьӡ"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "~/.themes/name/gnome-shell аҟынтә иҭагалоу атема ахьӡ "
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Аркра"
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Архынҳәра"
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Аиҟәырҳәра"
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Аиҭашьақәыргылара"
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Аиҵыхра"
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "Зегьы реиҟәырҳәра"
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "Зегьы рырхынҳәра"
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "Зегьы реиҵыхра"
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "Зегьы реиҭашьақәыргылара"
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "Зегьы рыркра"
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "Аԥенџьырқәа рыхьӡынҵа"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "Аԥенџьырқәа аидыргәыԥлара анаҭаху"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Иҳәаақәнаҵоит, ианаҭаху ԥшьык иаҵанакуа аԥенџьырқәа реидыргәыԥлара, "
"аԥенџьырқәа рыхьӡынҵаҟны Иҟалар зылшо аҵакқәа : «never» — ахаан; «auto» — "
"автоматла; «always» — есқьынгьы"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "Аҵакырақәа зегьы рҟынтә аԥенџьырқәа раарԥшра"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr ""
"Аԥенџьырқәа рыхьӡынҵа аусуратә ҵакырақәа зегь рҟынтә акәу,мамзар уажәтәи "
"аҟынтә акәу ишаарԥшлатәу"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Аԥенџьырқәа рыхьӡынҵа амониторқәа зегьы рҟны рырбара"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Аԥенџьырқәа рыхьӡынҵа иаҿаку амониторқәа зегьы рыҟноума иахьаарԥшлатәу , "
"мамзар ихадоу аҟны акәу."
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Аԥенџьырқәа реидыргәыԥлара"
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Ахаангьы аԥенџьырқәа реидмыргәыԥлара"
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Аҭыԥ маҷхазар, аԥенџьырқәа еидшәыргәыԥла"
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Еснагь аԥенџьырқәа реидыргәыԥлара"
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Амониторқәа зегьы рҟны рырбара"
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Аусуратә ҵакыра аиндикатор"
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Аусуратә ҵакыра %d"
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Аусуратә ҵакырақәа рыхьӡқәа"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Аусуратә ҵакыра ацҵара"

101
po/be.po
View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2021-01-20 23:03+0000\n"
"PO-Revision-Date: 2021-01-24 15:33+0300\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-10-19 15:20+0300\n"
"Last-Translator: Launchpad translators\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n"
@@ -18,21 +18,30 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 3.0\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Класічны GNOME"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Гэты сеанс выкарыстоўвае класічны GNOME"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Класічны GNOME на Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Класічны GNOME на Xorg"
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Абраныя"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "Праграмы"
@@ -48,43 +57,41 @@ msgstr ""
"Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *."
"desktop), затым двукроп'е і нумар працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Правілы для працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:237
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Дадаць правіла"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Не ўдалося выняць дыск «%s»:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Здымныя прылады"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Адкрыць файлы"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
#, fuzzy
msgid "Use more screen for windows"
msgstr "Выкарыстоўваць большую плошчу экрана для вокнаў"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
#, fuzzy
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз "
"змяненне суадносінаў бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
"змяненне суадносін бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
"абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным "
"размяшчэннем мініяцюр."
@@ -102,31 +109,31 @@ msgstr ""
"перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць "
"абалонку."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Месцы"
#: extensions/places-menu/placeDisplay.js:46
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Не ўдалося запусціць «%s»"
#: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не ўдалося прымацаваць том для «%s»."
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Камп'ютар"
#: extensions/places-menu/placeDisplay.js:359
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "Хатняя папка"
#: extensions/places-menu/placeDisplay.js:404
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "Агляд сеткі"
@@ -146,47 +153,47 @@ msgstr "Назва тэмы"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Закрыць"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Скасаваць згортванне"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Згарнуць"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Скасаваць разгортванне"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Разгарнуць"
#: extensions/window-list/extension.js:432
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "Згарнуць усе"
#: extensions/window-list/extension.js:438
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "Скасаваць згортванне для ўсіх"
#: extensions/window-list/extension.js:444
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "Разгарнуць усе"
#: extensions/window-list/extension.js:452
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "Скасаваць разгортванне для ўсіх"
#: extensions/window-list/extension.js:460
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "Закрыць усе"
#: extensions/window-list/extension.js:737
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "Спіс вокнаў"
@@ -203,7 +210,7 @@ msgstr ""
"значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "Паказваць вокны з усіх працоўных прастор"
@@ -222,41 +229,41 @@ msgid ""
msgstr ""
"Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Групаванне вокнаў"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Ніколі не групаваць вокны"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Групаваць вокны калі не хапае месца"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Заўсёды групаваць вокны"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Паказваць на ўсіх маніторах"
#: extensions/window-list/workspaceIndicator.js:247
#: extensions/workspace-indicator/extension.js:253
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Індыкатар працоўнай прасторы"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Назвы працоўных прастор"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Працоўная прастора %d"
#: extensions/workspace-indicator/prefs.js:208
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Назвы працоўных прастор"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Дадаць працоўную прастору"

631
po/bg.po
View File

@@ -1,359 +1,272 @@
# Bulgarian translation for gnome-shell-extensions po-file.
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014.
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015.
# Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-09-09 15:20+0000\n"
"PO-Revision-Date: 2017-09-08 08:47+0300\n"
"Last-Translator: Lyubomir Vasilev <lyubomirv@abv.bg>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Класически GNOME"
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Работната среда изглежда като класическия GNOME (2.x)"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Прикрепяне на модалните прозорци към родителските им прозорци"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Този ключ при е с по-голям приоритет от „org.gnome.mutter“ при изпълнението "
"на обвивката на GNOME."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Подредба на бутоните на заглавната лента"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Този ключ при е с по-голям приоритет от „org.gnome.desktop.wm.preferences“ "
"при изпълнението на обвивката на GNOME."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Включване на специална подредба при приближаване на прозорец до ръбовете на "
"екрана"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Работни плотове само на основния екран"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Забавяне на смяната на фокуса до спирането на движението на показалеца"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Само миниатюри"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Само икони на приложенията"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Миниатюри и икони на приложенията"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Показване на прозорците като"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Да се показват само прозорците на текущия работен плот"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Показване на програмите"
#: extensions/apps-menu/extension.js:141
msgid "Favorites"
msgstr "Любими"
#: extensions/apps-menu/extension.js:436
msgid "Applications"
msgstr "Програми"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Списък с програмите и работните плотове"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
"desktop“ file name), следван от знака „:“ и номер на работен плот"
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Програма"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Работен плот"
#: extensions/auto-move-windows/prefs.js:85
msgid "Add Rule"
msgstr "Добавяне на правило"
#: extensions/auto-move-windows/prefs.js:106
msgid "Create new matching rule"
msgstr "Създаване на правило за съвпадение"
#: extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "Добавяне"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Неуспешно изваждане на устройство „%s“:"
#: extensions/drive-menu/extension.js:125
msgid "Removable devices"
msgstr "Преносими медии"
#: extensions/drive-menu/extension.js:150
msgid "Open Files"
msgstr "Отваряне на файлове"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Здравей, свят!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Друго приветстващо съобщение."
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
"Ако ключът не е празен, съдържанието му се извежда при натискането на панела."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Съобщение"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: extensions/example/prefs.js:43
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and "
"as such it has little functionality on its own.\n"
"Nevertheless its possible to customize the greeting message."
msgstr ""
"Това е пример за добре работещо разширение на обвивката на GNOME и има "
"минимална функционалност.\n"
"С него можете да промените приветстващото съобщение на панела."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Повече пространство за прозорците"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Използване на по-голяма част от екрана за поставянето на мини изображения "
"чрез промяна на съотношението на страните и допълнително обединяване за "
"смаляване на обхващащия ги правоъгълник. Тази настройка се прилага само при "
"естествената стратегия за поставяне на прозорците."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr "Заглавия на прозорците отгоре"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"Ако е истина, заглавията на прозорците се поставят над мини изображенията "
"им, а не както е стандартно — отдолу. За прилагане на промяната на "
"настройката трябва да рестартирате обвивката на GNOME."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
msgid "Places"
msgstr "Места"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Неуспешно монтиране на тома „%s“"
#: extensions/places-menu/placeDisplay.js:78
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Неуспешно стартиране на „%s“"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
msgid "Computer"
msgstr "Компютър"
#: extensions/places-menu/placeDisplay.js:303
msgid "Home"
msgstr "Домашна папка"
#: extensions/places-menu/placeDisplay.js:347
msgid "Browse Network"
msgstr "Мрежа"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "Смяна на размерите на снимката на екрана"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr "Смяна на размерите на снимката на екрана наобратно"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "Име на темата"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“"
#: extensions/window-list/extension.js:110
msgid "Close"
msgstr "Затваряне"
#: extensions/window-list/extension.js:129
msgid "Unminimize"
msgstr "Деминимизиране"
#: extensions/window-list/extension.js:130
msgid "Minimize"
msgstr "Минимизиране"
#: extensions/window-list/extension.js:136
msgid "Unmaximize"
msgstr "Демаксимизиране"
#: extensions/window-list/extension.js:137
msgid "Maximize"
msgstr "Максимизиране"
#: extensions/window-list/extension.js:420
msgid "Minimize all"
msgstr "Минимизиране на всички"
#: extensions/window-list/extension.js:428
msgid "Unminimize all"
msgstr "Деминимизиране на всички"
#: extensions/window-list/extension.js:436
msgid "Maximize all"
msgstr "Максимизиране на всички"
#: extensions/window-list/extension.js:445
msgid "Unmaximize all"
msgstr "Демаксимизиране на всички"
#: extensions/window-list/extension.js:454
msgid "Close all"
msgstr "Затваряне на всички"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Индикатор на работните плотове"
#: extensions/window-list/extension.js:842
msgid "Window List"
msgstr "Списък на прозорците"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "Кога да се групират прозорците"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Кога да се групират прозорците на една програма в списъка с прозорците. "
"Възможните стойности са „never“ (никога), „auto“ (автоматично) и "
"„always“ (винаги)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
msgid "Show the window list on all monitors"
msgstr "Извеждане на списъка с прозорци на всички монитори"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Дали списъкът с прозорци да се извежда на всички монитори или само на "
"основния"
#: extensions/window-list/prefs.js:32
msgid "Window Grouping"
msgstr "Групиране на прозорци"
#: extensions/window-list/prefs.js:50
msgid "Never group windows"
msgstr "Никога да не се групират"
#: extensions/window-list/prefs.js:51
msgid "Group windows when space is limited"
msgstr "Групиране при ограничено място"
#: extensions/window-list/prefs.js:52
msgid "Always group windows"
msgstr "Винаги да се групират"
#: extensions/window-list/prefs.js:75
msgid "Show on all monitors"
msgstr "На всички монитори"
#: extensions/workspace-indicator/prefs.js:141
msgid "Workspace Names"
msgstr "Имена на работните плотове"
#: extensions/workspace-indicator/prefs.js:157
msgid "Name"
msgstr "Име"
#: extensions/workspace-indicator/prefs.js:198
#, javascript-format
msgid "Workspace %d"
msgstr "Работен плот %d"
# Bulgarian translation for gnome-shell-extensions po-file.
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc.
# Copyright (C) 2021, 2022 Alexander Shopov <ash@kambanaria.org>.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014.
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021, 2022.
# Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2022-02-12 20:25+0000\n"
"PO-Revision-Date: 2022-02-13 11:40+0100\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Класически GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Работната среда изглежда като класическия GNOME (2.x)"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Класически GNOME в Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Класически GNOME в Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Любими"
#: extensions/apps-menu/extension.js:370
msgid "Applications"
msgstr "Програми"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Списък с програмите и работните плотове"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
"desktop“), следван от знака „:“ и номер на работен плот"
#: extensions/auto-move-windows/prefs.js:19
msgid "Workspace Rules"
msgstr "Правила за работните плотове"
#: extensions/auto-move-windows/prefs.js:245
msgid "Add Rule"
msgstr "Добавяне на правило"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:123
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Неуспешно изваждане на устройство „%s“:"
#: extensions/drive-menu/extension.js:139
msgid "Removable devices"
msgstr "Преносими медии"
#: extensions/drive-menu/extension.js:161
msgid "Open Files"
msgstr "Отваряне на файлове"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Повече пространство за прозорците"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Използване на по-голяма част от екрана за поставянето на мини изображения "
"чрез промяна на съотношението на страните и допълнително обединяване за "
"смаляване на обхващащия ги правоъгълник. Тази настройка се прилага само при "
"естествената стратегия за поставяне на прозорците."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr "Заглавия на прозорците отгоре"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"Ако е истина, заглавията на прозорците се поставят над мини изображенията "
"им, а не както е стандартно — отдолу. За прилагане на промяната на "
"настройката трябва да рестартирате обвивката на GNOME."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Места"
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Неуспешно стартиране на „%s“"
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Неуспешно монтиране на тома „%s“"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
msgid "Computer"
msgstr "Компютър"
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "Домашна папка"
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "Мрежа"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "Смяна на размерите на снимката на екрана"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr "Смяна на размерите на снимката на екрана наобратно"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "Име на темата"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“"
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Затваряне"
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Деминимизиране"
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Минимизиране"
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Демаксимизиране"
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Максимизиране"
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Минимизиране на всички"
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Деминимизиране на всички"
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Максимизиране на всички"
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Демаксимизиране на всички"
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Затваряне на всички"
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Списък на прозорците"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "Кога прозорците да се групират"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Кога прозорците на една програма да се групират в списъка с прозорците. "
"Възможните стойности са „never“ (никога), „auto“ (автоматично) и "
"„always“ (винаги)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:76
msgid "Show windows from all workspaces"
msgstr "Да се показват прозорците от всички работни плотове"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr ""
"Дали да се показват прозорците от всички работни плотове или само от текущия."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Извеждане на списъка с прозорци на всички монитори"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Дали списъкът с прозорци да се извежда на всички монитори или само на "
"основния"
#: extensions/window-list/prefs.js:32
msgid "Window Grouping"
msgstr "Групиране на прозорци"
#: extensions/window-list/prefs.js:37
msgid "Never group windows"
msgstr "Никога да не се групират"
#: extensions/window-list/prefs.js:38
msgid "Group windows when space is limited"
msgstr "Групиране при ограничено място"
#: extensions/window-list/prefs.js:39
msgid "Always group windows"
msgstr "Винаги да се групират"
#: extensions/window-list/prefs.js:63
msgid "Show on all monitors"
msgstr "На всички монитори"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Индикатор на работните плотове"
#: extensions/workspace-indicator/prefs.js:18
msgid "Workspace Names"
msgstr "Имена на работните плотове"
#: extensions/workspace-indicator/prefs.js:39
#, javascript-format
msgid "Workspace %d"
msgstr "Работен плот %d"
#: extensions/workspace-indicator/prefs.js:184
msgid "Add Workspace"
msgstr "Добавяне на работен плот"

View File

@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2017-07-08 13:29+0100\n"
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -19,19 +19,28 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME clàssic"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Aquesta sessió us permet utilitzar el GNOME clàssic"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME clàssic amb Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME clàssic amb Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Preferides"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplicacions"
@@ -48,26 +57,26 @@ msgstr ""
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
"número de l'espai de treball"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Regles dels espais de treball"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Afegeix una regla"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Ha fallat l'expulsió de la unitat «%s»:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Dispositius extraïbles"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Obre els fitxers"
@@ -81,10 +90,10 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de "
"les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-"
"les més per a reduir la caixa que les envolta. Aquest paràmetre de "
"configuració només s'aplica a l'estratègia de posicionament de finestres "
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures "
"de les finestres adaptant-les a la ràtio d'aspecte de la pantalla, "
"consolidant-les més per a reduir la caixa que les envolta. Aquest paràmetre "
"de configuració només s'aplica a l'estratègia de posicionament de finestres "
"natural."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
@@ -102,8 +111,8 @@ msgstr ""
"posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui "
"efecte."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Llocs"
@@ -146,47 +155,47 @@ msgstr "Nom del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Tanca"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Desminimitza"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimitza"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Desmaximitza"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximitza"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimitza-ho tot"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Desminimitza-ho tot"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maximitza-ho tot"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Desmaximitza-ho tot"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Tanca-ho tot"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Llista de finestres"
@@ -204,7 +213,7 @@ msgstr ""
"«auto» (automàticament) i «always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Mostra les finestres de tots els espais de treball"
@@ -226,41 +235,40 @@ msgstr ""
"Si es mostra la llista de finestres en tots els monitors connectats o només "
"al primari."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Agrupació de finestres"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Mai agrupis les finestres"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Agrupa les finestres quan l'espai estigui limitat"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Agrupa les finestres sempre"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Mostra a tots els monitors"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indicador de l'espai de treball"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Noms dels espais de treball"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Espai de treball %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Afegeix un espai de treball"

View File

@@ -2,15 +2,15 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Petr Kovar <pknbe@volny.cz>, 2013.
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 2015, 2017, 2019, 2020.
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-28 22:18+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-16 09:58+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
@@ -20,19 +20,28 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Gtranslator 2.91.6\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME klasik"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Toto sezení vás přihlásí do GNOME klasik"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME klasik na Waylandu"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME klasik na Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Oblíbené"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplikace"
@@ -48,26 +57,26 @@ msgstr ""
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Pravidla pracovních ploch"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Přidat pravidlo"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Vysunutí disku „%s“ selhalo:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Výměnná zařízení"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Otevřít soubory"
@@ -99,8 +108,8 @@ msgstr ""
"přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
"nastavení vyžaduje restart shellu, aby se projevila."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Místa"
@@ -143,47 +152,47 @@ msgstr "Název motivu"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Zavřít"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Zrušit minimalizaci"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimalizovat"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Zrušit maximalizaci"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximalizovat"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimalizovat všechna"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Zrušit minimalizaci všech"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maximalizovat všechna"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Zrušit maximalizaci všech"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Zavřít všechna"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Seznam oken"
@@ -200,7 +209,7 @@ msgstr ""
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Zobrazovat okna ze všech pracovních ploch"
@@ -220,40 +229,40 @@ msgstr ""
"Zda zobrazovat seznam oken na všech připojených monitorech nebo jen na "
"hlavním."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Seskupování oken"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Nikdy neseskupovat okna"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Seskupovat okna při nedostatku místa"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Vždy seskupovat okna"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Zobrazovat na všech monitorech"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Ukazatel pracovní plochy"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Názvy pracovních ploch"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Pracovní plocha %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Přidat pracovní plochu"

View File

@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-07 18:36+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-27 13:21+0100\n"
"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@@ -22,19 +22,28 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Denne session logger dig ind i GNOME Classic"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic på Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic på Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Favoritter"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Programmer"
@@ -50,26 +59,26 @@ msgstr ""
"En liste over strenge, som hver indeholder et program-id "
"(skrivebordsfilnavn), efterfulgt af et kolon og arbejdsområdets nummer"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Regler for arbejdsområde"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Tilføj regel"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Udskubning af drevet “%s” mislykkedes:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Flytbare enheder"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Åbn filer"
@@ -103,8 +112,8 @@ msgstr ""
"Ændring af denne indstilling kræver at shell'en genstartes for at træde i "
"kraft."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Steder"
@@ -147,47 +156,47 @@ msgstr "Temanavn"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Luk"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Afminimér"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimér"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Afmaksimér"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maksimér"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimér"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Afminimér alle"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maksimér alle"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Afmaksimér alle"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Luk alle"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Vinduesliste"
@@ -204,7 +213,7 @@ msgstr ""
"Mulige værdier er “never” (aldrig), “auto” (automatisk) og “always” (altid)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Vis vinduer fra alle arbejdsområder"
@@ -225,41 +234,41 @@ msgstr ""
"Om vindueslisten skal vise på alle tilsluttede skærme, eller kun på den "
"primære."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Vinduesgruppering"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Gruppér aldrig vinduer"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Gruppér vinduer når pladsen er begrænset"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Gruppér altid vinduer"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Vis på alle skærme"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Arbejdsområdeindikator"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Navne på arbejdsområder"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Arbejdsområde %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Tilføj arbejdsområde"

104
po/de.po
View File

@@ -2,41 +2,51 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2011-2013, 2017.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2011, 2012.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2011, 2012, 2022.
# Benjamin Steinwender <b@stbe.at>, 2013.
# Wolfgang Stöggl <c72578@yahoo.de>, 2014.
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2017.
# Tim Sabsch <tim@sabsch.com>, 2019-2020.
# Philipp Kiemle <philipp.kiemle@gmail.com>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-08 20:20+0200\n"
"Last-Translator: Tim Sabsch <tim@sabsch.com>\n"
"POT-Creation-Date: 2022-03-07 15:35+0000\n"
"PO-Revision-Date: 2022-03-10 22:26+0100\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Poedit 3.0.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Diese Sitzung meldet Sie in GNOME Classic an"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic unter Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic unter Xorg"
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Favoriten"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "Anwendungen"
@@ -53,26 +63,26 @@ msgstr ""
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der "
"Arbeitsfläche"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Arbeitsfläche-Regeln"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Regel hinzufügen"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Auswerfen von Laufwerk »%s« schlug fehl:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Wechseldatenträger"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Dateien öffnen"
@@ -106,31 +116,31 @@ msgstr ""
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Orte"
#: extensions/places-menu/placeDisplay.js:46
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Starten von »%s« fehlgeschlagen"
#: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Datenträger für »%s« konnte nicht eingebunden werden"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Rechner"
#: extensions/places-menu/placeDisplay.js:359
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "Persönlicher Ordner"
#: extensions/places-menu/placeDisplay.js:404
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "Netzwerk durchsuchen"
@@ -152,47 +162,47 @@ msgstr ""
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
"soll"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Schließen"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Minimieren rückgängig"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimieren"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Maximieren rückgängig"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximieren"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:441
msgid "Minimize all"
msgstr "Alle minimieren"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:447
msgid "Unminimize all"
msgstr "Alle minimieren rückgängig"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:453
msgid "Maximize all"
msgstr "Alle maximieren"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:461
msgid "Unmaximize all"
msgstr "Alle maximieren rückgängig"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:469
msgid "Close all"
msgstr "Alle schließen"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:753
msgid "Window List"
msgstr "Fensterliste"
@@ -210,7 +220,7 @@ msgstr ""
"»always« (immer)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "Fenster von allen Arbeitsflächen anzeigen"
@@ -232,41 +242,41 @@ msgstr ""
"Legt fest, ob die Fensterliste auf allen angeschlossenen Bildschirmen "
"angezeigt wird oder nur auf dem Primären."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Fenstergruppierung"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Fenster niemals gruppieren"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Fenster bei Platzmangel gruppieren"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Fenster immer gruppieren"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Auf allen Bildschirmen anzeigen"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Arbeitsflächenindikator"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Namen der Arbeitsflächen"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Arbeitsfläche %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Namen der Arbeitsflächen"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Arbeitsfläche hinzufügen"

101
po/el.po
View File

@@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-07-14 00:40+0300\n"
"POT-Creation-Date: 2023-02-18 15:10+0000\n"
"PO-Revision-Date: 2023-08-01 23:41+0300\n"
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
"Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n"
"Language: el\n"
@@ -21,22 +21,31 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.8.7.1\n"
"X-Generator: Poedit 3.3.2\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic σε Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic σε Xorg"
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Αγαπημένα"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:380
msgid "Applications"
msgstr "Εφαρμογές"
@@ -53,26 +62,26 @@ msgstr ""
"(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και "
"τον αριθμό του χώρου εργασίας"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Κανόνες χώρων εργασίας"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Προσθήκη κανόνα"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:212
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Αποτυχία εξαγωγής του δίσκου «%s»:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Αφαιρούμενες συσκευές"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Άνοιγμα αρχείων"
@@ -106,31 +115,31 @@ msgstr ""
"στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί επανεκκίνηση του "
"κελύφους για να υπάρξει κάποιο αποτέλεσμα."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Τοποθεσίες"
#: extensions/places-menu/placeDisplay.js:46
#: extensions/places-menu/placeDisplay.js:52
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Αποτυχία εκκίνησης «%s»"
#: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:67
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Αποτυχία προσάρτησης τόμου για «%s»"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
#: extensions/places-menu/placeDisplay.js:127
#: extensions/places-menu/placeDisplay.js:150
msgid "Computer"
msgstr "Υπολογιστής"
#: extensions/places-menu/placeDisplay.js:359
#: extensions/places-menu/placeDisplay.js:340
msgid "Home"
msgstr "Προσωπικός φάκελος"
#: extensions/places-menu/placeDisplay.js:404
#: extensions/places-menu/placeDisplay.js:385
msgid "Browse Network"
msgstr "Περιήγηση δικτύου"
@@ -151,47 +160,47 @@ msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Κλείσιμο"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Αποελαχιστοποίηση"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Ελαχιστοποίηση"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Απομεγιστοποίηση"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Μεγιστοποίηση"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "Ελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "Αποελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "Μεγιστοποίηση όλων"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "Απομεγιστοποίηση όλων"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "Κλείσιμο όλων"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "Λίστα παραθύρου"
@@ -209,7 +218,7 @@ msgstr ""
"«always» (πάντα)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας"
@@ -230,41 +239,41 @@ msgstr ""
"Αν θα εμφανίζεται ο κατάλογος παραθύρων όλων των συνδεμένων οθονών ή μόνο "
"της κύριας οθόνης."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Ομαδοποίηση παραθύρου"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Να μη γίνεται ποτέ ομαδοποίηση παραθύρων"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Ομαδοποίηση παραθύρων όταν ο χώρος είναι περιορισμένος"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Να εμφανίζεται σε όλες τις οθόνες"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Δείκτης χώρου εργασίας"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Ονόματα χώρων εργασίας:"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Χώρος εργασίας %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Ονόματα χώρων εργασίας"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Προσθήκη χώρου εργασίας"

View File

@@ -4,15 +4,15 @@
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
#
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2020.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2021.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n"
"PO-Revision-Date: 2020-05-04 14:06+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-26 17:58+0100\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
"Language: es_ES\n"
@@ -20,21 +20,32 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 3.36.0\n"
"X-Generator: Gtranslator 41.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME clásico"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión inicia GNOME clásico"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "GNOME clásico en Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "GNOME clásicoen Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Favoritos"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplicaciones"
@@ -50,27 +61,26 @@ msgstr ""
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
"archivo de escritorio), seguido de dos puntos y el número del área de trabajo"
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Reglas de las áreas de trabajo"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Añadir regla"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Falló al expulsar el dispositivo «%s»:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Dispositivos extraíbles"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Abrir archivos"
@@ -103,8 +113,8 @@ msgstr ""
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
"para que tenga efecto."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Lugares"
@@ -147,47 +157,47 @@ msgstr "Nombre del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Cerrar"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Desminimizar"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimizar"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Desmaximizar"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:429
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimizar todo"
#: extensions/window-list/extension.js:435
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Desminimizar todo"
#: extensions/window-list/extension.js:441
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maximizar todo"
#: extensions/window-list/extension.js:449
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Desmaximizar todo"
#: extensions/window-list/extension.js:457
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Cerrar todo"
#: extensions/window-list/extension.js:737
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Lista de ventanas"
@@ -204,7 +214,7 @@ msgstr ""
"ventanas. Los valores posibles son «never», «auto» y «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Mostrar ventanas de todas las áreas de trabajo"
@@ -226,41 +236,41 @@ msgstr ""
"Indica si se debe mostrar la lista de ventanas en todas las pantallas "
"conectadas o sólo en la primaria."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Agrupación de ventanas"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Nunca agrupar las ventanas"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Agrupar las ventanas cuando el espacio esté limitado"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Siempre agrupar las ventanas"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Mostrar en todas las pantallas"
#: extensions/window-list/workspaceIndicator.js:209
#: extensions/workspace-indicator/extension.js:215
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indicador de área de trabajo"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Nombres de los áreas de trabajo"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Área de trabajo %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Añadir área de trabajo"

View File

@@ -5,13 +5,13 @@
# assar <asiersar@yahoo.com>, 2011.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2013, 2015, 2017.
# Edurne Labaka <elabaka@uzei.com>, 2015.
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020.
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021.
#
msgid ""
msgstr "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-10 00:42+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-12-25 00:42+0200\n"
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
"Language-Team: Basque <librezale@librezale.eus>\n"
"Language: eu\n"
@@ -20,21 +20,29 @@ msgstr "Project-Id-Version: gnome-shell-extensions master\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Project-Style: gnome\n"
"X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Klasikoa"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Saio honek GNOME Klasikoa hasten du"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME klasikoa Wayland gainean"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME klasikoa Xorg gainean"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Gogokoak"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplikazioak"
@@ -48,26 +56,26 @@ msgid ""
"followed by a colon and the workspace number"
msgstr "Kateen zerrenda bat, bakoitzak aplikazio-ID bat duena (mahaigainaren fitxategi-izena) eta jarraian bi puntu eta laneko arearen zenbakia dituena"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Laneko areen arauak"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Gehitu araua"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Huts egin du “%s“ unitatea egoztean:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Gailu aldagarriak"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Ireki fitxategiak"
@@ -93,8 +101,8 @@ msgid ""
"restarting the shell to have any effect."
msgstr "TRUE (egia) bada, leihoen epigrafeak dagokien koadro txikien gainean jarriko ditu, Shell-aren lehenespena (behean jartzearena) gainidatziz. Ezarpen hau aldatzeko eta aplikatzeko Shell berrabiarazi behar da."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Lekuak"
@@ -137,47 +145,47 @@ msgstr "Gaiaren izena"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Itxi"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Leheneratu"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimizatu"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Desmaximizatu"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximizatu"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimizatu denak"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Leheneratu denak"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maximizatu denak"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Desmaximizatu denak"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Itxi denak"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Leiho-zerrenda"
@@ -192,7 +200,7 @@ msgid ""
msgstr "Aplikazio bereko leihoak leihoen zerrendan noiz elkartuko diren erabakitzen du. Balio erabilgarriak: “never“ (inoiz ere ez), “auto“ (automatikoa) eta “always“ (beti)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Erakutsi laneko area guztietako leihoak"
@@ -210,41 +218,41 @@ msgid ""
"primary one."
msgstr "Leihoen zerrenda konektatutako pantaila guztietan edo soilik pantaila nagusian erakutsiko den."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Leiho-elkartzea"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Leihoak inoiz ez elkartu"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Elkartu leihoak lekua mugatuta dagoenean"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Elkartu beti leihoak"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Erakutsi pantaila guztietan"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Lan arearen adierazlea"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Laneko areen izenak"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "%d. laneko area"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Gehitu laneko area"

View File

@@ -9,31 +9,40 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n"
"PO-Revision-Date: 2020-05-12 14:25+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-10 16:24+0330\n"
"Last-Translator: MohammadSaleh Kamyab <mskf1383@protonmail.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 2.4.2\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "گنوم کلاسیک"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "این نشست شما را به گنوم کلاسیک وارد می‌کند"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "گنوم کلاسیک روی وی‌لند"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "گنوم کلاسیک روی زورگ"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "برگزیده‌ها"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "برنامه‌ها"
@@ -49,26 +58,26 @@ msgstr ""
"فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک "
"ویرگول و شماره‌ی فضای کاری"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "قواعد فضای کاری"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "افزودن قاعده"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "بیرون دادن دیسک‌گردان «%s» شکست خورد:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "دستگاه‌های جداشدنی"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "گشودن پرونده‌ها"
@@ -100,7 +109,7 @@ msgstr ""
"شل در پایین را تغییر می‌دهد. تغییر این گزینه، نیاز به راه‌اندازی مجدد شل دارد تا "
"تاثیر بگذارد."
#: extensions/places-menu/extension.js:89 extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88 extensions/places-menu/extension.js:91
msgid "Places"
msgstr "مکان‌ها"
@@ -143,47 +152,47 @@ msgstr "نام تم"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "خروج"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "ناکمینه"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "کمینه"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "نابیشینه"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "بیشنه"
#: extensions/window-list/extension.js:429
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "کمینهٔ همه"
#: extensions/window-list/extension.js:435
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "ناکمینهٔ همه"
#: extensions/window-list/extension.js:441
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "بیشینهٔ همه"
#: extensions/window-list/extension.js:449
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "نابیشینهٔ همه"
#: extensions/window-list/extension.js:457
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "بستن همه"
#: extensions/window-list/extension.js:737
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "فهرست پنجره"
@@ -200,7 +209,7 @@ msgstr ""
"ممکن عبارتند از «never»، «auto» و «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "نمایش پنجره‌ها از تمام فضاهای کاری"
@@ -220,41 +229,41 @@ msgstr ""
"اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر "
"اصلی."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "گروه‌سازی پنجره‌ها"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "هیچ‌گاه پنجره‌ها گروه نشوند"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "پنجره‌ها زمانی که فضا محدود است گروه شوند"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "همیشه پنجره‌ها گروه شوند"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "نمایش در تمام نمایشگرها"
#: extensions/window-list/workspaceIndicator.js:209
#: extensions/workspace-indicator/extension.js:215
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "نشانگر فضای‌کاری"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "نام‌های فضای کاری"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "فضای کاری %Id"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "افزودن فضای‌کاری"

View File

@@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2021-03-15 21:32+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-27 18:54+0200\n"
"Last-Translator: JR-Fi <starman@starman.fi>\n"
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
"Language: fi\n"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.0.6\n"
"X-Generator: Poedit 3.0.1\n"
"X-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
@@ -29,15 +29,24 @@ msgstr ""
msgid "GNOME Classic"
msgstr "Perinteinen Gnome"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Tämä istunto kirjaa sinut perinteiseen Gnomeen"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Perinteinen Gnome Waylandia käyttäen"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Perinteinen Gnome Xorgia käyttäen"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Suosikit"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Sovellukset"
@@ -53,26 +62,26 @@ msgstr ""
"Lista merkkijonoja, jossa jokainen on ohjelman tunnus (työpöydän "
"tiedostonimi), jota seuraa kaksoispiste ja työtilan numero"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Työtilojen säännöt"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Lisää sääntö"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Aseman “%s” irrottaminen epäonnistui:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Erilliset tallennusvälineet"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Avaa tiedostonhallinta"
@@ -104,8 +113,8 @@ msgstr ""
"Tämä syrjäyttää oletusasetuksen, eli otsikkotekstin asettamisen pienoiskuvan "
"alle. Tämän asetuksen muutos vaatii Gnomen uudelleenkäynnistyksen."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Sijainnit"
@@ -149,47 +158,47 @@ msgstr "Teeman nimi"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Teeman nimi, ladataan sijainnista ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Sulje"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Palauta pienennys"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Pienennä"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Palauta suurennus"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Suurenna"
#: extensions/window-list/extension.js:432
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Pienennä kaikki"
#: extensions/window-list/extension.js:438
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:444
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Suurenna kaikki"
#: extensions/window-list/extension.js:452
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:460
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Sulje kaikki"
#: extensions/window-list/extension.js:738
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Ikkunaluettelo"
@@ -206,7 +215,7 @@ msgstr ""
"Mahdolliset arvot ovat “never”, “auto” ja “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Näytä ikkunat kaikista työtiloista"
@@ -228,41 +237,41 @@ msgstr ""
"Näytetäänkö ikkunaluettelo kaikilla liitetyillä näytöillä vai ainoastaan "
"ensisijaisella näytöllä."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Ikkunoiden ryhmitys"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Älä ryhmitä ikkunoita koskaan"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Ryhmitä ikkunat tilan ollessa rajallinen"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Ryhmitä ikkunat aina"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Näytä kaikilla näytöillä"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Työtilan ilmaisin"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Työtilojen nimet"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Työtila %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Lisää työtila"

View File

@@ -3,36 +3,48 @@
# This file is distributed under the same license as the gnome-shell-extensions package.
# Claude Paroz <claude@2xlibre.net>, 2011.
# Alain Lojewski <allomervan@gmail.com>, 2012-2013.
# Charles Monzat <charles.monzat@numericable.fr>, 2018.
# Charles Monzat <charles.monzat@free.fr>, 2018-2022.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-10 12:50+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-01 21:04+0100\n"
"Last-Translator: Charles Monzat <charles.monzat@free.fr>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Gtranslator 40.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classique"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Cette session vous connecte à GNOME Classique"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classique sur Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classique sur Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Favoris"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Applications"
@@ -49,26 +61,26 @@ msgstr ""
"dapplication (nom de fichier desktop), suivi par un deux-points et le "
"numéro de lespace de travail"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Règles des espaces de travail"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Ajouter une règle"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Léjection du disque « %s » a échoué :"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Périphériques amovibles"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Ouvrir Fichiers"
@@ -102,8 +114,8 @@ msgstr ""
"dessous. Pour que ce paramètre soit pris en compte, il faut redémarrer le "
"Shell."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Emplacements"
@@ -146,47 +158,47 @@ msgstr "Nom du thème"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Le nom du thème, à charger à partir de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Fermer"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Restaurer"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Réduire"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Restaurer"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximiser"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Tout réduire"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Tout restaurer"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Tout maximiser"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Tout restaurer"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Tout fermer"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Liste de fenêtres"
@@ -204,7 +216,7 @@ msgstr ""
 always » (toujours)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Afficher les fenêtres de tous les espaces de travail"
@@ -226,41 +238,41 @@ msgstr ""
"Indique sil faut afficher la liste des fenêtres sur tous les écrans "
"connectés ou seulement lécran principal."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Regroupement de fenêtres"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Ne jamais regrouper les fenêtres"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Regrouper les fenêtres quand lespace est limité"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Toujours regrouper les fenêtres"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Afficher sur tous les écrans"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indicateur despace de travail"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Noms des espaces de travail"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Espace de travail %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Ajouter un espace de travail"

View File

@@ -8,29 +8,38 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-10-08 21:24+0000\n"
"PO-Revision-Date: 2020-10-17 22:14+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-07 17:51+0100\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Poedit 3.0\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Cheste session ti fâs jentrâ in GNOME Classic"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic su Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic su Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Preferîts"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplicazions"
@@ -46,26 +55,26 @@ msgstr ""
"Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ."
"desktop), cun daûr doi ponts e il numar dal spazi di lavôr"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Regulis dai spazis di lavôr"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Zonte regule"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "No si è rivâts a parâ fûr la unitât “%s”»:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Dispositîfs estraibii"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Vierç i files"
@@ -98,8 +107,8 @@ msgstr ""
"sorpassant il compuartament predefinît de shell, che lis place in bas. "
"Cambiant cheste impostazion si scugne tornâ a inviâ la shell."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Puescj"
@@ -142,47 +151,47 @@ msgstr "Non dal teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Il non dal teme, che si cjame da ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Siere"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Gjave minimizazion"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimize"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Gjave massimizazion"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Massimize"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimize ducj"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Gjave a ducj la minimizazion"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Massimize ducj"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Gjave a ducj la massimizazion"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Siere ducj"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Liste barcons"
@@ -199,7 +208,7 @@ msgstr ""
"barcons. I valôrs pussibii a son “never”, “auto” e “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Mostre i barcons di ducj i spazis di lavôr"
@@ -220,41 +229,41 @@ msgstr ""
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
"chel principâl."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Intropament di barcons"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "No sta meti mai in grup i barcons"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Met dongje i barcons cuant che il spazi al è limitât"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Met simpri in grup i barcons"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Mostre su ducj i visôrs"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indicadôr spazi di lavôr"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Nons dai spazis di lavôr"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Spazi di lavôr %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Zonte spazi di lavôr"

100
po/gl.po
View File

@@ -3,37 +3,54 @@
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Fran Diéguez <frandieguez@gnome.org>, 2011.
# Fran Dieguez <frandieguez@gnome.org>, 2011-2020, 2021.
# Fran Dieguez <fran.dieguez@gnome.org>, 2011-2021.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2021-02-24 20:41+0100\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Proxecto Trasno <proxecto@trasno.gal>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-19 22:50+0100\n"
"Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 3.38.0\n"
"X-Generator: Gtranslator 40.0\n"
"X-Project-Style: gnome\n"
"X-DL-Team: gl\n"
"X-DL-Module: gnome-shell-extensions\n"
"X-DL-Branch: main\n"
"X-DL-Domain: po\n"
"X-DL-State: Translating\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME clásico"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión iniciarao en GNOME clásico"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "GNOME clásico en Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "GNOME clásico en Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Favoritos"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplicacións"
@@ -49,26 +66,26 @@ msgstr ""
"Unha lista de cadeas, cada unha das cales contén un id de aplicación (nome "
"de ficheiro desktop), seguido por unha coma e o número do espazo de traballo"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Regras da área de traballo"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Engadir regra"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Fallo ao extraer a unidade «%s»:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Dispositivos extraíbeis"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Abrir ficheiros"
@@ -82,8 +99,7 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Tente usar mais pantalla para dispor as miniaturas das xanelas adaptándose"
" á "
"Tente usar mais pantalla para dispor as miniaturas das xanelas adaptándose"
"taxa de aspecto da pantalla e consolidalas para reducir a caixa envolvente. "
"Esta configuración aplícase só para a estratexia de disposición natural."
@@ -101,8 +117,8 @@ msgstr ""
"respectiva, omitindo a disposición inferior por omisión do shell. Se cambia "
"esta configuración deberá reiniciar o shell para que se apliquen os cambios."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Lugares"
@@ -145,47 +161,47 @@ msgstr "Nome do tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nome do tema, a cargar desde ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Pechar"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Restabelecer"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimizar"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Restaurar"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:432
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimizar todo"
#: extensions/window-list/extension.js:438
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Restaurar todo"
#: extensions/window-list/extension.js:444
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maximizar todo"
#: extensions/window-list/extension.js:452
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Restaurar todo"
#: extensions/window-list/extension.js:460
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Pechar todo"
#: extensions/window-list/extension.js:738
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Lista de xanelas"
@@ -203,7 +219,7 @@ msgstr ""
"«always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Mostrar as xanelas de todos os espazos de traballo"
@@ -224,41 +240,41 @@ msgstr ""
"Indica se mostrar a lista de xanelas en todos os monitores conectados ou só "
"no primario."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Agrupación de xanelas"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Non agrupar nunca as xanelas"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Agrupar as xanelas cando o espazo é limitado"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Agrupar sempre as xanelas"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Mostrar en todos os monitores"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indicador de espazo de traballo"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Nomes dos espazos de traballo"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Espazos de traballo %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Engadir área de traballo"

View File

@@ -9,31 +9,40 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-28 22:04+0300\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-12 00:53+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
"Language: he\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Gtranslator 3.36.0\n"
"X-Generator: Poedit 3.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "0GNOME קלסי"
msgstr "GNOME קלסי"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "הפעלה זו מכניסה אותך למצב הקלסי של GNOME"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME קלסי על גבי Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME קלסי על גבי Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "מועדפים"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "יישומים"
@@ -49,27 +58,26 @@ msgstr ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "כללי מרחב העבודה"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "הוספת כלל"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "שליפת הכונן „%s” נכשלה:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "התקנים נתיקים"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "פתיחת קבצים"
@@ -101,8 +109,8 @@ msgstr ""
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "מיקומים"
@@ -145,47 +153,47 @@ msgstr "Theme name"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "סגירה"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "ביטול המזעור"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "מזעור"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "ביטול ההגדלה"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "הגדלה"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "מזעור הכל"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "ביטול מזעור הכל"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "הגדלת הכל"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "ביטול הגדלת הכל"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "סגירת הכל"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "רשימת חלונות"
@@ -202,7 +210,7 @@ msgstr ""
"Possible values are “never”, “auto” and “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "הצגת חלונות מכל מרחבי העבודה"
@@ -222,42 +230,41 @@ msgstr ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "קיבוץ חלונות"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "לעולם לא לקבץ חלונות"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "קיבוץ חלונות כאשר המקום מוגבל"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "תמיד לקבץ חלונות"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "הצגה בכל הצגים"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "מחוון מרחבי עבודה"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "שם מרחב העבודה"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "מרחב עבודה %d"
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "הוספת מרחב עבודה"

View File

@@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-20 00:38+0200\n"
"Last-Translator: gogo <linux.hr@protonmail.com>\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-12 12:24+0100\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
@@ -18,21 +18,30 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Poedit 2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME klasičan"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Ova sesija vas prijavljuje u klasičan GNOME"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME klasičan na Waylandu"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME klasičan na Xorgu"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Omiljeni"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplikacije"
@@ -48,26 +57,26 @@ msgstr ""
"Popis nizova, svaki sadrži aplikaciju (naziv datoteke prečaca), slijedeći "
"stupac i broj radnog prostora"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Pravila radnog prostora"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Dodaj pravilo"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Izbacivanje uređaja “%s” neuspjelo:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Prijenosni uređaji"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Otvori datoteku"
@@ -100,8 +109,8 @@ msgstr ""
"zaobilazeći zadano smještanje ljuske na dnu. Promjena ove postavke zahtijeva "
"ponovno pokretanje ljuske kako bi se primijenila."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Lokacije"
@@ -144,47 +153,47 @@ msgstr "Naziv teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Naziv teme, mora se učitati iz ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Zatvori"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Vrati"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Smanji"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Prikaži u prozoru"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Uvećaj"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Smanji sve"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Vrati sve"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Uvećaj sve"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Prikaži u prozoru sve"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Zatvori sve"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Popis prozora"
@@ -201,7 +210,7 @@ msgstr ""
"vrijednosti su: “never”, “auto” i “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Prikaži prozore sa svih radnih prostora"
@@ -222,41 +231,41 @@ msgstr ""
"Treba li prikazati popis prozora na svim povezanim zaslonima ili smo na "
"glavnom."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Grupiranje prozora"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Nikada grupiraj prozore"
msgstr "Ne grupiraj prozore"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Grupiraj prozore kada je prostor ograničen"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Uvijek grupiraj prozore"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Prikaži na svim zaslonima"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indikator radnog prostora"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Nazivi radnih prostora"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Radni prostor %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Dodaj radni prostor"

105
po/hu.po
View File

@@ -1,39 +1,50 @@
# Hungarian translation for gnome-shell-extensions.
# Copyright (C) 2011, 2012, 2013, 2014, 2017, 2019 Free Software Foundation, Inc.
# Copyright (C) 2011, 2012, 2013, 2014, 2017, 2019, 2022 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Biró Balázs <arch.scar at gmail dot com>, 2011.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2011, 2012, 2013.
# Balázs Úr <ur.balazs at fsf dot hu>, 2013, 2014, 2017, 2019.
# Balázs Úr <ur.balazs at fsf dot hu>, 2013, 2014, 2017, 2019, 2022.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-05 18:08+0200\n"
"Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-11 01:38+0100\n"
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Lokalize 19.12.3\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasszikus GNOME"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Bejelentkezés a klasszikus GNOME környezetbe"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Klasszikus GNOME Waylanden"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Klasszikus GNOME Xorgon"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Kedvencek"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Alkalmazások"
@@ -49,26 +60,26 @@ msgstr ""
"Alkalmazásazonosítókat (.desktop fájl neve), majd kettősponttal elválasztva "
"a munkaterület számát tartalmazó karakterláncok sorozata"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Munkaterület szabályok"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Szabály hozzáadása"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "A(z) „%s” meghajtó kiadása nem sikerült:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Cserélhető eszközök"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Fájlok megnyitása"
@@ -101,8 +112,8 @@ msgstr ""
"tetejére helyezi el, az alapértelmezett alja helyett. Ezen beállítás "
"módosítása a Shell újraindítását igényli."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Helyek"
@@ -145,47 +156,47 @@ msgstr "Témanév"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "A ~/.themes/név/gnome-shell alól betöltendő téma neve"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Bezárás"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Minimalizálás megszüntetése"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimalizálás"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Maximalizálás megszüntetése"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximalizálás"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minden minimalizálása"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Minden minimalizálásának megszüntetése"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Minden maximalizálása"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Minden maximalizálásának megszüntetése"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Minden bezárása"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Ablaklista"
@@ -203,7 +214,7 @@ msgstr ""
"„always” (mindig)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Ablakok megjelenítése az összes munkaterületről"
@@ -225,52 +236,40 @@ msgstr ""
"Megjelenjen-e az ablaklista minden csatlakoztatott monitoron vagy csak az "
"elsődlegesen."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Ablakcsoportosítás"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Soha ne csoportosítsa az ablakokat"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Ablakok csoportosítása, ha kevés a hely"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Mindig csoportosítsa az ablakokat"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Megjelenítés minden monitoron"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Munkaterület indikátor"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Munkaterületnevek"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "%d. munkaterület"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Munkaterület hozzáadása"
#~ msgid "Application"
#~ msgstr "Alkalmazás"
#~ msgid "Create new matching rule"
#~ msgstr "Új illesztési szabály létrehozása"
#~ msgid "Add"
#~ msgstr "Hozzáadás"
#~ msgid "Name"
#~ msgstr "Név"

View File

@@ -4,14 +4,14 @@
#
# Andika Triwidada <andika@gmail.com>, 2012, 2013.
# Dirgita <dirgitadevina@yahoo.co.id>, 2012.
# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017, 2019, 2020.
# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017, 2019, 2020, 2022.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-06-06 19:02+0700\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-01-05 10:23+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome@i15n.org>\n"
"Language: id\n"
@@ -20,21 +20,30 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 2.3.1\n"
"X-Generator: Poedit 3.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Klasik"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Sesi ini memasukkan Anda ke GNOME Klasik"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Klasik di Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Klasik di Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Favorit"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplikasi"
@@ -50,26 +59,26 @@ msgstr ""
"Daftar string, masing-masing memuat id aplikasi (nama berkas desktop), "
"diikuti oleh titik dua dan nomor ruang kerja"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Aturan Ruang Kerja"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Tambah Aturan"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Saat mengeluarkan drive \"%s\" gagal:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Perangkat yang dapat dilepas"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Buka Berkas"
@@ -102,8 +111,8 @@ msgstr ""
"masing, menimpa bawaan shell yang menempatkannya di bagian bawah. Mengubah "
"ini memerlukan memulai ulang shell agar berdampak."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Tempat"
@@ -146,47 +155,47 @@ msgstr "Nama tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Nama tema, untuk dimuat dari ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Tutup"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Tak minimalkan"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimalkan"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Tak maksimalkan"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maksimalkan"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimalkan semua"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Tak minimalkan semua"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maksimalkan semua"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Tak maksimalkan semua"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Tutup semua"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Daftar Jendela"
@@ -204,7 +213,7 @@ msgstr ""
"\" (otomatis), atau \"always\" (selalu)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Menampilkan jendela dari semua area kerja"
@@ -225,41 +234,41 @@ msgstr ""
"Apakah menampilkan daftar jendela pada semua monitor yang tersambung atau "
"hanya pada yang utama."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Pengelompokan Jendela"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Jangan pernah kelompokkan jendela"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Kelompokkan jendela ketika ruang terbatas"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Selalu kelompokkan jendela"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Tampilkan pada semua monitor"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indikator Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Nama Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Ruang Kerja %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Tambah Ruang Kerja"

338
po/is.po
View File

@@ -1,99 +1,47 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Sveinn í Felli <sv1@fellsnet.is>, 2015, 2017.
# Sveinn í Felli <sv1@fellsnet.is>, 2015, 2017, 2021.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-08-11 01:33+0000\n"
"PO-Revision-Date: 2017-09-08 06:07+0000\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-12-13 09:07+0000\n"
"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
"Language-Team: Icelandic <translation-team-is@lists.sourceforge.org>\n"
"Language: is\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Lokalize 1.5\n"
"X-Generator: Lokalize 19.12.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Klassík"
msgstr "Hefðbundið GNOME"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Þessi seta skráir þig inn í klassískt GNOME"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Festa kvaðningarglugga við yfirglugga"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Hefðbundið GNOME á Wayland"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Þetta hefur forgang fram yfir lykilinn í kjörstillingum org.gnome.mutter "
"þegar GNOME Skelin er keyrð."
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Hefðbundið GNOME á Xorg"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Staðsetning hnappa á tiltilrönd"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Þetta hefur forgang fram yfir lykilinn í kjörstillingum org.gnome.desktop.wm."
"þegar GNOME Skelin er keyrð."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Virkja flísalögn við jaðra þegar gluggum er sleppt á skjájaðra"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Vinnusvæði einungis á aðalskjá"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Fresta breytingum á virkni í músarham þar til bendillinn hefur stöðvast"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Einungis smámynd"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Einungis táknmynd forrits"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Smámynd og táknmynd"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Birta glugga sem"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Birta eingöngu glugga á núverandi vinnusvæði"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Virkniyfirlit"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Eftirlæti"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Forrit"
@@ -109,75 +57,29 @@ msgstr ""
"Listi yfir textastrengi, þar sem hver þeirra inniheldur forritsauðkenni "
"(heiti skjáborðsskrár) að viðbættum tvípunkti og svo númeri vinnusvæðis"
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Forrit"
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Vinnusvæðareglur"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Vinnusvæði"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Bæta við reglu"
#: extensions/auto-move-windows/prefs.js:106
msgid "Create new matching rule"
msgstr "Búa til nýja samsvörunarreglu"
#: extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "Bæta við"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:"
msgstr "Útspýting drifsins '%s' mistókst:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Útskiptanleg tæki"
#: extensions/drive-menu/extension.js:150
#| msgid "Open File"
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Opna skrár"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hæ heimur!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Varatexti ávarps."
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
"Ef þetta er ekki autt, inniheldur það textann sem birtist þegar smellt er á "
"spjaldið."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Skilaboð"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: extensions/example/prefs.js:43
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and "
"as such it has little functionality on its own.\n"
"Nevertheless its possible to customize the greeting message."
msgstr ""
"Example-viðbótin hefur að markmiði að sýna hvernig byggja eigi vel gerðar "
"viðbætur fyrir GNOME-Shell hefur því sem slík ekki mikið aðra virkni.\n"
"Samt sem áður má nota hana til að sérsníða skilaboð í kvaðningu."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Nota meira af skjánum fyrir glugga"
@@ -189,9 +91,9 @@ msgid ""
"This setting applies only with the natural placement strategy."
msgstr ""
"Reyndu að nota meira af skjánum undir gluggatákn með aðlögun að "
"stærðarhlutföllum skjásins og að þjappa þeim enn frekar til að minnka umgjörð "
"þeirra. "
"Þessi stilling gildir einungis með stefnu um eðlilegar staðsetningar."
"stærðarhlutföllum skjásins og að þjappa þeim enn frekar til að minnka "
"umgjörð þeirra. Þessi stilling gildir einungis með stefnu um eðlilegar "
"staðsetningar."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
@@ -207,32 +109,31 @@ msgstr ""
"öfugt við það sem sjálfgefið er í skelinni sem setur þær neðst. Breytingar á "
"þessum stillingum krefjast þess að skelin sé endurræst svo að þær taki gildi."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Staðir"
#: extensions/places-menu/placeDisplay.js:65
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Mistókst að ræsa \"%s\""
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Gat ekki tengt gagnageymslu fyrir “%s”"
#: extensions/places-menu/placeDisplay.js:78
#, javascript-format
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”"
msgstr "Mistókst að ræsa \"%s\""
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Tölva"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:359
msgid "Home"
msgstr "Heim"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "Flakka um net"
@@ -241,7 +142,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Fletta í gegnum skjámyndastærðir"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Fletta afturábak í gegnum skjámyndastærðir"
@@ -253,52 +153,47 @@ msgstr "Heiti þema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Heiti á þema, hlaðið inn frá ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Loka"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Endurheimta"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Lágmarka"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Minnka glugga"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Hámarka"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Lágmarka allt"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Endurheimta allt"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Hámarka allt"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Minnka allt"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Loka öllu"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Vinnusvæðavísir"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Gluggalisti"
@@ -307,9 +202,6 @@ msgid "When to group windows"
msgstr "Hvenær á að hópa glugga"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
#| msgid ""
#| "Decides when to group windows from the same application on the window "
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
@@ -318,49 +210,145 @@ msgstr ""
"Möguleg gildi eru „aldrei‟, „sjálfvirkt‟ og „alltaf‟."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Birta glugga frá öllum vinnusvæðum"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr ""
"Hvort birta eigi glugga frá öllum vinnusvæðum eða einungis því sem er virkt."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Sýna gluggalistann á öllum skjám"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Hvort birta eigi gluggalistann á öllum tengdum skjám eða einungis á aðalskjá."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Hópun glugga"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Aldrei hópa glugga"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Hópa glugga þegar pláss er takmarkað"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Alltaf hópa glugga"
#: extensions/window-list/prefs.js:75
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Birta á öllum skjám"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Vinnusvæðavísir"
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Vinnusvæðaheiti"
#: extensions/workspace-indicator/prefs.js:157
msgid "Name"
msgstr "Heiti"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Vinnusvæði %d"
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Bæta við vinnusvæði"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Festa kvaðningarglugga við yfirglugga"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Þetta hefur forgang fram yfir lykilinn í kjörstillingum org.gnome.mutter "
#~ "þegar GNOME Skelin er keyrð."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Staðsetning hnappa á tiltilrönd"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Þetta hefur forgang fram yfir lykilinn í kjörstillingum org.gnome.desktop."
#~ "wm.þegar GNOME Skelin er keyrð."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "Virkja flísalögn við jaðra þegar gluggum er sleppt á skjájaðra"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Vinnusvæði einungis á aðalskjá"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Fresta breytingum á virkni í músarham þar til bendillinn hefur stöðvast"
#~ msgid "Thumbnail only"
#~ msgstr "Einungis smámynd"
#~ msgid "Application icon only"
#~ msgstr "Einungis táknmynd forrits"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Smámynd og táknmynd"
#~ msgid "Present windows as"
#~ msgstr "Birta glugga sem"
#~ msgid "Activities Overview"
#~ msgstr "Virkniyfirlit"
#~ msgid "Application"
#~ msgstr "Forrit"
#~ msgid "Create new matching rule"
#~ msgstr "Búa til nýja samsvörunarreglu"
#~ msgid "Add"
#~ msgstr "Bæta við"
#~ msgid "Hello, world!"
#~ msgstr "Hæ heimur!"
#~ msgid "Alternative greeting text."
#~ msgstr "Varatexti ávarps."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Ef þetta er ekki autt, inniheldur það textann sem birtist þegar smellt er "
#~ "á spjaldið."
#~ msgid "Message"
#~ msgstr "Skilaboð"
#~ msgid ""
#~ "Example aims to show how to build well behaved extensions for the Shell "
#~ "and as such it has little functionality on its own.\n"
#~ "Nevertheless its possible to customize the greeting message."
#~ msgstr ""
#~ "Example-viðbótin hefur að markmiði að sýna hvernig byggja eigi vel gerðar "
#~ "viðbætur fyrir GNOME-Shell hefur því sem slík ekki mikið aðra virkni.\n"
#~ "Samt sem áður má nota hana til að sérsníða skilaboð í kvaðningu."
#~ msgid "Name"
#~ msgstr "Heiti"
#~ msgid "CPU"
#~ msgstr "Örgjörvi"

View File

@@ -1,9 +1,9 @@
# Italian translations for GNOME Shell extensions
# Copyright (C) 2011 Giovanni Campagna et al.
# Copyright (C) 2012, 2013, 2014, 2015, 2017, 2019, 2020 The Free Software Foundation, Inc.
# Copyright (C) 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022 The Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Giovanni Campagna <scampa.giovanni@gmail.com>, 2011
# Milo Casagrande <milo@milo.name>, 2013, 2014, 2015, 2017, 2019, 2020.
# Milo Casagrande <milo@milo.name>, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
# Gianvito Cavasoli <gianvito@gmx.it>, 2017.
#
msgid ""
@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-02 09:58+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-14 09:56+0100\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italiano <gnome-it-list@gnome.org>\n"
"Language: it\n"
@@ -20,21 +20,30 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Poedit 3.0.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME classico"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Questa sessione si avvia con GNOME classico"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME classico su Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME classico su Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Preferiti"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Applicazioni"
@@ -50,28 +59,28 @@ msgstr ""
"Un elenco di stringhe, ognuna contenente l'ID di un'applicazione (nome del "
"file .desktop) seguito da due punti e il numero dello spazio di lavoro"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Regole degli spazi di lavoro"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Aggiungi regola"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Espulsione dell'unità «%s» non riuscita:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Dispositivi rimovibili"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Apri file"
msgstr "Apri File"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
@@ -102,8 +111,8 @@ msgstr ""
"miniature, aggirando il comportamento normale della shell, che li colloca in "
"basso. Modificare questa impostazione richiede di riavviare la shell."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Posizioni"
@@ -146,47 +155,47 @@ msgstr "Nome del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Il nome del tema, da caricare da ~/.themes/nome/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Chiudi"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Deminimizza"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimizza"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Demassimizza"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Massimizza"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimizza tutto"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Deminimizza tutto"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Massimizza tutto"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Demassimizza tutto"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Chiudi tutto"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Elenco finestre"
@@ -203,7 +212,7 @@ msgstr ""
"delle finestre. I possibili valori sono \"never\", \"auto\" e \"always\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Mostra le finestre di tutti gli spazi di lavoro"
@@ -225,40 +234,40 @@ msgstr ""
"Indica se mostrare l'elenco delle finestre su tutti i monitor collegato o "
"solo su quello primario."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Raggruppamento finestre"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Non raggruppare le finestre"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Raggruppare le finestre quando c'è poco spazio"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Raggruppare sempre le finestre"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Mostrare su tutti i monitor"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indicatore spazi di lavoro"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Nomi degli spazi di lavoro"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Spazio di lavoro %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Aggiungi spazio di lavoro"

View File

@@ -1,12 +1,12 @@
# gnome-shell-extensions ja.po
# Copyright (C) 2011-2015, 2019-2020 gnome-shell-extensions's COPYRIGHT HOLDER
# Copyright (C) 2011, 2013-2015, 2019-2020, 2022 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Takeshi AIHANA <takeshi.aihana@gmail.com>, 2011.
# Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2011, 2013, 2015
# Nishio Futoshi <fut_nis@d3.dion.ne.jp>, 2013.
# Ikuya Awashiro <ikuya@fruitsbasket.info>, 2014.
# Hajime Taira <htaira@redhat.com>, 2014, 2015.
# sicklylife <translation@sicklylife.jp>, 2019-2020.
# sicklylife <translation@sicklylife.jp>, 2019-2020, 2022.
#
msgid ""
msgstr ""
@@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-06-10 18:45+0900\n"
"PO-Revision-Date: 2022-03-12 19:00+0900\n"
"Last-Translator: sicklylife <translation@sicklylife.jp>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"Language: ja\n"
@@ -31,6 +31,14 @@ msgstr "GNOME クラシック"
msgid "This session logs you into GNOME Classic"
msgstr "GNOME クラシックモードでログインします"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME クラシック on Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME クラシック on Xorg"
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "お気に入り"

266
po/ka.po Normal file
View File

@@ -0,0 +1,266 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2022-02-13 10:42+0000\n"
"PO-Revision-Date: 2022-09-14 16:37+0200\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: \n"
"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.1.1\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "ეს სესია შეგიყვანთ GNOME Classic-ში"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME CLassic Wayland-ზე"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "რჩეულები"
#: extensions/apps-menu/extension.js:370
msgid "Applications"
msgstr "აპლიკაციები"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "აპლიკაციების და სამუშაო სივრცეების სია"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"სტრიქონების სია, რომლებიც შეიცავენ აპლიკაციის ID-ს(სამუშაო მაგიდის ფაილის "
"სახელს), რომელსაც მოჰყვება მძიმე და სამუშაო სივრცის ნომერი"
#: extensions/auto-move-windows/prefs.js:19
msgid "Workspace Rules"
msgstr "სამუშაო მაგიდის წესები"
#: extensions/auto-move-windows/prefs.js:245
msgid "Add Rule"
msgstr "წესის დამატება"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:123
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "დისკ %s-ის გამოგდების შეცდომა:"
#: extensions/drive-menu/extension.js:139
msgid "Removable devices"
msgstr "გამოძრობადი მოწყობილობები"
#: extensions/drive-menu/extension.js:161
msgid "Open Files"
msgstr "ღია ფაილები"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "ეკრანის მეტი ნაწილის გამოყენება ფანჯრებისთვის"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"შეეცადეთ გამოიყენოთ ეკრანის მეტი ადგილი ფანჯრის ესკიზების დასაყენებლად, "
"ეკრანის ასპექტის თანაფარდობის ადაპტაციით და მათი შემდგომი კონსოლიდაციით, "
"რათა შემცირდეს შემოსაზღვრული ველი. ეს პარამეტრი გამოიყენება მხოლოდ "
"ბუნებრივი განთავსების სტრატეგიით."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr "ფანჯრის მინაწერების ზემოთ ჩვენება"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"თუ ჩართულია, ფანჯრის სათაური შესაბამისი მინიატურის თავზე გამოჩნდება, რითიც "
"გადაფარავს გარსის ნაგულისხმებ მნიშვნელობას, რომ ის ძირზე იყოს. ამ "
"პარამეტრის ძალაში შესასვლელად საჭიროა გარსის გადატვირთვა."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "ადგილები"
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "%s-ის გაშვების შეცდომა"
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "%s-თვის დისკის მიმაგრების შეცდომა"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
msgid "Computer"
msgstr "კომპიუტერი"
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "საწყისი"
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "ქსელის დათვალიერება"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "ეკრანის ანაბეჭდების ზომებს შორის გადართვა"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr "ეკრანის ანაბეჭდების ზომებს შორის უკუღმა გადართვა"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "თემის სახელი"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "თემის სახელი, ~/.themes/name/gnome-shell-დან ჩასატვირთად"
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "დახურვა"
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "ამოკეცვა"
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "ჩაკეცვა"
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "საწყის ზომაზე დაბრუნება"
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "მთელ ეკრანზე გაშლა"
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "ყველას ჩაკეცვა"
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "ყველას ამოკეცვა"
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "ყველას მთელ ეკრანზე გაშლა"
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "ყველას საწყის ზომაზე დაბრუნება"
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "ყველას დახურვა"
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "ფანჯრების სია"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "როდის შევაჯგუფო ფანჯრები"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"არჩევს, როდის შეაჯგუფოს ერთიდაიგივე აპლიკაციის ფანჯრების სია. შესაძლო "
"ვარიანტებია \"არასოდეს\", \"ავტომატურად\" და \"ყოველთვის\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:76
msgid "Show windows from all workspaces"
msgstr "ფანჯრების ყველა სამუშაო სივრციდან ჩვენება"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr "ყველა სამუშაო სივრცის ფანჯრები ვაჩვენო თუ მხოლოდ მიმდინარის."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "ფანჯრების სიის ყველა ეკრანზე ჩვენება"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr "ფანჯრების სიის მხოლოდ მთავარ თუ ყველა მონიტორზე ჩვენება."
#: extensions/window-list/prefs.js:32
msgid "Window Grouping"
msgstr "ფანჯრების შეჯგუფება"
#: extensions/window-list/prefs.js:37
msgid "Never group windows"
msgstr "არასოდეს შეაჯგუფო ფანჯრები"
#: extensions/window-list/prefs.js:38
msgid "Group windows when space is limited"
msgstr "შეაჯგუფე მხოლოდ მაშინ, როცა ადგილი არაა"
#: extensions/window-list/prefs.js:39
msgid "Always group windows"
msgstr "ყოველთვის შეაჯგუფე ფანჯრები"
#: extensions/window-list/prefs.js:63
msgid "Show on all monitors"
msgstr "ყველა ეკრანზე ჩვენება"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "სამუშაო სივრცის ინდიკატორი"
#: extensions/workspace-indicator/prefs.js:18
msgid "Workspace Names"
msgstr "სამუშაო სივრცის სახელები"
#: extensions/workspace-indicator/prefs.js:39
#, javascript-format
msgid "Workspace %d"
msgstr "სამუშაო სივრცე %d"
#: extensions/workspace-indicator/prefs.js:184
msgid "Add Workspace"
msgstr "სამუშაო სივრცის დამატება"

View File

@@ -8,29 +8,38 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-06-25 05:19+0000\n"
"PO-Revision-Date: 2020-07-02 11:39+0500\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-12 22:56+0500\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk@li.org>\n"
"Language: kk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3.1\n"
"X-Generator: Poedit 3.0.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Классикалық GNOME"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Бұл сессия арқылы классикалық GNOME ішіне кіресіз"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Wayland негізіндегі классикалық GNOME"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Xorg негізіндегі классикалық GNOME"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Таңдамалылар"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Қолданбалар"
@@ -46,26 +55,26 @@ msgstr ""
"Жолдар тізімі, әрқайсысы қолданба анықтағышын сақтайды (desktop файлының "
"аты), соңында үтір және жұмыс орнының нөмірі тұрады"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Жұмыс орын ережелері"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Ережені қосу"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "\"%s\" жетегін шығару сәтсіз аяқталды:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Алынатын құрылғылар"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Файлдарды ашу"
@@ -98,8 +107,8 @@ msgstr ""
"үнсіз келісім бойынша астына орналастырудың орнына. Бұл баптау іске асыру "
"үшін қоршамды қайта іске қосу керек."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Орындар"
@@ -142,47 +151,47 @@ msgstr "Тема атауы"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Тема атауы, ~/.themes/name/gnome-shell ішінен алынады"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Жабу"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Қайырылған емес қылу"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Қайыру"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Жазық емес қылу"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Жазық қылу"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Барлығын қайыру"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Барлығын қайырылған емес қылу"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Барлығын жазық қылу"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Барлығын жазық емес қылу"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Барлығын жабу"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Терезелер тізімі"
@@ -199,7 +208,7 @@ msgstr ""
"сипаттайды. Мүмкін мәндері: \"never\", \"auto\" және \"always\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Барлық жұмыс орнындарынан терезелерді көрсету"
@@ -221,41 +230,41 @@ msgstr ""
"Терезелер тізімін барлық жалғанған мониторларда, немесе тек біріншілік "
"мониторда көрсету керек пе."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Терезелерді топтау"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Терезелерді ешқашан топтамау"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Терезелерді орын шектелген кезде топтау"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Терезелерді әрқашан топтау"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Барлық мониторларда көрсету"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Жұмыс орын индикаторы"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Жұмыс орын атаулары"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Жұмыс орны %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Жұмыс орнын қосу"

View File

@@ -1,17 +1,17 @@
# Korean translation for gnome-shell-extensions.
# Copyright (C) 2012 gnome-shell-extensions's COPYRIGHT HOLDER
# Copyright (C) 2012-2022 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2012.
# Changwoo Ryu <cwryu@debian.org>, 2013-2015, 2017, 2019-2020.
# Changwoo Ryu <cwryu@debian.org>, 2013-2015, 2017, 2019-2020, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-28 22:25+0900\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-03 00:15+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <gnome-kr@googlegroups.com>\n"
"Language: ko\n"
@@ -20,19 +20,28 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "그놈 클래식"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "이 세션을 사용하면 그놈 클래식에 로그인합니다"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "그놈 클래식 (웨일랜드)"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "그놈 클래식 (Xorg)"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "즐겨찾기"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "프로그램"
@@ -48,26 +57,26 @@ msgstr ""
"문자열 목록, 각각은 프로그램 ID(데스크톱 파일 이름) 다음에 콜론 뒤에 작업 공"
"간 번호."
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "작업 공간 규칙"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "규칙 추가"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "“%s” 드라이브를 빼는데 실패했습니다:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "이동식 장치"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "파일 열기"
@@ -99,8 +108,8 @@ msgstr ""
"참이면, 창의 이름을 각 섬네일 위에 표시합니다. 셸의 기본값은 아래에 창 이름"
"을 표시합니다. 이 설정을 바꾸면 셸을 다시 시작해야 적용됩니다."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "위치"
@@ -143,47 +152,47 @@ msgstr "테마 이름"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "테마 이름, ~/.themes/name/gnome-shell 아래에서 읽어들입니다."
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "닫기"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "최소화 취소"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "최소화"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "최대화 취소"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "최대화"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "모두 최소화"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "모두 최소화 취소"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "모두 최대화"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "모두 최대화 취소"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "모두 닫기"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "창 목록"
@@ -200,7 +209,7 @@ msgstr ""
"“never”, “auto”, “always”입니다."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "모든 작업 공간의 창을 표시합니다"
@@ -220,41 +229,41 @@ msgstr ""
"연결된 모든 모니터에 있는 창 목록을 표시할지, 아니면 주 모니터에 있는 창 목록"
"만 표시할지."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "창 모으기"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "창을 모으지 않기"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "공간이 부족할 때 창 모으기"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "항상 창 모으기"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "모든 모니터 보이기"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "작업 공간 표시"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "작업 공간 이름"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "작업 공간 %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "작업 공간 추가"

View File

@@ -2,15 +2,15 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Algimantas Margevičius <margevicius.algimantas@gmail.com>, 2011.
# Aurimas Černius <aurisc4@gmail.com>, 2013-2020.
# Aurimas Černius <aurisc4@gmail.com>, 2013-2021.
#
msgid ""
msgstr ""
"Project-Id-Version: lt\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-26 22:34+0300\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-12-14 13:49+0200\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -19,21 +19,32 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Generator: Gtranslator 3.36.0\n"
"X-Generator: Gtranslator 40.0\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasikinis GNOME"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Šis seansas prijungs jus prie klasikinio GNOME"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Klasikinis GNOME Wayland aplinkoje"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Klasikinis GNOME Xorg aplinkoje"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Mėgiamiausi"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Programos"
@@ -49,27 +60,26 @@ msgstr ""
"Eilučių sąrašas, kur kiekviena eilutė turi programos id (darbalaukio failo "
"vardą), po jo dvitaškis ir darbo srities numeris"
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Darbo sričių taisyklės"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Pridėti taisyklę"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Laikmenos „%s“ išstūmimas nepavyko:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Išimami įrenginiai"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Atverti failai"
@@ -101,8 +111,8 @@ msgstr ""
"nepaisant numatyto talpinimo apačioje. Pakeitus šiuos nustatymus, reikės "
"paleisti apvalkalą iš naujo."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Vietos"
@@ -145,47 +155,47 @@ msgstr "Temos pavadinimas"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Temos pavadinimas, kuri bus įkrauta iš ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Užverti"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Grąžinti iš sumažinimo"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Sumažinti"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Grąžinti iš išdidinimo"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Išdidinti"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Sumažinti visus"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Grąžinti visus iš sumažinimo"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Išdidinti visus"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Grąžinti visus iš išdidinimo"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Užverti visus"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Langų sąrašas"
@@ -202,7 +212,7 @@ msgstr ""
"vertės yra „never“, „auto“ ir „always“."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Rodyti visų darbo sričių langus"
@@ -222,42 +232,41 @@ msgstr ""
"Ar rodyti langų sąrašą visuose prijungtuose monitoriuose, ar tik "
"pagrindiniame."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Langų grupavimas"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Niekada negrupuoti langų"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Grupuoti langus, kai yra ribotai vietos"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Visada grupuoti langus"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Rodyti visuose monitoriuose"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Darbo srities indikatorius"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Darbo sričių pavadinimai"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Darbo sritis %d"
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Pridėti darbo sritį"

View File

@@ -3,37 +3,48 @@
#
#
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015, 2017, 2019, 2020.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-12 12:05+0300\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-24 22:15+0200\n"
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 19.12.3\n"
"X-Generator: Lokalize 21.08.1\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :"
" 2);\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasiskais GNOME"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Šī sesija ieraksta jūs klasiskajā GNOME vidē"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Klasiskais GNOME ar Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Klasiskais GNOME ar Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Izlase"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Lietotnes"
@@ -49,27 +60,26 @@ msgstr ""
"Saraksts ar virknēm, kas katra satur lietotnes id (darbvirsmas datnes "
"nosaukums), kam seko kols un darbvietas numurs"
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Darbvietu kārtulas"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Pievienot kārtulu"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Neizdevās izgrūst dzini “%s”:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Izņemamās ierīces"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Atvērt datnes"
@@ -102,8 +112,8 @@ msgstr ""
"noklusēto novietojumu (apakšā). Lai šī iestatījuma izmaiņas stātos spēkā, "
"jāpārstartē čaula."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Vietas"
@@ -146,47 +156,47 @@ msgstr "Motīva nosaukums"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Motīva nosaukums, ko ielādēt no ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Aizvērt"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Atminimizēt"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimizēt"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Atjaunot"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maksimizēt"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Minimizēt visus"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Atminimizēt visus"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maksimizēt visus"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Atmaksimizēt visus"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Aizvērt visu"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Logu saraksts"
@@ -203,7 +213,7 @@ msgstr ""
"vērtības ir “never”, “auto” un “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Rādīt logus no visām darba vietām"
@@ -223,42 +233,41 @@ msgstr ""
"Vai logu sarakstu rādītu uz visiem pievienotajiem monitoriem, vai tikai uz "
"primārā."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Logu grupēšana"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Nekad negrupēt logus"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Grupēt logus, kad vieta ir ierobežota"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Vienmēr grupēt logus"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Rādīt uz visiem monitoriem"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Darbvietu indikators"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Darbvietu nosaukumi"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Darbvieta %d"
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Pievienot darbvietu"

147
po/ne.po
View File

@@ -6,33 +6,41 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extension gnome 3.14\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2021-05-01 11:32+0545\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-09-08 02:59+0545\n"
"Last-Translator: Pawan Chitrakar <chautari@gmail.com>\n"
"Language-Team: Nepali Translation Team <chautari@gmail.com>\n"
"Language: ne\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "जिनोम क्लासिक"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "यो सेसन जिनोम क्लासिकमा लगईन हुन्छ"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "वेल्याण्डमा जिनोम क्लासिक"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Xorg मा जिनोम क्लासिक"
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "मनपर्ने"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "अनुप्रयोग"
@@ -42,32 +50,31 @@ msgstr "अनुप्रयोग र कार्यस्थल सूची
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
"A list of strings, each containing an application id (desktop file name), followed by a colon "
"and the workspace number"
msgstr ""
"स्ट्रिङहरूको सूची, प्रत्येकमा अनुप्रयोग आईडी (डेस्कटप फाइल नाम) समाविष्ट छ, त्यसपछि "
"विराम र कार्यस्थान नम्बरद्वारा अनुगमन गरियो"
"स्ट्रिङहरूको सूची, प्रत्येकमा अनुप्रयोग आईडी (डेस्कटप फाइल नाम) समाविष्ट छ, त्यसपछि विराम र कार्यस्थान "
"नम्बरद्वारा अनुगमन गरियो"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "कार्यस्थान नियम"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "नियम थप्नुहोस्"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#: extensions/drive-menu/extension.js:126 extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "\"%s\" ड्राइभ निकाल्न असफल भयो:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "छुट्याउन मिल्ने यन्त्र"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "खुला फाइल"
@@ -77,13 +84,12 @@ msgstr "सञ्झ्यालका लागि बढी पर्दा
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
"Try to use more screen for placing window thumbnails by adapting to screen aspect ratio, and "
"consolidating them further to reduce the bounding box. This setting applies only with the "
"natural placement strategy."
msgstr ""
"सञ्झ्याल थम्बनेलहरू पर्दा आकार अनुपातमा अनुकूल गरेर राख्नका लागि धेरै पर्दा प्रयोग गर्न "
"प्रयास गर्नुहोस्, र तिनीहरूलाई बाउन्डिङ बाकस घटाउन अझ संगठित गर्नुहोस् । यो तरिका "
"प्राकृतिक प्लेसमेन्ट रणनीतिमा मात्र लागू हुन्छ।"
"सञ्झ्याल थम्बनेलहरू पर्दा आकार अनुपातमा अनुकूल गरेर राख्नका लागि धेरै पर्दा प्रयोग गर्न प्रयास गर्नुहोस्, र "
"तिनीहरूलाई बाउन्डिङ बाकस घटाउन अझ संगठित गर्नुहोस् । यो तरिका प्राकृतिक प्लेसमेन्ट रणनीतिमा मात्र लागू हुन्छ।"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
@@ -91,39 +97,36 @@ msgstr "सञ्झ्याल क्याप्सन माथि राख
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
"If true, place window captions on top the respective thumbnail, overriding shell default of "
"placing it at the bottom. Changing this setting requires restarting the shell to have any "
"effect."
msgstr ""
"ठीक भएमा, सम्बन्धित थम्बनेलको माथि सञ्झ्याल क्याप्सन राख्नुहोस्, यसलाई तल राख्ने "
"पूर्वनिर्धारित शेल अधिलेखन गर्नुहोस् । यो सेटिङ परिवर्तन गर्न कुनै प्रभाव पार्न शेल पुन: "
"सुरुआत गर्नु आवश्यक हुन्छ ।"
"ठीक भएमा, सम्बन्धित थम्बनेलको माथि सञ्झ्याल क्याप्सन राख्नुहोस्, यसलाई तल राख्ने पूर्वनिर्धारित शेल अधिलेखन "
"गर्नुहोस् । यो सेटिङ परिवर्तन गर्न कुनै प्रभाव पार्न शेल पुन: सुरुआत गर्नु आवश्यक हुन्छ ।"
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:94 extensions/places-menu/extension.js:97
msgid "Places"
msgstr "ठाउँहरू"
#: extensions/places-menu/placeDisplay.js:46
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "%s सुरु गर्न असफल"
#: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "\"%s\" का लागि भोल्युम माउन्ट गर्न असफल"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
#: extensions/places-menu/placeDisplay.js:125 extensions/places-menu/placeDisplay.js:148
msgid "Computer"
msgstr "कम्प्युटर"
#: extensions/places-menu/placeDisplay.js:359
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "गृह"
#: extensions/places-menu/placeDisplay.js:404
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "सञ्जाल ब्राउज गर्नुहोस्"
@@ -143,47 +146,47 @@ msgstr "सारभूत नाम"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "~/.themes/name/gnome-shell बाट लोड गरिनुपर्ने विषयवस्तुको नाम"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "बन्द"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "न्यूनतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "सानो बनाउनुहोस्"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "अघिकतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "ठूलो बनाउनुहोस्"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "सबै सानो बनाउनुहोस्"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "सबै न्यूनतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "सबै ठूलो बनाउनुहोस्"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "सबैलाई अघिकतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "सबै बन्द गर्नुहोस्"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "सञ्झ्याल सूची"
@@ -193,14 +196,14 @@ msgstr "कहिले सञ्झ्याल समुहबध्द गर
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
"Decides when to group windows from the same application on the window list. Possible values are "
"“never”, “auto” and “always”."
msgstr ""
"सञ्झ्याल सूचीमा उस्तै अनुप्रयोगबाट कहिले समूह बनाउने निर्णय गर्दछ । सम्भावित मान \"कहिले "
"पनि\", \"स्वचालित\" र \"सधैँ\" हुन् ।"
"सञ्झ्याल सूचीमा उस्तै अनुप्रयोगबाट कहिले समूह बनाउने निर्णय गर्दछ । सम्भावित मान \"कहिले पनि\", \"स्वचालित\" र "
"\"सधैँ\" हुन् ।"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "सबै कार्यस्थानबाट सन्झ्याल देखाउनुहोस्"
@@ -213,48 +216,44 @@ msgid "Show the window list on all monitors"
msgstr "सबै मोनिटरमा सञ्झ्याल सूची देखाउनुहोस्"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"सबै जडान गरिएको मोनिटरमा वा प्राथमिक मोनिटरमा मात्र सञ्झ्याल सूची देखाउने या नदेखाउने "
"।"
msgid "Whether to show the window list on all connected monitors or only on the primary one."
msgstr "सबै जडान गरिएको मोनिटरमा वा प्राथमिक मोनिटरमा मात्र सञ्झ्याल सूची देखाउने या नदेखाउने ।"
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "समूहबद्ध सञ्झ्याल"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "सञ्झ्याल समुहबध्द नगर्ने"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "खाली स्थान सिमित भएको बेलामा सञ्झ्यालहरू समूह गर्नुहोस्"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "सञ्झ्याल सधैँ समुहबध्द गर्ने"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "सबै मोनिटरमा देखाउनुहोस्"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "कार्यस्थान सूचक"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "कार्यस्थल नाम"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "कार्यस्थल %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "कार्यस्थल नाम"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "कार्यस्थल थप्नुहोस्"

View File

@@ -2,38 +2,47 @@
# Copyright (C) 2013 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Reinout van Schouwen <reinouts@gnome.org>, 2013, 2014.
# Nathan Follens <nthn@unseen.is>, 2015-2017, 2019-2020.
# Nathan Follens <nfollens@gnome.org>, 2015-2017, 2019-2020, 2022.
# Hannie Dumoleyn <hannie@ubuntu-nl.org>, 2015.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-25 17:37+0200\n"
"Last-Translator: Nathan Follens <nthn@unseen.is>\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-25 12:43+0100\n"
"Last-Translator: Nathan Follens <nfollens@gnome.org>\n"
"Language-Team: Dutch <gnome-nl-list@gnome.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.4.1\n"
"X-Generator: Poedit 3.0.1\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Gnome klassiek"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Deze sessie meldt u aan bij Gnome klassiek"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Gnome klassiek op Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Gnome klassiek op Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Favorieten"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Toepassingen"
@@ -49,26 +58,26 @@ msgstr ""
"Een lijst van tekenreeksen, elk bestaande uit een toepassings-id (desktop-"
"bestandsnaam), gevolgd door een dubbele punt en het werkbladnummer"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Werkbladregels"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Regel toevoegen"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Uitwerpen van station %s mislukt:"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Verwijderbare apparaten"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Bestanden openen"
@@ -102,8 +111,8 @@ msgstr ""
"wordt. Het wijzigen van deze instelling vereist het herstarten van de shell "
"om effect te sorteren."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Locaties"
@@ -146,47 +155,47 @@ msgstr "Themanaam"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "De naam van het thema, te laden vanuit ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Sluiten"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Zichtbaar maken"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Minimaliseren"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Herstellen"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximaliseren"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Alles minimaliseren"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Alles zichtbaar maken"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Alles maximaliseren"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Alles herstellen"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Alles sluiten"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Vensterlijst"
@@ -204,7 +213,7 @@ msgstr ""
"always (altijd)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Vensters van alle werkbladen tonen"
@@ -226,41 +235,41 @@ msgstr ""
"Bepaalt of de vensterlijst op alle verbonden beeldschermen of enkel op het "
"primaire beeldscherm wordt weergegeven."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Venstergroepering"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Vensters nooit groeperen"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Vensters groeperen wanneer de ruimte beperkt is"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Vensters altijd groeperen"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Tonen op alle beeldschermen"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Werkbladindicator"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Werkbladnamen"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Werkblad %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Werkblad toevoegen"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2021-05-10 22:04+0200\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-07 20:53+0100\n"
"Last-Translator: Quentin PAGÈS\n"
"Language-Team: Tot En Òc\n"
"Language: oc\n"
@@ -17,22 +17,31 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 2.4.3\n"
"X-Generator: Poedit 3.0\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Aquesta session vos connècta a GNOME Classic"
#: extensions/apps-menu/extension.js:113
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic sus Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic sus Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "Favorits"
#: extensions/apps-menu/extension.js:369
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr "Aplicacions"
@@ -49,26 +58,26 @@ msgstr ""
"d'aplicacion (nom de fichièr desktop), seguit per un dos-punts e lo numèro "
"de l'espaci de trabalh"
#: extensions/auto-move-windows/prefs.js:35
#: extensions/auto-move-windows/prefs.js:34
msgid "Workspace Rules"
msgstr "Règlas dels espacis de trabalh"
#: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:236
msgid "Add Rule"
msgstr "Apondre una règla"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "L'ejeccion del disc « %s » a fracassat :"
#: extensions/drive-menu/extension.js:128
#: extensions/drive-menu/extension.js:149
msgid "Removable devices"
msgstr "Periferics amovibles"
#: extensions/drive-menu/extension.js:155
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Dobrir Fichièrs"
@@ -101,8 +110,8 @@ msgstr ""
"correspondenta, aquò remplaça lo comportament per defaut que los plaça en "
"dejós. Per qu'aqueste paramètre siá pres en compte, cal reaviar lo Shell."
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "Emplaçaments"
@@ -145,47 +154,47 @@ msgstr "Nom del tèma"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Lo nom del tèma, de cargar a partir de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:98
#: extensions/window-list/extension.js:72
msgid "Close"
msgstr "Tampar"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Restablir"
#: extensions/window-list/extension.js:118
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Reduire"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Restablir"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "Reduire tot"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "Restablir tot"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "Maximizar tot"
#: extensions/window-list/extension.js:448
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "Restablir tot"
#: extensions/window-list/extension.js:456
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "Tampar tot"
#: extensions/window-list/extension.js:734
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Lista de fenèstras"
@@ -203,7 +212,7 @@ msgstr ""
"« always » (totjorn)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#: extensions/window-list/prefs.js:86
msgid "Show windows from all workspaces"
msgstr "Afichar las fenèstras de totes los espacis de trabalh"
@@ -225,41 +234,41 @@ msgstr ""
"Indica se cal afichar la lista de las fenèstras sus totes los ecrans "
"connectats o solament l'ecran principal."
#: extensions/window-list/prefs.js:29
#: extensions/window-list/prefs.js:39
msgid "Window Grouping"
msgstr "Regropament de fenèstras"
#: extensions/window-list/prefs.js:58
#: extensions/window-list/prefs.js:63
msgid "Never group windows"
msgstr "Regropar pas jamai las fenèstras"
#: extensions/window-list/prefs.js:59
#: extensions/window-list/prefs.js:64
msgid "Group windows when space is limited"
msgstr "Regropar las fenèstras quand l'espaci es limitat"
#: extensions/window-list/prefs.js:60
#: extensions/window-list/prefs.js:65
msgid "Always group windows"
msgstr "Regropar totjorn las fenèstras"
#: extensions/window-list/prefs.js:94
#: extensions/window-list/prefs.js:81
msgid "Show on all monitors"
msgstr "Afichar sus totes los ecrans"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "Indicator d'espaci de trabalh"
#: extensions/workspace-indicator/prefs.js:34
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Noms dels espacis de trabalh"
#: extensions/workspace-indicator/prefs.js:67
#: extensions/workspace-indicator/prefs.js:66
#, javascript-format
msgid "Workspace %d"
msgstr "Espaci de trabalh %d"
#: extensions/workspace-indicator/prefs.js:218
#: extensions/workspace-indicator/prefs.js:207
msgid "Add Workspace"
msgstr "Apondre un espaci de trabalh"

Some files were not shown because too many files have changed in this diff Show More