Compare commits

...

149 Commits

Author SHA1 Message Date
Florian Müllner 1a3b4e154c Bump version to 41.2
Update NEWS.
2022-02-15 20:54:18 +01:00
Florian Müllner e6fdccf65d 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
2022-01-21 02:37:38 +01: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
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
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
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
Florian Müllner 605dd02217 Tag release 40.1
Update NEWS.
2021-05-13 16:51:52 +02:00
Florian Müllner b33a62f2dc Update sass submodule 2021-05-13 16:50:34 +02:00
Quentin PAGÈS 8a320eb0a1 Update Occitan translation 2021-05-10 20:04:48 +00:00
Pawan Chitrakar 83c4ced407 Update Nepali translation 2021-05-01 05:49:03 +00:00
Florian Müllner e094dead91 windowsNavigator: Adjust to gnome-shell change
Parts of WindowPreview were moved to C for performance reasons, which
turned a formerly private JS property into a GObject property.

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

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

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

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

Tweak the styling to address those issues.

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

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

Tweak the styling to address those issues.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/150>
2020-12-29 00:16:16 +01:00
Florian Müllner a7ddbd0d53 Change upcoming version (again)
The extension website doesn't handle the chosen scheme correctly,
so use 40.alpha.1 instead.
2020-12-25 23:29:06 +01:00
Florian Müllner c745dd6362 build: Change upcoming version to 40.alpha2
I messed up and released 40.alpha at the same time as 3.38.2, when it's
supposed to be in January. In order to re-align with the schedule, change
the upcoming version to 40.alpha2 so we don't have to skip a release and
will be back on track in time of 40.beta.
2020-12-22 01:33:44 +01:00
Florian Müllner a4cf9f956e ci: Add some more commit message rules
Now that we have the ability to easily define custom rules, add some
more to enforce the existing commit message style.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/149>
2020-12-18 19:26:42 +01:00
Florian Müllner 4e731e1dce Post-release version bump 2020-12-02 20:40:19 +01:00
Florian Müllner eee341e907 Tag release 40.alpha
Update NEWS.
2020-12-02 20:33:56 +01:00
Florian Müllner aad96bb1c4 Update sass submodule 2020-12-02 20:33:56 +01:00
Florian Müllner 50d3ee5703 workspace-indicator: Use overlap to determine preview visibility
In order to better reflect the actual workspace, show any preview
that is at least partially located on the monitor, not only those
that have the major part on that monitor.

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

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

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

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

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

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

clutter_actor_contains: assertion 'CLUTTER_IS_ACTOR (self)' failed

Examples of triggers for this bug:

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

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

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

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

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

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

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

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

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

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

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/144>
2020-11-21 01:14:39 +01:00
Jonas Ådahl 4b9f4b1b63 doap: Make marge-bot a maintainer
This is so that the merge button can be restricted to maintainers, thus
decreasing the risk of merging using the merge button.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This patch fixes this.

