Compare commits

...

155 Commits

Author SHA1 Message Date
Florian Müllner
d36a196540 Bump version to 3.33.91
Update NEWS.
2019-08-21 20:00:22 +00:00
Florian Müllner
9077687c0a places-menu: Fix loop
Fix fallout from commit 63c07bdc73.
2019-08-21 20:00:22 +00:00
Florian Müllner
fcbfaec53e apps-menu: Adjust to mutter API change
The global grab API got dropped from mutter's Clutter fork, so use the
corresponding input device API instead.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/90
2019-08-21 19:39:11 +02:00
Florian Müllner
7c170e7e90 cleanup: Always use type-safe comparisons
The type coercion performed by the regular == and != operators can
have surprising results. It is therefore considered good practice
to use the type-safe === and !== variants instead.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
ed7a292805 cleanup: Don't use comparison operator when checking falsy values
We mostly use the regular == and != comparison operators over their
type-safe === and !== counterparts. This is about to change, but there
are some places where we don't care whether a value is null, undefined
or 0; just check for falsiness there instead of using operators, so
we can start to consistently use the type-safe operators everywhere
else in a follow-up commit.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
eb79f5b512 cleanup: Require "dangling" commas
Since ES5, trailing commas in arrays and object literals are valid.
We generally haven't used them so far, but they are actually a good
idea, as they make additions and removals in diffs much cleaner.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
eceff51ba1 cleanup: Use consistent brace style of blocks
Our coding style has always been to avoid braces when all blocks
are single-lines. Make sure we apply that style consistently.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
63c07bdc73 cleanup: Don't shadow variables
Having variables that share the same name in overlapping scopes is
confusing and error-prone, and is best avoided.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
fdc3dda484 cleanup: Fix stray/missing spaces
Those are wrong according to our style guidelines, but the previous
eslint ruleset didn't catch them.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:44 +00:00
Florian Müllner
fca516e58a cleanup: Disambiguate assignments in arrow functions
As arrow functions have an implicit return value, an assignment of
this.foo = bar could have been intended as a this.foo === bar
comparison. To catch those errors, we will disallow these kinds
of assignments unless they are marked explicitly by an extra pair
of parentheses.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
c14f7f6fb8 cleanup: Use consistent style for ternary operator
We are currently inconsistent whether to put the operators in front
of the corresonding line or at the end of the preceding one. The
former makes more sense, so go with that.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
2497dc6d31 cleanup: Use object destructuring where possible
ES6's destructuring is a nice way of assigning a variable in a concise way,
without duplicating the name of the object property. Use it consistently
where possible.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
a1f38d818d cleanup: Use some more array destructuring
Array destructuring has been supported by gjs/mozjs for quite some time,
so we are already using it heavily where it makes sense.

However one place still sneaked through where using destructuring makes
sense, as the element's position has semantic meaning (instead of just
making it the first, second, ... element).

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
9646149f9a cleanup: Use object shorthand where possible
ES6 allows to omit property names where they match the name of the
assigned variable, which makes code less redundant and thus cleaner.
We will soon enforce that in our eslint rules, so make sure we use
the shorthand wherever possible.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
b6d02f8e1f cleanup: Use operator shorthands where possible
Shorthands like a += b are well-established, so prefer them over the
less concise a = a + b.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
5f96b3c11c cleanup: Don't omit parens when constructing
While it is legal to omit parentheses when invoking a constructor
with no arguments, we generally avoid that in our coding style.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
e217f23767 cleanup: Avoid unnecessary parentheses
Extra parentheses usually add noise rather than clarity, so avoid
them.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
579a290bae screenshot-window-sizer: Rearrange calculation
eslint has a rule to prohibit unnecessary parentheses. While this is
generally a good idea stylistically, the parentheses in a calculation
of (a / b) * c add more clarity, as a / b * c lacks the unambiguity of
proper math notation:

   a                a
  --- * c   vs   -------
   b              b * c

We can still follow the style rule by rearranging to the unambiguous
c * a / b.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
2dc4325a90 places-menu: Use spread operator for variadic function
Invoking functions via Function.prototype.apply() and .call() is
less performant than a regular function call, and makes code harder
to read.

Before ES6 there was no other way of writing a function with variadic
arguments, but since we now have the spread operator, we can use that
as the better alternative.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
376502e952 windowsNavigator: Don't add linebreak before operator
When breaking overly long conditions into multiple lines, the operator
should end the previous line instead of starting the new one.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
91c9982d7f workspace-indicator: Remove some inactive code
This code has been commented out since it was added, presumably due to
difficulty in avoiding a cycle of reloading rows on settings changes
and writing settings on row changes.

Considering that the setting changing while the preference dialog is
up is extremely unlikely, don't bother with making it work and just
remove the dead code.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
c721121a2d native-window-placement: Fix weird comment styles
Don't use gtk-doc style comments for regular comments, and WTF is
/// comment ////?!

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
4007b61cf2 apps-menu: Minor cleanup
We have a much more idiomatic way of transforming one array
into another than pushing values while iterating over the
original array ...

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Florian Müllner
2655419880 lint: Sync configuration with gjs
gjs updated its eslint configuration to a much more complete and
thorough set.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/91
2019-08-21 15:13:43 +00:00
Danial Behzadi
9f1b52c852 Update Persian translation 2019-08-21 11:31:51 +00:00
Jordi Mas
d375cac32e Update Catalan translation 2019-08-21 09:18:10 +02:00
Piotr Drąg
66e2b32c8f Update Polish translation 2019-08-20 19:24:05 +02:00
Daniel Mustieles
95dd651b29 Updated Spanish translation 2019-08-20 12:43:32 +02:00
Aurimas Černius
1534e50a15 Updated Lithuanian translation 2019-08-18 22:07:01 +03:00
Florentina Mușat
23781abead Update Romanian translation 2019-08-18 12:25:30 +00:00
Jiri Grönroos
8065d38fdd Update Finnish translation 2019-08-17 13:00:55 +00:00
Kukuh Syafaat
05faa0763b Update Indonesian translation 2019-08-16 08:44:06 +00:00
Marek Černocký
e88cd44b3c Updated Czech translation 2019-08-16 10:20:25 +02:00
Florian Müllner
85fa282153 lint: Convert eslint JSON to YAML
gjs will change its configuration to YAML, so switch to that format
to keep syncing possible.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/90
2019-08-14 16:34:45 +00:00
Florian Müllner
119da3291b ci: Import run-eslint script from gnome-shell
Since we dropped the legacy configuration, we run eslint directly
instead of via a script. However gnome-shell's variant of the script
also has special treatment of merge requests to only consider errors
in changed lines.

While we strive for zero errors, new errors can appear when we update
eslint or change the configuration. Not blocking merge requests due
to unrelated eslint errors is a good thing, run eslint through a
modified version of the gnome-shell script.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/90
2019-08-14 16:34:45 +00:00
Anders Jonsson
6675d1c55d Update Swedish translation 2019-08-12 19:32:37 +00:00
Asier Sarasua Garmendia
be1a22069a Update Basque translation 2019-08-12 06:20:02 +00:00
Asier Sarasua Garmendia
2b9162b79d Update Basque translation 2019-08-11 13:48:18 +00:00
Florian Müllner
6aab09bd06 screenshot-window-sizer: Fix imports
Since we replaced Tweener with Clutter animations, we must import the
latter and don't need the former.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/88
2019-08-10 18:33:18 +02:00
Florian Müllner
c336e7d70e Bump version to 3.33.90
Update NEWS.
2019-08-10 00:41:55 +02:00
Florian Müllner
f486dfa112 Update sass submodule 2019-08-10 00:40:11 +02:00
Florian Müllner
80de26dc16 cleanup: Stop using Tweener
gnome-shell added convenience API for Clutter animations and replaced
Tweener everywhere; follow suite and do the same.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/87
2019-08-10 00:27:20 +02:00
Florian Müllner
af6f5fea54 window-list: Adjust animation time
gnome-shell changed all animations times to use milliseconds.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/86
2019-08-10 00:25:08 +02:00
Florian Müllner
9743054174 window-list: Don't override existing signal
Since commit b6a6de9bb5 turned WindowPicker into a ClutterActor
subclass, we already have a 'scroll-event' signal and don't need
to define our own.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/86
2019-08-10 00:25:08 +02:00
Florian Müllner
827af154b8 window-list: Support showing windows from all workspaces
gnome-panel's window list applet has such an option, so let's support
it as well.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/154
2019-08-09 22:20:43 +00:00
Jor Teron
f9b87f9b44 Update Karbi translation 2019-07-25 10:46:02 +00:00
Florian Müllner
a41bcd4f10 Bump version to 3.33.4
Update NEWS.
2019-07-20 18:09:56 +02:00
Piotr Drąg
1a13f29b0c Update POTFILES.in 2019-07-20 14:01:47 +02:00
Florian Müllner
b6a6de9bb5 window-list: Actorize
gnome-shell is in the process of moving from composition to subclassing.
Do the same here, and use custom actor classes instead of "actor" and
"_delegate" properties.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/84
2019-07-20 00:20:51 +02:00
Florian Müllner
5b7631898c cleanup: Use GObject.NotImplementedError
Since version 1.50.0, gjs defines GObject.NotImplementedError for throwing
errors when a virtual method that requires a subclass implementation is not
defined.

So use this instead of a generic JS Error in such cases.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/84
2019-07-20 00:20:51 +02:00
Florian Müllner
f8bae05036 cleanup: Stop using PopupMenuItem.actor properties
Popup menu items are now actor subclasses, and their actor property
points to the item itself.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/84
2019-07-20 00:20:51 +02:00
Florian Müllner
60c75e5fcf classic: Add 'horizontal-workspaces' extension
Vertical workspaces are another defining characteristics of GNOME 3,
and thus rather un-classic. That switch was driven by the overall
layout of the overview, and now that we disable the overview in
GNOME Classic, we can just return to the traditional workspace
layout as well.

Add a small extension that does just that.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/72
2019-07-19 13:54:09 +02:00
Florian Müllner
c6d2063f4d workspace-indicator: Show previews in workspace switcher
Currently the new horizontal workspace switcher only shows a series of
buttons, with no indication of the workspaces' contents. Go full GNOME 2
and add tiny draggable preview rectangles that represent the windows
on a particular workspace.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/77
2019-07-19 13:48:21 +02:00
Florian Müllner
52f373fb70 workspace-indicator: Support horizontal workspace layout
Just like we did for the workspace indicator in the window-list, improve
the handling of horizontal workspace layouts by showing the switcher
in-place instead of delegating the functionality to a menu.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:42:44 +02:00
Florian Müllner
283a1ec5c2 workspace-indicator: Minor cleanup
Pass the style class at construction time instead of setting it later.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
c516f05927 workspace-indicator: Refactor workspace signal handlers
We are about to support a separate representation if horizontal
workspaces are used. To prepare for that, rename the handlers to
something more generic and split out menu-specific bits into a
dedicated helper function.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
e836a9e5e0 workspace-indicator: Minor cleanup
Mutter has a dedicated method for getting the index of the active
workspace, use that instead of getting first the active workspace
and then its index.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
d1674c5f75 workspace-indicator: Update workspace names in-place
There's no good reason to rebuild the entire menu on workspace names
changes, we can simply update the labels in-place.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
9fa283877c workspace-indicator: Make some properties private
There's no reason why they should be public.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
f1a154207f workspace-indicator: Fix whitespace error
We only want a single space before and after operators, not at least
one. Unfortunately eslint only enforces the latter ...

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/71
2019-07-19 13:24:50 +02:00
Florian Müllner
5b07dfded9 window-list: Show previews in workspace switcher
Currently the new horizontal workspace switcher only shows a series of
buttons, with no indication of the workspaces' contents. Go full GNOME 2
and add tiny draggable preview rectangles that represent the windows
on a particular workspace.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/74
2019-07-19 13:16:40 +02:00
Florian Müllner
9f9dbd579b window-list: Turn workspace thumbs into drop targets
It makes some sense to allow using the workspace indicator for moving
windows between workspaces as well as for workspace switching. This
applies particularly in GNOME classic after we disabled the overview
there, so that there is again a non-shortcut way of moving windows
between workspaces.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/74
2019-07-19 13:15:52 +02:00
Florian Müllner
c9477dd94d window-list: Support horizontal workspace layout
Unlike in GNOME 2, the workspace indicator we display in the window list
isn't a workspace switcher, but a menu button that allows switching
workspaces via its menu. The reason for that is that a horizontal
in-place switcher would be at odds with the vertical workspace layout
used in GNOME 3.

However that reasoning doesn't apply when the layout is changed to a
horizontal one, so replace the button with a traditional workspace
switcher in that case.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:22 +02:00
Florian Müllner
5a30ebe403 window-list: Refactor workspace signal handlers
We are about to support a separate representation if horizontal
workspaces are used. To prepare for that, rename the handlers to
something more generic and split out menu-specific bits into a
dedicated helper function.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:15 +02:00
Florian Müllner
a5f347ba10 window-list: Improve workspace label styling
The border currently looks off - it extends all the way vertically
and leaves zero spacing to the label horizontally. Fix both issues
by setting appropriate padding/margins.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:09 +02:00
Florian Müllner
dab326c17e window-list: Minor cleanup
Mutter has a dedicated method for getting the index of the active
workspace, use that instead of getting first the active workspace
and then its index.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:09 +02:00
Florian Müllner
bdf6af3ee3 window-list: Update workspace names in-place
There's no good reason to rebuild the entire menu on workspace names
changes, we can simply update the labels in-place.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:09 +02:00
Florian Müllner
1532c15325 window-list: Make some properties private
There's no reason why they should be public.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:09 +02:00
Florian Müllner
cbd1b7d983 window-list: Use a more specific GTypeName for workspace indicator
Now that the class inherits from GObject, the generic name easily
conflicts with other classes otherwise, for example with the one
from the workspace-indicator extension.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:09 +02:00
Florian Müllner
4b9c53ff2e window-list: Split out workspaceIndicator
The extension has grown unwieldily big, so before starting to improve
on the workspace indicator, move it to its own source file.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/70
2019-07-19 13:11:09 +02:00
Florian Müllner
6eb3a62e2b apps-menu: Add drop-shadow to application icons
... to make sure they are readable on light backgrounds.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/168
2019-07-18 11:17:04 +00:00
Florian Müllner
0469fc6aa9 Update sass submodule (again) 2019-07-18 12:32:15 +02:00
Florian Müllner
1f6f22010e Update sass submodule 2019-07-18 12:24:15 +02:00
Jakub Steiner
ae1b17d29c classic: Update window-list styling
Make buttons flatter, rounder to match default styling.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/82
2019-07-16 11:17:11 +02:00
Jakub Steiner
3fa750ce17 classic: No special casing of notifications
The default already handles light variant.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/82
2019-07-16 11:17:10 +02:00
Jakub Steiner
56e2a570e3 classic: hover state for panel buttons
- prelight before active
- lighten up slightly, similar to what the default does (inverted)

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/169
2019-07-15 23:45:03 +02:00
Jor Teron
167f0be6b4 Update Karbi translation 2019-07-16 02:51:57 +00:00
Jor Teron
80eb29bd51 Add Karbi translation 2019-07-14 04:30:50 +00:00
Florian Müllner
f2b261c573 window-list: Handle closing window picker with Escape
Just like the overview can be closed with Escape, it makes sense to
allow the same for the window picker (in addition to pressing super
repeatedly).

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/80
2019-07-02 21:20:01 +02:00
Florian Müllner
6c49ca825c window-list: Move super-key handling into WindowPicker
We have an option to put a window list on each monitor, so we may have
more than one window picker toggle. We don't want each of those try to
toggle the window picker simultanuously, so move handling of the super
key directly into the picker.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/80
2019-07-02 21:20:01 +02:00
Florian Müllner
6a25971366 lint: Also allow camelcase for default signal handlers
on_some_signal() is used less than vfunc_some_method(), but it can
still be useful.
2019-07-02 02:44:22 +02:00
Florian Müllner
dc3523a344 lint: Remove misleading globals
While those are defined by gnome-shell, we generally want to define our
own with the correct gettext domain.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/79
2019-06-29 03:07:56 +02:00
Florian Müllner
2ef6dba0a5 window-list: Fix resetting handler ID
This is embarrassing, although destroy() is expected to only run once,
so the bug shouldn't have an effect in practice.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/78
2019-06-29 02:56:33 +02:00
Florian Müllner
92db87f7cb window-list: Add window picker button
With the latest changes, GNOME Classic has become so classic that it
is bordering dull. Salvage at least a tiny piece of GNOME 3 in form
of a window-pick button which toggles an exposé-like reduced overview.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/73
2019-06-28 23:02:58 +02:00
Florian Müllner
82d2011061 classic: Disable overview
The overview is one of the defining features of GNOME 3, and thus
almost by definition at odds with the classic session, which
emulates a traditional GNOME 2 desktop.

Even with the less prominent placement inside the application menu
it never quite fit in - it doesn't help that besides the different
UI paradigma, the overview keeps its "normal" styling which differs
greatly with classic's normal mode.

So besides removing the "Activities" button via the session mode
definition, now that the apps-menu extension doesn't replace it anymore,
disable the overview completely in the classic session.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69
2019-06-28 20:55:28 +00:00
Florian Müllner
545b811562 apps-menu: Hide overview when launching app
Now that we no longer hide the overview when the menu is opened,
it is possible to activate menu entries from the overview. Start
hiding the overview in that case, which is consistent with app
launching elsewhere.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69
2019-06-28 20:55:28 +00:00
Florian Müllner
d99d0a06bd apps-menu: Stop hiding the overview when toggled
Now that the extension no longer doubles as the "Activities" button,
that behavior is confusing.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69
2019-06-28 20:55:28 +00:00
Florian Müllner
6105eecff2 apps-menu: Stop taking over Activities button
We don't want the "Activities" button in GNOME Classic, but the current
way of handling it is confusing:

 - the button is hidden, but the corresponding hot corner
   sometimes works (when the application menu isn't open)

 - the button is effectively moved inside the menu, although
   it's clearly not an app or category

 - the apps-menu can be used independent from classic mode, in
   which case removing the "Activities" button may not be wanted

Address those points by removing any handling of the activities button
from the apps-menu extension. We will remove it again from the classic
session via a session mode tweak.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69
2019-06-28 20:55:28 +00:00
Florian Müllner
d1254d9b57 places-menu: Don't hardcode position
The extension currently assumes that we have the "Activities" button
at the left of the top bar. This is currently true, not only in the
regular session, but also in GNOME classic where the button is hidden
(but still present).

However this is about to change: We will stop taking over the button
from the apps-menu extension, and instead disable "Activities" from
the session mode definition.

Prepare for this by adding the places menu before the application menu
instead of assuming a hardcoded position.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/69
2019-06-28 20:55:28 +00:00
Florian Müllner
2db4589dea cleanup: Re-order imports
They should be grouped between external (GI/gjs) and shell and in
alphabetical order. Until commit bab4be1a ExtensionUtils was special
as it was required for some imports, but that's no longer the case
for most extensions.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/76
2019-06-28 21:51:38 +02:00
Florian Müllner
dfeb99fc0a apps-menu: Add missing chain-up
PanelMenu.Button is a bit weird in that it also "contains" its parent
actor. That container is supposed to be destroyed with the button, but
as we currently don't chain up to the parent class' _onDestroy(), we
leave behind an empty container every time the extension is disabled.

Fix this by adding the missing chain-up.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/75
2019-06-27 04:26:35 +02:00
Florian Müllner
48ea80d391 Bump version to 3.33.3
Update NEWS.
2019-06-24 20:34:02 +02:00
Jakub Steiner
b138e218bb classic: fix a broken build
- redesign of the default theme nuked some local variables
  breaking the build.
2019-06-24 20:28:03 +02:00
Florian Müllner
829440f546 Update sass submodule 2019-06-24 20:02:18 +02:00
Marco Trevisan (Treviño)
14859b4009 window-list: Pass the actor as PopupMenuManager owner
PopupMenuManager's grabHelper starting from gnome-shell@7bb84da must be
an actor, so pass it explicitly instead of expecting the shell to do it
for us.

This fixes an error during pushModal that was causing a grab not to be
released.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/68
2019-05-29 14:45:43 -05:00
Florian Müllner
3a596054ad places-menu: Adjust to GObject-ification of menu items
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
Florian Müllner
65191d83b4 drive-menu: Adjust to GObject-ification of menu items
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
Florian Müllner
8499b0e254 apps-menu: Adjust to GObject-ification of menu items
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
Florian Müllner
f166ca501f window-list: Stop using deprecated actor property
Since PanelMenu.Button was changed to inherit from St.Widget, its actor
property is deprecated and points to itself. Stop using it to avoid the
corresponding warning.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/67
2019-05-29 09:38:21 +00:00
Florian Müllner
a36331522f Bump version to 3.33.2
Update NEWS.
2019-05-22 18:58:31 +00:00
Florian Müllner
25e43a5d08 lint: Remove legacy configuration
After the last batch of indentation changes, the whole code base
conforms to the new style now, so we can drop the legacy eslint
configuration.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:19 +02:00
Florian Müllner
ad914441a2 window-list: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:19 +02:00
Florian Müllner
200d337769 apps-menu: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:19 +02:00
Florian Müllner
e56f1a976e native-window-placement: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:19 +02:00
Florian Müllner
6a66cd4fa6 places-menu: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:19 +02:00
Florian Müllner
55c493389a auto-move-windows: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:18 +02:00
Florian Müllner
06f1303834 drive-menu: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:18 +02:00
Florian Müllner
3d5687ae3c workspace-indicator: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:18 +02:00
Florian Müllner
cdd3fba593 screenshot-window-sizer: Reindent to conform with new style
Instead of aligning arguments like we used to do, use a consistent
four-space indent as mandated by gjs' current style guide.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/66
2019-05-22 20:40:18 +02:00
Florian Müllner
f11c101878 Bump version to 3.33.1
Update NEWS.
2019-05-14 17:53:56 +00:00
Florian Müllner
7c412ca7d9 window-list: Don't use anchor point
It is deprecated and we can easily replace it with a translation.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/64
2019-04-28 11:08:02 +00:00
Florian Müllner
e3a6e8f82c Bump version to 3.32.1
Update NEWS.
2019-04-17 22:09:40 +02:00
Florian Müllner
ce10ad64c4 Update sass submodule 2019-04-17 22:06:50 +02:00
Adrien Plazas
5b43d4733c screenshot-window-sizer: Add phone screenshot sizes
This is going to be convenient to take fake screenshots for phones like
the Librem 5.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/65
2019-04-12 14:31:53 +02:00
Florian Müllner
3671d5a299 cleanup: Use an extension object instead of globals
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/143
2019-04-08 06:00:29 +00:00
Florian Müllner
a024d9f005 windowsNavigator: Use subclasses instead of injections
gnome-shell moved to ES6 classes, which means the constructor is
no longer a regular method that we can swap out with an injected
version.

Instead, do our modifications in subclasses and use them to replace
the original classes.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/143
2019-04-08 06:00:29 +00:00
Fabian P. Schmidt
d94a3500f6 README: Re-add extension alternate-tab with obsolescence notice
This commit adds a short notice about the former extension
alternate-tab to the README. This notice should be removed once
the traffic of users searching for this obsolete extension settled
down.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/62
2019-03-20 12:00:08 +01:00
Florian Müllner
78141e6433 Bump version to 3.32.0
Update NEWS.
2019-03-12 00:02:14 +01:00
Florian Müllner
dd53fb8eb7 Update sass submodule 2019-03-12 00:01:26 +01:00
Mart Raudsepp
6cd2be452b Update Estonian translation 2019-03-10 17:27:41 +00:00
Kristjan SCHMIDT
36abd576b5 Update Esperanto translation 2019-03-06 21:15:21 +00:00
Victor Ibragimov
730547b3e1 Update Tajik Translation 2019-03-06 21:03:41 +05:00
Florian Müllner
e7e6b882a3 Bump version to 3.31.92
Update NEWS.
2019-03-05 06:07:01 +01:00
Florian Müllner
53f92f2910 Update sass submodule 2019-03-05 06:05:05 +01:00
Florian Müllner
a26380d56e user-theme: Clarify some code
Commit 2582ab accidentally pointed out that the current theme loading code
obfuscates which directories are searched for themes. Rewrite it with modern
JS features to make it more obvious.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:18 +01:00
Florian Müllner
ab334d95e0 Revert "User theme: compatibility with XDG Base Directory"
We already handled themes in XDG_DATA_HOME before commit 2582ab
by prepending it to the system dirs.

This reverts commit 2582ab4fd0.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
7e5726e632 apps-menu: Promisify marking file as trusted
Use async/await to make nested operations easier to read.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
95b40069bf apps-menu: Remove unnecessary check
The function is always called with an array parameter (albeit it may
be empty), so remove the unnecessary check and cut down on indentation.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
bd9f1cfd91 apps-menu: Avoid deep nesting
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
81548ced69 native-window-placement: Clarify some code
Add some intermediate variables for better legibility.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
a378e5fc34 placesDisplay: Promisify launching
Use async/await to make nested async operations easier to read.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
56d19ad480 placesMenu: Add early return to reduce indentation level
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
a071685c13 auto-move-windows: Clarify some code
Apply some tricks to align column numbers with their corresponding
values for better legibility.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
599428d292 auto-move-windows: De-duplicate row appending
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
1f1f9664a6 cleanup: Share unmount/eject arugments
Besides the callback, eject and unmount share the same arguments.
Make this explicit by sharing the common arguments between branches.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
fb039c0fb5 cleanup: Use Meta.MaximizeFlags.BOTH
This shorthand has been around for a long time, use it make (un)maximize
code more readable.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/60
2019-03-04 19:35:10 +01:00
Florian Müllner
6e63edd737 lint: Sync with gjs
Some of our custom rules have been upstreamed[0], update the
rule sets accordingly.

[0] https://gitlab.gnome.org/GNOME/gjs/merge_requests/272
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/59
2019-03-03 05:54:58 +01:00
Florian Müllner
55ecd3939e ci: Switch to extension-ci image
gnome-shell now provides a docker image with useful tools for extension CI;
as it contains everything we need, we can speed up CI by not running the
package manager.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/58
2019-02-28 23:54:46 +01:00
Florian Müllner
d83d6e857a style: Use single-quotes for translated strings
The coding style of using double quotes for translatable strings
and single quotes otherwise is unnecessarily complex and cannot
be enforced with an eslint rule.

Simply use single quotes consistently for all strings.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:31 +01:00
Florian Müllner
db35d7ae7c style: Change indentation style of object literals
Instead of keeping the first property on the same line as the opening
brace and aligning the properties, use a four-space indent. This brings
us closer to gjs' coding style, and as a bonus helps keeping lines in
the soft 80 character limit.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:24 +01:00
Florian Müllner
d34b5030b9 style: Use a consistent style for array literals
Most array literals already use a four-space indent, except the ones in
GObject metainfo and function parameters. Reindent those as well to make
the style consistent and bring it closer to gjs' coding style.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:14 +01:00
Florian Müllner
7f8f1234ae style: Stop using braces for single-line arrow functions
Braces are optional for single-line arrow functions, but there's a
subtle difference:
Without braces, the expression is implicitly used as return value; with
braces, the function returns nothing unless there's an explicit return.

We currently reflect that in our style by only omitting braces when the
function is expected to have a return value, but that's not very obvious,
not an important differentiation to make, and not easy to express in an
automatic rule.

So just omit braces consistently as mandated by gjs' coding style.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:29:05 +01:00
Florian Müllner
9b25a227c6 style: Don't exempt ternary expressions from indent rule
It turns out we can comply with gjs' coding style and still align the
branches if line breaks are required, so do that to reduce diversion
from the canonical GNOME style.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:28:55 +01:00
Florian Müllner
78580bc3a8 lint: Remove unused rules
We picked those up from Polari, which had those for

 - object arrays:
    let foo = [
        { bar: 42,
          quz: true },
        { bar: 23,
          quz: false }
    ];

 - "enums":

    let Options = {
        ONE:   0,
        TWO:   1,
        THREE: 2
    };

We don't have either of those, so drop the rules to minimise divergence
with gjs.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:28:44 +01:00
Florian Müllner
b50074fd37 lint: Restrict deprecated Lang API
Now that we moved to ES standard replacements, let's make sure they
don't creep back in accidentally.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/57
2019-02-28 23:28:33 +01:00
Florian Müllner
d5a1044244 Bump version to 3.31.91
Update NEWS.
2019-02-21 22:41:20 +01:00
Florian Müllner
11cad1f3b3 Update sass submodule
https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/56
2019-02-21 22:23:52 +01:00
Tomasz Gąsior
2582ab4fd0 User theme: compatibility with XDG Base Directory
See https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/55
2019-02-20 01:15:49 +01:00
Gun Chleoc
5a06de606d Update Scottish Gaelic translation
(cherry picked from commit c394dbefba216e685fb01c4268c7bb0db93728ff)
2019-02-16 09:34:54 +00:00
Florian Müllner
4671c24b78 places-menu: Stop using deprecated Mainloop module
Just use the underlying GLib functions directly.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/54
2019-02-16 00:49:44 +01:00
Florian Müllner
0d41643866 cleanup: Use destructuring for imports from GI
This is *much* nicer than repetitive "imports.gi" lines ...

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/54
2019-02-16 00:49:44 +01:00
Florian Müllner
d8f7d70c10 apps-menu: Remove outdated legacy-tray handling
The tray is long gone, so trying to access it will result in
warnings.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/53
2019-02-16 00:40:55 +01:00
Florian Müllner
cbd981351e ci: Check for issue/MR URLs in commit messages
Commit messages should include the full URL to an issue or merge
request to keep associated information easily available in future
log digging.

Jonas came up with a script to enforce that policy for mutter and
gnome-shell. It's an excellent idea, so adopt it here as well.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/merge_requests/52
2019-02-16 00:03:49 +01:00
Matej Urbančič
434185ba03 Added Slovenian translation 2019-02-12 20:52:31 +01:00
Florian Müllner
abc8877d11 Update sass submodule 2019-02-07 17:44:44 +01:00
62 changed files with 4935 additions and 3860 deletions

View File

@@ -1,6 +0,0 @@
{
"extends": [
"./lint/eslintrc-gjs.json",
"./lint/eslintrc-shell.json"
]
}

3
.eslintrc.yml Normal file
View File

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

View File

@@ -1,25 +1,37 @@
stages:
- commit_check
- source_check
- build
variables:
LINT_LOG: "eslint-report.txt"
.only_default: &only_default
only:
- branches
- tags
- merge_requests
check_commit_log:
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis
stage: commit_check
script:
- ./.gitlab-ci/check-commit-log.sh
only:
- merge_requests
eslint:
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: source_check
script:
- sh lint/generate-report.sh -o $LINT_LOG || { cat $LINT_LOG; false; }
- ./.gitlab-ci/run-eslint.sh
<<: *only_default
artifacts:
paths:
- ${LINT_LOG}
- reports
when: on_failure
build-shell-extensions:
image: fedora:latest
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v1
stage: build
before_script:
- dnf install -y meson gettext mozjs60-devel
script:
- meson _build .
- ninja -C _build test install
<<: *only_default

31
.gitlab-ci/check-commit-log.sh Executable file
View File

@@ -0,0 +1,31 @@
#!/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

78
.gitlab-ci/run-eslint.sh Executable file
View File

@@ -0,0 +1,78 @@
#!/usr/bin/env bash
OUTPUT_REGULAR=reports/lint-report.txt
OUTPUT_MR=reports/lint-mr-report.txt
SRCDIR=extensions
LINE_CHANGES=changed-lines.txt
is_empty() {
(! grep -q . $1)
}
run_eslint() {
# ensure output exists even if eslint doesn't report any errors
mkdir -p $(dirname $OUTPUT_REGULAR)
touch $OUTPUT_REGULAR
eslint -f unix -o $OUTPUT_REGULAR $SRCDIR
}
list_commit_range_additions() {
# Turn raw context-less git-diff into a list of
# filename:lineno pairs of new (+) lines
git diff -U0 "$@" -- js |
awk '
BEGIN { file=""; }
/^+++ b/ { file=substr($0,7); }
/^@@ / {
len = split($3,a,",")
start=a[1]
count=(len > 1) ? a[2] : 1
for (line=start; line<start+count; line++)
printf "%s/%s:%d:\n",ENVIRON["PWD"],file,line;
}'
}
copy_matched_lines() {
local source=$1
local matches=$2
local target=$3
echo -n > $target
for l in $(<$matches); do
grep $l $source >> $target
done
}
# Clean up old files from previous runs
rm -f $OUTPUT_REGULAR $OUTPUT_MR $LINE_CHANGES
if [ "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
branch_point=$(git merge-base HEAD FETCH_HEAD)
commit_range=$branch_point...$CI_COMMIT_SHA
list_commit_range_additions $commit_range > $LINE_CHANGES
# Don't bother with running lint when no JS changed
if is_empty $LINE_CHANGES; then
exit 0
fi
fi
echo Generating lint report
run_eslint
echo Done.
# Just show the report and succeed when not testing a MR
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
cat $OUTPUT_REGULAR
exit 0
fi
copy_matched_lines $OUTPUT_REGULAR $LINE_CHANGES $OUTPUT_MR
cat $OUTPUT_MR
is_empty $OUTPUT_MR

100
NEWS
View File

@@ -1,3 +1,103 @@
3.33.91
=======
* Misc. bug fixes and cleanups [Florian; !88, !90, !91, !92]
Contributors:
Florian Müllner
Translators:
Asier Sarasua Garmendia [eu], Anders Jonsson [sv], Marek Černocký [cs],
Kukuh Syafaat [id], Jiri Grönroos [fi], Florentina Mușat [ro],
Aurimas Černius [lt], Daniel Mustieles [es], Piotr Drąg [pl], Jordi Mas [ca],
Danial Behzadi [fa]
3.33.90
=======
* window-list: Support showing windows from all workspaces [Florian; #154]
* Misc. bug fixes and cleanups [Florian; !86, !87]
Contributors:
Florian Müllner
Translators:
Jor Teron [mjw]
3.33.4
======
* Make GNOME Classic more classic:
- Disable GNOME 3 overview [Florian; !69]
- Add window picker button to window list [Florian; !73, !80]
- Style improvements and fixes [Jakub; #169, !82]
- Support horizontal workspace layout in window list [Florian; !70]
- Add draggable previews to window list workspace switcher [Florian; !74]
- Arrange workspaces horizontally [Florian; !72]
* workspace-indicator: Support horizontal workspace layout [Florian; !71]
* workspace-indicator: Add draggable previews [Florian; !77]
* Misc. bug fixes and cleanups [Florian; !75, !76, !79, !78, #168, !84]
Contributors:
Florian Müllner, Jakub Steiner, Jor Teron
Translators:
Jor Teron [mjw]
3.33.3
======
* Misc. bug fixes [Florian, Marco; !67, !68]
Contributors:
Florian Müllner, Marco Trevisan (Treviño)
3.33.2
======
* Misc. bug fixes and cleanups [Florian; !66]
Contributors:
Florian Müllner
3.33.1
======
* Misc. bug fixes [Florian; !64]
Contributors:
Florian Müllner
3.32.1
======
* Fix windowsNavigator extension after ES6 port [Florian; #143]
* screenshot-window-sizer: Add phone screenshot sizes [Adrien; !65]
* Misc. bug fixes and cleanups [Fabian; !62]
Contributors:
Florian Müllner, Adrien Plazas, Fabian P. Schmidt
3.32.0
======
Contributors:
Florian Müllner
Translations:
Victor Ibragimov [tg], Kristjan SCHMIDT [eo], Mart Raudsepp [et]
3.31.92
=======
* Misc. bug fixes and cleanups [Florian; !57, !58, !59, !60]
Contributors:
Florian Müllner
3.31.91
=======
* apps-menu: Remove outdated legacy-tray handling [Florian; !53]
* user-theme: Allow using XDG user data dir [Tomasz; !55]
* Misc. bug fixes and cleanups [Florian; !52, !54, !56]
Contributors:
Tomasz Gąsior, Florian Müllner
Translators:
Matej Urbančič [sl], Gun Chleoc [gd]
3.31.90
=======
* Misc. bug fixes and cleanups [Florian; !49, !50, !51]

View File

@@ -15,6 +15,12 @@ Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
## Extensions
* alternate-tab (**OBSOLETE**)
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
This extension is obsolete since GNOME 3.30, see [this blogpost][alternatetab-post]
for further details.
* apps-menu
Lets you reach an application using gnome 2.x style menu on the panel.
@@ -74,3 +80,4 @@ file for details.
[shell-page]: https://wiki.gnome.org/Projects/GnomeShell
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues
[license]: COPYING
[alternatetab-post]: https://blogs.gnome.org/fmuellner/2018/10/11/the-future-of-alternatetab-and-why-you-need-not-worry/

View File

@@ -1,8 +1,9 @@
{
"parentMode": "user",
"stylesheetName": "gnome-classic.css",
"hasOverview": false,
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
"panel": { "left": ["activities", "appMenu"],
"panel": { "left": ["appMenu"],
"center": [],
"right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"]
}

View File

@@ -32,18 +32,20 @@ $variant: 'light';
font-weight: normal;
color: $fg_color;
text-shadow: none;
&:active, &:overview, &:focus, &:checked {
// Trick due to St limitations. It needs a background to draw
// a box-shadow
background-color: $selected_bg_color !important;
color: $selected_fg_color !important;
box-shadow: none;
& > .system-status-icon { icon-shadow: none; }
}
&:hover {
color: lighten($fg_color,10%);
text-shadow: none;
& .system-status-icon { icon-shadow: none; }
}
&:active, &:overview, &:focus, &:checked {
// Trick due to St limitations. It needs a background to draw
// a box-shadow
background-color: $selected_bg_color;
color: $selected_fg_color;
box-shadow: none;
& > .system-status-icon { icon-shadow: none; }
}
.app-menu-icon { width: 0; height: 0; margin: 0; } // shell's display:none; :D
.system-status-icon {
@@ -60,9 +62,9 @@ $variant: 'light';
&.lock-screen,
&.unlock-screen,
&.login-screen {
background-color: transparentize($_bubble_bg_color, 0.5);
background-gradient-start: transparentize($_bubble_bg_color, 0.5);
background-gradient-end: transparentize($_bubble_bg_color, 0.5);
background-color: transparentize($bg_color, 0.5);
background-gradient-start: transparentize($bg_color, 0.5);
background-gradient-end: transparentize($bg_color, 0.5);
border-bottom: none;
.panel-button { color: $osd_fg_color; }
}
@@ -91,15 +93,3 @@ $variant: 'light';
background-image: url("calendar-today.svg");
}
.message-list-clear-button.button {
color: $fg_color
}
.notification-banner {
background-color: $bg_color !important;
color: $fg_color;
.notification-button {
background-color: darken($bg_color,5%);
&:hover, &focus { background-color: darken($bg_color,2%); }
}
}

View File

@@ -1,27 +1,20 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init enable disable */
const Atk = imports.gi.Atk;
const {
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St,
} = imports.gi;
const Signals = imports.signals;
const DND = imports.ui.dnd;
const GMenu = imports.gi.GMenu;
const GObject = imports.gi.GObject;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Clutter = imports.gi.Clutter;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const Meta = imports.gi.Meta;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Gtk = imports.gi.Gtk;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const Signals = imports.signals;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const appSys = Shell.AppSystem.get_default();
const APPLICATION_ICON_SIZE = 32;
@@ -29,58 +22,44 @@ const HORIZ_FACTOR = 5;
const MENU_HEIGHT_OFFSET = 132;
const NAVIGATION_REGION_OVERSHOOT = 50;
class ActivitiesMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(button) {
super();
this._button = button;
this.actor.add_child(new St.Label({ text: _("Activities Overview") }));
}
activate(event) {
this._button.menu.toggle();
Main.overview.toggle();
super.activate(event);
}
}
Gio._promisify(Gio._LocalFilePrototype, 'query_info_async', 'query_info_finish');
Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish');
var ApplicationMenuItem = GObject.registerClass(
class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(button, app) {
super();
_init(button, app) {
super._init();
this._app = app;
this._button = button;
this._iconBin = new St.Bin();
this.actor.add_child(this._iconBin);
this.add_child(this._iconBin);
let appLabel = new St.Label({ text: app.get_name(), y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this.actor.add_child(appLabel);
this.actor.label_actor = appLabel;
let appLabel = new St.Label({
text: app.get_name(),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
this.add_child(appLabel);
this.label_actor = appLabel;
let textureCache = St.TextureCache.get_default();
let iconThemeChangedId = textureCache.connect('icon-theme-changed',
this._updateIcon.bind(this));
this.actor.connect('destroy', () => {
this._updateIcon.bind(this));
this.connect('destroy', () => {
textureCache.disconnect(iconThemeChangedId);
});
this._updateIcon();
this.actor._delegate = this;
let draggable = DND.makeDraggable(this.actor);
this._delegate = this;
let draggable = DND.makeDraggable(this);
let maybeStartDrag = draggable._maybeStartDrag;
draggable._maybeStartDrag = (event) => {
draggable._maybeStartDrag = event => {
if (this._dragEnabled)
return maybeStartDrag.call(draggable, event);
return false;
};
draggable.connect('drag-begin', () => {
Shell.util_set_hidden_from_pick(Main.legacyTray.actor, true);
});
draggable.connect('drag-end', () => {
Shell.util_set_hidden_from_pick(Main.legacyTray.actor, false);
});
}
activate(event) {
@@ -88,6 +67,8 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
this._button.selectCategory(null);
this._button.menu.toggle();
super.activate(event);
Main.overview.hide();
}
setActive(active, params) {
@@ -96,8 +77,8 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
super.setActive(active, params);
}
setDragEnabled(enable) {
this._dragEnabled = enable;
setDragEnabled(enabled) {
this._dragEnabled = enabled;
}
getDragActor() {
@@ -109,13 +90,16 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
}
_updateIcon() {
this._iconBin.set_child(this.getDragActor());
let icon = this.getDragActor();
icon.style_class = 'icon-dropshadow';
this._iconBin.set_child(icon);
}
}
});
var CategoryMenuItem = GObject.registerClass(
class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(button, category) {
super();
_init(button, category) {
super._init();
this._category = category;
this._button = button;
@@ -126,10 +110,11 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
if (this._category)
name = this._category.get_name();
else
name = _("Favorites");
name = _('Favorites');
this.actor.add_child(new St.Label({ text: name }));
this.actor.connect('motion-event', this._onMotionEvent.bind(this));
this.add_child(new St.Label({ text: name }));
this.connect('motion-event', this._onMotionEvent.bind(this));
this.connect('notify::active', this._onActiveChanged.bind(this));
}
activate(event) {
@@ -139,9 +124,9 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
}
_isNavigatingSubmenu([x, y]) {
let [posX, posY] = this.actor.get_transformed_position();
let [posX, posY] = this.get_transformed_position();
if (this._oldX == -1) {
if (this._oldX === -1) {
this._oldX = x;
this._oldY = y;
return true;
@@ -154,11 +139,11 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
this._oldY = y;
// If it lies outside the x-coordinates then it is definitely outside.
if (posX > x || posX + this.actor.width < x)
if (posX > x || posX + this.width < x)
return false;
// If it lies inside the menu item then it is definitely inside.
if (posY <= y && posY + this.actor.height >= y)
if (posY <= y && posY + this.height >= y)
return true;
// We want the keep-up triangle only if the movement is more
@@ -179,37 +164,38 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
// only check for triangle ABC.
if (posY > y) {
let offset = posY - y;
y = posY + this.actor.height + offset;
y = posY + this.height + offset;
}
// Ensure that A is (0, 0).
x -= posX;
y -= posY + this.actor.height;
y -= posY + this.height;
// Check which side of line AB the point P lies on by taking the
// cross-product of AB and AP. See:
// http://stackoverflow.com/questions/3461453/determine-which-side-of-a-line-a-point-lies
if (((this.actor.width * y) - (NAVIGATION_REGION_OVERSHOOT * x)) <= 0)
if (this.width * y - NAVIGATION_REGION_OVERSHOOT * x <= 0)
return true;
return false;
}
_onMotionEvent(actor, event) {
if (!Clutter.get_pointer_grab()) {
let device = event.get_device();
if (!device.get_grabbed_actor()) {
this._oldX = -1;
this._oldY = -1;
Clutter.grab_pointer(this.actor);
device.grab(this);
}
this.actor.hover = true;
this.hover = true;
if (this._isNavigatingSubmenu(event.get_coords()))
return true;
this._oldX = -1;
this._oldY = -1;
this.actor.hover = false;
Clutter.ungrab_pointer();
this.hover = false;
device.ungrab();
let source = event.get_source();
if (source instanceof St.Widget)
@@ -218,14 +204,14 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
return false;
}
setActive(active, params) {
if (active) {
this._button.selectCategory(this._category);
this._button.scrollToCatButton(this);
}
super.setActive(active, params);
_onActiveChanged() {
if (!this.active)
return;
this._button.selectCategory(this._category);
this._button.scrollToCatButton(this);
}
}
});
class ApplicationsMenu extends PopupMenu.PopupMenu {
constructor(sourceActor, arrowAlignment, arrowSide, button) {
@@ -237,28 +223,9 @@ class ApplicationsMenu extends PopupMenu.PopupMenu {
return false;
}
open(animate) {
this._button.hotCorner.setBarrierSize(0);
if (this._button.hotCorner.actor) // fallback corner
this._button.hotCorner.actor.hide();
super.open(animate);
}
close(animate) {
let size = Main.layoutManager.panelBox.height;
this._button.hotCorner.setBarrierSize(size);
if (this._button.hotCorner.actor) // fallback corner
this._button.hotCorner.actor.show();
super.close(animate);
}
toggle() {
if (this.isOpen) {
if (this.isOpen)
this._button.selectCategory(null);
} else {
if (Main.overview.visible)
Main.overview.hide();
}
super.toggle();
}
}
@@ -270,7 +237,7 @@ class DesktopTarget {
this._windowAddedId =
global.window_group.connect('actor-added',
this._onWindowAdded.bind(this));
this._onWindowAdded.bind(this));
global.get_window_actors().forEach(a => {
this._onWindowAdded(a.get_parent(), a);
@@ -278,14 +245,14 @@ class DesktopTarget {
}
get hasDesktop() {
return this._desktop != null;
return this._desktop !== null;
}
_onWindowAdded(group, actor) {
if (!(actor instanceof Meta.WindowActor))
return;
if (actor.meta_window.get_window_type() == Meta.WindowType.DESKTOP)
if (actor.meta_window.get_window_type() === Meta.WindowType.DESKTOP)
this._setDesktop(actor);
}
@@ -314,48 +281,32 @@ class DesktopTarget {
return source._app.app_info;
}
_touchFile(file) {
let queryFlags = Gio.FileQueryInfoFlags.NONE;
let ioPriority = GLib.PRIORITY_DEFAULT;
let info = new Gio.FileInfo();
info.set_attribute_uint64(Gio.FILE_ATTRIBUTE_TIME_ACCESS,
GLib.get_real_time());
file.set_attributes_async (info, queryFlags, ioPriority, null,
(o, res) => {
try {
o.set_attributes_finish(res);
} catch (e) {
log(`Failed to update access time: ${e.message}`);
}
});
}
_markTrusted(file) {
async _markTrusted(file) {
let modeAttr = Gio.FILE_ATTRIBUTE_UNIX_MODE;
let trustedAttr = 'metadata::trusted';
let queryFlags = Gio.FileQueryInfoFlags.NONE;
let ioPriority = GLib.PRIORITY_DEFAULT;
file.query_info_async(modeAttr, queryFlags, ioPriority, null,
(o, res) => {
try {
let info = o.query_info_finish(res);
let mode = info.get_attribute_uint32(modeAttr) | 0o100;
try {
let info = await file.query_info_async(modeAttr, queryFlags, ioPriority, null);
info.set_attribute_uint32(modeAttr, mode);
info.set_attribute_string(trustedAttr, 'yes');
file.set_attributes_async (info, queryFlags, ioPriority, null,
(o, res) => {
o.set_attributes_finish(res);
let mode = info.get_attribute_uint32(modeAttr) | 0o100;
info.set_attribute_uint32(modeAttr, mode);
info.set_attribute_string(trustedAttr, 'yes');
await file.set_attributes_async(info, queryFlags, ioPriority, null);
// Hack: force nautilus to reload file info
this._touchFile(file);
});
} catch (e) {
log(`Failed to mark file as trusted: ${e.message}`);
}
});
// Hack: force nautilus to reload file info
info = new Gio.FileInfo();
info.set_attribute_uint64(
Gio.FILE_ATTRIBUTE_TIME_ACCESS, GLib.get_real_time());
try {
await file.set_attributes_async(info, queryFlags, ioPriority, null);
} catch (e) {
log(`Failed to update access time: ${e.message}`);
}
} catch (e) {
log(`Failed to mark file as trusted: ${e.message}`);
}
}
destroy() {
@@ -414,9 +365,11 @@ class ApplicationsButton extends PanelMenu.Button {
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
this._label = new St.Label({ text: _("Applications"),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this._label = new St.Label({
text: _('Applications'),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
hbox.add_child(this._label);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
@@ -424,16 +377,14 @@ class ApplicationsButton extends PanelMenu.Button {
this.name = 'panelApplications';
this.label_actor = this._label;
this.connect('captured-event', this._onCapturedEvent.bind(this));
this._showingId = Main.overview.connect('showing', () => {
this.add_accessible_state (Atk.StateType.CHECKED);
this.add_accessible_state(Atk.StateType.CHECKED);
});
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',
this._setKeybinding.bind(this));
this._setKeybinding.bind(this));
this._setKeybinding();
this._desktopTarget = new DesktopTarget();
@@ -448,14 +399,14 @@ class ApplicationsButton extends PanelMenu.Button {
this._tree = new GMenu.Tree({ menu_basename: 'applications.menu' });
this._treeChangedId = this._tree.connect('changed',
this._onTreeChanged.bind(this));
this._onTreeChanged.bind(this));
this._applicationsButtons = new Map();
this.reloadFlag = false;
this._createLayout();
this._display();
this._installedChangedId = appSys.connect('installed-changed',
this._onTreeChanged.bind(this));
this._onTreeChanged.bind(this));
}
_onTreeChanged() {
@@ -467,18 +418,18 @@ class ApplicationsButton extends PanelMenu.Button {
}
}
get hotCorner() {
return Main.layoutManager.hotCorners[Main.layoutManager.primaryIndex];
}
_createVertSeparator() {
let separator = new St.DrawingArea({ style_class: 'calendar-vertical-separator',
pseudo_class: 'highlighted' });
let separator = new St.DrawingArea({
style_class: 'calendar-vertical-separator',
pseudo_class: 'highlighted',
});
separator.connect('repaint', this._onVertSepRepaint.bind(this));
return separator;
}
_onDestroy() {
super._onDestroy();
Main.overview.disconnect(this._showingId);
Main.overview.disconnect(this._hidingId);
appSys.disconnect(this._installedChangedId);
@@ -486,28 +437,19 @@ class ApplicationsButton extends PanelMenu.Button {
this._tree = null;
Main.wm.setCustomKeybindingHandler('panel-main-menu',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Main.sessionMode.hasOverview ?
Main.overview.toggle.bind(Main.overview) :
null);
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
Main.sessionMode.hasOverview
? Main.overview.toggle.bind(Main.overview)
: null);
this._desktopTarget.destroy();
}
_onCapturedEvent(actor, event) {
if (event.type() == Clutter.EventType.BUTTON_PRESS) {
if (!Main.overview.shouldToggleByCornerOrButton())
return true;
}
return false;
}
_onMenuKeyPress(actor, event) {
let symbol = event.get_key_symbol();
if (symbol == Clutter.KEY_Left || symbol == Clutter.KEY_Right) {
let direction = symbol == Clutter.KEY_Left ? Gtk.DirectionType.LEFT
: Gtk.DirectionType.RIGHT;
if (symbol === Clutter.KEY_Left || symbol === Clutter.KEY_Right) {
let direction = symbol === Clutter.KEY_Left
? Gtk.DirectionType.LEFT : Gtk.DirectionType.RIGHT;
if (this.menu.actor.navigate_focus(global.stage.key_focus, direction, false))
return true;
}
@@ -542,9 +484,8 @@ class ApplicationsButton extends PanelMenu.Button {
_setKeybinding() {
Main.wm.setCustomKeybindingHandler('panel-main-menu',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
() => { this.menu.toggle(); });
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
() => this.menu.toggle());
}
_redisplay() {
@@ -556,8 +497,8 @@ class ApplicationsButton extends PanelMenu.Button {
_loadCategory(categoryId, dir) {
let iter = dir.iter();
let nextType;
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
if (nextType == GMenu.TreeItemType.ENTRY) {
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
if (nextType === GMenu.TreeItemType.ENTRY) {
let entry = iter.get_entry();
let id;
try {
@@ -570,9 +511,9 @@ class ApplicationsButton extends PanelMenu.Button {
app = new Shell.App({ app_info: entry.get_app_info() });
if (app.get_app_info().should_show())
this.applicationsByCategory[categoryId].push(app);
} else if (nextType == GMenu.TreeItemType.SEPARATOR) {
} else if (nextType === GMenu.TreeItemType.SEPARATOR) {
this.applicationsByCategory[categoryId].push('separator');
} else if (nextType == GMenu.TreeItemType.DIRECTORY) {
} else if (nextType === GMenu.TreeItemType.DIRECTORY) {
let subdir = iter.get_directory();
if (!subdir.get_is_nodisplay())
this._loadCategory(categoryId, subdir);
@@ -585,13 +526,13 @@ class ApplicationsButton extends PanelMenu.Button {
let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
let currentScrollValue = appsScrollBoxAdj.get_value();
let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
let buttonAlloc = button.actor.get_allocation_box();
let buttonAlloc = button.get_allocation_box();
let newScrollValue = currentScrollValue;
if (currentScrollValue > buttonAlloc.y1 - 10)
newScrollValue = buttonAlloc.y1 - 10;
if (boxHeight + currentScrollValue < buttonAlloc.y2 + 10)
newScrollValue = buttonAlloc.y2 - boxHeight + 10;
if (newScrollValue != currentScrollValue)
if (newScrollValue !== currentScrollValue)
appsScrollBoxAdj.set_value(newScrollValue);
}
@@ -600,13 +541,13 @@ class ApplicationsButton extends PanelMenu.Button {
let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
let currentScrollValue = catsScrollBoxAdj.get_value();
let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
let buttonAlloc = button.actor.get_allocation_box();
let buttonAlloc = button.get_allocation_box();
let newScrollValue = currentScrollValue;
if (currentScrollValue > buttonAlloc.y1 - 10)
newScrollValue = buttonAlloc.y1 - 10;
if (boxHeight + currentScrollValue < buttonAlloc.y2 + 10)
newScrollValue = buttonAlloc.y2 - boxHeight + 10;
if (newScrollValue != currentScrollValue)
if (newScrollValue !== currentScrollValue)
catsScrollBoxAdj.set_value(newScrollValue);
}
@@ -615,9 +556,12 @@ class ApplicationsButton extends PanelMenu.Button {
this.menu.addMenuItem(section);
this.mainBox = new St.BoxLayout({ vertical: false });
this.leftBox = new St.BoxLayout({ vertical: true });
this.applicationsScrollBox = new St.ScrollView({ x_fill: true, y_fill: false,
y_align: St.Align.START,
style_class: 'apps-menu vfade' });
this.applicationsScrollBox = new St.ScrollView({
x_fill: true,
y_fill: false,
y_align: St.Align.START,
style_class: 'apps-menu vfade',
});
this.applicationsScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
let vscroll = this.applicationsScrollBox.get_vscroll_bar();
vscroll.connect('scroll-start', () => {
@@ -626,21 +570,22 @@ class ApplicationsButton extends PanelMenu.Button {
vscroll.connect('scroll-stop', () => {
this.menu.passEvents = false;
});
this.categoriesScrollBox = new St.ScrollView({ x_fill: true, y_fill: false,
y_align: St.Align.START,
style_class: 'vfade' });
this.categoriesScrollBox = new St.ScrollView({
x_fill: true,
y_fill: false,
y_align: St.Align.START,
style_class: 'vfade',
});
this.categoriesScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
vscroll = this.categoriesScrollBox.get_vscroll_bar();
vscroll.connect('scroll-start', () => { this.menu.passEvents = true; });
vscroll.connect('scroll-stop', () => { this.menu.passEvents = false; });
this.leftBox.add(this.categoriesScrollBox, { expand: true,
x_fill: true, y_fill: true,
y_align: St.Align.START });
let activities = new ActivitiesMenuItem(this);
this.leftBox.add(activities.actor, { expand: false,
x_fill: true, y_fill: false,
y_align: St.Align.START });
vscroll.connect('scroll-start', () => (this.menu.passEvents = true));
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
this.leftBox.add(this.categoriesScrollBox, {
expand: true,
x_fill: true,
y_fill: true,
y_align: St.Align.START,
});
this.applicationsBox = new St.BoxLayout({ vertical: true });
this.applicationsScrollBox.add_actor(this.applicationsBox);
@@ -648,8 +593,16 @@ class ApplicationsButton extends PanelMenu.Button {
this.categoriesScrollBox.add_actor(this.categoriesBox);
this.mainBox.add(this.leftBox);
this.mainBox.add(this._createVertSeparator(), { expand: false, x_fill: false, y_fill: true });
this.mainBox.add(this.applicationsScrollBox, { expand: true, x_fill: true, y_fill: true });
this.mainBox.add(this._createVertSeparator(), {
expand: false,
x_fill: false,
y_fill: true,
});
this.mainBox.add(this.applicationsScrollBox, {
expand: true,
x_fill: true,
y_fill: true,
});
section.actor.add_actor(this.mainBox);
}
@@ -658,30 +611,32 @@ class ApplicationsButton extends PanelMenu.Button {
this.mainBox.style = 'width: 35em;';
this.mainBox.hide();
//Load categories
// Load categories
this.applicationsByCategory = {};
this._tree.load_sync();
let root = this._tree.get_root_directory();
let categoryMenuItem = new CategoryMenuItem(this, null);
this.categoriesBox.add_actor(categoryMenuItem.actor);
this.categoriesBox.add_actor(categoryMenuItem);
let iter = root.iter();
let nextType;
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
if (nextType == GMenu.TreeItemType.DIRECTORY) {
let dir = iter.get_directory();
if (!dir.get_is_nodisplay()) {
let categoryId = dir.get_menu_id();
this.applicationsByCategory[categoryId] = [];
this._loadCategory(categoryId, dir);
if (this.applicationsByCategory[categoryId].length > 0) {
let categoryMenuItem = new CategoryMenuItem(this, dir);
this.categoriesBox.add_actor(categoryMenuItem.actor);
}
}
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
if (nextType !== GMenu.TreeItemType.DIRECTORY)
continue;
let dir = iter.get_directory();
if (dir.get_is_nodisplay())
continue;
let categoryId = dir.get_menu_id();
this.applicationsByCategory[categoryId] = [];
this._loadCategory(categoryId, dir);
if (this.applicationsByCategory[categoryId].length > 0) {
categoryMenuItem = new CategoryMenuItem(this, dir);
this.categoriesBox.add_actor(categoryMenuItem);
}
}
//Load applications
// Load applications
this._displayButtons(this._listApplications(null));
let themeContext = St.ThemeContext.get_for_stage(global.stage);
@@ -706,22 +661,20 @@ class ApplicationsButton extends PanelMenu.Button {
}
_displayButtons(apps) {
if (apps) {
for (let i = 0; i < apps.length; i++) {
let app = apps[i];
let item;
if (app instanceof Shell.App)
item = this._applicationsButtons.get(app);
else
item = new PopupMenu.PopupSeparatorMenuItem();
if (!item) {
item = new ApplicationMenuItem(this, app);
item.setDragEnabled(this._desktopTarget.hasDesktop);
this._applicationsButtons.set(app, item);
}
if (!item.actor.get_parent())
this.applicationsBox.add_actor(item.actor);
for (let i = 0; i < apps.length; i++) {
let app = apps[i];
let item;
if (app instanceof Shell.App)
item = this._applicationsButtons.get(app);
else
item = new PopupMenu.PopupSeparatorMenuItem();
if (!item) {
item = new ApplicationMenuItem(this, app);
item.setDragEnabled(this._desktopTarget.hasDesktop);
this._applicationsButtons.set(app, item);
}
if (!item.get_parent())
this.applicationsBox.add_actor(item);
}
}
@@ -731,13 +684,9 @@ class ApplicationsButton extends PanelMenu.Button {
if (categoryMenuId) {
applist = this.applicationsByCategory[categoryMenuId];
} else {
applist = new Array();
let favorites = global.settings.get_strv('favorite-apps');
for (let i = 0; i < favorites.length; i++) {
let app = appSys.lookup_app(favorites[i]);
if (app)
applist.push(app);
}
applist = global.settings.get_strv('favorite-apps')
.map(id => appSys.lookup_app(id))
.filter(app => app);
}
return applist;
@@ -745,19 +694,16 @@ class ApplicationsButton extends PanelMenu.Button {
});
let appsMenuButton;
let activitiesButton;
function enable() {
activitiesButton = Main.panel.statusArea['activities'];
activitiesButton.container.hide();
appsMenuButton = new ApplicationsButton();
Main.panel.addToStatusArea('apps-menu', appsMenuButton, 1, 'left');
let index = Main.sessionMode.panel.left.indexOf('activities') + 1;
Main.panel.addToStatusArea('apps-menu', appsMenuButton, index, 'left');
}
function disable() {
Main.panel.menuManager.removeMenu(appsMenuButton.menu);
appsMenuButton.destroy();
activitiesButton.container.show();
}
function init() {

View File

@@ -2,11 +2,10 @@
// Start apps on custom workspaces
/* exported init enable disable */
const Shell = imports.gi.Shell;
const Main = imports.ui.main;
const { Shell } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
class WindowMover {
constructor() {
@@ -17,7 +16,7 @@ class WindowMover {
this._appsChangedId =
this._appSystem.connect('installed-changed',
this._updateAppData.bind(this));
this._updateAppData.bind(this));
this._settings.connect('changed', this._updateAppConfigs.bind(this));
this._updateAppConfigs();
@@ -45,14 +44,14 @@ class WindowMover {
});
let addedApps = ids.map(id => this._appSystem.lookup_app(id)).filter(
app => app != null && !this._appData.has(app)
app => app && !this._appData.has(app)
);
addedApps.forEach(app => {
let data = {
windowsChangedId: app.connect('windows-changed',
this._appWindowsChanged.bind(this)),
this._appWindowsChanged.bind(this)),
moveWindowsId: 0,
windows: app.get_windows()
windows: app.get_windows(),
};
this._appData.set(app, data);
});
@@ -96,7 +95,7 @@ class WindowMover {
// or something; assume it'll be added back immediately, so keep it
// to avoid moving it again
windows.push(...data.windows.filter(
w => !windows.includes(w) && w.get_compositor_private() != null
w => !windows.includes(w) && w.get_compositor_private() !== null
));
let workspaceNum = this._appConfigs.get(app.id);
@@ -125,9 +124,9 @@ function myCheckWorkspaces() {
}
// make sure the original method only removes empty workspaces at the end
keepAliveWorkspaces.forEach(ws => { ws._keepAliveId = 1; });
keepAliveWorkspaces.forEach(ws => (ws._keepAliveId = 1));
prevCheckWorkspaces.call(this);
keepAliveWorkspaces.forEach(ws => { delete ws._keepAliveId; });
keepAliveWorkspaces.forEach(ws => delete ws._keepAliveId);
return false;
}

View File

@@ -2,9 +2,7 @@
// Start apps on custom workspaces
/* exported init buildPrefsWidget */
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const { Gio, GObject, Gtk } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
@@ -21,7 +19,7 @@ const Columns = {
DISPLAY_NAME: 1,
ICON: 2,
WORKSPACE: 3,
ADJUSTMENT: 4
ADJUSTMENT: 4,
};
const Widget = GObject.registerClass({
@@ -36,35 +34,48 @@ const Widget = GObject.registerClass({
this._changedPermitted = false;
this._store = new Gtk.ListStore();
this._store.set_column_types([Gio.AppInfo, GObject.TYPE_STRING, Gio.Icon, GObject.TYPE_INT,
Gtk.Adjustment]);
this._store.set_column_types([
Gio.AppInfo,
GObject.TYPE_STRING,
Gio.Icon,
GObject.TYPE_INT,
Gtk.Adjustment,
]);
let scrolled = new Gtk.ScrolledWindow({ shadow_type: Gtk.ShadowType.IN });
scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
this.add(scrolled);
this._treeView = new Gtk.TreeView({ model: this._store,
hexpand: true, vexpand: true });
this._treeView = new Gtk.TreeView({
model: this._store,
hexpand: true,
vexpand: true,
});
this._treeView.get_selection().set_mode(Gtk.SelectionMode.SINGLE);
let appColumn = new Gtk.TreeViewColumn({ expand: true, sort_column_id: Columns.DISPLAY_NAME,
title: _("Application") });
let iconRenderer = new Gtk.CellRendererPixbuf;
let appColumn = new Gtk.TreeViewColumn({
expand: true,
sort_column_id: Columns.DISPLAY_NAME,
title: _('Application'),
});
let iconRenderer = new Gtk.CellRendererPixbuf();
appColumn.pack_start(iconRenderer, false);
appColumn.add_attribute(iconRenderer, "gicon", Columns.ICON);
let nameRenderer = new Gtk.CellRendererText;
appColumn.add_attribute(iconRenderer, 'gicon', Columns.ICON);
let nameRenderer = new Gtk.CellRendererText();
appColumn.pack_start(nameRenderer, true);
appColumn.add_attribute(nameRenderer, "text", Columns.DISPLAY_NAME);
appColumn.add_attribute(nameRenderer, 'text', Columns.DISPLAY_NAME);
this._treeView.append_column(appColumn);
let workspaceColumn = new Gtk.TreeViewColumn({ title: _("Workspace"),
sort_column_id: Columns.WORKSPACE });
let workspaceColumn = new Gtk.TreeViewColumn({
title: _('Workspace'),
sort_column_id: Columns.WORKSPACE,
});
let workspaceRenderer = new Gtk.CellRendererSpin({ editable: true });
workspaceRenderer.connect('edited', this._workspaceEdited.bind(this));
workspaceColumn.pack_start(workspaceRenderer, true);
workspaceColumn.add_attribute(workspaceRenderer, "adjustment", Columns.ADJUSTMENT);
workspaceColumn.add_attribute(workspaceRenderer, "text", Columns.WORKSPACE);
workspaceColumn.add_attribute(workspaceRenderer, 'adjustment', Columns.ADJUSTMENT);
workspaceColumn.add_attribute(workspaceRenderer, 'text', Columns.WORKSPACE);
this._treeView.append_column(workspaceColumn);
scrolled.add(this._treeView);
@@ -73,13 +84,15 @@ const Widget = GObject.registerClass({
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR);
this.add(toolbar);
let newButton = new Gtk.ToolButton({ icon_name: 'bookmark-new-symbolic',
label: _("Add Rule"),
is_important: true });
let newButton = new Gtk.ToolButton({
icon_name: 'bookmark-new-symbolic',
label: _('Add Rule'),
is_important: true,
});
newButton.connect('clicked', this._createNew.bind(this));
toolbar.add(newButton);
let delButton = new Gtk.ToolButton({ icon_name: 'edit-delete-symbolic' });
let delButton = new Gtk.ToolButton({ icon_name: 'edit-delete-symbolic' });
delButton.connect('clicked', this._deleteSelected.bind(this));
toolbar.add(delButton);
@@ -94,17 +107,21 @@ const Widget = GObject.registerClass({
}
_createNew() {
let dialog = new Gtk.Dialog({ title: _("Create new matching rule"),
transient_for: this.get_toplevel(),
use_header_bar: true,
modal: true });
let dialog = new Gtk.Dialog({
title: _('Create new matching rule'),
transient_for: this.get_toplevel(),
use_header_bar: true,
modal: true,
});
dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL);
let addButton = dialog.add_button(_("Add"), Gtk.ResponseType.OK);
let addButton = dialog.add_button(_('Add'), Gtk.ResponseType.OK);
dialog.set_default_response(Gtk.ResponseType.OK);
let grid = new Gtk.Grid({ column_spacing: 10,
row_spacing: 15,
margin: 10 });
let grid = new Gtk.Grid({
column_spacing: 10,
row_spacing: 15,
margin: 10,
});
dialog._appChooser = new Gtk.AppChooserWidget({ show_all: true });
dialog._appChooser.connect('application-selected', (w, appInfo) => {
addButton.sensitive = appInfo && this._checkId(appInfo.get_id());
@@ -113,24 +130,30 @@ const Widget = GObject.registerClass({
addButton.sensitive = appInfo && this._checkId(appInfo.get_id());
grid.attach(dialog._appChooser, 0, 0, 2, 1);
grid.attach(new Gtk.Label({ label: _("Workspace"),
halign: Gtk.Align.END }), 0, 1, 1, 1);
let adjustment = new Gtk.Adjustment({ lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1 });
dialog._spin = new Gtk.SpinButton({ adjustment: adjustment,
snap_to_ticks: true });
grid.attach(new Gtk.Label({
label: _('Workspace'),
halign: Gtk.Align.END,
}), 0, 1, 1, 1);
let adjustment = new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
});
dialog._spin = new Gtk.SpinButton({
adjustment,
snap_to_ticks: true,
});
dialog._spin.set_value(1);
grid.attach(dialog._spin, 1, 1, 1, 1);
dialog.get_content_area().add(grid);
dialog.connect('response', (dialog, id) => {
if (id != Gtk.ResponseType.OK) {
dialog.connect('response', (dlg, id) => {
if (id !== Gtk.ResponseType.OK) {
dialog.destroy();
return;
}
let appInfo = dialog._appChooser.get_app_info();
appInfo = dialog._appChooser.get_app_info();
if (!appInfo)
return;
let index = Math.floor(dialog._spin.value);
@@ -141,14 +164,7 @@ const Widget = GObject.registerClass({
this._appendItem(appInfo.get_id(), index);
this._changedPermitted = true;
let iter = this._store.append();
let adj = new Gtk.Adjustment({ lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
value: index });
this._store.set(iter,
[Columns.APPINFO, Columns.ICON, Columns.DISPLAY_NAME, Columns.WORKSPACE, Columns.ADJUSTMENT],
[appInfo, appInfo.get_icon(), appInfo.get_display_name(), index, adj]);
this._appendRow(appInfo, index);
dialog.destroy();
});
@@ -198,20 +214,29 @@ const Widget = GObject.registerClass({
continue;
validItems.push(currentItems[i]);
let iter = this._store.append();
let adj = new Gtk.Adjustment({ lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
value: index });
this._store.set(iter,
[Columns.APPINFO, Columns.ICON, Columns.DISPLAY_NAME, Columns.WORKSPACE, Columns.ADJUSTMENT],
[appInfo, appInfo.get_icon(), appInfo.get_display_name(), parseInt(index), adj]);
this._appendRow(appInfo, parseInt(index));
}
if (validItems.length != currentItems.length) // some items were filtered out
if (validItems.length !== currentItems.length) // some items were filtered out
this._settings.set_strv(SETTINGS_KEY, validItems);
}
_appendRow(appInfo, workspace) {
let iter = this._store.append();
let icon = appInfo.get_icon();
let displayName = appInfo.get_display_name();
let adj = new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
value: workspace,
});
let { APPINFO, ICON, DISPLAY_NAME, WORKSPACE, ADJUSTMENT } = Columns;
this._store.set(iter,
[APPINFO, ICON, DISPLAY_NAME, WORKSPACE, ADJUSTMENT],
[appInfo, icon, displayName, workspace, adj]);
}
_checkId(id) {
let items = this._settings.get_strv(SETTINGS_KEY);
return !items.some(i => i.startsWith(`${id}:`));

View File

@@ -1,41 +1,42 @@
/* exported init enable disable */
// Drive menu extension
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const St = imports.gi.St;
const Shell = imports.gi.Shell;
const { Gio, GObject, Shell, St } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const ShellMountOperation = imports.ui.shellMountOperation;
const ExtensionUtils = imports.misc.extensionUtils;
var MountMenuItem = GObject.registerClass(
class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(mount) {
super();
_init(mount) {
super._init();
this.label = new St.Label({ text: mount.get_name() });
this.actor.add(this.label, { expand: true });
this.actor.label_actor = this.label;
this.add(this.label, { expand: true });
this.label_actor = this.label;
this.mount = mount;
let ejectIcon = new St.Icon({ icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon ' });
this.connect('destroy', this._onDestroy.bind(this));
let ejectIcon = new St.Icon({
icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon',
});
let ejectButton = new St.Button({ child: ejectIcon });
ejectButton.connect('clicked', this._eject.bind(this));
this.actor.add(ejectButton);
this.add(ejectButton);
this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
this._syncVisibility();
}
destroy() {
_onDestroy() {
if (this._changedId) {
this.mount.disconnect(this._changedId);
this._changedId = 0;
@@ -52,32 +53,33 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
let volume = this.mount.get_volume();
if (volume == null) {
if (!volume) {
// probably a GDaemonMount, could be network or
// local, but we can't tell; assume it's local for now
return true;
}
return volume.get_identifier('class') != 'network';
return volume.get_identifier('class') !== 'network';
}
_syncVisibility() {
this.actor.visible = this._isInteresting();
this.visible = this._isInteresting();
}
_eject() {
let mountOp = new ShellMountOperation.ShellMountOperation(this.mount);
let unmountArgs = [
Gio.MountUnmountFlags.NONE,
(new ShellMountOperation.ShellMountOperation(this.mount)).mountOp,
null, // Gio.Cancellable
];
if (this.mount.can_eject())
this.mount.eject_with_operation(Gio.MountUnmountFlags.NONE,
mountOp.mountOp,
null, // Gio.Cancellable
this._ejectFinish.bind(this));
else
this.mount.unmount_with_operation(Gio.MountUnmountFlags.NONE,
mountOp.mountOp,
null, // Gio.Cancellable
this._unmountFinish.bind(this));
if (this.mount.can_eject()) {
this.mount.eject_with_operation(...unmountArgs,
this._ejectFinish.bind(this));
} else {
this.mount.unmount_with_operation(...unmountArgs,
this._unmountFinish.bind(this));
}
}
_unmountFinish(mount, result) {
@@ -98,27 +100,29 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
_reportFailure(exception) {
// TRANSLATORS: %s is the filesystem name
let msg = _("Ejecting drive “%s” failed:").format(this.mount.get_name());
let msg = _('Ejecting drive “%s” failed:').format(this.mount.get_name());
Main.notifyError(msg, exception.message);
}
activate(event) {
let uri = this.mount.get_root().get_uri();
let context = global.create_app_launch_context(event.get_time(), -1);
Gio.AppInfo.launch_default_for_uri(this.mount.get_root().get_uri(),
context);
Gio.AppInfo.launch_default_for_uri(uri, context);
super.activate(event);
}
}
});
let DriveMenu = GObject.registerClass(
class DriveMenu extends PanelMenu.Button {
_init() {
super._init(0.0, _("Removable devices"));
super._init(0.0, _('Removable devices'));
let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' });
let icon = new St.Icon({ icon_name: 'media-eject-symbolic',
style_class: 'system-status-icon' });
let icon = new St.Icon({
icon_name: 'media-eject-symbolic',
style_class: 'system-status-icon',
});
hbox.add_child(icon);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
@@ -139,7 +143,7 @@ class DriveMenu extends PanelMenu.Button {
this._monitor.get_mounts().forEach(this._addMount.bind(this));
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addAction(_("Open Files"), event => {
this.menu.addAction(_('Open Files'), event => {
let appSystem = Shell.AppSystem.get_default();
let app = appSystem.lookup_app('org.gnome.Nautilus.desktop');
app.activate_full(-1, event.get_time());
@@ -149,7 +153,7 @@ class DriveMenu extends PanelMenu.Button {
}
_updateMenuVisibility() {
if (this._mounts.filter(i => i.actor.visible).length > 0)
if (this._mounts.filter(i => i.visible).length > 0)
this.show();
else
this.hide();
@@ -164,13 +168,13 @@ class DriveMenu extends PanelMenu.Button {
_removeMount(mount) {
for (let i = 0; i < this._mounts.length; i++) {
let item = this._mounts[i];
if (item.mount == mount) {
if (item.mount === mount) {
item.destroy();
this._mounts.splice(i, 1);
return;
}
}
log ('Removing a mount that was never added to the menu');
log('Removing a mount that was never added to the menu');
}
_onDestroy() {
@@ -192,7 +196,7 @@ function init() {
let _indicator;
function enable() {
_indicator = new DriveMenu;
_indicator = new DriveMenu();
Main.panel.addToStatusArea('drive-menu', _indicator);
}

View File

@@ -0,0 +1,38 @@
/* exported init */
const { Meta } = imports.gi;
const { ThumbnailsBox } = imports.ui.workspaceThumbnail;
class Extension {
constructor() {
this._origUpdateSwitcherVisibility =
ThumbnailsBox.prototype._updateSwitcherVisibility;
}
enable() {
global.workspace_manager.override_workspace_layout(
Meta.DisplayCorner.TOPLEFT,
false,
1,
-1);
ThumbnailsBox.prototype._updateSwitcherVisibility = function () {
this.hide();
};
}
disable() {
global.workspace_manager.override_workspace_layout(
Meta.DisplayCorner.TOPLEFT,
false,
-1,
1);
ThumbnailsBox.prototype._updateSwitcherVisibility =
this._origUpdateSwitcherVisibility;
}
}
function init() {
return new Extension();
}

View File

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

View File

@@ -0,0 +1,10 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Horizontal workspaces",
"description": "Use a horizontal workspace layout",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -0,0 +1 @@
/* This extensions requires no special styling */

View File

@@ -5,7 +5,7 @@ let _activateOriginal = null;
function enable() {
_activateOriginal = AppDisplay.AppIcon.prototype.activate;
AppDisplay.AppIcon.prototype.activate = function() {
AppDisplay.AppIcon.prototype.activate = function () {
_activateOriginal.call(this, 2);
};
}

View File

@@ -1,8 +1,7 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported enable disable */
const Workspace = imports.ui.workspace;
const ExtensionUtils = imports.misc.extensionUtils;
const Workspace = imports.ui.workspace;
// testing settings for natural window placement strategy:
const WINDOW_PLACEMENT_NATURAL_ACCURACY = 20; // accuracy of window translate moves (KDE-default: 20)
@@ -14,9 +13,7 @@ class Rect {
[this.x, this.y, this.width, this.height] = [x, y, width, height];
}
/**
* used in _calculateWindowTransformationsNatural to replace Meta.Rectangle that is too slow.
*/
// used in _calculateWindowTransformationsNatural to replace Meta.Rectangle that is too slow.
copy() {
return new Rect(this.x, this.y, this.width, this.height);
}
@@ -49,10 +46,10 @@ class Rect {
}
overlap(rect2) {
return !((this.x + this.width <= rect2.x) ||
(rect2.x + rect2.width <= this.x) ||
(this.y + this.height <= rect2.y) ||
(rect2.y + rect2.height <= this.y));
return !(this.x + this.width <= rect2.x ||
rect2.x + rect2.width <= this.x ||
this.y + this.height <= rect2.y ||
rect2.y + rect2.height <= this.y);
}
center() {
@@ -75,7 +72,7 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
layout.windows = windows;
}
/**
/*
* Returns clones with matching target coordinates and scales to arrange windows in a natural way that no overlap exists and relative window size is preserved.
* This function is almost a 1:1 copy of the function
* PresentWindowsEffect::calculateWindowTransformationsNatural() from KDE, see:
@@ -101,9 +98,9 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
// This is used when the window is on the edge of the screen to try to use as much screen real estate as possible.
directions[i] = direction;
direction++;
if (direction == 4) {
if (direction === 4)
direction = 0;
}
}
let loopCounter = 0;
@@ -112,10 +109,11 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
overlap = false;
for (let i = 0; i < rects.length; i++) {
for (let j = 0; j < rects.length; j++) {
if (i != j && rects[i].adjusted(-WINDOW_PLACEMENT_NATURAL_GAPS, -WINDOW_PLACEMENT_NATURAL_GAPS,
WINDOW_PLACEMENT_NATURAL_GAPS, WINDOW_PLACEMENT_NATURAL_GAPS)
.overlap(rects[j].adjusted(-WINDOW_PLACEMENT_NATURAL_GAPS, -WINDOW_PLACEMENT_NATURAL_GAPS,
WINDOW_PLACEMENT_NATURAL_GAPS, WINDOW_PLACEMENT_NATURAL_GAPS))) {
let adjustments = [-1, -1, 1, 1]
.map(v => (v *= WINDOW_PLACEMENT_NATURAL_GAPS));
let iAdjusted = rects[i].adjusted(...adjustments);
let jAdjusted = rects[j].adjusted(...adjustments);
if (i !== j && iAdjusted.overlap(jAdjusted)) {
loopCounter++;
overlap = true;
@@ -127,10 +125,10 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
let diff = [jCenter[0] - iCenter[0], jCenter[1] - iCenter[1]];
// Prevent dividing by zero and non-movement
if (diff[0] == 0 && diff[1] == 0)
if (diff[0] === 0 && diff[1] === 0)
diff[0] = 1;
// Try to keep screen/workspace aspect ratio
if ( bounds.height / bounds.width > areaRect.height / areaRect.width )
if (bounds.height / bounds.width > areaRect.height / areaRect.width)
diff[0] *= 2;
else
diff[1] *= 2;
@@ -159,33 +157,33 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
let xSection = Math.round((rects[i].x - bounds.x) / (bounds.width / 3));
let ySection = Math.round((rects[i].y - bounds.y) / (bounds.height / 3));
let iCenter = rects[i].center();
iCenter = rects[i].center();
diff[0] = 0;
diff[1] = 0;
if (xSection != 1 || ySection != 1) { // Remove this if you want the center to pull as well
if (xSection == 1)
xSection = (directions[i] / 2 ? 2 : 0);
if (ySection == 1)
ySection = (directions[i] % 2 ? 2 : 0);
if (xSection !== 1 || ySection !== 1) { // Remove this if you want the center to pull as well
if (xSection === 1)
xSection = directions[i] / 2 ? 2 : 0;
if (ySection === 1)
ySection = directions[i] % 2 ? 2 : 0;
}
if (xSection == 0 && ySection == 0) {
if (xSection === 0 && ySection === 0) {
diff[0] = bounds.x - iCenter[0];
diff[1] = bounds.y - iCenter[1];
}
if (xSection == 2 && ySection == 0) {
if (xSection === 2 && ySection === 0) {
diff[0] = bounds.x + bounds.width - iCenter[0];
diff[1] = bounds.y - iCenter[1];
}
if (xSection == 2 && ySection == 2) {
if (xSection === 2 && ySection === 2) {
diff[0] = bounds.x + bounds.width - iCenter[0];
diff[1] = bounds.y + bounds.height - iCenter[1];
}
if (xSection == 0 && ySection == 2) {
if (xSection === 0 && ySection === 2) {
diff[0] = bounds.x - iCenter[0];
diff[1] = bounds.y + bounds.height - iCenter[1];
}
if (diff[0] != 0 || diff[1] != 0) {
let length = Math.sqrt(diff[0] * diff[0] + diff[1] * diff[1]);
if (diff[0] !== 0 || diff[1] !== 0) {
length = Math.sqrt(diff[0] * diff[0] + diff[1] * diff[1]);
diff[0] *= WINDOW_PLACEMENT_NATURAL_ACCURACY / length / 2; // /2 to make it less influencing than the normal center-move above
diff[1] *= WINDOW_PLACEMENT_NATURAL_ACCURACY / length / 2;
rects[i].translate(diff[0], diff[1]);
@@ -202,20 +200,21 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
// Work out scaling by getting the most top-left and most bottom-right window coords.
let scale;
scale = Math.min(areaRect.width / bounds.width,
areaRect.height / bounds.height,
1.0);
scale = Math.min(
areaRect.width / bounds.width,
areaRect.height / bounds.height,
1.0);
// Make bounding rect fill the screen size for later steps
bounds.x = bounds.x - (areaRect.width - bounds.width * scale) / 2;
bounds.y = bounds.y - (areaRect.height - bounds.height * scale) / 2;
bounds.x -= (areaRect.width - bounds.width * scale) / 2;
bounds.y -= (areaRect.height - bounds.height * scale) / 2;
bounds.width = areaRect.width / scale;
bounds.height = areaRect.height / scale;
// Move all windows back onto the screen and set their scale
for (let i = 0; i < rects.length; i++) {
for (let i = 0; i < rects.length; i++)
rects[i].translate(-bounds.x, -bounds.y);
}
// rescale to workspace
let slots = [];
@@ -243,7 +242,7 @@ function enable() {
let settings = ExtensionUtils.getSettings();
workspaceInjections['_getBestLayout'] = Workspace.Workspace.prototype._getBestLayout;
Workspace.Workspace.prototype._getBestLayout = function(windows) {
Workspace.Workspace.prototype._getBestLayout = function (windows) {
let strategy = new NaturalLayoutStrategy(settings);
let layout = { strategy };
strategy.computeLayout(windows, layout);
@@ -251,9 +250,9 @@ function enable() {
return layout;
};
/// position window titles on top of windows in overlay ////
// position window titles on top of windows in overlay
winInjections['relayout'] = Workspace.WindowOverlay.prototype.relayout;
Workspace.WindowOverlay.prototype.relayout = function(animate) {
Workspace.WindowOverlay.prototype.relayout = function (animate) {
if (settings.get_boolean('window-captions-on-top')) {
let [, , , cloneHeight] = this._windowClone.slot;
this.title.translation_y = -cloneHeight;

View File

@@ -1,10 +1,9 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init enable disable */
const Clutter = imports.gi.Clutter;
const GObject = imports.gi.GObject;
const St = imports.gi.St;
const { Clutter, GObject, St } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
@@ -13,34 +12,38 @@ const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = x => x;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const PlaceDisplay = Me.imports.placeDisplay;
const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass(
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
constructor(info) {
super();
_init(info) {
super._init();
this._info = info;
this._icon = new St.Icon({ gicon: info.icon,
icon_size: PLACE_ICON_SIZE });
this.actor.add_child(this._icon);
this._icon = new St.Icon({
gicon: info.icon,
icon_size: PLACE_ICON_SIZE,
});
this.add_child(this._icon);
this._label = new St.Label({ text: info.name, x_expand: true });
this.actor.add_child(this._label);
this.add_child(this._label);
if (info.isRemovable()) {
this._ejectIcon = new St.Icon({ icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon ' });
this._ejectIcon = new St.Icon({
icon_name: 'media-eject-symbolic',
style_class: 'popup-menu-icon',
});
this._ejectButton = new St.Button({ child: this._ejectIcon });
this._ejectButton.connect('clicked', info.eject.bind(info));
this.actor.add_child(this._ejectButton);
this.add_child(this._ejectButton);
}
this._changedId = info.connect('changed',
this._propertiesChanged.bind(this));
this._propertiesChanged.bind(this));
}
destroy() {
@@ -62,24 +65,26 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
this._icon.gicon = info.icon;
this._label.text = info.name;
}
}
});
const SECTIONS = [
'special',
'devices',
'bookmarks',
'network'
'network',
];
let PlacesMenu = GObject.registerClass(
class PlacesMenu extends PanelMenu.Button {
_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({ text: _("Places"),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
let label = new St.Label({
text: _('Places'),
y_expand: true,
y_align: Clutter.ActorAlign.CENTER,
});
hbox.add_child(label);
hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM));
this.add_actor(hbox);
@@ -129,11 +134,11 @@ function init() {
let _indicator;
function enable() {
_indicator = new PlacesMenu;
_indicator = new PlacesMenu();
let pos = 1;
let pos = Main.sessionMode.panel.left.indexOf('appMenu');
if ('apps-menu' in Main.panel.statusArea)
pos = 2;
pos++;
Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
}

View File

@@ -1,9 +1,6 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const Shell = imports.gi.Shell;
const Mainloop = imports.mainloop;
const { Gio, GLib, Shell } = imports.gi;
const Signals = imports.signals;
const Main = imports.ui.main;
@@ -23,8 +20,8 @@ const Hostname1Iface = '<node> \
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
class PlaceInfo {
constructor() {
this._init.apply(this, arguments);
constructor(...params) {
this._init(...params);
}
_init(kind, file, name, icon) {
@@ -41,65 +38,54 @@ class PlaceInfo {
return false;
}
_createLaunchCallback(launchContext, tryMount) {
return (_ignored, result) => {
try {
Gio.AppInfo.launch_default_for_uri_finish(result);
} catch (e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
let source = {
get_icon: () => { return this.icon; }
};
let op = new ShellMountOperation.ShellMountOperation(source);
this.file.mount_enclosing_volume(0, op.mountOp, null, (file, result) => {
try {
op.close();
file.mount_enclosing_volume_finish(result);
} catch (e) {
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
// e.g. user canceled the password dialog
return;
Main.notifyError(_("Failed to mount volume for “%s”").format(this.name), e.message);
return;
}
if (tryMount) {
let callback = this._createLaunchCallback(launchContext, false);
Gio.AppInfo.launch_default_for_uri_async(file.get_uri(),
launchContext,
null,
callback);
}
});
} else {
Main.notifyError(_("Failed to launch “%s”").format(this.name), e.message);
}
async _ensureMountAndLaunch(context, tryMount) {
try {
await this._launchDefaultForUri(this.file.get_uri(), context, null);
} catch (err) {
if (!err.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
Main.notifyError(_('Failed to launch “%s”').format(this.name), err.message);
return;
}
};
let source = {
get_icon: () => this.icon,
};
let op = new ShellMountOperation.ShellMountOperation(source);
try {
await this._mountEnclosingVolume(0, op.mountOp, null);
if (tryMount)
this._ensureMountAndLaunch(context, false);
} catch (e) {
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
Main.notifyError(_('Failed to mount volume for “%s”').format(this.name), e.message);
} finally {
op.close();
}
}
}
launch(timestamp) {
let launchContext = global.create_app_launch_context(timestamp, -1);
let callback = this._createLaunchCallback(launchContext, true);
Gio.AppInfo.launch_default_for_uri_async(this.file.get_uri(),
launchContext,
null,
callback);
this._ensureMountAndLaunch(launchContext, true);
}
getIcon() {
this.file.query_info_async('standard::symbolic-icon', 0, 0, null,
(file, result) => {
try {
let info = file.query_info_finish(result);
this.icon = info.get_symbolic_icon();
this.emit('changed');
} catch (e) {
if (e instanceof Gio.IOErrorEnum)
return;
throw e;
}
});
this.file.query_info_async('standard::symbolic-icon',
Gio.FileQueryInfoFlags.NONE,
0,
null,
(file, result) => {
try {
let info = file.query_info_finish(result);
this.icon = info.get_symbolic_icon();
this.emit('changed');
} catch (e) {
if (e instanceof Gio.IOErrorEnum)
return;
throw e;
}
});
// return a generic icon for this kind for now, until we have the
// icon from the query info above
@@ -128,12 +114,38 @@ class PlaceInfo {
throw e;
}
}
_launchDefaultForUri(uri, context, cancel) {
return new Promise((resolve, reject) => {
Gio.AppInfo.launch_default_for_uri_async(uri, context, cancel, (o, res) => {
try {
Gio.AppInfo.launch_default_for_uri_finish(res);
resolve();
} catch (e) {
reject(e);
}
});
});
}
_mountEnclosingVolume(flags, mountOp, cancel) {
return new Promise((resolve, reject) => {
this.file.mount_enclosing_volume(flags, mountOp, cancel, (o, res) => {
try {
this.file.mount_enclosing_volume_finish(res);
resolve();
} catch (e) {
reject(e);
}
});
});
}
}
Signals.addSignalMethods(PlaceInfo.prototype);
class RootInfo extends PlaceInfo {
_init() {
super._init('devices', Gio.File.new_for_path('/'), _("Computer"));
super._init('devices', Gio.File.new_for_path('/'), _('Computer'));
let busName = 'org.freedesktop.hostname1';
let objPath = '/org/freedesktop/hostname1';
@@ -143,7 +155,7 @@ class RootInfo extends PlaceInfo {
this._proxy = obj;
this._proxy.connect('g-properties-changed',
this._propertiesChanged.bind(this));
this._propertiesChanged.bind(this));
this._propertiesChanged(obj);
});
}
@@ -156,7 +168,7 @@ class RootInfo extends PlaceInfo {
// GDBusProxy will emit a g-properties-changed when hostname1 goes down
// ignore it
if (proxy.g_name_owner) {
this.name = proxy.PrettyHostname || _("Computer");
this.name = proxy.PrettyHostname || _('Computer');
this.emit('changed');
}
}
@@ -186,18 +198,19 @@ class PlaceDeviceInfo extends PlaceInfo {
}
eject() {
let mountOp = new ShellMountOperation.ShellMountOperation(this._mount);
let unmountArgs = [
Gio.MountUnmountFlags.NONE,
(new ShellMountOperation.ShellMountOperation(this._mount)).mountOp,
null, // Gio.Cancellable
];
if (this._mount.can_eject())
this._mount.eject_with_operation(Gio.MountUnmountFlags.NONE,
mountOp.mountOp,
null, // Gio.Cancellable
this._ejectFinish.bind(this));
else
this._mount.unmount_with_operation(Gio.MountUnmountFlags.NONE,
mountOp.mountOp,
null, // Gio.Cancellable
this._unmountFinish.bind(this));
if (this._mount.can_eject()) {
this._mount.eject_with_operation(...unmountArgs,
this._ejectFinish.bind(this));
} else {
this._mount.unmount_with_operation(...unmountArgs,
this._unmountFinish.bind(this));
}
}
_ejectFinish(mount, result) {
@@ -217,7 +230,7 @@ class PlaceDeviceInfo extends PlaceInfo {
}
_reportFailure(exception) {
let msg = _("Ejecting drive “%s” failed:").format(this._mount.get_name());
let msg = _('Ejecting drive “%s” failed:').format(this._mount.get_name());
Main.notifyError(msg, exception.message);
}
}
@@ -266,9 +279,8 @@ var PlacesManager = class {
};
this._settings = new Gio.Settings({ schema_id: BACKGROUND_SCHEMA });
this._showDesktopIconsChangedId =
this._settings.connect('changed::show-desktop-icons',
this._updateSpecials.bind(this));
this._showDesktopIconsChangedId = this._settings.connect(
'changed::show-desktop-icons', this._updateSpecials.bind(this));
this._updateSpecials();
/*
@@ -288,11 +300,12 @@ var PlacesManager = class {
if (this._bookmarkTimeoutId > 0)
return;
/* Defensive event compression */
this._bookmarkTimeoutId = Mainloop.timeout_add(100, () => {
this._bookmarkTimeoutId = 0;
this._reloadBookmarks();
return false;
});
this._bookmarkTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT, 100, () => {
this._bookmarkTimeoutId = 0;
this._reloadBookmarks();
return false;
});
});
this._reloadBookmarks();
@@ -300,9 +313,17 @@ var PlacesManager = class {
}
_connectVolumeMonitorSignals() {
const signals = ['volume-added', 'volume-removed', 'volume-changed',
'mount-added', 'mount-removed', 'mount-changed',
'drive-connected', 'drive-disconnected', 'drive-changed'];
const signals = [
'volume-added',
'volume-removed',
'volume-changed',
'mount-added',
'mount-removed',
'mount-changed',
'drive-connected',
'drive-disconnected',
'drive-changed',
];
this._volumeMonitorSignals = [];
let func = this._updateMounts.bind(this);
@@ -323,18 +344,19 @@ var PlacesManager = class {
if (this._monitor)
this._monitor.cancel();
if (this._bookmarkTimeoutId)
Mainloop.source_remove(this._bookmarkTimeoutId);
GLib.source_remove(this._bookmarkTimeoutId);
}
_updateSpecials() {
this._places.special.forEach(p => { p.destroy(); });
this._places.special.forEach(p => p.destroy());
this._places.special = [];
let homePath = GLib.get_home_dir();
this._places.special.push(new PlaceInfo('special',
Gio.File.new_for_path(homePath),
_("Home")));
this._places.special.push(new PlaceInfo(
'special',
Gio.File.new_for_path(homePath),
_('Home')));
let specials = [];
let dirs = DEFAULT_DIRECTORIES.slice();
@@ -344,7 +366,7 @@ var PlacesManager = class {
for (let i = 0; i < dirs.length; i++) {
let specialPath = GLib.get_user_special_dir(dirs[i]);
if (specialPath == null || specialPath == homePath)
if (!specialPath || specialPath === homePath)
continue;
let file = Gio.File.new_for_path(specialPath), info;
@@ -369,17 +391,18 @@ var PlacesManager = class {
let networkMounts = [];
let networkVolumes = [];
this._places.devices.forEach(p => { p.destroy(); });
this._places.devices.forEach(p => p.destroy());
this._places.devices = [];
this._places.network.forEach(p => { p.destroy(); });
this._places.network.forEach(p => p.destroy());
this._places.network = [];
/* Add standard places */
this._places.devices.push(new RootInfo());
this._places.network.push(new PlaceInfo('network',
Gio.File.new_for_uri('network:///'),
_("Browse Network"),
'network-workgroup-symbolic'));
this._places.network.push(new PlaceInfo(
'network',
Gio.File.new_for_uri('network:///'),
_('Browse Network'),
'network-workgroup-symbolic'));
/* first go through all connected drives */
let drives = this._volumeMonitor.get_connected_drives();
@@ -392,7 +415,7 @@ var PlacesManager = class {
networkVolumes.push(volumes[j]);
} else {
let mount = volumes[j].get_mount();
if (mount != null)
if (mount)
this._addMount('devices', mount);
}
}
@@ -401,7 +424,7 @@ var PlacesManager = class {
/* add all volumes that is not associated with a drive */
let volumes = this._volumeMonitor.get_volumes();
for (let i = 0; i < volumes.length; i++) {
if (volumes[i].get_drive() != null)
if (volumes[i].get_drive())
continue;
let identifier = volumes[i].get_identifier('class');
@@ -409,7 +432,7 @@ var PlacesManager = class {
networkVolumes.push(volumes[i]);
} else {
let mount = volumes[i].get_mount();
if (mount != null)
if (mount)
this._addMount('devices', mount);
}
}
@@ -440,9 +463,9 @@ var PlacesManager = class {
this._addVolume('network', networkVolumes[i]);
}
for (let i = 0; i < networkMounts.length; i++) {
for (let i = 0; i < networkMounts.length; i++)
this._addMount('network', networkMounts[i]);
}
this.emit('devices-updated');
this.emit('network-updated');
@@ -473,7 +496,7 @@ var PlacesManager = class {
for (let i = 0; i < lines.length; i++) {
let line = lines[i];
let components = line.split(' ');
let bookmark = components[0];
let [bookmark] = components;
if (!bookmark)
continue;
@@ -483,16 +506,16 @@ var PlacesManager = class {
continue;
let duplicate = false;
for (let i = 0; i < this._places.special.length; i++) {
if (file.equal(this._places.special[i].file)) {
for (let j = 0; j < this._places.special.length; j++) {
if (file.equal(this._places.special[j].file)) {
duplicate = true;
break;
}
}
if (duplicate)
continue;
for (let i = 0; i < bookmarks.length; i++) {
if (file.equal(bookmarks[i].file)) {
for (let j = 0; j < bookmarks.length; j++) {
if (file.equal(bookmarks[j].file)) {
duplicate = true;
break;
}

View File

@@ -19,16 +19,12 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Main = imports.ui.main;
const Tweener = imports.ui.tweener;
const { Clutter, Meta, Shell, St } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const MESSAGE_FADE_TIME = 2;
const MESSAGE_FADE_TIME = 2000;
let text;
@@ -43,20 +39,22 @@ function flashMessage(message) {
Main.uiGroup.add_actor(text);
}
Tweener.removeTweens(text);
text.remove_all_transitions();
text.text = message;
text.opacity = 255;
let monitor = Main.layoutManager.primaryMonitor;
text.set_position(monitor.x + Math.floor(monitor.width / 2 - text.width / 2),
monitor.y + Math.floor(monitor.height / 2 - text.height / 2));
text.set_position(
monitor.x + Math.floor(monitor.width / 2 - text.width / 2),
monitor.y + Math.floor(monitor.height / 2 - text.height / 2));
Tweener.addTween(text,
{ opacity: 0,
time: MESSAGE_FADE_TIME,
transition: 'easeOutQuad',
onComplete: hideMessage });
text.ease({
opacity: 0,
duration: MESSAGE_FADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: hideMessage,
});
}
let SIZES = [
@@ -64,18 +62,20 @@ let SIZES = [
[800, 450],
[1024, 576],
[1200, 675],
[1600, 900]
[1600, 900],
[360, 654], // Phone portrait maximized
[720, 360], // Phone landscape fullscreen
];
function cycleScreenshotSizes(display, window, binding) {
// Probably this isn't useful with 5 sizes, but you can decrease instead
// of increase by holding down shift.
let modifiers = binding.get_modifiers();
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) != 0;
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0;
// Unmaximize first
if (window.maximized_horizontally || window.maximizedVertically)
window.unmaximize(Meta.MaximizeFlags.HORIZONTAL | Meta.MaximizeFlags.VERTICAL);
if (window.get_maximized() !== 0)
window.unmaximize(Meta.MaximizeFlags.BOTH);
let workArea = window.get_work_area_current_monitor();
let outerRect = window.get_frame_rect();
@@ -97,7 +97,7 @@ function cycleScreenshotSizes(display, window, binding) {
// get the best initial window size
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
if (nearestIndex == null || error < nearestError) {
if (nearestIndex === undefined || error < nearestError) {
nearestIndex = i;
nearestError = error;
}
@@ -122,13 +122,13 @@ function cycleScreenshotSizes(display, window, binding) {
let newOuterRect = window.get_frame_rect();
let message = '%d×%d'.format(
(newOuterRect.width / scaleFactor),
(newOuterRect.height / scaleFactor));
newOuterRect.width / scaleFactor,
newOuterRect.height / scaleFactor);
// The new size might have been constrained by geometry hints (e.g. for
// a terminal) - in that case, include the actual ratio to the message
// we flash
let actualNumerator = (newOuterRect.width / newOuterRect.height) * 9;
let actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
if (Math.abs(actualNumerator - 16) > 0.01)
message += ' (%.2f:9)'.format(actualNumerator);
@@ -136,17 +136,18 @@ function cycleScreenshotSizes(display, window, binding) {
}
function enable() {
Main.wm.addKeybinding('cycle-screenshot-sizes',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
Main.wm.addKeybinding('cycle-screenshot-sizes-backward',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW |
Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
Main.wm.addKeybinding(
'cycle-screenshot-sizes',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
Main.wm.addKeybinding(
'cycle-screenshot-sizes-backward',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW | Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
}
function disable() {

View File

@@ -1,15 +1,14 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Load shell theme from ~/.themes/name/gnome-shell
// Load shell theme from ~/.local/share/themes/name/gnome-shell
/* exported init */
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const { Gio, GLib } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const SETTINGS_KEY = 'name';
const ExtensionUtils = imports.misc.extensionUtils;
class ThemeManager {
constructor() {
this._settings = ExtensionUtils.getSettings();
@@ -31,37 +30,29 @@ class ThemeManager {
}
_changeTheme() {
let _stylesheet = null;
let _themeName = this._settings.get_string(SETTINGS_KEY);
let stylesheet = null;
let themeName = this._settings.get_string(SETTINGS_KEY);
if (_themeName) {
let _userCssStylesheet = GLib.build_filenamev([
GLib.get_home_dir(), '.themes', _themeName, 'gnome-shell', 'gnome-shell.css'
]);
let file = Gio.file_new_for_path(_userCssStylesheet);
if (file.query_exists(null))
_stylesheet = _userCssStylesheet;
else {
let sysdirs = GLib.get_system_data_dirs();
sysdirs.unshift(GLib.get_user_data_dir());
for (let i = 0; i < sysdirs.length; i++) {
_userCssStylesheet = GLib.build_filenamev([
sysdirs[i], 'themes', _themeName, 'gnome-shell', 'gnome-shell.css'
]);
let file = Gio.file_new_for_path(_userCssStylesheet);
if (file.query_exists(null)) {
_stylesheet = _userCssStylesheet;
break;
}
}
}
if (themeName) {
let stylesheetPaths = [
[GLib.get_home_dir(), '.themes'],
[GLib.get_user_data_dir(), 'themes'],
...GLib.get_system_data_dirs().map(dir => [dir, 'themes']),
].map(themeDir => GLib.build_filenamev([
...themeDir, themeName, 'gnome-shell', 'gnome-shell.css',
]));
stylesheet = stylesheetPaths.find(path => {
let file = Gio.file_new_for_path(path);
return file.query_exists(null);
});
}
if (_stylesheet)
global.log(`loading user theme: ${_stylesheet}`);
if (stylesheet)
global.log(`loading user theme: ${stylesheet}`);
else
global.log('loading default theme (Adwaita)');
Main.setThemeStylesheet(_stylesheet);
Main.setThemeStylesheet(stylesheet);
Main.loadTheme();
}
}

View File

@@ -4,36 +4,39 @@
border-top-width: 1px;
border-bottom-width: 0px;
height: 2.25em ;
padding: 2px;
}
.bottom-panel .window-button > StWidget,
.bottom-panel .window-picker-toggle > StWidget {
color: #2e3436;
background-color: #eee;
border-radius: 3px;
padding: 3px 6px 1px;
box-shadow: none;
text-shadow: none;
border: 1px solid rgba(0,0,0,0.2);
}
.bottom-panel .window-button > StWidget {
background-gradient-drection: vertical;
background-color: #fff;
background-gradient-start: #fff;
background-gradient-end: #eee;
color: #000;
-st-natural-width: 18.7em;
max-width: 18.75em;
color: #2e3436;
background-color: #eee;
border-radius: 2px;
padding: 3px 6px 1px;
box-shadow: inset -1px -1px 1px rgba(0,0,0,0.5);
text-shadow: 0 0 transparent;
}
.bottom-panel .window-button:hover > StWidget {
.bottom-panel .window-button:hover > StWidget,
.bottom-panel .window-picker-toggle:hover > StWidget {
background-color: #f9f9f9;
}
.bottom-panel .window-button:active > StWidget,
.bottom-panel .window-button:focus > StWidget {
box-shadow: inset 1px 1px 2px rgba(0,0,0,0.5);
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
}
.bottom-panel .window-button.focused > StWidget {
background-color: #ddd;
box-shadow: inset 1px 1px 1px rgba(0,0,0,0.5);
.bottom-panel .window-button.focused > StWidget,
.bottom-panel .window-picker-toggle:checked > StWidget {
background-color: #ccc;
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
}
.bottom-panel .window-button.focused:hover > StWidget {
@@ -42,5 +45,24 @@
.bottom-panel .window-button.minimized > StWidget {
color: #888;
box-shadow: inset -1px -1px 1px rgba(0,0,0,0.5);
box-shadow: none;
}
/* workspace switcher */
.window-list-workspace-indicator .workspace {
background-color: #ddd;
}
.window-list-workspace-indicator .workspace.active {
background-color: #ccc;
}
.window-list-window-preview {
background-color: #ededed;
border: 1px solid #ccc;
}
.window-list-window-preview.active {
background-color: #f6f5f4;
border: 2px solid #888;
}

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@ extension_data += configure_file(
configuration: metadata_conf
)
extension_sources += files('prefs.js')
extension_sources += files('prefs.js', 'windowPicker.js', 'workspaceIndicator.js')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
if classic_mode_enabled

View File

@@ -15,6 +15,13 @@
window list. Possible values are “never”, “auto” and “always”.
</description>
</key>
<key name="display-all-workspaces" type="b">
<default>false</default>
<summary>Show windows from all workspaces</summary>
<description>
Whether to show windows from all workspaces or only the current one.
</description>
</key>
<key name="show-on-all-monitors" type="b">
<default>false</default>
<summary>Show the window list on all monitors</summary>

View File

@@ -1,9 +1,7 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const { Gio, GObject, Gtk } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
@@ -24,16 +22,20 @@ class WindowListPrefsWidget extends Gtk.Grid {
this.row_spacing = 6;
this.orientation = Gtk.Orientation.VERTICAL;
let groupingLabel = '<b>%s</b>'.format(_("Window Grouping"));
this.add(new Gtk.Label({ label: groupingLabel, use_markup: true,
halign: Gtk.Align.START }));
let groupingLabel = '<b>%s</b>'.format(_('Window Grouping'));
this.add(new Gtk.Label({
label: groupingLabel, use_markup: true,
halign: Gtk.Align.START,
}));
let align = new Gtk.Alignment({ left_padding: 12 });
this.add(align);
let grid = new Gtk.Grid({ orientation: Gtk.Orientation.VERTICAL,
row_spacing: 6,
column_spacing: 6 });
let grid = new Gtk.Grid({
orientation: Gtk.Orientation.VERTICAL,
row_spacing: 6,
column_spacing: 6,
});
align.add(grid);
this._settings = ExtensionUtils.getSettings();
@@ -42,9 +44,9 @@ class WindowListPrefsWidget extends Gtk.Grid {
let modes = range.deep_unpack()[1].deep_unpack();
let modeLabels = {
'never': _("Never group windows"),
'auto': _("Group windows when space is limited"),
'always': _("Always group windows")
'never': _('Never group windows'),
'auto': _('Group windows when space is limited'),
'always': _('Always group windows'),
};
let radio = null;
@@ -56,9 +58,11 @@ class WindowListPrefsWidget extends Gtk.Grid {
continue;
}
radio = new Gtk.RadioButton({ active: currentMode == mode,
label: label,
group: radio });
radio = new Gtk.RadioButton({
active: currentMode === mode,
label,
group: radio,
});
grid.add(radio);
radio.connect('toggled', button => {
@@ -67,10 +71,19 @@ class WindowListPrefsWidget extends Gtk.Grid {
});
}
let check = new Gtk.CheckButton({ label: _("Show on all monitors"),
margin_top: 6 });
let check = new Gtk.CheckButton({
label: _('Show on all monitors'),
margin_top: 6,
});
this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.add(check);
check = new Gtk.CheckButton({
label: _('Show windows from all workspaces'),
margin_top: 6,
});
this._settings.bind('display-all-workspaces', check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.add(check);
}
});

View File

@@ -26,9 +26,8 @@
spacing: 4px;
}
.window-button > StWidget {
-st-natural-width: 18.75em;
max-width: 18.75em;
.window-button > StWidget,
.window-picker-toggle > StWidget {
color: #bbb;
background-color: black;
border-radius: 4px;
@@ -37,7 +36,21 @@
text-shadow: 1px 1px 4px rgba(0,0,0,0.8);
}
.window-button:hover > StWidget {
.window-picker-toggle {
padding: 3px;
}
.window-picker-toggle > StWidet {
border: 1px solid rgba(255,255,255,0.3);
}
.window-button > StWidget {
-st-natural-width: 18.75em;
max-width: 18.75em;
}
.window-button:hover > StWidget,
.window-picker-toggle:hover > StWidget {
color: white;
background-color: #1f1f1f;
}
@@ -47,12 +60,14 @@
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.5);
}
.window-button.focused > StWidget {
.window-button.focused > StWidget,
.window-picker-toggle:checked > StWidget {
color: white;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.7);
}
.window-button.focused:active > StWidget {
.window-button.focused:active > StWidget,
.window-picker-toggle:checked:active > StWidget {
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.7);
}
@@ -70,13 +85,50 @@
height: 24px;
}
.window-list-workspace-indicator {
.window-list-workspace-indicator .status-label-bin {
background-color: rgba(200, 200, 200, .3);
border: 1px solid #cccccc;
padding: 0 3px;
margin: 3px 0;
}
.window-list-workspace-indicator .workspaces-box {
spacing: 3px;
padding: 3px;
}
.window-list-workspace-indicator > StWidget {
background-color: rgba(200, 200, 200, .3);
.window-list-workspace-indicator .workspace {
border: 1px solid #cccccc;
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;
}
.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 {
background-color: rgba(200, 200, 200, .3);
}
.window-list-window-preview {
background-color: #252525;
border: 1px solid #ccc;
}
.window-list-window-preview.active {
background-color: #353535;
border: 2px solid #ccc;
}
.notification {

View File

@@ -0,0 +1,278 @@
/* exported WindowPicker, WindowPickerToggle */
const { Clutter, GLib, GObject, Meta, Shell, St } = imports.gi;
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const { WorkspacesDisplay } = imports.ui.workspacesView;
let MyWorkspacesDisplay = class extends WorkspacesDisplay {
constructor() {
super();
this.actor.add_constraint(
new Layout.MonitorConstraint({
primary: true,
work_area: true,
}));
this.actor.connect('destroy', this._onDestroy.bind(this));
this._workareasChangedId = global.display.connect('workareas-changed',
this._onWorkAreasChanged.bind(this));
this._onWorkAreasChanged();
}
show(...args) {
if (!this._scrollEventId) {
this._scrollEventId = Main.windowPicker.connect('scroll-event',
this._onScrollEvent.bind(this));
}
super.show(...args);
}
hide(...args) {
if (this._scrollEventId > 0)
Main.windowPicker.disconnect(this._scrollEventId);
this._scrollEventId = 0;
super.hide(...args);
}
_onWorkAreasChanged() {
let { primaryIndex } = Main.layoutManager;
let workarea = Main.layoutManager.getWorkAreaForMonitor(primaryIndex);
this.setWorkspacesFullGeometry(workarea);
}
_updateWorkspacesViews() {
super._updateWorkspacesViews();
this._workspacesViews.forEach(v => {
Main.layoutManager.overviewGroup.remove_actor(v.actor);
Main.windowPicker.add_actor(v.actor);
});
}
_onDestroy() {
if (this._workareasChangedId)
global.display.disconnect(this._workareasChangedId);
this._workareasChangedId = 0;
}
};
var WindowPicker = GObject.registerClass({
GTypeName: 'WindowListWindowPicker',
Signals: {
'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] },
},
}, class extends Clutter.Actor {
_init() {
this._visible = false;
this._modal = false;
this._overlayKeyId = 0;
this._stageKeyPressId = 0;
super._init();
this.connect('destroy', this._onDestroy.bind(this));
global.bind_property('screen-width',
this, 'width',
GObject.BindingFlags.SYNC_CREATE);
global.bind_property('screen-height',
this, 'height',
GObject.BindingFlags.SYNC_CREATE);
this._backgroundGroup = new Meta.BackgroundGroup({ reactive: true });
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.actor);
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);
if (!Main.sessionMode.hasOverview) {
this._overlayKeyId = global.display.connect('overlay-key', () => {
if (!this._visible)
this.open();
else
this.close();
});
}
}
get visible() {
return this._visible;
}
open() {
if (this._visible)
return;
this._visible = true;
if (!this._syncGrab())
return;
this._fakeOverviewVisible(true);
this._shadeBackgrounds();
this._fakeOverviewAnimation();
this._workspacesDisplay.show(false);
this._stageKeyPressId = global.stage.connect('key-press-event',
(a, event) => {
let sym = event.get_key_symbol();
if (sym === Clutter.KEY_Escape) {
this.close();
return Clutter.EVENT_STOP;
}
return Clutter.EVENT_PROPAGATE;
});
this.emit('open-state-changed', this._visible);
}
close() {
if (!this._visible)
return;
this._visible = false;
if (!this._syncGrab())
return;
this._workspacesDisplay.animateFromOverview(false);
this._unshadeBackgrounds();
this._fakeOverviewAnimation(() => {
this._workspacesDisplay.hide();
this._fakeOverviewVisible(false);
});
global.stage.disconnect(this._stageKeyPressId);
this._stageKeyPressId = 0;
this.emit('open-state-changed', this._visible);
}
_fakeOverviewAnimation(onComplete) {
Main.overview.animationInProgress = true;
GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
Overview.ANIMATION_TIME,
() => {
Main.overview.animationInProgress = false;
if (onComplete)
onComplete();
});
}
_fakeOverviewVisible(visible) {
// Fake overview state for WorkspacesDisplay
Main.overview.visible = visible;
// Hide real windows
Main.layoutManager._inOverview = visible;
Main.layoutManager._updateVisibility();
}
_syncGrab() {
if (this._visible) {
if (this._modal)
return true;
this._modal = Main.pushModal(this, {
actionMode: Shell.ActionMode.OVERVIEW,
});
if (!this._modal) {
this.hide();
return false;
}
} else if (this._modal) {
Main.popModal(this);
this._modal = false;
}
return true;
}
_onDestroy() {
if (this._monitorsChangedId)
Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0;
if (this._overlayKeyId)
global.display.disconnect(this._overlayKeyId);
this._overlayKeyId = 0;
if (this._stageKeyPressId)
global.stage.disconnect(this._stageKeyPressId);
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(
class WindowPickerToggle extends St.Button {
_init() {
let iconBin = new St.Widget({
layout_manager: new Clutter.BinLayout(),
});
iconBin.add_child(new St.Icon({
icon_name: 'focus-windows-symbolic',
icon_size: 16,
x_expand: true,
y_expand: true,
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
}));
super._init({
style_class: 'window-picker-toggle',
child: iconBin,
visible: !Main.sessionMode.hasOverview,
x_fill: true,
y_fill: true,
toggle_mode: true,
});
this.connect('notify::checked', () => {
if (this.checked)
Main.windowPicker.open();
else
Main.windowPicker.close();
});
Main.windowPicker.connect('open-state-changed', () => {
this.checked = Main.windowPicker.visible;
});
}
});

View File

@@ -0,0 +1,401 @@
/* exported WorkspaceIndicator */
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
const DND = imports.ui.dnd;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
let WindowPreview = GObject.registerClass({
GTypeName: 'WindowListWindowPreview',
}, class WindowPreview extends St.Button {
_init(window) {
super._init({
style_class: 'window-list-window-preview',
});
this._delegate = this;
DND.makeDraggable(this, { restoreOnSuccess: true });
this._window = window;
this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed',
this._relayout.bind(this));
this._positionChangedId = this._window.connect('position-changed',
this._relayout.bind(this));
this._minimizedChangedId = this._window.connect('notify::minimized',
this._relayout.bind(this));
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._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this));
this._onFocusChanged();
}
// needed for DND
get realWindow() {
return this._window.get_compositor_private();
}
_onDestroy() {
this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._monitorEnteredId);
global.display.disconnect(this._monitorLeftId);
global.display.disconnect(this._focusChangedId);
if (this._laterId)
Meta.later_remove(this._laterId);
}
_onFocusChanged() {
if (global.display.focus_window === this._window)
this.add_style_class_name('active');
else
this.remove_style_class_name('active');
}
_relayout() {
let monitor = Main.layoutManager.findIndexForActor(this);
this.visible = monitor === this._window.get_monitor() &&
this._window.showing_on_its_workspace();
if (!this.visible)
return;
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
let hscale = this.get_parent().allocation.get_width() / workArea.width;
let vscale = this.get_parent().allocation.get_height() / workArea.height;
let frameRect = this._window.get_frame_rect();
this.set_size(
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
this.set_position(
Math.round(frameRect.x * hscale),
Math.round(frameRect.y * vscale));
}
});
let WorkspaceThumbnail = GObject.registerClass({
GTypeName: 'WindowListWorkspaceThumbnail',
}, class WorkspaceThumbnail extends St.Button {
_init(index) {
super._init({
style_class: 'workspace',
child: new Clutter.Actor({
layout_manager: new Clutter.BinLayout(),
clip_to_allocation: true,
}),
x_fill: true,
y_fill: true,
});
this.connect('destroy', this._onDestroy.bind(this));
this._index = index;
this._delegate = this; // needed for DND
this._windowPreviews = new Map();
let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index);
this._windowAddedId = this._workspace.connect('window-added',
(ws, window) => {
this._addWindow(window);
});
this._windowRemovedId = this._workspace.connect('window-removed',
(ws, window) => {
this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked();
}
acceptDrop(source) {
if (!source.realWindow)
return false;
let window = source.realWindow.get_meta_window();
this._moveWindow(window);
return true;
}
handleDragOver(source) {
if (source.realWindow)
return DND.DragMotionResult.MOVE_DROP;
else
return DND.DragMotionResult.CONTINUE;
}
_addWindow(window) {
if (this._windowPreviews.has(window))
return;
let preview = new WindowPreview(window);
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
this._windowPreviews.set(window, preview);
this.child.add_child(preview);
}
_removeWindow(window) {
let preview = this._windowPreviews.get(window);
if (!preview)
return;
this._windowPreviews.delete(window);
preview.destroy();
}
_onRestacked() {
let lastPreview = null;
let windows = global.get_window_actors().map(a => a.meta_window);
for (let i = 0; i < windows.length; i++) {
let preview = this._windowPreviews.get(windows[i]);
if (!preview)
continue;
this.child.set_child_above_sibling(preview, lastPreview);
lastPreview = preview;
}
}
_moveWindow(window) {
let monitorIndex = Main.layoutManager.findIndexForActor(this);
if (monitorIndex !== window.get_monitor())
window.move_to_monitor(monitorIndex);
window.change_workspace_by_index(this._index, false);
}
on_clicked() {
let ws = global.workspace_manager.get_workspace_by_index(this._index);
if (ws)
ws.activate(global.get_current_time());
}
_onDestroy() {
this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId);
}
});
var WorkspaceIndicator = GObject.registerClass({
GTypeName: 'WindowListWorkspaceIndicator',
}, class WorkspaceIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _('Workspace Indicator'), true);
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
this.add_style_class_name('window-list-workspace-indicator');
this.menu.actor.remove_style_class_name('panel-menu');
let container = new St.Widget({
layout_manager: new Clutter.BinLayout(),
x_expand: true,
y_expand: true,
});
this.add_actor(container);
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._statusLabel = new St.Label({ text: this._getStatusText() });
this._statusBin = new St.Bin({
style_class: 'status-label-bin',
x_expand: true,
y_expand: true,
child: this._statusLabel,
});
container.add_actor(this._statusBin);
this._thumbnailsBox = new St.BoxLayout({
style_class: 'workspaces-box',
y_expand: true,
reactive: true,
});
this._thumbnailsBox.connect('scroll-event',
this._onScrollEvent.bind(this));
container.add_actor(this._thumbnailsBox);
this._workspacesItems = [];
this._workspaceManagerSignals = [
workspaceManager.connect('notify::n-workspaces',
this._nWorkspacesChanged.bind(this)),
workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._onWorkspaceOrientationChanged.bind(this)),
];
this.connect('scroll-event', this._onScrollEvent.bind(this));
this._updateMenu();
this._updateThumbnails();
this._onWorkspaceOrientationChanged();
this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' });
this._settingsChangedId = this._settings.connect(
'changed::workspace-names', this._updateMenuLabels.bind(this));
}
_onDestroy() {
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
this._settingsChangedId = 0;
}
super._onDestroy();
}
_onWorkspaceOrientationChanged() {
let vertical = global.workspace_manager.layout_rows === -1;
this.reactive = vertical;
this._statusBin.visible = vertical;
this._thumbnailsBox.visible = !vertical;
}
_onWorkspaceSwitched() {
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._updateMenuOrnament();
this._updateActiveThumbnail();
this._statusLabel.set_text(this._getStatusText());
}
_nWorkspacesChanged() {
this._updateMenu();
this._updateThumbnails();
}
_updateMenuOrnament() {
for (let i = 0; i < this._workspacesItems.length; i++) {
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
? PopupMenu.Ornament.DOT
: PopupMenu.Ornament.NONE);
}
}
_updateActiveThumbnail() {
let thumbs = this._thumbnailsBox.get_children();
for (let i = 0; i < thumbs.length; i++) {
if (i === this._currentWorkspace)
thumbs[i].add_style_class_name('active');
else
thumbs[i].remove_style_class_name('active');
}
}
_getStatusText() {
let workspaceManager = global.workspace_manager;
let current = workspaceManager.get_active_workspace_index();
let total = workspaceManager.n_workspaces;
return '%d / %d'.format(current + 1, total);
}
_updateMenuLabels() {
for (let i = 0; i < this._workspacesItems.length; i++) {
let item = this._workspacesItems[i];
let name = Meta.prefs_get_workspace_name(i);
item.label.text = name;
}
}
_updateMenu() {
let workspaceManager = global.workspace_manager;
this.menu.removeAll();
this._workspacesItems = [];
this._currentWorkspace = workspaceManager.get_active_workspace_index();
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
let name = Meta.prefs_get_workspace_name(i);
let item = new PopupMenu.PopupMenuItem(name);
item.workspaceId = i;
item.connect('activate', () => {
this._activate(item.workspaceId);
});
if (i === this._currentWorkspace)
item.setOrnament(PopupMenu.Ornament.DOT);
this.menu.addMenuItem(item);
this._workspacesItems[i] = item;
}
this._statusLabel.set_text(this._getStatusText());
}
_updateThumbnails() {
let workspaceManager = global.workspace_manager;
this._thumbnailsBox.destroy_all_children();
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
let thumb = new WorkspaceThumbnail(i);
this._thumbnailsBox.add_actor(thumb);
}
this._updateActiveThumbnail();
}
_activate(index) {
let workspaceManager = global.workspace_manager;
if (index >= 0 && index < workspaceManager.n_workspaces) {
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
metaWorkspace.activate(global.get_current_time());
}
}
_onScrollEvent(actor, event) {
let direction = event.get_scroll_direction();
let diff = 0;
if (direction === Clutter.ScrollDirection.DOWN)
diff = 1;
else if (direction === Clutter.ScrollDirection.UP)
diff = -1;
else
return;
let newIndex = this._currentWorkspace + diff;
this._activate(newIndex);
}
_allocate(actor, box, flags) {
if (actor.get_n_children() > 0)
actor.get_first_child().allocate(box, flags);
}
});

View File

@@ -1,52 +1,67 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported enable disable */
const Clutter = imports.gi.Clutter;
const St = imports.gi.St;
/* exported init */
const { Clutter, St } = imports.gi;
const Main = imports.ui.main;
const Workspace = imports.ui.workspace;
const WorkspacesView = imports.ui.workspacesView;
function injectToFunction(parent, name, func) {
let origin = parent[name];
parent[name] = function() {
let ret;
ret = origin.apply(this, arguments);
if (ret === undefined)
ret = func.apply(this, arguments);
return ret;
};
return origin;
}
var MyWindowOverlay = class extends Workspace.WindowOverlay {
constructor(windowClone, parentActor) {
super(windowClone, parentActor);
let winInjections, workspaceInjections, workViewInjections, createdActors, connectedSignals;
this._id = null;
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
parentActor.add_actor(this._text);
}
function resetState() {
winInjections = {};
workspaceInjections = {};
workViewInjections = {};
createdActors = [];
connectedSignals = [];
}
function enable() {
resetState();
Workspace.WindowOverlay.prototype.showTooltip = function() {
showTooltip() {
this._text.raise_top();
this._text.show();
this._text.text = (this._windowClone.slotId + 1).toString();
};
winInjections['showTooltip'] = undefined;
}
Workspace.WindowOverlay.prototype.hideTooltip = function() {
hideTooltip() {
if (this._text && this._text.visible)
this._text.hide();
};
winInjections['hideTooltip'] = undefined;
}
Workspace.Workspace.prototype.showTooltip = function() {
if (this._tip == null || this._actualGeometry == null)
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._text.raise_top();
}
};
var MyWorkspace = class extends Workspace.Workspace {
constructor(metaWorkspace, monitorIndex) {
super(metaWorkspace, monitorIndex);
if (metaWorkspace && metaWorkspace.index() < 9) {
this._tip = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this.actor.add_actor(this._tip);
this.actor.connect('notify::scale-x', () => {
this._tip.set_scale(1 / this.actor.scale_x, 1 / this.actor.scale_x);
});
} else {
this._tip = null;
}
}
showTooltip() {
if (!this._tip || !this._actualGeometry)
return;
this._tip.text = (this.metaWorkspace.index() + 1).toString();
@@ -65,81 +80,94 @@ function enable() {
this._tip.y = area.y;
this._tip.show();
this._tip.raise_top();
};
workspaceInjections['showTooltip'] = undefined;
}
Workspace.Workspace.prototype.hideTooltip = function() {
if (this._tip == null)
hideTooltip() {
if (!this._tip)
return;
if (!this._tip.get_parent())
return;
this._tip.hide();
};
workspaceInjections['hideTooltip'] = undefined;
}
Workspace.Workspace.prototype.getWindowWithTooltip = function(id) {
getWindowWithTooltip(id) {
for (let i = 0; i < this._windows.length; i++) {
if ((this._windows[i].slotId + 1) == id)
if (this._windows[i].slotId + 1 === id)
return this._windows[i].metaWindow;
}
return null;
};
workspaceInjections['getWindowWithTooltip'] = undefined;
}
Workspace.Workspace.prototype.showWindowsTooltips = function() {
showWindowsTooltips() {
for (let i in this._windowOverlays) {
if (this._windowOverlays[i] != null)
if (this._windowOverlays[i])
this._windowOverlays[i].showTooltip();
}
};
workspaceInjections['showWindowsTooltips'] = undefined;
}
Workspace.Workspace.prototype.hideWindowsTooltips = function() {
hideWindowsTooltips() {
for (let i in this._windowOverlays) {
if (this._windowOverlays[i] != null)
if (this._windowOverlays[i])
this._windowOverlays[i].hideTooltip();
}
};
workspaceInjections['hideWindowsTooltips'] = undefined;
}
};
WorkspacesView.WorkspacesView.prototype._hideTooltips = function() {
if (global.stage.get_key_focus() == global.stage)
var MyWorkspacesView = class extends WorkspacesView.WorkspacesView {
constructor(width, height, x, y, workspaces) {
super(width, height, x, y, workspaces);
this._pickWorkspace = false;
this._pickWindow = false;
this._keyPressEventId =
global.stage.connect('key-press-event', this._onKeyPress.bind(this));
this._keyReleaseEventId =
global.stage.connect('key-release-event', this._onKeyRelease.bind(this));
}
_onDestroy() {
super._onDestroy();
global.stage.disconnect(this._keyPressEventId);
global.stage.disconnect(this._keyReleaseEventId);
}
_hideTooltips() {
if (global.stage.get_key_focus() === global.stage)
global.stage.set_key_focus(this._prevFocusActor);
this._pickWindow = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideWindowsTooltips();
};
workViewInjections['_hideTooltips'] = undefined;
}
WorkspacesView.WorkspacesView.prototype._hideWorkspacesTooltips = function() {
_hideWorkspacesTooltips() {
global.stage.set_key_focus(this._prevFocusActor);
this._pickWorkspace = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideTooltip();
};
workViewInjections['_hideWorkspacesTooltips'] = undefined;
}
WorkspacesView.WorkspacesView.prototype._onKeyRelease = function(s, o) {
_onKeyRelease(s, o) {
if (this._pickWindow &&
(o.get_key_symbol() == Clutter.KEY_Alt_L ||
o.get_key_symbol() == Clutter.KEY_Alt_R))
(o.get_key_symbol() === Clutter.KEY_Alt_L ||
o.get_key_symbol() === Clutter.KEY_Alt_R))
this._hideTooltips();
if (this._pickWorkspace &&
(o.get_key_symbol() == Clutter.KEY_Control_L ||
o.get_key_symbol() == Clutter.KEY_Control_R))
(o.get_key_symbol() === Clutter.KEY_Control_L ||
o.get_key_symbol() === Clutter.KEY_Control_R))
this._hideWorkspacesTooltips();
};
workViewInjections['_onKeyRelease'] = undefined;
}
WorkspacesView.WorkspacesView.prototype._onKeyPress = function(s, o) {
if (Main.overview.viewSelector._activePage != Main.overview.viewSelector._workspacesPage)
_onKeyPress(s, o) {
let { viewSelector } = Main.overview;
if (viewSelector._activePage !== viewSelector._workspacesPage)
return false;
let workspaceManager = global.workspace_manager;
if ((o.get_key_symbol() == Clutter.KEY_Alt_L ||
o.get_key_symbol() == Clutter.KEY_Alt_R)
&& !this._pickWorkspace) {
if ((o.get_key_symbol() === Clutter.KEY_Alt_L ||
o.get_key_symbol() === Clutter.KEY_Alt_R) &&
!this._pickWorkspace) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._active = workspaceManager.get_active_workspace_index();
@@ -147,9 +175,9 @@ function enable() {
this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
return true;
}
if ((o.get_key_symbol() == Clutter.KEY_Control_L ||
o.get_key_symbol() == Clutter.KEY_Control_R)
&& !this._pickWindow) {
if ((o.get_key_symbol() === Clutter.KEY_Control_L ||
o.get_key_symbol() === Clutter.KEY_Control_R) &&
!this._pickWindow) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._pickWorkspace = true;
@@ -158,17 +186,17 @@ function enable() {
return true;
}
if (global.stage.get_key_focus() != global.stage)
if (global.stage.get_key_focus() !== global.stage)
return false;
// ignore shift presses, they're required to get numerals in azerty keyboards
if ((this._pickWindow || this._pickWorkspace) &&
(o.get_key_symbol() == Clutter.KEY_Shift_L ||
o.get_key_symbol() == Clutter.KEY_Shift_R))
(o.get_key_symbol() === Clutter.KEY_Shift_L ||
o.get_key_symbol() === Clutter.KEY_Shift_R))
return true;
if (this._pickWindow) {
if (this._active != workspaceManager.get_active_workspace_index()) {
if (this._active !== workspaceManager.get_active_workspace_index()) {
this._hideTooltips();
return false;
}
@@ -209,79 +237,29 @@ function enable() {
return true;
}
return false;
};
workViewInjections['_onKeyPress'] = undefined;
}
};
winInjections['_init'] = injectToFunction(Workspace.WindowOverlay.prototype, '_init', function(windowClone, parentActor) {
this._id = null;
createdActors.push(this._text = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip' }));
this._text.hide();
parentActor.add_actor(this._text);
});
class Extension {
constructor() {
this._origWindowOverlay = Workspace.WindowOverlay;
this._origWorkspace = Workspace.Workspace;
this._origWorkspacesView = WorkspacesView.WorkspacesView;
}
winInjections['relayout'] = injectToFunction(Workspace.WindowOverlay.prototype, 'relayout', function(_animate) {
let [cloneX, cloneY, cloneWidth_, cloneHeight_] = this._windowClone.slot;
enable() {
Workspace.WindowOverlay = MyWindowOverlay;
Workspace.Workspace = MyWorkspace;
WorkspacesView.WorkspacesView = MyWorkspacesView;
}
let textX = cloneX - 2;
let textY = cloneY - 2;
this._text.set_position(Math.floor(textX) + 5, Math.floor(textY) + 5);
this._text.raise_top();
});
workspaceInjections['_init'] = injectToFunction(Workspace.Workspace.prototype, '_init', function(metaWorkspace) {
if (metaWorkspace && metaWorkspace.index() < 9) {
createdActors.push(this._tip = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip',
visible: false }));
this.actor.add_actor(this._tip);
let signalId = this.actor.connect('notify::scale-x', () => {
this._tip.set_scale(1 / this.actor.scale_x, 1 / this.actor.scale_x);
});
connectedSignals.push({ obj: this.actor, id: signalId });
} else
this._tip = null;
});
workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(_width, _height, _x, _y, _workspaces) {
this._pickWorkspace = false;
this._pickWindow = false;
this._keyPressEventId =
global.stage.connect('key-press-event', this._onKeyPress.bind(this));
this._keyReleaseEventId =
global.stage.connect('key-release-event', this._onKeyRelease.bind(this));
connectedSignals.push({ obj: global.stage, id: this._keyPressEventId });
connectedSignals.push({ obj: global.stage, id: this._keyReleaseEventId });
});
workViewInjections['_onDestroy'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_onDestroy', function() {
global.stage.disconnect(this._keyPressEventId);
global.stage.disconnect(this._keyReleaseEventId);
connectedSignals = [];
});
disable() {
Workspace.WindowOverlay = this._origWindowOverlay;
Workspace.Workspace = this._origWorkspace;
WorkspacesView.WorkspacesView = this._origWorkspacesView;
}
}
function removeInjection(object, injection, name) {
if (injection[name] === undefined)
delete object[name];
else
object[name] = injection[name];
}
function disable() {
let i;
for (i in workspaceInjections)
removeInjection(Workspace.Workspace.prototype, workspaceInjections, i);
for (i in winInjections)
removeInjection(Workspace.WindowOverlay.prototype, winInjections, i);
for (i in workViewInjections)
removeInjection(WorkspacesView.WorkspacesView.prototype, workViewInjections, i);
for (i of connectedSignals)
i.obj.disconnect(i.id);
for (i of createdActors)
i.destroy();
resetState();
function init() {
return new Extension();
}

View File

@@ -1,59 +1,269 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init enable disable */
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Meta = imports.gi.Meta;
const Clutter = imports.gi.Clutter;
const St = imports.gi.St;
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const Main = imports.ui.main;
const ExtensionUtils = imports.misc.extensionUtils;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
let WindowPreview = GObject.registerClass({
GTypeName: 'WorkspaceIndicatorWindowPreview',
}, class WindowPreview extends St.Button {
_init(window) {
super._init({
style_class: 'workspace-indicator-window-preview',
});
this._delegate = this;
DND.makeDraggable(this, { restoreOnSuccess: true });
this._window = window;
this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed',
this._relayout.bind(this));
this._positionChangedId = this._window.connect('position-changed',
this._relayout.bind(this));
this._minimizedChangedId = this._window.connect('notify::minimized',
this._relayout.bind(this));
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._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this));
this._onFocusChanged();
}
// needed for DND
get realWindow() {
return this._window.get_compositor_private();
}
_onDestroy() {
this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._monitorEnteredId);
global.display.disconnect(this._monitorLeftId);
global.display.disconnect(this._focusChangedId);
if (this._laterId)
Meta.later_remove(this._laterId);
}
_onFocusChanged() {
if (global.display.focus_window === this._window)
this.add_style_class_name('active');
else
this.remove_style_class_name('active');
}
_relayout() {
let monitor = Main.layoutManager.findIndexForActor(this);
this.visible = monitor === this._window.get_monitor() &&
this._window.showing_on_its_workspace();
if (!this.visible)
return;
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
let hscale = this.get_parent().allocation.get_width() / workArea.width;
let vscale = this.get_parent().allocation.get_height() / workArea.height;
let frameRect = this._window.get_frame_rect();
this.set_size(
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
this.set_position(
Math.round(frameRect.x * hscale),
Math.round(frameRect.y * vscale));
}
});
let WorkspaceThumbnail = GObject.registerClass({
GTypeName: 'WorkspaceIndicatorWorkspaceThumbnail',
}, class WorkspaceThumbnail extends St.Button {
_init(index) {
super._init({
style_class: 'workspace',
child: new Clutter.Actor({
layout_manager: new Clutter.BinLayout(),
clip_to_allocation: true,
}),
x_fill: true,
y_fill: true,
});
this.connect('destroy', this._onDestroy.bind(this));
this._index = index;
this._delegate = this; // needed for DND
this._windowPreviews = new Map();
let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index);
this._windowAddedId = this._workspace.connect('window-added',
(ws, window) => {
this._addWindow(window);
});
this._windowRemovedId = this._workspace.connect('window-removed',
(ws, window) => {
this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked();
}
acceptDrop(source) {
if (!source.realWindow)
return false;
let window = source.realWindow.get_meta_window();
this._moveWindow(window);
return true;
}
handleDragOver(source) {
if (source.realWindow)
return DND.DragMotionResult.MOVE_DROP;
else
return DND.DragMotionResult.CONTINUE;
}
_addWindow(window) {
if (this._windowPreviews.has(window))
return;
let preview = new WindowPreview(window);
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
this._windowPreviews.set(window, preview);
this.child.add_child(preview);
}
_removeWindow(window) {
let preview = this._windowPreviews.get(window);
if (!preview)
return;
this._windowPreviews.delete(window);
preview.destroy();
}
_onRestacked() {
let lastPreview = null;
let windows = global.get_window_actors().map(a => a.meta_window);
for (let i = 0; i < windows.length; i++) {
let preview = this._windowPreviews.get(windows[i]);
if (!preview)
continue;
this.child.set_child_above_sibling(preview, lastPreview);
lastPreview = preview;
}
}
_moveWindow(window) {
let monitorIndex = Main.layoutManager.findIndexForActor(this);
if (monitorIndex !== window.get_monitor())
window.move_to_monitor(monitorIndex);
window.change_workspace_by_index(this._index, false);
}
on_clicked() {
let ws = global.workspace_manager.get_workspace_by_index(this._index);
if (ws)
ws.activate(global.get_current_time());
}
_onDestroy() {
this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId);
}
});
let WorkspaceIndicator = GObject.registerClass(
class WorkspaceIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _("Workspace Indicator"));
super._init(0.0, _('Workspace Indicator'));
let container = new St.Widget({
layout_manager: new Clutter.BinLayout(),
x_expand: true,
y_expand: true,
});
this.add_actor(container);
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace().index();
this.statusLabel = new St.Label({ y_align: Clutter.ActorAlign.CENTER,
text: this._labelText() });
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._statusLabel = new St.Label({
style_class: 'panel-workspace-indicator',
y_align: Clutter.ActorAlign.CENTER,
text: this._labelText(),
});
this.add_actor(this.statusLabel);
container.add_actor(this._statusLabel);
this.workspacesItems = [];
this._thumbnailsBox = new St.BoxLayout({
style_class: 'panel-workspace-indicator-box',
y_expand: true,
reactive: true,
});
container.add_actor(this._thumbnailsBox);
this._workspacesItems = [];
this._workspaceSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._workspaceSection);
this._workspaceManagerSignals = [];
this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-added',
this._createWorkspacesSection.bind(this)));
this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-removed',
this._createWorkspacesSection.bind(this)));
this._workspaceManagerSignals.push(workspaceManager.connect_after('workspace-switched',
this._updateIndicator.bind(this)));
this._workspaceManagerSignals = [
workspaceManager.connect_after('notify::n-workspaces',
this._nWorkspacesChanged.bind(this)),
workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._onWorkspaceOrientationChanged.bind(this)),
];
this.connect('scroll-event', this._onScrollEvent.bind(this));
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
this._createWorkspacesSection();
//styling
this.statusLabel.add_style_class_name('panel-workspace-indicator');
this._updateThumbnails();
this._onWorkspaceOrientationChanged();
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
this._settingsChangedId =
this._settings.connect(`changed::${WORKSPACE_KEY}`,
this._createWorkspacesSection.bind(this));
this._settingsChangedId = this._settings.connect(
`changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this));
}
_onDestroy() {
@@ -65,53 +275,110 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._settingsChangedId = 0;
}
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
super._onDestroy();
}
_updateIndicator() {
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
this._currentWorkspace = global.workspace_manager.get_active_workspace().index();
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
_onWorkspaceOrientationChanged() {
let vertical = global.workspace_manager.layout_rows === -1;
this.reactive = vertical;
this.statusLabel.set_text(this._labelText());
this._statusLabel.visible = vertical;
this._thumbnailsBox.visible = !vertical;
// Disable offscreen-redirect when showing the workspace switcher
// so that clip-to-allocation works
Main.panel.set_offscreen_redirect(vertical
? Clutter.OffscreenRedirect.ALWAYS
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
}
_onWorkspaceSwitched() {
this._currentWorkspace = global.workspace_manager.get_active_workspace_index();
this._updateMenuOrnament();
this._updateActiveThumbnail();
this._statusLabel.set_text(this._labelText());
}
_nWorkspacesChanged() {
this._createWorkspacesSection();
this._updateThumbnails();
}
_updateMenuOrnament() {
for (let i = 0; i < this._workspacesItems.length; i++) {
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
? PopupMenu.Ornament.DOT
: PopupMenu.Ornament.NONE);
}
}
_updateActiveThumbnail() {
let thumbs = this._thumbnailsBox.get_children();
for (let i = 0; i < thumbs.length; i++) {
if (i === this._currentWorkspace)
thumbs[i].add_style_class_name('active');
else
thumbs[i].remove_style_class_name('active');
}
}
_labelText(workspaceIndex) {
if (workspaceIndex == undefined) {
if (workspaceIndex === undefined) {
workspaceIndex = this._currentWorkspace;
return (workspaceIndex + 1).toString();
}
return Meta.prefs_get_workspace_name(workspaceIndex);
}
_updateMenuLabels() {
for (let i = 0; i < this._workspacesItems.length; i++)
this._workspacesItems[i].label.text = this._labelText(i);
}
_createWorkspacesSection() {
let workspaceManager = global.workspace_manager;
this._workspaceSection.removeAll();
this.workspacesItems = [];
this._currentWorkspace = workspaceManager.get_active_workspace().index();
this._workspacesItems = [];
this._currentWorkspace = workspaceManager.get_active_workspace_index();
let i = 0;
for (; i < workspaceManager.n_workspaces; i++) {
this.workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
this._workspaceSection.addMenuItem(this.workspacesItems[i]);
this.workspacesItems[i].workspaceId = i;
this.workspacesItems[i].label_actor = this.statusLabel;
this.workspacesItems[i].connect('activate', (actor, _event) => {
this._workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
this._workspaceSection.addMenuItem(this._workspacesItems[i]);
this._workspacesItems[i].workspaceId = i;
this._workspacesItems[i].label_actor = this._statusLabel;
this._workspacesItems[i].connect('activate', (actor, _event) => {
this._activate(actor.workspaceId);
});
if (i == this._currentWorkspace)
this.workspacesItems[i].setOrnament(PopupMenu.Ornament.DOT);
if (i === this._currentWorkspace)
this._workspacesItems[i].setOrnament(PopupMenu.Ornament.DOT);
}
this.statusLabel.set_text(this._labelText());
this._statusLabel.set_text(this._labelText());
}
_updateThumbnails() {
let workspaceManager = global.workspace_manager;
this._thumbnailsBox.destroy_all_children();
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
let thumb = new WorkspaceThumbnail(i);
this._thumbnailsBox.add_actor(thumb);
}
this._updateActiveThumbnail();
}
_activate(index) {
let workspaceManager = global.workspace_manager;
if (index >= 0 && index < workspaceManager.n_workspaces) {
if (index >= 0 && index < workspaceManager.n_workspaces) {
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
metaWorkspace.activate(global.get_current_time());
}
@@ -120,15 +387,15 @@ class WorkspaceIndicator extends PanelMenu.Button {
_onScrollEvent(actor, event) {
let direction = event.get_scroll_direction();
let diff = 0;
if (direction == Clutter.ScrollDirection.DOWN) {
if (direction === Clutter.ScrollDirection.DOWN)
diff = 1;
} else if (direction == Clutter.ScrollDirection.UP) {
else if (direction === Clutter.ScrollDirection.UP)
diff = -1;
} else {
else
return;
}
let newIndex = global.workspace_manager.get_active_workspace().index() + diff;
let newIndex = global.workspace_manager.get_active_workspace_index() + diff;
this._activate(newIndex);
}
});
@@ -140,7 +407,7 @@ function init() {
let _indicator;
function enable() {
_indicator = new WorkspaceIndicator;
_indicator = new WorkspaceIndicator();
Main.panel.addToStatusArea('workspace-indicator', _indicator);
}

View File

@@ -1,9 +1,7 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const { Gio, GObject, Gtk } = imports.gi;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
@@ -25,8 +23,6 @@ class WorkspaceNameModel extends Gtk.ListStore {
};
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
//this._settings.connect('changed::workspace-names', this._reloadFromSettings.bind(this));
this._reloadFromSettings();
// overriding class closure doesn't work, because GtkTreeModel
@@ -55,7 +51,7 @@ class WorkspaceNameModel extends Gtk.ListStore {
while (ok)
ok = this.remove(iter);
for ( ; i < newNames.length; i++) {
for (; i < newNames.length; i++) {
iter = this.append();
this.set(iter, [this.Columns.LABEL], [newNames[i]]);
}
@@ -129,22 +125,28 @@ class WorkspaceSettingsWidget extends Gtk.Grid {
this.margin = 12;
this.orientation = Gtk.Orientation.VERTICAL;
this.add(new Gtk.Label({ label: '<b>%s</b>'.format(_("Workspace Names")),
use_markup: true, margin_bottom: 6,
hexpand: true, halign: Gtk.Align.START }));
this.add(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Names')),
use_markup: true,
margin_bottom: 6,
hexpand: true,
halign: Gtk.Align.START,
}));
let scrolled = new Gtk.ScrolledWindow({ shadow_type: Gtk.ShadowType.IN });
scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
this.add(scrolled);
this._store = new WorkspaceNameModel();
this._treeView = new Gtk.TreeView({ model: this._store,
headers_visible: false,
reorderable: true,
hexpand: true,
vexpand: true });
this._treeView = new Gtk.TreeView({
model: this._store,
headers_visible: false,
reorderable: true,
hexpand: true,
vexpand: true,
});
let column = new Gtk.TreeViewColumn({ title: _("Name") });
let column = new Gtk.TreeViewColumn({ title: _('Name') });
let renderer = new Gtk.CellRendererText({ editable: true });
renderer.connect('edited', this._cellEdited.bind(this));
column.pack_start(renderer, true);
@@ -184,7 +186,7 @@ class WorkspaceSettingsWidget extends Gtk.Grid {
let iter = this._store.append();
let index = this._store.get_path(iter).get_indices()[0];
let label = _("Workspace %d").format(index + 1);
let label = _('Workspace %d').format(index + 1);
this._store.set(iter, [this._store.Columns.LABEL], [label]);
}

View File

@@ -1,5 +1,40 @@
.panel-workspace-indicator {
padding: 0 8px;
background-color: rgba(200, 200, 200, .5);
}
.panel-workspace-indicator-box {
padding: 2px 0;
}
.panel-workspace-indicator-box .workspace {
width: 40px;
}
.panel-workspace-indicator,
.panel-workspace-indicator-box .workspace {
border: 1px solid #cccccc;
}
.panel-workspace-indicator,
.panel-workspace-indicator-box .workspace.active {
background-color: rgba(200, 200, 200, .5);
}
.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 {
background-color: #252525;
border: 1px solid #ccc;
}
.workspace-indicator-window-preview.active {
background-color: #353535;
border: 2px solid #ccc;
}

View File

@@ -1,113 +0,0 @@
{
"env": {
"es6": true
},
"extends": "eslint:recommended",
"rules": {
"array-bracket-newline": [
"error",
"consistent"
],
"array-bracket-spacing": [
"error",
"never"
],
"brace-style": "error",
"comma-spacing": [
"error",
{
"before": false,
"after": true
}
],
"indent": [
"error",
4,
{
"MemberExpression": "off"
}
],
"key-spacing": [
"error",
{
"beforeColon": false,
"afterColon": true
}
],
"keyword-spacing": [
"error",
{
"before": true,
"after": true
}
],
"linebreak-style": [
"error",
"unix"
],
"no-empty": [
"error",
{
"allowEmptyCatch": true
}
],
"no-implicit-coercion": [
"error",
{
"allow": ["!!"]
}
],
"nonblock-statement-body-position": [
"error",
"below"
],
"object-curly-newline": [
"error",
{
"consistent": true
}
],
"object-curly-spacing": "error",
"prefer-template": "error",
"quotes": [
"error",
"single",
{
"avoidEscape": true
}
],
"semi": [
"error",
"always"
],
"semi-spacing": [
"error",
{
"before": false,
"after": true
}
],
"space-before-blocks": "error",
"space-infix-ops": [
"error",
{
"int32Hint": false
}
]
},
"globals": {
"ARGV": false,
"Debugger": false,
"GIRepositoryGType": false,
"imports": false,
"Intl": false,
"log": false,
"logError": false,
"print": false,
"printerr": false,
"window": false
},
"parserOptions": {
"ecmaVersion": 2017
}
}

228
lint/eslintrc-gjs.yml Normal file
View File

@@ -0,0 +1,228 @@
---
env:
es6: true
extends: 'eslint:recommended'
rules:
array-bracket-newline:
- error
- consistent
array-bracket-spacing:
- error
- never
array-callback-return: error
arrow-parens:
- error
- as-needed
arrow-spacing: error
block-scoped-var: error
block-spacing: error
brace-style: error
# Waiting for this to have matured a bit in eslint
# camelcase:
# - error
# - properties: never
# allow: [^vfunc_, ^on_, _instance_init]
comma-dangle:
- error
- always-multiline
comma-spacing:
- error
- before: false
after: true
comma-style:
- error
- last
computed-property-spacing: error
curly:
- error
- multi-or-nest
- consistent
dot-location:
- error
- property
eol-last: error
eqeqeq: error
func-call-spacing: error
func-name-matching: error
func-style:
- error
- declaration
- allowArrowFunctions: true
indent:
- error
- 4
- ignoredNodes:
# Allow not indenting the body of GObject.registerClass, since in the
# future it's intended to be a decorator
- 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child'
# Allow dedenting chained member expressions
MemberExpression: 'off'
key-spacing:
- error
- beforeColon: false
afterColon: true
keyword-spacing:
- error
- before: true
after: true
linebreak-style:
- error
- unix
lines-between-class-members: error
max-nested-callbacks: error
max-statements-per-line: error
new-parens: error
no-array-constructor: error
no-await-in-loop: error
no-caller: error
no-constant-condition:
- error
- checkLoops: false
no-div-regex: error
no-empty:
- error
- allowEmptyCatch: true
no-extra-bind: error
no-extra-parens:
- error
- all
- conditionalAssign: false
returnAssign: false
no-implicit-coercion:
- error
- allow:
- '!!'
no-invalid-this: error
no-iterator: error
no-label-var: error
no-lonely-if: error
no-loop-func: error
no-nested-ternary: error
no-new-object: error
no-new-wrappers: error
no-octal-escape: error
no-proto: error
no-prototype-builtins: 'off'
no-restricted-properties:
- error
- object: Lang
property: bind
message: Use arrow notation or Function.prototype.bind()
- object: Lang
property: Class
message: Use ES6 classes
- object: imports
property: mainloop
message: Use GLib main loops and timeouts
no-restricted-syntax:
- error
- selector: >-
MethodDefinition[key.name="_init"] >
FunctionExpression[params.length=1] >
BlockStatement[body.length=1]
CallExpression[arguments.length=1][callee.object.type="Super"][callee.property.name="_init"] >
Identifier:first-child
message: _init() that only calls super._init() is unnecessary
- selector: >-
MethodDefinition[key.name="_init"] >
FunctionExpression[params.length=0] >
BlockStatement[body.length=1]
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
message: _init() that only calls super._init() is unnecessary
no-return-assign: error
no-return-await: error
no-self-compare: error
no-shadow: error
no-shadow-restricted-names: error
no-spaced-func: error
no-tabs: error
no-template-curly-in-string: error
no-throw-literal: error
no-trailing-spaces: error
no-undef-init: error
no-unneeded-ternary: error
no-unused-expressions: error
no-unused-vars:
- error
# Vars use a suffix _ instead of a prefix because of file-scope private vars
- varsIgnorePattern: (^unused|_$)
argsIgnorePattern: ^(unused|_)
no-useless-call: error
no-useless-computed-key: error
no-useless-concat: error
no-useless-constructor: error
no-useless-rename: error
no-useless-return: error
no-whitespace-before-property: error
no-with: error
nonblock-statement-body-position:
- error
- below
object-curly-newline:
- error
- consistent: true
object-curly-spacing: error
object-shorthand: error
operator-assignment: error
operator-linebreak: error
# These may be a bit controversial, we can try them out and enable them later
# prefer-const: error
# prefer-destructuring: error
prefer-numeric-literals: error
prefer-promise-reject-errors: error
prefer-rest-params: error
prefer-spread: error
prefer-template: error
quotes:
- error
- single
- avoidEscape: true
require-await: error
rest-spread-spacing: error
semi:
- error
- always
semi-spacing:
- error
- before: false
after: true
semi-style: error
space-before-blocks: error
space-before-function-paren:
- error
- named: never
# for `function ()` and `async () =>`, preserve space around keywords
anonymous: always
asyncArrow: always
space-in-parens: error
space-infix-ops:
- error
- int32Hint: false
space-unary-ops: error
spaced-comment: error
switch-colon-spacing: error
symbol-description: error
template-curly-spacing: error
template-tag-spacing: error
unicode-bom: error
valid-jsdoc:
- error
- requireReturn: false
wrap-iife:
- error
- inside
yield-star-spacing: error
yoda: error
globals:
ARGV: readonly
Debugger: readonly
GIRepositoryGType: readonly
imports: readonly
Intl: readonly
log: readonly
logError: readonly
print: readonly
printerr: readonly
window: readonly
parserOptions:
ecmaVersion: 2017

View File

@@ -1,20 +0,0 @@
{
"rules": {
"indent": [
"error",
4,
{
"ignoredNodes": [
"ConditionalExpression",
"CallExpression > ArrowFunctionExpression",
"CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child"
],
"CallExpression": { "arguments": "first" },
"ArrayExpression": "first",
"ObjectExpression": "first",
"MemberExpression": "off"
}
],
"quotes": "off"
}
}

View File

@@ -1,58 +0,0 @@
{
"rules": {
"arrow-spacing": "error",
"brace-style": [
"error",
"1tbs",
{
"allowSingleLine": true
}
],
"camelcase": [
"error",
{
"properties": "never",
"allow": ["^vfunc_"]
}
],
"indent": [
"error",
4,
{
"ignoredNodes": [
"ArrayExpression > ObjectExpression",
"CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child",
"ConditionalExpression"
],
"MemberExpression": "off"
}
],
"key-spacing": [
"error",
{
"mode": "minimum",
"beforeColon": false,
"afterColon": true
}
],
"no-unused-vars": [
"error",
{
"argsIgnorePattern": "^_",
"varsIgnorePattern": "_$"
}
],
"object-curly-spacing": [
"error",
"always"
],
"prefer-arrow-callback": "error"
},
"globals": {
"global": false,
"_": false,
"C_": false,
"N_": false,
"ngettext": false
}
}

11
lint/eslintrc-shell.yml Normal file
View File

@@ -0,0 +1,11 @@
rules:
camelcase:
- error
- properties: never
allow: [^vfunc_, ^on_]
object-curly-spacing:
- error
- always
prefer-arrow-callback: error
globals:
global: readonly

View File

@@ -1,61 +0,0 @@
#!/bin/sh
SEP=`printf '\t'`
OUTPUT=/dev/stderr
CWD=`pwd`
SRCDIR=`dirname $0`
run_lint() {
eslint -f unix "$@" .
}
parse_opts() {
tmp=`getopt -l output: o: "$@"`
[ $? -ne 0 ] && exit 1
eval set -- $tmp
while true
do
case $1 in
--output|-o)
OUTPUT=`realpath $2`; shift 2; continue ;;
--)
shift; break ;;
esac
done
}
# delete lines that don't start with '/',
# replace the first space with tab, sort
process_for_join() {
sed -E "/\//!d; s|(\S+)\s|\1$SEP|" | sort -k 1b,1
}
# re-replace tab with space
process_post_join() {
sed -E "s|$SEP| |"
}
create_report() {
tmp1=`mktemp --tmpdir lint-XXXX`
run_lint | process_for_join > $tmp1
tmp2=`mktemp --tmpdir lint-XXXX`
run_lint -c lint/eslintrc-legacy.json | process_for_join > $tmp2
join -t"$SEP" -o '0,1.2' $tmp1 $tmp2 | process_post_join
rm $tmp1 $tmp2
}
parse_opts "$@"
cd $SRCDIR/..
create_report | tee $OUTPUT | grep -q .
rv=$(( $? == 0 ))
cd $CWD
[ $rv -eq 0 -a -f $OUTPUT ] && rm $OUTPUT
exit $rv

View File

@@ -1,5 +1,5 @@
project('gnome-shell-extensions',
version: '3.31.90',
version: '3.33.91',
meson_version: '>= 0.44.0',
license: 'GPL2+'
)
@@ -33,6 +33,7 @@ uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
classic_extensions = [
'apps-menu',
'horizontal-workspaces',
'places-menu',
'launch-new-instance',
'window-list'

View File

@@ -38,6 +38,7 @@ kn
ko
lt
lv
mjw
ml
mr
ms

View File

@@ -15,6 +15,7 @@ extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml
extensions/window-list/extension.js
extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml
extensions/window-list/prefs.js
extensions/window-list/workspaceIndicator.js
extensions/windowsNavigator/extension.js
extensions/workspace-indicator/extension.js
extensions/workspace-indicator/prefs.js

216
po/ca.po
View File

@@ -7,9 +7,9 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-08-19 16:41+0000\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2017-07-08 13:29+0100\n"
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -27,76 +27,11 @@ msgstr "GNOME clàssic"
msgid "This session logs you into GNOME Classic"
msgstr "Aquesta sessió us permet utilitzar el GNOME clàssic"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Adjunta el diàleg modal a la finestra pare"
#: 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 ""
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
"mutter»."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Disposició dels botons en la barra de títol"
#: 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 ""
"Si s'executa el GNOME Shell, aquesta clau sobreescriu la clau «org.gnome."
"desktop.wm.preferences»."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Habilita la tessel·lització a les vores en deixar anar les finestres a les "
"vores de la pantalla"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Els espais de treball només es mostren en el monitor principal"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Retarda el canvi de focus, en mode ratolí, fins que el punter estigui quiet"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Només miniatures"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Només la icona de l'aplicació"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniatura i icona de l'aplicació"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Mostra les finestres com a"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Mostra només les icones de l'espai de treball actual"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Vista general d'activitats"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Preferides"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Aplicacions"
@@ -117,69 +52,38 @@ msgstr ""
msgid "Application"
msgstr "Aplicació"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Espai de treball"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Afegeix una regla"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Crea una regla de coincidència nova"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Afegeix"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Ha fallat l'expulsió de la unitat «%s»:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Dispositius extraïbles"
#: extensions/drive-menu/extension.js:150
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Obre els fitxers"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hola, món!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Text de rebuda alternatiu."
#: 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 ""
"Si no és buit, conté el text que es mostrarà quan es faci clic en el quadre."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Missatge"
#. 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 ""
"L'«Example» està pensat com una extensió del GNOME Shell que demostri la "
"manera correcta de crear extensions. Com a extensió pròpiament dita no fa "
"gairebé res.\n"
"Tot i així permet personalitzar el missatge de benvinguda."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Utilitza més pantalla per les finestres"
@@ -211,31 +115,31 @@ msgstr ""
"posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui "
"efecte."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Llocs"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "No s'ha pogut muntar el volum «%s»"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "No s'ha pogut iniciar «%s»"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "No s'ha pogut muntar el volum «%s»"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Ordinador"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Inici"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Navega per la xarxa"
@@ -255,52 +159,47 @@ msgstr "Nom del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Tanca"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Desminimitza"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Minimitza"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Desmaximitza"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Maximitza"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Minimitza-ho tot"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Desminimitza-ho tot"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Maximitza-ho tot"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Desmaximitza-ho tot"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Tanca-ho tot"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indicador de l'espai de treball"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Llista de finestres"
@@ -318,10 +217,19 @@ msgstr ""
"«auto» (automàticament) i «always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Mostra les finestres de tots els espais de treball"
#: 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 "Si es mostren les finestres de tots els espais de treballs o només de l'actual. "
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Mostra la llista de finestres a tots els monitors"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -329,19 +237,19 @@ msgstr ""
"Si es mostra la llista de finestres en tots els monitors connectats o només "
"al primari."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Agrupació de finestres"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Mai agrupis les finestres"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Agrupa les finestres quan l'espai estigui limitat"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Agrupa les finestres sempre"
@@ -349,27 +257,21 @@ msgstr "Agrupa les finestres sempre"
msgid "Show on all monitors"
msgstr "Mostra a tots els monitors"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Indicador de l'espai de treball"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Noms dels espais de treball"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nom"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Espai de treball %d"
#~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME Shell clàssic"
#~ msgid "Window management and application launching"
#~ msgstr "Gestió de finestres i iniciació d'aplicacions"
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid "Memory"
#~ msgstr "Memòria"

204
po/cs.po
View File

@@ -2,15 +2,15 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Petr Kovar <pknbe@volny.cz>, 2013.
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 2015, 2017.
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 2015, 2017, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-07-05 15:07+0000\n"
"PO-Revision-Date: 2017-07-10 16:48+0200\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-16 10:16+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
@@ -28,71 +28,11 @@ msgstr "GNOME klasik"
msgid "This session logs you into GNOME Classic"
msgstr "Toto sezení vás přihlásí do GNOME klasik"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Modální dialogová okna připojovat k rodičovskému oknu"
#: 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 "Když běží GNOME Shell, tento klíč přepíše klíč v org.gnome.mutter"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Uspořádání tlačítek v záhlaví"
#: 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 ""
"Když běží GNOME Shell, tento klíč přepíše klíč v org.gnome.desktop.wm."
"preferences"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Okna upuštěná u okraje obrazovky nechat řadit jako dlaždice"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Pracovní plochy jen na hlavním monitoru"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Neměnit zaměření v režimu s myší, dokud se nezastaví ukazatel"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Pouze náhled"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Pouze ikona aplikace"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Náhled a ikona aplikace"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Představovat okna jako"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Zobrazovat pouze okna z aktuální pracovní plochy"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Přehled činností"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Oblíbené"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Aplikace"
@@ -112,67 +52,38 @@ msgstr ""
msgid "Application"
msgstr "Aplikace"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Pracovní plocha"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Přidat pravidlo"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Vytvoření nového srovnávacího pravidla"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Přidat"
#: extensions/drive-menu/extension.js:106
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Vysunutí disku „%s“ selhalo:"
#: extensions/drive-menu/extension.js:124
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Výměnná zařízení"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Otevřít soubory"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Ahoj světe!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Alternativní uvítací text"
#: 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 ""
"Pokud není prázdné, obsahuje text, který se objeví po kliknutí na panel."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Zpráva"
#. 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 ""
"Rozšíření Example vám má jen ukázat, jak sestavit dobře fungující rozšíření "
"pro Shell, a tak je jeho praktické využití pramalé.\n"
"Přesto si můžete alespoň upravit uvítací zprávu."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Použít větší část obrazovky pro okna"
@@ -201,31 +112,31 @@ msgstr ""
"přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
"nastavení vyžaduje restart shellu, aby se projevila."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Místa"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Selhalo připojení svazku pro „%s“"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Selhalo spuštění „%s“"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Selhalo připojení svazku pro „%s“"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Počítač"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Domů"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Procházet síť"
@@ -245,52 +156,47 @@ msgstr "Název motivu"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Zavřít"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Zrušit minimalizaci"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Minimalizovat"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Zrušit maximalizaci"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Maximalizovat"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Minimalizovat všechna"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Zrušit minimalizaci všech"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Maximalizovat všechna"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Zrušit maximalizaci všech"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Zavřít všechna"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Ukazatel pracovní plochy"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Seznam oken"
@@ -307,10 +213,19 @@ msgstr ""
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Zobrazovat okna ze všech pracovních ploch"
#: 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 "Zda zobrazovat okna ze všech pracovních ploch nebo jen z aktuální."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Zobrazovat seznam oken na všech monitorech"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -318,19 +233,19 @@ msgstr ""
"Zda zobrazovat seznam oken na všech připojených monitorech nebo jen na "
"hlavním."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Seskupování oken"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Nikdy neseskupovat okna"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Seskupovat okna při nedostatku místa"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Vždy seskupovat okna"
@@ -338,15 +253,20 @@ msgstr "Vždy seskupovat okna"
msgid "Show on all monitors"
msgstr "Zobrazovat na všech monitorech"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Ukazatel pracovní plochy"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Názvy pracovních ploch"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Název"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Pracovní plocha %d"

342
po/eo.po
View File

@@ -3,107 +3,49 @@
# This file is distributed under the same license as the gnome-shell-extensions package.
# Ryan LORTIE <desrt@desrt.ca>, 2013.
# Daniel PUENTES <blatberk@openmailbox.org>, 2015.
# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011, 2015.
#
# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011-2019.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2015-01-31 08:37+0000\n"
"PO-Revision-Date: 2015-02-01 16:13+0100\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-03-02 10:57+0000\n"
"PO-Revision-Date: 2019-03-06 22:14+0200\n"
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
"Language-Team: Esperanto <gnome-l10n-eo@lists.launchpad.net>\n"
"Language-Team: Esperanto <gnome-eo-list@gnome.org>\n"
"Language: eo\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Project-Style: gnome\n"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME-klasika"
#: ../data/gnome-classic.desktop.in.h:2
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Ĉi seanco ensalutas vin GNOME-klasiken"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr "Kunligi modalan dialogon al la patra fenestro"
#: ../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 ""
"Ĉi ŝlosilo atutas la ŝlosilon en org.gnome.mutter kiam rulanta GNOME-ŝelon."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Arrangement of buttons on the titlebar"
msgstr "Aranĝo de butonoj en la titolbreto"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
#| msgid ""
#| "This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Ĉi tiu ŝlosilo anstataŭas la ŝlosilon en org.gnome.desktop.wm.preferences "
"kiam GNOME-ŝelo rulas."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Aktivigi kahelan aranĝon kiam demetante fenestrojn sur ekranaj borderoj"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:6
msgid "Workspaces only on primary monitor"
msgstr "Laborspacoj nur sur la ĉefa ekrano"
#: ../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 "En musa reĝimo, prokrasti ŝanĝi fokuson ĝis la musmontrilo haltas"
#: ../extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Miniaturo nur"
#: ../extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Aplikaĵa piktogramo nur"
#: ../extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniaturo kaj aplikaĵo piktogramo"
#: ../extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Prezenti fenestron kiel"
#: ../extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Montri nur fenestrojn en la aktuala laborspaco"
#: ../extensions/apps-menu/extension.js:39
#: extensions/apps-menu/extension.js:29
msgid "Activities Overview"
msgstr "Aktivecoj-Superrigardon"
#: ../extensions/apps-menu/extension.js:114
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Plej ŝatataj"
#: ../extensions/apps-menu/extension.js:283
#: extensions/apps-menu/extension.js:407
msgid "Applications"
msgstr "Aplikaĵoj"
#: ../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"
msgstr "Aplikaĵa kaj laborspaca listo"
#: ../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 ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
@@ -111,76 +53,49 @@ msgstr ""
"Listo de ĉenoj, ĉiu enhavas aplikaĵan identigilon ('desktop' dosiernomo), "
"sevkita per dupunkto kaj la laborspaca numero"
#: ../extensions/auto-move-windows/prefs.js:60
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Aplikaĵo"
#: ../extensions/auto-move-windows/prefs.js:69
#: ../extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Laborspaco"
#: ../extensions/auto-move-windows/prefs.js:85
#| msgid "Add rule"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Aldoni regulon"
#: ../extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Krei novan kongruantan regulon"
#: ../extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Aldoni"
#: ../extensions/drive-menu/extension.js:106
msgid "Ejecting drive '%s' failed:"
msgstr "Elĵeto de volumo '%s' malsukcesis:"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:100
#: extensions/places-menu/placeDisplay.js:217
#, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:"
msgstr "Elĵeto de volumo “%s” malsukcesis:"
#: ../extensions/drive-menu/extension.js:124
#: extensions/drive-menu/extension.js:116
msgid "Removable devices"
msgstr "Demeteblaj aparatoj"
#: ../extensions/drive-menu/extension.js:151
msgid "Open File"
msgstr "Malfermi dosieron"
#: extensions/drive-menu/extension.js:143
#| msgid "Open File"
msgid "Open Files"
msgstr "Malfermi dosierojn"
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Saluton, mondo!"
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Alterna saluta teksto."
#: ../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 ""
"Se ne malplena, enhavas la tekston kiu estos montrita kiam alklakante sur la "
"panelo."
#: ../extensions/example/prefs.js:30
#| msgid "Message:"
msgid "Message"
msgstr "Mesaĝo"
#: ../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 ""
"Ekzemplo klopodas montri kial krei bone-kondutantan etendojn por la ŝelo kaj "
"sekve ne havas multan funkcion.\n"
"Tamen, eblas agordi la salutan mesagon."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Uzi pli da ekrano por fenetroj"
#: ../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 ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
@@ -190,11 +105,11 @@ msgstr ""
"aspekta rilatumo, kaj kunfandi ilin plu por redukti la limigan keston. Ĉi "
"agordo uzitas nur kun la natura lokada strategio."
#: ../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"
msgstr "Meti fenestrajn apudskribojn supre"
#: ../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 ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
@@ -204,154 +119,241 @@ msgstr ""
"estas meti ĝin malsupre). Si vi ŝanĝas ĉi agordon tiam vi devas restartigi "
"la ŝelon."
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:79
#: extensions/places-menu/extension.js:83
msgid "Places"
msgstr "Lokoj"
#: ../extensions/places-menu/placeDisplay.js:57
msgid "Failed to launch \"%s\""
msgstr "Malsukceis lanĉi \"%s\""
#: extensions/places-menu/placeDisplay.js:59
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr ""
#: ../extensions/places-menu/placeDisplay.js:99
#: ../extensions/places-menu/placeDisplay.js:122
#: extensions/places-menu/placeDisplay.js:72
#, javascript-format
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”"
msgstr "Malsukcesis lanĉi “%s”"
#: extensions/places-menu/placeDisplay.js:133
#: extensions/places-menu/placeDisplay.js:156
msgid "Computer"
msgstr "Komputilo"
#: ../extensions/places-menu/placeDisplay.js:200
#: extensions/places-menu/placeDisplay.js:343
msgid "Home"
msgstr "Domo"
#: ../extensions/places-menu/placeDisplay.js:287
#: extensions/places-menu/placeDisplay.js:387
msgid "Browse Network"
msgstr "Foliumi reton"
#: ../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"
msgstr "Cikle montri ekrankopiajn grandojn"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "Ĉefprocesoro"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#, fuzzy
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Cikle montri ekrankopiajn grandojn"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "Memoro"
#: ../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"
msgstr "Etosnomo"
#: ../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"
msgstr "La nomo de la etoso, malfermigi de ~/.themes/name/gnome-shell"
#: ../extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:100
msgid "Close"
msgstr "Malfermi"
#: ../extensions/window-list/extension.js:120
#: extensions/window-list/extension.js:120
msgid "Unminimize"
msgstr "Neplejetigi"
#: ../extensions/window-list/extension.js:121
#: extensions/window-list/extension.js:120
msgid "Minimize"
msgstr "Plejetigi"
#: ../extensions/window-list/extension.js:127
#: extensions/window-list/extension.js:127
msgid "Unmaximize"
msgstr "Nemaksimumigi"
#: ../extensions/window-list/extension.js:128
#: extensions/window-list/extension.js:127
msgid "Maximize"
msgstr "Maksimumigi"
#: ../extensions/window-list/extension.js:390
#: extensions/window-list/extension.js:408
msgid "Minimize all"
msgstr "Plejetigi ĉiujn"
#: ../extensions/window-list/extension.js:398
#: extensions/window-list/extension.js:414
msgid "Unminimize all"
msgstr "Neplejetigi ĉiujn"
#: ../extensions/window-list/extension.js:406
#: extensions/window-list/extension.js:420
msgid "Maximize all"
msgstr "Maksimumigi ĉiujn"
#: ../extensions/window-list/extension.js:415
#: extensions/window-list/extension.js:429
msgid "Unmaximize all"
msgstr "Nemaksimumigi ĉiujn"
#: ../extensions/window-list/extension.js:424
#: extensions/window-list/extension.js:438
msgid "Close all"
msgstr "Fermi ĉiujn"
#: ../extensions/window-list/extension.js:706
#: ../extensions/workspace-indicator/extension.js:30
#: extensions/window-list/extension.js:655
#: extensions/workspace-indicator/extension.js:21
msgid "Workspace Indicator"
msgstr "Laborspaco Indikilo"
#: ../extensions/window-list/extension.js:870
#: extensions/window-list/extension.js:836
msgid "Window List"
msgstr "Fenestra listo"
#: ../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"
msgstr "Kiam grupigi fenestrojn"
#: ../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
#, fuzzy
#| msgid ""
#| "Decides when to group windows from the same application on the window "
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are \"never\", \"auto\" and \"always\"."
"Possible values are never”, “auto and always."
msgstr ""
"Decidas kiam grupi fenestrojn de la sama aplikaĵo en la fenestra listo. "
"Validaj valoroj estas \"never\" (neniam), \"auto\" (aŭtomate) kaj \"always"
"\" (ĉiam)."
"Validaj valoroj estas never (neniam), auto (aŭtomate) kaj always"
"(ĉiam)."
#: ../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
msgid "Show the window list on all monitors"
msgstr "Montri la fenestroliston en ĉiuj ekranoj"
#: ../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:21
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Ĉu montri la fenestroliston en ĉiuj konektitaj ekranoj aŭ nur en la ĉefa."
#: ../extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Fenestra grupigo"
#: ../extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Neniam grupigi fenestrojn"
#: ../extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Grupigi fenestrojn kiam spaco limitas"
#: ../extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Ĉiam grupigi fenestrojn"
#: ../extensions/window-list/prefs.js:75
#: extensions/window-list/prefs.js:75
msgid "Show on all monitors"
msgstr "Montri en ĉiuj ekranoj"
#: ../extensions/workspace-indicator/prefs.js:141
#| msgid "Workspace names:"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Laborspacaj nomoj"
#: ../extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nomo"
#: ../extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Laborspaco %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Kunligi modalan dialogon al la patra fenestro"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Ĉi ŝlosilo atutas la ŝlosilon en org.gnome.mutter kiam rulanta GNOME-"
#~ "ŝelon."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Aranĝo de butonoj en la titolbreto"
#~| msgid ""
#~| "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Ĉi tiu ŝlosilo anstataŭas la ŝlosilon en org.gnome.desktop.wm.preferences "
#~ "kiam GNOME-ŝelo rulas."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Aktivigi kahelan aranĝon kiam demetante fenestrojn sur ekranaj borderoj"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Laborspacoj nur sur la ĉefa ekrano"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "En musa reĝimo, prokrasti ŝanĝi fokuson ĝis la musmontrilo haltas"
#~ msgid "Thumbnail only"
#~ msgstr "Miniaturo nur"
#~ msgid "Application icon only"
#~ msgstr "Aplikaĵa piktogramo nur"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Miniaturo kaj aplikaĵo piktogramo"
#~ msgid "Present windows as"
#~ msgstr "Prezenti fenestron kiel"
#~ msgid "Show only windows in the current workspace"
#~ msgstr "Montri nur fenestrojn en la aktuala laborspaco"
#~ msgid "Hello, world!"
#~ msgstr "Saluton, mondo!"
#~ msgid "Alternative greeting text."
#~ msgstr "Alterna saluta teksto."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Se ne malplena, enhavas la tekston kiu estos montrita kiam alklakante sur "
#~ "la panelo."
#~| msgid "Message:"
#~ msgid "Message"
#~ msgstr "Mesaĝ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 it's possible to customize the greeting message."
#~ msgstr ""
#~ "Ekzemplo klopodas montri kial krei bone-kondutantan etendojn por la ŝelo "
#~ "kaj sekve ne havas multan funkcion.\n"
#~ "Tamen, eblas agordi la salutan mesagon."
#~ msgid "CPU"
#~ msgstr "Ĉefprocesoro"
#~ msgid "Memory"
#~ msgstr "Memoro"
#~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME-ŝelo-klasika"

295
po/es.po
View File

@@ -4,23 +4,23 @@
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
#
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2015, 2017.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-07-20 23:40+0000\n"
"PO-Revision-Date: 2017-07-24 15:40+0200\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-20 12:08+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: es <gnome-es-list@gnome.org>\n"
"Language: es\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
"Language: es_ES\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.6\n"
"X-Generator: Gtranslator 3.32.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -30,75 +30,11 @@ msgstr "GNOME clásico"
msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión inicia GNOME clásico"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Acoplar un diálogo modal a la ventana padre"
#: 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 ""
"Esta clave sobrescribe la clave en org.gnome.mutter al ejecutar GNOME Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Ordenación de los botones en la barra de título"
#: 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 ""
"Esta clave sobrescribe la clave en org.gnome.desktop.wm.preferences al "
"ejecutar GNOME Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
"ventana"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Áreas de trabajo solo en la pantalla principal"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Retrasar el cambio del foco del ratón hasta que el puntero deje de moverse"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Sólo miniaturas"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Sólo icono de la aplicación"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniatura e icono de la aplicación"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Presentar ventanas como"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Mostrar ventanas solamente en el área de trabajo actual"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Vista de actividades"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritos"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Aplicaciones"
@@ -118,69 +54,38 @@ msgstr ""
msgid "Application"
msgstr "Aplicación"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Área de trabajo"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Añadir regla"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Crear regla de coincidencia nueva"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Añadir"
#: extensions/drive-menu/extension.js:106
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Falló al expulsar el dispositivo «%s»:"
#: extensions/drive-menu/extension.js:124
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Dispositivos extraíbles"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Abrir archivos"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "¡Hola, mundo!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Texto de bienvenida alternativo."
#: 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 ""
"Si no está vacío, contiene el texto que se desplegará al pulsar sobre el "
"panel."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Mensaje"
#. 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» tiene por objeto mostrar cómo construir extensiones de buen "
"comportamiento para la Shell y por eso tiene poca funcionalidad por sí "
"solo.\n"
"Sin embargo, es posible personalizar el mensaje de bienvenida."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Usar más pantalla para las ventanas"
@@ -210,31 +115,31 @@ msgstr ""
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
"para que tenga efecto."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Lugares"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Falló al montar el volumen para «%s»"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Falló al lanzar «%s»"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Falló al montar el volumen para «%s»"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Equipo"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Carpeta personal"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Examinar la red"
@@ -243,7 +148,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Tamaños de capturas de pantalla cíclicos"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Tamaños de capturas de pantalla cíclicos"
@@ -255,52 +159,47 @@ msgstr "Nombre del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Cerrar"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Desminimizar"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Minimizar"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Desmaximizar"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Minimizar todo"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Desminimizar todo"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Maximizar todo"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Desmaximizar todo"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Cerrar todo"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indicador de área de trabajo"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Lista de ventanas"
@@ -317,10 +216,25 @@ msgstr ""
"ventanas. Los valores posibles son «never», «auto» y «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces"
msgstr "Mostrar ventanas de todas las áreas de trabajo"
#: 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 ""
"Indica si se deben mostrar ventanas de todas las áreas de trabajo o sólo de "
"la actual."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Mostrar la lista de ventanas en todas las pantallas"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -328,19 +242,19 @@ msgstr ""
"Indica si se debe mostrar la lista de ventanas en todas las pantallas "
"conectadas o sólo en la primaria."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Agrupación de ventanas"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Nunca agrupar las ventanas"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Agrupar las ventanas cuando el espacio esté limitado"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Siempre agrupar las ventanas"
@@ -348,19 +262,96 @@ msgstr "Siempre agrupar las ventanas"
msgid "Show on all monitors"
msgstr "Mostrar en todas las pantallas"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Indicador de área de trabajo"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Nombres de los áreas de trabajo"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nombre"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Área de trabajo %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Acoplar un diálogo modal a la ventana padre"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Esta clave sobrescribe la clave en org.gnome.mutter al ejecutar GNOME "
#~ "Shell."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Ordenación de los botones en la barra de título"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Esta clave sobrescribe la clave en org.gnome.desktop.wm.preferences al "
#~ "ejecutar GNOME Shell."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
#~ "ventana"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Áreas de trabajo solo en la pantalla principal"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Retrasar el cambio del foco del ratón hasta que el puntero deje de moverse"
#~ msgid "Thumbnail only"
#~ msgstr "Sólo miniaturas"
#~ msgid "Application icon only"
#~ msgstr "Sólo icono de la aplicación"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Miniatura e icono de la aplicación"
#~ msgid "Present windows as"
#~ msgstr "Presentar ventanas como"
#~ msgid "Activities Overview"
#~ msgstr "Vista de actividades"
#~ msgid "Hello, world!"
#~ msgstr "¡Hola, mundo!"
#~ msgid "Alternative greeting text."
#~ msgstr "Texto de bienvenida alternativo."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Si no está vacío, contiene el texto que se desplegará al pulsar sobre el "
#~ "panel."
#~ msgid "Message"
#~ msgstr "Mensaje"
#~ 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» tiene por objeto mostrar cómo construir extensiones de buen "
#~ "comportamiento para la Shell y por eso tiene poca funcionalidad por sí "
#~ "solo.\n"
#~ "Sin embargo, es posible personalizar el mensaje de bienvenida."
#~ msgid "CPU"
#~ msgstr "CPU"

261
po/et.po
View File

@@ -6,85 +6,44 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2014-08-06 07:34+0000\n"
"PO-Revision-Date: 2014-08-06 21:43+0300\n"
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-03-02 10:57+0000\n"
"PO-Revision-Date: 2019-03-10 19:24+0200\n"
"Last-Translator: Mart Raudsepp <leio@gentoo.org>\n"
"Language-Team: Estonian <gnome-et-list@gnome.org>\n"
"Language: et\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.4\n"
"X-Generator: Poedit 2.2\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Klassikaline GNOME"
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "See on klassikalise GNOME seanss"
msgid "GNOME Shell Classic"
msgstr "GNOME klassikaline kest"
msgid "Window management and application launching"
msgstr "Akende haldus ja rakenduste käivitamine"
msgid "Attach modal dialog to the parent window"
msgstr "Modaalsed dialoogid on vanemakna küljes"
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"See võti on tähtsam võtmest org.gnome.mutter GNOME Shelli käivitamisel."
msgid "Arrangement of buttons on the titlebar"
msgstr "Nuppude järjestus tiitliribal"
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"See võti on tähtsam võtmest org.gnome.desktop.wm.preferences GNOME Shelli "
"käivitamisel."
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Akna automaatpaigutus on lubatud, kui aken lohistatakse ekraani serva"
msgid "Workspaces only on primary monitor"
msgstr "Tööalad on ainult peamisel ekraanil"
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Hiire all asuv aken saab fookuse alles hiire peatumisel"
msgid "Thumbnail only"
msgstr "Ainult pisipilt"
msgid "Application icon only"
msgstr "Ainult rakenduse ikoon"
msgid "Thumbnail and application icon"
msgstr "Pisipilt ja rakenduse ikoon"
msgid "Present windows as"
msgstr "Aknaid esitletakse kui"
msgid "Show only windows in the current workspace"
msgstr "Näidatakse ainult käesoleva tööala aknaid"
#: extensions/apps-menu/extension.js:29
msgid "Activities Overview"
msgstr "Tegevuste ülevaade"
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Lemmikud"
#: extensions/apps-menu/extension.js:407
msgid "Applications"
msgstr "Rakendused"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Rakenduste ja tööalade loend"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
@@ -92,57 +51,47 @@ msgstr ""
"Rakenduste loend, sõnedest, mis sisaldavad rakenduse id-d (desktop faili "
"nimi), koolonit ja tööala numbrit."
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Rakendus"
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Tööala"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Lisa reegel"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Uue reegli loomine"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Lisa"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:100
#: extensions/places-menu/placeDisplay.js:217
#, javascript-format
msgid "Ejecting drive '%s' failed:"
msgstr "Seadme '%s' väljastamine nurjus:"
msgid "Ejecting drive %s failed:"
msgstr "Seadme %s väljastamine nurjus:"
#: extensions/drive-menu/extension.js:116
msgid "Removable devices"
msgstr "Eemaldatavad seadmed"
msgid "Open File"
msgstr "Faili avamine"
msgid "Hello, world!"
msgstr "Tere, maailm!"
msgid "Alternative greeting text."
msgstr "Alternatiivne tervitustekst."
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr "Kui see pole tühi, näidatakse seda teksti paneelile klõpsates."
msgid "Message"
msgstr "Sõnum"
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 ""
"Näide hästi käituva Shelli laienduse koostamise kohta, see ise väga kasulik "
"ei ole.\n"
"See võimaldab muuta kõigest tervitusteksti."
#: extensions/drive-menu/extension.js:143
msgid "Open Files"
msgstr "Failide avamine"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Rohkem pinda akende jaoks"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
@@ -152,9 +101,11 @@ msgstr ""
"ja paigutatakse aknad üksteisele lähemale. See säte kehtib ainult koos "
"akende loomuliku paigutusega."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr "Akende pealkirjad on üleval"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
@@ -164,99 +115,229 @@ msgstr ""
"Shelli vaikimisi viisi, alla asetamist. Selle sätte muutmine mõjub alles "
"pärast Shelli taaskäivitust."
#: extensions/places-menu/extension.js:79
#: extensions/places-menu/extension.js:83
msgid "Places"
msgstr "Asukohad"
#: extensions/places-menu/placeDisplay.js:59
#, javascript-format
msgid "Failed to launch \"%s\""
msgstr "\"%s\" käivitamine nurjus"
msgid "Failed to mount volume for “%s”"
msgstr ""
#: extensions/places-menu/placeDisplay.js:72
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "„%s“ käivitamine nurjus"
#: extensions/places-menu/placeDisplay.js:133
#: extensions/places-menu/placeDisplay.js:156
msgid "Computer"
msgstr "Arvuti"
#: extensions/places-menu/placeDisplay.js:343
msgid "Home"
msgstr "Kodu"
#: extensions/places-menu/placeDisplay.js:387
msgid "Browse Network"
msgstr "Võrgu sirvimine"
msgid "CPU"
msgstr "Protsessor"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr ""
msgid "Memory"
msgstr "Mälu"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr ""
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "Kujunduse nimi"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Kujunduse nimi, mis laaditakse asukohast ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:100
msgid "Close"
msgstr "Sulge"
#: extensions/window-list/extension.js:120
msgid "Unminimize"
msgstr "Taasta"
#: extensions/window-list/extension.js:120
msgid "Minimize"
msgstr "Minimeeri"
#: extensions/window-list/extension.js:127
msgid "Unmaximize"
msgstr "Taasta suurus"
#: extensions/window-list/extension.js:127
msgid "Maximize"
msgstr "Maksimeeri"
#: extensions/window-list/extension.js:408
msgid "Minimize all"
msgstr "Minimeeri kõik"
#: extensions/window-list/extension.js:414
msgid "Unminimize all"
msgstr "Taasta kõik"
#: extensions/window-list/extension.js:420
msgid "Maximize all"
msgstr "Maksimeeri kõik"
#: extensions/window-list/extension.js:429
msgid "Unmaximize all"
msgstr "Taasta kõigi suurus"
#: extensions/window-list/extension.js:438
msgid "Close all"
msgstr "Sulge kõik"
#: extensions/window-list/extension.js:655
#: extensions/workspace-indicator/extension.js:21
msgid "Workspace Indicator"
msgstr "Tööala näitaja"
#: extensions/window-list/extension.js:836
msgid "Window List"
msgstr "Akende loend"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "Millal aknaid grupeeritakse"
#: 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\"."
"Possible values are never”, “auto and always."
msgstr ""
"Määrab, millal akende loendis sama rakenduse aknaid grupeeritakse. "
"Võimalikud väärtused on \"never\" (mitte kunagi), \"auto\" (automaatselt) ja "
"\"always\" (alati)."
"Võimalikud väärtused on never (mitte kunagi), auto (automaatselt) ja "
"always (alati)."
#: 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:25
msgid "Window Grouping"
msgstr "Akende grupeerimine"
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Aknaid ei grupeerita kunagi"
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Aknaid grupeeritakse, kui ruumi on vähe"
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Aknaid grupeeritakse alati"
#: extensions/window-list/prefs.js:75
msgid "Show on all monitors"
msgstr ""
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Tööalade nimed"
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nimi"
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Tööala %d"
#~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME klassikaline kest"
#~ msgid "Window management and application launching"
#~ msgstr "Akende haldus ja rakenduste käivitamine"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Modaalsed dialoogid on vanemakna küljes"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "See võti on tähtsam võtmest org.gnome.mutter GNOME Shelli käivitamisel."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Nuppude järjestus tiitliribal"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "See võti on tähtsam võtmest org.gnome.desktop.wm.preferences GNOME Shelli "
#~ "käivitamisel."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Akna automaatpaigutus on lubatud, kui aken lohistatakse ekraani serva"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Tööalad on ainult peamisel ekraanil"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "Hiire all asuv aken saab fookuse alles hiire peatumisel"
#~ msgid "Thumbnail only"
#~ msgstr "Ainult pisipilt"
#~ msgid "Application icon only"
#~ msgstr "Ainult rakenduse ikoon"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Pisipilt ja rakenduse ikoon"
#~ msgid "Present windows as"
#~ msgstr "Aknaid esitletakse kui"
#~ msgid "Show only windows in the current workspace"
#~ msgstr "Näidatakse ainult käesoleva tööala aknaid"
#~ msgid "Hello, world!"
#~ msgstr "Tere, maailm!"
#~ msgid "Alternative greeting text."
#~ msgstr "Alternatiivne tervitustekst."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr "Kui see pole tühi, näidatakse seda teksti paneelile klõpsates."
#~ msgid "Message"
#~ msgstr "Sõnum"
#~ 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 ""
#~ "Näide hästi käituva Shelli laienduse koostamise kohta, see ise väga "
#~ "kasulik ei ole.\n"
#~ "See võimaldab muuta kõigest tervitusteksti."
#~ msgid "CPU"
#~ msgstr "Protsessor"
#~ msgid "Memory"
#~ msgstr "Mälu"

318
po/eu.po
View File

@@ -5,22 +5,22 @@
# assar <asiersar@yahoo.com>, 2011.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2013, 2015, 2017.
# Edurne Labaka <elabaka@uzei.com>, 2015.
# Asier Sarasua Garmendia <asier.sarasua@gmail.com>, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-08-11 01:33+0000\n"
"PO-Revision-Date: 2017-08-27 15:49+0200\n"
"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@zundan.com>\n"
msgstr "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2019-08-11 13:48+0000\n"
"PO-Revision-Date: 2019-08-12 00:42+0200\n"
"Last-Translator: Asier Sarasua Garmendia <asier.sarasua@gmail.com>\n"
"Language-Team: Basque <librezale@librezale.eus>\n"
"Language: eu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Lokalize 1.5\n"
"X-Project-Style: gnome\n"
"X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -30,76 +30,11 @@ msgstr "GNOME Klasikoa"
msgid "This session logs you into GNOME Classic"
msgstr "Saio honek GNOME Klasikoa hasten du"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Erantsi elkarrizketa-koadro modala leiho gurasoari"
#: 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 ""
"Gako honek org.gnome.mutter-eko gakoa gainidazten du GNOME Shell exekutatzen "
"ari denean."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Botoien antolamendua titulu-barran"
#: 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 ""
"Gako honekorg.gnome.desktop.wm.preferences-eko gakoa gainidazten du GNOME "
"Shell exekutatzen ari denean."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Gaitu ertza lauza gisa ezartzea leihoak pantailaren ertzetara jaregitean"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Laneko areak pantaila nagusian soilik"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Fokuaren aldaketaren atzerapena saguaren moduan erakusleak mugitzeari utzi "
"arte"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Koadro txikiak soilik"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Aplikazioen ikonoa soilik"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Koadro txikien eta aplikazioen ikonoa"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Aurkeztu leihoa honela"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Erakutsi leihoak bakarrik uneko laneko arean"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Jardueren ikuspegi orokorra"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Gogokoak"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Aplikazioak"
@@ -111,76 +46,44 @@ msgstr "Aplikazioen eta laneko areen zerrenda"
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Kateen zerrenda bat, bakoitzak aplikazio-ID bat duena (mahaigainaren "
"fitxategi-izena) eta jarraian bi puntu eta laneko arearen zenbakia dituena"
msgstr "Kateen zerrenda bat, bakoitzak aplikazio-ID bat duena (mahaigainaren fitxategi-izena) eta jarraian bi puntu eta laneko arearen zenbakia dituena"
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Aplikazioa"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Laneko area"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Gehitu araua"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Sortu bat datorren arau berria"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Gehitu"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Huts egin du “%s“ unitatea egoztean: "
msgstr "Huts egin du “%s“ unitatea egoztean:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Gailu aldagarriak"
#: extensions/drive-menu/extension.js:150
#| msgid "Open File"
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Ireki fitxategiak"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Kaixo mundua!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Ongi etorriaren bestelako testua."
#: 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 "Ez badago hutsik, panelean klik egitean erakutsiko den testua dauka."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Mezua"
#. 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 ""
"Shell-erako portaera egokia duten hedapenak nola eraikitzen den erakusteko "
"helburua du adibideak, ondorioz bere kasa funtzionalitate baxukoa da.\n"
"Hala ere, ongi etorriko mezua pertsonalizatzeko aukera dago."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Erabili pantaila gehiago leihoentzako"
@@ -190,11 +93,7 @@ msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Saiatu pantaila gehiago erabiltzen leihoen koadro txikiak kokatzeko "
"pantailaren aspektu-erlaziora egokituz, eta haiek taldekatu muga-koadroa "
"txikiagotzeko. Ezarpen hau kokapen naturalaren estrategiarekin soilik "
"aplikatzen da."
msgstr "Saiatu pantaila gehiago erabiltzen leihoen koadro txikiak kokatzeko pantailaren aspektu-erlaziora egokituz, eta haiek taldekatu muga-koadroa txikiagotzeko. Ezarpen hau kokapen naturalaren estrategiarekin soilik aplikatzen da."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
@@ -205,37 +104,33 @@ msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"TRUE (egia) bada, leihoen epigrafeak dagokien koadro txikien gainean jarriko "
"ditu, Shell-aren lehenespena (behean jartzearena) gainidatziz. Ezarpen hau "
"aldatzeko eta aplikatzeko Shell berrabiarazi behar da."
msgstr "TRUE (egia) bada, leihoen epigrafeak dagokien koadro txikien gainean jarriko ditu, Shell-aren lehenespena (behean jartzearena) gainidatziz. Ezarpen hau aldatzeko eta aplikatzeko Shell berrabiarazi behar da."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Lekuak"
#: extensions/places-menu/placeDisplay.js:65
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Huts egin du '%s' abiaraztean"
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
#| msgid "Failed to launch “%s”"
msgid "Failed to mount volume for “%s”"
msgstr "Huts egin du “%s“(r)en bolumena muntatzean"
#: extensions/places-menu/placeDisplay.js:78
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Huts egin du “%s“ abiaraztean"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Ordenagailua"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Karpeta nagusia"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Arakatu sarea"
@@ -244,7 +139,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Pantaila-argazkien tamainak begiztan"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Pantaila-argazkien tamainak atzerantz begiztan"
@@ -256,54 +150,49 @@ msgstr "Gaiaren izena"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Itxi"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Leheneratu"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizatu"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Desmaximizatu"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximizatu"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:430
msgid "Minimize all"
msgstr "Minimizatu denak"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:436
msgid "Unminimize all"
msgstr "Leheneratu denak"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:442
msgid "Maximize all"
msgstr "Maximizatu denak"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:450
msgid "Unmaximize all"
msgstr "Desmaximizatu denak"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:458
msgid "Close all"
msgstr "Itxi denak"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Lan arearen adierazlea"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:740
msgid "Window List"
msgstr "Leihoen zerrenda"
msgstr "Leiho-zerrenda"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
@@ -313,36 +202,40 @@ msgstr "Noiz elkartu leihoak"
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Aplikazio bereko leihoak leihoen zerrendan noiz elkartuko diren erabakitzen "
"du. Balio erabilgarriak: “never“ (inoiz ere ez), “auto“ (automatikoa) eta "
"“always“ (beti)."
msgstr "Aplikazio bereko leihoak leihoen zerrendan noiz elkartuko diren erabakitzen du. Balio erabilgarriak: “never“ (inoiz ere ez), “auto“ (automatikoa) eta “always“ (beti)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Erakutsi laneko area guztietako leihoak"
#: 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 "Laneko area guztietako leihoak edo uneko areakoak soilik erakutsiko diren."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Erakutsi leihoen zerrenda pantaila guztietan"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Leihoen zerrenda konektatutako pantaila guztietan edo soilik pantaila "
"nagusian erakutsiko den."
msgstr "Leihoen zerrenda konektatutako pantaila guztietan edo soilik pantaila nagusian erakutsiko den."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Leihoak elkartzea"
msgstr "Leiho-elkartzea"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Leihoak inoiz ez elkartu"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Elkartu leihoak lekua mugatuta dagoenean"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Elkartu beti leihoak"
@@ -350,19 +243,95 @@ msgstr "Elkartu beti leihoak"
msgid "Show on all monitors"
msgstr "Erakutsi pantaila guztietan"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Lan arearen adierazlea"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Laneko areen izenak"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Izena"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "%d. laneko area"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Erantsi elkarrizketa-koadro modala leiho gurasoari"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Gako honek org.gnome.mutter-eko gakoa gainidazten du GNOME Shell "
#~ "exekutatzen ari denean."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Botoien antolamendua titulu-barran"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Gako honekorg.gnome.desktop.wm.preferences-eko gakoa gainidazten du GNOME "
#~ "Shell exekutatzen ari denean."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Gaitu ertza lauza gisa ezartzea leihoak pantailaren ertzetara jaregitean"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Laneko areak pantaila nagusian soilik"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Fokuaren aldaketaren atzerapena saguaren moduan erakusleak mugitzeari "
#~ "utzi arte"
#~ msgid "Thumbnail only"
#~ msgstr "Koadro txikiak soilik"
#~ msgid "Application icon only"
#~ msgstr "Aplikazioen ikonoa soilik"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Koadro txikien eta aplikazioen ikonoa"
#~ msgid "Present windows as"
#~ msgstr "Aurkeztu leihoa honela"
#~ msgid "Activities Overview"
#~ msgstr "Jardueren ikuspegi orokorra"
#~ msgid "Hello, world!"
#~ msgstr "Kaixo mundua!"
#~ msgid "Alternative greeting text."
#~ msgstr "Ongi etorriaren bestelako testua."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Ez badago hutsik, panelean klik egitean erakutsiko den testua dauka."
#~ msgid "Message"
#~ msgstr "Mezua"
#~ 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 ""
#~ "Shell-erako portaera egokia duten hedapenak nola eraikitzen den "
#~ "erakusteko helburua du adibideak, ondorioz bere kasa funtzionalitate "
#~ "baxukoa da.\n"
#~ "Hala ere, ongi etorriko mezua pertsonalizatzeko aukera dago."
#~ msgid "CPU"
#~ msgstr "PUZ"
@@ -375,7 +344,6 @@ msgstr "%d. laneko area"
#~ msgid "Window management and application launching"
#~ msgstr "Leiho-kudeaketa eta aplikazioak abiaraztea"
#, fuzzy
#~ msgid "Online Accounts"
#~ msgstr "Nire kontua"

326
po/fa.po
View File

@@ -6,18 +6,18 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-09-20 08:40+0000\n"
"PO-Revision-Date: 2017-09-22 22:09+0330\n"
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-14 11:48+0430\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.0.3\n"
"X-Generator: Poedit 2.2.1\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -28,152 +28,61 @@ msgstr "گنوم کلاسیک"
msgid "This session logs you into GNOME Classic"
msgstr "این نشست شما را به گنوم کلاسیک وارد می‌کند"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "اتصال محاوره modal به پنجره والد"
#: 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.preferences را در هنگام اجرای گنوم‌شل "
"بازنویسی می‌کند."
#: 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
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "علاقه‌مندی‌ها"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "برنامه‌ها"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "فهرست برنامهها و فضای‌کاری"
msgstr "فهرست برنامه و فضای‌کاری"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی "
"یک ویرگول و شماره‌ی فضای کاری"
"فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک "
"ویرگول و شماره‌ی فضای کاری"
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "برنامه"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "فضای‌کاری"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "اضافه کردن قاعده"
#: extensions/auto-move-windows/prefs.js:106
msgid "Create new matching rule"
msgstr "اضافه کردن یک قاعده‌ی منطبق جدید"
msgstr "افزودن قاعده"
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "افزودن یک قاعده‌ی منطبق جدید"
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "اضافه"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "بیرون دادن دیسک‌گردان «%s» شکست خورد:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "دستگاه‌های جداشدنی"
#: extensions/drive-menu/extension.js:150
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "باز کردن پرونده‌ها"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "سلام دنیا!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "متن خوش‌آمدِ جایگزین."
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
"اگر خالی نباشد، حاوی متنی خواهد بود که که هنگام کلیک بر روی پنل نمایش داده "
"می‌شود است."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "پیام"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: extensions/example/prefs.js:43
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and as "
"such it has little functionality on its own.\n"
"Nevertheless its possible to customize the greeting message."
msgstr ""
"هدف مثال نمایش چگونگی ساخت افزونه‌های خوش‌رفتار برای پوسته است، پس خودش قابلیت‌های "
"کمی دارد.\n"
"با این وجود می‌توان پیام خوش‌آمد را تغییر داد."
msgstr "گشودن پرونده‌ها"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
@@ -195,38 +104,38 @@ msgstr "قراردادن عنوان پنجره در بالا"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
"If true, place window captions on top the respective thumbnail, overriding shell "
"default of placing it at the bottom. Changing this setting requires restarting "
"the shell to have any effect."
msgstr ""
"اگر بر روی درست باشد، عنوان پنجره را بالای تصویر آن قرار می‌دهد، که حالت پیش‌فرض "
"شل در پایین را تغییر می‌دهد. تغییر این گزینه، نیاز به راه‌اندازی مجدد شل دارد تا "
"تاثیر بگذارد."
#: extensions/places-menu/extension.js:78 extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80 extensions/places-menu/extension.js:84
msgid "Places"
msgstr "مکان‌ها"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "شکست در سوار کردن جلد برای «%s»"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "شکست در اجرای «%s»"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, 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"
msgstr "رایانه"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "خانه"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "مرور شبکه"
@@ -246,52 +155,47 @@ msgstr "نام تم"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "خروج"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "ناحداقل کردن"
msgstr "ناکمینه"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "حداکثر کردن"
msgstr "کمینه"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "ناحداکثر کردن"
msgstr "نابیشینه"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "حداکثر کردن"
msgstr "بیشنه"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "حداقل کردن همه"
msgstr "کمینهٔ همه"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "ناحداقل کردن همه"
msgstr "ناکمینهٔ همه"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "حداکثر کردن همه"
msgstr "بیشینهٔ همه"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "ناحداکثر کردن همه"
msgstr "نابیشینهٔ همه"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
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
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "فهرست پنجره"
@@ -308,30 +212,39 @@ msgstr ""
"ممکن عبارتند از «never»، «auto» و «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
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:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
"Whether to show the window list on all connected monitors or only on the primary "
"one."
msgstr ""
"اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در "
"نمایشگر اصلی."
"اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر "
"اصلی."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "گروه‌سازی پنجره‌ها"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "هیچ‌گاه پنجره‌ها گروه نشوند"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "پنجره‌ها زمانی که فضا محدود است گروه شوند"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "همیشه پنجره‌ها گروه شوند"
@@ -339,18 +252,91 @@ msgstr "همیشه پنجره‌ها گروه شوند"
msgid "Show on all monitors"
msgstr "نمایش در تمام نمایشگرها"
#: extensions/workspace-indicator/prefs.js:141
msgid "Workspace Names"
msgstr "نام فضاهای کاری"
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "نشانگر فضای‌کاری"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "نام‌های فضای کاری"
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "نام"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "فضایکاری %Id"
msgstr "فضای کاری %Id"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "اتصال محاوره modal به پنجره والد"
#~ 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.preferences را در هنگام اجرای گنوم‌شل "
#~ "بازنویسی می‌کند."
#~ 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 "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 ""
#~ "هدف مثال نمایش چگونگی ساخت افزونه‌های خوش‌رفتار برای پوسته است، پس خودش "
#~ "قابلیت‌های کمی دارد.\n"
#~ "با این وجود می‌توان پیام خوش‌آمد را تغییر داد."
#~ msgid "GNOME Shell Classic"
#~ msgstr "گنوم‌شل کلاسیک"
@@ -381,8 +367,8 @@ msgstr "فضای‌کاری %Id"
#~ msgstr "انتقالِ انتخاب فعلی به بالا قبل از بستن پنجره واشو"
#~ msgid ""
#~ "The Alternate Tab can be used in different modes, that affect the way "
#~ "windows are chosen and presented."
#~ "The Alternate Tab can be used in different modes, that affect the way windows "
#~ "are chosen and presented."
#~ msgstr ""
#~ "«جای‌گزین Tab» می‌تواند در حالت‌های مختلفی استفاده شود، که در نحوه باز شدن و "
#~ "انتخاب پنجره‌ها تاثیر می‌گذارد."

246
po/fi.po
View File

@@ -10,10 +10,10 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-08-11 01:33+0000\n"
"PO-Revision-Date: 2017-08-29 12:32+0300\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-17 16:00+0300\n"
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
"Language: fi\n"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Gtranslator 2.91.7\n"
"X-Generator: Poedit 2.0.6\n"
"X-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
@@ -33,71 +33,11 @@ msgstr "Perinteinen Gnome"
msgid "This session logs you into GNOME Classic"
msgstr "Tämä istunto kirjaa sinut perinteiseen Gnomeen"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Liitä modaali-ikkuna ylätason ikkunaan"
#: 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 ""
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Painikkeiden järjestys otsikkopalkissa"
#: 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 ""
#: 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 "Työtilat vain ensisijaisella näytöllä"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Aseta viive kohdistusmuutoksille hiiritilassa, kunnes hiiren osoitin "
"lopettaa liikkumisen"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Pelkkä pienoiskuva"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Pelkkä sovelluksen kuvake"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Pienoiskuva ja sovelluksen kuvake"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Ikkunoiden esittäminen"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Näytä vain nykyisessä työtilassa olevat ikkunat"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Yleisnäkymä"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Suosikit"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Sovellukset"
@@ -115,65 +55,38 @@ msgstr ""
msgid "Application"
msgstr "Sovellus"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Työtila"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Lisää sääntö"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Luo uusi vastaava sääntö"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Lisää"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Aseman “%s” irrottaminen epäonnistui:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Erilliset tallennusvälineet"
#: extensions/drive-menu/extension.js:150
#| msgid "Open File"
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Avaa tiedostonhallinta"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hei, maailma!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Vaihtoehtoinen tervehdysteksti."
#: 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 "Jos ei tyhjä, sisältää paneelia napsauttaessa näytettävän tekstin."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Viesti"
#. 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 ""
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Käytä enemmän tilaa ikkunoille"
@@ -199,32 +112,31 @@ msgstr ""
"Tämä syrjäyttää oletusasetuksen, eli otsikkotekstin asettamisen pienoiskuvan "
"alle. Tämän asetuksen muutos vaatii Gnomen uudelleenkäynnistyksen."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Sijainnit"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
#| msgid "Failed to launch “%s”"
msgid "Failed to mount volume for “%s”"
msgstr "Taltion “%s” liittäminen epäonnistui"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Kohteen “%s” käynnistys epäonnistui"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Taltion “%s” liittäminen epäonnistui"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Tietokone"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Koti"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Selaa verkkoa"
@@ -246,52 +158,47 @@ msgstr "Teeman nimi"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Teeman nimi, ladataan sijainnista ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Sulje"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Palauta pienennys"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Pienennä"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Palauta suurennus"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Suurenna"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Pienennä kaikki"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Suurenna kaikki"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Sulje kaikki"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Työtilan ilmaisin"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Ikkunaluettelo"
@@ -308,10 +215,21 @@ msgstr ""
"Mahdolliset arvot ovat “never”, “auto” ja “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Näytä ikkunat kaikista työtiloista"
#: 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 ""
"Näytetäänkö ikkunat kaikista työtiloista vai ainoastaan nykyisestä "
"työtilasta."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Näytä ikkunaluettelo kaikilla näytöillä"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -319,19 +237,19 @@ msgstr ""
"Näytetäänkö ikkunaluettelo kaikilla liitetyillä näytöillä vai ainoastaan "
"ensisijaisella näytöllä."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Ikkunoiden ryhmitys"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Älä ryhmitä ikkunoita koskaan"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Ryhmitä ikkunat tilan ollessa rajallinen"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Ryhmitä ikkunat aina"
@@ -339,19 +257,67 @@ msgstr "Ryhmitä ikkunat aina"
msgid "Show on all monitors"
msgstr "Näytä kaikilla näytöillä"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Työtilan ilmaisin"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Työtilojen nimet"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nimi"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Työtila %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Liitä modaali-ikkuna ylätason ikkunaan"
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Painikkeiden järjestys otsikkopalkissa"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Työtilat vain ensisijaisella näytöllä"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Aseta viive kohdistusmuutoksille hiiritilassa, kunnes hiiren osoitin "
#~ "lopettaa liikkumisen"
#~ msgid "Thumbnail only"
#~ msgstr "Pelkkä pienoiskuva"
#~ msgid "Application icon only"
#~ msgstr "Pelkkä sovelluksen kuvake"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Pienoiskuva ja sovelluksen kuvake"
#~ msgid "Present windows as"
#~ msgstr "Ikkunoiden esittäminen"
#~ msgid "Activities Overview"
#~ msgstr "Yleisnäkymä"
#~ msgid "Hello, world!"
#~ msgstr "Hei, maailma!"
#~ msgid "Alternative greeting text."
#~ msgstr "Vaihtoehtoinen tervehdysteksti."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr "Jos ei tyhjä, sisältää paneelia napsauttaessa näytettävän tekstin."
#~ msgid "Message"
#~ msgstr "Viesti"
#~ msgid "CPU"
#~ msgstr "Suoritin"

253
po/gd.po
View File

@@ -5,9 +5,9 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-"
"extensions/issues\n"
"POT-Creation-Date: 2017-12-18 18:40+0000\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2018-11-13 00:23+0000\n"
"PO-Revision-Date: 2018-02-26 12:52+0100\n"
"Last-Translator: GunChleoc <fios@foramnagaidhlig.net>\n"
"Language-Team: Fòram na Gàidhlig\n"
@@ -29,126 +29,81 @@ msgstr "GNOME clasaigeach"
msgid "This session logs you into GNOME Classic"
msgstr "Clàraidh an seisean seo a-steach gu GNOME clasaigeach thu"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Ceangail còmhradh mòdach ris an uinneag-pàraint"
#: 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 ""
"Tar-àithnidh an iuchair seo an iuchair ann an org.gnome.mutter nuair a thèid "
"Slige GNOME a ruith."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Seòrsachadh nam putanan air a bhàr-tiotail"
#: 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 ""
"Tar-àithnidh an iuchair seo an iuchair ann an org.gnome.desktop.wm."
"preferences nuair a thèid Slige GNOME a ruith."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Cuir leacadh nan oirean an comas nuair a thèid uinneagan a leigeil às aig "
"oir na sgrìn"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Rumannan-obrach air a phrìomh-sgrìn a-mhàin"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Cuir dàil air atharraichean an fòcais ann am modh luchaige gus an sguir an "
"tomhaire air gluasad"
#: extensions/alternate-tab/prefs.js:19
msgid "Thumbnail only"
msgstr "Dealbhag a-mhàin"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Dealbhagan a-mhàin"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Ìomhaigheag na h-aplacaid a-mhàin"
#: extensions/alternate-tab/prefs.js:22
#: extensions/alternate-tab/prefs.js:21
msgid "Thumbnail and application icon"
msgstr "Dealbhag is ìomhaigheag na h-aplacaid"
#: extensions/alternate-tab/prefs.js:38
#: extensions/alternate-tab/prefs.js:34
msgid "Present windows as"
msgstr "Seall uinneagan mar"
#: extensions/alternate-tab/prefs.js:69
#: extensions/alternate-tab/prefs.js:65
msgid "Show only windows in the current workspace"
msgstr "Na seall ach na h-uinneagan san rum-obrach làithreach"
msgstr "Na seall ach na h-uinneagan san rùm-obrach làithreach"
#: extensions/apps-menu/extension.js:41
#: extensions/apps-menu/extension.js:37
msgid "Activities Overview"
msgstr "Foir-shealladh nan gnìomhachdan"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:130
msgid "Favorites"
msgstr "Annsachdan"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:417
msgid "Applications"
msgstr "Aplacaidean"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Ìomhaigheag na h-aplacaid is liosta nan rumannan-obrach"
msgstr "Liosta nan aplacaidean is rumannan-obrach"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Liosta dhe shreangan le id aplacaid (ainm faidhle desktop) aig gach tè air a "
"leantainn le còilean is àireamh an ruim-obrach"
msgstr "Liosta dhe shreangan le id aplacaid (ainm faidhle desktop) aig gach tè ga leantainn le còilean is àireamh an ruim-obrach"
#: extensions/auto-move-windows/prefs.js:56
#: extensions/auto-move-windows/prefs.js:53
msgid "Application"
msgstr "Aplacaid"
#: extensions/auto-move-windows/prefs.js:65
#: extensions/auto-move-windows/prefs.js:123
#: extensions/auto-move-windows/prefs.js:62
#: extensions/auto-move-windows/prefs.js:117
msgid "Workspace"
msgstr "Rum-obrach"
msgstr "Rùm-obrach"
#: extensions/auto-move-windows/prefs.js:81
#: extensions/auto-move-windows/prefs.js:78
msgid "Add Rule"
msgstr "Cuir riaghailt ris"
#: extensions/auto-move-windows/prefs.js:102
#: extensions/auto-move-windows/prefs.js:98
msgid "Create new matching rule"
msgstr "Cruthaich riaghailt maidsidh ùr"
#: extensions/auto-move-windows/prefs.js:107
#: extensions/auto-move-windows/prefs.js:103
msgid "Add"
msgstr "Cuir ris"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:225
#, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:"
msgstr "Cha deach leinn draibh “%s” a ghluasad a-mach:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Draibhean so-ghiùlain"
msgstr "Uidheaman so-ghiùlain"
#: extensions/drive-menu/extension.js:150
#| msgid "Open File"
#: extensions/drive-menu/extension.js:143
msgid "Open Files"
msgstr "Fosgail faidhlichean"
@@ -164,86 +119,68 @@ msgstr "Teacsa fàilteachaidh eile."
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
"Mur eil seo falamh, tha an teacsa na bhroinn a thèid a shealltainn le "
"briogadh air a phanail."
msgstr "Mur eil seo falamh, tha an teacsa na bhroinn a thèid a shealltainn le briogadh air a phanail."
#: extensions/example/prefs.js:30
#: extensions/example/prefs.js:27
msgid "Message"
msgstr "Teachdaireachd"
#. 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."
#: 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 its possible to customize the greeting message."
msgstr ""
"Tha am ball-eisimpleir airson sealltainn dhut mar a thogas tu leudachain le "
"deagh-ghiùlan airson na Slige agus mar sin cha dèan e fhèin mòran.\n"
"S urrainn dhut an teachdaireachd fàilteachaidh a ghnàthachadh co-dhiù."
msgstr "Tha am ball-eisimpleir airson sealltainn dhut mar a thogas tu leudachain le deagh-ghiùlan airson na Slige agus mar sin cha dèan e fhèin mòran.\nS urrainn dhut an teachdaireachd fàilteachaidh a ghnàthachadh co-dhiù."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Cleachd cuid nas motha dhen sgrìn airson uinneagan"
msgstr "Cleachd barrachd dhen sgrìn airson uinneagan"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Feuch barrachd rum air an sgrìn a chleachdadh nuair a thèid dealbhagan nan "
"uinneagan a chur ann le gleusadh a-rèir co-mheas deilbh na sgrìn agus le "
"barrachd co-dhaingneachaidh ach am bi am bogsa-iadhaidh nas lugha. Cha bhi "
"an roghainn seo an sàs ach leis an ro-innleachd suidheachaidh nàdarra."
msgstr "Feuch barrachd rùm air an sgrìn a chleachdadh nuair a thèid dealbhagan nan uinneagan a chur ann le gleusadh a-rèir co-mheas deilbh na sgrìn agus le barrachd co-dhaingneachaidh ach am bi am bogsa-iadhaidh nas lugha. Cha bhi an roghainn seo an sàs ach leis an ro-innleachd suidheachaidh nàdarra."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr "Cuir caipseanan nan uinneagan air a bharr"
msgstr "Cuir caipseanan nan uinneagan air a bhàrr"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"Mas e true a th ann, thèid caipseanan nan uinneagan a chur ri barr nan "
"dealbhagan, a tar-àithneadh bun-roghainn na slige a chuireas aig a bhonn "
"iad. Ma dhatharraicheas tu an roghainn seo, feumaidh tu an t-slige a "
"thòiseachadh às ùr gus an dèid a cur an sàs."
msgstr "Mas e true a th ann, thèid caipseanan nan uinneagan a chur ri bàrr nan dealbhagan, a tar-àithneadh bun-roghainn na slige a chuireas aig a bhonn iad. Ma dhatharraicheas tu an roghainn seo, feumaidh tu an t-slige ath-thòiseachadh gus an dèid a cur an sàs."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:79
#: extensions/places-menu/extension.js:82
msgid "Places"
msgstr "Ionadan"
#: extensions/places-menu/placeDisplay.js:65
#: extensions/places-menu/placeDisplay.js:67
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Cha b urrainn dhuinn an t-iom-dhraibh airson “%s” a mhunntachadh"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:80
#, javascript-format
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”"
msgstr "Cha b urrainn dhuinn “%s” a chur gu dol"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:141
#: extensions/places-menu/placeDisplay.js:164
msgid "Computer"
msgstr "Coimpiutair"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:342
msgid "Home"
msgstr "Dachaigh"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:386
msgid "Browse Network"
msgstr "Brabhsaich an lìonra"
@@ -252,7 +189,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Cuartaich meudan nan glacaidhean-sgrìn"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Cuartaich meudan nan glacaidhean-sgrìn gu contrarra"
@@ -264,115 +200,143 @@ msgstr "Ainm an ùrlair"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Ainm an ùrlair a thèid a luchdadh o ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:106
msgid "Close"
msgstr "Dùin"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:125
msgid "Unminimize"
msgstr "Neo-fhìor-lùghdaich"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:126
msgid "Minimize"
msgstr "Fìor-lùghdaich"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:132
msgid "Unmaximize"
msgstr "Neo-làn-mheudaich"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:133
msgid "Maximize"
msgstr "Làn-mheudaich"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:408
msgid "Minimize all"
msgstr "Fìor-lùghdaich na h-uile"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:414
msgid "Unminimize all"
msgstr "Neo-fhìor-lùghdaich na h-uile"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:420
msgid "Maximize all"
msgstr "Làn-mheudaich na h-uile"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:429
msgid "Unmaximize all"
msgstr "Neo-làn-mheudaich na h-uile"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:438
msgid "Close all"
msgstr "Dùin na h-uile"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
#: extensions/window-list/extension.js:646
#: extensions/workspace-indicator/extension.js:26
msgid "Workspace Indicator"
msgstr "Taisbeanair ruim-obrach"
msgstr "Taisbeanair rùim-obrach"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:816
msgid "Window List"
msgstr "Liosta nan uinneagan"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "Cuin a thèid na h-uinneagan a bhuidhneachadh"
msgstr "Cuin a thèid uinneagan a bhuidhneachadh"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
#| msgid ""
#| "Decides when to group windows from the same application on the window "
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Mìnichidh seo cuin a thèid uinneagan aig an aon aplacaid a bhuidhneachadh "
"air liosta nan uinneagan. S e “never”, “auto” agus “always” a tha sna "
"roghainnean dligheach."
msgstr "Taghaidh seo cuin a thèid na h-uinneagan aig aplacaid a bhuidhneachadh air liosta nan uinneagan. S e “never”, “auto” agus “always” a tha sna roghainnean dligheach."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
msgid "Show the window list on all monitors"
msgstr "Seall liosta nan uinneagan air a h-uile sgrìn"
msgstr "Seall liosta nan uinneagan air a h-uile monatair"
#: 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 ""
"Co-dhiù an dèid liosta nan uinneagan a shealltainn air gach sgrìn "
"cheangailte no air a phrìomh-thè a-mhàin."
msgstr "Co-dhiù an dèid liosta nan uinneagan a shealltainn air gach monatair ceangailte no air a phrìomh-fhear a-mhàin."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:28
msgid "Window Grouping"
msgstr "Buidhneachadh nan uinneagan"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:46
msgid "Never group windows"
msgstr "Na buidhnich na h-uinneagan idir"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:47
msgid "Group windows when space is limited"
msgstr "Buidhnich na h-uinneagan nuair a bhios an rum gann"
msgstr "Buidhnich na h-uinneagan nuair a bhios an rùm gann"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:48
msgid "Always group windows"
msgstr "Buidhnich na h-uinneagan an-còmhnaidh"
#: extensions/window-list/prefs.js:75
#: extensions/window-list/prefs.js:71
msgid "Show on all monitors"
msgstr "Seall air a h-uile sgrìn"
msgstr "Seall air a h-uile monatair"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/workspace-indicator/prefs.js:134
msgid "Workspace Names"
msgstr "Ainmean nan rumannan-obrach"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:150
msgid "Name"
msgstr "Ainm"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:190
#, javascript-format
msgid "Workspace %d"
msgstr "Rum-obrach %d"
msgstr "Rùm-obrach %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Ceangail còmhradh mòdach ris an uinneag-pàraint"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Tar-àithnidh an iuchair seo an iuchair ann an org.gnome.mutter nuair a "
#~ "thèid Slige GNOME a ruith."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Seòrsachadh nam putanan air a bhàr-tiotail"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Tar-àithnidh an iuchair seo an iuchair ann an org.gnome.desktop.wm."
#~ "preferences nuair a thèid Slige GNOME a ruith."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Cuir leacadh nan oirean an comas nuair a thèid uinneagan a leigeil às aig "
#~ "oir na sgrìn"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Rumannan-obrach air a phrìomh-sgrìn a-mhàin"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Cuir dàil air atharraichean an fòcais ann am modh luchaige gus an sguir "
#~ "an tomhaire air gluasad"
#~ msgid "Notifications"
#~ msgstr "Brathan"
@@ -427,6 +391,7 @@ msgstr "Rum-obrach %d"
#~ "Clicking \n"
#~ " native switches the Alternate Tab extension off. \n"
#~ msgstr ""
#~ "Seo a' chiad turas a chì thu leudachan Alt Taba chaochlaidich. \n"
#~ "Tagh an giùlan as fhearr leat:\n"
#~ "\n"

282
po/id.po
View File

@@ -4,14 +4,15 @@
#
# Andika Triwidada <andika@gmail.com>, 2012, 2013.
# Dirgita <dirgitadevina@yahoo.co.id>, 2012.
# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017, 2019.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-07-05 15:07+0000\n"
"PO-Revision-Date: 2017-07-06 09:44+0700\n"
"Last-Translator: Kukuh Syafaat <syafaatkukuh@gmail.com>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-16 15:43+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome@i15n.org>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
@@ -19,7 +20,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 2.0.2\n"
"X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -29,74 +30,11 @@ msgstr "GNOME Klasik"
msgid "This session logs you into GNOME Classic"
msgstr "Sesi ini memasukkan Anda ke GNOME Klasik"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Cantolkan dialog modal ke jendela induk"
#: 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 ""
"Kunci ini menimpa kunci dalam org.gnome.mutter ketika menjalankan GNOME "
"Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Pengaturan tombol-tombol pada bilah judul"
#: 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 ""
"Kunci ini menimpa kunci dalam org.gnome.desktop.wm.preferences ketika "
"menjalankan GNOME Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Aktifkan pengubinan tepi ketika menjatuhkan jendela ke tepi layar"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Ruang kerja hanya pada monitor primer"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Hanya gambar mini"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Hanya ikon aplikasi"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Gambar mini dan ikon aplikasi"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Sajikan jendela sebagai"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Hanya tampilkan jendela dalam ruang kerja kini"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Ringkasan Aktivitas"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favorit"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Aplikasi"
@@ -116,68 +54,38 @@ msgstr ""
msgid "Application"
msgstr "Aplikasi"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Ruang Kerja"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Tambah Aturan"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Buat aturan pencocokan baru"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Tambah"
#: extensions/drive-menu/extension.js:106
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Saat mengeluarkan drive \"%s\" gagal:"
#: extensions/drive-menu/extension.js:124
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Perangkat yang dapat dilepas"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Buka Berkas"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hai, dunia!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Teks penyapa alternatif."
#: 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 ""
"Bila tak kosong, ini memuat teks yang akan ditampilkan ketika klik pada "
"panel."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Pesan"
#. 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 bertujuan menampilkan bagaimana membangun ekstensi yang berkelakuan "
"baik bagi Shell dan karena itu hanya memiliki sedikit fungsi.\n"
"Namun, tetap mungkin untuk mengatur pesan sapaan."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Pakai lebih banyak layar bagi jendela"
@@ -207,31 +115,31 @@ msgstr ""
"masing, menimpa bawaan shell yang menempatkannya di bagian bawah. Mengubah "
"ini memerlukan memulai ulang shell agar berdampak."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Tempat"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Gagal mengaitkan volume untuk \"%s\""
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Gagal meluncurkan \"%s\""
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Gagal mengaitkan volume untuk \"%s\""
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Komputer"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Rumah"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Ramban Jaringan"
@@ -251,52 +159,47 @@ msgstr "Nama tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Nama tema, untuk dimuat dari ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Tutup"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Tak minimalkan"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Minimalkan"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Tak maksimalkan"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Maksimalkan"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Minimalkan semua"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Tak minimalkan semua"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Maksimalkan semua"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Tak maksimalkan semua"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Tutup semua"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indikator Ruang Kerja"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Daftar Jendela"
@@ -314,10 +217,20 @@ msgstr ""
"\" (otomatis), atau \"always\" (selalu)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Menampilkan jendela dari semua area kerja"
#: 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 ""
"Apakah menampilkan jendela dari semua area kerja atau hanya yang saat ini."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Tampilkan daftar jendela pada semua monitor"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -325,19 +238,19 @@ msgstr ""
"Apakah menampilkan daftar jendela pada semua monitor yang tersambung atau "
"hanya pada yang utama."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Pengelompokan Jendela"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Jangan pernah kelompokkan jendela"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Kelompokkan jendela ketika ruang terbatas"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Selalu kelompokkan jendela"
@@ -345,19 +258,94 @@ msgstr "Selalu kelompokkan jendela"
msgid "Show on all monitors"
msgstr "Tampilkan pada semua monitor"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Indikator Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Nama Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nama"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Ruang Kerja %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Cantolkan dialog modal ke jendela induk"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Kunci ini menimpa kunci dalam org.gnome.mutter ketika menjalankan GNOME "
#~ "Shell."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Pengaturan tombol-tombol pada bilah judul"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Kunci ini menimpa kunci dalam org.gnome.desktop.wm.preferences ketika "
#~ "menjalankan GNOME Shell."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "Aktifkan pengubinan tepi ketika menjatuhkan jendela ke tepi layar"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Ruang kerja hanya pada monitor primer"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Tunda perubahan fokus dalam mode tetikus sampai penunjuk berhenti bergerak"
#~ msgid "Thumbnail only"
#~ msgstr "Hanya gambar mini"
#~ msgid "Application icon only"
#~ msgstr "Hanya ikon aplikasi"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Gambar mini dan ikon aplikasi"
#~ msgid "Present windows as"
#~ msgstr "Sajikan jendela sebagai"
#~ msgid "Activities Overview"
#~ msgstr "Ringkasan Aktivitas"
#~ msgid "Hello, world!"
#~ msgstr "Hai, dunia!"
#~ msgid "Alternative greeting text."
#~ msgstr "Teks penyapa alternatif."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Bila tak kosong, ini memuat teks yang akan ditampilkan ketika klik pada "
#~ "panel."
#~ msgid "Message"
#~ msgstr "Pesan"
#~ 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 bertujuan menampilkan bagaimana membangun ekstensi yang "
#~ "berkelakuan baik bagi Shell dan karena itu hanya memiliki sedikit "
#~ "fungsi.\n"
#~ "Namun, tetap mungkin untuk mengatur pesan sapaan."
#~ msgid "CPU"
#~ msgstr "CPU"

282
po/lt.po
View File

@@ -2,15 +2,15 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Algimantas Margevičius <margevicius.algimantas@gmail.com>, 2011.
# Aurimas Černius <aurisc4@gmail.com>, 2013, 2014, 2015, 2017.
# Aurimas Černius <aurisc4@gmail.com>, 2013-2019.
#
msgid ""
msgstr ""
"Project-Id-Version: lt\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-07-05 15:07+0000\n"
"PO-Revision-Date: 2017-07-10 23:18+0300\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-18 22:06+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -18,8 +18,8 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Gtranslator 2.91.7\n"
"%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Generator: Gtranslator 3.32.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -29,72 +29,11 @@ msgstr "Klasikinis GNOME"
msgid "This session logs you into GNOME Classic"
msgstr "Šis seansas prijungs jus prie klasikinio GNOME"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Prikabinti modalinį dialogą prie tėvinio lango"
#: 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 ""
"Šis raktas padaro org.gnome.mutter raktą neveiksniu naudojant GNOME Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Mygtukų išdėstymas pavadinimo juostoje"
#: 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 ""
"Šis raktas padaro org.gnome.desktop.wm.preferences raktą neveiksniu, "
"naudojant GNOME Shell."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Įjungti išplėtimą kraštuose nutempiant langus į ekrano kraštus"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Darbo sritys tik pagrindiniame monitoriuje"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr "Atidėti fokuso pakeitimą pelei iki žymiklis nustos judėti"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Tik miniatiūros"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Tik programos piktograma"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniatiūra ir programos piktograma"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Pateikti langus kaip"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Rodyti tik dabartinės darbo srities langus"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Veiklų apžvalga"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Mėgiamiausi"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Programos"
@@ -114,68 +53,38 @@ msgstr ""
msgid "Application"
msgstr "Programa"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Darbo sritis"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Pridėti taisyklę"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Sukurti naują atitikimo taisyklę"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Pridėti"
#: extensions/drive-menu/extension.js:106
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Laikmenos „%s“ išstūmimas nepavyko:"
#: extensions/drive-menu/extension.js:124
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Išimami įrenginiai"
#: extensions/drive-menu/extension.js:149
#| msgid "Open File"
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Atverti failai"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Labas, pasauli!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Alternatyvus pasveikimo tekstas."
#: 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 ""
"Jei netuščias, jis turi tekstą, kuri bus rodomas paspaudus ant skydelio."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Pranešimas"
#. 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 siekia parodyti, kaip sukurti gerai besielgiančius apvalkalo "
"plėtinius ir kaip toks, turi mažai savo funkcionalumo.\n"
"Visgi, yra galima pakeisti sveikinimo pranešimą."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Naudoti daugiau ekrano langams "
@@ -204,32 +113,31 @@ msgstr ""
"nepaisant numatyto talpinimo apačioje. Pakeitus šiuos nustatymus, reikės "
"paleisti apvalkalą iš naujo."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Vietos"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
#| msgid "Failed to launch “%s”"
msgid "Failed to mount volume for “%s”"
msgstr "Nepavyko prijungti tomo „%s“"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Nepavyko paleisti „%s“"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Nepavyko prijungti tomo „%s“"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Kompiuteris"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Namų aplankas"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Naršyti tinklą"
@@ -238,7 +146,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Sukti ekranvaizdžių dydžius ratu"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Sukti ekranvaizdžių dydžius ratu"
@@ -250,52 +157,47 @@ msgstr "Temos pavadinimas"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Temos pavadinimas, kuri bus įkrauta iš ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Užverti"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Grąžinti iš sumažinimo"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Sumažinti"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Grąžinti iš išdidinimo"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Išdidinti"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Sumažinti visus"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Grąžinti visus iš sumažinimo"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Išdidinti visus"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Grąžinti visus iš išdidinimo"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Užverti visus"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Darbo srities indikatorius"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Langų sąrašas"
@@ -312,10 +214,23 @@ msgstr ""
"vertės yra „never“, „auto“ ir „always“."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces"
msgstr "Rodyti visų darbo sričių langus"
#: 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 "Ar rodyti langus iš visų darbo sričių, ar tik dabartinės."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Rodyti langų sąrašą visuose monitoriuose"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -323,19 +238,19 @@ msgstr ""
"Ar rodyti langų sąrašą visuose prijungtuose monitoriuose, ar tik "
"pagrindiniame."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Langų grupavimas"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Niekada negrupuoti langų"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Grupuoti langus, kai yra ribotai vietos"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Visada grupuoti langus"
@@ -343,19 +258,90 @@ msgstr "Visada grupuoti langus"
msgid "Show on all monitors"
msgstr "Rodyti visuose monitoriuose"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Darbo srities indikatorius"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Darbo sričių pavadinimai"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Pavadinimas"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Darbo sritis %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Prikabinti modalinį dialogą prie tėvinio lango"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Šis raktas padaro org.gnome.mutter raktą neveiksniu naudojant GNOME Shell."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Mygtukų išdėstymas pavadinimo juostoje"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Šis raktas padaro org.gnome.desktop.wm.preferences raktą neveiksniu, "
#~ "naudojant GNOME Shell."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr "Įjungti išplėtimą kraštuose nutempiant langus į ekrano kraštus"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Darbo sritys tik pagrindiniame monitoriuje"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr "Atidėti fokuso pakeitimą pelei iki žymiklis nustos judėti"
#~ msgid "Thumbnail only"
#~ msgstr "Tik miniatiūros"
#~ msgid "Application icon only"
#~ msgstr "Tik programos piktograma"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Miniatiūra ir programos piktograma"
#~ msgid "Present windows as"
#~ msgstr "Pateikti langus kaip"
#~ msgid "Activities Overview"
#~ msgstr "Veiklų apžvalga"
#~ msgid "Hello, world!"
#~ msgstr "Labas, pasauli!"
#~ msgid "Alternative greeting text."
#~ msgstr "Alternatyvus pasveikimo tekstas."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Jei netuščias, jis turi tekstą, kuri bus rodomas paspaudus ant skydelio."
#~ msgid "Message"
#~ msgstr "Pranešimas"
#~ 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 siekia parodyti, kaip sukurti gerai besielgiančius apvalkalo "
#~ "plėtinius ir kaip toks, turi mažai savo funkcionalumo.\n"
#~ "Visgi, yra galima pakeisti sveikinimo pranešimą."
#~ msgid "CPU"
#~ msgstr "CPU"

249
po/mjw.po Normal file
View File

@@ -0,0 +1,249 @@
# Karbi (India) translation for gnome-shell-extensions.
# Copyright (C) 2019 gnome-shell-extensions's Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Jor Teron <jor.teron@gmail.com>, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-07-02 19:23+0000\n"
"PO-Revision-Date: 2019-07-25 00:00+0530\n"
"Last-Translator: Jor Teron <jor.teron@gmail.com>\n"
"Language-Team: Karbi <karbi.translation@gmail.com>\n"
"Language: mjw\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: gedit 3.28.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr ""
#: extensions/apps-menu/extension.js:111
msgid "Favorites"
msgstr ""
#: extensions/apps-menu/extension.js:366
msgid "Applications"
msgstr ""
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr ""
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr ""
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr ""
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr ""
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr ""
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Kethap"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Drive “%s” patet un-eh:"
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr ""
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Files kangpu"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr ""
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr ""
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr ""
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "“%s” Ingpu un-eh"
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr ""
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Computer"
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Home"
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Network kelang"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr ""
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr ""
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "Theme amen"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Theme amem, kewan ji pen ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Kanghap"
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Pabi-thuthe"
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Pabi"
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Pathe-thuthe"
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Pathe"
#: extensions/window-list/extension.js:399
msgid "Minimize all"
msgstr "Kado-kawe pabi"
#: extensions/window-list/extension.js:405
msgid "Unminimize all"
msgstr "Kado-kawe pabi-thuthe"
#: extensions/window-list/extension.js:411
msgid "Maximize all"
msgstr "Kathe-kawe pathe"
#: extensions/window-list/extension.js:419
msgid "Unmaximize all"
msgstr "Kado-kawe pathe-thuthe"
#: extensions/window-list/extension.js:427
msgid "Close all"
msgstr "Kado-kawe kanghap"
#: extensions/window-list/extension.js:642
#: extensions/workspace-indicator/extension.js:20
msgid "Workspace Indicator"
msgstr ""
#: extensions/window-list/extension.js:829
msgid "Window List"
msgstr ""
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
msgid "When to group windows"
msgstr "Mentu hutsi windows muluk nangji"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
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:25
msgid "Window Grouping"
msgstr "Windows muluk"
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Windows muluk ri"
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Adim bihek te windows muluk noi"
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Windows muluk vek nangji"
#: extensions/window-list/prefs.js:75
msgid "Show on all monitors"
msgstr ""
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Workspace amen hai"
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Men"
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Workspace amen %d"

218
po/pl.po
View File

@@ -1,16 +1,16 @@
# Polish translation for gnome-shell-extensions.
# Copyright © 2011-2017 the gnome-shell-extensions authors.
# Copyright © 2011-2019 the gnome-shell-extensions authors.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Piotr Drąg <piotrdrag@gmail.com>, 2011-2017.
# Aviary.pl <community-poland@mozilla.org>, 2011-2017.
# Piotr Drąg <piotrdrag@gmail.com>, 2011-2019.
# Aviary.pl <community-poland@mozilla.org>, 2011-2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-08-11 01:33+0000\n"
"PO-Revision-Date: 2017-08-11 03:33+0200\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-20 19:23+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
@@ -28,77 +28,11 @@ msgstr "Klasyczne GNOME"
msgid "This session logs you into GNOME Classic"
msgstr "Ta sesja loguje do klasycznego środowiska GNOME"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Dołączanie modalnych okien dialogowych do okien nadrzędnych"
#: 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 ""
"Ten klucz zastępuje klucz w „org.gnome.mutter”, kiedy uruchomiona jest "
"powłoka GNOME."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Kolejność przycisków na pasku tytułowym"
#: 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 ""
"Ten klucz zastępuje klucz w „org.gnome.desktop.wm.preferences”, kiedy "
"uruchomiona jest powłoka GNOME."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Włączenie kafelkowania przy krawędziach podczas przenoszenia okien do "
"krawędzi ekranu"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Obszary robocze tylko na pierwszym monitorze"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Opóźnienie zmiany aktywności w trybie myszy do momentu, w którym kursor się "
"zatrzymuje"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Tylko miniatury"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Tylko ikony programów"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniatura i ikona programu"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Wyświetlanie okien jako"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Wyświetlanie tylko okien w bieżącym obszarze roboczym"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Ekran podglądu"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Ulubione"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Programy"
@@ -118,68 +52,38 @@ msgstr ""
msgid "Application"
msgstr "Program"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Obszar roboczy"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Dodaj regułę"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Utwórz nową pasującą regułę"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Dodaj"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Wysunięcie napędu „%s” się nie powiodło:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Urządzenia wymienne"
#: extensions/drive-menu/extension.js:150
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Otwórz menedżer plików"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Witaj, świecie!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Alternatywny tekst powitalny."
#: 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 ""
"Jeśli nie jest puste, to zawiera tekst wyświetlany po kliknięciu panelu."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Wiadomość"
#. 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 ""
"Przykład, jak tworzyć poprawne rozszerzenia dla powłoki, mające jak najmniej "
"własnych funkcji.\n"
"Niemniej można dostosować wiadomość powitalną."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Użycie więcej miejsca dla okien"
@@ -209,31 +113,31 @@ msgstr ""
"powłokę. Zmiana tego ustawienia wymaga ponownego uruchomienia powłoki, aby "
"uwzględnić zmiany."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Miejsca"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Zamontowanie woluminu dla „%s” się nie powiodło"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Uruchomienie „%s” się nie powiodło"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Zamontowanie woluminu dla „%s” się nie powiodło"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Komputer"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Katalog domowy"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Przeglądaj sieć"
@@ -253,52 +157,47 @@ msgstr "Nazwa motywu"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Nazwa motywu do wczytania z katalogu ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Zamknij"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Cofnij minimalizację"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Zminimalizuj"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Cofnij maksymalizację"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Zmaksymalizuj"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Zminimalizuj wszystkie"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Cofnij minimalizację wszystkich"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Zmaksymalizuj wszystkie"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Cofnij maksymalizację wszystkich"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Zamknij wszystkie"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Wskaźnik obszaru roboczego"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Lista okien"
@@ -315,30 +214,40 @@ msgstr ""
"wartości to „never” (nigdy), „auto” (automatycznie) i „always” (zawsze)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Wyświetlanie okien ze wszystkich obszarów roboczych"
#: 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 ""
"Czy wyświetlać okna ze wszystkich obszarów roboczych, czy tylko z obecnego."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Wyświetlanie listy okien na wszystkich monitorach"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Określa, czy wyświetlać listę okien na wszystkich podłączonych monitorach, "
"czy tylko na głównym."
"Czy wyświetlać listę okien na wszystkich podłączonych monitorach, czy tylko "
"na głównym."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Grupowanie okien"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Bez grupowania okien"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Grupowanie okien, kiedy miejsce jest ograniczone"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Stałe grupowanie okien"
@@ -346,15 +255,20 @@ msgstr "Stałe grupowanie okien"
msgid "Show on all monitors"
msgstr "Wyświetlanie na wszystkich monitorach"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Wskaźnik obszaru roboczego"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Nazwy obszarów roboczych"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nazwa"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "%d. obszar roboczy"

297
po/ro.po
View File

@@ -8,9 +8,10 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2017-12-06 16:42+0000\n"
"PO-Revision-Date: 2018-01-08 19:10+0200\n"
"Last-Translator: Daniel Șerbănescu <daniel [at] serbanescu [dot] dk>\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-18 14:22+0300\n"
"Last-Translator: Florentina Mușat <florentina.musat.28 [at] gmail [dot] "
"com>\n"
"Language-Team: Gnome Romanian Translation Team\n"
"Language: ro\n"
"MIME-Version: 1.0\n"
@@ -18,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);;\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Generator: Poedit 2.2.3\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
@@ -29,75 +30,11 @@ msgstr "GNOME Clasic"
msgid "This session logs you into GNOME Classic"
msgstr "Această sesiune vă autentifică în GNOME Clasic"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Atașează dialogul modal la fereastra părinte"
#: 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 ""
"Această cheie înlocuiește cheia corespondentă din org.gnome.mutter când "
"interfața GNOME rulează."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Aranjamentul butoanelor din bara de titlu"
#: 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 ""
"Această cheie înlocuiește cheia corespondentă din org.gnome.desktop.wm."
"preferences când interfața GNOME rulează."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Activează mozaic lateral la plasarea ferestrelor pe marginile ecranului"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Spații de lucru doar pe monitorul principal"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Întârzie schimbările de focus în modul maus până când cursorul se oprește"
#: extensions/alternate-tab/prefs.js:19
msgid "Thumbnail only"
msgstr "Doar miniatură"
#: extensions/alternate-tab/prefs.js:20
msgid "Application icon only"
msgstr "Doar pictograma aplicației"
#: extensions/alternate-tab/prefs.js:21
msgid "Thumbnail and application icon"
msgstr "Miniatură și pictograma aplicației"
#: extensions/alternate-tab/prefs.js:34
msgid "Present windows as"
msgstr "Prezintă ferestrele ca"
#: extensions/alternate-tab/prefs.js:65
msgid "Show only windows in the current workspace"
msgstr "Arată doar ferestrele aflate în spațiul de lucru actual"
#: extensions/apps-menu/extension.js:37
msgid "Activities Overview"
msgstr "Panoramă activități"
#: extensions/apps-menu/extension.js:130
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favorite"
#: extensions/apps-menu/extension.js:417
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Aplicații"
@@ -114,32 +51,31 @@ msgstr ""
"fișierului de birou) urmat de simbolul „două puncte” și un număr al "
"spațiului de lucru"
#: extensions/auto-move-windows/prefs.js:53
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Aplicație"
#: extensions/auto-move-windows/prefs.js:62
#: extensions/auto-move-windows/prefs.js:117
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Spațiu de lucru"
#: extensions/auto-move-windows/prefs.js:78
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Adaugă o regulă"
#: extensions/auto-move-windows/prefs.js:98
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Creează o regulă nouă de potrivire"
#: extensions/auto-move-windows/prefs.js:103
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Adaugă"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:103
#: extensions/places-menu/placeDisplay.js:216
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:"
msgstr "Scoaterea unității „%s” a eșuat:"
@@ -147,47 +83,10 @@ msgstr "Scoaterea unității „%s” a eșuat:"
msgid "Removable devices"
msgstr "Dispozitive detașabile"
#: extensions/drive-menu/extension.js:143
#| msgid "Open File"
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Deschide fișiere"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Bună ziua, lume!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Text alternativ de salut."
#: 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 ""
"Dacă nu este gol, conține un text care va fi afișat când se apasă clic pe "
"panou."
#: extensions/example/prefs.js:27
msgid "Message"
msgstr "Mesaj"
#. 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 ""
"Exemplul are ca scop să prezinte cum anume să construiți extensii pentru "
"Shell, ce se comportă corect, și au o funcționalitate proprie redusă.\n"
"Cu toate acestea, este posibil să personalizați mesajul de întâmpinare."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Folosește mai mult din ecran pentru ferestre"
@@ -218,32 +117,31 @@ msgstr ""
"Schimbând această configurare necesită repornire shell-ului pentru a avea "
"efect."
#: extensions/places-menu/extension.js:79
#: extensions/places-menu/extension.js:82
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Locații"
#: extensions/places-menu/placeDisplay.js:66
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Eșec la lansarea „%s”"
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Eșec la montarea volumului pentru „%s”"
#: extensions/places-menu/placeDisplay.js:79
#, javascript-format
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”"
msgstr "Eșec la lansarea „%s”"
#: extensions/places-menu/placeDisplay.js:135
#: extensions/places-menu/placeDisplay.js:158
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Calculator"
#: extensions/places-menu/placeDisplay.js:333
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Acasă"
#: extensions/places-menu/placeDisplay.js:375
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Navighează rețeaua"
@@ -252,7 +150,6 @@ msgid "Cycle Screenshot Sizes"
msgstr "Ciclează dimensiunile capturilor de ecran"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
#| msgid "Cycle Screenshot Sizes"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Ciclează dimensiunile capturilor de ecran în sens invers"
@@ -264,52 +161,47 @@ msgstr "Numele temei"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Numele temei, ce va fi încărcată din ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:106
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Închide"
#: extensions/window-list/extension.js:125
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Deminimizează"
#: extensions/window-list/extension.js:126
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Minimizează"
#: extensions/window-list/extension.js:132
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Demaximizează"
#: extensions/window-list/extension.js:133
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Maximizează"
#: extensions/window-list/extension.js:408
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Minimizează tot"
#: extensions/window-list/extension.js:414
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Deminimizează tot"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Maximizează tot"
#: extensions/window-list/extension.js:429
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Demaximizează tot"
#: extensions/window-list/extension.js:438
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Închide tot"
#: extensions/window-list/extension.js:646
#: extensions/workspace-indicator/extension.js:26
msgid "Workspace Indicator"
msgstr "Indicator al spațiului de lucru"
#: extensions/window-list/extension.js:811
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Lista ferestrelor"
@@ -318,9 +210,6 @@ msgid "When to group windows"
msgstr "Când să fie grupate ferestrele"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
#| msgid ""
#| "Decides when to group windows from the same application on the window "
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
@@ -329,10 +218,21 @@ msgstr ""
"ferestrei. Valorile posibile sunt „niciodată”, „auto” și „întotdeauna”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Arată ferestrele din toate spațiile de lucru"
#: 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 ""
"Dacă să se arate ferestrele din toate spațiile de lucru sau doar din cel "
"curent."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Afișează lista ferestrelor pe toate monitoarele"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -340,39 +240,118 @@ msgstr ""
"Dacă să se arate lista ferestrelor pe toate monitoarele conectate sau doar "
"pe cel primar."
#: extensions/window-list/prefs.js:28
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Gruparea ferestrelor"
#: extensions/window-list/prefs.js:46
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Nu grupa ferestrele niciodată"
#: extensions/window-list/prefs.js:47
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Grupează ferestrele când spațiul e limitat"
#: extensions/window-list/prefs.js:48
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Grupează ferestrele întotdeauna"
#: extensions/window-list/prefs.js:71
#: extensions/window-list/prefs.js:75
msgid "Show on all monitors"
msgstr "Arată pe toate monitoarele"
#: extensions/workspace-indicator/prefs.js:134
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Indicator al spațiului de lucru"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Numele spațiilor de lucru"
#: extensions/workspace-indicator/prefs.js:150
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Nume"
#: extensions/workspace-indicator/prefs.js:190
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Spațiu de lucru %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Atașează dialogul modal la fereastra părinte"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Această cheie înlocuiește cheia corespondentă din org.gnome.mutter când "
#~ "interfața GNOME rulează."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Aranjamentul butoanelor din bara de titlu"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Această cheie înlocuiește cheia corespondentă din org.gnome.desktop.wm."
#~ "preferences când interfața GNOME rulează."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Activează mozaic lateral la plasarea ferestrelor pe marginile ecranului"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Spații de lucru doar pe monitorul principal"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Întârzie schimbările de focus în modul maus până când cursorul se oprește"
#~ msgid "Thumbnail only"
#~ msgstr "Doar miniatură"
#~ msgid "Application icon only"
#~ msgstr "Doar pictograma aplicației"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Miniatură și pictograma aplicației"
#~ msgid "Present windows as"
#~ msgstr "Prezintă ferestrele ca"
#~ msgid "Activities Overview"
#~ msgstr "Panoramă activități"
#~ msgid "Hello, world!"
#~ msgstr "Bună ziua, lume!"
#~ msgid "Alternative greeting text."
#~ msgstr "Text alternativ de salut."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr ""
#~ "Dacă nu este gol, conține un text care va fi afișat când se apasă clic pe "
#~ "panou."
#~ msgid "Message"
#~ msgstr "Mesaj"
#~| 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 ""
#~ "Exemplul are ca scop să prezinte cum anume să construiți extensii pentru "
#~ "Shell, ce se comportă corect, și au o funcționalitate proprie redusă.\n"
#~ "Cu toate acestea, este posibil să personalizați mesajul de întâmpinare."
#~ msgid "GNOME Shell Classic"
#~ msgstr "Interfața clasică GNOME"

View File

@@ -2,7 +2,7 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Matej Urbančič <mateju@svn.gnome.org>, + 20112017.
# Matej Urbančič <mateju@svn.gnome.org>, + 20112019.
#
msgid ""
msgstr ""
@@ -10,7 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-07-07 10:35+0200\n"
"PO-Revision-Date: 2017-07-07 10:36+0200\n"
"PO-Revision-Date: 2019-02-12 20:43+0100\n"
"Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl_SI\n"
@@ -20,7 +20,7 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.0.1\n"
"X-Generator: Poedit 2.1.1\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -32,7 +32,7 @@ msgstr "Seja omogoča prijavo v običajno namizje GNOME."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Priponi modalno pogovorno okno nadrejenemu oknu"
msgstr "Pripni modalno pogovorno okno nadrejenemu oknu"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25
@@ -41,8 +41,8 @@ msgstr "Priponi modalno pogovorno okno nadrejenemu oknu"
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Možnost prepiše ključ med nastavitvami org.gnome.mutter med zagonom lupine "
"GNOME."
"Možnost med zagonom lupine GNOME prepiše ključ med nastavitvami org.gnome."
"mutter."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
@@ -53,8 +53,8 @@ msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Možnost prepiše ključ med nastavitvami org.gnome.desktop.wm med zagonom "
"lupine GNOME."
"Možnost med zagonom lupine GNOME prepiše ključ med nastavitvami org.gnome."
"desktop.wm."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
@@ -111,8 +111,8 @@ msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Seznam nizov z določilom ID programa (ime programa), ki mu sledi "
"dvopičje in nato številka delovne površine."
"Seznam nizov z določilom ID programa (ime programa), ki mu sledi dvopičje in "
"nato številka delovne površine."
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
@@ -174,8 +174,8 @@ msgid ""
"as such it has little functionality on its own.\n"
"Nevertheless its possible to customize the greeting message."
msgstr ""
"Primer je oblikovan kot predloga za izgradnjo kakovostnih razširitev "
"za lupino, zato je delovanje deloma prilagojeno.\n"
"Primer je oblikovan kot predloga za izgradnjo kakovostnih razširitev za "
"lupino, zato je delovanje deloma prilagojeno.\n"
"Kljub vsemu je mogoče prilagajati pozdravno sporočilo."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
@@ -202,9 +202,9 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"Izbrana možnost določi postavitev nazivov oken na vrh posamezne sličice"
"in s tem prepiše privzeti izpis pod sličico. Za uveljavitev sprememb je "
"treba lupino ponovno zagnati."
"Izbrana možnost določi postavitev nazivov oken na vrh posamezne sličice in s "
"tem prepiše privzeti izpis pod sličico. Za uveljavitev sprememb je treba "
"lupino ponovno zagnati."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81

277
po/sv.po
View File

@@ -1,24 +1,24 @@
# Swedish translation for gnome-shell-extensions.
# Copyright © 2011, 2012, 2014, 2015, 2017 Free Software Foundation, Inc.
# Copyright © 2011, 2012, 2014, 2015, 2017, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Daniel Nylander <po@danielnylander.se>, 2011, 2012.
# Mattias Eriksson <snaggen@gmail.com>, 2014.
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017.
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2017-09-08 06:09+0000\n"
"PO-Revision-Date: 2017-10-02 20:49+0200\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
"PO-Revision-Date: 2019-08-12 21:30+0200\n"
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
"Language: sv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.4\n"
"X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
@@ -28,72 +28,11 @@ msgstr "GNOME Klassisk"
msgid "This session logs you into GNOME Classic"
msgstr "Denna session loggar in dig till GNOME Klassisk"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
msgid "Attach modal dialog to the parent window"
msgstr "Koppla samman modal dialog till föräldrafönstret"
#: 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 ""
"Denna nyckel överskuggar nyckeln i org.gnome.mutter när GNOME-skalet körs."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
msgid "Arrangement of buttons on the titlebar"
msgstr "Arrangemang för knappar i namnlisten"
#: 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 ""
"Denna nyckel överskuggar nyckeln i org.gnome.desktop.wm.preferences när "
"GNOME-skalet körs."
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Slå på kantdockning när fönster släpps på skärmkanter"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
msgid "Workspaces only on primary monitor"
msgstr "Arbetsytor endast på primär skärm"
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
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"
#: extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Endast miniatyrbild"
#: extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Endast programikon"
#: extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniatyrbild och programikon"
#: extensions/alternate-tab/prefs.js:38
msgid "Present windows as"
msgstr "Presentera fönster som"
#: extensions/alternate-tab/prefs.js:69
msgid "Show only windows in the current workspace"
msgstr "Visa endast fönster på den aktuella arbetsytan"
#: extensions/apps-menu/extension.js:41
msgid "Activities Overview"
msgstr "Aktivitetsöversikt"
#: extensions/apps-menu/extension.js:141
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoriter"
#: extensions/apps-menu/extension.js:436
#: extensions/apps-menu/extension.js:368
msgid "Applications"
msgstr "Program"
@@ -113,69 +52,38 @@ msgstr ""
msgid "Application"
msgstr "Program"
#: extensions/auto-move-windows/prefs.js:69
#: extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71
#: extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Arbetsyta"
#: extensions/auto-move-windows/prefs.js:85
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Lägg till regel"
#: extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Skapa ny matchande regel"
#: extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Lägg till"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:107
#: extensions/drive-menu/extension.js:102
#: extensions/places-menu/placeDisplay.js:232
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Utmatning av disk ”%s” misslyckades:"
#: extensions/drive-menu/extension.js:125
#: extensions/drive-menu/extension.js:118
msgid "Removable devices"
msgstr "Flyttbara enheter"
#: extensions/drive-menu/extension.js:150
#: extensions/drive-menu/extension.js:145
msgid "Open Files"
msgstr "Öppna filer"
#: extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hej, världen!"
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
msgid "Alternative greeting text."
msgstr "Alternativ hälsningstext."
#: 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 ""
"Om inte tom, innehåller den text som kommer att visas när man klickar på "
"panelen."
#: extensions/example/prefs.js:30
msgid "Message"
msgstr "Meddelande"
#. 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 ""
"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."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Använd mer av skärmen för fönster"
@@ -205,31 +113,31 @@ msgstr ""
"skalets standardplacering under miniatyrbilden. För att ändra denna "
"inställning krävs att skalet startas om för att den ska få effekt."
#: extensions/places-menu/extension.js:78
#: extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:80
#: extensions/places-menu/extension.js:84
msgid "Places"
msgstr "Platser"
#: extensions/places-menu/placeDisplay.js:65
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Misslyckades med att montera volym för ”%s”"
#: extensions/places-menu/placeDisplay.js:78
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Misslyckades med att starta ”%s”"
#: extensions/places-menu/placeDisplay.js:137
#: extensions/places-menu/placeDisplay.js:160
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Misslyckades med att montera volym för ”%s”"
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Dator"
#: extensions/places-menu/placeDisplay.js:303
#: extensions/places-menu/placeDisplay.js:358
msgid "Home"
msgstr "Hem"
#: extensions/places-menu/placeDisplay.js:347
#: extensions/places-menu/placeDisplay.js:403
msgid "Browse Network"
msgstr "Bläddra i nätverket"
@@ -249,52 +157,47 @@ msgstr "Temanamn"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Namnet på temat, kommer att läsas in från ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:110
#: extensions/window-list/extension.js:99
msgid "Close"
msgstr "Stäng"
#: extensions/window-list/extension.js:129
#: extensions/window-list/extension.js:119
msgid "Unminimize"
msgstr "Avminimera"
#: extensions/window-list/extension.js:130
#: extensions/window-list/extension.js:119
msgid "Minimize"
msgstr "Minimera"
#: extensions/window-list/extension.js:136
#: extensions/window-list/extension.js:126
msgid "Unmaximize"
msgstr "Avmaximera"
#: extensions/window-list/extension.js:137
#: extensions/window-list/extension.js:126
msgid "Maximize"
msgstr "Maximera"
#: extensions/window-list/extension.js:420
#: extensions/window-list/extension.js:431
msgid "Minimize all"
msgstr "Minimera alla"
#: extensions/window-list/extension.js:428
#: extensions/window-list/extension.js:437
msgid "Unminimize all"
msgstr "Avminimera alla"
#: extensions/window-list/extension.js:436
#: extensions/window-list/extension.js:443
msgid "Maximize all"
msgstr "Maximera alla"
#: extensions/window-list/extension.js:445
#: extensions/window-list/extension.js:451
msgid "Unmaximize all"
msgstr "Avmaximera alla"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:459
msgid "Close all"
msgstr "Stäng alla"
#: extensions/window-list/extension.js:678
#: extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Arbetsyteindikator"
#: extensions/window-list/extension.js:842
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "Fönsterlista"
@@ -311,10 +214,20 @@ msgstr ""
"värden är ”never” (aldrig), ”auto” och ”always” (alltid)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:82
msgid "Show windows from all workspaces"
msgstr "Visa fönster från alla arbetsytor"
#: 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 ""
"Huruvida fönster ska visas från alla arbetsytor eller bara från den aktuella."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Visa fönsterlistan på alla skärmar"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
@@ -322,19 +235,19 @@ msgstr ""
"Huruvida fönsterlistan ska visas på alla anslutna skärmar eller bara på den "
"primära."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Fönstergruppering"
#: extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Gruppera aldrig fönster"
#: extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Gruppera fönster när utrymmet är begränsat"
#: extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Gruppera alltid fönster"
@@ -342,19 +255,91 @@ msgstr "Gruppera alltid fönster"
msgid "Show on all monitors"
msgstr "Visa på alla skärmar"
#: extensions/workspace-indicator/prefs.js:141
#: extensions/window-list/workspaceIndicator.js:211
#: extensions/workspace-indicator/extension.js:216
msgid "Workspace Indicator"
msgstr "Arbetsyteindikator"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Namn på arbetsytor"
#: extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Namn"
#: extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Arbetsyta %d"
#~ 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"

337
po/tg.po
View File

@@ -1,356 +1,303 @@
# Tajik translation for gnome-shell-extensions.
# Copyright (C) 2013 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Victor Ibragimov <victor.ibragimov@gmail.com>, 2013, 2014, 2015
# Victor Ibragimov <victor.ibragimov@gmail.com>, 2013, 2014, 2015, 2019
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2015-03-09 20:46+0000\n"
"PO-Revision-Date: 2015-03-10 11:25+0500\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2019-03-02 10:57+0000\n"
"PO-Revision-Date: 2019-03-06 19:50+0500\n"
"Last-Translator: Victor Ibragimov <victor.ibragimov@gmail.com>\n"
"Language-Team: Tajik <tg@li.org>\n"
"Language: tg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.6.5\n"
"X-Generator: Poedit 2.2.1\n"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME-и классикӣ"
#: ../data/gnome-classic.desktop.in.h:2
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Ин ҷаласа шуморо ба GNOME-и классикӣ ворид мекунад"
#: ../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 ""
"Ҳангоми иҷрокунии GNOME Shell ин калид калидеро дар org.gnome.mutter "
"ҷойгузин мекунад."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
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.mutter when running GNOME Shell."
msgid ""
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
"GNOME Shell."
msgstr ""
"Ин тугма тугмаро дар хусусиятҳои org.gnome.desktop.wm.preferences ҳангоми "
"иҷрокунии восити GNOME лағв мекунад."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.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
#: extensions/apps-menu/extension.js:29
msgid "Activities Overview"
msgstr "Хулосаи фаъолият"
#: ../extensions/apps-menu/extension.js:110
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Баргузидаҳо"
#: ../extensions/apps-menu/extension.js:279
#: extensions/apps-menu/extension.js:407
msgid "Applications"
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"
msgstr "Рӯйхати барномаҳо ва фазоҳои корӣ"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Рӯйхати сатрҳое, ки рақами мушаххаси барномаҳоро дар бар мегиранд (номҳои "
"файлҳои мизи корӣ) ва бо ду нуқта ва рақами фазо ҷудо мешаванд"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid "A list of strings, each containing an application id (desktop file name), followed by a colon and the workspace number"
msgstr "Рӯйхати сатрҳое, ки рақами мушаххаси барномаҳоро дар бар мегиранд (номҳои файлҳои мизи корӣ) ва бо ду нуқта ва рақами фазо ҷудо мешаванд"
#: ../extensions/auto-move-windows/prefs.js:60
#: extensions/auto-move-windows/prefs.js:60
msgid "Application"
msgstr "Барнома"
#: ../extensions/auto-move-windows/prefs.js:69
#: ../extensions/auto-move-windows/prefs.js:127
#: extensions/auto-move-windows/prefs.js:71 extensions/auto-move-windows/prefs.js:134
msgid "Workspace"
msgstr "Фазои корӣ"
#: ../extensions/auto-move-windows/prefs.js:85
#| msgid "Add rule"
#: extensions/auto-move-windows/prefs.js:89
msgid "Add Rule"
msgstr "Илова кардани қоида"
#: ../extensions/auto-move-windows/prefs.js:106
#: extensions/auto-move-windows/prefs.js:111
msgid "Create new matching rule"
msgstr "Эҷод кардани қоидаи мувофиқати нав"
#: ../extensions/auto-move-windows/prefs.js:111
#: extensions/auto-move-windows/prefs.js:117
msgid "Add"
msgstr "Илова кардан"
#: ../extensions/drive-menu/extension.js:106
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:100 extensions/places-menu/placeDisplay.js:217
#, javascript-format
msgid "Ejecting drive '%s' failed:"
#| msgid "Ejecting drive '%s' failed:"
msgid "Ejecting drive “%s” failed:"
msgstr "Баровардани диски '%s' қатъ шудааст:"
#: ../extensions/drive-menu/extension.js:124
#: extensions/drive-menu/extension.js:116
msgid "Removable devices"
msgstr "Дастгоҳҳои ҷудошаванда"
#: ../extensions/drive-menu/extension.js:151
msgid "Open File"
#: extensions/drive-menu/extension.js:143
#| msgid "Open File"
msgid "Open Files"
msgstr "Кушодани файл"
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Салом, ҷаҳон!"
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Матни табрики иловагӣ."
#: ../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:"
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 ""
"Ин мисол намоиш медиҳад, ки чӣ тавр пасвандҳои танзимшуда барои Восит бояд "
"таҳия карда шаванд, зеро ки худи онҳо фунскияҳои кам доранд.\n"
"Бо вуҷуди ин, фармоишдиҳии паёми табрик имконпазир аст."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
msgstr "Истифодаи экрани бештар барои равзанаҳо"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
msgid "Try to use more screen for placing window thumbnails by adapting to screen aspect ratio, and consolidating them further to reduce the bounding box. This setting applies only with the natural placement strategy."
msgstr ""
"Кӯшиш кунед, ки экрани бештарро бо мувофиқсозии таносуби экран ва "
"маҳдудкунии сарҳадҳои қуттиҳо барои ҷойгиркунии тасвирҳои пешнамоишии "
"равзана истифода баред. Ин танзимот танҳо барои стратегияи ҷойгиркунии асил "
"мувофиқ мебошад."
"Кӯшиш кунед, ки экрани бештарро бо мувофиқсозии таносуби экран ва маҳдудкунии сарҳадҳои қуттиҳо барои ҷойгиркунии тасвирҳои пешнамоишии равзана истифода баред. Ин танзимот танҳо барои стратегияи ҷойгиркунии асил мувофиқ мебошад."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
msgstr "Ҷойгир кардани зернависҳои равзана ба боло"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "If true, place window captions on top the respective thumbnail, overriding shell default of placing it at the bottom. Changing this setting requires restarting the shell to have any effect."
msgstr ""
"Агар қимати \"true\" бошад, зернависҳои равзанаро ба болои тасвири "
"пешнамоишии мувофиқ, бо ҷойгузинкунии навбати восити пешфарз ба поён, ҷойгир "
"мекунад. Барои татбиқ кардани таъсири ин танзимот шумо бояд воситро бозоғозӣ "
"кунед."
"Агар қимати \"true\" бошад, зернависҳои равзанаро ба болои тасвири пешнамоишии мувофиқ, бо ҷойгузинкунии навбати восити пешфарз ба поён, ҷойгир мекунад. Барои татбиқ кардани таъсири ин танзимот шумо бояд воситро бозоғозӣ кунед."
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
#: extensions/places-menu/extension.js:79 extensions/places-menu/extension.js:83
msgid "Places"
msgstr "Ҷойҳо"
#: ../extensions/places-menu/placeDisplay.js:57
#: extensions/places-menu/placeDisplay.js:59
#, javascript-format
msgid "Failed to launch \"%s\""
msgstr "Оғоз бахшидани \"%s\" қатъ шудааст"
msgid "Failed to mount volume for “%s”"
msgstr "Васлкунии ҳаҷми диск барои “%s” иҷро нашуд"
#: ../extensions/places-menu/placeDisplay.js:99
#: ../extensions/places-menu/placeDisplay.js:122
#: extensions/places-menu/placeDisplay.js:72
#, javascript-format
#| msgid "Failed to launch \"%s\""
msgid "Failed to launch “%s”"
msgstr "Оғози “%s” қатъ шуд"
#: extensions/places-menu/placeDisplay.js:133 extensions/places-menu/placeDisplay.js:156
msgid "Computer"
msgstr "Компютер"
#: ../extensions/places-menu/placeDisplay.js:200
#: extensions/places-menu/placeDisplay.js:343
msgid "Home"
msgstr "Асосӣ"
#: ../extensions/places-menu/placeDisplay.js:287
#: extensions/places-menu/placeDisplay.js:387
msgid "Browse Network"
msgstr "Тамошо кардани шабака"
#: ../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"
msgstr "Андозаҳои скриншоти ҳалқа"
#: ../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"
msgid "Cycle Screenshot Sizes Backward"
msgstr "Андозаҳои скриншоти ҳалқа"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
msgstr "Номи мавзӯъ"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.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"
msgstr "Номи мавзӯъ аз ~/.themes/name/gnome-shell боргирӣ мешавад"
#: ../extensions/window-list/extension.js:109
#: extensions/window-list/extension.js:100
msgid "Close"
msgstr "Пӯшидан"
#: ../extensions/window-list/extension.js:119
#: extensions/window-list/extension.js:120
msgid "Unminimize"
msgstr "Бекор кардани ҳадди ақал"
#: ../extensions/window-list/extension.js:120
#: extensions/window-list/extension.js:120
msgid "Minimize"
msgstr "Ҳадди ақал сохтан"
#: ../extensions/window-list/extension.js:126
#: extensions/window-list/extension.js:127
msgid "Unmaximize"
msgstr "Бекор кардани ҳадди аксар"
#: ../extensions/window-list/extension.js:127
#: extensions/window-list/extension.js:127
msgid "Maximize"
msgstr "Ҳадди аксар сохтан"
#: ../extensions/window-list/extension.js:399
#: extensions/window-list/extension.js:408
msgid "Minimize all"
msgstr "Ҳамаро бо ҳадди ақал сохтан"
#: ../extensions/window-list/extension.js:407
#: extensions/window-list/extension.js:414
msgid "Unminimize all"
msgstr "Бекор кардани ҳадди ақал барои ҳама"
#: ../extensions/window-list/extension.js:415
#: extensions/window-list/extension.js:420
msgid "Maximize all"
msgstr "Ҳамаро бо ҳадди аксар сохтан"
#: ../extensions/window-list/extension.js:424
#: extensions/window-list/extension.js:429
msgid "Unmaximize all"
msgstr "Бекор кардани ҳадди аксар барои ҳама"
#: ../extensions/window-list/extension.js:433
#: extensions/window-list/extension.js:438
msgid "Close all"
msgstr "Ҳамаро пӯшонидан"
#: ../extensions/window-list/extension.js:650
#: ../extensions/workspace-indicator/extension.js:30
#: extensions/window-list/extension.js:655 extensions/workspace-indicator/extension.js:21
msgid "Workspace Indicator"
msgstr "Нишондиҳандаи фазои кор"
#: ../extensions/window-list/extension.js:807
#: extensions/window-list/extension.js:836
msgid "Window List"
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"
msgstr "Шартҳои гурӯҳбандии равзанаҳо"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are \"never\", \"auto\" and \"always\"."
msgstr ""
"Қарор медиҳад, ки дар кадом ҳолат равзанаҳо аз худи барномаҳо дар рӯйхати "
"равзанаҳо гурӯҳбандӣ мешаванд. Қиматҳои имконпазир: \"ҳеҷ гоҳ\", \"ба таври "
"худкор\" ва \"ҳамеша\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
#| msgid "Decides when to group windows from the same application on the window list. Possible values are \"never\", \"auto\" and \"always\"."
msgid "Decides when to group windows from the same application on the window list. Possible values are “never”, “auto” and “always”."
msgstr "Қарор медиҳад, ки дар кадом ҳолат равзанаҳо аз худи барномаҳо дар рӯйхати равзанаҳо гурӯҳбандӣ мешаванд. Қиматҳои имконпазир: \"ҳеҷ гоҳ\", \"ба таври худкор\" ва \"ҳамеша\"."
#: ../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
msgid "Show the window list on all monitors"
msgstr "Намоиш додани рӯйхати равзанаҳо дар ҳамаи мониторҳо"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:4
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
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
#: extensions/window-list/prefs.js:25
msgid "Window Grouping"
msgstr "Гурӯҳбандии равзанаҳо"
#: ../extensions/window-list/prefs.js:50
#: extensions/window-list/prefs.js:47
msgid "Never group windows"
msgstr "Ҳеҷ гоҳ равзанаҳоро гурӯҳбандӣ накардан"
#: ../extensions/window-list/prefs.js:51
#: extensions/window-list/prefs.js:48
msgid "Group windows when space is limited"
msgstr "Гурӯҳбандии равзанаҳо барои фазои маҳдудшуда"
#: ../extensions/window-list/prefs.js:52
#: extensions/window-list/prefs.js:49
msgid "Always group windows"
msgstr "Ҳамеша равзанаҳоро гурӯҳбандӣ кардан"
#: ../extensions/window-list/prefs.js:75
#: extensions/window-list/prefs.js:75
msgid "Show on all monitors"
msgstr "Намоиш додан дар ҳамаи мониторҳо"
#: ../extensions/workspace-indicator/prefs.js:141
#| msgid "Workspace names:"
#: extensions/workspace-indicator/prefs.js:131
msgid "Workspace Names"
msgstr "Номҳои фазоҳои корӣ"
#: ../extensions/workspace-indicator/prefs.js:157
#: extensions/workspace-indicator/prefs.js:151
msgid "Name"
msgstr "Ном"
#: ../extensions/workspace-indicator/prefs.js:198
#: extensions/workspace-indicator/prefs.js:191
#, javascript-format
msgid "Workspace %d"
msgstr "Фазои кории %d"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Замима кардани равзанаи гуфтугӯи модалӣ ба равзанаи асосӣ"
#~ msgid "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr "Ҳангоми иҷрокунии GNOME Shell ин калид калидеро дар org.gnome.mutter ҷойгузин мекунад."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Мураттабсозии тугмаҳо дар навори унвон"
#~| msgid "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgid "This key overrides the key in org.gnome.desktop.wm.preferences when running GNOME Shell."
#~ msgstr "Ин тугма тугмаро дар хусусиятҳои org.gnome.desktop.wm.preferences ҳангоми иҷрокунии восити GNOME лағв мекунад."
#~ 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 "Show only windows in the current workspace"
#~ 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:"
#~ 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."
#~ msgstr ""
#~ "Ин мисол намоиш медиҳад, ки чӣ тавр пасвандҳои танзимшуда барои Восит бояд таҳия карда шаванд, зеро ки худи онҳо фунскияҳои кам доранд.\n"
#~ "Бо вуҷуди ин, фармоишдиҳии паёми табрик имконпазир аст."
#~ msgid "GNOME Shell Classic"
#~ msgstr "Восити GNOME-и классикӣ"