Fix https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/130
2020-10-08 23:42:21 +02:00
Florian Müllner 7c30f35b12 Bump version to 40.alpha
The GNOME project has adopted a new versioning scheme[0], and
GNOME 3.38 will be followed by GNOME 40.

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

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

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/131
2020-10-06 15:07:54 +02:00
63 changed files with 2739 additions and 2575 deletions
+144 -22
View File
@@ -1,33 +1,110 @@
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 include:
- 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"
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/34:2021-08-12.0
stages: stages:
- review - pre_review
- build - 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'
variables: variables:
LINT_LOG: "eslint-report.txt" FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
JS_LOG: "js-report.txt" LINT_LOG: "eslint-report.xml"
JS_LOG: "js-report.txt"
.only_default: &only_default workflow:
only: rules:
- branches - if: '$CI_MERGE_REQUEST_IID'
- tags - if: '$CI_COMMIT_TAG'
- merge_requests - 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'
.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: check_commit_log:
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis extends:
stage: review - .fdo.ci-fairy
script: stage: pre_review
- ./.gitlab-ci/check-commit-log.sh script:
only: - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
- merge_requests 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
build-fedora-container:
extends:
- .fdo.container-build@fedora@x86_64
- .gnome-shell-extensions.fedora:34
stage: prepare
<<: *prereview_req
js_check: js_check:
stage: review stage: review
<<: *prereview_req
script: script:
- find extensions -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG - find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG) - (! grep -q . $JS_LOG)
<<: *only_default
artifacts: artifacts:
paths: paths:
- ${JS_LOG} - ${JS_LOG}
@@ -35,21 +112,66 @@ js_check:
eslint: eslint:
stage: review stage: review
<<: *prereview_req
script: script:
- eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; } - eslint -o $LINT_LOG -f junit --resolve-plugins-relative-to $(npm root -g) extensions
<<: *only_default
artifacts: artifacts:
paths: paths:
- ${LINT_LOG} - ${LINT_LOG}
when: on_failure reports:
junit: ${LINT_LOG}
build-bundles: build-bundles:
stage: build stage: build
<<: *prereview_req
script: script:
- ./export-zips.sh - ./export-zips.sh
<<: *only_default
artifacts: artifacts:
name: 'Extension bundles' name: 'Extension bundles'
expose_as: 'Get Extension bundles here' expose_as: 'Get Extension bundles here'
paths: paths:
- zip-files/ - zip-files/
fedora-build:
extends:
- .fdo.distribution-image@fedora
- .gnome-shell-extensions.fedora:34
stage: build
needs:
- build-fedora-container
before_script:
- git submodule update --init
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
before_script:
- git submodule update --init
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'
-31
View File
@@ -1,31 +0,0 @@
#!/usr/bin/env bash
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
echo Cannot review non-merge request
exit 1
fi
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
branch_point=$(git merge-base HEAD FETCH_HEAD)
commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA)
if [ -z "$commits" ]; then
echo Commit range empty
exit 1
fi
function commit_message_has_url() {
commit=$1
commit_message=$(git show -s --format='format:%b' $commit)
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
return $?
}
for commit in $commits; do
if ! commit_message_has_url $commit; then
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
exit 1
fi
done
+13
View File
@@ -0,0 +1,13 @@
patterns:
deny:
- regex: '^$CI_MERGE_REQUEST_PROJECT_URL/(-/)?merge_requests/$CI_MERGE_REQUEST_IID$'
message: Commit message must not contain a link to its own merge request
- regex: '^extensions/'
message: Commit message subject should not be prefixed with 'extensions/', use the extension name instead
where: subject
- regex: '^[^:]+: [a-z]'
message: "Commit message subject should be properly Capitalized. E.g. 'window: Marginalize extradicity'"
where: subject
- regex: '^\S*\.js:'
message: Commit message subject prefix should not include .js
where: subject
+1 -1
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 the other for Shell API. Within the same group, put everything
in alphabetic order. 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
+129
View File
@@ -1,3 +1,132 @@
41.2
====
* window-list: Update window tracking to avoid missing icons [Florian; #372]
Contributors:
Florian Müllner
41.1
====
* native-window-placement: Fix distorted layout in app grid [Sebastian; !189]
* window-list: Fix on-screen keyboard [Florian; !199]
* Misc. bug fixes [Neal; !195]
Contributors:
Neal Gompa, Sebastian Keller, Florian Müllner
Translators:
Goran Vidović [hr], Sveinn í Felli [is]
41.0
====
* Bump version
41.rc.1
=======
* Fix pre-generating stylesheets in tarball [Florian; !190]
Contributors:
Florian Müllner
41.rc
=====
* window-list: Adapt to overview-on-startup [Florian; !185]
* apps-menu: Use a custom 'toggle-menu' shortcut [Florian; !173]
* Misc. bug fixes and cleanups [Florian; !186]
Contributors:
Florian Müllner
41.beta
=======
* window-list: Extend reactive area of minimap to screen edges [Adam; !171]
* drive-menu: Improve detection of network mounts [Florian; !27, !176]
* Use distinct gettext domain for e.g.o uploads [Florian; #335]
* Misc. bug fixes and cleanups [Florian; !172, !174, !177, !167, !178, !180,
!181, !182, !183]
Contributors:
Marco Trevisan (Treviño), Adam Goode, Florian Müllner
Translators:
Hugo Carvalho [pt], Juliano de Souza Camargo [pt], Alexander Shopov [bg]
40.1
====
* Disable welcome dialog in classic session [Florian; !169]
* windowsNavigator: Adjust to a late gnome-shell change [Florian; !170]
Contributors:
Florian Müllner
Translators:
Ngọc Quân Trần [vi], Anders Jonsson [sv], Carmen Bianca BAKKER [eo],
Pawan Chitrakar [ne], Quentin PAGÈS [oc]
40.0
====
Translators:
Jiri Grönroos [fi]
40.rc
=====
* native-window-placement: Adjust to gnome-shell changes [Florian; !164]
* windows-navigator: Adjust to gnome-shell changes [Florian; !163]
* window-list, workspace-indicator: Only show previews for up to six workspaces
[Florian; !165]
* window-list, workspace-indicator: Improve workspace preview appearance
[Florian; !166]
Contributors:
Florian Müllner
Translators:
Fran Dieguez [gl]
40.beta
=======
* Add tooltips to workspace thumbnails [Florian; !155]
* Drop arrows from top bar menus [Florian; !156]
* drive-menu: Mark mounts that can be unmounted as removable [Michael; !152]
* Remove horizontal-workspaces extension [Florian; !158]
* Adjust to shell overview changes [Florian; !159, !160]
* Fix crashes [Daniel; !157]
* Misc. bug fixes and cleanups [Florian; !154, !161]
Contributors:
Michael Lawton, Florian Müllner, Daniel van Vugt
Translators:
Аляксей [be], A S Alam [pa]
40.alpha.1
==========
* Don't depend on sassc when building from tarball [Florian; !150]
* Port extensions preferences to GTK4 [Florian; !148]
* Misc. bug fixes and cleanups [Florian, Jonas; !149, !151, !153]
Contributors:
Jonas Dreßler, Florian Müllner
40.alpha
========
* window-list: Honor changes in skip-taskbar property [Sergio; !130]
* window-list, workspace-indicator: Adjust to 3.38 changes [Florian; !133]
* window-list, workspace-indicator: Improve previews in workspace thumbs
[Florian; #260, !142]
* auto-move: Improve behavior on multi-monitor setups [Florian; !135]
* windowNavigator: Adjust to 3.38 changes [Thun; #259]
* Misc. bug fixes and cleanups [Florian, Jonas Å, Jordan, Ray; !131, !136,
!137, !140, !141, !144, !146, !145]
Contributors:
Sergio Costas, Florian Müllner, Jordan Petridis, Thun Pin, Ray Strode,
Jonas Ådahl
Translators:
Fabio Tomat [fur], Jordi Mas [ca]
3.38.1 3.38.1
====== ======
+13
View File
@@ -69,6 +69,19 @@ GSettings key.
Adds a simple workspace switcher to the top bar. 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 ## License
GNOME Shell Extensions are distributed under the terms of the GNU General GNOME Shell Extensions are distributed under the terms of the GNU General
+1
View File
@@ -2,6 +2,7 @@
"parentMode": "user", "parentMode": "user",
"stylesheetName": "gnome-classic.css", "stylesheetName": "gnome-classic.css",
"hasOverview": false, "hasOverview": false,
"showWelcomeDialog": false,
"enabledExtensions": [@CLASSIC_EXTENSIONS@], "enabledExtensions": [@CLASSIC_EXTENSIONS@],
"panel": { "left": ["appMenu"], "panel": { "left": ["appMenu"],
"center": [], "center": [],
+1
View File
@@ -5,3 +5,4 @@ Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
TryExec=gnome-session TryExec=gnome-session
Type=Application Type=Application
DesktopNames=GNOME-Classic;GNOME; DesktopNames=GNOME-Classic;GNOME;
X-GDM-SessionRegisters=true
+13 -2
View File
@@ -33,6 +33,18 @@ $variant: 'light';
font-weight: normal; font-weight: normal;
color: $fg_color; color: $fg_color;
text-shadow: none; text-shadow: none;
transition-duration: 0ms;
border: 0;
border-radius: 0px;
&.clock-display {
.clock {
transition-duration: 0ms;
border: 0;
border-radius: 0px;
}
}
&:hover { &:hover {
color: lighten($fg_color,10%); color: lighten($fg_color,10%);
text-shadow: none; text-shadow: none;
@@ -69,12 +81,11 @@ $variant: 'light';
border-bottom: none; border-bottom: none;
.panel-button { color: $osd_fg_color; } .panel-button { color: $osd_fg_color; }
} }
.popup-menu-arrow { width: 0; height: 0; } // shell's display: none;
} }
#appMenu { #appMenu {
padding: 0 8px 0 8px;
spinner-image: url("classic-process-working.svg"); spinner-image: url("classic-process-working.svg");
.panel-status-menu-box { padding: 0; }
} }
.tile-preview-left.on-primary, .tile-preview-left.on-primary,
.tile-preview-right.on-primary, .tile-preview-right.on-primary,
+50 -10
View File
@@ -28,7 +28,42 @@ theme_sources = files(
'gnome-shell-sass/_colors.scss', 'gnome-shell-sass/_colors.scss',
'gnome-shell-sass/_common.scss', 'gnome-shell-sass/_common.scss',
'gnome-shell-sass/_drawing.scss', 'gnome-shell-sass/_drawing.scss',
'gnome-shell-sass/_high-contrast-colors.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 = [ theme_data = [
@@ -41,15 +76,20 @@ theme_data = [
'gnome-classic-high-contrast.css' 'gnome-classic-high-contrast.css'
] ]
style = 'gnome-classic' stylesheet = 'gnome-classic.css'
custom_target(style + '.css', if fs.exists(stylesheet)
input: style + '.scss', install_data(stylesheet, install_dir: themedir)
output: style + '.css', else
depend_files: theme_sources, sassc = find_program('sassc', required: true)
command: [sassc, '-a', '@INPUT@', '@OUTPUT@'], custom_target(stylesheet,
install: true, input: fs.replace_suffix(stylesheet, '.scss'),
install_dir: themedir output: stylesheet,
) depend_files: theme_sources,
command: [sassc, '-a', '@INPUT@', '@OUTPUT@'],
install: true,
install_dir: themedir
)
endif
install_data(theme_data, install_dir: themedir) install_data(theme_data, install_dir: themedir)
+5 -2
View File
@@ -7,20 +7,23 @@ builddir=`mktemp -p $srcdir -d _build.XXXXXX` || exit 1
installdir=`mktemp -p $srcdir -d _install.XXXXXX` || exit 1 installdir=`mktemp -p $srcdir -d _install.XXXXXX` || exit 1
meson setup --prefix=$installdir -Dextension_set=all $srcdir $builddir meson setup --prefix=$installdir -Dextension_set=all $srcdir $builddir
ninja -C$builddir install meson install -C $builddir
rm -rf $srcdir/zip-files rm -rf $srcdir/zip-files
mkdir $srcdir/zip-files mkdir $srcdir/zip-files
extensiondir=$installdir/share/gnome-shell/extensions extensiondir=$installdir/share/gnome-shell/extensions
schemadir=$installdir/share/glib-2.0/schemas schemadir=$installdir/share/glib-2.0/schemas
localedir=$installdir/share/locale
for f in $extensiondir/*; do for f in $extensiondir/*; do
name=`basename ${f%%@*}` name=`basename ${f%%@*}`
uuid=$name@gnome-shell-extensions.gcampax.github.com uuid=$name@gnome-shell-extensions.gcampax.github.com
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
olddomain=gnome-shell-extensions
newdomain=gnome-shell-extension-$name
sed -i "/gettext-domain/ s:$olddomain:$newdomain:" $f/metadata.json
xgettext --from-code=UTF-8 --output-dir=$builddir --output=$name.pot $f/*.js xgettext --from-code=UTF-8 --output-dir=$builddir --output=$name.pot $f/*.js
if [ -f $builddir/$name.pot ]; then if [ -f $builddir/$name.pot ]; then
View File
+12 -21
View File
@@ -12,8 +12,7 @@ const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = ExtensionUtils.gettext;
const _ = Gettext.gettext;
const appSys = Shell.AppSystem.get_default(); const appSys = Shell.AppSystem.get_default();
@@ -363,17 +362,13 @@ class ApplicationsButton extends PanelMenu.Button {
// role ATK_ROLE_MENU like other elements of the panel. // role ATK_ROLE_MENU like other elements of the panel.
this.accessible_role = Atk.Role.LABEL; this.accessible_role = Atk.Role.LABEL;
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._label = new St.Label({ this._label = new St.Label({
text: _('Applications'), text: _('Applications'),
y_expand: true, y_expand: true,
y_align: Clutter.ActorAlign.CENTER, y_align: Clutter.ActorAlign.CENTER,
}); });
hbox.add_child(this._label);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.add_actor(hbox); this.add_actor(this._label);
this.name = 'panelApplications'; this.name = 'panelApplications';
this.label_actor = this._label; this.label_actor = this._label;
@@ -383,9 +378,12 @@ class ApplicationsButton extends PanelMenu.Button {
this._hidingId = Main.overview.connect('hiding', () => { this._hidingId = Main.overview.connect('hiding', () => {
this.remove_accessible_state(Atk.StateType.CHECKED); this.remove_accessible_state(Atk.StateType.CHECKED);
}); });
Main.layoutManager.connect('startup-complete', Main.wm.addKeybinding(
this._setKeybinding.bind(this)); 'apps-menu-toggle-menu',
this._setKeybinding(); ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
() => this.menu.toggle());
this._desktopTarget = new DesktopTarget(); this._desktopTarget = new DesktopTarget();
this._desktopTarget.connect('app-dropped', () => { this._desktopTarget.connect('app-dropped', () => {
@@ -436,11 +434,7 @@ class ApplicationsButton extends PanelMenu.Button {
this._tree.disconnect(this._treeChangedId); this._tree.disconnect(this._treeChangedId);
this._tree = null; this._tree = null;
Main.wm.setCustomKeybindingHandler('panel-main-menu', Main.wm.removeKeybinding('apps-menu-toggle-menu');
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
Main.sessionMode.hasOverview
? Main.overview.toggle.bind(Main.overview)
: null);
this._desktopTarget.destroy(); this._desktopTarget.destroy();
} }
@@ -482,12 +476,6 @@ class ApplicationsButton extends PanelMenu.Button {
super._onOpenStateChanged(menu, open); super._onOpenStateChanged(menu, open);
} }
_setKeybinding() {
Main.wm.setCustomKeybindingHandler('panel-main-menu',
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
() => this.menu.toggle());
}
_redisplay() { _redisplay() {
this.applicationsBox.destroy_all_children(); this.applicationsBox.destroy_all_children();
this.categoriesBox.destroy_all_children(); this.categoriesBox.destroy_all_children();
@@ -677,17 +665,20 @@ class ApplicationsButton extends PanelMenu.Button {
let appsMenuButton; let appsMenuButton;
/** */
function enable() { function enable() {
appsMenuButton = new ApplicationsButton(); appsMenuButton = new ApplicationsButton();
let index = Main.sessionMode.panel.left.indexOf('activities') + 1; let index = Main.sessionMode.panel.left.indexOf('activities') + 1;
Main.panel.addToStatusArea('apps-menu', appsMenuButton, index, 'left'); Main.panel.addToStatusArea('apps-menu', appsMenuButton, index, 'left');
} }
/** */
function disable() { function disable() {
Main.panel.menuManager.removeMenu(appsMenuButton.menu); Main.panel.menuManager.removeMenu(appsMenuButton.menu);
appsMenuButton.destroy(); appsMenuButton.destroy();
} }
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
+1
View File
@@ -3,3 +3,4 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
+1
View File
@@ -1,6 +1,7 @@
{ {
"extension-id": "@extension_id@", "extension-id": "@extension_id@",
"uuid": "@uuid@", "uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@", "gettext-domain": "@gettext_domain@",
"name": "Applications Menu", "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.", "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.",
@@ -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>
+12 -4
View File
@@ -72,7 +72,7 @@ class WindowMover {
} }
_moveWindow(window, workspaceNum) { _moveWindow(window, workspaceNum) {
if (window.skip_taskbar) if (window.skip_taskbar || window.is_on_all_workspaces())
return; return;
// ensure we have the required number of workspaces // ensure we have the required number of workspaces
@@ -108,18 +108,24 @@ class WindowMover {
let prevCheckWorkspaces; let prevCheckWorkspaces;
let winMover; let winMover;
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
/**
* @returns {bool} - false (used as MetaLater handler)
*/
function myCheckWorkspaces() { function myCheckWorkspaces() {
let keepAliveWorkspaces = []; let keepAliveWorkspaces = [];
let foundNonEmpty = false; let foundNonEmpty = false;
for (let i = this._workspaces.length - 1; i >= 0; i--) { for (let i = this._workspaces.length - 1; i >= 0; i--) {
if (!foundNonEmpty) if (!foundNonEmpty) {
foundNonEmpty = this._workspaces[i].list_windows().length > 0; foundNonEmpty = this._workspaces[i].list_windows().some(
else if (!this._workspaces[i]._keepAliveId) w => !w.is_on_all_workspaces());
} else if (!this._workspaces[i]._keepAliveId) {
keepAliveWorkspaces.push(this._workspaces[i]); keepAliveWorkspaces.push(this._workspaces[i]);
}
} }
// make sure the original method only removes empty workspaces at the end // make sure the original method only removes empty workspaces at the end
@@ -130,6 +136,7 @@ function myCheckWorkspaces() {
return false; return false;
} }
/** */
function enable() { function enable() {
prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces; prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces = myCheckWorkspaces; Main.wm._workspaceTracker._checkWorkspaces = myCheckWorkspaces;
@@ -137,6 +144,7 @@ function enable() {
winMover = new WindowMover(); winMover = new WindowMover();
} }
/** */
function disable() { function disable() {
Main.wm._workspaceTracker._checkWorkspaces = prevCheckWorkspaces; Main.wm._workspaceTracker._checkWorkspaces = prevCheckWorkspaces;
winMover.destroy(); winMover.destroy();
+39 -55
View File
@@ -4,11 +4,10 @@
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi; const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
const _ = ExtensionUtils.gettext;
const SETTINGS_KEY = 'application-list'; const SETTINGS_KEY = 'application-list';
const WORKSPACE_MAX = 36; // compiled in limit of mutter const WORKSPACE_MAX = 36; // compiled in limit of mutter
@@ -29,9 +28,9 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
margin_start: 36, margin_start: 36,
margin_end: 36, margin_end: 36,
}); });
this.add(box); this.set_child(box);
box.add(new Gtk.Label({ box.append(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Rules')), label: '<b>%s</b>'.format(_('Workspace Rules')),
use_markup: true, use_markup: true,
halign: Gtk.Align.START, halign: Gtk.Align.START,
@@ -40,9 +39,9 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
this._list = new Gtk.ListBox({ this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE, selection_mode: Gtk.SelectionMode.NONE,
valign: Gtk.Align.START, valign: Gtk.Align.START,
show_separators: true,
}); });
this._list.set_header_func(this._updateHeader.bind(this)); box.append(this._list);
box.add(this._list);
const context = this._list.get_style_context(); const context = this._list.get_style_context();
const cssProvider = new Gtk.CssProvider(); const cssProvider = new Gtk.CssProvider();
@@ -53,7 +52,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame'); context.add_class('frame');
this._list.add(new NewRuleRow()); this._list.append(new NewRuleRow());
this._actionGroup = new Gio.SimpleActionGroup(); this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('rules', this._actionGroup); this._list.insert_action_group('rules', this._actionGroup);
@@ -84,12 +83,10 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
this._sync(); this._sync();
this.connect('destroy', () => this._settings.run_dispose()); this.connect('destroy', () => this._settings.run_dispose());
this.show_all();
} }
_onAddActivated() { _onAddActivated() {
const dialog = new NewRuleDialog(this.get_toplevel()); const dialog = new NewRuleDialog(this.get_root());
dialog.connect('response', (dlg, id) => { dialog.connect('response', (dlg, id) => {
const appInfo = id === Gtk.ResponseType.OK const appInfo = id === Gtk.ResponseType.OK
? dialog.get_widget().get_app_info() : null; ? dialog.get_widget().get_app_info() : null;
@@ -101,6 +98,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
} }
dialog.destroy(); dialog.destroy();
}); });
dialog.show();
} }
_onRemoveActivated(action, param) { _onRemoveActivated(action, param) {
@@ -113,7 +111,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
} }
_getRuleRows() { _getRuleRows() {
return this._list.get_children().filter(row => !!row.id); return [...this._list].filter(row => !!row.id);
} }
_sync() { _sync() {
@@ -139,17 +137,11 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
const removed = oldRules.filter( const removed = oldRules.filter(
({ id }) => !newRules.find(r => r.id === id)); ({ id }) => !newRules.find(r => r.id === id));
removed.forEach(r => r.destroy()); removed.forEach(r => this._list.remove(r));
this._settings.unblock_signal_handler(this._changedId); this._settings.unblock_signal_handler(this._changedId);
this._updateAction.enabled = true; this._updateAction.enabled = true;
} }
_updateHeader(row, before) {
if (!before || row.get_header())
return;
row.set_header(new Gtk.Separator());
}
}); });
const RuleRow = GObject.registerClass({ const RuleRow = GObject.registerClass({
@@ -165,12 +157,6 @@ const RuleRow = GObject.registerClass({
}, },
}, class RuleRow extends Gtk.ListBoxRow { }, class RuleRow extends Gtk.ListBoxRow {
_init(appInfo, value) { _init(appInfo, value) {
super._init({
activatable: false,
value,
});
this._appInfo = appInfo;
const box = new Gtk.Box({ const box = new Gtk.Box({
spacing: 6, spacing: 6,
margin_top: 6, margin_top: 6,
@@ -179,12 +165,19 @@ const RuleRow = GObject.registerClass({
margin_end: 6, margin_end: 6,
}); });
super._init({
activatable: false,
value,
child: box,
});
this._appInfo = appInfo;
const icon = new Gtk.Image({ const icon = new Gtk.Image({
gicon: appInfo.get_icon(), gicon: appInfo.get_icon(),
pixel_size: 32, pixel_size: 32,
}); });
icon.get_style_context().add_class('icon-dropshadow'); icon.get_style_context().add_class('icon-dropshadow');
box.add(icon); box.append(icon);
const label = new Gtk.Label({ const label = new Gtk.Label({
label: appInfo.get_display_name(), label: appInfo.get_display_name(),
@@ -193,7 +186,7 @@ const RuleRow = GObject.registerClass({
max_width_chars: 20, max_width_chars: 20,
ellipsize: Pango.EllipsizeMode.END, ellipsize: Pango.EllipsizeMode.END,
}); });
box.add(label); box.append(label);
const spinButton = new Gtk.SpinButton({ const spinButton = new Gtk.SpinButton({
adjustment: new Gtk.Adjustment({ adjustment: new Gtk.Adjustment({
@@ -207,26 +200,17 @@ const RuleRow = GObject.registerClass({
this.bind_property('value', this.bind_property('value',
spinButton, 'value', spinButton, 'value',
GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL); GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL);
box.add(spinButton); box.append(spinButton);
const button = new Gtk.Button({ const button = new Gtk.Button({
action_name: 'rules.remove', action_name: 'rules.remove',
action_target: new GLib.Variant('s', this.id), action_target: new GLib.Variant('s', this.id),
image: new Gtk.Image({ icon_name: 'edit-delete-symbolic',
icon_name: 'edit-delete-symbolic',
pixel_size: 16,
}),
}); });
box.add(button); box.append(button);
this.add(box); this.connect('notify::value',
() => this.activate_action('rules.update', null));
this.connect('notify::value', () => {
const actionGroup = this.get_action_group('rules');
actionGroup.activate_action('update', null);
});
this.show_all();
} }
get id() { get id() {
@@ -239,19 +223,17 @@ class NewRuleRow extends Gtk.ListBoxRow {
_init() { _init() {
super._init({ super._init({
action_name: 'rules.add', action_name: 'rules.add',
child: new Gtk.Image({
icon_name: 'list-add-symbolic',
pixel_size: 16,
margin_top: 12,
margin_bottom: 12,
margin_start: 12,
margin_end: 12,
}),
}); });
this.get_accessible().set_name(_('Add Rule')); this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Rule')]);
this.add(new Gtk.Image({
icon_name: 'list-add-symbolic',
pixel_size: 16,
margin_top: 12,
margin_bottom: 12,
margin_start: 12,
margin_end: 12,
}));
this.show_all();
} }
}); });
@@ -273,8 +255,6 @@ class NewRuleDialog extends Gtk.AppChooserDialog {
this.get_widget().connect('application-selected', this.get_widget().connect('application-selected',
this._updateSensitivity.bind(this)); this._updateSensitivity.bind(this));
this._updateSensitivity(); this._updateSensitivity();
this.show();
} }
_updateSensitivity() { _updateSensitivity() {
@@ -285,10 +265,14 @@ class NewRuleDialog extends Gtk.AppChooserDialog {
} }
}); });
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() { function buildPrefsWidget() {
return new AutoMoveSettingsWidget(); return new AutoMoveSettingsWidget();
} }
+40 -19
View File
@@ -2,15 +2,14 @@
// Drive menu extension // Drive menu extension
const { Clutter, Gio, GObject, Shell, St } = imports.gi; const { Clutter, Gio, GObject, Shell, St } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main; const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const ShellMountOperation = imports.ui.shellMountOperation; const ShellMountOperation = imports.ui.shellMountOperation;
const _ = ExtensionUtils.gettext;
var MountMenuItem = GObject.registerClass( var MountMenuItem = GObject.registerClass(
class MountMenuItem extends PopupMenu.PopupBaseMenuItem { class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
_init(mount) { _init(mount) {
@@ -41,6 +40,8 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
ejectButton.connect('clicked', this._eject.bind(this)); ejectButton.connect('clicked', this._eject.bind(this));
this.add(ejectButton); this.add(ejectButton);
this.hide();
this._changedId = mount.connect('changed', this._syncVisibility.bind(this)); this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
this._syncVisibility(); this._syncVisibility();
} }
@@ -54,7 +55,21 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
super.destroy(); super.destroy();
} }
_isInteresting() { _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()) if (!this.mount.can_eject() && !this.mount.can_unmount())
return false; return false;
if (this.mount.is_shadowed()) if (this.mount.is_shadowed())
@@ -62,17 +77,23 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
let volume = this.mount.get_volume(); let volume = this.mount.get_volume();
if (!volume) { if (volume)
// probably a GDaemonMount, could be network or return volume.get_identifier('class') !== 'network';
// local, but we can't tell; assume it's local for now
return true; const root = this.mount.get_root();
try {
return await this._fsIsRemote(root);
} catch (e) {
log(`Failed to query filesystem: ${e.message}`);
} }
return volume.get_identifier('class') !== 'network'; // Hack, fall back to looking at GType
return Gio._LocalFilePrototype.isPrototypeOf(root);
} }
_syncVisibility() { async _syncVisibility() {
this.visible = this._isInteresting(); this.visible = await this._isInteresting();
} }
_eject() { _eject() {
@@ -127,21 +148,16 @@ class DriveMenu extends PanelMenu.Button {
_init() { _init() {
super._init(0.0, _('Removable devices')); super._init(0.0, _('Removable devices'));
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
let icon = new St.Icon({ let icon = new St.Icon({
icon_name: 'media-eject-symbolic', icon_name: 'media-eject-symbolic',
style_class: 'system-status-icon', style_class: 'system-status-icon',
}); });
hbox.add_child(icon); this.add_child(icon);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.add_child(hbox);
this._monitor = Gio.VolumeMonitor.get(); this._monitor = Gio.VolumeMonitor.get();
this._addedId = this._monitor.connect('mount-added', (monitor, mount) => { this._addedId = this._monitor.connect('mount-added',
this._addMount(mount); (monitor, mount) => this._addMount(mount));
this._updateMenuVisibility();
});
this._removedId = this._monitor.connect('mount-removed', (monitor, mount) => { this._removedId = this._monitor.connect('mount-removed', (monitor, mount) => {
this._removeMount(mount); this._removeMount(mount);
this._updateMenuVisibility(); this._updateMenuVisibility();
@@ -172,6 +188,8 @@ class DriveMenu extends PanelMenu.Button {
let item = new MountMenuItem(mount); let item = new MountMenuItem(mount);
this._mounts.unshift(item); this._mounts.unshift(item);
this.menu.addMenuItem(item, 0); this.menu.addMenuItem(item, 0);
item.connect('notify::visible', () => this._updateMenuVisibility());
} }
_removeMount(mount) { _removeMount(mount) {
@@ -198,17 +216,20 @@ class DriveMenu extends PanelMenu.Button {
} }
}); });
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
let _indicator; let _indicator;
/** */
function enable() { function enable() {
_indicator = new DriveMenu(); _indicator = new DriveMenu();
Main.panel.addToStatusArea('drive-menu', _indicator); Main.panel.addToStatusArea('drive-menu', _indicator);
} }
/** */
function disable() { function disable() {
_indicator.destroy(); _indicator.destroy();
} }
@@ -1,38 +0,0 @@
/* exported init */
const { Meta } = imports.gi;
const { ThumbnailsBox } = imports.ui.workspaceThumbnail;
class Extension {
constructor() {
this._origUpdateSwitcherVisibility =
ThumbnailsBox.prototype._updateSwitcherVisibility;
}
enable() {
global.workspace_manager.override_workspace_layout(
Meta.DisplayCorner.TOPLEFT,
false,
1,
-1);
ThumbnailsBox.prototype._updateSwitcherVisibility = function () {
this.hide();
};
}
disable() {
global.workspace_manager.override_workspace_layout(
Meta.DisplayCorner.TOPLEFT,
false,
-1,
1);
ThumbnailsBox.prototype._updateSwitcherVisibility =
this._origUpdateSwitcherVisibility;
}
}
function init() {
return new Extension();
}
@@ -1,5 +0,0 @@
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)
@@ -1,10 +0,0 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Horizontal workspaces",
"description": "Use a horizontal workspace layout",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}
@@ -1 +0,0 @@
/* This extensions requires no special styling */
@@ -3,6 +3,7 @@ const AppDisplay = imports.ui.appDisplay;
let _activateOriginal = null; let _activateOriginal = null;
/** */
function enable() { function enable() {
_activateOriginal = AppDisplay.AppIcon.prototype.activate; _activateOriginal = AppDisplay.AppIcon.prototype.activate;
AppDisplay.AppIcon.prototype.activate = function () { AppDisplay.AppIcon.prototype.activate = function () {
@@ -10,6 +11,7 @@ function enable() {
}; };
} }
/** */
function disable() { function disable() {
AppDisplay.AppIcon.prototype.activate = _activateOriginal; AppDisplay.AppIcon.prototype.activate = _activateOriginal;
} }
+39 -16
View File
@@ -3,6 +3,7 @@
const { Clutter } = imports.gi; const { Clutter } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const { WindowPreview } = imports.ui.windowPreview; const { WindowPreview } = imports.ui.windowPreview;
const Workspace = imports.ui.workspace; const Workspace = imports.ui.workspace;
@@ -66,13 +67,15 @@ class Rect {
} }
class NaturalLayoutStrategy extends Workspace.LayoutStrategy { class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
constructor(settings) { constructor(params, settings) {
super(); super(params);
this._settings = settings; this._settings = settings;
} }
computeLayout(windows, layout) { computeLayout(windows, _params) {
layout.windows = windows; return {
windows,
};
} }
/* /*
@@ -103,7 +106,6 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
direction++; direction++;
if (direction === 4) if (direction === 4)
direction = 0; direction = 0;
} }
let loopCounter = 0; let loopCounter = 0;
@@ -236,37 +238,57 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
let winInjections, workspaceInjections; let winInjections, workspaceInjections;
/** */
function resetState() { function resetState() {
winInjections = { }; winInjections = { };
workspaceInjections = { }; workspaceInjections = { };
} }
/** */
function enable() { function enable() {
resetState(); resetState();
let settings = ExtensionUtils.getSettings(); let settings = ExtensionUtils.getSettings();
workspaceInjections['_createBestLayout'] = Workspace.WorkspaceLayout.prototype._createBestLayout; workspaceInjections['_createBestLayout'] = Workspace.WorkspaceLayout.prototype._createBestLayout;
Workspace.WorkspaceLayout.prototype._createBestLayout = function (area) { Workspace.WorkspaceLayout.prototype._createBestLayout = function (_area) {
let strategy = new NaturalLayoutStrategy(settings); this._layoutStrategy = new NaturalLayoutStrategy({
let layout = { area, strategy }; monitor: Main.layoutManager.monitors[this._monitorIndex],
strategy.computeLayout(this._sortedWindows, layout); }, settings);
return this._layoutStrategy.computeLayout(this._sortedWindows);
return layout;
}; };
// position window titles on top of windows in overlay // position window titles on top of windows in overlay
winInjections['_init'] = WindowPreview.prototype._init; winInjections['_init'] = WindowPreview.prototype._init;
WindowPreview.prototype._init = function (metaWindow, workspace) { WindowPreview.prototype._init = function (...args) {
winInjections['_init'].call(this, metaWindow, workspace); winInjections['_init'].call(this, ...args);
const constraint = this._title.get_constraints().find( 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); c => c.align_axis && c.align_axis === Clutter.AlignAxis.Y_AXIS);
constraint.factor = settings.get_boolean('window-captions-on-top') alignConstraint.factor = 0;
? 0 : 1;
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;
}; };
} }
/**
* @param {Object} object - object that was modified
* @param {Object} injection - the map of previous injections
* @param {string} name - the @injection key that should be removed
*/
function removeInjection(object, injection, name) { function removeInjection(object, injection, name) {
if (injection[name] === undefined) if (injection[name] === undefined)
delete object[name]; delete object[name];
@@ -274,6 +296,7 @@ function removeInjection(object, injection, name) {
object[name] = injection[name]; object[name] = injection[name];
} }
/** */
function disable() { function disable() {
var i; var i;
@@ -1,9 +1 @@
.window-caption { /* This extensions requires no special styling */
-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;
}
+7 -8
View File
@@ -8,13 +8,12 @@ const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = x => x;
const Me = ExtensionUtils.getCurrentExtension(); const Me = ExtensionUtils.getCurrentExtension();
const PlaceDisplay = Me.imports.placeDisplay; const PlaceDisplay = Me.imports.placeDisplay;
const _ = ExtensionUtils.gettext;
const N_ = x => x;
const PLACE_ICON_SIZE = 16; const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass( var PlaceMenuItem = GObject.registerClass(
@@ -88,15 +87,12 @@ class PlacesMenu extends PanelMenu.Button {
_init() { _init() {
super._init(0.0, _('Places')); super._init(0.0, _('Places'));
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
let label = new St.Label({ let label = new St.Label({
text: _('Places'), text: _('Places'),
y_expand: true, y_expand: true,
y_align: Clutter.ActorAlign.CENTER, y_align: Clutter.ActorAlign.CENTER,
}); });
hbox.add_child(label); this.add_actor(label);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.add_actor(hbox);
this.placesManager = new PlaceDisplay.PlacesManager(); this.placesManager = new PlaceDisplay.PlacesManager();
@@ -136,12 +132,14 @@ class PlacesMenu extends PanelMenu.Button {
} }
}); });
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
let _indicator; let _indicator;
/** */
function enable() { function enable() {
_indicator = new PlacesMenu(); _indicator = new PlacesMenu();
@@ -151,6 +149,7 @@ function enable() {
Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left'); Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
} }
/** */
function disable() { function disable() {
_indicator.destroy(); _indicator.destroy();
} }
+3 -4
View File
@@ -3,11 +3,11 @@
const { Gio, GLib, Shell } = imports.gi; const { Gio, GLib, Shell } = imports.gi;
const Signals = imports.signals; const Signals = imports.signals;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main; const Main = imports.ui.main;
const ShellMountOperation = imports.ui.shellMountOperation; const ShellMountOperation = imports.ui.shellMountOperation;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = ExtensionUtils.gettext;
const _ = Gettext.gettext;
const N_ = x => x; const N_ = x => x;
const BACKGROUND_SCHEMA = 'org.gnome.desktop.background'; const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
@@ -194,7 +194,7 @@ class PlaceDeviceInfo extends PlaceInfo {
} }
isRemovable() { isRemovable() {
return this._mount.can_eject(); return this._mount.can_eject() || this._mount.can_unmount();
} }
eject() { eject() {
@@ -486,7 +486,6 @@ var PlacesManager = class {
} }
_reloadBookmarks() { _reloadBookmarks() {
this._bookmarks = []; this._bookmarks = [];
let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path()); let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
@@ -28,11 +28,15 @@ const MESSAGE_FADE_TIME = 2000;
let text; let text;
/** */
function hideMessage() { function hideMessage() {
text.destroy(); text.destroy();
text = null; text = null;
} }
/**
* @param {string} message - the message to flash
*/
function flashMessage(message) { function flashMessage(message) {
if (!text) { if (!text) {
text = new St.Label({ style_class: 'screenshot-sizer-message' }); text = new St.Label({ style_class: 'screenshot-sizer-message' });
@@ -67,6 +71,11 @@ let SIZES = [
[720, 360], // Phone landscape fullscreen [720, 360], // Phone landscape fullscreen
]; ];
/**
* @param {Meta.Display} display - the display
* @param {Meta.Window=} window - for per-window bindings, the window
* @param {Meta.KeyBinding} binding - the key binding
*/
function cycleScreenshotSizes(display, window, binding) { function cycleScreenshotSizes(display, window, binding) {
// Probably this isn't useful with 5 sizes, but you can decrease instead // Probably this isn't useful with 5 sizes, but you can decrease instead
// of increase by holding down shift. // of increase by holding down shift.
@@ -133,6 +142,7 @@ function cycleScreenshotSizes(display, window, binding) {
flashMessage(message); flashMessage(message);
} }
/** */
function enable() { function enable() {
Main.wm.addKeybinding( Main.wm.addKeybinding(
'cycle-screenshot-sizes', 'cycle-screenshot-sizes',
@@ -148,6 +158,7 @@ function enable() {
cycleScreenshotSizes); cycleScreenshotSizes);
} }
/** */
function disable() { function disable() {
Main.wm.removeKeybinding('cycle-screenshot-sizes'); Main.wm.removeKeybinding('cycle-screenshot-sizes');
Main.wm.removeKeybinding('cycle-screenshot-sizes-backward'); Main.wm.removeKeybinding('cycle-screenshot-sizes-backward');
+3
View File
@@ -58,6 +58,9 @@ class ThemeManager {
} }
} }
/**
* @returns {ThemeManager} - the extension state object
*/
function init() { function init() {
return new ThemeManager(); return new ThemeManager();
} }
+36 -39
View File
@@ -26,18 +26,21 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow {
}); });
const box = new Gtk.Box(); const box = new Gtk.Box();
this.add(box); this.set_child(box);
this._list = new Gtk.ListBox({ this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE, selection_mode: Gtk.SelectionMode.NONE,
show_separators: true,
halign: Gtk.Align.CENTER, halign: Gtk.Align.CENTER,
valign: Gtk.Align.START, valign: Gtk.Align.START,
hexpand: true, hexpand: true,
margin: 60, margin_start: 60,
margin_end: 60,
margin_top: 60,
margin_bottom: 60,
}); });
this._list.get_style_context().add_class('frame'); this._list.get_style_context().add_class('frame');
this._list.set_header_func(this._updateHeader.bind(this)); box.append(this._list);
box.add(this._list);
this._actionGroup = new Gio.SimpleActionGroup(); this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('theme', this._actionGroup); this._list.insert_action_group('theme', this._actionGroup);
@@ -90,11 +93,10 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow {
} }
_addTheme(name) { _addTheme(name) {
const row = new ThemeRow(name); const row = new ThemeRow(name, this._settings);
this._rows.set(name, row); this._rows.set(name, row);
this._list.add(row); this._list.append(row);
row.show_all();
} }
async _enumerateDir(dir) { async _enumerateDir(dir) {
@@ -121,31 +123,28 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow {
return fileInfos.map(info => info.get_name()); return fileInfos.map(info => info.get_name());
} }
_updateHeader(row, before) {
if (!before || row.get_header())
return;
row.set_header(new Gtk.Separator());
}
}); });
const ThemeRow = GObject.registerClass( const ThemeRow = GObject.registerClass(
class ThemeRow extends Gtk.ListBoxRow { class ThemeRow extends Gtk.ListBoxRow {
_init(name) { _init(name, settings) {
this._name = new GLib.Variant('s', name); this._name = name;
this._settings = settings;
super._init({
action_name: 'theme.name',
action_target: this._name,
});
const box = new Gtk.Box({ const box = new Gtk.Box({
spacing: 12, spacing: 12,
margin: 12, margin_start: 12,
margin_end: 12,
margin_top: 12,
margin_bottom: 12,
});
super._init({
action_name: 'theme.name',
action_target: new GLib.Variant('s', name),
child: box,
}); });
this.add(box);
box.add(new Gtk.Label({ box.append(new Gtk.Label({
label: name || 'Default', label: name || 'Default',
hexpand: true, hexpand: true,
xalign: 0, xalign: 0,
@@ -157,33 +156,31 @@ class ThemeRow extends Gtk.ListBoxRow {
icon_name: 'emblem-ok-symbolic', icon_name: 'emblem-ok-symbolic',
pixel_size: 16, pixel_size: 16,
}); });
box.add(this._checkmark); box.append(this._checkmark);
box.show_all(); const id = this._settings.connect('changed::name',
this._syncCheckmark.bind(this));
this._syncCheckmark();
const id = this.connect('parent-set', () => { this.connect('destroy', () => {
this.disconnect(id); this._settings.disconnect(id);
this._settings = null;
const actionGroup = this.get_action_group('theme');
actionGroup.connect('action-state-changed::name',
this._syncCheckmark.bind(this));
this._syncCheckmark();
}); });
} }
_syncCheckmark() { _syncCheckmark() {
const actionGroup = this.get_action_group('theme'); const visible = this._name === this._settings.get_string('name');
const state = actionGroup.get_action_state('name'); this._checkmark.opacity = visible ? 1. : 0;
this._checkmark.opacity = this._name.equal(state);
} }
}); });
/** */
function init() { function init() {
} }
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() { function buildPrefsWidget() {
let widget = new UserThemePrefsWidget(); return new UserThemePrefsWidget();
widget.show_all();
return widget;
} }
+6
View File
@@ -3,6 +3,9 @@ const { GLib } = imports.gi;
const fn = (...args) => GLib.build_filenamev(args); const fn = (...args) => GLib.build_filenamev(args);
/**
* @returns {string[]} - an ordered list of theme directories
*/
function getThemeDirs() { function getThemeDirs() {
return [ return [
fn(GLib.get_home_dir(), '.themes'), fn(GLib.get_home_dir(), '.themes'),
@@ -11,6 +14,9 @@ function getThemeDirs() {
]; ];
} }
/**
* @returns {string[]} - an ordered list of mode theme directories
*/
function getModeThemeDirs() { function getModeThemeDirs() {
return GLib.get_system_data_dirs() return GLib.get_system_data_dirs()
.map(dir => fn(dir, 'gnome-shell', 'theme')); .map(dir => fn(dir, 'gnome-shell', 'theme'));
+3 -3
View File
@@ -50,11 +50,12 @@
/* workspace switcher */ /* workspace switcher */
.window-list-workspace-indicator .workspace { .window-list-workspace-indicator .workspace {
background-color: #ddd; border: 2px solid #f6f5f4;
background-color: #ccc;
} }
.window-list-workspace-indicator .workspace.active { .window-list-workspace-indicator .workspace.active {
background-color: #ccc; border-color: #888;
} }
.window-list-window-preview { .window-list-window-preview {
@@ -64,5 +65,4 @@
.window-list-window-preview.active { .window-list-window-preview.active {
background-color: #f6f5f4; background-color: #f6f5f4;
border: 2px solid #888;
} }
+99 -115
View File
@@ -11,8 +11,7 @@ const Me = ExtensionUtils.getCurrentExtension();
const { WindowPicker, WindowPickerToggle } = Me.imports.windowPicker; const { WindowPicker, WindowPickerToggle } = Me.imports.windowPicker;
const { WorkspaceIndicator } = Me.imports.workspaceIndicator; const { WorkspaceIndicator } = Me.imports.workspaceIndicator;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = ExtensionUtils.gettext;
const _ = Gettext.gettext;
const ICON_TEXTURE_SIZE = 24; const ICON_TEXTURE_SIZE = 24;
const DND_ACTIVATE_TIMEOUT = 500; const DND_ACTIVATE_TIMEOUT = 500;
@@ -23,34 +22,10 @@ const GroupingMode = {
ALWAYS: 2, ALWAYS: 2,
}; };
/**
function _minimizeOrActivateWindow(window) { * @param {Shell.App} app - an app
let focusWindow = global.display.focus_window; * @returns {number} - the smallest stable sequence of the app's windows
if (focusWindow === window || */
focusWindow && focusWindow.get_transient_for() === window)
window.minimize();
else
window.activate(global.get_current_time());
}
function _openMenu(menu) {
menu.open();
let event = Clutter.get_current_event();
if (event && event.type() === Clutter.EventType.KEY_RELEASE)
menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
}
function _onMenuStateChanged(menu, isOpen) {
if (isOpen)
return;
let [x, y] = global.get_pointer();
let actor = global.stage.get_actor_at_pos(Clutter.PickMode.REACTIVE, x, y);
if (Me.stateObj.someWindowListContains(actor))
actor.sync_hover();
}
function _getAppStableSequence(app) { function _getAppStableSequence(app) {
let windows = app.get_windows().filter(w => !w.skip_taskbar); let windows = app.get_windows().filter(w => !w.skip_taskbar);
return windows.reduce((prev, cur) => { return windows.reduce((prev, cur) => {
@@ -58,7 +33,6 @@ function _getAppStableSequence(app) {
}, Infinity); }, Infinity);
} }
class WindowContextMenu extends PopupMenu.PopupMenu { class WindowContextMenu extends PopupMenu.PopupMenu {
constructor(source, metaWindow) { constructor(source, metaWindow) {
super(source, 0.5, St.Side.BOTTOM); super(source, 0.5, St.Side.BOTTOM);
@@ -282,10 +256,37 @@ const BaseButton = GObject.registerClass({
return true; return true;
} }
_openMenu(menu) {
menu.open();
let event = Clutter.get_current_event();
if (event && event.type() === Clutter.EventType.KEY_RELEASE)
menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
}
_minimizeOrActivateWindow(window) {
let focusWindow = global.display.focus_window;
if (focusWindow === window ||
focusWindow && focusWindow.get_transient_for() === window)
window.minimize();
else
window.activate(global.get_current_time());
}
_onMenuStateChanged(menu, isOpen) {
if (isOpen)
return;
let [x, y] = global.get_pointer();
let actor = global.stage.get_actor_at_pos(Clutter.PickMode.REACTIVE, x, y);
if (Me.stateObj.someWindowListContains(actor))
actor.sync_hover();
}
_onPopupMenu(_actor) { _onPopupMenu(_actor) {
if (!this._canOpenPopupMenu() || this._contextMenu.isOpen) if (!this._canOpenPopupMenu() || this._contextMenu.isOpen)
return; return;
_openMenu(this._contextMenu); this._openMenu(this._contextMenu);
} }
_isFocused() { _isFocused() {
@@ -352,6 +353,9 @@ class WindowButton extends BaseButton {
super._init(perMonitor, monitorIndex); super._init(perMonitor, monitorIndex);
this.metaWindow = metaWindow; this.metaWindow = metaWindow;
this._skipTaskbarId = metaWindow.connect('notify::skip-taskbar', () => {
this._updateVisibility();
});
this._updateVisibility(); this._updateVisibility();
this._windowTitle = new WindowTitle(this.metaWindow); this._windowTitle = new WindowTitle(this.metaWindow);
@@ -359,7 +363,8 @@ class WindowButton extends BaseButton {
this.label_actor = this._windowTitle.label_actor; this.label_actor = this._windowTitle.label_actor;
this._contextMenu = new WindowContextMenu(this, this.metaWindow); this._contextMenu = new WindowContextMenu(this, this.metaWindow);
this._contextMenu.connect('open-state-changed', _onMenuStateChanged); this._contextMenu.connect('open-state-changed',
this._onMenuStateChanged.bind(this));
this._contextMenu.actor.hide(); this._contextMenu.actor.hide();
this._contextMenuManager.addMenu(this._contextMenu); this._contextMenuManager.addMenu(this._contextMenu);
Main.uiGroup.add_actor(this._contextMenu.actor); Main.uiGroup.add_actor(this._contextMenu.actor);
@@ -379,9 +384,9 @@ class WindowButton extends BaseButton {
} }
if (button === 1) if (button === 1)
_minimizeOrActivateWindow(this.metaWindow); this._minimizeOrActivateWindow(this.metaWindow);
else else
_openMenu(this._contextMenu); this._openMenu(this._contextMenu);
} }
_isFocused() { _isFocused() {
@@ -412,6 +417,7 @@ class WindowButton extends BaseButton {
_onDestroy() { _onDestroy() {
super._onDestroy(); super._onDestroy();
this.metaWindow.disconnect(this._skipTaskbarId);
this.metaWindow.disconnect(this._workspaceChangedId); this.metaWindow.disconnect(this._workspaceChangedId);
global.display.disconnect(this._notifyFocusId); global.display.disconnect(this._notifyFocusId);
this._contextMenu.destroy(); this._contextMenu.destroy();
@@ -514,14 +520,16 @@ class AppButton extends BaseButton {
this._menuManager = new PopupMenu.PopupMenuManager(this); this._menuManager = new PopupMenu.PopupMenuManager(this);
this._menu = new PopupMenu.PopupMenu(this, 0.5, St.Side.BOTTOM); this._menu = new PopupMenu.PopupMenu(this, 0.5, St.Side.BOTTOM);
this._menu.connect('open-state-changed', _onMenuStateChanged); this._menu.connect('open-state-changed',
this._onMenuStateChanged.bind(this));
this._menu.actor.hide(); this._menu.actor.hide();
this._menu.connect('activate', this._onMenuActivate.bind(this)); this._menu.connect('activate', this._onMenuActivate.bind(this));
this._menuManager.addMenu(this._menu); this._menuManager.addMenu(this._menu);
Main.uiGroup.add_actor(this._menu.actor); Main.uiGroup.add_actor(this._menu.actor);
this._appContextMenu = new AppContextMenu(this); this._appContextMenu = new AppContextMenu(this);
this._appContextMenu.connect('open-state-changed', _onMenuStateChanged); this._appContextMenu.connect('open-state-changed',
this._onMenuStateChanged.bind(this));
this._appContextMenu.actor.hide(); this._appContextMenu.actor.hide();
Main.uiGroup.add_actor(this._appContextMenu.actor); Main.uiGroup.add_actor(this._appContextMenu.actor);
@@ -588,7 +596,7 @@ class AppButton extends BaseButton {
this._singleWindowTitle.child = this._windowTitle; this._singleWindowTitle.child = this._windowTitle;
this._windowContextMenu = new WindowContextMenu(this, this.metaWindow); this._windowContextMenu = new WindowContextMenu(this, this.metaWindow);
this._windowContextMenu.connect( this._windowContextMenu.connect(
'open-state-changed', _onMenuStateChanged); 'open-state-changed', this._onMenuStateChanged.bind(this));
Main.uiGroup.add_actor(this._windowContextMenu.actor); Main.uiGroup.add_actor(this._windowContextMenu.actor);
this._windowContextMenu.actor.hide(); this._windowContextMenu.actor.hide();
this._contextMenuManager.addMenu(this._windowContextMenu); this._contextMenuManager.addMenu(this._windowContextMenu);
@@ -608,7 +616,6 @@ class AppButton extends BaseButton {
this._contextMenuManager.addMenu(this._appContextMenu); this._contextMenuManager.addMenu(this._appContextMenu);
this.label_actor = this._multiWindowTitle.label_actor; this.label_actor = this._multiWindowTitle.label_actor;
} }
} }
_onClicked(actor, button) { _onClicked(actor, button) {
@@ -628,7 +635,7 @@ class AppButton extends BaseButton {
if (windows.length === 1) { if (windows.length === 1) {
if (contextMenuWasOpen) if (contextMenuWasOpen)
return; return;
_minimizeOrActivateWindow(windows[0]); this._minimizeOrActivateWindow(windows[0]);
} else { } else {
this._menu.removeAll(); this._menu.removeAll();
@@ -639,12 +646,12 @@ class AppButton extends BaseButton {
item._window = windows[i]; item._window = windows[i];
this._menu.addMenuItem(item); this._menu.addMenuItem(item);
} }
_openMenu(this._menu); this._openMenu(this._menu);
} }
} else { } else {
if (contextMenuWasOpen) if (contextMenuWasOpen)
return; return;
_openMenu(this._contextMenu); this._openMenu(this._contextMenu);
} }
} }
@@ -741,28 +748,26 @@ class WindowList extends St.Widget {
this._appStateChangedId = this._appSystem.connect( this._appStateChangedId = this._appSystem.connect(
'app-state-changed', this._onAppStateChanged.bind(this)); 'app-state-changed', this._onAppStateChanged.bind(this));
this._keyboardVisiblechangedId = Main.layoutManager.connect( // Hack: OSK gesture is tied to visibility, piggy-back on that
'keyboard-visible-changed', this._keyboardVisiblechangedId =
(o, state) => { Main.keyboard._bottomDragAction.connect('notify::enabled',
Main.layoutManager.keyboardBox.visible = state; action => {
let { keyboardBox } = Main.layoutManager; const visible = !action.enabled;
keyboardBox.visible = state; if (visible) {
if (state) { Main.uiGroup.set_child_above_sibling(
Main.uiGroup.set_child_above_sibling( this, Main.layoutManager.keyboardBox);
this, keyboardBox); } else {
} else { Main.uiGroup.set_child_above_sibling(
Main.uiGroup.set_child_above_sibling( this, Main.layoutManager.panelBox);
this, Main.layoutManager.panelBox); }
} this._updateKeyboardAnchor();
this._updateKeyboardAnchor(); });
});
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._workspaceSignals = new Map();
this._nWorkspacesChangedId = workspaceManager.connect( this._nWorkspacesChangedId = workspaceManager.connect(
'notify::n-workspaces', this._onWorkspacesChanged.bind(this)); 'notify::n-workspaces', this._updateWorkspaceIndicatorVisibility.bind(this));
this._onWorkspacesChanged(); this._updateWorkspaceIndicatorVisibility();
this._switchWorkspaceId = global.window_manager.connect( this._switchWorkspaceId = global.window_manager.connect(
'switch-workspace', this._checkGrouping.bind(this)); 'switch-workspace', this._checkGrouping.bind(this));
@@ -772,20 +777,27 @@ class WindowList extends St.Widget {
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}); });
this._overviewHidingId = Main.overview.connect('hiding', () => { this._overviewHidingId = Main.overview.connect('hidden', () => {
this.visible = !Main.layoutManager.primaryMonitor.inFullscreen; this.visible = !Main.layoutManager.primaryMonitor.inFullscreen;
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}); });
this._fullscreenChangedId = this._fullscreenChangedId =
global.display.connect('in-fullscreen-changed', () => { global.display.connect('in-fullscreen-changed', () => {
// Work-around for initial change from unknown to !fullscreen
if (Main.overview.visible)
this.hide();
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}); });
this._windowSignals = new Map();
this._windowCreatedId = global.display.connect(
'window-created', (dsp, win) => this._addWindow(win));
this._dragBeginId = Main.xdndHandler.connect('drag-begin', this._dragBeginId = Main.xdndHandler.connect('drag-begin',
this._onDragBegin.bind(this)); this._monitorDrag.bind(this));
this._dragEndId = Main.xdndHandler.connect('drag-end', this._dragEndId = Main.xdndHandler.connect('drag-end',
this._onDragEnd.bind(this)); this._stopMonitoringDrag.bind(this));
this._dragMonitor = { this._dragMonitor = {
dragMotion: this._onDragMotion.bind(this), dragMotion: this._onDragMotion.bind(this),
}; };
@@ -904,7 +916,7 @@ class WindowList extends St.Widget {
w2.metaWindow.get_stable_sequence(); w2.metaWindow.get_stable_sequence();
}); });
for (let i = 0; i < windows.length; i++) for (let i = 0; i < windows.length; i++)
this._onWindowAdded(null, windows[i].metaWindow); this._addWindow(windows[i].metaWindow);
} else { } else {
let apps = this._appSystem.get_running().sort((a1, a2) => { let apps = this._appSystem.get_running().sort((a1, a2) => {
return _getAppStableSequence(a1) - return _getAppStableSequence(a1) -
@@ -916,11 +928,8 @@ class WindowList extends St.Widget {
} }
_updateKeyboardAnchor() { _updateKeyboardAnchor() {
if (!Main.keyboard.keyboardActor) const translationY = Main.overview.visible ? 0 : this.height;
return; Main.layoutManager.keyboardBox.translation_y = -translationY;
let translationY = Main.overview.visible ? 0 : this.height;
Main.keyboard.keyboardActor.translation_y = -translationY;
} }
_onAppStateChanged(appSys, app) { _onAppStateChanged(appSys, app) {
@@ -947,10 +956,7 @@ class WindowList extends St.Widget {
child.destroy(); child.destroy();
} }
_onWindowAdded(ws, win) { _addWindow(win) {
if (win.skip_taskbar)
return;
if (!this._grouped) if (!this._grouped)
this._checkGrouping(); this._checkGrouping();
@@ -961,21 +967,26 @@ class WindowList extends St.Widget {
if (children.find(c => c.metaWindow === win)) if (children.find(c => c.metaWindow === win))
return; return;
this._windowSignals.set(
win, win.connect('unmanaged', () => this._removeWindow(win)));
let button = new WindowButton(win, this._perMonitor, this._monitor.index); let button = new WindowButton(win, this._perMonitor, this._monitor.index);
this._settings.bind('display-all-workspaces', this._settings.bind('display-all-workspaces',
button, 'ignore-workspace', Gio.SettingsBindFlags.GET); button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
this._windowList.add_child(button); this._windowList.add_child(button);
} }
_onWindowRemoved(ws, win) { _removeWindow(win) {
if (this._grouped) if (this._grouped)
this._checkGrouping(); this._checkGrouping();
if (this._grouped) if (this._grouped)
return; return;
if (win.get_compositor_private()) const id = this._windowSignals.get(win);
return; // not actually removed, just moved to another workspace if (id)
win.disconnect(id);
this._windowSignals.delete(id);
let children = this._windowList.get_children(); let children = this._windowList.get_children();
let child = children.find(c => c.metaWindow === win); let child = children.find(c => c.metaWindow === win);
@@ -983,44 +994,11 @@ class WindowList extends St.Widget {
child.destroy(); child.destroy();
} }
_onWorkspacesChanged() { _monitorDrag() {
let workspaceManager = global.workspace_manager;
let numWorkspaces = workspaceManager.n_workspaces;
for (let i = 0; i < numWorkspaces; i++) {
let workspace = workspaceManager.get_workspace_by_index(i);
if (this._workspaceSignals.has(workspace))
continue;
let signals = { windowAddedId: 0, windowRemovedId: 0 };
signals._windowAddedId = workspace.connect_after(
'window-added', this._onWindowAdded.bind(this));
signals._windowRemovedId = workspace.connect(
'window-removed', this._onWindowRemoved.bind(this));
this._workspaceSignals.set(workspace, signals);
}
this._updateWorkspaceIndicatorVisibility();
}
_disconnectWorkspaceSignals() {
let workspaceManager = global.workspace_manager;
let numWorkspaces = workspaceManager.n_workspaces;
for (let i = 0; i < numWorkspaces; i++) {
let workspace = workspaceManager.get_workspace_by_index(i);
let signals = this._workspaceSignals.get(workspace);
this._workspaceSignals.delete(workspace);
workspace.disconnect(signals._windowAddedId);
workspace.disconnect(signals._windowRemovedId);
}
}
_onDragBegin() {
DND.addDragMonitor(this._dragMonitor); DND.addDragMonitor(this._dragMonitor);
} }
_onDragEnd() { _stopMonitoringDrag() {
DND.removeDragMonitor(this._dragMonitor); DND.removeDragMonitor(this._dragMonitor);
this._removeActivateTimeout(); this._removeActivateTimeout();
} }
@@ -1076,24 +1054,25 @@ class WindowList extends St.Widget {
this._appSystem.disconnect(this._appStateChangedId); this._appSystem.disconnect(this._appStateChangedId);
this._appStateChangedId = 0; this._appStateChangedId = 0;
Main.layoutManager.disconnect(this._keyboardVisiblechangedId); Main.keyboard._bottomDragAction.disconnect(this._keyboardVisiblechangedId);
this._keyboardVisiblechangedId = 0; this._keyboardVisiblechangedId = 0;
Main.layoutManager.hideKeyboard();
this._disconnectWorkspaceSignals();
global.workspace_manager.disconnect(this._nWorkspacesChangedId); global.workspace_manager.disconnect(this._nWorkspacesChangedId);
this._nWorkspacesChangedId = 0; this._nWorkspacesChangedId = 0;
global.window_manager.disconnect(this._switchWorkspaceId); global.window_manager.disconnect(this._switchWorkspaceId);
this._switchWorkspaceId = 0; this._switchWorkspaceId = 0;
this._windowSignals.forEach((id, win) => win.disconnect(id));
this._windowSignals.clear();
Main.overview.disconnect(this._overviewShowingId); Main.overview.disconnect(this._overviewShowingId);
Main.overview.disconnect(this._overviewHidingId); Main.overview.disconnect(this._overviewHidingId);
global.display.disconnect(this._fullscreenChangedId); global.display.disconnect(this._fullscreenChangedId);
global.display.disconnect(this._windowCreatedId);
this._stopMonitoringDrag();
Main.xdndHandler.disconnect(this._dragBeginId); Main.xdndHandler.disconnect(this._dragBeginId);
Main.xdndHandler.disconnect(this._dragEndId); Main.xdndHandler.disconnect(this._dragEndId);
@@ -1107,6 +1086,8 @@ class WindowList extends St.Widget {
class Extension { class Extension {
constructor() { constructor() {
ExtensionUtils.initTranslations();
this._windowLists = null; this._windowLists = null;
this._hideOverviewOrig = Main.overview.hide; this._hideOverviewOrig = Main.overview.hide;
} }
@@ -1170,6 +1151,9 @@ class Extension {
} }
} }
/**
* @returns {Extension} - the extension's state object
*/
function init() { function init() {
return new Extension(); return new Extension();
} }
+38 -52
View File
@@ -1,14 +1,13 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */ /* exported init buildPrefsWidget */
const { Gio, GObject, Gtk } = imports.gi; const { Gio, GLib, GObject, Gtk } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
const _ = ExtensionUtils.gettext;
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
@@ -26,8 +25,19 @@ class WindowListPrefsWidget extends Gtk.Box {
halign: Gtk.Align.CENTER, halign: Gtk.Align.CENTER,
}); });
this._actionGroup = new Gio.SimpleActionGroup();
this.insert_action_group('window-list', this._actionGroup);
this._settings = ExtensionUtils.getSettings();
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'));
let groupingLabel = '<b>%s</b>'.format(_('Window Grouping')); let groupingLabel = '<b>%s</b>'.format(_('Window Grouping'));
this.add(new Gtk.Label({ this.append(new Gtk.Label({
label: groupingLabel, use_markup: true, label: groupingLabel, use_markup: true,
halign: Gtk.Align.START, halign: Gtk.Align.START,
})); }));
@@ -37,7 +47,7 @@ class WindowListPrefsWidget extends Gtk.Box {
spacing: 12, spacing: 12,
margin_bottom: 12, margin_bottom: 12,
}); });
this.add(box); this.append(box);
const context = box.get_style_context(); const context = box.get_style_context();
const cssProvider = new Gtk.CssProvider(); const cssProvider = new Gtk.CssProvider();
@@ -49,63 +59,39 @@ class WindowListPrefsWidget extends Gtk.Box {
context.add_class('frame'); context.add_class('frame');
context.add_class('view'); context.add_class('view');
this._settings = ExtensionUtils.getSettings(); const modes = [
let currentMode = this._settings.get_string('grouping-mode'); { mode: 'never', label: _('Never group windows') },
let range = this._settings.get_range('grouping-mode'); { mode: 'auto', label: _('Group windows when space is limited') },
let modes = range.deep_unpack()[1].deep_unpack(); { mode: 'always', label: _('Always group windows') },
];
let modeLabels = { let group = null;
'never': _('Never group windows'), for (const { mode, label } of modes) {
'auto': _('Group windows when space is limited'), const check = new Gtk.CheckButton({
'always': _('Always group windows'), action_name: 'window-list.grouping-mode',
}; action_target: new GLib.Variant('s', mode),
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.RadioButton({
active: !i,
label, label,
group: radio, group,
margin_end: 12, margin_end: 12,
}); });
box.add(radio); group = check;
box.append(check);
if (currentMode === mode)
currentRadio = radio;
radio.connect('toggled', button => {
if (button.active)
this._settings.set_string('grouping-mode', mode);
});
} }
if (currentRadio) this.append(new Gtk.CheckButton({
currentRadio.active = true;
let check = new Gtk.CheckButton({
label: _('Show on all monitors'), label: _('Show on all monitors'),
}); action_name: 'window-list.show-on-all-monitors',
this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT); }));
this.add(check);
check = new Gtk.CheckButton({ this.append(new Gtk.CheckButton({
label: _('Show windows from all workspaces'), label: _('Show windows from all workspaces'),
}); action_name: 'window-list.display-all-workspaces',
this._settings.bind('display-all-workspaces', check, 'active', Gio.SettingsBindFlags.DEFAULT); }));
this.add(check);
this.show_all();
} }
}); });
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() { function buildPrefsWidget() {
return new WindowListPrefsWidget(); return new WindowListPrefsWidget();
} }
+8 -29
View File
@@ -1,10 +1,3 @@
.bottom-panel {
/* .window-button-icon height +
.window-button vertical padding +
.window-button > StWidget vertical padding) */
height: 2.25em;
}
.window-list { .window-list {
spacing: 2px; spacing: 2px;
font-size: 10pt; font-size: 10pt;
@@ -30,7 +23,7 @@
.window-picker-toggle > StWidget { .window-picker-toggle > StWidget {
color: #bbb; color: #bbb;
background-color: black; background-color: black;
border-radius: 4px; border-radius: 2px;
padding: 3px 6px 1px; padding: 3px 6px 1px;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.5); box-shadow: inset 1px 1px 4px rgba(255,255,255,0.5);
text-shadow: 1px 1px 4px rgba(0,0,0,0.8); text-shadow: 1px 1px 4px rgba(0,0,0,0.8);
@@ -89,7 +82,7 @@
background-color: rgba(200, 200, 200, .3); background-color: rgba(200, 200, 200, .3);
border: 1px solid #cccccc; border: 1px solid #cccccc;
padding: 0 3px; padding: 0 3px;
margin: 3px 0; margin: 3px;
} }
.window-list-workspace-indicator .workspaces-box { .window-list-workspace-indicator .workspaces-box {
@@ -98,37 +91,23 @@
} }
.window-list-workspace-indicator .workspace { .window-list-workspace-indicator .workspace {
border: 1px solid #cccccc; border: 2px solid #000;
width: 52px; width: 52px;
}
.window-list-workspace-indicator .workspace:first-child:last-child:ltr,
.window-list-workspace-indicator .workspace:first-child:last-child:rtl {
border-radius: 4px; border-radius: 4px;
} background-color: #595959;
.window-list-workspace-indicator .workspace:first-child:ltr,
.window-list-workspace-indicator .workspace:last-child:rtl {
border-radius: 4px 0 0 4px;
}
.window-list-workspace-indicator .workspace:first-child:rtl,
.window-list-workspace-indicator .workspace:last-child:ltr {
border-radius: 0 4px 4px 0;
} }
.window-list-workspace-indicator .workspace.active { .window-list-workspace-indicator .workspace.active {
background-color: rgba(200, 200, 200, .3); border-color: #fff;
} }
.window-list-window-preview { .window-list-window-preview {
background-color: #252525; background-color: #bebebe;
border: 1px solid #ccc; border: 1px solid #828282;
} }
.window-list-window-preview.active { .window-list-window-preview.active {
background-color: #353535; background-color: #d4d4d4;
border: 2px solid #ccc;
} }
.notification { .notification {
+119 -81
View File
@@ -1,16 +1,24 @@
/* exported WindowPicker, WindowPickerToggle */ /* exported WindowPicker, WindowPickerToggle */
const { Clutter, GLib, GObject, Meta, Shell, St } = imports.gi; const { Clutter, GObject, Shell, St } = imports.gi;
const Layout = imports.ui.layout; const Layout = imports.ui.layout;
const Main = imports.ui.main; const Main = imports.ui.main;
const Overview = imports.ui.overview;
const { WorkspacesDisplay } = imports.ui.workspacesView; const { WorkspacesDisplay } = imports.ui.workspacesView;
const Workspace = imports.ui.workspace;
const { VIGNETTE_BRIGHTNESS } = imports.ui.lightbox;
const {
SIDE_CONTROLS_ANIMATION_TIME,
OverviewAdjustment,
ControlsState,
} = imports.ui.overviewControls;
let MyWorkspacesDisplay = GObject.registerClass( let MyWorkspacesDisplay = GObject.registerClass(
class MyWorkspacesDisplay extends WorkspacesDisplay { class MyWorkspacesDisplay extends WorkspacesDisplay {
_init() { _init(controls, overviewAdjustment) {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._overviewAdjustment = overviewAdjustment;
this._workspaceAdjustment = new St.Adjustment({ this._workspaceAdjustment = new St.Adjustment({
value: workspaceManager.get_active_workspace_index(), value: workspaceManager.get_active_workspace_index(),
lower: 0, lower: 0,
@@ -24,7 +32,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
workspaceManager.connect('notify::n-workspaces', workspaceManager.connect('notify::n-workspaces',
this._updateAdjustment.bind(this)); this._updateAdjustment.bind(this));
super._init(this._workspaceAdjustment); super._init(controls, this._workspaceAdjustment, this._overviewAdjustment);
this._workspaceAdjustment.actor = this; this._workspaceAdjustment.actor = this;
@@ -33,19 +41,15 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
primary: true, primary: true,
work_area: true, work_area: true,
})); }));
this._workareasChangedId = global.display.connect('workareas-changed',
this._onWorkAreasChanged.bind(this));
this._onWorkAreasChanged();
} }
animateToOverview(...args) { prepareToEnterOverview(...args) {
if (!this._scrollEventId) { if (!this._scrollEventId) {
this._scrollEventId = Main.windowPicker.connect('scroll-event', this._scrollEventId = Main.windowPicker.connect('scroll-event',
this._onScrollEvent.bind(this)); this._onScrollEvent.bind(this));
} }
super.animateToOverview(...args); super.prepareToEnterOverview(...args);
} }
vfunc_hide(...args) { vfunc_hide(...args) {
@@ -56,13 +60,6 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
super.vfunc_hide(...args); super.vfunc_hide(...args);
} }
_onWorkAreasChanged() {
let { primaryIndex } = Main.layoutManager;
this._actualGeometry =
Main.layoutManager.getWorkAreaForMonitor(primaryIndex);
this._syncWorkspacesActualGeometry();
}
_updateAdjustment() { _updateAdjustment() {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._workspaceAdjustment.set({ this._workspaceAdjustment.set({
@@ -71,20 +68,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
}); });
} }
_updateWorkspacesViews() {
super._updateWorkspacesViews();
this._workspacesViews.forEach(v => {
Main.layoutManager.overviewGroup.remove_actor(v);
Main.windowPicker.add_actor(v);
});
}
_onDestroy() { _onDestroy() {
if (this._workareasChangedId)
global.display.disconnect(this._workareasChangedId);
this._workareasChangedId = 0;
if (this._nWorkspacesChangedId) if (this._nWorkspacesChangedId)
global.workspace_manager.disconnect(this._nWorkspacesChangedId); global.workspace_manager.disconnect(this._nWorkspacesChangedId);
this._nWorkspacesChangedId = 0; this._nWorkspacesChangedId = 0;
@@ -93,6 +77,69 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
} }
}); });
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,
});
}
});
}
_onDestroy() {
super._onDestroy();
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({ var WindowPicker = GObject.registerClass({
Signals: { Signals: {
'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] }, 'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] },
@@ -105,7 +152,9 @@ var WindowPicker = GObject.registerClass({
this._overlayKeyId = 0; this._overlayKeyId = 0;
this._stageKeyPressId = 0; this._stageKeyPressId = 0;
super._init(); super._init({ reactive: true });
this._adjustment = new OverviewAdjustment(this);
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
@@ -116,31 +165,14 @@ var WindowPicker = GObject.registerClass({
this, 'height', this, 'height',
GObject.BindingFlags.SYNC_CREATE); GObject.BindingFlags.SYNC_CREATE);
this._backgroundGroup = new Meta.BackgroundGroup({ reactive: true }); this._workspacesDisplay = new MyWorkspacesDisplay(this, this._adjustment);
this.add_child(this._backgroundGroup);
this._backgroundGroup.connect('scroll-event', (a, ev) => {
this.emit('scroll-event', ev);
});
// Trick WorkspacesDisplay constructor into adding actions here
let addActionOrig = Main.overview.addAction;
Main.overview.addAction = a => this._backgroundGroup.add_action(a);
this._workspacesDisplay = new MyWorkspacesDisplay();
this.add_child(this._workspacesDisplay); this.add_child(this._workspacesDisplay);
Main.overview.addAction = addActionOrig;
this._bgManagers = [];
this._monitorsChangedId = Main.layoutManager.connect('monitors-changed',
this._updateBackgrounds.bind(this));
this._updateBackgrounds();
Main.uiGroup.insert_child_below(this, global.window_group); Main.uiGroup.insert_child_below(this, global.window_group);
if (!Main.sessionMode.hasOverview) { if (!Main.sessionMode.hasOverview) {
this._injectBackgroundShade();
this._overlayKeyId = global.display.connect('overlay-key', () => { this._overlayKeyId = global.display.connect('overlay-key', () => {
if (!this._visible) if (!this._visible)
this.open(); this.open();
@@ -150,6 +182,14 @@ var WindowPicker = GObject.registerClass({
} }
} }
_injectBackgroundShade() {
this._origWorkspace = Workspace.Workspace;
this._origWorkspaceBackground = Workspace.WorkspaceBackground;
Workspace.Workspace = MyWorkspace;
Workspace.WorkspaceBackground = MyWorkspaceBackground;
}
get visible() { get visible() {
return this._visible; return this._visible;
} }
@@ -164,9 +204,15 @@ var WindowPicker = GObject.registerClass({
return; return;
this._fakeOverviewVisible(true); this._fakeOverviewVisible(true);
this._shadeBackgrounds(); this._workspacesDisplay.prepareToEnterOverview();
this._fakeOverviewAnimation(); Main.overview._animationInProgress = true;
this._workspacesDisplay.animateToOverview(false);
this._adjustment.value = ControlsState.HIDDEN;
this._adjustment.ease(ControlsState.WINDOW_PICKER, {
duration: SIDE_CONTROLS_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (Main.overview._animationInProgress = false),
});
this._stageKeyPressId = global.stage.connect('key-press-event', this._stageKeyPressId = global.stage.connect('key-press-event',
(a, event) => { (a, event) => {
@@ -190,11 +236,17 @@ var WindowPicker = GObject.registerClass({
if (!this._syncGrab()) if (!this._syncGrab())
return; return;
this._workspacesDisplay.animateFromOverview(false); this._workspacesDisplay.prepareToLeaveOverview();
this._unshadeBackgrounds();
this._fakeOverviewAnimation(() => { Main.overview._animationInProgress = true;
this._workspacesDisplay.hide(); this._adjustment.ease(ControlsState.HIDDEN, {
this._fakeOverviewVisible(false); duration: SIDE_CONTROLS_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => {
Main.overview._animationInProgress = false;
this._workspacesDisplay.hide();
this._fakeOverviewVisible(false);
},
}); });
global.stage.disconnect(this._stageKeyPressId); global.stage.disconnect(this._stageKeyPressId);
@@ -203,16 +255,8 @@ var WindowPicker = GObject.registerClass({
this.emit('open-state-changed', this._visible); this.emit('open-state-changed', this._visible);
} }
_fakeOverviewAnimation(onComplete) { getWorkspacesBoxForState() {
Main.overview._animationInProgress = true; return this.allocation;
GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
Overview.ANIMATION_TIME,
() => {
Main.overview._animationInProgress = false;
if (onComplete)
onComplete();
});
} }
_fakeOverviewVisible(visible) { _fakeOverviewVisible(visible) {
@@ -245,6 +289,12 @@ var WindowPicker = GObject.registerClass({
} }
_onDestroy() { _onDestroy() {
if (this._origWorkspace)
Workspace.Workspace = this._origWorkspace;
if (this._origWorkspaceBackground)
Workspace.WorkspaceBackground = this._origWorkspaceBackground;
if (this._monitorsChangedId) if (this._monitorsChangedId)
Main.layoutManager.disconnect(this._monitorsChangedId); Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0; this._monitorsChangedId = 0;
@@ -257,18 +307,6 @@ var WindowPicker = GObject.registerClass({
global.stage.disconnect(this._stageKeyPressId); global.stage.disconnect(this._stageKeyPressId);
this._stageKeyPressId = 0; this._stageKeyPressId = 0;
} }
_updateBackgrounds() {
Main.overview._updateBackgrounds.call(this);
}
_shadeBackgrounds() {
Main.overview._shadeBackgrounds.call(this);
}
_unshadeBackgrounds() {
Main.overview._unshadeBackgrounds.call(this);
}
}); });
var WindowPickerToggle = GObject.registerClass( var WindowPickerToggle = GObject.registerClass(
+101 -54
View File
@@ -2,12 +2,17 @@
const { Clutter, Gio, GObject, Meta, St } = imports.gi; const { Clutter, Gio, GObject, Meta, St } = imports.gi;
const DND = imports.ui.dnd; const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main; const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = ExtensionUtils.gettext;
const _ = Gettext.gettext;
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass( let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button { class WindowPreview extends St.Button {
@@ -24,27 +29,14 @@ class WindowPreview extends St.Button {
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed', this._sizeChangedId = this._window.connect('size-changed',
this._relayout.bind(this)); () => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed', this._positionChangedId = this._window.connect('position-changed',
this._relayout.bind(this)); () => {
this._minimizedChangedId = this._window.connect('notify::minimized', this._updateVisible();
this._relayout.bind(this)); this.queue_relayout();
this._monitorEnteredId = global.display.connect('window-entered-monitor',
this._relayout.bind(this));
this._monitorLeftId = global.display.connect('window-left-monitor',
this._relayout.bind(this));
// Do initial layout when we get a parent
let id = this.connect('parent-set', () => {
this.disconnect(id);
if (!this.get_parent())
return;
this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._laterId = 0;
this._relayout();
return false;
}); });
}); this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
this._focusChangedId = global.display.connect('notify::focus-window', this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this)); this._onFocusChanged.bind(this));
@@ -52,19 +44,15 @@ class WindowPreview extends St.Button {
} }
// needed for DND // needed for DND
get realWindow() { get metaWindow() {
return this._window.get_compositor_private(); return this._window;
} }
_onDestroy() { _onDestroy() {
this._window.disconnect(this._sizeChangedId); this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId); this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId); this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._monitorEnteredId);
global.display.disconnect(this._monitorLeftId);
global.display.disconnect(this._focusChangedId); global.display.disconnect(this._focusChangedId);
if (this._laterId)
Meta.later_remove(this._laterId);
} }
_onFocusChanged() { _onFocusChanged() {
@@ -74,26 +62,42 @@ class WindowPreview extends St.Button {
this.remove_style_class_name('active'); this.remove_style_class_name('active');
} }
_relayout() { _updateVisible() {
let monitor = Main.layoutManager.findIndexForActor(this); const monitor = Main.layoutManager.findIndexForActor(this);
this.visible = monitor === this._window.get_monitor() && const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
this.visible = this._window.get_frame_rect().overlap(workArea) &&
this._window.window_type !== Meta.WindowType.DESKTOP && this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace(); this._window.showing_on_its_workspace();
}
});
if (!this.visible) let WorkspaceLayout = GObject.registerClass(
return; class WorkspaceLayout extends Clutter.LayoutManager {
vfunc_get_preferred_width() {
return [0, 0];
}
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); vfunc_get_preferred_height() {
let hscale = this.get_parent().allocation.get_width() / workArea.width; return [0, 0];
let vscale = this.get_parent().allocation.get_height() / workArea.height; }
let frameRect = this._window.get_frame_rect(); vfunc_allocate(container, box) {
this.set_size( const monitor = Main.layoutManager.findIndexForActor(container);
Math.round(Math.min(frameRect.width, workArea.width) * hscale), const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
Math.round(Math.min(frameRect.height, workArea.height) * vscale)); const hscale = box.get_width() / workArea.width;
this.set_position( const vscale = box.get_height() / workArea.height;
Math.round(frameRect.x * hscale),
Math.round(frameRect.y * vscale)); for (const child of container) {
const childBox = new Clutter.ActorBox();
const frameRect = child.metaWindow.get_frame_rect();
childBox.set_size(
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
childBox.set_origin(
Math.round((frameRect.x - workArea.x) * hscale),
Math.round((frameRect.y - workArea.y) * vscale));
child.allocate(childBox);
}
} }
}); });
@@ -103,12 +107,19 @@ class WorkspaceThumbnail extends St.Button {
super._init({ super._init({
style_class: 'workspace', style_class: 'workspace',
child: new Clutter.Actor({ child: new Clutter.Actor({
layout_manager: new Clutter.BinLayout(), layout_manager: new WorkspaceLayout(),
clip_to_allocation: true, clip_to_allocation: true,
}), }),
}); });
this._tooltip = new St.Label({
style_class: 'dash-label',
visible: false,
});
Main.uiGroup.add_child(this._tooltip);
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this.connect('notify::hover', this._syncTooltip.bind(this));
this._index = index; this._index = index;
this._delegate = this; // needed for DND this._delegate = this; // needed for DND
@@ -134,16 +145,15 @@ class WorkspaceThumbnail extends St.Button {
} }
acceptDrop(source) { acceptDrop(source) {
if (!source.realWindow) if (!source.metaWindow)
return false; return false;
let window = source.realWindow.get_meta_window(); this._moveWindow(source.metaWindow);
this._moveWindow(window);
return true; return true;
} }
handleDragOver(source) { handleDragOver(source) {
if (source.realWindow) if (source.metaWindow)
return DND.DragMotionResult.MOVE_DROP; return DND.DragMotionResult.MOVE_DROP;
else else
return DND.DragMotionResult.CONTINUE; return DND.DragMotionResult.CONTINUE;
@@ -194,7 +204,39 @@ class WorkspaceThumbnail extends St.Button {
ws.activate(global.get_current_time()); ws.activate(global.get_current_time());
} }
_syncTooltip() {
if (this.hover) {
this._tooltip.set({
text: Meta.prefs_get_workspace_name(this._index),
visible: true,
opacity: 0,
});
const [stageX, stageY] = this.get_transformed_position();
const thumbWidth = this.allocation.get_width();
const tipWidth = this._tooltip.width;
const tipHeight = this._tooltip.height;
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
const monitor = Main.layoutManager.findMonitorForActor(this);
const x = Math.clamp(
stageX + xOffset,
monitor.x,
monitor.x + monitor.width - tipWidth);
const y = stageY - tipHeight - TOOLTIP_OFFSET;
this._tooltip.set_position(x, y);
}
this._tooltip.ease({
opacity: this.hover ? 255 : 0,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this._tooltip.visible = this.hover),
});
}
_onDestroy() { _onDestroy() {
this._tooltip.destroy();
this._workspace.disconnect(this._windowAddedId); this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId); this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId); global.display.disconnect(this._restackedId);
@@ -207,6 +249,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
super._init(0.0, _('Workspace Indicator'), true); super._init(0.0, _('Workspace Indicator'), true);
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM)); this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
this.add_style_class_name('window-list-workspace-indicator'); this.add_style_class_name('window-list-workspace-indicator');
this.remove_style_class_name('panel-button');
this.menu.actor.remove_style_class_name('panel-menu'); this.menu.actor.remove_style_class_name('panel-menu');
let container = new St.Widget({ let container = new St.Widget({
@@ -246,13 +289,13 @@ class WorkspaceIndicator extends PanelMenu.Button {
workspaceManager.connect_after('workspace-switched', workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)), this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows', workspaceManager.connect('notify::layout-rows',
this._onWorkspaceOrientationChanged.bind(this)), this._updateThumbnailVisibility.bind(this)),
]; ];
this.connect('scroll-event', this._onScrollEvent.bind(this)); this.connect('scroll-event', this._onScrollEvent.bind(this));
this._updateMenu(); this._updateMenu();
this._updateThumbnails(); this._updateThumbnails();
this._onWorkspaceOrientationChanged(); this._updateThumbnailVisibility();
this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' }); this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' });
this._settingsChangedId = this._settings.connect( this._settingsChangedId = this._settings.connect(
@@ -271,12 +314,15 @@ class WorkspaceIndicator extends PanelMenu.Button {
super._onDestroy(); super._onDestroy();
} }
_onWorkspaceOrientationChanged() { _updateThumbnailVisibility() {
let vertical = global.workspace_manager.layout_rows === -1; const { workspaceManager } = global;
this.reactive = vertical; const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
this.reactive = useMenu;
this._statusBin.visible = vertical; this._statusBin.visible = useMenu;
this._thumbnailsBox.visible = !vertical; this._thumbnailsBox.visible = !useMenu;
} }
_onWorkspaceSwitched() { _onWorkspaceSwitched() {
@@ -292,6 +338,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
_nWorkspacesChanged() { _nWorkspacesChanged() {
this._updateMenu(); this._updateMenu();
this._updateThumbnails(); this._updateThumbnails();
this._updateThumbnailVisibility();
} }
_updateMenuOrnament() { _updateMenuOrnament() {
+79 -76
View File
@@ -1,52 +1,20 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init */ /* exported init */
const { Clutter, GObject, St } = imports.gi; const { Clutter, Graphene, GObject, St } = imports.gi;
const Main = imports.ui.main; const Main = imports.ui.main;
const OverviewControls = imports.ui.overviewControls;
const Workspace = imports.ui.workspace; const Workspace = imports.ui.workspace;
const WorkspacesView = imports.ui.workspacesView; const WorkspacesView = imports.ui.workspacesView;
class MyWindowOverlay extends Workspace.WindowOverlay { const WINDOW_SLOT = 4;
constructor(windowClone, parentActor) {
super(windowClone, parentActor);
this._id = null;
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
parentActor.add_actor(this._text);
}
showTooltip() {
this._parentActor.set_child_below_sibling(this._text, null);
this._text.show();
this._text.text = (this._windowClone.slotId + 1).toString();
}
hideTooltip() {
if (this._text && this._text.visible)
this._text.hide();
}
relayout(animate) {
super.relayout(animate);
let [cloneX, cloneY, cloneWidth_, cloneHeight_] = this._windowClone.slot;
let textX = cloneX - 2;
let textY = cloneY - 2;
this._text.set_position(Math.floor(textX) + 5, Math.floor(textY) + 5);
this._parentActor.set_child_below_sibling(this._text, null);
}
}
var MyWorkspace = GObject.registerClass( var MyWorkspace = GObject.registerClass(
class MyWorkspace extends Workspace.Workspace { class MyWorkspace extends Workspace.Workspace {
_init(metaWorkspace, monitorIndex) { _init(...args) {
super._init(metaWorkspace, monitorIndex); super._init(...args);
if (metaWorkspace && metaWorkspace.index() < 9) { if (this.metaWorkspace && this.metaWorkspace.index() < 9) {
this._tip = new St.Label({ this._tip = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip', style_class: 'extension-windowsNavigator-window-tooltip',
visible: false, visible: false,
@@ -61,63 +29,98 @@ class MyWorkspace extends Workspace.Workspace {
} }
} }
vfunc_allocate(box) {
super.vfunc_allocate(box);
if (this._tip)
this._tip.allocate_preferred_size(0, 0);
}
showTooltip() { showTooltip() {
if (!this._tip || !this._actualGeometry) if (!this._tip)
return; return;
this._tip.text = (this.metaWorkspace.index() + 1).toString(); this._tip.text = (this.metaWorkspace.index() + 1).toString();
// Hand code this instead of using _getSpacingAndPadding
// because that fails on empty workspaces
let node = this.get_theme_node();
let padding = {
left: node.get_padding(St.Side.LEFT),
top: node.get_padding(St.Side.TOP),
bottom: node.get_padding(St.Side.BOTTOM),
right: node.get_padding(St.Side.RIGHT),
};
let area = Workspace.padArea(this._actualGeometry, padding);
this._tip.x = area.x;
this._tip.y = area.y;
this._tip.show(); this._tip.show();
this.set_child_below_sibling(this._tip, null); this.set_child_below_sibling(this._tip, null);
} }
hideTooltip() { hideTooltip() {
if (!this._tip) if (this._tip)
return; this._tip.hide();
if (!this._tip.get_parent())
return;
this._tip.hide();
} }
getWindowWithTooltip(id) { getWindowWithTooltip(id) {
for (let i = 0; i < this._windows.length; i++) { const { layoutManager } = this._container;
if (this._windows[i].slotId + 1 === id) const slot = layoutManager._windowSlots[id - 1];
return this._windows[i].metaWindow; return slot ? slot[WINDOW_SLOT].metaWindow : null;
}
return null;
} }
showWindowsTooltips() { showWindowsTooltips() {
for (let i in this._windowOverlays) { const { layoutManager } = this._container;
if (this._windowOverlays[i]) for (let i = 0; i < layoutManager._windowSlots.length; i++) {
this._windowOverlays[i].showTooltip(); if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
} }
} }
hideWindowsTooltips() { hideWindowsTooltips() {
for (let i in this._windowOverlays) { const { layoutManager } = this._container;
if (this._windowOverlays[i]) for (let i in layoutManager._windowSlots) {
this._windowOverlays[i].hideTooltip(); 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( var MyWorkspacesView = GObject.registerClass(
class MyWorkspacesView extends WorkspacesView.WorkspacesView { class MyWorkspacesView extends WorkspacesView.WorkspacesView {
_init(width, height, x, y, workspaces) { _init(...args) {
super._init(width, height, x, y, workspaces); super._init(...args);
this._pickWorkspace = false; this._pickWorkspace = false;
this._pickWindow = false; this._pickWindow = false;
@@ -161,8 +164,8 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView {
} }
_onKeyPress(s, o) { _onKeyPress(s, o) {
let { viewSelector } = Main.overview; const { ControlsState } = OverviewControls;
if (viewSelector._activePage !== viewSelector._workspacesPage) if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
return false; return false;
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
@@ -244,24 +247,24 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView {
class Extension { class Extension {
constructor() { constructor() {
this._origWindowOverlay = Workspace.WindowOverlay;
this._origWorkspace = Workspace.Workspace; this._origWorkspace = Workspace.Workspace;
this._origWorkspacesView = WorkspacesView.WorkspacesView; this._origWorkspacesView = WorkspacesView.WorkspacesView;
} }
enable() { enable() {
Workspace.WindowOverlay = MyWindowOverlay;
Workspace.Workspace = MyWorkspace; Workspace.Workspace = MyWorkspace;
WorkspacesView.WorkspacesView = MyWorkspacesView; WorkspacesView.WorkspacesView = MyWorkspacesView;
} }
disable() { disable() {
Workspace.WindowOverlay = this._origWindowOverlay;
Workspace.Workspace = this._origWorkspace; Workspace.Workspace = this._origWorkspace;
WorkspacesView.WorkspacesView = this._origWorkspacesView; WorkspacesView.WorkspacesView = this._origWorkspacesView;
} }
} }
/**
* @returns {Extension} - the extension's state object
*/
function init() { function init() {
return new Extension(); return new Extension();
} }
+103 -55
View File
@@ -9,12 +9,16 @@ const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu; const PopupMenu = imports.ui.popupMenu;
const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = ExtensionUtils.gettext;
const _ = Gettext.gettext;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences'; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names'; const WORKSPACE_KEY = 'workspace-names';
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass( let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button { class WindowPreview extends St.Button {
_init(window) { _init(window) {
@@ -30,27 +34,14 @@ class WindowPreview extends St.Button {
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed', this._sizeChangedId = this._window.connect('size-changed',
this._relayout.bind(this)); () => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed', this._positionChangedId = this._window.connect('position-changed',
this._relayout.bind(this)); () => {
this._minimizedChangedId = this._window.connect('notify::minimized', this._updateVisible();
this._relayout.bind(this)); this.queue_relayout();
this._monitorEnteredId = global.display.connect('window-entered-monitor',
this._relayout.bind(this));
this._monitorLeftId = global.display.connect('window-left-monitor',
this._relayout.bind(this));
// Do initial layout when we get a parent
let id = this.connect('parent-set', () => {
this.disconnect(id);
if (!this.get_parent())
return;
this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._laterId = 0;
this._relayout();
return false;
}); });
}); this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
this._focusChangedId = global.display.connect('notify::focus-window', this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this)); this._onFocusChanged.bind(this));
@@ -58,19 +49,15 @@ class WindowPreview extends St.Button {
} }
// needed for DND // needed for DND
get realWindow() { get metaWindow() {
return this._window.get_compositor_private(); return this._window;
} }
_onDestroy() { _onDestroy() {
this._window.disconnect(this._sizeChangedId); this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId); this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId); this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._monitorEnteredId);
global.display.disconnect(this._monitorLeftId);
global.display.disconnect(this._focusChangedId); global.display.disconnect(this._focusChangedId);
if (this._laterId)
Meta.later_remove(this._laterId);
} }
_onFocusChanged() { _onFocusChanged() {
@@ -80,26 +67,42 @@ class WindowPreview extends St.Button {
this.remove_style_class_name('active'); this.remove_style_class_name('active');
} }
_relayout() { _updateVisible() {
let monitor = Main.layoutManager.findIndexForActor(this); const monitor = Main.layoutManager.findIndexForActor(this);
this.visible = monitor === this._window.get_monitor() && const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
this.visible = this._window.get_frame_rect().overlap(workArea) &&
this._window.window_type !== Meta.WindowType.DESKTOP && this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace(); this._window.showing_on_its_workspace();
}
});
if (!this.visible) let WorkspaceLayout = GObject.registerClass(
return; class WorkspaceLayout extends Clutter.LayoutManager {
vfunc_get_preferred_width() {
return [0, 0];
}
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); vfunc_get_preferred_height() {
let hscale = this.get_parent().allocation.get_width() / workArea.width; return [0, 0];
let vscale = this.get_parent().allocation.get_height() / workArea.height; }
let frameRect = this._window.get_frame_rect(); vfunc_allocate(container, box) {
this.set_size( const monitor = Main.layoutManager.findIndexForActor(container);
Math.round(Math.min(frameRect.width, workArea.width) * hscale), const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
Math.round(Math.min(frameRect.height, workArea.height) * vscale)); const hscale = box.get_width() / workArea.width;
this.set_position( const vscale = box.get_height() / workArea.height;
Math.round(frameRect.x * hscale),
Math.round(frameRect.y * vscale)); for (const child of container) {
const childBox = new Clutter.ActorBox();
const frameRect = child.metaWindow.get_frame_rect();
childBox.set_size(
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
childBox.set_origin(
Math.round((frameRect.x - workArea.x) * hscale),
Math.round((frameRect.y - workArea.y) * vscale));
child.allocate(childBox);
}
} }
}); });
@@ -109,12 +112,19 @@ class WorkspaceThumbnail extends St.Button {
super._init({ super._init({
style_class: 'workspace', style_class: 'workspace',
child: new Clutter.Actor({ child: new Clutter.Actor({
layout_manager: new Clutter.BinLayout(), layout_manager: new WorkspaceLayout(),
clip_to_allocation: true, clip_to_allocation: true,
}), }),
}); });
this._tooltip = new St.Label({
style_class: 'dash-label',
visible: false,
});
Main.uiGroup.add_child(this._tooltip);
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this.connect('notify::hover', this._syncTooltip.bind(this));
this._index = index; this._index = index;
this._delegate = this; // needed for DND this._delegate = this; // needed for DND
@@ -140,16 +150,15 @@ class WorkspaceThumbnail extends St.Button {
} }
acceptDrop(source) { acceptDrop(source) {
if (!source.realWindow) if (!source.metaWindow)
return false; return false;
let window = source.realWindow.get_meta_window(); this._moveWindow(source.metaWindow);
this._moveWindow(window);
return true; return true;
} }
handleDragOver(source) { handleDragOver(source) {
if (source.realWindow) if (source.metaWindow)
return DND.DragMotionResult.MOVE_DROP; return DND.DragMotionResult.MOVE_DROP;
else else
return DND.DragMotionResult.CONTINUE; return DND.DragMotionResult.CONTINUE;
@@ -200,7 +209,39 @@ class WorkspaceThumbnail extends St.Button {
ws.activate(global.get_current_time()); ws.activate(global.get_current_time());
} }
_syncTooltip() {
if (this.hover) {
this._tooltip.set({
text: Meta.prefs_get_workspace_name(this._index),
visible: true,
opacity: 0,
});
const [stageX, stageY] = this.get_transformed_position();
const thumbWidth = this.allocation.get_width();
const thumbHeight = this.allocation.get_height();
const tipWidth = this._tooltip.width;
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
const monitor = Main.layoutManager.findMonitorForActor(this);
const x = Math.clamp(
stageX + xOffset,
monitor.x,
monitor.x + monitor.width - tipWidth);
const y = stageY + thumbHeight + TOOLTIP_OFFSET;
this._tooltip.set_position(x, y);
}
this._tooltip.ease({
opacity: this.hover ? 255 : 0,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this._tooltip.visible = this.hover),
});
}
_onDestroy() { _onDestroy() {
this._tooltip.destroy();
this._workspace.disconnect(this._windowAddedId); this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId); this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId); global.display.disconnect(this._restackedId);
@@ -248,14 +289,14 @@ class WorkspaceIndicator extends PanelMenu.Button {
workspaceManager.connect_after('workspace-switched', workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)), this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows', workspaceManager.connect('notify::layout-rows',
this._onWorkspaceOrientationChanged.bind(this)), this._updateThumbnailVisibility.bind(this)),
]; ];
this.connect('scroll-event', this._onScrollEvent.bind(this)); this.connect('scroll-event', this._onScrollEvent.bind(this));
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this)); this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
this._createWorkspacesSection(); this._createWorkspacesSection();
this._updateThumbnails(); this._updateThumbnails();
this._onWorkspaceOrientationChanged(); this._updateThumbnailVisibility();
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA }); this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
this._settingsChangedId = this._settings.connect( this._settingsChangedId = this._settings.connect(
@@ -277,16 +318,19 @@ class WorkspaceIndicator extends PanelMenu.Button {
super._onDestroy(); super._onDestroy();
} }
_onWorkspaceOrientationChanged() { _updateThumbnailVisibility() {
let vertical = global.workspace_manager.layout_rows === -1; const { workspaceManager } = global;
this.reactive = vertical; const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
this.reactive = useMenu;
this._statusLabel.visible = vertical; this._statusLabel.visible = useMenu;
this._thumbnailsBox.visible = !vertical; this._thumbnailsBox.visible = !useMenu;
// Disable offscreen-redirect when showing the workspace switcher // Disable offscreen-redirect when showing the workspace switcher
// so that clip-to-allocation works // so that clip-to-allocation works
Main.panel.set_offscreen_redirect(vertical Main.panel.set_offscreen_redirect(useMenu
? Clutter.OffscreenRedirect.ALWAYS ? Clutter.OffscreenRedirect.ALWAYS
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY); : Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
} }
@@ -303,6 +347,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
_nWorkspacesChanged() { _nWorkspacesChanged() {
this._createWorkspacesSection(); this._createWorkspacesSection();
this._updateThumbnails(); this._updateThumbnails();
this._updateThumbnailVisibility();
} }
_updateMenuOrnament() { _updateMenuOrnament() {
@@ -397,17 +442,20 @@ class WorkspaceIndicator extends PanelMenu.Button {
} }
}); });
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
let _indicator; let _indicator;
/** */
function enable() { function enable() {
_indicator = new WorkspaceIndicator(); _indicator = new WorkspaceIndicator();
Main.panel.addToStatusArea('workspace-indicator', _indicator); Main.panel.addToStatusArea('workspace-indicator', _indicator);
} }
/** */
function disable() { function disable() {
_indicator.destroy(); _indicator.destroy();
} }
+37 -55
View File
@@ -1,14 +1,13 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */ /* exported init buildPrefsWidget */
const { Gdk, Gio, GLib, GObject, Gtk, Pango } = imports.gi; const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = e => e;
const ExtensionUtils = imports.misc.extensionUtils; const ExtensionUtils = imports.misc.extensionUtils;
const _ = ExtensionUtils.gettext;
const N_ = e => e;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences'; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names'; const WORKSPACE_KEY = 'workspace-names';
@@ -28,9 +27,9 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
margin_start: 36, margin_start: 36,
margin_end: 36, margin_end: 36,
}); });
this.add(box); this.set_child(box);
box.add(new Gtk.Label({ box.append(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Names')), label: '<b>%s</b>'.format(_('Workspace Names')),
use_markup: true, use_markup: true,
halign: Gtk.Align.START, halign: Gtk.Align.START,
@@ -39,10 +38,10 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
this._list = new Gtk.ListBox({ this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE, selection_mode: Gtk.SelectionMode.NONE,
valign: Gtk.Align.START, valign: Gtk.Align.START,
show_separators: true,
}); });
this._list.set_header_func(this._updateHeader.bind(this));
this._list.connect('row-activated', (l, row) => row.edit()); this._list.connect('row-activated', (l, row) => row.edit());
box.add(this._list); box.append(this._list);
const context = this._list.get_style_context(); const context = this._list.get_style_context();
const cssProvider = new Gtk.CssProvider(); const cssProvider = new Gtk.CssProvider();
@@ -53,7 +52,7 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame'); context.add_class('frame');
this._list.add(new NewWorkspaceRow()); this._list.append(new NewWorkspaceRow());
this._actionGroup = new Gio.SimpleActionGroup(); this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('workspaces', this._actionGroup); this._list.insert_action_group('workspaces', this._actionGroup);
@@ -94,12 +93,10 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
this._settings.connect(`changed::${WORKSPACE_KEY}`, this._settings.connect(`changed::${WORKSPACE_KEY}`,
this._sync.bind(this)); this._sync.bind(this));
this._sync(); this._sync();
this.show_all();
} }
_getWorkspaceRows() { _getWorkspaceRows() {
return this._list.get_children().filter(row => row.name); return [...this._list].filter(row => row.name);
} }
_sync() { _sync() {
@@ -111,17 +108,11 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
const removed = oldNames.filter(n => !newNames.includes(n)); const removed = oldNames.filter(n => !newNames.includes(n));
const added = newNames.filter(n => !oldNames.includes(n)); const added = newNames.filter(n => !oldNames.includes(n));
removed.forEach(n => rows.find(r => r.name === n).destroy()); removed.forEach(n => this._list.remove(rows.find(r => r.name === n)));
added.forEach(n => { added.forEach(n => {
this._list.insert(new WorkspaceRow(n), newNames.indexOf(n)); this._list.insert(new WorkspaceRow(n), newNames.indexOf(n));
}); });
} }
_updateHeader(row, before) {
if (!before || row.get_header())
return;
row.set_header(new Gtk.Separator());
}
}); });
const WorkspaceRow = GObject.registerClass( const WorkspaceRow = GObject.registerClass(
@@ -129,6 +120,13 @@ class WorkspaceRow extends Gtk.ListBoxRow {
_init(name) { _init(name) {
super._init({ name }); super._init({ name });
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);
const box = new Gtk.Box({ const box = new Gtk.Box({
spacing: 12, spacing: 12,
margin_top: 6, margin_top: 6,
@@ -145,18 +143,14 @@ class WorkspaceRow extends Gtk.ListBoxRow {
}); });
this.bind_property('name', label, 'label', this.bind_property('name', label, 'label',
GObject.BindingFlags.SYNC_CREATE); GObject.BindingFlags.SYNC_CREATE);
box.add(label); box.append(label);
const image = new Gtk.Image({
icon_name: 'edit-delete-symbolic',
pixel_size: 16,
});
const button = new Gtk.Button({ const button = new Gtk.Button({
action_name: 'workspaces.remove', action_name: 'workspaces.remove',
action_target: new GLib.Variant('s', name), action_target: new GLib.Variant('s', name),
image, icon_name: 'edit-delete-symbolic',
}); });
box.add(button); box.append(button);
this._entry = new Gtk.Entry({ this._entry = new Gtk.Entry({
max_width_chars: 25, max_width_chars: 25,
@@ -165,7 +159,7 @@ class WorkspaceRow extends Gtk.ListBoxRow {
this._stack = new Gtk.Stack(); this._stack = new Gtk.Stack();
this._stack.add_named(box, 'display'); this._stack.add_named(box, 'display');
this._stack.add_named(this._entry, 'edit'); this._stack.add_named(this._entry, 'edit');
this.add(this._stack); this.child = this._stack;
this._entry.connect('activate', () => { this._entry.connect('activate', () => {
this.name = this._entry.text; this.name = this._entry.text;
@@ -176,17 +170,11 @@ class WorkspaceRow extends Gtk.ListBoxRow {
return; return;
this._stopEdit(); this._stopEdit();
}); });
this._entry.connect('key-press-event',
this._onEntryKeyPress.bind(this));
this.connect('notify::name', () => { this.connect('notify::name', () => {
button.action_target = new GLib.Variant('s', this.name); button.action_target = new GLib.Variant('s', this.name);
this.activate_action('workspaces.update', null);
const actionGroup = this.get_action_group('workspaces');
actionGroup.activate_action('update', null);
}); });
this.show_all();
} }
edit() { edit() {
@@ -199,14 +187,6 @@ class WorkspaceRow extends Gtk.ListBoxRow {
this.grab_focus(); this.grab_focus();
this._stack.visible_child_name = 'display'; this._stack.visible_child_name = 'display';
} }
_onEntryKeyPress(entry, event) {
const [, keyval] = event.get_keyval();
if (keyval !== Gdk.KEY_Escape)
return Gdk.EVENT_PROPAGATE;
this._stopEdit();
return Gdk.EVENT_STOP;
}
}); });
const NewWorkspaceRow = GObject.registerClass( const NewWorkspaceRow = GObject.registerClass(
@@ -214,26 +194,28 @@ class NewWorkspaceRow extends Gtk.ListBoxRow {
_init() { _init() {
super._init({ super._init({
action_name: 'workspaces.add', action_name: 'workspaces.add',
child: new Gtk.Image({
icon_name: 'list-add-symbolic',
pixel_size: 16,
margin_top: 12,
margin_bottom: 12,
margin_start: 12,
margin_end: 12,
}),
}); });
this.get_accessible().set_name(_('Add Workspace')); this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Workspace')]);
this.add(new Gtk.Image({
icon_name: 'list-add-symbolic',
pixel_size: 16,
margin_top: 12,
margin_bottom: 12,
margin_start: 12,
margin_end: 12,
}));
this.show_all();
} }
}); });
/** */
function init() { function init() {
ExtensionUtils.initTranslations(); ExtensionUtils.initTranslations();
} }
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() { function buildPrefsWidget() {
return new WorkspaceSettingsWidget(); return new WorkspaceSettingsWidget();
} }
+11 -23
View File
@@ -1,40 +1,28 @@
.panel-workspace-indicator { .panel-workspace-indicator {
padding: 0 8px; padding: 0 8px;
} }
.panel-workspace-indicator-box { .panel-workspace-indicator-box {
padding: 2px 0; padding: 4px 0;
spacing: 4px;
} }
.panel-workspace-indicator-box .workspace { .panel-workspace-indicator-box .workspace {
width: 40px; width: 40px;
border: 2px solid #000;
border-radius: 2px;
background-color: #595959;
} }
.panel-workspace-indicator,
.panel-workspace-indicator-box .workspace {
border: 1px solid #cccccc;
}
.panel-workspace-indicator,
.panel-workspace-indicator-box .workspace.active { .panel-workspace-indicator-box .workspace.active {
background-color: rgba(200, 200, 200, .5); border-color: #fff;
}
.panel-workspace-indicator-box .workspace {
background-color: rgba(200, 200, 200, .3);
border-left-width: 0;
}
.panel-workspace-indicator-box .workspace:first-child {
border-left-width: 1px;
} }
.workspace-indicator-window-preview { .workspace-indicator-window-preview {
background-color: #252525; background-color: #bebebe;
border: 1px solid #ccc; border: 1px solid #828282;
} }
.workspace-indicator-window-preview.active { .workspace-indicator-window-preview.active {
background-color: #353535; background-color: #d4d4d4;
border: 2px solid #ccc;
} }
+6
View File
@@ -34,4 +34,10 @@ and will be picked automatically at next login.
<gnome:userid>fmuellner</gnome:userid> <gnome:userid>fmuellner</gnome:userid>
</foaf:Person> </foaf:Person>
</maintainer> </maintainer>
<maintainer>
<foaf:Person>
<foaf:name>Marge Bot</foaf:name>
<gnome:userid>marge-bot</gnome:userid>
</foaf:Person>
</maintainer>
</Project> </Project>
+43 -8
View File
@@ -1,7 +1,12 @@
--- ---
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
# SPDX-FileCopyrightText: 2018 Claudio André <claudioandre.br@gmail.com>
env: env:
es6: true es6: true
es2020: true
extends: 'eslint:recommended' extends: 'eslint:recommended'
plugins:
- jsdoc
rules: rules:
array-bracket-newline: array-bracket-newline:
- error - error
@@ -24,7 +29,9 @@ rules:
# allow: [^vfunc_, ^on_, _instance_init] # allow: [^vfunc_, ^on_, _instance_init]
comma-dangle: comma-dangle:
- error - error
- always-multiline - arrays: always-multiline
objects: always-multiline
functions: never
comma-spacing: comma-spacing:
- error - error
- before: false - before: false
@@ -57,6 +64,17 @@ rules:
- 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child' - 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child'
# Allow dedenting chained member expressions # Allow dedenting chained member expressions
MemberExpression: 'off' 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/newline-after-description: error
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: key-spacing:
- error - error
- beforeColon: false - beforeColon: false
@@ -87,6 +105,7 @@ rules:
- error - error
- all - all
- conditionalAssign: false - conditionalAssign: false
nestedBinaryExpressions: false
returnAssign: false returnAssign: false
no-implicit-coercion: no-implicit-coercion:
- error - error
@@ -103,17 +122,24 @@ rules:
no-octal-escape: error no-octal-escape: error
no-proto: error no-proto: error
no-prototype-builtins: 'off' no-prototype-builtins: 'off'
no-restricted-globals: [error, window]
no-restricted-properties: no-restricted-properties:
- error - 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()
- object: Lang - object: Lang
property: bind property: bind
message: Use arrow notation or Function.prototype.bind() message: Use arrow notation or Function.prototype.bind()
- object: Lang - object: Lang
property: Class property: Class
message: Use ES6 classes message: Use ES6 classes
- object: imports
property: mainloop
message: Use GLib main loops and timeouts
no-restricted-syntax: no-restricted-syntax:
- error - error
- selector: >- - selector: >-
@@ -129,6 +155,8 @@ rules:
BlockStatement[body.length=1] BlockStatement[body.length=1]
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"] CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
message: _init() that only calls super._init() is unnecessary message: _init() that only calls super._init() is unnecessary
- selector: BinaryExpression[operator="instanceof"][right.name="Array"]
message: Use Array.isArray()
no-return-assign: error no-return-assign: error
no-return-await: error no-return-await: error
no-self-compare: error no-self-compare: error
@@ -161,10 +189,14 @@ rules:
object-curly-newline: object-curly-newline:
- error - error
- consistent: true - consistent: true
multiline: true
object-curly-spacing: error object-curly-spacing: error
object-shorthand: error object-shorthand: error
operator-assignment: error operator-assignment: error
operator-linebreak: error operator-linebreak: error
padded-blocks:
- error
- never
# These may be a bit controversial, we can try them out and enable them later # These may be a bit controversial, we can try them out and enable them later
# prefer-const: error # prefer-const: error
# prefer-destructuring: error # prefer-destructuring: error
@@ -205,18 +237,19 @@ rules:
template-curly-spacing: error template-curly-spacing: error
template-tag-spacing: error template-tag-spacing: error
unicode-bom: error unicode-bom: error
valid-jsdoc:
- error
- requireReturn: false
wrap-iife: wrap-iife:
- error - error
- inside - inside
yield-star-spacing: error yield-star-spacing: error
yoda: error yoda: error
settings:
jsdoc:
mode: typescript
globals: globals:
ARGV: readonly ARGV: readonly
Debugger: readonly Debugger: readonly
GIRepositoryGType: readonly GIRepositoryGType: readonly
globalThis: readonly
imports: readonly imports: readonly
Intl: readonly Intl: readonly
log: readonly log: readonly
@@ -224,5 +257,7 @@ globals:
print: readonly print: readonly
printerr: readonly printerr: readonly
window: readonly window: readonly
TextEncoder: readonly
TextDecoder: readonly
parserOptions: parserOptions:
ecmaVersion: 2017 ecmaVersion: 2020
+9 -9
View File
@@ -1,11 +1,12 @@
project('gnome-shell-extensions', project('gnome-shell-extensions',
version: '3.38.1', version: '41.2',
meson_version: '>= 0.44.0', meson_version: '>= 0.53.0',
license: 'GPL2+' license: 'GPL2+'
) )
gettext_domain = meson.project_name() gettext_domain = meson.project_name()
fs = import('fs')
gnome = import('gnome') gnome = import('gnome')
i18n = import('i18n') i18n = import('i18n')
@@ -21,17 +22,12 @@ sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
xsessiondir = join_paths(datadir, 'xsessions') xsessiondir = join_paths(datadir, 'xsessions')
ver_arr = meson.project_version().split('.') ver_arr = meson.project_version().split('.')
if ver_arr[1].to_int().is_even() shell_version = ver_arr[0]
shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1])
else
shell_version = '.'.join(ver_arr)
endif
uuid_suffix = '@gnome-shell-extensions.gcampax.github.com' uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
classic_extensions = [ classic_extensions = [
'apps-menu', 'apps-menu',
'horizontal-workspaces',
'places-menu', 'places-menu',
'launch-new-instance', 'launch-new-instance',
'window-list' 'window-list'
@@ -86,9 +82,13 @@ foreach e : enabled_extensions
endforeach endforeach
if classic_mode_enabled if classic_mode_enabled
sassc = find_program('sassc', required: true)
subdir('data') subdir('data')
endif endif
subdir('extensions') subdir('extensions')
subdir('po') subdir('po')
meson.add_dist_script('meson/generate-stylesheets.py')
meson.add_dist_script('meson/check-version.py',
meson.project_version(),
'NEWS')
+32
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)
+13
View File
@@ -0,0 +1,13 @@
#!/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.run(['sassc', '-a', src, dst], check=True)
+181 -196
View File
@@ -6,11 +6,11 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"shell&keywords=I18N+L10N&component=extensions\n" "issues\n"
"POT-Creation-Date: 2017-08-19 16:41+0000\n" "POT-Creation-Date: 2021-01-20 23:03+0000\n"
"PO-Revision-Date: 2017-09-01 17:56+0300\n" "PO-Revision-Date: 2021-01-24 15:33+0300\n"
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n" "Last-Translator: Launchpad translators\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n" "Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n" "Language: be\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -18,9 +18,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 1.8.11\n" "X-Generator: Poedit 2.4.2\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "Класічны GNOME" msgstr "Класічны GNOME"
@@ -28,171 +28,69 @@ msgstr "Класічны GNOME"
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Гэты сеанс выкарыстоўвае класічны GNOME" msgstr "Гэты сеанс выкарыстоўвае класічны GNOME"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 #: extensions/apps-menu/extension.js:113
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 Shell."
#: 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 Shell."
#: 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" msgid "Favorites"
msgstr "Упадабаныя" msgstr "Абраныя"
#: extensions/apps-menu/extension.js:436 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Праграмы" msgstr "Праграмы"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list" msgid "Application and workspace list"
msgstr "Праграма і спіс працоўных прастораў" msgstr "Праграма і спіс працоўных прастор"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid "" msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
msgstr "" msgstr ""
"Спіс радкоў, кожны з якіх утрымлівае ідэнтыфікатар праграмы (імя *.desktop " "Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *."
"файла), затым двукроп'е і нумар працоўнай прасторы" "desktop), затым двукроп'е і нумар працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:60 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" msgid "Workspace Rules"
msgstr "Праграма" msgstr "Правілы для працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:69 #: extensions/auto-move-windows/prefs.js:237
#: extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Працоўная прастора"
#: extensions/auto-move-windows/prefs.js:85
msgid "Add Rule" msgid "Add Rule"
msgstr "Дадаць правіла" 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 #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Не ўдалося выняць прывод \"%s\":" msgstr "Не ўдалося выняць дыск «%s»:"
#: extensions/drive-menu/extension.js:125 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Зменныя прыстасаванні" msgstr "Здымныя прылады"
#: extensions/drive-menu/extension.js:150 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Адкрыць файлы" 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 ""
"Example пакажа як ствараць пашырэнні для Shell. Сам па сабе ён мае мала "
"функцыянальнасці.\n"
"Тым не менш, можна змяніць тэкст прывітання."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
#, fuzzy
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Выкарыстоўваць большую плошчу экрана для вокнаў" msgstr "Выкарыстоўваць большую плошчу экрана для вокнаў"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
#, fuzzy
msgid "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр шляхам " "Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз "
"змянення суадносінаў бакоў экрана і ўшчыльняючы іх з мэтай змяншэння памераў " "змяненне суадносінаў бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
"абмежавальнай рамкі. Гэты параметр ужываецца толькі разам з звычайным " "абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным "
"размяшчэннем мініяцюр." "размяшчэннем мініяцюр."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "Змяшчаць загалоўкі вокнаў зверху" msgstr "Размяшчаць подпіс акна зверху"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
@@ -200,156 +98,243 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"Калі выбрана, загалоўкі вокнаў будуць размешчаны ўверсе мініяцюры, а не " "Калі выбрана, подпіс акна будзе над мініяцюрай, а не пад ей (як "
"знізу, як прадвызначана. Для таго, каб гэтая настройка ўступіла ў сілу, " "перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць "
"трэба перазапусціць абалонку." "абалонку."
#: extensions/places-menu/extension.js:78 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:81 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Месцы" msgstr "Месцы"
#: extensions/places-menu/placeDisplay.js:65 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не ўдалося прымацаваць том для \"%s\"."
#: extensions/places-menu/placeDisplay.js:78
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Не ўдалося запусціць \"%s\"" msgstr "Не ўдалося запусціць «%s»"
#: extensions/places-menu/placeDisplay.js:137 #: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:160 #, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не ўдалося прымацаваць том для «%s»."
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer" msgid "Computer"
msgstr "Камп'ютар" msgstr "Камп'ютар"
#: extensions/places-menu/placeDisplay.js:303 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Дамашняя папка" msgstr "Хатняя папка"
#: extensions/places-menu/placeDisplay.js:347 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Агляд сеткі" msgstr "Агляд сеткі"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes" msgid "Cycle Screenshot Sizes"
msgstr "Чаргаваць памеры экраннага здымка" msgstr "Паслядоўнасць змены памераў для здымка экрана"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Чаргаваць памеры экраннага здымка ў адваротным напрамку" msgstr "Адваротная паслядоўнасць змены памераў для здымка экрана"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name" msgid "Theme name"
msgstr "Імя матыву аздаблення" msgstr "Назва тэмы"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6 #: 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" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "" msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome-shell"
"Імя матыву аздаблення, які будзе загружаны з ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Закрыць" msgstr "Закрыць"
#: extensions/window-list/extension.js:129 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Скасаваць мінімалізацыю" msgstr "Скасаваць згортванне"
#: extensions/window-list/extension.js:130 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Мінімалізаваць" msgstr "Згарнуць"
#: extensions/window-list/extension.js:136 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Скасаваць максімалізацыю" msgstr "Скасаваць разгортванне"
#: extensions/window-list/extension.js:137 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Максімалізаваць" msgstr "Разгарнуць"
#: extensions/window-list/extension.js:420 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Мінімалізаваць усе" msgstr "Згарнуць усе"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Скасаваць мінімалізацыю для ўсіх" msgstr "Скасаваць згортванне для ўсіх"
#: extensions/window-list/extension.js:436 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Максімалізаваць усе" msgstr "Разгарнуць усе"
#: extensions/window-list/extension.js:445 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Скасаваць максімалізацыю для ўсіх" msgstr "Скасаваць разгортванне для ўсіх"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Закрыць усе" msgstr "Закрыць усе"
#: extensions/window-list/extension.js:678 #: extensions/window-list/extension.js:737
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Індыкатар працоўнай прасторы"
#: extensions/window-list/extension.js:842
msgid "Window List" msgid "Window List"
msgstr "Спіс вокнаў" msgstr "Спіс вокнаў"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows" msgid "When to group windows"
msgstr "Калі групаваць вокны" msgstr "Умовы групавання вокнаў"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"Вырашае калі групаваць вокны адной праграмы ў спісе вокнаў. Магчымыя " "Вызначае калі групаваць вокны адной праграмы ў спісе вокнаў. Магчымыя "
"значэнні: \"never\" (ніколі), \"auto\" (аўтаматычна), \"always\" (заўсёды)." "значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
msgid "Show the window list on all monitors" #: extensions/window-list/prefs.js:100
msgstr "Паказаць спіс вокнаў на ўсіх маніторах" msgid "Show windows from all workspaces"
msgstr "Паказваць вокны з усіх працоўных прастор"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 #: 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 "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
msgstr "" msgstr ""
"Ці паказваць спіс вокнаў на ўсіх злучаных маніторах або толькі на галоўным." "Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным."
#: extensions/window-list/prefs.js:32 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Групаванне вокнаў" msgstr "Групаванне вокнаў"
#: extensions/window-list/prefs.js:50 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Ніколі не групаваць вокны" msgstr "Ніколі не групаваць вокны"
#: extensions/window-list/prefs.js:51 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Групаваць вокны калі не хапае месца" msgstr "Групаваць вокны калі не хапае месца"
#: extensions/window-list/prefs.js:52 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Заўсёды групаваць вокны" msgstr "Заўсёды групаваць вокны"
#: extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Паказаць усе маніторы" msgstr "Паказваць на ўсіх маніторах"
#: extensions/workspace-indicator/prefs.js:141 #: extensions/window-list/workspaceIndicator.js:247
#: extensions/workspace-indicator/extension.js:253
msgid "Workspace Indicator"
msgstr "Індыкатар працоўнай прасторы"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Назвы працоўных прастораў" msgstr "Назвы працоўных прастор"
#: extensions/workspace-indicator/prefs.js:157 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "Імя"
#: extensions/workspace-indicator/prefs.js:198
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Працоўная прастора %d" msgstr "Працоўная прастора %d"
#: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace"
msgstr "Дадаць працоўную прастору"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Прымацаваць мадальны дыялог да бацькоўскага акна"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Гэты ключ засланяе ключ у org.gnome.mutter калі запушчаны GNOME Shell."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Парадак кнопак у загалоўнай стужцы"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Гэты ключ засланяе ключ у org.gnome.desktop.wm.preferences калі запушчаны "
#~ "GNOME Shell."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "Аўтаматычна змяняць памеры акна пры перамяшчэнні да края экрана"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Працоўныя прасторы толькі на асноўным маніторы"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "Затрымліваць змяненні фокуса ў рэжыме мышы да спынення паказальніка"
#~ msgid "Thumbnail only"
#~ msgstr "Толькі мініяцюра"
#~ msgid "Application icon only"
#~ msgstr "Толькі значок праграмы"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Мініяцюра і значок праграмы"
#~ msgid "Present windows as"
#~ msgstr "Адлюстроўваць вокны як"
#~ msgid "Activities Overview"
#~ msgstr "Агляд заняткаў"
#~ msgid "Application"
#~ msgstr "Праграма"
#~ msgid "Create new matching rule"
#~ msgstr "Стварыць новае правіла адпаведнасці"
#~ msgid "Add"
#~ msgstr "Дадаць"
#~ msgid "Hello, world!"
#~ msgstr "Прывітанне, свет!"
#~ msgid "Alternative greeting text."
#~ msgstr "Альтэрнатыўны тэкст вітання."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Калі не пуста, ўтрымлівае тэкст, які будзе паказвацца пры націсканні на "
#~ "панэль."
#~ msgid "Message"
#~ msgstr "Паведамленне"
#~ 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 пакажа як ствараць пашырэнні для Shell. Сам па сабе ён мае мала "
#~ "функцыянальнасці.\n"
#~ "Тым не менш, можна змяніць тэкст прывітання."
#~ msgid "Name"
#~ msgstr "Імя"
+263 -359
View File
@@ -1,359 +1,263 @@
# Bulgarian translation for gnome-shell-extensions po-file. # Bulgarian translation for gnome-shell-extensions po-file.
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc. # Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package. # Copyright (C) 2021 Alexander Shopov <ash@kambanaria.org>.
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014. # This file is distributed under the same license as the gnome-shell-extensions package.
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015. # Ivaylo Valkov <ivaylo@e-valkov.org>, 2014.
# Lyubomir Vasilev <lyubomirv@abv.bg>, 2017. # Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021.
msgid "" # Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
msgstr "" msgid ""
"Project-Id-Version: gnome-shell-extensions master\n" msgstr ""
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Project-Id-Version: gnome-shell-extensions master\n"
"shell&keywords=I18N+L10N&component=extensions\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"POT-Creation-Date: 2017-09-09 15:20+0000\n" "issues\n"
"PO-Revision-Date: 2017-09-08 08:47+0300\n" "POT-Creation-Date: 2021-07-05 17:13+0000\n"
"Last-Translator: Lyubomir Vasilev <lyubomirv@abv.bg>\n" "PO-Revision-Date: 2021-07-11 10:19+0200\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language: bg\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"MIME-Version: 1.0\n" "Language: bg\n"
"Content-Type: text/plain; charset=UTF-8\n" "MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" #: data/gnome-classic.desktop.in:3
msgstr "Класически GNOME" msgid "GNOME Classic"
msgstr "Класически GNOME"
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" #: data/gnome-classic.desktop.in:4
msgstr "Работната среда изглежда като класическия GNOME (2.x)" 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" #: extensions/apps-menu/extension.js:113
msgstr "Прикрепяне на модалните прозорци към родителските им прозорци" msgid "Favorites"
msgstr "Любими"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25 #: extensions/apps-menu/extension.js:367
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33 msgid "Applications"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41 msgstr "Програми"
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell." #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgstr "" msgid "Application and workspace list"
"Този ключ при е с по-голям приоритет от „org.gnome.mutter“ при изпълнението " msgstr "Списък с програмите и работните плотове"
"на обвивката на GNOME."
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16 msgid ""
msgid "Arrangement of buttons on the titlebar" "A list of strings, each containing an application id (desktop file name), "
msgstr "Подредба на бутоните на заглавната лента" "followed by a colon and the workspace number"
msgstr ""
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17 "Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
msgid "" "desktop“), следван от знака „:“ и номер на работен плот"
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell." #: extensions/auto-move-windows/prefs.js:35
msgstr "" msgid "Workspace Rules"
"Този ключ при е с по-голям приоритет от „org.gnome.desktop.wm.preferences“ " msgstr "Правила за работните плотове"
"при изпълнението на обвивката на GNOME."
#: extensions/auto-move-windows/prefs.js:237
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24 msgid "Add Rule"
msgid "Enable edge tiling when dropping windows on screen edges" msgstr "Добавяне на правило"
msgstr ""
"Включване на специална подредба при приближаване на прозорец до ръбовете на " #. TRANSLATORS: %s is the filesystem name
"екрана" #: extensions/drive-menu/extension.js:132
#: extensions/places-menu/placeDisplay.js:233
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32 #, javascript-format
msgid "Workspaces only on primary monitor" msgid "Ejecting drive “%s” failed:"
msgstr "Работни плотове само на основния екран" msgstr "Неуспешно изваждане на устройство „%s“:"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40 #: extensions/drive-menu/extension.js:148
msgid "Delay focus changes in mouse mode until the pointer stops moving" msgid "Removable devices"
msgstr "Забавяне на смяната на фокуса до спирането на движението на показалеца" msgstr "Преносими медии"
#: extensions/alternate-tab/prefs.js:20 #: extensions/drive-menu/extension.js:172
msgid "Thumbnail only" msgid "Open Files"
msgstr "Само миниатюри" msgstr "Отваряне на файлове"
#: extensions/alternate-tab/prefs.js:21 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Application icon only" msgid "Use more screen for windows"
msgstr "Само икони на приложенията" msgstr "Повече пространство за прозорците"
#: extensions/alternate-tab/prefs.js:22 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "Thumbnail and application icon" msgid ""
msgstr "Миниатюри и икони на приложенията" "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
#: extensions/alternate-tab/prefs.js:38 "This setting applies only with the natural placement strategy."
msgid "Present windows as" msgstr ""
msgstr "Показване на прозорците като" "Използване на по-голяма част от екрана за поставянето на мини изображения "
"чрез промяна на съотношението на страните и допълнително обединяване за "
#: extensions/alternate-tab/prefs.js:69 "смаляване на обхващащия ги правоъгълник. Тази настройка се прилага само при "
msgid "Show only windows in the current workspace" "естествената стратегия за поставяне на прозорците."
msgstr "Да се показват само прозорците на текущия работен плот"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
#: extensions/apps-menu/extension.js:41 msgid "Place window captions on top"
msgid "Activities Overview" msgstr "Заглавия на прозорците отгоре"
msgstr "Показване на програмите"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
#: extensions/apps-menu/extension.js:141 msgid ""
msgid "Favorites" "If true, place window captions on top the respective thumbnail, overriding "
msgstr "Любими" "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
#: extensions/apps-menu/extension.js:436 msgstr ""
msgid "Applications" "Ако е истина, заглавията на прозорците се поставят над мини изображенията "
msgstr "Програми" "им, а не както е стандартно — отдолу. За прилагане на промяната на "
"настройката трябва да рестартирате обвивката на GNOME."
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list" #: extensions/places-menu/extension.js:89
msgstr "Списък с програмите и работните плотове" #: extensions/places-menu/extension.js:92
msgid "Places"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7 msgstr "Места"
msgid ""
"A list of strings, each containing an application id (desktop file name), " #: extensions/places-menu/placeDisplay.js:46
"followed by a colon and the workspace number" #, javascript-format
msgstr "" msgid "Failed to launch “%s”"
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „." msgstr "Неуспешно стартиране на „%s“"
"desktop“ file name), следван от знака „:“ и номер на работен плот"
#: extensions/places-menu/placeDisplay.js:61
#: extensions/auto-move-windows/prefs.js:60 #, javascript-format
msgid "Application" msgid "Failed to mount volume for “%s”"
msgstr "Програма" msgstr "Неуспешно монтиране на тома „%s“"
#: extensions/auto-move-windows/prefs.js:69 #: extensions/places-menu/placeDisplay.js:148
#: extensions/auto-move-windows/prefs.js:127 #: extensions/places-menu/placeDisplay.js:171
msgid "Workspace" msgid "Computer"
msgstr "Работен плот" msgstr "Компютър"
#: extensions/auto-move-windows/prefs.js:85 #: extensions/places-menu/placeDisplay.js:359
msgid "Add Rule" msgid "Home"
msgstr "Добавяне на правило" msgstr "Домашна папка"
#: extensions/auto-move-windows/prefs.js:106 #: extensions/places-menu/placeDisplay.js:404
msgid "Create new matching rule" msgid "Browse Network"
msgstr "Създаване на правило за съвпадение" msgstr "Мрежа"
#: extensions/auto-move-windows/prefs.js:111 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Add" msgid "Cycle Screenshot Sizes"
msgstr "Добавяне" msgstr "Смяна на размерите на снимката на екрана"
#. TRANSLATORS: %s is the filesystem name #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#: extensions/drive-menu/extension.js:107 msgid "Cycle Screenshot Sizes Backward"
#, javascript-format msgstr "Смяна на размерите на снимката на екрана наобратно"
msgid "Ejecting drive “%s” failed:"
msgstr "Неуспешно изваждане на устройство „%s“:" #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
#: extensions/drive-menu/extension.js:125 msgstr "Име на темата"
msgid "Removable devices"
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"
#: extensions/drive-menu/extension.js:150 msgstr ""
msgid "Open Files" "Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“"
msgstr "Отваряне на файлове"
#: extensions/window-list/extension.js:98
#: extensions/example/extension.js:17 msgid "Close"
msgid "Hello, world!" msgstr "Затваряне"
msgstr "Здравей, свят!"
#: extensions/window-list/extension.js:118
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5 msgid "Unminimize"
msgid "Alternative greeting text." msgstr "Деминимизиране"
msgstr "Друго приветстващо съобщение."
#: extensions/window-list/extension.js:118
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6 msgid "Minimize"
msgid "" msgstr "Минимизиране"
"If not empty, it contains the text that will be shown when clicking on the "
"panel." #: extensions/window-list/extension.js:125
msgstr "" msgid "Unmaximize"
"Ако ключът не е празен, съдържанието му се извежда при натискането на панела." msgstr "Демаксимизиране"
#: extensions/example/prefs.js:30 #: extensions/window-list/extension.js:125
msgid "Message" msgid "Maximize"
msgstr "Съобщение" msgstr "Максимизиране"
#. TRANSLATORS: Example is the name of the extension, should not be #: extensions/window-list/extension.js:432
#. translated msgid "Minimize all"
#: extensions/example/prefs.js:43 msgstr "Минимизиране на всички"
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and " #: extensions/window-list/extension.js:438
"as such it has little functionality on its own.\n" msgid "Unminimize all"
"Nevertheless its possible to customize the greeting message." msgstr "Деминимизиране на всички"
msgstr ""
"Това е пример за добре работещо разширение на обвивката на GNOME и има " #: extensions/window-list/extension.js:444
"минимална функционалност.\n" msgid "Maximize all"
"С него можете да промените приветстващото съобщение на панела." msgstr "Максимизиране на всички"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/window-list/extension.js:452
msgid "Use more screen for windows" msgid "Unmaximize all"
msgstr "Повече пространство за прозорците" msgstr "Демаксимизиране на всички"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/window-list/extension.js:460
msgid "" msgid "Close all"
"Try to use more screen for placing window thumbnails by adapting to screen " msgstr "Затваряне на всички"
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." #: extensions/window-list/extension.js:737
msgstr "" msgid "Window List"
"Използване на по-голяма част от екрана за поставянето на мини изображения " msgstr "Списък на прозорците"
"чрез промяна на съотношението на страните и допълнително обединяване за "
"смаляване на обхващащия ги правоъгълник. Тази настройка се прилага само при " #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
"естествената стратегия за поставяне на прозорците." msgid "When to group windows"
msgstr "Кога прозорците да се групират"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgstr "Заглавия на прозорците отгоре" msgid ""
"Decides when to group windows from the same application on the window list. "
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 "Possible values are “never”, “auto” and “always”."
msgid "" msgstr ""
"If true, place window captions on top the respective thumbnail, overriding " "Кога прозорците на една програма да се групират в списъка с прозорците. "
"shell default of placing it at the bottom. Changing this setting requires " "Възможните стойности са „never“ (никога), „auto“ (автоматично) и "
"restarting the shell to have any effect." "„always“ (винаги)."
msgstr ""
"Ако е истина, заглавията на прозорците се поставят над мини изображенията " #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
"им, а не както е стандартно — отдолу. За прилагане на промяната на " #: extensions/window-list/prefs.js:100
"настройката трябва да рестартирате обвивката на GNOME." msgid "Show windows from all workspaces"
msgstr "Да се показват прозорците от всички работни плотове"
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Places" msgid "Whether to show windows from all workspaces or only the current one."
msgstr "Места" msgstr ""
"Дали да се показват прозорците от всички работни плотове или само от текущия."
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Failed to mount volume for “%s”" msgid "Show the window list on all monitors"
msgstr "Неуспешно монтиране на тома „%s“" msgstr "Извеждане на списъка с прозорци на всички монитори"
#: extensions/places-menu/placeDisplay.js:78 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
#, javascript-format msgid ""
msgid "Failed to launch “%s”" "Whether to show the window list on all connected monitors or only on the "
msgstr "Неуспешно стартиране на „%s“" "primary one."
msgstr ""
#: extensions/places-menu/placeDisplay.js:137 "Дали списъкът с прозорци да се извежда на всички монитори или само на "
#: extensions/places-menu/placeDisplay.js:160 "основния"
msgid "Computer"
msgstr "Компютър" #: extensions/window-list/prefs.js:29
msgid "Window Grouping"
#: extensions/places-menu/placeDisplay.js:303 msgstr "Групиране на прозорци"
msgid "Home"
msgstr "Домашна папка" #: extensions/window-list/prefs.js:58
msgid "Never group windows"
#: extensions/places-menu/placeDisplay.js:347 msgstr "Никога да не се групират"
msgid "Browse Network"
msgstr "Мрежа" #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 msgstr "Групиране при ограничено място"
msgid "Cycle Screenshot Sizes"
msgstr "Смяна на размерите на снимката на екрана" #: extensions/window-list/prefs.js:60
msgid "Always group windows"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 msgstr "Винаги да се групират"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Смяна на размерите на снимката на екрана наобратно" #: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 msgstr "На всички монитори"
msgid "Theme name"
msgstr "Име на темата" #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:255
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6 msgid "Workspace Indicator"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgstr "Индикатор на работните плотове"
msgstr ""
"Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“" #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
#: extensions/window-list/extension.js:110 msgstr "Имена на работните плотове"
msgid "Close"
msgstr "Затваряне" #: extensions/workspace-indicator/prefs.js:67
#, javascript-format
#: extensions/window-list/extension.js:129 msgid "Workspace %d"
msgid "Unminimize" msgstr "Работен плот %d"
msgstr "Деминимизиране"
#: extensions/workspace-indicator/prefs.js:208
#: extensions/window-list/extension.js:130 msgid "Add Workspace"
msgid "Minimize" msgstr "Добавяне на работен плот"
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"
+1 -1
View File
@@ -83,7 +83,7 @@ msgid ""
msgstr "" msgstr ""
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de " "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 finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-"
"les més per a reduir la capsa que les envolta. Aquest paràmetre de " "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 " "configuració només s'aplica a l'estratègia de posicionament de finestres "
"natural." "natural."
+56 -55
View File
@@ -4,36 +4,38 @@
# Ryan LORTIE <desrt@desrt.ca>, 2013. # Ryan LORTIE <desrt@desrt.ca>, 2013.
# Daniel PUENTES <blatberk@openmailbox.org>, 2015. # Daniel PUENTES <blatberk@openmailbox.org>, 2015.
# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011-2019. # Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011-2019.
# Carmen Bianca BAKKER <carmen@carmenbianca.eu>, 2021.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-03-31 07:16+0000\n" "POT-Creation-Date: 2021-03-27 20:14+0000\n"
"PO-Revision-Date: 2020-04-18 10:59+0200\n" "PO-Revision-Date: 2021-03-29 17:24+0200\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n" "Last-Translator: Carmen Bianca BAKKER <carmen@carmenbianca.eu>\n"
"Language-Team: Esperanto <gnome-eo-list@gnome.org>\n" "Language-Team: Esperanto <gnome-eo-list@gnome.org>\n"
"Language: eo\n" "Language: eo\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Poedit 2.3\n" "X-Generator: Gtranslator 3.38.0\n"
"X-Project-Style: gnome\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" msgid "GNOME Classic"
msgstr "GNOME-klasika" msgstr "GNOME-klasika"
#: data/gnome-classic.desktop.in:4 #: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Ĉi seanco ensalutas vin GNOME-klasiken" msgstr "Ĉi tiu seanco ensalutas vin GNOME-klasiken"
#: extensions/apps-menu/extension.js:113 #: extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
msgstr "Plej ŝatataj" msgstr "Plej ŝatataj"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:367
msgid "Applications" msgid "Applications"
msgstr "Aplikaĵoj" msgstr "Aplikaĵoj"
@@ -49,39 +51,26 @@ msgstr ""
"Listo de ĉenoj, ĉiu enhavas aplikaĵan identigilon ('desktop' dosiernomo), " "Listo de ĉenoj, ĉiu enhavas aplikaĵan identigilon ('desktop' dosiernomo), "
"sevkita per dupunkto kaj la laborspaca numero" "sevkita per dupunkto kaj la laborspaca numero"
#: extensions/auto-move-windows/prefs.js:59 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" msgid "Workspace Rules"
msgstr "Aplikaĵo" msgstr "Laborspacaj reguloj"
#: extensions/auto-move-windows/prefs.js:70 #: extensions/auto-move-windows/prefs.js:237
#: extensions/auto-move-windows/prefs.js:133
msgid "Workspace"
msgstr "Laborspaco"
#: extensions/auto-move-windows/prefs.js:88
msgid "Add Rule" msgid "Add Rule"
msgstr "Aldoni regulon" msgstr "Aldoni regulon"
#: extensions/auto-move-windows/prefs.js:110
msgid "Create new matching rule"
msgstr "Krei novan kongruantan regulon"
#: extensions/auto-move-windows/prefs.js:116
msgid "Add"
msgstr "Aldoni"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:103 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Elĵeto de volumo “%s” malsukcesis:" msgstr "Elĵeto de volumo “%s” malsukcesis:"
#: extensions/drive-menu/extension.js:119 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Demeteblaj aparatoj" msgstr "Demeteblaj aparatoj"
#: extensions/drive-menu/extension.js:146 #: extensions/drive-menu/extension.js:152
msgid "Open Files" msgid "Open Files"
msgstr "Malfermi dosierojn" msgstr "Malfermi dosierojn"
@@ -113,8 +102,8 @@ msgstr ""
"estas meti ĝin malsupre). Si vi ŝanĝas ĉi agordon tiam vi devas restartigi " "estas meti ĝin malsupre). Si vi ŝanĝas ĉi agordon tiam vi devas restartigi "
"la ŝelon." "la ŝelon."
#: extensions/places-menu/extension.js:80 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:84 #: extensions/places-menu/extension.js:92
msgid "Places" msgid "Places"
msgstr "Lokoj" msgstr "Lokoj"
@@ -163,37 +152,37 @@ msgstr "Fermi"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Neplejetigi" msgstr "Malminimumigi"
#: extensions/window-list/extension.js:118 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Plejetigi" msgstr "Minimumigi"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Nemaksimumigi" msgstr "Malmaksimumigi"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maksimumigi" msgstr "Maksimumigi"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Plejetigi ĉiujn" msgstr "Minimumigi ĉiujn"
#: extensions/window-list/extension.js:435 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Neplejetigi ĉiujn" msgstr "Malminimumigi ĉiujn"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Maksimumigi ĉiujn" msgstr "Maksimumigi ĉiujn"
#: extensions/window-list/extension.js:449 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Nemaksimumigi ĉiujn" msgstr "Malmaksimumigi ĉiujn"
#: extensions/window-list/extension.js:457 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Fermi ĉiujn" msgstr "Fermi ĉiujn"
@@ -214,7 +203,7 @@ msgstr ""
"Validaj valoroj estas “neniam”, “aŭtomate” kaj ĉiam”." "Validaj valoroj estas “neniam”, “aŭtomate” kaj ĉiam”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82 #: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Montri la fenestrojn de ĉiuj laborspacoj" msgstr "Montri la fenestrojn de ĉiuj laborspacoj"
@@ -233,44 +222,56 @@ msgid ""
msgstr "" msgstr ""
"Ĉu montri la fenestroliston en ĉiuj konektitaj ekranoj aŭ nur en la ĉefa." "Ĉu montri la fenestroliston en ĉiuj konektitaj ekranoj aŭ nur en la ĉefa."
#: extensions/window-list/prefs.js:25 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Fenestra grupigo" msgstr "Fenestra grupigo"
#: extensions/window-list/prefs.js:47 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Neniam grupigi fenestrojn" msgstr "Neniam grupigi fenestrojn"
#: extensions/window-list/prefs.js:48 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Grupigi fenestrojn kiam spaco limitas" msgstr "Grupigi fenestrojn kiam spaco limitas"
#: extensions/window-list/prefs.js:49 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Ĉiam grupigi fenestrojn" msgstr "Ĉiam grupigi fenestrojn"
#: extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Montri en ĉiuj ekranoj" msgstr "Montri en ĉiuj ekranoj"
#: extensions/window-list/workspaceIndicator.js:209 #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:215 #: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Laborspaco Indikilo" msgstr "Laborspaco Indikilo"
#: extensions/workspace-indicator/prefs.js:129 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Laborspacaj nomoj" msgstr "Laborspacaj nomoj"
#: extensions/workspace-indicator/prefs.js:149 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "Nomo"
#: extensions/workspace-indicator/prefs.js:189
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Laborspaco %d" msgstr "Laborspaco %d"
#: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace"
msgstr "Aldoni laborspacon"
#~ msgid "Application"
#~ msgstr "Aplikaĵo"
#~ msgid "Create new matching rule"
#~ msgstr "Krei novan kongruantan regulon"
#~ msgid "Add"
#~ msgstr "Aldoni"
#~ msgid "Name"
#~ msgstr "Nomo"
#~ msgid "Activities Overview" #~ msgid "Activities Overview"
#~ msgstr "Aktivecoj-Superrigardon" #~ msgstr "Aktivecoj-Superrigardon"
+19 -15
View File
@@ -12,20 +12,20 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n" "POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2020-08-16 18:17+0300\n" "PO-Revision-Date: 2021-03-15 21:32+0200\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n" "Last-Translator: JR-Fi <starman@starman.fi>\n"
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n" "Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
"Language: fi\n" "Language: fi\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.4.1\n" "X-Generator: Poedit 2.0.6\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n" "X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "Perinteinen Gnome" msgstr "Perinteinen Gnome"
@@ -50,6 +50,8 @@ msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
msgstr "" 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:35
msgid "Workspace Rules" msgid "Workspace Rules"
@@ -84,6 +86,9 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Yritä käyttää enemmän näyttötilaa laittamalla ikkunoiden pikkukuvat "
"huomioiden näyttösuhteen ja lähentämällä niitä vähentämällä rajaavaa "
"laatikkoa. Tämä asetus toimii vain luonnollisen asettelutavan kanssa."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
@@ -127,15 +132,14 @@ msgstr "Koti"
msgid "Browse Network" msgid "Browse Network"
msgstr "Selaa verkkoa" msgstr "Selaa verkkoa"
# Konteksti muutui hieman, kun tälle ilmaantui pari, jossa suunta on taaksepäin
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes" msgid "Cycle Screenshot Sizes"
msgstr "Vaihtele kuvakaappausten kokojen välillä" msgstr "Vaihda kuvakaappausten kokojen välillä"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#, fuzzy
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Vaihtele kuvakaappausten kokojen välillä" msgstr "Vaihda kuvakaappausten kokojen välillä taaksepäin"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name" msgid "Theme name"
@@ -165,27 +169,27 @@ msgstr "Palauta suurennus"
msgid "Maximize" msgid "Maximize"
msgstr "Suurenna" msgstr "Suurenna"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Pienennä kaikki" msgstr "Pienennä kaikki"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Palauta kaikkien koko" msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Suurenna kaikki" msgstr "Suurenna kaikki"
#: extensions/window-list/extension.js:448 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Palauta kaikkien koko" msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:456 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Sulje kaikki" msgstr "Sulje kaikki"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:738
msgid "Window List" msgid "Window List"
msgstr "Ikkunaluettelo" msgstr "Ikkunaluettelo"
+30 -30
View File
@@ -8,23 +8,23 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n" "POT-Creation-Date: 2020-10-08 21:24+0000\n"
"PO-Revision-Date: 2020-07-12 18:10+0200\n" "PO-Revision-Date: 2020-10-17 22:14+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n" "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n" "Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n" "Language: fur\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3.1\n" "X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 #: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Cheste session a si invie cun GNOME classic" msgstr "Cheste session ti fâs jentrâ in GNOME Classic"
#: extensions/apps-menu/extension.js:113 #: extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
@@ -43,8 +43,8 @@ msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
msgstr "" msgstr ""
"Une liste di stringhis, ogniune a ten il ID di une aplicazion (non dal file ." "Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ."
"desktop), seguît di doi ponts e il numar dal spazi di lavôr" "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:35
msgid "Workspace Rules" msgid "Workspace Rules"
@@ -63,15 +63,15 @@ msgstr "No si è rivâts a parâ fûr la unitât “%s”»:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Argagn rimovibil" msgstr "Dispositîfs estraibii"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Vierç i file" msgstr "Vierç i files"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Dopre plui spazi par i balcons" msgstr "Dopre plui schermi pai barcons"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "" msgid ""
@@ -79,14 +79,14 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Cîr di doprâ plui puest par plaçâ lis miniaturis dai balcons, adatânsi al " "Cîr di doprâ plui schermi par plaçâ lis miniaturis dai barcons, adatant il "
"rapuart di aspiet dal visôr e consolidanlis ancjemo di plui par ridusi il " "rapuart di aspiet dal visôr e consolidant ancjemo di plui lis miniaturis par "
"spazi complessîf. Cheste impostazion a si apliche dome se l'algoritmo di " "ridusi il spazi complessîf. Cheste impostazion si apliche dome se "
"posizionament al è \"natural\"." "l'algoritmi di plaçament al è naturâl."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "Met il titul dal balcon insomp" msgstr "Met il titul dal barcon parsore"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
@@ -94,9 +94,9 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"Se VÊR, al place i titui dai balcons insomp as relativis miniaturis, lant in " "Se VÊR, al place i titui dai barcons denant des relativis miniaturis, "
"volte al compuartament normâl de shell, che lis place in bas.Cambiant cheste " "sorpassant il compuartament predefinît de shell, che lis place in bas. "
"impostazion a si scugne tornâ a inviâ la shell." "Cambiant cheste impostazion si scugne tornâ a inviâ la shell."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:93
@@ -120,7 +120,7 @@ msgstr "Computer"
#: extensions/places-menu/placeDisplay.js:359 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Cjase" msgstr "Home"
#: extensions/places-menu/placeDisplay.js:404 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
@@ -128,11 +128,11 @@ msgstr "Esplore rêt"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes" msgid "Cycle Screenshot Sizes"
msgstr "Dimensions caturis di schermi ciclichis" msgstr "Dimensions videadis catuardis ciclichis"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Dimensions caturis di schermi ciclichis indaûr" msgstr "Dimensions videadis caturadis ciclichis indaûr"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name" msgid "Theme name"
@@ -184,19 +184,19 @@ msgstr "Siere ducj"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Liste balcons" msgstr "Liste barcons"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows" msgid "When to group windows"
msgstr "Quant ingru i balcons" msgstr "Cuant meti in grup i barcons"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"Al decît cuant intropâ i balcons de stesse aplicazion su le liste dai " "Al decît cuant meti dongje i barcons de stesse aplicazion su la liste dai "
"balcons. I pussibii valôrs a son “never”, “auto” e “always”." "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/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:100
@@ -218,23 +218,23 @@ msgid ""
"primary one." "primary one."
msgstr "" msgstr ""
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul " "Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
"principâl." "chel principâl."
#: extensions/window-list/prefs.js:29 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Ingrumament balcons" msgstr "Intropament di barcons"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "No ingru i balcons" msgstr "No sta meti mai in grup i barcons"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Ingrume i balcons quanche al'è pôc puest" msgstr "Met dongje i barcons cuant che il spazi al è limitât"
#: extensions/window-list/prefs.js:60 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Ingrume simpri i balcons" msgstr "Met simpri in grup i barcons"
#: extensions/window-list/prefs.js:94 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
+23 -24
View File
@@ -1,29 +1,29 @@
# Galician translation for gnome-shell-extensions. # Galician translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package. # 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.
# #
# Fran Diéguez <frandieguez@gnome.org>, 2011.
# Fran Dieguez <frandieguez@gnome.org>, 2011-2020, 2021.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"issues\n" "sues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n" "POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2020-08-13 01:02+0200\n" "PO-Revision-Date: 2021-02-24 20:41+0100\n"
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n" "Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n" "Language-Team: Proxecto Trasno <proxecto@trasno.gal>\n"
"Language: gl\n" "Language: gl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 3.36.0\n" "X-Generator: Gtranslator 3.38.0\n"
"X-Project-Style: gnome\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" msgid "GNOME Classic"
msgstr "GNOME clasico" msgstr "GNOME clásico"
#: data/gnome-classic.desktop.in:4 #: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
@@ -50,7 +50,6 @@ msgstr ""
"de ficheiro desktop), seguido por unha coma e o número do espazo de traballo" "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:35
#| msgid "Workspace Names"
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Regras da área de traballo" msgstr "Regras da área de traballo"
@@ -75,7 +74,7 @@ msgstr "Abrir ficheiros"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Usar máis pantalla para as xanelas" msgstr "Usar mais pantalla para as xanelas"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "" msgid ""
@@ -83,13 +82,14 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Tente usar máis 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 saltante. " " "
"Esta configuración aplícase só para a estratexia de disposición natural." "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."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "Pór a xanela sempre na parte superior" msgstr "Por a xanela sempre na parte superior"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
@@ -165,27 +165,27 @@ msgstr "Restaurar"
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizar todo" msgstr "Minimizar todo"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Restaurar todo" msgstr "Restaurar todo"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizar todo" msgstr "Maximizar todo"
#: extensions/window-list/extension.js:448 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Restaurar todo" msgstr "Restaurar todo"
#: extensions/window-list/extension.js:456 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Pechar todo" msgstr "Pechar todo"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:738
msgid "Window List" msgid "Window List"
msgstr "Lista de xanelas" msgstr "Lista de xanelas"
@@ -259,7 +259,6 @@ msgid "Workspace %d"
msgstr "Espazos de traballo %d" msgstr "Espazos de traballo %d"
#: extensions/workspace-indicator/prefs.js:218 #: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Engadir área de traballo" msgstr "Engadir área de traballo"
+20 -20
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n" "POT-Creation-Date: 2021-07-19 15:59+0000\n"
"PO-Revision-Date: 2020-08-20 00:38+0200\n" "PO-Revision-Date: 2021-09-23 16:37+0200\n"
"Last-Translator: gogo <linux.hr@protonmail.com>\n" "Last-Translator: gogo <linux.hr@protonmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n" "Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n" "Language: hr\n"
@@ -18,9 +18,9 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.4.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" msgid "GNOME Classic"
msgstr "GNOME klasičan" msgstr "GNOME klasičan"
@@ -32,7 +32,7 @@ msgstr "Ova sesija vas prijavljuje u klasičan GNOME"
msgid "Favorites" msgid "Favorites"
msgstr "Omiljeni" msgstr "Omiljeni"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:367
msgid "Applications" msgid "Applications"
msgstr "Aplikacije" msgstr "Aplikacije"
@@ -52,22 +52,22 @@ msgstr ""
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Pravila radnog prostora" msgstr "Pravila radnog prostora"
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule" msgid "Add Rule"
msgstr "Dodaj pravilo" msgstr "Dodaj pravilo"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:134
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Izbacivanje uređaja “%s” neuspjelo:" msgstr "Izbacivanje uređaja “%s” neuspjelo:"
#: extensions/drive-menu/extension.js:128 #: extensions/drive-menu/extension.js:150
msgid "Removable devices" msgid "Removable devices"
msgstr "Prijenosni uređaji" msgstr "Prijenosni uređaji"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:172
msgid "Open Files" msgid "Open Files"
msgstr "Otvori datoteku" msgstr "Otvori datoteku"
@@ -101,7 +101,7 @@ msgstr ""
"ponovno pokretanje ljuske kako bi se primijenila." "ponovno pokretanje ljuske kako bi se primijenila."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:92
msgid "Places" msgid "Places"
msgstr "Lokacije" msgstr "Lokacije"
@@ -164,27 +164,27 @@ msgstr "Prikaži u prozoru"
msgid "Maximize" msgid "Maximize"
msgstr "Uvećaj" msgstr "Uvećaj"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Smanji sve" msgstr "Smanji sve"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Vrati sve" msgstr "Vrati sve"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Uvećaj sve" msgstr "Uvećaj sve"
#: extensions/window-list/extension.js:448 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Prikaži u prozoru sve" msgstr "Prikaži u prozoru sve"
#: extensions/window-list/extension.js:456 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Zatvori sve" msgstr "Zatvori sve"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "Popis prozora" msgstr "Popis prozora"
@@ -228,7 +228,7 @@ msgstr "Grupiranje prozora"
#: extensions/window-list/prefs.js:58 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Nikada grupiraj prozore" msgstr "Ne grupiraj prozore"
#: extensions/window-list/prefs.js:59 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
@@ -242,8 +242,8 @@ msgstr "Uvijek grupiraj prozore"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Prikaži na svim zaslonima" msgstr "Prikaži na svim zaslonima"
#: extensions/window-list/workspaceIndicator.js:207 #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:213 #: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indikator radnog prostora" msgstr "Indikator radnog prostora"
@@ -256,7 +256,7 @@ msgstr "Nazivi radnih prostora"
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Radni prostor %d" msgstr "Radni prostor %d"
#: extensions/workspace-indicator/prefs.js:218 #: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Dodaj radni prostor" msgstr "Dodaj radni prostor"
+157 -174
View File
@@ -1,14 +1,14 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package. # 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 "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"shell&keywords=I18N+L10N&component=extensions\n" "sues\n"
"POT-Creation-Date: 2017-08-11 01:33+0000\n" "POT-Creation-Date: 2021-07-19 15:59+0000\n"
"PO-Revision-Date: 2017-09-08 06:07+0000\n" "PO-Revision-Date: 2021-09-29 07:48+0000\n"
"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\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.net>\n"
"Language: is\n" "Language: is\n"
@@ -16,9 +16,9 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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" msgid "GNOME Classic"
msgstr "GNOME Klassík" msgstr "GNOME Klassík"
@@ -26,74 +26,11 @@ msgstr "GNOME Klassík"
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Þessi seta skráir þig inn í klassískt GNOME" msgstr "Þessi seta skráir þig inn í klassískt GNOME"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 #: extensions/apps-menu/extension.js:113
msgid "Attach modal dialog to the parent window"
msgstr "Festa kvaðningarglugga við yfirglugga"
#: 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/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
msgid "Favorites" msgid "Favorites"
msgstr "Eftirlæti" msgstr "Eftirlæti"
#: extensions/apps-menu/extension.js:436 #: extensions/apps-menu/extension.js:367
msgid "Applications" msgid "Applications"
msgstr "Forrit" msgstr "Forrit"
@@ -109,75 +46,30 @@ msgstr ""
"Listi yfir textastrengi, þar sem hver þeirra inniheldur forritsauðkenni " "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" "(heiti skjáborðsskrár) að viðbættum tvípunkti og svo númeri vinnusvæðis"
#: extensions/auto-move-windows/prefs.js:60 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" #| msgid "Workspace Names"
msgstr "Forrit" msgid "Workspace Rules"
msgstr "Vinnusvæðareglur"
#: extensions/auto-move-windows/prefs.js:69 #: extensions/auto-move-windows/prefs.js:237
#: extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Vinnusvæði"
#: extensions/auto-move-windows/prefs.js:85
msgid "Add Rule" msgid "Add Rule"
msgstr "Bæta við reglu" 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 #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107 #: extensions/drive-menu/extension.js:134
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Útspýting drifsins '%s' mistókst:" msgstr "Útspýting drifsins '%s' mistókst:"
#: extensions/drive-menu/extension.js:125 #: extensions/drive-menu/extension.js:150
msgid "Removable devices" msgid "Removable devices"
msgstr "Útskiptanleg tæki" msgstr "Útskiptanleg tæki"
#: extensions/drive-menu/extension.js:150 #: extensions/drive-menu/extension.js:172
#| msgid "Open File"
msgid "Open Files" msgid "Open Files"
msgstr "Opna skrár" 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 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Nota meira af skjánum fyrir glugga" msgstr "Nota meira af skjánum fyrir glugga"
@@ -189,9 +81,9 @@ msgid ""
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Reyndu að nota meira af skjánum undir gluggatákn með aðlögun að " "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ð " "stærðarhlutföllum skjásins og að þjappa þeim enn frekar til að minnka "
"þeirra. " "umgjörð þeirra. Þessi stilling gildir einungis með stefnu um eðlilegar "
"Þessi stilling gildir einungis með stefnu um eðlilegar staðsetningar." "staðsetningar."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
@@ -207,32 +99,31 @@ msgstr ""
"öfugt við það sem sjálfgefið er í skelinni sem setur þær neðst. Breytingar á " "ö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." "þ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:89
#: extensions/places-menu/extension.js:81 #: extensions/places-menu/extension.js:92
msgid "Places" msgid "Places"
msgstr "Staðir" 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 #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Gat ekki tengt gagnageymslu fyrir “%s”" msgstr "Gat ekki tengt gagnageymslu fyrir “%s”"
#: extensions/places-menu/placeDisplay.js:78 #: extensions/places-menu/placeDisplay.js:148
#, javascript-format #: extensions/places-menu/placeDisplay.js:171
#| 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
msgid "Computer" msgid "Computer"
msgstr "Tölva" msgstr "Tölva"
#: extensions/places-menu/placeDisplay.js:303 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Heim" msgstr "Heim"
#: extensions/places-menu/placeDisplay.js:347 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Flakka um net" msgstr "Flakka um net"
@@ -241,7 +132,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Fletta í gegnum skjámyndastærðir" msgstr "Fletta í gegnum skjámyndastærðir"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Fletta afturábak í gegnum skjámyndastærðir" msgstr "Fletta afturábak í gegnum skjámyndastærðir"
@@ -253,52 +143,47 @@ msgstr "Heiti þema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" msgstr "Heiti á þema, hlaðið inn frá ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Loka" msgstr "Loka"
#: extensions/window-list/extension.js:129 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Endurheimta" msgstr "Endurheimta"
#: extensions/window-list/extension.js:130 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Lágmarka" msgstr "Lágmarka"
#: extensions/window-list/extension.js:136 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Minnka glugga" msgstr "Minnka glugga"
#: extensions/window-list/extension.js:137 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Hámarka" msgstr "Hámarka"
#: extensions/window-list/extension.js:420 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Lágmarka allt" msgstr "Lágmarka allt"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Endurheimta allt" msgstr "Endurheimta allt"
#: extensions/window-list/extension.js:436 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Hámarka allt" msgstr "Hámarka allt"
#: extensions/window-list/extension.js:445 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Minnka allt" msgstr "Minnka allt"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Loka öllu" msgstr "Loka öllu"
#: extensions/window-list/extension.js:678 #: extensions/window-list/extension.js:737
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Vinnusvæðavísir"
#: extensions/window-list/extension.js:842
msgid "Window List" msgid "Window List"
msgstr "Gluggalisti" msgstr "Gluggalisti"
@@ -307,9 +192,6 @@ msgid "When to group windows"
msgstr "Hvenær á að hópa glugga" msgstr "Hvenær á að hópa glugga"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: 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 "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
@@ -318,49 +200,150 @@ msgstr ""
"Möguleg gildi eru „aldrei‟, „sjálfvirkt‟ og „alltaf‟." "Möguleg gildi eru „aldrei‟, „sjálfvirkt‟ og „alltaf‟."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#| msgid "Show only windows in the current workspace"
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 the window list on all connected monitors or only on the "
#| "primary one."
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" msgid "Show the window list on all monitors"
msgstr "Sýna gluggalistann á öllum skjám" 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 "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
msgstr "" msgstr ""
"Hvort birta eigi gluggalistann á öllum tengdum skjám eða einungis á aðalskjá." "Hvort birta eigi gluggalistann á öllum tengdum skjám eða einungis á aðalskjá."
#: extensions/window-list/prefs.js:32 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Hópun glugga" msgstr "Hópun glugga"
#: extensions/window-list/prefs.js:50 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Aldrei hópa glugga" msgstr "Aldrei hópa glugga"
#: extensions/window-list/prefs.js:51 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Hópa glugga þegar pláss er takmarkað" msgstr "Hópa glugga þegar pláss er takmarkað"
#: extensions/window-list/prefs.js:52 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Alltaf hópa glugga" msgstr "Alltaf hópa glugga"
#: extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Birta á öllum skjám" msgstr "Birta á öllum skjám"
#: extensions/workspace-indicator/prefs.js:141 #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator"
msgstr "Vinnusvæðavísir"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Vinnusvæðaheiti" msgstr "Vinnusvæðaheiti"
#: extensions/workspace-indicator/prefs.js:157 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "Heiti"
#: extensions/workspace-indicator/prefs.js:198
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Vinnusvæði %d" msgstr "Vinnusvæði %d"
#: extensions/workspace-indicator/prefs.js:208
#| msgid "Workspace"
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" #~ msgid "CPU"
#~ msgstr "Örgjörvi" #~ msgstr "Örgjörvi"
+172 -188
View File
@@ -6,320 +6,304 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extension gnome 3.14\n" "Project-Id-Version: gnome-shell-extension gnome 3.14\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"shell&keywords=I18N+L10N&component=extensions\n" "issues\n"
"POT-Creation-Date: 2014-09-09 10:57+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2014-09-14 21:52+0400\n" "PO-Revision-Date: 2021-05-01 11:32+0545\n"
"Last-Translator: Pawan Chitrakar <chautari@gmail.com>\n" "Last-Translator: Pawan Chitrakar <chautari@gmail.com>\n"
"Language-Team: Nepali Translation Team <chautari@gmail.com>\n" "Language-Team: Nepali Translation Team <chautari@gmail.com>\n"
"Language: ne\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.9\n" "X-Generator: Poedit 2.4.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"Language: ne\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
#: ../data/gnome-classic.desktop.in.h:1 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "जिनोम क्लासिक" msgstr "जिनोम क्लासिक"
#: ../data/gnome-classic.desktop.in.h:2 #: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "यो सेसन जिनोम क्लासिकमा लगईन हुन्छ" msgstr "यो सेसन जिनोम क्लासिकमा लगईन हुन्छ"
#: ../data/gnome-shell-classic.desktop.in.in.h:1 #: extensions/apps-menu/extension.js:113
msgid "GNOME Shell Classic"
msgstr "जिनोम शेल क्लासिक"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "सञ्झ्याल प्रबन्ध र अनुप्रयोग सुरुआत "
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
#, fuzzy
msgid "Arrangement of buttons on the titlebar"
msgstr "टाँकहरू"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:6
msgid "Workspaces only on primary monitor"
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:7
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:39
msgid "Activities Overview"
msgstr ""
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
msgstr "मनपर्ने" msgstr "मनपर्ने"
#: ../extensions/apps-menu/extension.js:282 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "अनुप्रयोग" msgstr "अनुप्रयोग"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list" msgid "Application and workspace list"
msgstr "अनुप्रयोग र कार्यस्थल सूची" msgstr "अनुप्रयोग र कार्यस्थल सूची"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid "" msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
msgstr "" msgstr ""
"स्ट्रिङहरूको सूची, प्रत्येकमा अनुप्रयोग आईडी (डेस्कटप फाइल नाम) समाविष्ट छ, त्यसपछि "
"विराम र कार्यस्थान नम्बरद्वारा अनुगमन गरियो"
#: ../extensions/auto-move-windows/prefs.js:60 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" msgid "Workspace Rules"
msgstr "अनुप्रयोग" msgstr "कार्यस्थान नियम"
#: ../extensions/auto-move-windows/prefs.js:69 #: extensions/auto-move-windows/prefs.js:243
#: ../extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "कार्यस्थल"
#: ../extensions/auto-move-windows/prefs.js:85
msgid "Add Rule" msgid "Add Rule"
msgstr "नियम थप्नुहोस्" msgstr "नियम थप्नुहोस्"
#: ../extensions/auto-move-windows/prefs.js:106 #. TRANSLATORS: %s is the filesystem name
msgid "Create new matching rule" #: extensions/drive-menu/extension.js:112
msgstr "मिल्ने नियम सिर्जना गर्नुहोस्" #: extensions/places-menu/placeDisplay.js:233
#: ../extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "थप्नुहोस्..."
#: ../extensions/drive-menu/extension.js:106
#, javascript-format #, javascript-format
msgid "Ejecting drive '%s' failed:" msgid "Ejecting drive %s failed:"
msgstr "" msgstr "\"%s\" ड्राइभ निकाल्न असफल भयो:"
#: ../extensions/drive-menu/extension.js:123 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "छुट्याउन मिल्ने यन्त्र" msgstr "छुट्याउन मिल्ने यन्त्र"
#: ../extensions/drive-menu/extension.js:150 #: extensions/drive-menu/extension.js:155
msgid "Open File" msgid "Open Files"
msgstr "फाइल खोल्नुहोस्" msgstr "खुला फाइल"
#: ../extensions/example/extension.js:17 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Hello, world!"
msgstr "हेलो विश्व"
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
#, fuzzy
msgid "Alternative greeting text."
msgstr "युआरएल (URL) %s हो, वैकल्पिक पाठ %s हो ।"
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
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 "सन्देश"
#: ../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 it's possible to customize the greeting message."
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "" msgstr "सञ्झ्यालका लागि बढी पर्दा प्रयोग गर्नुहोस्"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"सञ्झ्याल थम्बनेलहरू पर्दा आकार अनुपातमा अनुकूल गरेर राख्नका लागि धेरै पर्दा प्रयोग गर्न "
"प्रयास गर्नुहोस्, र तिनीहरूलाई बाउन्डिङ बाकस घटाउन अझ संगठित गर्नुहोस् । यो तरिका "
"प्राकृतिक प्लेसमेन्ट रणनीतिमा मात्र लागू हुन्छ।"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
#, fuzzy
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "_सन्झ्यालको सिरान" msgstr "सञ्झ्याल क्याप्सन माथि राख्नुहोस्"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
"If true, place window captions on top the respective thumbnail, overriding " "If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"ठीक भएमा, सम्बन्धित थम्बनेलको माथि सञ्झ्याल क्याप्सन राख्नुहोस्, यसलाई तल राख्ने "
"पूर्वनिर्धारित शेल अधिलेखन गर्नुहोस् । यो सेटिङ परिवर्तन गर्न कुनै प्रभाव पार्न शेल पुन: "
"सुरुआत गर्नु आवश्यक हुन्छ ।"
#: ../extensions/places-menu/extension.js:78 #: extensions/places-menu/extension.js:89
#: ../extensions/places-menu/extension.js:81 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "ठाउँहरू" msgstr "ठाउँहरू"
#: ../extensions/places-menu/placeDisplay.js:57 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
msgid "Failed to launch \"%s\"" msgid "Failed to launch “%s”"
msgstr "%s सुरु गर्न असफल" msgstr "%s सुरु गर्न असफल"
#: ../extensions/places-menu/placeDisplay.js:99 #: extensions/places-menu/placeDisplay.js:61
#: ../extensions/places-menu/placeDisplay.js:122 #, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "\"%s\" का लागि भोल्युम माउन्ट गर्न असफल"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer" msgid "Computer"
msgstr "कम्प्युटर" msgstr "कम्प्युटर"
#: ../extensions/places-menu/placeDisplay.js:200 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "गृह" msgstr "गृह"
#: ../extensions/places-menu/placeDisplay.js:287 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "सञ्जाल ब्राउज गर्नुहोस्" msgstr "सञ्जाल ब्राउज गर्नुहोस्"
#: ../extensions/systemMonitor/extension.js:214 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "CPU" msgid "Cycle Screenshot Sizes"
msgstr "सीपीयू (CPU)" msgstr "स्क्रिनसट साइज चक्र"
#: ../extensions/systemMonitor/extension.js:267 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Memory" msgid "Cycle Screenshot Sizes Backward"
msgstr "स्मृति" msgstr "स्क्रिनसट साइज उल्तो चक्र"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1 #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name" msgid "Theme name"
msgstr "सारभूत नाम" msgstr "सारभूत नाम"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2 #: 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" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "" msgstr "~/.themes/name/gnome-shell बाट लोड गरिनुपर्ने विषयवस्तुको नाम"
#: ../extensions/window-list/extension.js:110 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "बन्द" msgstr "बन्द"
#: ../extensions/window-list/extension.js:120 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "" msgstr "न्यूनतम नबनाउनुहोस्"
#: ../extensions/window-list/extension.js:121 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "सानो बनाउनुहोस्" msgstr "सानो बनाउनुहोस्"
#: ../extensions/window-list/extension.js:127 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "" msgstr "अघिकतम नबनाउनुहोस्"
#: ../extensions/window-list/extension.js:128 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "ठूलो बनाउनुहोस्" msgstr "ठूलो बनाउनुहोस्"
#: ../extensions/window-list/extension.js:300 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "सबै सानो बनाउनुहोस्" msgstr "सबै सानो बनाउनुहोस्"
#: ../extensions/window-list/extension.js:308 #: extensions/window-list/extension.js:434
#, fuzzy
msgid "Unminimize all" msgid "Unminimize all"
msgstr "सबै" msgstr "सबै न्यूनतम नबनाउनुहोस्"
#: ../extensions/window-list/extension.js:316 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "सबै ठूलो बनाउनुहोस्" msgstr "सबै ठूलो बनाउनुहोस्"
#: ../extensions/window-list/extension.js:325 #: extensions/window-list/extension.js:448
#, fuzzy
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "सबै" msgstr "सबैलाई अघिकतम नबनाउनुहोस्"
#: ../extensions/window-list/extension.js:334 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "सबै बन्द गर्नुहोस्" msgstr "सबै बन्द गर्नुहोस्"
#: ../extensions/window-list/extension.js:644 #: extensions/window-list/extension.js:734
#: ../extensions/workspace-indicator/extension.js:30
#, fuzzy
msgid "Workspace Indicator"
msgstr "कार्यस्थल"
#: ../extensions/window-list/extension.js:808
msgid "Window List" msgid "Window List"
msgstr "सञ्झ्याल सूची" msgstr "सञ्झ्याल सूची"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows" msgid "When to group windows"
msgstr "कहिले सञ्झ्याल समुहबध्द गर्ने" msgstr "कहिले सञ्झ्याल समुहबध्द गर्ने"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are \"never\", \"auto\" and \"always\"." "Possible values are never”, “auto and always."
msgstr "" msgstr ""
"सञ्झ्याल सूचीमा उस्तै अनुप्रयोगबाट कहिले समूह बनाउने निर्णय गर्दछ । सम्भावित मान \"कहिले "
"पनि\", \"स्वचालित\" र \"सधैँ\" हुन् ।"
#: ../extensions/window-list/prefs.js:30 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
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:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "समूहबद्ध सञ्झ्याल" msgstr "समूहबद्ध सञ्झ्याल"
#: ../extensions/window-list/prefs.js:49 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "सञ्झ्याल समुहबध्द नगर्ने" msgstr "सञ्झ्याल समुहबध्द नगर्ने"
#: ../extensions/window-list/prefs.js:50 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "" msgstr "खाली स्थान सिमित भएको बेलामा सञ्झ्यालहरू समूह गर्नुहोस्"
#: ../extensions/window-list/prefs.js:51 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "सञ्झ्याल सधैँ समुहबध्द गर्ने" msgstr "सञ्झ्याल सधैँ समुहबध्द गर्ने"
#: ../extensions/workspace-indicator/prefs.js:141 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "सबै मोनिटरमा देखाउनुहोस्"
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "कार्यस्थान सूचक"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "कार्यस्थल नाम" msgstr "कार्यस्थल नाम"
#: ../extensions/workspace-indicator/prefs.js:157 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "नाम: "
#: ../extensions/workspace-indicator/prefs.js:198
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "कार्यस्थल %d" msgstr "कार्यस्थल %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "कार्यस्थल थप्नुहोस्"
#~ msgid "GNOME Shell Classic"
#~ msgstr "जिनोम शेल क्लासिक"
#~ msgid "Window management and application launching"
#~ msgstr "सञ्झ्याल प्रबन्ध र अनुप्रयोग सुरुआत "
#, fuzzy
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "टाँकहरू"
#~ msgid "Thumbnail only"
#~ msgstr "थम्बनेल प्रतिमा मात्रै"
#~ msgid "Application icon only"
#~ msgstr "अनुप्रयोग प्रतिमा मात्रै"
#~ msgid "Thumbnail and application icon"
#~ msgstr "थम्बनेल प्रतिमा र अनुप्रयोग प्रतिमा"
#~ msgid "Present windows as"
#~ msgstr "हालको सञ्झ्याल"
#~ msgid "Application"
#~ msgstr "अनुप्रयोग"
#~ msgid "Create new matching rule"
#~ msgstr "मिल्ने नियम सिर्जना गर्नुहोस्"
#~ msgid "Add"
#~ msgstr "थप्नुहोस्..."
#~ msgid "Hello, world!"
#~ msgstr "हेलो विश्व"
#, fuzzy
#~ msgid "Alternative greeting text."
#~ msgstr "युआरएल (URL) %s हो, वैकल्पिक पाठ %s हो ।"
#~ msgid "Message"
#~ msgstr "सन्देश"
#~ msgid "CPU"
#~ msgstr "सीपीयू (CPU)"
#~ msgid "Memory"
#~ msgstr "स्मृति"
#~ msgid "Name"
#~ msgstr "नाम: "
+175 -177
View File
@@ -6,105 +6,41 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"shell&keywords=I18N+L10N&component=extensions\n" "issues\n"
"POT-Creation-Date: 2016-05-09 19:09+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2016-05-08 18:59+0200\n" "PO-Revision-Date: 2021-05-10 22:04+0200\n"
"Last-Translator: Cédric Valmary (totenoc.eu) <cvalmary@yahoo.fr>\n" "Last-Translator: Quentin PAGÈS\n"
"Language-Team: Tot En Òc\n" "Language-Team: Tot En Òc\n"
"Language: oc\n" "Language: oc\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Virtaal 0.7.1\n" "X-Generator: Poedit 2.4.3\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: ../data/gnome-classic.desktop.in.h:1 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
#: ../data/gnome-classic.desktop.in.h:2 #: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Aquesta session vos connècta a GNOME Classic" msgstr "Aquesta session vos connècta a GNOME Classic"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1 #: extensions/apps-menu/extension.js:113
msgid "Attach modal dialog to the parent window"
msgstr "Estacar las bóstias de dialòg modalas a lor fenèstra parenta"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Aquesta clau remplaça la clau dins org.gnome.mutter quand GNOME Shell es en "
"cors d'execucion."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Arrangement of buttons on the titlebar"
msgstr "òrdre dels botons dins la barra de títol"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Aquesta clau remplaça la clau dins org.gnome.desktop.wm.preferences quand "
"GNOME Shell es en cors d'execucion."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Activar la disposicion verticala quand las fenèstras son depausadas als "
"bòrds de l'ecran"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:6
msgid "Workspaces only on primary monitor"
msgstr "Espacis de trabalh unicament sus l'ecran principal"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:7
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Retardar los cambiaments de focus en mòde mirga fins al moment que lo "
"puntador arrèsta de bolegar"
#: ../extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Vinheta solament"
#: ../extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Icòna d'aplicacion solament"
#: ../extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Vinheta e icòna d'aplicacion"
#: ../extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Presentar la fenèstra coma"
#: ../extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Afichar pas las fenèstras que sus l'espaci de trabalh actual"
#: ../extensions/apps-menu/extension.js:38
msgid "Activities Overview"
msgstr "Vista d'ensemble de las activitats"
#: ../extensions/apps-menu/extension.js:109
msgid "Favorites" msgid "Favorites"
msgstr "Favorits" msgstr "Favorits"
#: ../extensions/apps-menu/extension.js:266 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplicacions" msgstr "Aplicacions"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list" msgid "Application and workspace list"
msgstr "Lista d'aplicacions e d'espacis de trabalh" msgstr "Lista d'aplicacions e d'espacis de trabalh"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid "" msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
@@ -113,76 +49,34 @@ msgstr ""
"d'aplicacion (nom de fichièr desktop), seguit per un dos-punts e lo numèro " "d'aplicacion (nom de fichièr desktop), seguit per un dos-punts e lo numèro "
"de l'espaci de trabalh" "de l'espaci de trabalh"
#: ../extensions/auto-move-windows/prefs.js:60 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" msgid "Workspace Rules"
msgstr "Aplicacion" msgstr "Règlas dels espacis de trabalh"
#: ../extensions/auto-move-windows/prefs.js:69 #: extensions/auto-move-windows/prefs.js:243
#: ../extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Espaci de trabalh"
#: ../extensions/auto-move-windows/prefs.js:85
msgid "Add Rule" msgid "Add Rule"
msgstr "Apondre una règla" msgstr "Apondre una règla"
#: ../extensions/auto-move-windows/prefs.js:106 #. TRANSLATORS: %s is the filesystem name
msgid "Create new matching rule" #: extensions/drive-menu/extension.js:112
msgstr "Crear una règla novèla de concordància" #: extensions/places-menu/placeDisplay.js:233
#: ../extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "Apondre"
#: ../extensions/drive-menu/extension.js:106
#, javascript-format #, javascript-format
msgid "Ejecting drive '%s' failed:" msgid "Ejecting drive %s failed:"
msgstr "L'ejeccion del disc « %s » a fracassat :" msgstr "L'ejeccion del disc « %s » a fracassat :"
#: ../extensions/drive-menu/extension.js:124 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Periferics amovibles" msgstr "Periferics amovibles"
#: ../extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:155
msgid "Open File" msgid "Open Files"
msgstr "Dobrir lo fichièr" msgstr "Dobrir Fichièrs"
#: ../extensions/example/extension.js:17 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Hello, world!"
msgstr "Adieu, lo mond !"
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Autre tèxte d'acuèlh."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
"S'es pas void, conten lo tèxte que s'aficha quand clicatz sul tablèu de bòrd."
#: ../extensions/example/prefs.js:30
msgid "Message"
msgstr "Message"
#. 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 it's possible to customize the greeting message."
msgstr ""
"Exemple a per tòca de far veire cossí bastir de bonas èxtensions pel Shell e "
"en tant que tal, a pas tant de foncionalitats en se qu'aquò.\n"
"Pasmens, es possible de personalizar lo messatge d'acuèlh."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Utilizar mai d'ecran per las fenèstras" msgstr "Utilizar mai d'ecran per las fenèstras"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
@@ -193,11 +87,11 @@ msgstr ""
"mai per reduire la zòna englobanta. Aqueste paramètre s'aplica pas qu'en " "mai per reduire la zòna englobanta. Aqueste paramètre s'aplica pas qu'en "
"utilizant l'estrategia de plaçament « natural »." "utilizant l'estrategia de plaçament « natural »."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "Plaçar los títols de las fenèstras en dessús" msgstr "Plaçar los títols de las fenèstras en dessús"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
"If true, place window captions on top the respective thumbnail, overriding " "If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
@@ -207,108 +101,123 @@ msgstr ""
"correspondenta, aquò remplaça lo comportament per defaut que los plaça en " "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." "dejós. Per qu'aqueste paramètre siá pres en compte, cal reaviar lo Shell."
#: ../extensions/places-menu/extension.js:78 #: extensions/places-menu/extension.js:89
#: ../extensions/places-menu/extension.js:81 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Emplaçaments" msgstr "Emplaçaments"
#: ../extensions/places-menu/placeDisplay.js:59 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
msgid "Failed to launch \"%s\"" msgid "Failed to launch “%s”"
msgstr "Impossible d'aviar « %s »" msgstr "Impossible d'aviar « %s »"
#: ../extensions/places-menu/placeDisplay.js:101 #: extensions/places-menu/placeDisplay.js:61
#: ../extensions/places-menu/placeDisplay.js:124 #, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Fracàs del montatge del volum per « %s »"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer" msgid "Computer"
msgstr "Ordenador" msgstr "Ordenador"
#: ../extensions/places-menu/placeDisplay.js:267 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Dorsièr personal" msgstr "Dorsièr personal"
#: ../extensions/places-menu/placeDisplay.js:311 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Percórrer la ret" msgstr "Percórrer la ret"
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes" msgid "Cycle Screenshot Sizes"
msgstr "Passar a la talha de captura seguenta" msgstr "Passar a la talha de captura seguenta"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr "Talhas de las capturas d'ecran enrèire"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name" msgid "Theme name"
msgstr "Nom del tèma" msgstr "Nom del tèma"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2 #: 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" 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" msgstr "Lo nom del tèma, de cargar a partir de ~/.themes/name/gnome-shell"
#: ../extensions/window-list/extension.js:110 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Tampar" msgstr "Tampar"
#: ../extensions/window-list/extension.js:120 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Restablir" msgstr "Restablir"
#: ../extensions/window-list/extension.js:121 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Reduire" msgstr "Reduire"
#: ../extensions/window-list/extension.js:127 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Restablir" msgstr "Restablir"
#: ../extensions/window-list/extension.js:128 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: ../extensions/window-list/extension.js:403 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Reduire tot" msgstr "Reduire tot"
#: ../extensions/window-list/extension.js:411 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Restablir tot" msgstr "Restablir tot"
#: ../extensions/window-list/extension.js:419 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizar tot" msgstr "Maximizar tot"
#: ../extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Restablir tot" msgstr "Restablir tot"
#: ../extensions/window-list/extension.js:437 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Tampar tot" msgstr "Tampar tot"
#: ../extensions/window-list/extension.js:661 #: extensions/window-list/extension.js:734
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indicator d'espaci de trabalh"
#: ../extensions/window-list/extension.js:820
msgid "Window List" msgid "Window List"
msgstr "Lista de fenèstras" msgstr "Lista de fenèstras"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows" msgid "When to group windows"
msgstr "Quand regropar las fenèstras" msgstr "Quand regropar las fenèstras"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are \"never\", \"auto\" and \"always\"." "Possible values are never”, “auto and always."
msgstr "" msgstr ""
"Decidís quora regropar las fenèstras d'una meteissa aplicacion sus la lista " "Decidís quora regropar las fenèstras d'una meteissa aplicacion sus la lista "
"de las fenèstras. Las valors possiblas son « never » (pas jamai), « auto » e " "de las fenèstras. Las valors possiblas son « never » (pas jamai), « auto » e "
"« always » (totjorn)." "« always » (totjorn)."
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:3 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Afichar las fenèstras de totes los espacis de trabalh"
#: 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 ""
"Indica se cal afichar las fenèstras sus totes los espacis de trabalh o "
"solament l'actual."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors" msgid "Show the window list on all monitors"
msgstr "Afichar la lista de las fenèstras sus totes los ecrans" msgstr "Afichar la lista de las fenèstras sus totes los ecrans"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:4 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
@@ -316,39 +225,128 @@ msgstr ""
"Indica se cal afichar la lista de las fenèstras sus totes los ecrans " "Indica se cal afichar la lista de las fenèstras sus totes los ecrans "
"connectats o solament l'ecran principal." "connectats o solament l'ecran principal."
#: ../extensions/window-list/prefs.js:32 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Regropament de fenèstras" msgstr "Regropament de fenèstras"
#: ../extensions/window-list/prefs.js:50 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Regropar pas jamai las fenèstras" msgstr "Regropar pas jamai las fenèstras"
#: ../extensions/window-list/prefs.js:51 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Regropar las fenèstras quand l'espaci es limitat" msgstr "Regropar las fenèstras quand l'espaci es limitat"
#: ../extensions/window-list/prefs.js:52 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Regropar totjorn las fenèstras" msgstr "Regropar totjorn las fenèstras"
#: ../extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Afichar sus totes los ecrans" msgstr "Afichar sus totes los ecrans"
#: ../extensions/workspace-indicator/prefs.js:141 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicator d'espaci de trabalh"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Noms dels espacis de trabalh" msgstr "Noms dels espacis de trabalh"
#: ../extensions/workspace-indicator/prefs.js:157 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "Nom"
#: ../extensions/workspace-indicator/prefs.js:198
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espaci de trabalh %d" msgstr "Espaci de trabalh %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Apondre un espaci de trabalh"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Estacar las bóstias de dialòg modalas a lor fenèstra parenta"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Aquesta clau remplaça la clau dins org.gnome.mutter quand GNOME Shell es "
#~ "en cors d'execucion."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "òrdre dels botons dins la barra de títol"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Aquesta clau remplaça la clau dins org.gnome.desktop.wm.preferences quand "
#~ "GNOME Shell es en cors d'execucion."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Activar la disposicion verticala quand las fenèstras son depausadas als "
#~ "bòrds de l'ecran"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Espacis de trabalh unicament sus l'ecran principal"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Retardar los cambiaments de focus en mòde mirga fins al moment que lo "
#~ "puntador arrèsta de bolegar"
#~ msgid "Thumbnail only"
#~ msgstr "Vinheta solament"
#~ msgid "Application icon only"
#~ msgstr "Icòna d'aplicacion solament"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Vinheta e icòna d'aplicacion"
#~ msgid "Present windows as"
#~ msgstr "Presentar la fenèstra coma"
#~ msgid "Activities Overview"
#~ msgstr "Vista d'ensemble de las activitats"
#~ msgid "Application"
#~ msgstr "Aplicacion"
#~ msgid "Create new matching rule"
#~ msgstr "Crear una règla novèla de concordància"
#~ msgid "Add"
#~ msgstr "Apondre"
#~ msgid "Hello, world!"
#~ msgstr "Adieu, lo mond !"
#~ msgid "Alternative greeting text."
#~ msgstr "Autre tèxte d'acuèlh."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "S'es pas void, conten lo tèxte que s'aficha quand clicatz sul tablèu de "
#~ "bòrd."
#~ msgid "Message"
#~ msgstr "Message"
#~ 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 it's possible to customize the greeting message."
#~ msgstr ""
#~ "Exemple a per tòca de far veire cossí bastir de bonas èxtensions pel "
#~ "Shell e en tant que tal, a pas tant de foncionalitats en se qu'aquò.\n"
#~ "Pasmens, es possible de personalizar lo messatge d'acuèlh."
#~ msgid "Name"
#~ msgstr "Nom"
#~ msgid "GNOME Shell Classic" #~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME Shell Classic" #~ msgstr "GNOME Shell Classic"
+152 -176
View File
@@ -2,21 +2,21 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package. # This file is distributed under the same license as the gnome-shell-extensions package.
# #
# A S Alam <aalam@users.sf.net>, 2011, 2012, 2013, 2014, 2015, 2018. # A S Alam <aalam@users.sf.net>, 2011, 2012, 2013, 2014, 2015, 2018, 2021.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n" "Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n" "sues\n"
"POT-Creation-Date: 2018-02-20 23:07+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2018-03-10 09:36-0600\n" "PO-Revision-Date: 2021-02-13 16:51-0800\n"
"Last-Translator: A S Alam <alam.yellow@gmail.com>\n" "Last-Translator: A S Alam <aalam@satluj.org>\n"
"Language-Team: Punjabi <punjabi-translation@googlegroups.com>\n" "Language-Team: Punjabi <punjabi-translation@googlegroups.com>\n"
"Language: pa\n" "Language: pa\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 2.0\n" "X-Generator: Lokalize 20.08.1\n"
"Plural-Forms: nplurals=2; plural=n != 1;\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 data/gnome-classic.session.desktop.in:3
@@ -27,73 +27,11 @@ msgstr "ਗਨੋਮ ਕਲਾਸਿਕ"
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "ਇਹ ਸ਼ੈਸ਼ਨ ਤੁਹਾਨੂੰ ਗਨੋਮ ਕਲਾਸਿਕ ਵਿੱਚ ਲਾਗ ਕਰਦਾ ਹੈ" msgstr "ਇਹ ਸ਼ੈਸ਼ਨ ਤੁਹਾਨੂੰ ਗਨੋਮ ਕਲਾਸਿਕ ਵਿੱਚ ਲਾਗ ਕਰਦਾ ਹੈ"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 #: extensions/apps-menu/extension.js:113
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 ਕੁੰਜੀ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਦੀ ਹੈ।"
#: 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.preferencesr ਕੁੰਜੀ ਨੂੰ"
" ਅਣਡਿੱਠਾ "
"ਕਰਦੀ ਹੈ।"
#: 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:19
msgid "Thumbnail only"
msgstr "ਕੇਵਲ ਥੰਮਨੇਲ ਹੀ"
#: extensions/alternate-tab/prefs.js:20
msgid "Application icon only"
msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਹੀ"
#: extensions/alternate-tab/prefs.js:21
msgid "Thumbnail and application icon"
msgstr "ਥੰਮਨੇਲ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ"
#: extensions/alternate-tab/prefs.js:34
msgid "Present windows as"
msgstr "ਵਿੰਡੋਜ਼ ਨੂੰ ਪੇਸ਼ ਕਰੋ"
#: extensions/alternate-tab/prefs.js:65
msgid "Show only windows in the current workspace"
msgstr "ਮੌਜੂਦਾ ਵਰਕਸਪੇਸ ਵਿੱਚੋਂ ਹੀ ਵਿੰਡੋਜ਼ ਹੀ ਵੇਖਾਓ"
#: extensions/apps-menu/extension.js:37
msgid "Activities Overview"
msgstr "ਸਰਗਰਮੀ ਝਲਕ"
#: extensions/apps-menu/extension.js:130
msgid "Favorites" msgid "Favorites"
msgstr "ਪਸੰਦੀਦਾ" msgstr "ਪਸੰਦੀਦਾ"
#: extensions/apps-menu/extension.js:417 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "ਐਪਲੀਕੇਸ਼ਨ" msgstr "ਐਪਲੀਕੇਸ਼ਨ"
@@ -110,81 +48,30 @@ msgstr ""
" ਵਰਕਸਪੇਸ ਨੰਬਰ " " ਵਰਕਸਪੇਸ ਨੰਬਰ "
"ਰੱਖਦਾ ਹੈ" "ਰੱਖਦਾ ਹੈ"
#: extensions/auto-move-windows/prefs.js:53 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" #| msgid "Workspace Names"
msgstr "ਐਪਲੀਕੇਸ਼ਨ" msgid "Workspace Rules"
msgstr "ਵਰਕਸਪੇਸ ਨਿਯਮ"
#: extensions/auto-move-windows/prefs.js:62 #: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:117
msgid "Workspace"
msgstr "ਵਰਕਸਪੇਸ"
#: extensions/auto-move-windows/prefs.js:78
msgid "Add Rule" msgid "Add Rule"
msgstr "ਨਿਯਮ ਜੋੜੋ" msgstr "ਨਿਯਮ ਜੋੜੋ"
#: extensions/auto-move-windows/prefs.js:98
msgid "Create new matching rule"
msgstr "ਨਵਾਂ ਮਿਲਾਉਣ ਨਿਯਮ ਬਣਾਓ"
#: extensions/auto-move-windows/prefs.js:103
msgid "Add"
msgstr "ਜੋੜੋ"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:103 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:219 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "ਡਰਾਇਵ “%s“ ਬਾਹਰ ਕੱਢਣ ਲਈ ਫੇਲ੍ਹ:" msgstr "ਡਰਾਇਵ “%s“ ਬਾਹਰ ਕੱਢਣ ਲਈ ਫੇਲ੍ਹ:"
#: extensions/drive-menu/extension.js:118 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ" msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ"
#: extensions/drive-menu/extension.js:143 #: extensions/drive-menu/extension.js:155
#| msgid "Open File"
msgid "Open Files" msgid "Open Files"
msgstr "ਫਾਇਲਾਂ ਨੂੰ ਖੋਲ੍ਹੋ" 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:27
msgid "Message"
msgstr "ਸੁਨੇਹਾ"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: extensions/example/prefs.js:40
#| 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 it's possible to customize the greeting message."
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 ਦਾ ਮਕਸਦ ਸ਼ੈਲ ਲਈ ਇੱਕ ਵਧੀਆ ਕੰਮ ਕਰਦੀ ਇਕਸਟੈਸ਼ਨ ਬਣਾਉਣ ਦੀ ਉਦਾਹਰਨ ਦੇਣਾ ਹੈ ਅਤੇ"
" ਇਸ ਦਾ "
"ਖੁਦ ਕੋਈ ਬਹੁਤਾ ਕੰਮ ਨਹੀਂ ਹੈ।\n"
"ਫੇਰ ਵੀ ਸਵਾਗਤੀ ਸੁਨੇਹੇ ਨੂੰ ਬਦਲਣਾ ਸੰਭਵ ਹੈ।"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "ਵਿੰਡੋਜ਼ ਲਈ ਹੋਰ ਸਕਰੀਨ ਵਰਤੋਂ" msgstr "ਵਿੰਡੋਜ਼ ਲਈ ਹੋਰ ਸਕਰੀਨ ਵਰਤੋਂ"
@@ -216,32 +103,31 @@ msgstr ""
"ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਦਾ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਬਦਲਾਅ ਦੇ ਚਾਲੂ ਹੋਣ ਲਈ ਸ਼ੈਲ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ" "ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਦਾ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਬਦਲਾਅ ਦੇ ਚਾਲੂ ਹੋਣ ਲਈ ਸ਼ੈਲ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ"
" ਲੋੜ ਹੈ।" " ਲੋੜ ਹੈ।"
#: extensions/places-menu/extension.js:79 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:82 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "ਥਾਵਾਂ" msgstr "ਥਾਵਾਂ"
#: extensions/places-menu/placeDisplay.js:66 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "“%s“ ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "“%s” ਲਈ ਵਾਲੀਅਮ ਮਾਊਂਟ ਕਰਨ ਲਈ ਅਸਫ਼ਲ" msgstr "“%s” ਲਈ ਵਾਲੀਅਮ ਮਾਊਂਟ ਕਰਨ ਲਈ ਅਸਫ਼ਲ"
#: extensions/places-menu/placeDisplay.js:79 #: extensions/places-menu/placeDisplay.js:148
#, javascript-format #: extensions/places-menu/placeDisplay.js:171
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”"
msgstr "“%s“ ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ"
#: extensions/places-menu/placeDisplay.js:135
#: extensions/places-menu/placeDisplay.js:158
msgid "Computer" msgid "Computer"
msgstr "ਕੰਪਿਊਟਰ" msgstr "ਕੰਪਿਊਟਰ"
#: extensions/places-menu/placeDisplay.js:336 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "ਘਰ" msgstr "ਘਰ"
#: extensions/places-menu/placeDisplay.js:378 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "ਨੈੱਟਵਰਕ ਝਲਕ ਵੇਖੋ" msgstr "ਨੈੱਟਵਰਕ ਝਲਕ ਵੇਖੋ"
@@ -250,7 +136,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "ਸਾਈਕਲ ਸਕਰੀਨਸ਼ਾਟ ਆਕਾਰ" msgstr "ਸਾਈਕਲ ਸਕਰੀਨਸ਼ਾਟ ਆਕਾਰ"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "ਸਾਈਕਲ ਸਕਰੀਨਸ਼ਾਟ ਆਕਾਰ ਪਿੱਛੇ ਵੱਲ" msgstr "ਸਾਈਕਲ ਸਕਰੀਨਸ਼ਾਟ ਆਕਾਰ ਪਿੱਛੇ ਵੱਲ"
@@ -262,52 +147,47 @@ msgstr "ਥੀਮ ਨਾਂ"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "ਥੀਮ ਦਾ ਨਾਂ, ਜੋ ~/.themes/name/gnome-shell ਤੋਂ ਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ" msgstr "ਥੀਮ ਦਾ ਨਾਂ, ਜੋ ~/.themes/name/gnome-shell ਤੋਂ ਲੋਡ ਕੀਤਾ ਜਾਵੇਗਾ"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "ਬੰਦ ਕਰੋ" msgstr "ਬੰਦ ਕਰੋ"
#: extensions/window-list/extension.js:125 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "ਅਣ-ਨਿਊਨਤਮ" msgstr "ਅਣ-ਨਿਊਨਤਮ"
#: extensions/window-list/extension.js:126 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "ਨਿਊਨਤਮ" msgstr "ਨਿਊਨਤਮ"
#: extensions/window-list/extension.js:132 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "ਅਣ-ਵੱਧੋ-ਵੱਧ" msgstr "ਅਣ-ਵੱਧੋ-ਵੱਧ"
#: extensions/window-list/extension.js:133 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "ਵੱਧੋ-ਵੱਧ" msgstr "ਵੱਧੋ-ਵੱਧ"
#: extensions/window-list/extension.js:408 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "ਸਭ ਨਿਊਨਤਮ ਕਰੋ" msgstr "ਸਭ ਨਿਊਨਤਮ ਕਰੋ"
#: extensions/window-list/extension.js:414 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "ਸਭ ਅਣ-ਨਿਊਨਤਮ ਕਰੋ" msgstr "ਸਭ ਅਣ-ਨਿਊਨਤਮ ਕਰੋ"
#: extensions/window-list/extension.js:420 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "ਸਭ ਵੱਧ-ਵੱਧ ਕਰੋ" msgstr "ਸਭ ਵੱਧ-ਵੱਧ ਕਰੋ"
#: extensions/window-list/extension.js:429 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "ਸਭ ਅਣ-ਵੱਧੋ-ਵੱਧ ਕਰੋ" msgstr "ਸਭ ਅਣ-ਵੱਧੋ-ਵੱਧ ਕਰੋ"
#: extensions/window-list/extension.js:438 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "ਸਭ ਬੰਦ ਕਰੋ" msgstr "ਸਭ ਬੰਦ ਕਰੋ"
#: extensions/window-list/extension.js:646 #: extensions/window-list/extension.js:734
#: extensions/workspace-indicator/extension.js:26
msgid "Workspace Indicator"
msgstr "ਵਰਕਸਪੇਸ ਇੰਡੀਕੇਟਰ"
#: extensions/window-list/extension.js:811
msgid "Window List" msgid "Window List"
msgstr "ਵਿੰਡੋਜ਼ ਸੂਚੀ" msgstr "ਵਿੰਡੋਜ਼ ਸੂਚੀ"
@@ -316,61 +196,157 @@ msgid "When to group windows"
msgstr "ਵਿੰਡੋਜ਼ ਗਰੁੱਪ ਕਦੋਂ ਬਣਾਉਣਾ ਹੈ" msgstr "ਵਿੰਡੋਜ਼ ਗਰੁੱਪ ਕਦੋਂ ਬਣਾਉਣਾ ਹੈ"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: 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 "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"ਵਿੰਡੋ ਲਿਸਟ ਵਿੱਚ ਇਕੋ ਕੰਮ ਦੇ ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਕਦੋਂ ਬਣਾਉਣਾ ਹੈ, ਇਹ ਦੱਸੋ। ਸੰਭਵ ਮੁੱਲ" "ਵਿੰਡੋ ਲਿਸਟ ਵਿੱਚ ਇਕੋ ਕੰਮ ਦੇ ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਕਦੋਂ ਬਣਾਉਣਾ ਹੈ, ਇਹ ਦੱਸੋ। ਸੰਭਵ ਮੁੱਲ"
" ਹਨ “ਕਦੇ ਨਹੀਂ“, " " ਹਨ “ਕਦੇ ਨਹੀਂ“, “ਆਟੋ“ "
"“ਆਟੋ“ ਅਤੇ “ਹਮੇਸ਼ਾ“।" "ਅਤੇ “ਹਮੇਸ਼ਾ“।"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces"
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."
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" msgid "Show the window list on all monitors"
msgstr "ਸਭ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵਿੰਡੋ ਸੂਚੀ ਵੇਖਾਓ" msgstr "ਸਭ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵਿੰਡੋ ਸੂਚੀ ਵੇਖਾਓ"
#: 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 "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
msgstr "" msgstr ""
"ਕੀ ਸਭ ਕਨੈਕਟ ਹੋਏ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵਿੰਡੋ ਸੂਚੀ ਦੇਖਣੀ ਹੈ ਜਾਂ ਕੇਵਲ ਪ੍ਰਾਇਮਰੀ ਉੱਤੇ ਹੀ।" "ਕੀ ਸਭ ਕਨੈਕਟ ਹੋਏ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵਿੰਡੋ ਸੂਚੀ ਦੇਖਣੀ ਹੈ ਜਾਂ ਕੇਵਲ ਪ੍ਰਾਇਮਰੀ ਉੱਤੇ ਹੀ।"
#: extensions/window-list/prefs.js:28 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "ਵਿੰਡੋ ਗਰੁੱਪਿੰਗ" msgstr "ਵਿੰਡੋ ਗਰੁੱਪਿੰਗ"
#: extensions/window-list/prefs.js:46 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਕਦੇ ਨਾ ਬਣਾਓ" msgstr "ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਕਦੇ ਨਾ ਬਣਾਓ"
#: extensions/window-list/prefs.js:47 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "ਜਦੋਂ ਥਾਂ ਥੋੜੀ ਹੋਵੇ ਤਾਂ ਵਿੰਡੋਜ਼ ਦਾ ਗਰੁੱਪ ਬਣਾਓ" msgstr "ਜਦੋਂ ਥਾਂ ਥੋੜੀ ਹੋਵੇ ਤਾਂ ਵਿੰਡੋਜ਼ ਦਾ ਗਰੁੱਪ ਬਣਾਓ"
#: extensions/window-list/prefs.js:48 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਹਮੇਸ਼ਾ ਬਣਾਓ" msgstr "ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਹਮੇਸ਼ਾ ਬਣਾਓ"
#: extensions/window-list/prefs.js:71 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "ਸਭ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵੇਖਾਓ" msgstr "ਸਭ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵੇਖਾਓ"
#: extensions/workspace-indicator/prefs.js:134 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "ਵਰਕਸਪੇਸ ਇੰਡੀਕੇਟਰ"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "ਵਰਕਸਪੇਸ ਨਾਂ" msgstr "ਵਰਕਸਪੇਸ ਨਾਂ"
#: extensions/workspace-indicator/prefs.js:150 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "ਨਾਂ"
#: extensions/workspace-indicator/prefs.js:190
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "ਵਰਕਸਪੇਸ %d" msgstr "ਵਰਕਸਪੇਸ %d"
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace"
msgstr "ਵਰਕਸਪੇਸ ਜੋੜੋ"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "ਮੁੱਢਲੀ ਵਿੰਡੋ ਵਿੱਚ ਮਾਡਲ ਡਾਈਲਾਗ ਜੋੜੋ"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr "ਇਹ ਕੁੰਜੀ ਗਨੋਮ ਸ਼ੈੱਲ ਚੱਲਣ ਦੇ ਦੌਰਾਨ org.gnome.mutter ਕੁੰਜੀ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਦੀ ਹੈ।"
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "ਟਾਈਟਲ-ਪੱਟੀ ਵਿੱਚ ਬਟਨਾਂ ਦਾ ਪ੍ਰਬੰਧ"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "ਇਹ ਕੁੰਜੀ ਗਨੋਮ ਸ਼ੈੱਲ ਚੱਲਣ ਦੇ ਦੌਰਾਨ org.gnome.desktop.wm.preferencesr ਕੁੰਜੀ ਨੂੰ ਅਣਡਿੱਠਾ "
#~ "ਕਰਦੀ ਹੈ।"
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "ਕੋਨਾ ਟਿਲਿੰਗ ਚਾਲੂ, ਜਦੋਂ ਵਿੰਡੋਜ਼ ਨੂੰ ਸਕਰੀਨ ਕੋਨਿਆਂ ਤੋਂ ਡਰਾਪ ਕਰਨਾ ਹੋਵੇ"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "ਪ੍ਰਾਈਮਰੀ ਮਾਨੀਟਰ ਉੱਤੇ ਕੇਵਲ ਵਰਕਸਪੇਸ"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "ਪੁਆਇੰਟਰ ਦੇ ਹਿਲਣ ਤੋਂ ਰੁਕਣ ਤੱਕ ਮਾਊਸ ਮੋਡ ਵਿੱਚ ਫੋਕਸ ਬਦਲਾਅ ਵਿੱਚ ਦੇਰੀ"
#~ msgid "Thumbnail only"
#~ msgstr "ਕੇਵਲ ਥੰਮਨੇਲ ਹੀ"
#~ msgid "Application icon only"
#~ msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਹੀ"
#~ msgid "Thumbnail and application icon"
#~ msgstr "ਥੰਮਨੇਲ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ"
#~ msgid "Present windows as"
#~ msgstr "ਵਿੰਡੋਜ਼ ਨੂੰ ਪੇਸ਼ ਕਰੋ"
#~ msgid "Activities Overview"
#~ msgstr "ਸਰਗਰਮੀ ਝਲਕ"
#~ msgid "Application"
#~ msgstr "ਐਪਲੀਕੇਸ਼ਨ"
#~ msgid "Create new matching rule"
#~ msgstr "ਨਵਾਂ ਮਿਲਾਉਣ ਨਿਯਮ ਬਣਾਓ"
#~ msgid "Add"
#~ msgstr "ਜੋੜੋ"
#~ msgid "Hello, world!"
#~ msgstr "ਹੈਲੋ, ਵਰਲਡ!"
#~ msgid "Alternative greeting text."
#~ msgstr "ਬਦਲਵਾਂ ਸਵਾਗਤੀ ਟੈਕਸਟ ਹੈ।"
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr "ਜੇ ਖਾਲੀ ਨਹੀਂ ਤਾਂ ਇਹ ਟੈਕਸਟ ਰੱਖਦਾ ਹੈ, ਜੋ ਕਿ ਪੈਨਲ ਨੂੰ ਕਲਿੱਕ ਕਰਨ ਨਾਲ ਵੇਖਾਇਆ ਜਾਵੇਗਾ।"
#~ msgid "Message"
#~ msgstr "ਸੁਨੇਹਾ"
#~| 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 it's possible to customize the greeting message."
#~ 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 ਦਾ ਮਕਸਦ ਸ਼ੈਲ ਲਈ ਇੱਕ ਵਧੀਆ ਕੰਮ ਕਰਦੀ ਇਕਸਟੈਸ਼ਨ ਬਣਾਉਣ ਦੀ ਉਦਾਹਰਨ ਦੇਣਾ ਹੈ ਅਤੇ ਇਸ "
#~ "ਦਾ ਖੁਦ ਕੋਈ ਬਹੁਤਾ ਕੰਮ ਨਹੀਂ ਹੈ।\n"
#~ "ਫੇਰ ਵੀ ਸਵਾਗਤੀ ਸੁਨੇਹੇ ਨੂੰ ਬਦਲਣਾ ਸੰਭਵ ਹੈ।"
#~ msgid "Name"
#~ msgstr "ਨਾਂ"
#~ msgid "GNOME Shell Classic" #~ msgid "GNOME Shell Classic"
#~ msgstr "ਗਨੋਮ ਸ਼ੈਲ ਕਲਾਸਿਕ" #~ msgstr "ਗਨੋਮ ਸ਼ੈਲ ਕਲਾਸਿਕ"
+33 -39
View File
@@ -6,38 +6,45 @@
# António Lima <amrlima@gmail.com>, 2013. # António Lima <amrlima@gmail.com>, 2013.
# Pedro Albuquerque <palbuquerque73@gmail.com>, 2014. # Pedro Albuquerque <palbuquerque73@gmail.com>, 2014.
# Bruno Ramalhete <bram.512@gmail.com>, 2015. # Bruno Ramalhete <bram.512@gmail.com>, 2015.
# José Vieira <jvieira33@sapo.pt>, 2020. # José Vieira <jvieira33@sapo.pt>, 2020-2021.
# Hugo Carvalho <hugokarvalho@hotmail.com>, 2021.
# Juliano de Souza Camargo <julianosc@protonmail.com>, 2021.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 3.14\n" "Project-Id-Version: 3.14\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n" "POT-Creation-Date: 2021-06-02 16:10+0000\n"
"PO-Revision-Date: 2020-09-05 00:47+0100\n" "PO-Revision-Date: 2021-06-07 07:21-0300\n"
"Last-Translator: José Vieira <jvieira33@sapo.pt>\n" "Last-Translator: Juliano de Souza Camargo <julianosc@protonmail.com>\n"
"Language-Team: Portuguese <>\n" "Language-Team: Portuguese < >\n"
"Language: pt\n" "Language: pt\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 3.36.0\n" "X-Generator: Gtranslator 40.0\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
"X-DL-Team: pt\n"
"X-DL-Module: gnome-shell-extensions\n"
"X-DL-Branch: gnome-40\n"
"X-DL-Domain: po\n"
"X-DL-State: Translating\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME clássico" msgstr "GNOME clássico"
#: data/gnome-classic.desktop.in:4 #: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Esta sessão entra no GNOME clássico" msgstr "Esta sessão vai usar o GNOME clássico"
#: extensions/apps-menu/extension.js:113 #: extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
msgstr "Favoritos" msgstr "Favoritos"
#: extensions/apps-menu/extension.js:369 #: extensions/apps-menu/extension.js:367
msgid "Applications" msgid "Applications"
msgstr "Aplicações" msgstr "Aplicações"
@@ -54,11 +61,10 @@ msgstr ""
"ficheiro desktop), seguido de dois pontos e o número da área de trabalho" "ficheiro desktop), seguido de dois pontos e o número da área de trabalho"
#: extensions/auto-move-windows/prefs.js:35 #: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Regras das áreas de trabalho" msgstr "Regras das áreas de trabalho"
#: extensions/auto-move-windows/prefs.js:243 #: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule" msgid "Add Rule"
msgstr "Adicionar regra" msgstr "Adicionar regra"
@@ -66,7 +72,6 @@ msgstr "Adicionar regra"
#: extensions/drive-menu/extension.js:112 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Falha ao ejetar a unidade '%s':" msgstr "Falha ao ejetar a unidade '%s':"
@@ -74,10 +79,9 @@ msgstr "Falha ao ejetar a unidade '%s':"
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispositivos removíveis" msgstr "Dispositivos removíveis"
#: extensions/drive-menu/extension.js:155 #: extensions/drive-menu/extension.js:152
#| msgid "Open File"
msgid "Open Files" msgid "Open Files"
msgstr "Ficheiros abertos" msgstr "Abrir ficheiros"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
@@ -96,7 +100,7 @@ msgstr ""
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top" msgid "Place window captions on top"
msgstr "Colocar título de janelas em cima" msgstr "Colocar título de janela em cima"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
@@ -104,18 +108,17 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"Se verdadeiro, coloca títulos de janelas em cima da respectiva miniatura, " "Se verdadeiro, coloca títulos de janelas em cima das respectivas miniaturas, "
"substituindo a predefinição, que as coloca no fundo. Alterar esta " "substituindo a predefinição, que as coloca no fundo. Alterar esta "
"configuração requer reinicializar a interface para ter efeito." "configuração requer reinicializar a interface para ter efeito."
#: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93 #: extensions/places-menu/extension.js:92
msgid "Places" msgid "Places"
msgstr "Locais" msgstr "Locais"
#: extensions/places-menu/placeDisplay.js:46 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Falha ao iniciar \"%s\"" msgstr "Falha ao iniciar \"%s\""
@@ -142,7 +145,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Percorrer os tamanhos de captura de ecrã" msgstr "Percorrer os tamanhos de captura de ecrã"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Percorrer para trás os tamanhos de captura de ecrã" msgstr "Percorrer para trás os tamanhos de captura de ecrã"
@@ -174,27 +176,27 @@ msgstr "Desmaximizar"
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizar todas" msgstr "Minimizar todas"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Desminimizar todas" msgstr "Desminimizar todas"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizar todas" msgstr "Maximizar todas"
#: extensions/window-list/extension.js:448 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Desmaximizar todas" msgstr "Desmaximizar todas"
#: extensions/window-list/extension.js:456 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Fechar todas" msgstr "Fechar todas"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "Lista de janelas" msgstr "Lista de janelas"
@@ -203,26 +205,19 @@ msgid "When to group windows"
msgstr "Quando agrupar janelas" msgstr "Quando agrupar janelas"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: 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 "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"Decide quando agrupar janelas da mesma aplicação na lista de janelas. " "Decide quando agrupar janelas da mesma aplicação na lista de janelas. Os "
"Valores válidos são \"nunca\", \"auto\" e \"sempre\"." "valores válidos são \"nunca\", \"auto\" e \"sempre\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100 #: extensions/window-list/prefs.js:100
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Mostrar janelas de todas as área de trabalho" msgstr "Mostrar janelas de todas as área de trabalho"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 #: 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."
msgid "Whether to show windows from all workspaces or only the current one." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "" msgstr ""
"Se deve mostrar janelas de todas as áreas de trabalho ou apenas da atual." "Se deve mostrar janelas de todas as áreas de trabalho ou apenas da atual."
@@ -259,8 +254,8 @@ msgstr "Agrupar sempre as janelas"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostrar em todos os monitores" msgstr "Mostrar em todos os monitores"
#: extensions/window-list/workspaceIndicator.js:207 #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:213 #: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicador de área de trabalho" msgstr "Indicador de área de trabalho"
@@ -273,8 +268,7 @@ msgstr "Nomes das áreas de trabalho"
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Área de trabalho %d" msgstr "Área de trabalho %d"
#: extensions/workspace-indicator/prefs.js:218 #: extensions/workspace-indicator/prefs.js:208
#| msgid "Workspace"
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Adicionar área de trabalho" msgstr "Adicionar área de trabalho"
+13 -101
View File
@@ -1,26 +1,26 @@
# Swedish translation for gnome-shell-extensions. # Swedish translation for gnome-shell-extensions.
# Copyright © 2011, 2012, 2014, 2015, 2017, 2019, 2020 Free Software Foundation, Inc. # Copyright © 2011-2021 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package. # This file is distributed under the same license as the gnome-shell-extensions package.
# Daniel Nylander <po@danielnylander.se>, 2011, 2012. # Daniel Nylander <po@danielnylander.se>, 2011, 2012.
# Mattias Eriksson <snaggen@gmail.com>, 2014. # Mattias Eriksson <snaggen@gmail.com>, 2014.
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017, 2019, 2020. # Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017, 2019, 2020, 2021.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-06-25 05:19+0000\n" "POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2020-07-31 16:32+0200\n" "PO-Revision-Date: 2021-03-27 21:12+0100\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n" "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n" "Language: sv\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3.1\n" "X-Generator: Poedit 2.4.2\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME Klassisk" msgstr "GNOME Klassisk"
@@ -96,7 +96,7 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"Om sant, placera fönster titlar över respektive miniatyrbild, överskuggar " "Om sant, placera fönster titlar över respektive miniatyrbild, åsidosätter "
"skalets standardplacering under miniatyrbilden. För att ändra denna " "skalets standardplacering under miniatyrbilden. För att ändra denna "
"inställning krävs att skalet startas om för att den ska få effekt." "inställning krävs att skalet startas om för att den ska få effekt."
@@ -164,27 +164,27 @@ msgstr "Avmaximera"
msgid "Maximize" msgid "Maximize"
msgstr "Maximera" msgstr "Maximera"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimera alla" msgstr "Minimera alla"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Avminimera alla" msgstr "Avminimera alla"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximera alla" msgstr "Maximera alla"
#: extensions/window-list/extension.js:448 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Avmaximera alla" msgstr "Avmaximera alla"
#: extensions/window-list/extension.js:456 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Stäng alla" msgstr "Stäng alla"
#: extensions/window-list/extension.js:734 #: extensions/window-list/extension.js:738
msgid "Window List" msgid "Window List"
msgstr "Fönsterlista" msgstr "Fönsterlista"
@@ -259,91 +259,3 @@ msgstr "Arbetsyta %d"
#: extensions/workspace-indicator/prefs.js:218 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Lägg till arbetsyta" msgstr "Lägg till arbetsyta"
#~ msgid "Application"
#~ msgstr "Program"
#~ msgid "Workspace"
#~ msgstr "Arbetsyta"
#~ msgid "Create new matching rule"
#~ msgstr "Skapa ny matchande regel"
#~ msgid "Add"
#~ msgstr "Lägg till"
#~ msgid "Name"
#~ msgstr "Namn"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Koppla samman modal dialog till föräldrafönstret"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Denna nyckel överskuggar nyckeln i org.gnome.mutter när GNOME-skalet körs."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Arrangemang för knappar i namnlisten"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Denna nyckel överskuggar nyckeln i org.gnome.desktop.wm.preferences när "
#~ "GNOME-skalet körs."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "Slå på kantdockning när fönster släpps på skärmkanter"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Arbetsytor endast på primär skärm"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "Fördröj fokusändringar i musläge tills pekare slutar röra sig"
#~ msgid "Thumbnail only"
#~ msgstr "Endast miniatyrbild"
#~ msgid "Application icon only"
#~ msgstr "Endast programikon"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Miniatyrbild och programikon"
#~ msgid "Present windows as"
#~ msgstr "Presentera fönster som"
#~ msgid "Activities Overview"
#~ msgstr "Aktivitetsöversikt"
#~ msgid "Hello, world!"
#~ msgstr "Hej, världen!"
#~ msgid "Alternative greeting text."
#~ msgstr "Alternativ hälsningstext."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Om inte tom, innehåller den text som kommer att visas när man klickar på "
#~ "panelen."
#~ msgid "Message"
#~ msgstr "Meddelande"
#~ 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 ""
#~ "Exemplet ämnar visa hur man bygger ett väluppfostrat tillägg för skalet "
#~ "och som sådant har det lite funktionalitet i sig självt.\n"
#~ "Hur som helst är det i alla fall möjligt att anpassa välkomstmeddelandet."
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid "Memory"
#~ msgstr "Minne"
+147 -162
View File
@@ -2,15 +2,15 @@
# Copyright © 2016 GNOME i18n Project for Vietnamese. # Copyright © 2016 GNOME i18n Project for Vietnamese.
# This file is distributed under the same license as the gnome-shell-extensions package. # This file is distributed under the same license as the gnome-shell-extensions package.
# Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2011. # Nguyễn Thái Ngọc Duy <pclouds@gmail.com>, 2011.
# Trần Ngọc Quân <vnwildman@gmail.com>, 2014, 2016, 2017. # Trần Ngọc Quân <vnwildman@gmail.com>, 2014, 2016, 2017, 2021.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"shell&keywords=I18N+L10N&component=extensions\n" "issues\n"
"POT-Creation-Date: 2017-09-03 13:30+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2017-09-04 14:34+0700\n" "PO-Revision-Date: 2021-03-27 14:51+0700\n"
"Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
"Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n" "Language-Team: Vietnamese <gnome-vi-list@gnome.org>\n"
"Language: vi\n" "Language: vi\n"
@@ -28,72 +28,11 @@ msgstr "GNOME cổ điển"
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Phiên làm việc này đăng nhập bạn vào GNOME Cổ điển" msgstr "Phiên làm việc này đăng nhập bạn vào GNOME Cổ điển"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 #: extensions/apps-menu/extension.js:113
msgid "Attach modal dialog to the parent window"
msgstr "Gắn hộp thoại dạng luôn nằm trên cửa sổ mẹ"
#: 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 ""
"Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy Hệ vỏ GNOME."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Sắp xếp các nút trên thanh tiêu đề"
#: 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 ""
"Khóa này sẽ đè lên khóa có trong org.gnome.desktop.wm.preferences khi đang "
"chạy Hệ vỏ GNOME."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Không gian làm việc chỉ ở trên màn hình chính"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Chỉ ảnh nhỏ"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Chỉ có ảnh nhỏ đại diện cho ứng dụng"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Ảnh thu nhỏ và biểu tượng của ứng dụng"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Cửa sổ hiện tại như là"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Chỉ hiển thị các cửa sổ trong không gian làm việc hiện tại"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Tổng quan hoạt động"
#: extensions/apps-menu/extension.js:141
msgid "Favorites" msgid "Favorites"
msgstr "Ưa thích" msgstr "Ưa thích"
#: extensions/apps-menu/extension.js:436 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Ứng dụng" msgstr "Ứng dụng"
@@ -109,73 +48,29 @@ msgstr ""
"Một danh sách chuỗi, mỗi chuỗi là một mã số của ứng dụng (tên tập tin ." "Một danh sách chuỗi, mỗi chuỗi là một mã số của ứng dụng (tên tập tin ."
"desktop), theo sau là dấu hai chấm và mã số không gian làm việc" "desktop), theo sau là dấu hai chấm và mã số không gian làm việc"
#: extensions/auto-move-windows/prefs.js:60 #: extensions/auto-move-windows/prefs.js:35
msgid "Application" msgid "Workspace Rules"
msgstr "Ứng dụng" msgstr "Thước Không gian làm việc"
#: extensions/auto-move-windows/prefs.js:69 #: extensions/auto-move-windows/prefs.js:243
#: extensions/auto-move-windows/prefs.js:127
msgid "Workspace"
msgstr "Không gian làm việc"
#: extensions/auto-move-windows/prefs.js:85
msgid "Add Rule" msgid "Add Rule"
msgstr "Thêm quy tắc" msgstr "Thêm quy tắc"
#: extensions/auto-move-windows/prefs.js:106
msgid "Create new matching rule"
msgstr "Tạo mới một quy tắc khớp mẫu"
#: extensions/auto-move-windows/prefs.js:111
msgid "Add"
msgstr "Thêm"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Gặp lỗi khi đẩy đĩa “%s” ra:" msgstr "Gặp lỗi khi đẩy hệ thống tập tin “%s” ra:"
#: extensions/drive-menu/extension.js:125 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Đĩa di động" msgstr "Đĩa di động"
#: extensions/drive-menu/extension.js:150 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Mở tập tin" msgstr "Mở tập tin"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Xin chào!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Lời chào thay thế."
#: 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 ""
"Nếu không rỗng, nó sẽ chứa chữ mà chữ này sẽ được hiển thị khi bấm chuột "
"trên bảng điều khiển."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Thông báo"
#. 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 ""
"Ví dụ có mục đích hướng dẫn làm cách nào để xây dựng các phần mở rộng chạy "
"tốt cho Hệ vỏ và do vậy nó chỉ có một ít chức năng.\n"
"Tuy thế nó có khả năng cá nhân hóa lời chào."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Dùng nhiều màn hình cho các cửa sổ" msgstr "Dùng nhiều màn hình cho các cửa sổ"
@@ -204,31 +99,31 @@ msgstr ""
"đè lên cách ứng xử mặc định của hệ vỏ là ở dưới đáy. Những thay đổi này cần " "đè lên cách ứng xử mặc định của hệ vỏ là ở dưới đáy. Những thay đổi này cần "
"khởi động lại hệ vỏ để có tác dụng." "khởi động lại hệ vỏ để có tác dụng."
#: extensions/places-menu/extension.js:78 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:81 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Mở nhanh" msgstr "Mở nhanh"
#: extensions/places-menu/placeDisplay.js:65 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Gặp lỗi khi gắn đĩa cho “%s”"
#: extensions/places-menu/placeDisplay.js:78
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Gặp lỗi khi khởi chạy \"%s\"" msgstr "Gặp lỗi khi khởi chạy \"%s\""
#: extensions/places-menu/placeDisplay.js:137 #: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:160 #, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Gặp lỗi khi gắn đĩa cho “%s”"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer" msgid "Computer"
msgstr "Máy tính" msgstr "Máy tính"
#: extensions/places-menu/placeDisplay.js:303 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Thư mục riêng" msgstr "Thư mục riêng"
#: extensions/places-menu/placeDisplay.js:347 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Duyệt mạng" msgstr "Duyệt mạng"
@@ -248,52 +143,47 @@ msgstr "Tên chủ đề"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Tên của chủ đề, được tải từ ~/.themes/name/gnome-shell" msgstr "Tên của chủ đề, được tải từ ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Đóng" msgstr "Đóng"
#: extensions/window-list/extension.js:129 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Thôi thu nhỏ" msgstr "Thôi thu nhỏ"
#: extensions/window-list/extension.js:130 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Thu nhỏ" msgstr "Thu nhỏ"
#: extensions/window-list/extension.js:136 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Thôi phóng lớn" msgstr "Thôi phóng hết cỡ"
#: extensions/window-list/extension.js:137 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Phóng to hết cỡ" msgstr "Phóng to hết cỡ"
#: extensions/window-list/extension.js:420 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Thu nhỏ tất cả" msgstr "Thu nhỏ tất cả"
#: extensions/window-list/extension.js:428 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Thôi thu nhỏ tất cả" msgstr "Thôi thu nhỏ tất cả"
#: extensions/window-list/extension.js:436 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Phóng to tất cả" msgstr "Phóng to tất cả"
#: extensions/window-list/extension.js:445 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Thôi phóng to tất cả" msgstr "Thôi phóng to tất cả"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Đóng tất cả" msgstr "Đóng tất cả"
#: extensions/window-list/extension.js:678 #: extensions/window-list/extension.js:734
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Bộ chỉ thị không gian làm việc"
#: extensions/window-list/extension.js:842
msgid "Window List" msgid "Window List"
msgstr "Danh sách cửa sổ" msgstr "Danh sách cửa sổ"
@@ -310,10 +200,21 @@ msgstr ""
"cửa số. Các giá trị có thể là “never”, “auto” và “always”." "cửa số. Các giá trị có thể là “never”, “auto” và “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Hiển thị các cửa sổ trong mọi không gian làm việc"
#: 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 ""
"Có hiển thị các cửa sổ từ mọi không gian làm việc hay chỉ trên màn hình hiện "
"tại mà thôi."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors" msgid "Show the window list on all monitors"
msgstr "Hiển thị danh sách cửa sổ ở mọi màn hình" msgstr "Hiển thị danh sách cửa sổ ở mọi màn hình"
#: 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 "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
@@ -321,39 +222,123 @@ msgstr ""
"Có hiển thị danh sách cửa sổ trên mọi màn hình đã kết nối hay chỉ trên màn " "Có hiển thị danh sách cửa sổ trên mọi màn hình đã kết nối hay chỉ trên màn "
"hình chính mà thôi." "hình chính mà thôi."
#: extensions/window-list/prefs.js:32 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Nhóm cửa sổ lại" msgstr "Nhóm cửa sổ lại"
#: extensions/window-list/prefs.js:50 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Không bao giờ nhóm các cửa sổ lại với nhau" msgstr "Không bao giờ nhóm các cửa sổ lại với nhau"
#: extensions/window-list/prefs.js:51 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Nhóm các cửa sổ lại với nhau khi không đủ chỗ" msgstr "Nhóm các cửa sổ lại với nhau khi không đủ chỗ"
#: extensions/window-list/prefs.js:52 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Luôn nhóm các cửa sổ lại với nhau" msgstr "Luôn nhóm các cửa sổ lại với nhau"
#: extensions/window-list/prefs.js:75 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Hiển thị trên mọi màn hình" msgstr "Hiển thị trên mọi màn hình"
#: extensions/workspace-indicator/prefs.js:141 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Bộ chỉ thị không gian làm việc"
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Tên không gian làm việc" msgstr "Tên không gian làm việc"
#: extensions/workspace-indicator/prefs.js:157 #: extensions/workspace-indicator/prefs.js:67
msgid "Name"
msgstr "Tên"
#: extensions/workspace-indicator/prefs.js:198
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Không gian làm việc %d" msgstr "Không gian làm việc %d"
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Thêm Không gian làm việc"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Gắn hộp thoại dạng luôn nằm trên cửa sổ mẹ"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy Hệ vỏ GNOME."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Sắp xếp các nút trên thanh tiêu đề"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Khóa này sẽ đè lên khóa có trong org.gnome.desktop.wm.preferences khi "
#~ "đang chạy Hệ vỏ GNOME."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Không gian làm việc chỉ ở trên màn hình chính"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển"
#~ msgid "Thumbnail only"
#~ msgstr "Chỉ ảnh nhỏ"
#~ msgid "Application icon only"
#~ msgstr "Chỉ có ảnh nhỏ đại diện cho ứng dụng"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Ảnh thu nhỏ và biểu tượng của ứng dụng"
#~ msgid "Present windows as"
#~ msgstr "Cửa sổ hiện tại như là"
#~ msgid "Activities Overview"
#~ msgstr "Tổng quan hoạt động"
#~ msgid "Application"
#~ msgstr "Ứng dụng"
#~ msgid "Create new matching rule"
#~ msgstr "Tạo mới một quy tắc khớp mẫu"
#~ msgid "Add"
#~ msgstr "Thêm"
#~ msgid "Hello, world!"
#~ msgstr "Xin chào!"
#~ msgid "Alternative greeting text."
#~ msgstr "Lời chào thay thế."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Nếu không rỗng, nó sẽ chứa chữ mà chữ này sẽ được hiển thị khi bấm chuột "
#~ "trên bảng điều khiển."
#~ msgid "Message"
#~ msgstr "Thông báo"
#~ 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 ""
#~ "Ví dụ có mục đích hướng dẫn làm cách nào để xây dựng các phần mở rộng "
#~ "chạy tốt cho Hệ vỏ và do vậy nó chỉ có một ít chức năng.\n"
#~ "Tuy thế nó có khả năng cá nhân hóa lời chào."
#~ msgid "Name"
#~ msgstr "Tên"
#~ msgid "CPU" #~ msgid "CPU"
#~ msgstr "CPU" #~ msgstr "CPU"