Compare commits

...

464 Commits

Author SHA1 Message Date
Giovanni Campagna
142ac16b64 Bump version to 3.10.0
To go along GNOME Shell 3.10.0
2013-09-24 14:20:53 +02:00
Nilamdyuti Goswami
ff65aaece2 Assamese translation updated 2013-09-24 14:28:55 +05:30
Yuri Myasoedov
43b6e9694f Updated Russian translation 2013-09-24 12:21:19 +04:00
Baurzhan Muftakhidinov
b5b9a8e072 Update Kazakh translation 2013-09-24 06:34:56 +06:00
Fran Diéguez
424de06404 Updated Galician translations 2013-09-23 22:21:08 +02:00
Matej Urbančič
2d36a31f33 Updated Slovenian translation 2013-09-23 21:17:04 +02:00
Piotr Drąg
0374a1a320 Updated Polish translation 2013-09-23 20:37:54 +02:00
Kenneth Nielsen
b4385ea7a6 Updated Danish translation 2013-09-23 19:34:38 +02:00
Andika Triwidada
e9bc16b34d Updated Indonesian translation 2013-09-23 21:27:17 +07:00
Alexandre Franke
651018abe7 Update French translation 2013-09-23 15:37:11 +02:00
Petr Kovar
dbc3429e05 Update Czech translation 2013-09-23 15:08:06 +02:00
Daniel Mustieles
a0507b957f Updated Spanish translation 2013-09-23 14:31:36 +02:00
Rafael Ferreira
7e59afeaca Updated Brazilian Portuguese translation 2013-09-23 07:36:29 -03:00
Victor Ibragimov
06e90b6c76 Tajik translation updated 2013-09-23 15:32:14 +05:00
Milo Casagrande
5970e29355 [l10n] Updated Italian translation. 2013-09-23 12:25:39 +02:00
Yosef Or Boczko
77088b0404 Updated Hebrew translation
Signed-off-by: Yosef Or Boczko <yoseforb@gmail.com>
2013-09-23 13:23:40 +03:00
Frédéric Péters
9214e47f73 typo fix 2013-09-23 12:19:06 +02:00
Frédéric Péters
01f39bdae5 add missing translation markers 2013-09-23 12:17:33 +02:00
Andika Triwidada
cfc0ed6ab6 Updated Indonesian translation 2013-09-23 09:42:30 +07:00
Dmitriy S. Seregin
9c22a5f894 Updated Russian translation 2013-09-22 20:35:33 +04:00
Rūdolfs Mazurs
de315e7897 Updated Latvian translatio 2013-09-21 22:51:06 +03:00
Matej Urbančič
853704c509 Updated Slovenian translation 2013-09-21 20:27:15 +02:00
Daniel Korostil
23c0d0a61f Updated Ukrainian 2013-09-21 12:23:02 +03:00
Timo Jyrinki
bf139e7636 Finnish translation update 2013-09-20 21:33:06 +03:00
Aurimas Černius
13201a5c76 Updated Lithuanian translation 2013-09-20 21:23:09 +03:00
Priit Laes
261120dc4b Add Estonian (et) to LINGUAS 2013-09-20 09:53:29 +03:00
Mattias Põldaru
09f43d4f84 [l10n] Updated Estonian translation 2013-09-20 09:52:18 +03:00
Chao-Hsiung Liao
0590b9123d Updated Traditional Chinese translation(Hong Kong and Taiwan) 2013-09-20 13:44:43 +08:00
Fernando Carvalho
e271231e77 Updated Portuguese translation 2013-09-18 23:55:51 +01:00
A S Alam
8b97f068c7 Punjabi Translation updated by Aman 2013-09-17 22:16:28 -05:00
Ask H. Larsen
a5344e3fe0 Updated Danish translation 2013-09-17 18:40:55 +02:00
Nilamdyuti Goswami
096fff8b3f Assamese translation updated 2013-09-17 16:06:33 +05:30
Giovanni Campagna
caa9d6e423 Bump version to 3.9.92
To go along GNOME Shell 3.9.92
2013-09-17 10:54:49 +02:00
Giovanni Campagna
65bec3cdb1 apps-menu: fix for gnome-shell master
PopupMenu.isEmpty() only checks for regular menu items, which
the application menu doesn't use, so we need a fake implementation.
2013-09-17 10:52:03 +02:00
Giovanni Campagna
d060657bf4 systemMonitor: update for gnome-shell master
Reparent the message tray menu button so that the indicators
don't cover it.
2013-09-17 10:51:34 +02:00
Dimitris Spingos
342dd7c64d Updated Greek translation 2013-09-16 22:27:19 +03:00
Yosef Or Boczko
011860b476 Updated Hebrew translation 2013-09-16 22:17:17 +03:00
Inaki Larranaga Murgoitio
31c459304e Updated Basque language 2013-09-16 21:00:15 +02:00
Marek Černocký
604d280c8c Updated Czech translation 2013-09-16 19:46:06 +02:00
Daniel Mustieles
d9c00ab646 Updated Spanish translation 2013-09-16 13:25:51 +02:00
Victor Ibragimov
756d3c74e8 Tajik translation updated 2013-09-16 15:17:20 +05:00
Milo Casagrande
c368d8d968 [l10n] Updated Italian translation. 2013-09-16 09:01:39 +02:00
Reinout van Schouwen
f33087d2ad Updated Dutch translation 2013-09-15 22:20:15 +02:00
Benjamin Steinwender
25e5ddf17c Updated German translation 2013-09-15 21:35:20 +02:00
Changwoo Ryu
9811636e3c Updated Korean translation 2013-09-16 03:26:02 +09:00
Fran Diéguez
16379e2233 Updated Galician translations 2013-09-15 17:23:22 +02:00
Baurzhan Muftakhidinov
6e5cbec7a0 Initial Kazakh translation 2013-09-15 14:31:28 +06:00
Peter Mráz
5901738896 Updated slovak translation 2013-09-15 10:24:16 +02:00
Enrico Nicoletto
b3829b0359 Updated Brazilian Portuguese translation 2013-09-14 21:58:04 -03:00
Piotr Drąg
6ed8b84368 Updated Polish translation 2013-09-15 02:43:12 +02:00
Piotr Drąg
23981289d5 Fix a translatable string
So the old gettext would pick it up. Not a string freeze break.
2013-09-15 02:43:12 +02:00
Kris Thomsen
2d0142426a Updated Danish translation 2013-09-13 22:20:55 +02:00
Changwoo Ryu
b4b989be0b Updated Korean translation 2013-09-14 04:35:21 +09:00
Gabor Kelemen
e7e62f5c8e Updated Hungarian translation 2013-09-12 16:05:41 +02:00
Jiro Matsuzawa
17663f5f20 apps-menu: Respect user's favorite apps order
https://bugzilla.gnome.org/show_bug.cgi?id=704248
2013-09-12 07:14:48 +09:00
victory
c1fead9dad l10n: Update Japanese translation 2013-09-11 23:32:03 +09:00
Rūdolfs Mazurs
caba979752 Updated Latvian translation 2013-09-10 21:48:05 +03:00
Nilamdyuti Goswami
addd62bef9 Assamese Translation Updated 2013-09-10 20:51:21 +05:30
Khaled Hosny
06f85e842a Update Arabic translation 2013-09-09 23:22:34 +02:00
Khaled Hosny
f625ae110f Typo 2013-09-09 23:18:36 +02:00
sanad
54c4e1ca96 Update Arabic translation 2013-09-09 23:17:56 +02:00
A S Alam
a0e9e49914 Punjabi Translation updated by Aman 2013-09-09 14:13:38 -05:00
Kjartan Maraas
00a133a314 Updated Norwegian bokmål translation 2013-09-08 19:51:26 +02:00
Giovanni Campagna
cccd46b513 window-list: insist more that the indicators should be at the very right end
The new box layout is just annoying...
2013-09-05 10:30:20 +02:00
Stas Solovey
8e1db160ca Updated Russian translation 2013-09-05 09:55:00 +04:00
Timo Jyrinki
9b516aa0d9 Finnish translation update 2013-09-04 11:02:28 +03:00
Мирослав Николић
ec5d03d754 Updated Serbian translation 2013-09-04 06:33:10 +02:00
Shantha kumar
987f67f288 Tamil Translations Updated 2013-09-03 16:05:43 +05:30
Shantha kumar
ea18bd7cdb Tamil Translations Updated 2013-09-03 16:03:03 +05:30
Giovanni Campagna
fd030fa52f Bump version to 3.9.91
To go along GNOME Shell 3.9.91
2013-09-03 10:38:15 +02:00
Giovanni Campagna
01f168341f windowsNavigator: update for gnome-shell changes 2013-09-03 10:36:31 +02:00
Giovanni Campagna
ec8f269107 window-list: fix regression from StBoxLayout refactoring
Make sure that the workspace indicator is always packed at the
end of the window list
2013-09-03 10:34:13 +02:00
Benjamin Steinwender
2b45617d6a Updated German translation 2013-09-01 00:49:51 +02:00
Chao-Hsiung Liao
37f24a88de Updated Traditional Chinese translation(Hong Kong and Taiwan) 2013-08-29 21:55:39 +08:00
Dušan Kazik
88b1bf8964 Updated slovak translation 2013-08-27 21:45:52 +02:00
Aurimas Černius
5f639ec972 Updated Lithuanian translation 2013-08-26 22:59:35 +03:00
Allan Day
d8cef9d6f5 tweak the system menu theme
https://bugzilla.gnome.org/show_bug.cgi?id=706666
2013-08-26 18:00:45 +02:00
Giovanni Campagna
d4845f3e24 classic: update the theme for 3.9.90
Fix the colors in the system menu elements.

https://bugzilla.gnome.org/show_bug.cgi?id=706666
2013-08-26 17:59:53 +02:00
Giovanni Campagna
5b021256c9 classic: update the session mode for 3.9.90
The status menus were consolidated into the aggregate menu.

https://bugzilla.gnome.org/show_bug.cgi?id=706666
2013-08-26 14:58:42 +02:00
Enrico Nicoletto
806f345e51 Updated Brazilian Portuguese translation 2013-08-26 00:34:49 -03:00
Milo Casagrande
f47133f897 [l10n] Updated Italian translation. 2013-08-25 17:33:49 +02:00
Reinout van Schouwen
67b84f8cf0 Initial Dutch translation 2013-08-24 14:17:08 +02:00
Piotr Drąg
32ed396ebf Updated Polish translation 2013-08-23 00:52:16 +02:00
Giovanni Campagna
85c7fa6483 Bump version to 3.9.90
To go along GNOME Shell 3.9.90
2013-08-22 10:06:36 +02:00
Andika Triwidada
d0c17d038d Updated Indonesian translation 2013-08-21 17:31:44 +07:00
Fran Diéguez
cc91b26ed3 Updated Galician translations 2013-08-21 00:47:40 +02:00
Giovanni Campagna
7decfe92c9 <name> should match repository's name.
Andrea's been patching every module in GNOME for this, let's make
his life easier.
2013-08-21 00:06:58 +02:00
Matej Urbančič
ff0e0205ef Updated Slovenian translation 2013-08-19 21:54:02 +02:00
Victor Ibragimov
6a493a3eea Tajik translation updated 2013-08-19 23:52:05 +05:00
Marek Černocký
103ec6d43f Updated Czech translation 2013-08-19 15:01:04 +02:00
Daniel Mustieles
a47ff4a54e Updated Spanish translation 2013-08-19 11:44:01 +02:00
Florian Müllner
f1f16f262b window-list: Add context menu
gnome-panel's window list had context menus on buttons, that gave
easy access to common operations like close, minimize and maximize.
Add something similar to the window-list.

https://bugzilla.gnome.org/show_bug.cgi?id=699251
2013-08-19 10:21:23 +02:00
Piotr Drąg
db3800500c Updated POTFILES.in 2013-08-18 22:07:07 +02:00
Giovanni Campagna
63653406a3 Update all extensions for gnome-shell 3.9.90
addActor() gone from PopupBaseMenuItem, arrows in menus,
SystemStatusButton gone.
The auto-move-windows cleanup is probably older, weird noone
noticed before.

Anyway, I need a pitch fork.
2013-08-18 22:01:35 +02:00
Giovanni Campagna
e2b2f125b4 Remove the xrandr extension
This can't work without a significant rework (because we can't
use GnomeRR in the mutter process, now that's DBus API implemented
by mutter itself, and the monitor config API is private to mutter
for now), and I doubt it's really useful to anyone.
Also, we have an orientation lock button, which kind of serves
a similar purpose
2013-08-18 19:28:34 +02:00
Matej Urbančič
373bc5e709 Updated Slovenian translation 2013-08-17 16:54:03 +02:00
Fabio Tomat
9d80df7a6d Added Friulian language 2013-08-15 12:11:16 +02:00
Fabio Tomat
c79d0b9d52 Added Friulian translation 2013-08-15 12:10:53 +02:00
Nishio Futoshi
282cd8564a l10n: Update Japanese translation 2013-08-11 09:53:43 +09:00
tuhaihe
6f184424d9 Update Chinese simplified translation 2013-08-03 22:11:10 +08:00
Chao-Hsiung Liao
1aed1799a0 Updated Traditional Chinese translation(Hong Kong and Taiwan) 2013-08-02 10:51:23 +08:00
Gabor Kelemen
3a58e0c12f Updated Hungarian translation by Attila Hammer <hammera at pickup dot hu> 2013-07-31 21:54:19 +02:00
Yaron Shahrabani
19b61be6a6 Updated Hebrew translation. 2013-07-31 12:24:05 +03:00
Giovanni Campagna
79055cf7a0 Bump version to 3.9.5
To go along GNOME Shell 3.9.5

And fix distcheck at the same time.
2013-07-30 15:34:13 +02:00
Giovanni Campagna
2e5d8c7384 Fix a number of undeclared variable warnings
"for (prop in object)" needs a "var prop" before, or it declares
a global property.
2013-07-30 13:23:47 +02:00
Giovanni Campagna
1d6f85c8f4 apps-menu: update to work with gnome-shell master
The span parameter was removed from the PopupMenuItem API.
2013-07-30 13:20:33 +02:00
Giovanni Campagna
fb8ad70db6 Remove alternative-status-menu extension
As part of the new unified status menu, the old status menu
was reworked considerably in 3.9.5, and the extension as it
was written does not make sense.
If hibernation is needed, it should be added (through another
extension) in the shutdown dialog.
2013-07-30 13:17:00 +02:00
Nilamdyuti Goswami
f67db2a2af Added Assamese LINGUAS 2013-07-29 13:10:41 +05:30
Nilamdyuti Goswami
13c3512ed0 Assamese translation updated 2013-07-29 13:08:57 +05:30
Yuri Myasoedov
71f19d8391 Updated Russian translation 2013-07-27 15:41:39 +04:00
Emmanuele Bassi
7173fa9e9e Revert "Added Assamese to LINGUAS"
This reverts commit e71d48853d.

The Assamese PO file does not exist in the repository. It should be
committed before modifying the LINGUAS file, to avoid breaking the
build.
2013-07-26 11:08:23 +01:00
Nilamdyuti Goswami
e71d48853d Added Assamese to LINGUAS 2013-07-26 15:30:45 +05:30
Sweta Kothari
f5c8ddf6cd Added gu in LINGUAS file 2013-07-19 14:31:20 +05:30
Sweta Kothari
55d80ea091 Updated Gujarati Translations 2013-07-19 14:18:27 +05:30
Milo Casagrande
66d4b0adc4 [l10n] Updated Italian translation. 2013-07-19 09:34:12 +02:00
Giovanni Campagna
1673dc6e9b Bump version to 3.9.4
To go along GNOME Shell 3.9.4
2013-07-18 12:45:07 +02:00
Anish A
6105afed0d Updated Malayalam Translation 2013-07-17 21:06:17 +05:30
Giovanni Campagna
ae9df9f001 user-theme: look for gnome-shell themes in ~/.local/share too
Just like we look in XDG_DATA_DIRS, we should honor XDG_DATA_HOME
as well.
For compatibility reasons, we look in ~/.themes first, then ~/.local/share,
then /usr/share.
2013-07-14 15:19:14 +02:00
tuhaihe
05e42a4b95 update Simplified Chinese (zh_CN) translation 2013-07-12 21:12:14 +08:00
Benjamin Steinwender
9e5079bd83 Updated German translation 2013-07-08 17:23:34 +02:00
Trần Ngọc Quân
b408fc4d17 Updated Vietnamese translation 2013-07-06 18:23:13 +07:00
Nguyễn Thái Ngọc Duy
0c6825d2c5 po/vi: import from Damned Lies 2013-07-06 18:21:03 +07:00
Giovanni Campagna
6fbc63e9e6 alternative-status-menu: unpack the result of CanHibernate
The DBus call yields a GVariant, which we need to unpack to
obtain the JS value to compare.

https://bugzilla.gnome.org/show_bug.cgi?id=702300
2013-07-04 16:51:35 +02:00
Giovanni Campagna
a2f14c57c5 apps-menu: don't store the hot corner at creation
HotCorners become invalid when the xrandr configuration changes,
so instead of storing it fetch it directly from layoutManager when
needed.

https://bugzilla.gnome.org/show_bug.cgi?id=702038
2013-07-04 16:06:24 +02:00
Andika Triwidada
e03343d4a8 Updated Indonesian translation 2013-07-04 18:35:01 +07:00
Rafael Ferreira
9df6831f64 Updated Brazilian Portuguese translation 2013-06-30 08:58:07 -03:00
Giovanni Campagna
b82400cd66 Bump version to 3.9.3
To go along GNOME Shell 3.9.3
2013-06-18 21:39:29 +02:00
Giovanni Campagna
858e67d33e systemMonitor: don't propagate clicks up
Otherwise you get gnome-system-monitor and a message tray menu.
2013-06-18 21:36:41 +02:00
Giovanni Campagna
b66824c500 xrandr-indicator: fix syntax error
It shows the level of testing or usefulness this extension has...
2013-06-18 21:36:10 +02:00
Giovanni Campagna
76713a74be places-menu: null-check g_volume_get_identifier()
Not all volumes have the 'class' identifier (for example MTP doesn't),
and we can't apply indexOf on null.
2013-06-17 21:42:15 +02:00
Kjartan Maraas
c92c2fa6b9 Updated Norwegian bokmål translation 2013-06-17 12:30:23 +02:00
Victor Ibragimov
c436598ba6 Tajik translation updated 2013-06-16 23:37:13 +05:00
Piotr Drąg
9dbf937d0f Updated POTFILES.in 2013-06-15 18:55:44 +02:00
Daniel Mustieles
daf081619e Updated Spanish translation 2013-06-13 11:25:28 +02:00
Daniel Mustieles
2b332d70f0 Updated Spanish translation 2013-06-13 11:25:21 +02:00
Fran Diéguez
18f6d63790 Updated Galician translations 2013-06-10 10:25:19 +02:00
Jeremy Bicha
85038e2f56 classic: Drop IsRunnableHelper
https://bugzilla.gnome.org/show_bug.cgi?id=701886
2013-06-08 20:24:34 -04:00
Piotr Drąg
f01018a063 Updated Polish translation 2013-06-08 21:06:36 +02:00
Wepmaschda
64d76fef6a adapt native-window-placement to 3.9 changes
* remove unnecessary chromeHeight that breaks the system
* copy original _updateWindowPositions from 3.9
* use nativeWindowPlacement in update function
* tidy up NaturalWindowPlacement function

https://bugzilla.gnome.org/show_bug.cgi?id=699054
2013-06-08 18:47:02 +02:00
Wepmaschda
80082fdfcb make windowCaptionsOnTop working again
* changed positionWindows() to relayout()
* additionally marked the difference to the original relayout() function.

https://bugzilla.gnome.org/show_bug.cgi?id=699054
2013-06-08 18:47:02 +02:00
Wepmaschda
2396490d1e reduce gnome-shell modifications
* use original realPositionWindows() and map _computeAllWindowSlots() to our function (_calculateWindowTransformationsNatural()).
* adapted _calculateWindowTransformationsNatural() to _computeAllWindowSlots()' behaviour

https://bugzilla.gnome.org/show_bug.cgi?id=699054
2013-06-08 18:47:02 +02:00
Marek Černocký
0c47e96a3b Updated Czech translation 2013-06-08 07:50:10 +02:00
Florian Müllner
0ffaf62c4c classic: Replace mini-extensions with mode-specific overridesSchema
Some default values differ between classic and normal sessions. We
used to implement this by overriding the shell's default values in
mini-extensions (or more precisely: reversing the shell's overrides).
Use a mode-specific overridesSchema instead, which has the advantage
that settings defaults will not change unexpectedly when extensions
are disabled/enabled (for instance during screen locks).

https://bugzilla.gnome.org/show_bug.cgi?id=701717
2013-06-08 00:47:30 +02:00
Jakub Steiner
6f572119d8 Style scrollbar in classic bubbles
https://bugzilla.gnome.org/show_bug.cgi?id=700485
2013-06-07 20:18:02 +02:00
Florian Müllner
505220f163 classic: Adjust popup menu slider style
https://bugzilla.gnome.org/show_bug.cgi?id=697917
2013-06-07 20:16:05 +02:00
Giovanni Campagna
24967c7cbe xrandr-indicator: stop processing RandR events when disabled
It's hard to tell people to disconnect their signals, when we
are the first to forget it...
2013-06-06 23:33:57 +02:00
Jorge Pérez Pérez
ee1c850f47 Added Aragonese translation 2013-06-05 22:05:14 +02:00
Dušan Kazik
fb0dcec005 Updated slovak translation 2013-06-05 20:52:19 +02:00
Dimitris Spingos
f5b2d17a4a Updated Greek translation 2013-06-05 08:14:28 +03:00
Kjartan Maraas
dca43009b3 Updated Norwegian bokmål translation 2013-06-02 01:37:57 +02:00
Victor Ibragimov
08b5f5fe82 Tajik translation added 2013-06-01 00:01:53 +05:00
Fran Diéguez
16e0d467f8 Updated Galician translations 2013-05-31 01:17:06 +02:00
Giovanni Campagna
5e10182f94 Bump version to 3.9.2
To go along GNOME Shell 3.9.2
2013-05-28 20:09:11 +02:00
Giovanni Campagna
ae244569ef alternative-status-menu: take GSettings in consideration for item visibility
Seems this was lost at some point.
2013-05-24 19:15:30 +02:00
Florian Müllner
292a48073a apps-menu: Add some padding to ScrollView
In case the scroll bar is visible, is is currently positioned at
the very edge of the popup, which looks fairly bad; so add some
minimal padding.

https://bugzilla.gnome.org/show_bug.cgi?id=700852
2013-05-22 19:40:02 +02:00
Giovanni Campagna
274a6f040c Update descriptions of extensions
Mark classic mode extensions as such, so bug reports don't go
lost in my inbox.
2013-05-20 19:06:59 +02:00
Мирослав Николић
aaacd3dba4 Updated Serbian translation 2013-05-14 18:51:11 +02:00
Florian Müllner
45767c93d5 window-list: Make bottom panel taller in classic mode
Consider additional borders in classic styling for the panel height.

https://bugzilla.gnome.org/show_bug.cgi?id=698169
2013-05-13 22:01:01 +02:00
Giovanni Campagna
6094c21634 Bump version to 3.9.1
To go along GNOME Shell 3.9.1
2013-05-01 00:46:47 +02:00
Giovanni Campagna
5052c6d350 windowsNavigator: update for gnome-shell changes
The position of a workspace is not part of a geometry object.
2013-05-01 00:45:06 +02:00
Florian Müllner
f38d61b4c9 window-list: Use notify::n-workspaces to recreate workspace menu
When the number of workspaces changes, we clear the existing menu
and recreate it based on the screen::n-workspaces property, so it
is slightly more correct to track changes to the property directly
instead of using the workspace-added/workspace-removed signals.
This change also fixes a corner case, where changes to the property
before workspaces are initialized are missed and we end up with the
wrong number of workspaces.

https://bugzilla.gnome.org/show_bug.cgi?id=699350
2013-04-30 21:54:05 +02:00
Florian Müllner
8ba3bedd20 workspace-indicator: Adjust to PopupMenu API change
setShowDot() has become setOrnament()

https://bugzilla.gnome.org/show_bug.cgi?id=699335
2013-04-30 17:49:49 +02:00
Florian Müllner
d903f1f15b xrandr-indicator: Adjust to PopupMenu API change
setShowDot() has become setOrnament()

https://bugzilla.gnome.org/show_bug.cgi?id=699335
2013-04-30 17:49:49 +02:00
Florian Müllner
8628addfc9 window-list: Adjust to PopupMenu API change
setShowDot() has become setOrnament().

https://bugzilla.gnome.org/show_bug.cgi?id=699335
2013-04-30 17:49:48 +02:00
Aurimas Černius
27b5178646 Updated Lithuanian translation 2013-04-27 23:40:52 +03:00
Matej Urbančič
6b2fa94f5a Updated Slovenian translation 2013-04-21 08:26:05 +02:00
Marek Černocký
174ffc05f2 Updated Czech translation 2013-04-20 15:37:04 +02:00
Piotr Drąg
8ba1cc7c9d Updated Polish translation 2013-04-19 21:14:04 +02:00
Daniel Mustieles
20e164fb39 Updated Spanish translation 2013-04-18 13:12:37 +02:00
Rafael Ferreira
568f63917a Updated Brazilian Portuguese translation 2013-04-16 22:43:15 -03:00
Giovanni Campagna
e2a2f12c10 Bump version to 3.8.1
To follow the 3.8.1 stable release of GNOME
2013-04-16 22:08:26 +02:00
Giovanni Campagna
c1bc688a5c WindowList: add a workspace switching menu
Import a copy of the workspace indicator extension, to have it
in the bottom panel.

https://bugzilla.gnome.org/show_bug.cgi?id=694914
2013-04-16 22:00:39 +02:00
Florian Müllner
360ba43579 window-list: Add support for AUTO grouping
In addition to "always" and "never", gnome-panel supported an "auto"
grouping mode, which only started to group items when running out of
available space. It makes sense for us to support the same option in
the window-list extension, so implement it.

https://bugzilla.gnome.org/show_bug.cgi?id=697157
2013-04-16 20:05:27 +02:00
Florian Müllner
1a41b639ef window-list: Don't rely solely on -st-natural-width
-st-natural-width is useful to request a larger-than-usual width,
add back the max-width removed in commit 702cf52cfc to also request
a smaller-than-usual width as necessary.
2013-04-16 20:05:26 +02:00
Florian Müllner
4ebd46c9f0 classic: Style startup spinner differently in classic mode
https://bugzilla.gnome.org/show_bug.cgi?id=693688
2013-04-16 19:28:12 +02:00
Florian Müllner
702cf52cfc window-list: Fill max-width if possible
Items in the window list should take up a fixed amount of space
unless the list is full and items need to shrink. To achieve this,
replace the max-width with the newly added -st-natural-width.

https://bugzilla.gnome.org/show_bug.cgi?id=695392
2013-04-16 18:10:16 +02:00
Matthias Clasen
689dda0515 Revert "window-list: add a workspace switcher"
This reverts commit f86f09955b.

Pushed by accident.
2013-04-08 20:25:33 -04:00
Matthias Clasen
db0b1af99a classic: Tweak separator colors
The previous commit made them too prominent, so tone it down.
2013-04-08 20:21:52 -04:00
Matthias Clasen
cdbb94ccbf classic: Improve menu separators
These were barely showing up in white-on-light-gray, so
turn them dark.

https://bugzilla.gnome.org/show_bug.cgi?id=697596
2013-04-08 19:35:53 -04:00
Giovanni Campagna
f86f09955b window-list: add a workspace switcher
This is the most basic version of a workspace switcher, taken from
Frippery Bottom Panel and adapted. It handles clicks and scrolls,
and does not show window thumbnails or shapes.
Note that, differently from the frippery version, it won't change
the workspace layout, and actually assume a linear vertical layout,
which is then shown horizontally. This is to keep compatibility
with the overview, which uses a vertical layout.

https://bugzilla.gnome.org/show_bug.cgi?id=694914
2013-04-08 10:19:26 -04:00
Милош Поповић
58c36bd719 Small fix in Serbian translation 2013-04-08 15:35:27 +02:00
Florian Müllner
46a216853f window-list: Update icons on icon theme changes
https://bugzilla.gnome.org/show_bug.cgi?id=697400
2013-04-07 21:11:31 +02:00
Florian Müllner
25be4d60b4 app-menu: Update icons on icon theme changes
https://bugzilla.gnome.org/show_bug.cgi?id=697400
2013-04-07 21:11:31 +02:00
Florian Müllner
94941843e3 apps-menu: Allow for keynav between categories/applications
PanelMenu.Button listens to key-press-events on the corresponding
menu to move focus to neighboring buttons on left/right arrow. In
order to allow keynav from the category list on the left to the
application list on the right and vice-versa, we may need to suppress
the parent behavior depending on the currently focused actor, so
overwrite the signal handler accordingly.

https://bugzilla.gnome.org/show_bug.cgi?id=693074
2013-04-07 21:11:31 +02:00
Rui Matos
6adeed4e60 window-list: Fix preferences radio buttons not reflecting the setting
When setting GtkRadioButton's group property, its active property is
also set as a by-product. This means that setting these properties
isn't commutative which arguably is a bug in gtk+ but one that we can
easily work around by just switching the order here.

https://bugzilla.gnome.org/show_bug.cgi?id=697495
2013-04-07 21:00:51 +02:00
Florian Müllner
a97d08a2d2 window-list: Set metaWindow for single-window items when grouped
When grouping is enabled, items that are only have a single window
associated are still expected to behave like ungrouped items.
This includes activating windows by DND, which uses the metaWindow
property on the hovered actor's _delegate, so make sure it is set
on AppButtons in single-window mode as well.

https://bugzilla.gnome.org/show_bug.cgi?id=693561
2013-04-04 18:09:46 +02:00
Florian Müllner
91aa1cfbc0 window-list: Activate window on hover during drag operations
Reimplement the common task list behavior of activating windows
when hovering over a task list item during a drag operation.

https://bugzilla.gnome.org/show_bug.cgi?id=693561
2013-04-04 18:09:46 +02:00
Jakub Steiner
e6e31c16b7 make submenus "fit in" for classic
https://bugzilla.gnome.org/show_bug.cgi?id=696960
2013-04-04 16:59:37 +02:00
Debarshi Ray
802c70e14c apps-menu: Improve submenu navigation
Implement a keep-up triangle to keep submenus from changing if the
pointer strays a bit when mousing towards the application list on the
right. The keep-up triangle is only used if the mouse movement is more
horizontal than vertical.

This is similar to the behaviour of GtkMenu, but much more simple
because we are only dealing one specific kind of menu, and hence don't
need to be as generic.

https://bugzilla.gnome.org/show_bug.cgi?id=692913
2013-04-04 14:41:07 +02:00
Giovanni Campagna
d212a2f26d WindowList: fix behavior on fullscreen
LayoutManager will take care of our visibility, but we need to
adjust the message tray anchor point manually. Also, we must not
show ourselves when coming out of the overview if we're in fullscreen.

https://bugzilla.gnome.org/show_bug.cgi?id=696929
2013-04-02 23:05:57 +02:00
Changwoo Ryu
fb77156c88 Updated Korean translation 2013-03-28 02:57:09 +09:00
Fran Diéguez
bfd94b7ae1 Updated Galician translations 2013-03-26 12:51:33 +01:00
Giovanni Campagna
a6016db862 Bump version to 3.8.0
To go along GNOME Shell 3.8.0
2013-03-25 23:27:36 +01:00
Jiro Matsuzawa
01d6a469a1 l10n: Update Japanese translation 2013-03-25 17:08:09 +09:00
Ville-Pekka Vainio
4a60bec60c Finnish translation update by Jiri Grönroos 2013-03-21 22:40:49 +02:00
Gabor Kelemen
8d4db767d4 Updated Hungarian translation 2013-03-21 00:49:37 +01:00
Milo Casagrande
916d9d963f [l10n] Updated Italian translation. 2013-03-20 10:05:56 +01:00
Giovanni Campagna
39a7434569 Bump version to 3.7.92
To go along GNOME Shell 3.7.92
2013-03-19 07:19:51 +01:00
Mario Blättermann
7aeba983e1 [l10n] Updated German translation 2013-03-15 19:23:23 +01:00
Rafael Ferreira
89830470f1 Updated Brazilian Portuguese translation 2013-03-10 22:25:05 -03:00
Florian Müllner
8688596e80 window-list: Fix updating message tray anchor
After recent overview changes, we may end up with the message tray
showing partially in the overview when the window-list extension
is enabled. Adjusting the anchor explicitly when entering/leaving
the overview fixes the issue, requiring less code.

https://bugzilla.gnome.org/show_bug.cgi?id=695390
2013-03-08 14:08:01 +01:00
Florian Müllner
0bd8966115 window-list: connect_after() to 'window-added'
We switched from using the window icon to using the associated
application's icon; however when we create the window list item
from a handler to the 'window-added' signal, the association of
window and application might not exist yet, as WindowTracker uses
the same signal to create the association. Use connect_after()
for creating the window list item to make sure that WindowTracker's
signal handler has run already.

https://bugzilla.gnome.org/show_bug.cgi?id=695389
2013-03-08 14:08:00 +01:00
Matej Urbančič
9bf13353a8 Updated Slovenian translation 2013-03-07 21:56:58 +01:00
Florian Müllner
8305ef3b98 app-menu: Fix non-fallback hot corners
Commit 2d1d812474 fixed handling of hot corners for the fallback
case, but broke the menu completely for the non-fallback case.

https://bugzilla.gnome.org/show_bug.cgi?id=695373
2013-03-07 18:01:43 +01:00
Yuri Myasoedov
3b6446f33a Updated Russian translation 2013-03-07 09:32:29 +04:00
Florian Müllner
dda3512769 Bump version to 3.7.91
To go along GNOME Shell 3.7.91
2013-03-05 00:50:46 +01:00
Giovanni Campagna
2d1d812474 apps-menu: update for gnome-shell changes
HotCorner handling was broken once again...
2013-03-04 23:35:32 +01:00
Giovanni Campagna
c70b152628 apps-menu: don't load subdirectories as separate categories
Directories that are not immediate children of the root should be merged
in the parent, to preserve the flat structure and to be consistent with
the Activities overview.

https://bugzilla.gnome.org/show_bug.cgi?id=693241
2013-03-04 23:30:11 +01:00
Florian Müllner
040c106c7b window-list: Always use ShellApp icon rather than _NET_WM_ICON
We currently use the application icon for items that are grouped
by application and the window icon otherwise. However with the
icon property being unused anywhere else in GNOME3, applications
have started to not set any window icon at all.
Rather than complaining to application authors, switch to using
the app icon everywhere, which improves consistency with the rest
of GNOME3 anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=694850
2013-03-02 20:58:15 +01:00
tuhaihe
f46627b624 Update Simplified Chinese translation 2013-02-28 21:02:48 +08:00
Aurimas Černius
0a1f7e725c Updated Lithuanian translation 2013-02-27 23:10:03 +02:00
Florian Müllner
7b07fd9656 launch-new-instance: Adjust for AppWellIcon -> AppIcon change
https://bugzilla.gnome.org/show_bug.cgi?id=694555
2013-02-24 08:55:25 +01:00
Giovanni Campagna
48bfe6dc1e Bump version to 3.7.90
To go along GNOME Shell 3.7.90
2013-02-20 20:47:34 +01:00
Мирослав Николић
f380f527d0 Updated Serbian translation 2013-02-20 12:20:52 +01:00
Giovanni Campagna
5c9292aae3 build: install NEWS inside each zip file
In case users want to know what changed between each version.
2013-02-19 23:33:06 +01:00
Giovanni Campagna
ab3d3ce41b alternative-status-menu: update for gnome-shell changes
We use a logind inhibitor now, so we don't need to lock the screen before
calling logind. Also, the UPower path was removed, and suspension is not
available for ConsoleKit.

Sorry, Ubuntu users!
2013-02-19 23:33:06 +01:00
Giovanni Campagna
c3796b2b19 places-menu: sort special directories like nautilus does
Place Home first, then show the others in alphabetical order.

https://bugzilla.gnome.org/show_bug.cgi?id=693242
2013-02-19 23:21:06 +01:00
Giovanni Campagna
e5ae9e7110 apps-menu: update for gnome-shell changes
After the stage hierarchy handling moved to LayoutManager, HotCorner
wants the layoutManager instance as a parameter.
2013-02-19 23:21:06 +01:00
Marek Černocký
5c91a2867d Updated Czech translation 2013-02-17 09:22:01 +01:00
Giovanni Campagna
2f5c095f7a places-menu: show the computer pretty name for the file system root
As Nautilus does, query hostnamed for the pretty hostname and watch
for changes.
If hostnamed is not available, we just show Computer, as before.

https://bugzilla.gnome.org/show_bug.cgi?id=693240
2013-02-13 22:43:21 +01:00
Florian Müllner
95b0d72e04 classic-theme: Fix top bar style in (un)lock screen
The top bar should be translucent/transparent on the (un)lock screen,
even in classic mode.

https://bugzilla.gnome.org/show_bug.cgi?id=693663
2013-02-12 18:34:37 +01:00
Daniel Mustieles
7fb52fa115 Updated Spanish translation 2013-02-11 14:38:02 +01:00
Matthias Clasen
5c6c81dd2b Drop the FallbackSession key from the classic mode
The gnome-fallback session does not exist anymore.
2013-02-09 23:24:07 -05:00
Matthias Clasen
ab45ec8ee7 Add nautilus-classic to the classic mode
Nautilus 3.7.5 ships a separate nautilus-classic.desktop file which
turns on icons on the desktop, regardless of the setting.
2013-02-09 23:24:06 -05:00
Debarshi Ray
b9fba54b9f apps-menu: Prevent the ApplicationMenuItem from becoming too wide
PopupMenu.PopupBaseMenuItem uses the natural width of its children to
set its own minimum and natural widths. We don't want that because
some of our children can be too wide. So, we override it.

We also set the span and expand parameters of the label to -1 and true
respectively. Otherwise we won't get to see the "...".

https://bugzilla.gnome.org/show_bug.cgi?id=693282
2013-02-09 21:35:21 +01:00
Debarshi Ray
f187f47cdd places-menu: Make 'network' volume handling more Nautilus-like
Currently we ended up ignore 'network' volumes that did not have a
mount associated with it. Instead we should behave like Nautilus and
still show them.

https://bugzilla.gnome.org/show_bug.cgi?id=693437
2013-02-09 21:33:51 +01:00
Debarshi Ray
c4a694337c places-menu: Fix a typo
https://bugzilla.gnome.org/show_bug.cgi?id=693432
2013-02-09 21:32:34 +01:00
Piotr Drąg
4103a228b2 Updated Polish translation 2013-02-08 15:41:39 +01:00
Debarshi Ray
da49c0d635 apps-menu: Clean up mark up handling and set label_actor
Get rid of fixMarkup, which turns & into &amp;, so that we need to
again set use_markup.

https://bugzilla.gnome.org/show_bug.cgi?id=693334
2013-02-08 13:29:44 +01:00
Debarshi Ray
c626cc2a1d apps-menu: Clean up code
The empty array is created and inserted into the hashtable before
every call to _loadCategory. No need to check for it and create it
again inside the function.

Don't mix up negated if conditions with continue while skipping stuff
that should not be displayed. Follow one style for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=693346
2013-02-08 13:24:25 +01:00
Jeremy Bicha
92ccfc0e0d build xz tarball by default instead of bz2
https://bugzilla.gnome.org/show_bug.cgi?id=693238
2013-02-06 08:24:37 -05:00
Jeremy Bicha
61ee59f083 places: Rename 'File System' to 'Computer' and capitalize 'Network'
The Nautilus sidebar calls it 'Computer' so we should too.
Use title case for "Browse Network"

https://bugzilla.gnome.org/show_bug.cgi?id=693240
2013-02-06 08:21:55 -05:00
Giovanni Campagna
7783e99842 Bump version to 3.7.5.1
Includes an important build fix
2013-02-06 12:11:42 +01:00
Jeremy Bicha
2397289568 build: Add theme_data to dist
Fixes gnome-shell-extensions build failure with tarball

https://bugzilla.gnome.org/show_bug.cgi?id=693239
2013-02-06 12:10:38 +01:00
Giovanni Campagna
edefa7b674 Bump version to 3.7.5
To go along GNOME Shell 3.7.5
2013-02-06 12:04:21 +01:00
Piotr Drąg
5392a50e98 Updated Polish translation 2013-02-06 02:07:40 +01:00
Piotr Drąg
fc5c7c8fda Updated POTFILES.in 2013-02-06 02:06:09 +01:00
Piotr Drąg
3c0d84469a Updated Polish translation 2013-02-06 02:03:41 +01:00
Florian Müllner
01542c3dc7 build: Fix distcheck 2013-02-05 20:21:20 +01:00
Florian Müllner
0aaa37c30f data: Add missing file
Commit 9b05c80f81 left out the actual stylesheet :(
2013-02-05 20:17:06 +01:00
Florian Müllner
a1c938d3d9 window-list: Add classic mode styling
Classic mode uses a distinct visual style, support this by shipping
a dedicated stylesheet.

https://bugzilla.gnome.org/show_bug.cgi?id=693171
2013-02-05 20:09:16 +01:00
Florian Müllner
f23197e09e window-list: Add a small preference UI
https://bugzilla.gnome.org/show_bug.cgi?id=693171
2013-02-05 20:09:11 +01:00
Florian Müllner
a4fe08d53d window-list: Add option for grouping windows by application
https://bugzilla.gnome.org/show_bug.cgi?id=693171
2013-02-05 20:09:00 +01:00
Florian Müllner
7e3b48da9d window-list: Factor out WindowTitle
https://bugzilla.gnome.org/show_bug.cgi?id=693171
2013-02-05 20:08:46 +01:00
Florian Müllner
b843058c18 window-list: New extension
https://bugzilla.gnome.org/show_bug.cgi?id=693171
2013-02-05 20:06:53 +01:00
Florian Müllner
9b05c80f81 Use different styling in classic mode
Classic mode should be visually distinct from the normal session,
so provide a mode-specific stylesheet which looks closer to the
familiar GNOME2 default theme.

https://bugzilla.gnome.org/show_bug.cgi?id=693169
2013-02-05 20:06:53 +01:00
Florian Müllner
3805054b25 apps-menu: Update to Shell API change 2013-02-05 18:32:49 +01:00
Giovanni Campagna
348f0faf22 windowsNavigator: fix a warning in disable() 2013-02-04 23:58:33 +01:00
Giovanni Campagna
b907e44fdf windowsNavigator: update for gnome-shell changes
Update for the new way to layout window overlays
2013-02-04 23:52:17 +01:00
Giovanni Campagna
032233cf9d native-window-placement: update for gnome-shell changes
Update to the new way to layout window overlays, which requires
setting a slot on the clone, and update to the new padding setting
for the window picker, including a custom style to avoid placing titles
outside the clip area.
2013-02-04 23:52:17 +01:00
Florian Müllner
443837e09d alternate-tab: Update to Shell API change
Main.KeybindingMode is now Shell.KeyBindingMode ...
2013-02-04 17:05:36 +01:00
Daniel Mustieles
7f1904a97c Updated Spanish translation 2013-02-01 10:48:51 +01:00
Marek Černocký
caaa544fd6 Updated Czech translation 2013-01-31 20:10:24 +01:00
Piotr Drąg
179b14ea4b Updated Polish translation 2013-01-31 18:05:29 +01:00
Debarshi Ray
9211fa4409 apps-menu: Replace it with a new version based on AxeMenu
This is a severely toned down version of the original AxeMenu:
 - the column on the left has been removed, because it duplicates
   functionality provided by the places-menu and the user menu
 - the application search functionality has been removed because it
   is already provided by vanilla gnome-shell
 - the "All" category ended up being too crowded and has been replaced
   by "Favorites", so there is no separate page for it any more

https://bugzilla.gnome.org/show_bug.cgi?id=692527
2013-01-30 16:15:32 +01:00
OKANO Takayoshi
edb8a65c78 [l10n] Update Japanese translation 2013-01-27 22:11:13 +09:00
Marek Černocký
fdd2fa09d7 Updated Czech translation 2013-01-22 09:35:59 +01:00
Florian Müllner
5d37b39ce5 places-menu: Design update
After review from the design team, the following changes were requested:
 - use a "Places" label instead of a symbolic icon in the top bar
   (as in GNOME 2)
 - move places icons in front of the name (as in Nautilus)
 - use menu separators between sections instead of section titles

https://bugzilla.gnome.org/show_bug.cgi?id=692027
2013-01-19 00:08:27 +01:00
Gabriel Rossetti
b673e1624a launch-new-instance: New extension
https://bugzilla.gnome.org/show_bug.cgi?id=692030
2013-01-18 23:36:29 +01:00
Florian Müllner
2b81d125cb classic: Move dateMenu to the right
With new items being added on the left, the top bar gets a little
crowded with the dateMenu at the center, so move it to its "classic"
position on the right.

https://bugzilla.gnome.org/show_bug.cgi?id=692016
2013-01-18 18:07:15 +01:00
Giovanni Campagna
31128e0dae Revert "Remove places-menu from the classic extensions"
This reverts commit f53d251a46.
Designs changed, and places-menu is back.
2013-01-18 18:04:35 +01:00
Giovanni Campagna
680e4e075a Bump version to 3.7.4
To go along GNOME Shell 3.7.4
2013-01-15 16:07:44 +01:00
Мирослав Николић
dd3349bf6d Updated Serbian translation 2013-01-08 20:16:47 +01:00
Giovanni Campagna
f53d251a46 Remove places-menu from the classic extensions
It is not part of the designed traditional experience.
2013-01-08 18:30:12 +01:00
Giovanni Campagna
80b4f108df Add a separate configure option for classic mode datafiles
Ubuntu wants to install classic mode files but still tweak the set of
built extensions.

https://bugzilla.gnome.org/show_bug.cgi?id=690799
2013-01-03 01:23:37 +01:00
Balázs Úr
df2e1e6217 Updated Hungarian translation 2013-01-01 16:05:56 +01:00
Rafael Ferreira
292661d943 Updated Brazilian Portuguese Translation 2012-12-31 02:42:26 -02:00
Fran Diéguez
c978057d3a Updated Galician translations 2012-12-27 00:52:50 +01:00
Khaled Hosny
8034b65f46 Update Arabic translation 2012-12-24 12:46:34 +02:00
Aurimas Černius
c1c9f280d8 Updated Lithuanian translation 2012-12-20 22:41:06 +02:00
Giovanni Campagna
e179ab72fc Bump version to 3.7.3
To go along GNOME Shell 3.7.3
2012-12-18 21:20:58 +01:00
Yuri Myasoedov
11e8f2832c Updated Russian translation 2012-12-17 09:16:13 +04:00
Florian Müllner
61f86a3f29 alternate-tab: Re-use window-switcher in gnome-shell
gnome-shell now provides its own traditional window switcher using
a dedicated keybinding, so update the extension to just take over
the default application-based switchers as well.

https://bugzilla.gnome.org/show_bug.cgi?id=689724
2012-12-11 07:40:40 +01:00
Florian Müllner
0fed304f79 static-workspaces: New extension
Just as the default-min-max extension, this extension reverts a
gnome-shell override and is meant to be used in classic mode.

https://bugzilla.gnome.org/show_bug.cgi?id=689739
2012-12-11 05:29:47 +05:30
Ryan Lortie
02989fd0f7 gnome-classic.session: fix @libexecdir@ substitution
The Makefile had two rules by which it could possibly have generated the
intermediate .in file (on the way from .in.in to .session) and it picked
the one that didn't contain the substitution for @libexecdir@.

Consolidate the rules into one that does all the needed substitutions.

https://bugzilla.gnome.org/show_bug.cgi?id=689756
2012-12-11 05:24:36 +05:30
Giovanni Campagna
9900ae19dc Revert "Remove alternate-tab extension"
This reverts commit 0b7c3e3dbb.
Pushed by mistake, and we actually want the alternate-tab extension,
just in a different form.
2012-12-11 00:10:17 +01:00
Giovanni Campagna
b9a4d178a8 Enable classic-mode if all extensions are enabled
This allows to test classic-mode integration without losing the other
extensions.
2012-12-10 23:11:33 +01:00
Florian Müllner
8815c670ea Install a 'classic' mode for gnome-shell
Commit c421da905f added the necessary machinery for adding a
classic session, do the same for the corresponding gnome-shell
mode.

https://bugzilla.gnome.org/show_bug.cgi?id=689738
2012-12-10 23:02:25 +01:00
Florian Müllner
1e45a69d36 Add generated data files to .gitignore
https://bugzilla.gnome.org/show_bug.cgi?id=689738
2012-12-10 23:02:12 +01:00
Giovanni Campagna
0b7c3e3dbb Remove alternate-tab extension
It's in core shell now! Just replace the switch applications keybinding
with switch windows in the keyboard panel.
2012-12-10 23:00:46 +01:00
Matej Urbančič
b9563829bb Updated Slovenian translation 2012-12-10 21:54:18 +01:00
Piotr Drąg
4b26753d83 Updated Polish translation 2012-12-06 22:35:29 +01:00
Daniel Mustieles
cdb7ff0cec Updated Spanish translation 2012-12-05 20:08:57 +01:00
Debarshi Ray
c421da905f Add the machinery to provide a classic-mode session
A new session is added only when --enable-extensions=classic-mode is
used.

https://bugzilla.gnome.org/show_bug.cgi?id=689285
2012-11-30 18:53:29 +01:00
Debarshi Ray
5a08081cc0 workspace-indicator: Remove it from CLASSIC_EXTENSIONS
It is not one of the extensions nominated for the fallback replacement
mode.

https://bugzilla.gnome.org/show_bug.cgi?id=689365
2012-11-30 18:50:35 +01:00
Debarshi Ray
ad542d2f77 default-min-max: New extension
Adds minimize and maximize buttons to the titlebar by default. It
restores org.gnome.desktop.wm.preferences as the schema to be used for
the button-layout key.

It is included in classic-mode.

https://bugzilla.gnome.org/show_bug.cgi?id=689275
2012-11-30 18:50:14 +01:00
Khaled Hosny
20e8a0dcc3 Update Arabic translation 2012-11-21 17:00:42 +02:00
Cheng-Chia Tseng
87c26eab14 Updated Traditional Chinese translation(Hong Kong and Taiwan) 2012-11-21 14:40:34 +08:00
Giovanni Campagna
877a53c2fc Bump version to 3.7.2
To go along GNOME Shell 3.7.2
2012-11-20 16:46:42 +01:00
Giovanni Campagna
10e38adf20 Add "classic-mode" build infrastructure
As part of removing fallback mode, GNOME wants to support a subset of
gnome-shell-extensions that restore part of the GNOME 2 experience.
This commit introduces that distinction, and allows to build only the
supported "classic-mode" extensions.
2012-11-20 16:39:45 +01:00
Giovanni Campagna
2a64ee6993 alternative-status-menu: flip the default hibernate option
Many people complained that they can't make hibernate visible. Given
that using gsettings with extensions is not easy (you need --schemadir etc.),
just flip the default, and tell people that don't want it to change it
(or just core shell)
2012-11-20 16:37:20 +01:00
Giovanni Campagna
9d9ef27317 WindowsNavigator: fix with recent shell
Recently WindowsNavigator would just crash the shell upon entering
the overview. I'm not sure where the bug was, probably it was due to
the new window layout code.
2012-11-20 16:37:20 +01:00
Giovanni Campagna
785656d149 alternate-tab: don't show attached modal dialogs
Attached modal dialogs cannot be focused on their own, so the expected
interaction is to choose their parent instead.
2012-11-20 16:37:20 +01:00
Giovanni Campagna
f8ee696c7c alternate-tab: port to the new keybindings infrastructure
Keybindings were refactored in 3.7.2, to allow handling them
while the shell is modal, and now require a set of flags indicating
the "allowed modes"
2012-11-20 16:37:20 +01:00
Stas Solovey
aa677b265a Updated Russian translation 2012-11-20 11:33:17 +04:00
Giovanni Campagna
9b04e6f44c PlacesMenu: ignore missing local bookmarks
If a local bookmark does not refer to an existing directory, ignore
it instead of showing a broken entry.
2012-11-16 20:29:56 +01:00
Giovanni Campagna
315aa82d15 PlacesMenu: support historical location for bookmarks file
Ubuntu is shipping with Nautilus 3.4 in 12.10, so the bookmarks file
was not moved to .config/gtk-3.0.
2012-11-16 20:29:51 +01:00
Giovanni Campagna
0bc41bcb1d native-window-placement: fix disabling the extension
The monkey patch was being reinstalled under the wrong name.
2012-11-11 19:26:56 +01:00
Мирослав Николић
e59c218c62 Updated Serbian translation 2012-11-09 11:54:47 +01:00
Giovanni Campagna
880758e470 PlacesMenu: don't fail for GIO errors getting the file name
Different GIO backends can fail in different ways trying to query
file infos. If that's the case, fail back to safe get_basename()
instead of crashing.
2012-11-07 17:43:17 +01:00
Dušan Kazik
a5ce94c6d3 Updated slovak translation 2012-11-06 23:29:13 +01:00
Giovanni Campagna
8a73e58134 Bump version to 3.7.1
To go along GNOME Shell 3.7.1
2012-10-26 17:20:41 +02:00
Giovanni Campagna
bfe7a760d1 NativeWindowPlacement: reduce the number of hacks to work better with 3.7.1
3.7 is brought some big changes in the window layout code, but I'm not
going to take advantage of them (as the assume some sort of row based layout).
Instead, just work around them in a way that makes the extension work
without major issues.
2012-10-26 17:20:41 +02:00
Giovanni Campagna
0d932f4b24 alternative-status-menu: update for 3.7
gnome-shell uses logind for suspending now. Take the occasion to
do some cleanups as well.
2012-10-26 17:20:41 +02:00
Giovanni Campagna
6c1dbe1ee1 places-menu: don't crash if a special directory or mount doesn't exists
Under broken configurations, it is possible that a special directory
is configured but does not exist. In that case, just skip the menu item
altogheter.
2012-10-26 17:20:41 +02:00
A S Alam
a125390c5f update Punjabi Translation for package 2012-10-25 09:11:13 +05:30
Christian Kirbach
fdb5f3e8ef Updated German translation 2012-10-24 12:41:24 +02:00
Aurimas Černius
d64feb040d Updated Lithuanian translation 2012-10-20 21:52:39 +03:00
Giovanni Campagna
987409b742 Remove dock and gajim extensions from the repository
They're buggy, unmaintained, and nobody stepped up to fix them.
See full rationale at
https://mail.gnome.org/archives/gnome-shell-list/2012-August/msg00132.html

Anyone who's unhappy with this decision, please contact me and we
can arrange co-maintainership or ownership transfer.
2012-10-16 16:22:45 +02:00
Giovanni Campagna
e14efb3dfc Bump version to 3.6.1
To go along newly released GNOME Shell 3.6.1
2012-10-16 16:16:02 +02:00
Andika Triwidada
7e3262a58d Updated Indonesian translation 2012-10-15 21:55:23 +07:00
Daniel Mustieles
f670aa5cc3 Updated Spanish translation 2012-10-13 13:00:56 +02:00
Rūdolfs Mazurs
da2ed2d695 Updated Latvian translation 2012-10-12 23:26:07 +03:00
Fran Diéguez
23e5cd30a4 Updated Galician translations 2012-10-12 01:16:31 +02:00
Tom Tryfonidis
42a85d81a6 Updated Greek translation 2012-10-11 17:19:28 +03:00
Piotr Drąg
1d65af715f Updated Polish translation 2012-10-08 23:04:17 +02:00
Marek Černocký
7ae2ddcb95 Updated Czech translation 2012-10-08 22:42:08 +02:00
Matej Urbančič
0abb0f4b57 Updated Slovenian translation 2012-10-08 21:14:45 +02:00
Giovanni Campagna
dfcff4b297 DriveMenu: make it independent of PlacesDisplay
That module was removed from GNOME Shell 3.6, so reimplement for mounts
only, borrowing code and behaviour from the resident message tray source.
2012-10-08 19:42:28 +02:00
Giovanni Campagna
fa2840aee3 alternative-status-menu: fix for 3.6
Code was still refererring to the external screensaver instead of
activating the screenshield.
I feel like a genius for writing both modules and not noticing this
until after 3.6.0.
2012-10-08 19:09:13 +02:00
Giovanni Campagna
e48e1d0a38 alternate-tab: fix a warning about passing 0 to source_remove 2012-10-07 02:08:55 +02:00
Khaled Hosny
f9f4684c8d Updated Arabic translation 2012-10-05 21:47:00 +02:00
Giovanni Campagna
3954649632 Bump version to 3.6.0
To go along GNOME Shell 3.6.0.
drive-menu doesn't yet work, due to the late removal of PlacesManager
from the shell. I will work on it if I have time.
2012-10-02 20:38:03 +02:00
Gil Forcada
74702c00e5 [l10n] Updated Catalan translation 2012-09-29 00:07:41 +02:00
Stas Solovey
727872833f Updated Russian translation 2012-09-27 17:24:00 +04:00
Chris Leonard
e0518f0bda Updated British English translation 2012-09-22 11:34:11 +01:00
Gabor Kelemen
ef5a8a9641 Updated Hungarian translation 2012-09-20 15:47:29 +02:00
Andika Triwidada
69bfc23b7f Updated Indonesian translation 2012-09-17 12:31:08 +07:00
Tom Tryfonidis
9bc1e04654 Updated Greek translation 2012-09-15 15:17:35 +03:00
Aurimas Černius
c3872afc30 Updated Lithuanian translation 2012-09-15 15:14:54 +03:00
Ville-Pekka Vainio
a6e5f8aab7 Finnish translation update by Jiri Grönroos 2012-09-12 22:45:11 +03:00
Matej Urbančič
67a4db07aa Updated Slovenian translation 2012-09-12 21:05:20 +02:00
Daniel Mustieles
f834c29530 Updated Spanish translation 2012-09-10 18:19:38 +02:00
Og B. Maciel
60f38b3b6c Minor typo. 2012-09-07 11:25:02 -04:00
Og B. Maciel
3fddc8e846 Updated Brazilian Portuguese translations. 2012-09-07 11:23:29 -04:00
Мирослав Николић
f0e1229a26 Updated Serbian translation 2012-09-07 11:17:36 +02:00
Christian Kirbach
00871cc98f Updated German translation 2012-09-07 00:18:07 +02:00
Piotr Drąg
3992182905 Updated Polish translation 2012-09-06 19:52:37 +02:00
Piotr Drąg
2df41753e5 Updated POTFILES.in 2012-09-06 19:50:56 +02:00
Giovanni Campagna
39c221775e places-menu: recognize if apps-menu is present, and place to the right of it
If apps-menu is enabled at the same time as places-menu, the right order
is activities, apps-menu, places-menu, app-menu. Previously we used the
extension activation order to obtain this, but it's not reliable enough,
so make it explicit in code.
2012-09-06 19:41:13 +02:00
Giovanni Campagna
eda45e6072 places-menu: rework to be more similar to the Files sidebar
Let's go GNOME 3 style, and make a places menu that looks like the sidebar
in Files, with for subsections corresponding to default places, devices,
bookmarks and network mounts.
Among other things, this should fix the duplicate home or duplicate desktop
bookmark problem (as now we don't bookmarks that are same as the default
locations), and it makes us future proof for the removal of PlacesManager
in core shell.
2012-09-06 19:41:10 +02:00
Daniel Mustieles
333871387a Updated Spanish translation 2012-09-06 18:27:47 +02:00
Marek Černocký
eb6b84eb18 Updated Czech translation 2012-09-06 12:25:33 +02:00
Piotr Drąg
d8c651f255 Updated Polish translation 2012-09-05 01:22:48 +02:00
Giovanni Campagna
7cf25a3bc0 Bump version to 3.5.91
To go along GNOME Shell 3.5.91
2012-09-05 00:54:38 +02:00
Giovanni Campagna
fdad0263ec various: update for gnome-shell changes
The panel changed the way it builds the buttons outside the system
status area.
- Update alternative-status-menu to the new way of accessing panel
  contents.
- Update apps-menu to the new way of adding items to the panel.
- Move places-menu to the left now that it is possible without hacks.
2012-09-05 00:50:35 +02:00
Giovanni Campagna
c5181cda46 alternate-tab: make the highlight square again
Fixes a regression from a78a16b4a7
2012-09-05 00:50:35 +02:00
Giovanni Campagna
56f6eccc82 i18n: Updated Italian translation 2012-09-05 00:50:35 +02:00
Giovanni Campagna
6a74326a61 place-menu: use symbolic icons for places
This makes us more consisten with the other menus and with the sidebar
in Files.
Also, reduce the icon size to 16px, same as the other menus.
2012-09-05 00:50:35 +02:00
Giovanni Campagna
48d4956ee0 Port all extensions to the new symbolic icon handling
St.IconType was removed from master, St.Icon users are expected to add '-symbolic'
themselves.
2012-09-05 00:50:35 +02:00
Giovanni Campagna
0ab46d5c70 xrandr-indicator: port to 2012
Someone left this poor extension in the last century.
Port to GDBus, port to Lang.Class, port to addSettingsAction, port to new
symbolic icon handling.
2012-09-05 00:50:35 +02:00
Giovanni Campagna
cd7d9aa2a4 Auto-move-windows: don't manage workspaces if they're not dynamic
The workspace management done by auto-move-windows is semi-dynamic,
in that it collects empty workspaces at the end, and ensures there
is always one free.
This is undesirable when the user explicitly choose static
workspaces in the tweak tool or in dconf-editor.
2012-09-05 00:50:35 +02:00
Giovanni Campagna
ea3d27c311 SystemMonitor: left align the indicator container
MessageTray.actor now has ClutterBinLayout layout manager, so we need
to tell it esplicitly where to place us.
2012-09-05 00:50:35 +02:00
Piotr Drąg
6c050118f4 Updated Polish translation 2012-09-04 00:17:04 +02:00
Fran Diéguez
dfb942f6fe Updated Galician translations 2012-08-30 04:16:23 +02:00
Matej Urbančič
262efe3c9e Updated Slovenian translation 2012-08-29 09:11:42 +02:00
Giovanni Campagna
d1d099fbbf alternate-tab: don't crash if a window is not associated with an app
A dialog for which the parent application is closed may end up without
an app. In that case, show only the thumbnail, or if showing icons only,
show a missing icon.
2012-08-29 02:05:02 +02:00
Giovanni Campagna
45da997dd3 alternate-tab: don't assume that at least two windows exist
Initial selection would go out of the array bounds if only one window
existed.
2012-08-29 02:05:02 +02:00
Daniel Mustieles
d91c949068 Updated Spanish translation 2012-08-25 12:07:40 +02:00
Piotr Drąg
5a028aab52 Updated Polish translation 2012-08-22 20:04:42 +02:00
Giovanni Campagna
c49758f1c5 Bump version to 3.5.90
To go along GNOME Shell 3.5.90
2012-08-22 16:19:53 +02:00
Giovanni Campagna
5ca52e89d5 windowsNavigator: update for gnome-shell changes
The ViewSelector was refactored for modekill feature. Update
accordingly.
2012-08-22 16:19:33 +02:00
Giovanni Campagna
dd26111c04 systemMonitor: add tooltips to the indicators
Currently it's hard to find what the indicator mean, without any
label. Add a tooltip, shamelessly copied from js/ui/dash.js in
core shell.
2012-08-22 16:13:52 +02:00
Giovanni Campagna
f40e7109e5 systemMonitor: update for gnome-shell changes
gnome-shell 3.5.90 has a new, bigger, message-tray. Restyle the
systemMonitor appropriately to blend in.
2012-08-22 16:13:52 +02:00
Giovanni Campagna
5cb3e1877a native-window-placement: update for gnome-shell changes
Workspace.positionWindows semantics changed, so the function
we want to override is now _realPositionWindows.
2012-08-22 16:13:52 +02:00
Giovanni Campagna
a78a16b4a7 alternate-tab: respect aspect ratio for window thumbnails
It is weird if 16:9 thumbnails get turned into squares. Instead,
center them.

https://bugzilla.gnome.org/show_bug.cgi?id=656217
2012-08-22 15:35:33 +02:00
Daniel Mustieles
a6307d48c0 Updated Spanish translation 2012-08-20 14:17:34 +02:00
A S Alam
f9d95b9408 update Punjabi Translation 2012-08-19 15:12:45 +05:30
Giovanni Campagna
fb3df46a25 alternate-tab: rework again
Kill the mode switch distinction, and kill the old and unmaintained
Workspace&Icons mode.
Introduce instead configurability for the All&Thumbnails code, which
now independently allows choosing if only all windows or only those
from current workspace should be shown, and in which way (thumbnail,
icon, both).
All configuration settings changed, so the extension must be configured
again (although hopefully I chose reasonable defaults)
2012-08-18 02:40:20 +02:00
Daniel Mustieles
d2a7a95628 Updated Spanish translation 2012-08-10 11:14:52 +02:00
Giovanni Campagna
12e91b86e5 Bump version to 3.5.5
To go along GNOME Shell 3.5.5
2012-08-07 23:41:18 +02:00
Giovanni Campagna
5e89c761ca alternate-tab: show an application icon overlaid to the thumbnails
In All&Thumbnails mode, show an application icon above the thumbnail,
for easier recognition of the window.
The old behaviour can be restored in the preferences dialog.
2012-08-07 23:22:25 +02:00
Giovanni Campagna
d12307991a alternate-tab: refactor All & Thumbnails
Split the two modes in two different modules, for easier maintenance.
Refactor the AllThumbnails code completely, by copying relevant
or useful code for gnome-shell directly instead of hacking around
it.
2012-08-07 23:22:19 +02:00
Dirgita
c711ce83fa Updated Indonesian translation 2012-08-07 23:40:11 +07:00
Мирослав Николић
96f91eda59 Updated Serbian translation 2012-08-07 10:40:36 +02:00
Giovanni Campagna
e2a76b665a Convenience: relicense to BSD
This module is meant to be a copy-lib, and it is used all over the
place (including GPLv3, LGPL or BSD licensed extensions). I don't
want to block an extension for license incompatibility.

The rest of the repository is still GPLv2, as it is the tarball
distribution and individual extensions downloaded from the website.
2012-08-06 23:44:27 +02:00
Aurimas Černius
c638e6c0f2 Updated Lithuanian translation 2012-08-05 17:07:34 +03:00
Giovanni Campagna
9ef1ecd827 Bump version to 3.5.4
To go along GNOME Shell 3.5.4
2012-07-18 16:35:58 +02:00
Christian Kirbach
60f0954a76 Updated German translation 2012-07-15 13:56:28 +02:00
Wylmer Wang
08339cd78e update Simplified Chinese (zh_CN) translation 2012-06-23 18:01:59 +08:00
Wylmer Wang
a772154471 update Simplified Chinese (zh_CN) translation 2012-06-23 17:52:43 +08:00
Rūdolfs Mazurs
e02cd89c8b Updated Latvian translation 2012-06-20 20:33:39 +03:00
Khaled Hosny
706857132a Updated Arabic translation 2012-06-09 18:36:04 +02:00
Daniel Mustieles
c0f6028212 Updated Spanish translation 2012-06-09 11:55:04 +02:00
Matej Urbančič
ecd9e4ab6c Updated Slovenian translation 2012-06-08 21:14:45 +02:00
Giovanni Campagna
d4f3391481 Bump version to 3.5.2
To go along GNOME Shell 3.5.2
2012-06-08 14:07:05 +02:00
Giovanni Campagna
dd9b47e51e native-window-placement: fix undefined variable warning 2012-06-08 14:02:00 +02:00
Giovanni Campagna
279dd348e4 alternative-status-menu: update for current mockups
Core shell changed the user menu so that Power Off is no longer at
the end, and it's no longer hidden by Alt. Update the extension
so that it blends nicely with the core behavior, while still exposing
Suspend/Hibernate/Power Off as separate menu items.
2012-06-08 13:59:50 +02:00
Daniel Mustieles
efe068324b Updated Spanish translation 2012-06-06 13:43:51 +02:00
Alejandro Piñeiro
338f742310 a11y: setting labels for Removable Drive Menu extension
This includes:
 * A proper name for the menu (using when exploring the top panel)
 * A proper label for each device item

https://bugzilla.gnome.org/show_bug.cgi?id=677228
2012-06-04 09:48:06 +02:00
Andika Triwidada
c1845d73bd Updated Indonesian translation 2012-06-02 20:34:30 +07:00
Andika Triwidada
a3ae190edc Added Indonesian translation 2012-06-02 20:32:29 +07:00
Jasper St. Pierre
6e946fe702 drive-menu: Update to work with GNOME Shell git
https://bugzilla.gnome.org/show_bug.cgi?id=677289
2012-06-02 05:11:36 -04:00
Jasper St. Pierre
dca49d662d places-menu: Update to work with GNOME Shell git
https://bugzilla.gnome.org/show_bug.cgi?id=677289
2012-06-02 05:11:36 -04:00
Мирослав Николић
df73753b08 Updated Serbian translation 2012-06-01 21:05:17 +02:00
Martin Srebotnjak
0676b9c0f9 Updated Slovenian translation 2012-05-21 09:11:39 +02:00
Michael Biebl
13b8b3c22c build: Properly quote $enable_extensions
Otherwise test will complain if more then one extension in enabled, i.e.
when we have a space in the configure argument.

https://bugzilla.gnome.org/show_bug.cgi?id=676446
2012-05-21 00:40:11 +02:00
Arash Mousavi
35ee8fc2c6 Updated Persian Translations 2012-05-14 20:41:40 +04:30
Marek Černocký
99924c3952 Updated Czech translation 2012-05-12 09:16:00 +02:00
Marek Černocký
dfd7191aa1 Updated Czech translation 2012-05-08 22:01:34 +02:00
Bastien Durel
c5fd578214 create actor at the right place, so there is no more clipping-out-of-screen problem
https://bugzilla.gnome.org/show_bug.cgi?id=664318
2012-05-07 23:06:17 +02:00
Matej Urbančič
e00a73b88a Updated Slovenian translation 2012-05-04 13:47:32 +02:00
Tom Tryfonidis
487fd4cd1c Updated Greek translation 2012-05-03 13:59:40 +03:00
Alexandre Franke
2acb53fa2e Update French translation 2012-05-02 19:29:02 +02:00
Fran Diéguez
548ede7eea Updated Galician translations 2012-04-30 16:43:12 +02:00
Fran Diéguez
667f72532e Updated Galician translations 2012-04-30 16:42:21 +02:00
Piotr Drąg
7753a68331 Updated Polish translation 2012-04-30 16:19:37 +02:00
Daniel Mustieles
6728411a52 Updated Spanish translation 2012-04-30 13:17:05 +02:00
Giovanni Campagna
31ff2d4c97 auto-move-windows: make the suspend and hibernate items configurable
Desktop users rarely use suspend, and in general hibernate is
more trouble than it's worth to show at all times, so make their
visibility configurable in GSettings.
Supend defaults to true (since that's the GNOME 3 message anyway),
while hibernate is normally false. No UI is provided, since it's
unlikely that changing this is necessary.
2012-04-29 23:26:07 +02:00
Wepmaschda
d355424f22 native-window-placement: add WINDOW_AREA_TOP_GAP and place the windows bottom-center.
This keeps window captions and close buttons always visible.

https://bugzilla.gnome.org/show_bug.cgi?id=674338
2012-04-29 22:41:37 +02:00
Bastien Durel
dde7084711 Let user choose the monitor where to show dock 2012-04-29 22:35:24 +02:00
Giovanni Campagna
f77bf60bcb auto-move-windows/prefs: filter out apps that don't exist
Recognize if the desktop file no longer exists and remove its
entry in GSettings, instead of crashing because of a null GAppInfo.
2012-04-29 21:11:00 +02:00
Giovanni Campagna
e3f1091f2d dock: clip the actor to the primary monitor
In particular with the move effect, but also with others, the
dock could end up partially on the neighbor screen when hidden.
2012-04-28 18:28:36 +02:00
Giovanni Campagna
ffb3462d54 gajim: fix for missing FN field
The full name is not always present. If so, fallback to nickname
or Jabber ID.

Based on a patch by Łukasz Faber <nnidyu@annwn.eu>
2012-04-26 22:58:04 +02:00
Giovanni Campagna
e1c1fc73e2 windowsNavigator: only access tooltip if it's known to exist
Apparently, windowOverlay._text can be null sometimes. In that
case, do nothing instead of crashing.
2012-04-26 22:50:11 +02:00
Giovanni Campagna
5ca9f35a95 places-menu: fix allocation of the icon
Because the popup-menu min-width imposed by the theme was bigger
than the natural size of the menu, and because core shell code
cannot deal with that, the icon was not right aligned unless
"Removable devices" was showing.
Hack around that by setting span: -1, which pushes it to end of
the menu item.
2012-04-14 00:41:12 +02:00
Seong-ho Cho
6128102eac Add Korean translation 2012-04-05 02:52:23 +09:00
Giovanni Campagna
cb6d5357d9 Bump version to 3.4.0
GNOME 3.4 is out! Yay for the stable release!
2012-03-29 19:59:11 +02:00
Giovanni Campagna
9fb703ca6b build: strip micro version if minor is even
To avoid manually adding the 3.4 stable version when doing the
release, check in configure if building a stable (even minor) version
and strip micro at that time.
2012-03-29 19:51:13 +02:00
Khaled Hosny
06d2b906e0 Arabic translation 2012-03-28 18:52:45 +02:00
Marek Černocký
98403dfc3b Updated Czech translation 2012-03-25 18:49:23 +02:00
Bruno Brouard
ec88930f80 Updated French translation 2012-03-24 21:48:36 +01:00
Giovanni Campagna
ee5e54f9f4 Bump version to 3.3.92
To go along GNOME Shell 3.3.92
2012-03-24 02:11:24 +01:00
Giovanni Campagna
ed9c17dfdd native-window-placement: update for gnome-shell API changes
St.Widget.get_default_direction() was replaced with
Clutter.get_default_text_direction() as part of the Clutter Apocalypses
2012-03-24 02:06:49 +01:00
Gabor Kelemen
10027b6697 Updated Hungarian translation 2012-03-22 23:53:39 +01:00
A S Alam
27abc7a42b update Punjabi Translation 2012-03-17 16:52:11 +05:30
Rudolfs Mazurs
3bb56a7a59 Updated Latvian translation. 2012-03-17 00:07:35 +02:00
Piotr Drąg
0e94c81734 Updated Polish translation 2012-03-16 21:19:40 +01:00
Fran Diéguez
7d41bd9fbd Updated Galician translations 2012-03-16 12:16:13 +01:00
Kjartan Maraas
f12cd9ba39 Updated Norwegian bokmål translation 2012-03-14 18:52:34 +01:00
Timo Jyrinki
182a9cff18 Finnish translation update from http://l10n.laxstrom.name/wiki/Gnome_3.4 translation sprint 2012-03-12 11:08:16 +02:00
Cheng-Chia Tseng
9bb5399263 Updated Traditional Chinese translation(Hong Kong and Taiwan) 2012-03-09 20:13:17 +08:00
bhuztez
82bd3efc73 windowsNavigator: do nothing when viewtab is not active
The keybindings should only kick-in when the "windows" tab is active,
otherwise it is confusing and could conflict with other combinations.
2012-03-03 02:11:25 +01:00
Daniel Mustieles
0b3f7e37f0 Updated Spanish translation 2012-03-02 14:19:00 +01:00
Giovanni Campagna
2f034bbee2 [l10n] Update Italian translation 2012-03-01 21:12:08 +01:00
Giovanni Campagna
f14ae5f3c9 workspace-indicator: remove debug spew 2012-03-01 21:10:41 +01:00
Giovanni Campagna
1463a6481e dock: update for gnome-shell API changes
Shell.get_event_state() was removed, use direct .get_state()
instead.
2012-03-01 21:05:14 +01:00
Giovanni Campagna
0a9be8fc82 workspace-indicator: drop the "shorter" style class
It makes it appear different from other popup menus, which looks
strange.
2012-03-01 21:05:14 +01:00
Giovanni Campagna
75629a468f build system: move local-install to a make rule
This way, "make zip-file && ./local-install.sh" is not needed, you
just do "make local-install". Also, it allows to specify a different
prefix as a make variable.
2012-03-01 21:05:14 +01:00
Mario Blättermann
72a5a3424f [l10n] Updated German translation 2012-03-01 13:13:26 +01:00
Мирослав Николић
4e35410b7a Updated Serbian translation 2012-03-01 10:39:25 +01:00
Leandro Toledo
9faa028f1e Updated Brazilian Portuguese translation 2012-02-28 06:54:42 -03:00
Matej Urbančič
60f8139482 Updated Slovenian translation 2012-02-28 21:54:30 +01:00
Matej Urbančič
e7f7a488c6 Updated Slovenian translation 2012-02-28 21:54:30 +01:00
Daniel Nylander
f0b3e4de0a Updated Swedish translation 2012-02-28 21:45:44 +01:00
Giovanni Campagna
25ada42ed9 Bump version to 3.3.90
To go along GNOME Shell 3.3.90
2012-02-28 19:19:17 +01:00
Giovanni Campagna
ef95c7e4e7 apps-menu: update for Clutter/St API changes
Some StContainer API was removed to accomodate clutter deprecations.
Adapt apps-menu to that.
2012-02-28 19:18:22 +01:00
Милош Поповић
9e53a37c08 Updated Serbian translation 2012-02-27 00:17:27 +01:00
Fran Diéguez
b3e783e7a8 Updated Galician translations 2012-02-26 16:21:58 +01:00
Piotr Drąg
9e41c06cd7 Updated POTFILES.in 2012-02-24 19:22:41 +01:00
Giovanni Campagna
7b3650fb68 convenience: use recursive lookup for schemas
If the schema is not found in the extension directory, fall back
to the default source, allowing for systemwide installation of
extensions.
2012-02-24 11:23:59 +01:00
Giovanni Campagna
0bb2184efb workspace-indicator: add preferences dialog
Add a simple pref dialog to configure workspace name, similar to
the one available for GNOME 2.
2012-02-24 11:23:59 +01:00
Gabriel Speckhahn
e55101526c Updated Brazilian Portuguese translation 2012-02-16 12:57:51 -02:00
Matej Urbančič
50b89bb8b5 Updated Slovenian translation 2012-02-17 21:30:41 +01:00
Gonzalo Sanhueza
856ebbf7e6 Updated Spanish translation 2012-02-17 10:49:35 +01:00
Giovanni Campagna
0c5564fe55 workspace-indicator: fix focus after workspace change
meta_workspace_activate() expects the timestamp of the user action.
Not sure where that true came from.
2012-02-13 23:06:59 +01:00
Giovanni Campagna
53ee4c096e i18n: Updated Italian translation 2012-02-13 18:56:25 +01:00
Giovanni Campagna
5754e2db58 example: add settings and preference dialogs
This continues turning "example" in a real gnome-shell extension
tutorial, showing how to create GSettings using Convenience and
how to build a simple preference dialog by subclassing GtkGrid
and binding GObject properties to GSettings.
2012-02-13 18:55:15 +01:00
Giovanni Campagna
468ed6cfe6 auto-move-windows: introduce configuration dialog
Using the new configuration framework from gnome-shell, add
a simple tree view to configure the automatic moving rules.
2012-02-13 18:55:15 +01:00
Giovanni Campagna
a4fac964dc convenience: allow system-wide installation again
Check if necessary files are installed in the extension folder
(as done by "make zip-file"), and if not, fallback to the standard
paths.
2012-02-13 18:55:15 +01:00
Giovanni Campagna
245ab96a27 alternate-tab: move to the new configuration system
Since 3.3.5, gnome-shell offers an integrated configuration tool
for extensions, which can be used by adding a new "prefs" module.
Replace the old modal dialog with a new gtk dialog, which also allows
to configure the new highlight-selected setting.
2012-02-13 18:55:15 +01:00
Daniel Mustieles
6b373686d3 Updated Spanish translation 2012-02-12 13:54:09 +01:00
Piotr Drąg
c90f90a5c7 Updated POTFILES.in 2012-02-10 19:44:28 +01:00
Giovanni Campagna
1dca3fecaa alternate-tab: optionally highlight selected window in workspace&icons mode
Optionally, bring the selected window to front before dismissing
the popup, in a manner similar to cycle-windows keybinding (but
without the rendering artifacts, and without application grouping).

Based on a patch by Pallai Roland <dap@magex.hu>
2012-02-10 15:22:07 +01:00
136 changed files with 22811 additions and 9138 deletions

5
.gitignore vendored
View File

@@ -6,13 +6,18 @@ config.log
config.status
aclocal.m4
autom4te.cache/
data/*.json
po/gnome-shell-extensions.pot
po/POTFILES
po/stamp-it
staging/
zip-files/
*~
*.gmo
metadata.json
*.desktop
*.desktop.in
*.gschema.xml
*.gschema.valid
*.session

View File

@@ -1,7 +1,13 @@
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
DIST_SUBDIRS = data extensions po
SUBDIRS = extensions po
if CLASSIC_MODE
SUBDIRS += data
endif
EXTRA_DIST = lib/convenience.js
DISTCHECK_CONFIGURE_FLAGS = --enable-extensions=all
@@ -11,15 +17,16 @@ include include.mk
zip-file: all
-rm -fR $(builddir)/_build
-rm -fR $(builddir)/zip-files
mkdir $(builddir)/_build; \
mkdir $(builddir)/zip-files; \
$(MKDIR_P) $(builddir)/_build; \
$(MKDIR_P) $(builddir)/zip-files; \
$(MAKE) install DESTDIR="$(abs_builddir)/_build"; \
for i in $(ENABLED_EXTENSIONS); do \
mv "$(builddir)/_build$(topextensiondir)/$${i}$(extensionbase)" "$(builddir)/_build/"; \
cp -r "$(builddir)/_build$(datadir)/locale" "$(builddir)/_build/$${i}$(extensionbase)"; \
cp "$(srcdir)/COPYING" -t "$(builddir)/_build/$${i}$(extensionbase)"; \
cp "$(srcdir)/NEWS" -t "$(builddir)/_build/$${i}$(extensionbase)"; \
if [ -f "$(builddir)/_build$(datadir)/glib-2.0/schemas/$(gschemabase).$${i}.gschema.xml" ]; then \
mkdir "$(builddir)/_build/$${i}$(extensionbase)/schemas"; \
$(MKDIR_P) "$(builddir)/_build/$${i}$(extensionbase)/schemas"; \
mv "$(builddir)/_build$(datadir)/glib-2.0/schemas/$(gschemabase).$${i}.gschema.xml" "$(builddir)/_build/$${i}$(extensionbase)/schemas"; \
glib-compile-schemas "$(builddir)/_build/$${i}$(extensionbase)/schemas"; \
fi; \
@@ -27,3 +34,19 @@ zip-file: all
zip -qr "$(abs_builddir)/zip-files/$${i}$(extensionbase).shell-extension.zip" .; \
); \
done
-rm -fR $(builddir)/_build
localprefix = $(HOME)/.local/share/gnome-shell/extensions
local-install: zip-file
for i in $(ENABLED_EXTENSIONS); do \
uuid="$${i}$(extensionbase)"; \
zip_file="$(abs_builddir)/zip-files/$${uuid}.shell-extension.zip"; \
if [ -d "$(localprefix)/$${uuid}" ]; then \
rm -fR "$(localprefix)/$${uuid}"; \
fi; \
$(MKDIR_P) $(localprefix)/$${uuid}; \
(cd $(localprefix)/$${uuid}; \
unzip -q $${zip_file}; \
); \
done

257
NEWS
View File

@@ -1,3 +1,260 @@
3.10.0
======
* updated translations (as, cs, da, es, et, fi, fr, gl,
he, id, it, kk, lt, lv, pa, pl, pt, pt_BR, ru, sl, tg,
uk, zh_HK, zh_TW)
3.9.92
======
* more updates and fixes for gnome-shell master changes
and regressions (systemMonitor, window-list, apps-menu)
* lots of updated translations (ar, as, cs, da, de, el, es,
eu, fi, gl, he, hu, it, ja, kk, ko, lv, nb, nl, pa, pl,
pt_BR, ru, sk, sr, sr@latin, ta, tg)
3.9.91
======
* update the classic mode session and theme to work with the
new system menu
* the usual round of updates and fixes for gnome-shell
API changes
* updated translations (de, it, lt, nl, pl, pt_BR, sk,
zh_HK, zh_TW)
3.9.90
======
* xrandr-indicator was removed, as the implementation
was incompatible with the new DisplayConfig mutter API
* various extensions were updated for the 3.9.90 gnome-shell API
* updated translations (cs, es, fur, gl, he, hu, id, ja, sl, tg,
zh_CN, zh_HK, zh_TW)
3.9.5
=====
* alternative-status-menu was removed entirely, as
it does not fit in the designs of the new unified
status menu
* updated translations (as, gu, it, ru)
3.9.4
=====
* apps-menu: fixed handling of hot corner in case
of screen reconfiguration
* alternative-status-menu now correctly honors polkit
for hibernation
* user-menu now loads themes from $XDG_DATA_HOME too
* translation updates (de, id, pt_BR, vi, zh_CN, ml)
3.9.3
=====
* classic mode mini extensions were replaced with a
GSettings override specified in the .json file
* styling of classic mode improved
* native-window-placement is back working on 3.9
* misc bug fixes
* traslation updates (an, cs, el, es, gl, nb, pl, sk, tg)
3.9.2
=====
* apps-menu: appearance of the scrollbars was improved
* window-list is a little taller in classic mode (to account
for the workspace switcher)
* alternative-status-menu honors again the dconf configuration
* translation updates (sr)
3.9.1
=====
* updates to window-list, xrandr-indicator,
workspace-indicator, windowsNavigator for gnome-shell
changes
* translation updates (cs, es, lt, pl, pt_BR, sl)
3.8.1
=====
* many improvements to window-list:
- windows are activated by DND over them
- window buttons now have the right size,
even if the text is smaller or larger
than the ideal
- window buttons can be grouped automatically
when the panel becomes crowded
- added a workspace switcher menu
* added keyboard navigation to apps-menu
* small tweaks to classic-mode theme, in particular
for menus
* translation updates (gl, ko, sr)
3.8.0
=====
* translation updates (hu, ja, fi, it)
3.7.92
======
* misc bug fixes to app-menu and window-list
* translation updates (de, sl, pt_BR, ru)
3.7.91
======
* various updates for shell changes
* update window-list to always use application icons
* update apps-menu to not load subdirectories as
separate categories
* translation updates (lt, zh_CN)
3.7.90
======
* various fixes to make places-menu behave more
like Nautilus, including showing the machine
name in place of File System
* various updates for shell changes
* alternative-status-menu no longer supports
ConsoleKit systems, you need to install logind
to have suspend or hibernate
* translation updates (es, cz, pl, sr)
3.7.5.1
=======
* new extension forgotten in previous NEWS entry:
windows-list
* also forgotten previously: classic mode got a new
GNOME2 style
* build fixes
3.7.5
=====
* places-menu is back in the classic extensions, with
a new old GNOME-2 look
* classic mode moved the date menu to right, where we
all know it rightly belongs
* apps-menu received a face-lift, with the inclusion
of a reduced form of AxeMenu
* new extension in the classic set: launch-new-instance,
which modifies the behavior of clicking in the dash
and app launcher
* alternate-tab, native-window-placement and windowsNavigator
updated for gnome-shell changes
* translation updates (es, cz, pl)
3.7.4
=====
* a separate configure switch has been added to enable
classic mode session definitions
* places-menu is no longer part of the classic-mode
extension set
* updated translations (ar, gl, hu, lt, pt_BR, sr)
3.7.3
=====
* new extensions: default-min-max, static-workspaces
* alternate-tab now uses the built-in window switcher and just
takes over the switch-application keybinding
* workspace-indicator: is no longer part of classic-mode
* we now install classic-mode data files for gdm, gnome-session
and gnome-shell, so if you enable classic-mode you get a new
session option in GDM
* updated translations (ar, es, pl, ru, sl, zh_HK, zh_TW)
3.7.2
=====
* fixed crashes with places-menu, windowsNavigator, alternate-tab
and native-window-placement
* alternate-tab now hides attached modal dialogs
* places-menu has restored support for Nautilus 3.4
* the default for hibernate is now to show in alternative-status-menu
* some extensions are now tagged as "classic", and can be chosen with
--enable-extensions=classic-mode
* dock and gajim were removed at the beginning of the 3.7.1 cycle,
as they were buggy and unmaintained
* updated translations (ar, cs, de, el, es, gl, id, lt, lv, pa, pl
ru, sk, sl, sr, sr@latin)
3.6.1
=====
* fixed alternative-status-menu for the new lock screen
* squashed some alternate-tab warnings
* drive-menu now works with 3.6 again
* updated translations (ar, cs, el, es, gl, id, lv, pl, sl)
3.6.0
=====
* major rework in places menu, to make it work without
removed supporting code in the shell and to make it look like
the nautilus sidebar
(similar work would be needed for drive-menu, not done yet)
* updated translations (ca, cs, de, el, en_GB, es, fi, hu, id, lt,
pl, pt_BR, ru, sl, sr)
3.5.91
======
* various crashers were fixed in alternative-tab
* auto-move-windows now can be made to work with static workspaces
* place-menu is now on the left and uses symbolic icons like Files
* StIconType usage was removed from all extensions, after it was
removed in core
* systemMonitor, xrandr-indicator, apps-menu, places-menu,
alternative-status-menu were updated for the newer shell
* updated translations (es, gl, it, pl, sl)
3.5.90
======
* alternate-tab has been reworked again, the old mode switch
was removed and the all&thumbnails code extended to handle
icons and filtering to the workspace
* alternate-tab thumbnails now reflect the aspect ratio of the windows
* systemMonitor now shows a tooltip above the indicator
* native-window-placement, systemMonitor and windowsNavigator have been updated
for the newer shell
* updated translations (es, pa)
3.5.5
=====
* convenience module has been relicensed to BSD,
for compatibility with GPLv3 extensions
* alternate-tab has been refactored and seen various
improvements to all&thumbnails mode, including a new
overlaid application icon
* updated translations (lt, id, sr)
3.5.4
=====
* updated translations (de, es, ar, sl, lv, zh_CN)
3.5.2
=====
* removable-drive-menu is now a11y friendly
* the dock can now be placed on any monitor, not just the primary
* dock is now clipped to its monitor
* alternative-status-menu now exposes GSettings for Suspend
and Hibernate visibility - no UI yet
* more gnome-shell API changes (places-menu, removable-drive-menu,
alternative-status-menu)
* miscellaneous bug fixes (native-window-placement, gajim,
auto-move-windows)
* updated translations
3.4.0
=====
* build system improvements
* updated translations (ar, cs, fr)
3.3.92
======
* various updates for gnome-shell API changes (dock,
native-window-placement)
* local-install is now a make rule, not a shell script
* updated translations (zh, es, sw, ga, hu, it, no, pt_BR, de, sl,
pl, la, fi, sr)
3.3.90
======
* system wide installation via "make install" is possible
again
* alternate-tab can now pre-activate the selected window
* auto-move-windows, workspace-indicator and example gained
new preference dialogs
* workspace-indicator: fixed a bug wrt focus stealing prevention
* updated translations (es, pt_BR, it, sl, gl, sr)
3.3.5
=====
* improvements to the build system and convenience module,

12
README
View File

@@ -24,12 +24,6 @@ alternate-tab
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
alternative-status-menu
For those who want a power off item visible at all the time, replaces GNOME Shell
status menu with one featuring separate Suspend and Power Off. Adds the ability to
hibernate as well.
apps-menu
Lets you reach an application using gnome 2.x style menu on the panel.
@@ -77,12 +71,6 @@ windowsNavigator
Allow keyboard selection of windows and workspaces in overlay mode.
xrandr-indicator
Replace the GTK+ based indicator from gnome-settings-daemon with
a native one. Lets the user rotate the laptop monitor and open
display preferences quickly.
License
=======
GNOME Shell Extensions are distributed under the terms of the GNU General Public License,

View File

@@ -1,10 +1,10 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell-extensions],[3.3.5],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_INIT([gnome-shell-extensions],[3.10.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])
AM_INIT_AUTOMAKE([1.10 dist-bzip2 no-dist-gzip foreign tar-ustar])
AM_INIT_AUTOMAKE([1.10 dist-xz no-dist-gzip foreign tar-ustar])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
@@ -18,24 +18,45 @@ PKG_PROG_PKG_CONFIG([0.22])
GLIB_GSETTINGS
SHELL_VERSION="$PACKAGE_VERSION"
shell_major=`echo "$PACKAGE_VERSION" | cut -d'.' -f1`
shell_minor=`echo "$PACKAGE_VERSION" | cut -d'.' -f2`
if test "$(($shell_minor % 2))" -eq 0; then
SHELL_VERSION="$shell_major.$shell_minor"
fi
AC_SUBST([SHELL_VERSION])
dnl keep this in alphabetic order
dnl by default, install only extensions that do not change completely the shell experience,
dnl that don't require GSettings and that don't require external packages for typelibs
dnl (so basically only menus, status icons, search providers, overview tabs, message tray sources, etc.)
DEFAULT_EXTENSIONS="alternative-status-menu apps-menu dock drive-menu gajim places-menu windowsNavigator workspace-indicator"
ALL_EXTENSIONS="$DEFAULT_EXTENSIONS alternate-tab auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator"
CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab launch-new-instance window-list"
DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS drive-menu windowsNavigator workspace-indicator"
ALL_EXTENSIONS="$DEFAULT_EXTENSIONS auto-move-windows example native-window-placement systemMonitor user-theme"
AC_SUBST(CLASSIC_EXTENSIONS, [$CLASSIC_EXTENSIONS])
AC_SUBST(ALL_EXTENSIONS, [$ALL_EXTENSIONS])
AC_ARG_ENABLE([extensions],
[AS_HELP_STRING([--enable-extensions],[Space separated list of extensions to enable.
The default is to build all extensions that can be installed in the home directory and have no external depedencies.
Use "all" to enable all available extensions.])],
The default is to build and distribute all extensions that can be installed in the home directory and have no external depedencies.
Use "all" to enable all available extensions, or "classic-mode" to enable extensions that restore GNOME 2 functionality.])],
[],
[enable_extensions=$DEFAULT_EXTENSIONS]
)
if test x$enable_extensions = xall; then
if test x"$enable_extensions" = xall; then
enable_extensions="$ALL_EXTENSIONS"
enable_classic_mode_default=yes
elif test x"$enable_extensions" = xclassic-mode; then
enable_extensions="$CLASSIC_EXTENSIONS"
enable_classic_mode_default=yes
else
enable_classic_mode_default=no
fi
AC_ARG_ENABLE([classic-mode],
[AS_HELP_STRING([--enable-classic-mode],[Enable installing data files for classic mode.
Defaults to yes if enabling all or classic-mode extensions, and no otherwise.])],
[],
[enable_classic_mode=$enable_classic_mode_default])
AM_CONDITIONAL([CLASSIC_MODE], [test x"$enable_classic_mode" != xno])
ENABLED_EXTENSIONS=
for e in $enable_extensions; do
case $e in
@@ -44,13 +65,8 @@ for e in $enable_extensions; do
[ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"],
[AC_MSG_WARN([libgtop-2.0 not found, disabling systemMonitor])])
;;
xrandr-indicator)
PKG_CHECK_MODULES(GNOME_DESKTOP, gnome-desktop-3.0 >= 2.91.6,
[ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"],
[AC_MSG_WARN([gnome-desktop-3.0 not found, disabling xrandr-indicator])])
;;
dnl keep this in alphabetic order
alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|dock|drive-menu|example|gajim|native-window-placement|places-menu|user-theme|windowsNavigator|workspace-indicator)
alternate-tab|apps-menu|auto-move-windows|drive-menu|example|launch-new-instance|native-window-placement|places-menu|user-theme|window-list|windowsNavigator|workspace-indicator)
ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
;;
*)
@@ -62,21 +78,20 @@ AC_SUBST(ENABLED_EXTENSIONS, [$ENABLED_EXTENSIONS])
dnl Please keep this sorted alphabetically
AC_CONFIG_FILES([
data/Makefile
extensions/alternate-tab/Makefile
extensions/alternative-status-menu/Makefile
extensions/apps-menu/Makefile
extensions/auto-move-windows/Makefile
extensions/dock/Makefile
extensions/drive-menu/Makefile
extensions/example/Makefile
extensions/gajim/Makefile
extensions/launch-new-instance/Makefile
extensions/native-window-placement/Makefile
extensions/places-menu/Makefile
extensions/systemMonitor/Makefile
extensions/user-theme/Makefile
extensions/window-list/Makefile
extensions/windowsNavigator/Makefile
extensions/workspace-indicator/Makefile
extensions/xrandr-indicator/Makefile
extensions/Makefile
Makefile
po/Makefile.in

72
data/Makefile.am Normal file
View File

@@ -0,0 +1,72 @@
include $(top_srcdir)/include.mk
desktopdir = $(datadir)/applications
desktop_in_in_files = gnome-shell-classic.desktop.in.in
desktop_in_files = $(desktop_in_in_files:.desktop.in.in=.desktop.in)
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
sessiondir = $(datadir)/gnome-session/sessions
session_in_in_files = gnome-classic.session.desktop.in.in
session_in_files = $(session_in_in_files:.session.desktop.in.in=.session.desktop.in)
session_DATA = $(session_in_files:.session.desktop.in=.session)
xsessiondir = $(datadir)/xsessions
xsession_in_files = gnome-classic.desktop.in
xsession_DATA = $(xsession_in_files:.desktop.in=.desktop)
modedir = $(datadir)/gnome-shell/modes
mode_in_files = classic.json.in
mode_DATA = $(mode_in_files:.json.in=.json)
themedir = $(datadir)/gnome-shell/theme
theme_DATA = \
$(srcdir)/classic-process-working.svg \
$(srcdir)/classic-toggle-off-intl.svg \
$(srcdir)/classic-toggle-off-us.svg \
$(srcdir)/classic-toggle-on-intl.svg \
$(srcdir)/classic-toggle-on-us.svg \
$(srcdir)/gnome-classic.css \
$(NULL)
gsettings_in_files = org.gnome.shell.extensions.classic-overrides.gschema.xml.in
gsettings_SCHEMAS = $(gsettings_in_files:.xml.in=.xml)
@INTLTOOL_XML_NOMERGE_RULE@
@GSETTINGS_RULES@
%.desktop.in:%.desktop.in.in
$(AM_V_GEN) sed \
-e "s|\@bindir\@|$(bindir)|" \
-e "s|\@VERSION\@|$(VERSION)|" \
$< > $@
comma:=,
empty:=
space:= $(empty) $(empty)
extensions:=$(patsubst %,\"%$(extensionbase)\",$(CLASSIC_EXTENSIONS))
extension_list:=$(subst $(space),$(comma),$(extensions))
%.json:%.json.in
$(AM_V_GEN) sed \
-e "s|\@CLASSIC_EXTENSIONS\@|$(extension_list)|g" \
$< > $@
%.session: %.session.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
@INTLTOOL_DESKTOP_RULE@
EXTRA_DIST = \
$(desktop_in_in_files) \
$(session_in_in_files) \
$(xsession_in_files) \
$(mode_in_files) \
$(gsettings_in_files) \
$(theme_DATA) \
$(NULL)
CLEANFILES = \
$(desktop_DATA) \
$(session_DATA) \
$(xsession_DATA) \
$(mode_DATA) \
$(gsettings_SCHEMAS) \
$(NULL)

View File

@@ -0,0 +1,695 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg5369"
version="1.1"
inkscape:version="0.48.4 r9939"
width="96"
height="48"
sodipodi:docname="process-working-inverse.svg"
style="display:inline">
<metadata
id="metadata5375">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs5373">
<filter
id="filter3278"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3280"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3282"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3284"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3286"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3288"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3290"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3292"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3294"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3296"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3298"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3300"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3302"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3304"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3306"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3308"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3310"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3312"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3314"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3316"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3318"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3320"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3322"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3324"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3326"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3328"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3330"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3332"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3334"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3336"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix3374" />
<feColorMatrix
id="feColorMatrix3376"
type="saturate"
values="1"
result="fbSourceGraphic"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3378"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3338"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3340"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3342"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix3380" />
<feColorMatrix
id="feColorMatrix3382"
type="saturate"
values="1"
result="fbSourceGraphic"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3384"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3344"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3346"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3348"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix3386" />
<feColorMatrix
id="feColorMatrix3388"
type="saturate"
values="1"
result="fbSourceGraphic"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3390"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3350"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3352"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3354"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix3392" />
<feColorMatrix
id="feColorMatrix3394"
type="saturate"
values="1"
result="fbSourceGraphic"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3396"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3356"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3358"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3360"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix3398" />
<feColorMatrix
id="feColorMatrix3400"
type="saturate"
values="1"
result="fbSourceGraphic"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3402"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3362"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3364"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3366"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix3404" />
<feColorMatrix
id="feColorMatrix3406"
type="saturate"
values="1"
result="fbSourceGraphic"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3408"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
<filter
id="filter3368"
inkscape:label="Invert"
x="0"
y="0"
width="1"
height="1"
inkscape:menu="Color"
inkscape:menu-tooltip="Invert colors"
color-interpolation-filters="sRGB">
<feColorMatrix
id="feColorMatrix3370"
type="saturate"
values="1"
result="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3372"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 "
result="fbSourceGraphic" />
<feColorMatrix
result="fbSourceGraphicAlpha"
in="fbSourceGraphic"
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
id="feColorMatrix3410" />
<feColorMatrix
id="feColorMatrix3412"
type="saturate"
values="1"
result="fbSourceGraphic"
in="fbSourceGraphic" />
<feColorMatrix
id="feColorMatrix3414"
in="fbSourceGraphic"
values="-1 0 0 0 1 0 -1 0 0 1 0 0 -1 0 1 0 0 0 1 0 " />
</filter>
</defs>
<sodipodi:namedview
pagecolor="#808080"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1364"
inkscape:window-height="708"
id="namedview5371"
showgrid="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:zoom="5.27"
inkscape:cx="25.33344"
inkscape:cy="36.016983"
inkscape:window-x="0"
inkscape:window-y="27"
inkscape:window-maximized="0"
inkscape:current-layer="layer1">
<inkscape:grid
type="xygrid"
id="grid11933"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="tiles"
style="display:inline">
<rect
style="color:#000000;fill:#000000;fill-opacity:0;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3278)"
id="rect12451"
width="24"
height="24"
x="0"
y="0" />
<rect
y="24"
x="0"
height="24"
width="24"
id="rect12453"
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3284);opacity:0" />
<rect
y="0"
x="24"
height="24"
width="24"
id="rect12455"
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3290);opacity:0.00858369" />
<rect
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3296);opacity:0"
id="rect12457"
width="24"
height="24"
x="24"
y="24" />
<rect
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3302);opacity:0"
id="rect12459"
width="24"
height="24"
x="48"
y="0" />
<rect
y="24"
x="48"
height="24"
width="24"
id="rect12461"
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3308);opacity:0" />
<rect
y="0"
x="72"
height="24"
width="24"
id="rect12463"
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3314);opacity:0" />
<rect
style="color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;filter:url(#filter3320);opacity:0"
id="rect12465"
width="24"
height="24"
x="72"
y="24" />
</g>
<g
inkscape:groupmode="layer"
id="layer2"
inkscape:label="spinner"
sodipodi:insensitive="true">
<g
transform="matrix(0.28240106,0,0,0.28240106,146.92015,-382.52444)"
id="g10450-5"
style="display:inline;filter:url(#filter3326)">
<path
inkscape:connector-curvature="0"
style="opacity:0.6;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -477.76072,1373.3569 0,9.4717"
id="path18768"
sodipodi:nodetypes="cc"
inkscape:transform-center-y="-4.6808838" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-y="-3.3099227"
sodipodi:nodetypes="cc"
id="path18770"
d="m -461.0171,1380.2922 -7.23427,7.3824"
style="opacity:0.7;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-x="-3.3098966" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-x="-4.6808962"
style="opacity:0.8;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -454.08163,1397.0359 -9.47165,0"
id="path18772"
sodipodi:nodetypes="cc"
inkscape:transform-center-y="-2.6596956e-05" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
id="path18774"
d="m -461.01709,1413.7796 -6.93831,-7.0864"
style="opacity:0.9;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-x="-3.3098966"
inkscape:transform-center-y="3.3098652" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-y="4.6808757"
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -477.76074,1420.715 9e-5,-9.4716"
id="path18776"
sodipodi:nodetypes="cc" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
id="path18778"
d="m -494.50442,1413.7796 6.79048,-6.9384"
style="opacity:0.3;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-y="3.3098769"
inkscape:transform-center-x="3.3098883" />
<path
inkscape:connector-curvature="0"
inkscape:transform-center-x="4.6808941"
style="opacity:0.4;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
d="m -501.43987,1397.0359 9.47174,0"
id="path18780"
sodipodi:nodetypes="cc"
inkscape:transform-center-y="-2.6596956e-05" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc"
id="path18782"
d="m -494.5044,1380.2922 6.64243,6.9384"
style="opacity:0.5;color:#000000;fill:none;stroke:#ffffff;stroke-width:7.08212566;stroke-linecap:round;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
inkscape:transform-center-x="3.3098902"
inkscape:transform-center-y="-3.3099302" />
</g>
<use
style="display:inline;filter:url(#filter3332)"
x="0"
y="0"
xlink:href="#g10450-5"
id="use4981"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,36,-4.9705636)"
width="400"
height="400" />
<use
style="display:inline;filter:url(#filter3338)"
x="0"
y="0"
xlink:href="#use4981"
id="use4983"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,43.032478,-21.909695)"
width="400"
height="400" />
<use
style="display:inline;filter:url(#filter3344)"
x="0"
y="0"
xlink:href="#use4983"
id="use4985"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,50.081986,-38.904617)"
width="400"
height="400" />
<use
style="display:inline;filter:url(#filter3350)"
x="0"
y="0"
xlink:href="#use4985"
id="use4987"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,-38.919996,-31.872139)"
width="400"
height="400" />
<use
style="display:inline;filter:url(#filter3356)"
x="0"
y="0"
xlink:href="#use4987"
id="use4989"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,52.986628,2.0890543)"
width="400"
height="400" />
<use
style="display:inline;filter:url(#filter3362)"
x="0"
y="0"
xlink:href="#use4989"
id="use4991"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,60.013026,-14.912936)"
width="400"
height="400" />
<use
style="display:inline;filter:url(#filter3368)"
x="0"
y="0"
xlink:href="#use4991"
id="use4993"
transform="matrix(0.70710678,0.70710678,-0.70710678,0.70710678,67.022396,-31.859127)"
width="400"
height="400" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -0,0 +1,250 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="toggle-off-us.svg">
<defs
id="defs10867">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,27.810405,92.069729)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
id="linearGradient62821-5-8">
<stop
id="stop62823-2-4"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient62852-6-5-3">
<stop
id="stop62854-6-7-6"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0-3" />
<stop
id="stop62860-5-3-9"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect62829-6-8-0"
is_visible="true" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62821-5-8-1"
id="linearGradient62864-0-3-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3066667,0,0,1,-197.64667,0)"
x1="702.58966"
y1="484.49405"
x2="702.58966"
y2="507.42715" />
<linearGradient
id="linearGradient62821-5-8-1">
<stop
id="stop62823-2-4-2"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8-9"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="507.42715"
x2="702.58966"
y1="484.49405"
x1="702.58966"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
gradientUnits="userSpaceOnUse"
id="linearGradient11647"
xlink:href="#linearGradient62821-5-8-1"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="-133.20351"
inkscape:cy="20.84411"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1380"
inkscape:window-x="1600"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:url(#linearGradient62864-0-3-1);fill-opacity:1;stroke:#a6a8a6;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#777b7a;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect62937"
width="29.97398"
height="17.022524"
x="646.55896"
y="485.61429"
rx="1"
ry="1" />
<g
transform="translate(-38.048674,-1.9445437)"
id="g62939">
<rect
ry="1"
rx="1"
y="492"
x="695"
height="8"
width="2"
id="rect62941"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="699"
height="8"
width="2"
id="rect62943"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="703"
height="8"
width="2"
id="rect62945"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
</g>
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 647.78624,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 647.78624,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g11665"
transform="matrix(0.78906097,0,0,0.78906097,178.78814,111.57844)" />
<path
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
transform="translate(642.41421,514.02037)"
d="m 55,11.875 a 4.625,4.625 0 1 1 -9.25,0 4.625,4.625 0 1 1 9.25,0 z"
sodipodi:ry="4.625"
sodipodi:rx="4.625"
sodipodi:cy="11.875"
sodipodi:cx="50.375"
id="path3786"
sodipodi:type="arc" />
<path
sodipodi:type="arc"
id="path3016"
sodipodi:cx="50.375"
sodipodi:cy="11.875"
sodipodi:rx="4.625"
sodipodi:ry="4.625"
d="m 55,11.875 a 4.625,4.625 0 1 1 -9.25,0 4.625,4.625 0 1 1 9.25,0 z"
transform="translate(642.41421,512.02037)"
style="fill:none;stroke:#555753;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.1 KiB

View File

@@ -0,0 +1,255 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.48+devel r12050"
sodipodi:docname="toggle-off-us.svg">
<defs
id="defs10867">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,27.810405,92.069729)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
id="linearGradient62821-5-8">
<stop
id="stop62823-2-4"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient62852-6-5-3">
<stop
id="stop62854-6-7-6"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0-3" />
<stop
id="stop62860-5-3-9"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect62829-6-8-0"
is_visible="true" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62821-5-8-1"
id="linearGradient62864-0-3-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3066667,0,0,1,-197.64667,0)"
x1="702.58966"
y1="484.49405"
x2="702.58966"
y2="507.42715" />
<linearGradient
id="linearGradient62821-5-8-1">
<stop
id="stop62823-2-4-2"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8-9"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="507.42715"
x2="702.58966"
y1="484.49405"
x1="702.58966"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
gradientUnits="userSpaceOnUse"
id="linearGradient11647"
xlink:href="#linearGradient62821-5-8-1"
inkscape:collect="always" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="50.925774"
inkscape:cy="11.296867"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="1600"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:url(#linearGradient62864-0-3-1);fill-opacity:1;stroke:#a6a8a6;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;clip-rule:nonzero"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#777b7a;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect62937"
width="29.97398"
height="17.022524"
x="646.55896"
y="485.61429"
rx="1"
ry="1" />
<g
transform="translate(-38.048674,-1.9445437)"
id="g62939">
<rect
ry="1"
rx="1"
y="492"
x="695"
height="8"
width="2"
id="rect62941"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="699"
height="8"
width="2"
id="rect62943"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="703"
height="8"
width="2"
id="rect62945"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
</g>
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 647.78624,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 647.78624,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g11665"
transform="matrix(0.78906097,0,0,0.78906097,167.78814,111.57844)">
<text
xml:space="preserve"
style="font-size:13.14816952px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;display:inline;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
x="644.02277"
y="534.94739"
id="text62949-7"
sodipodi:linespacing="125%"
transform="scale(1.0113976,0.98873084)"><tspan
sodipodi:role="line"
id="tspan62951-7"
x="644.02277"
y="534.94739">OFF</tspan></text>
<text
xml:space="preserve"
style="font-size:12.69556618px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
x="644.46393"
y="533.87158"
id="text62949"
sodipodi:linespacing="125%"
transform="scale(1.0113976,0.98873084)"><tspan
sodipodi:role="line"
id="tspan62951"
x="644.46393"
y="533.87158">OFF</tspan></text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.5 KiB

View File

@@ -0,0 +1,199 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.48.4 r9939"
sodipodi:docname="toggle-on-us.svg">
<defs
id="defs10867">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62991-9-6"
id="linearGradient62979-8-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3066667,0,0,1,-197.64667,0)"
x1="702.58966"
y1="484.49405"
x2="702.58966"
y2="507.42715" />
<linearGradient
inkscape:collect="always"
id="linearGradient62991-9-6">
<stop
style="stop-color:#589fe9;stop-opacity:1"
offset="0"
id="stop62993-6-9" />
<stop
style="stop-color:#a3cefe;stop-opacity:1"
offset="1"
id="stop62995-1-6" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,57.747905,92.132229)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="14.199007"
inkscape:cy="11.127758"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1380"
inkscape:window-x="1600"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:url(#linearGradient62979-8-1);fill-opacity:1;stroke:#1a71cc;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#777b7a;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect62937"
width="29.97398"
height="17.022524"
x="676.49646"
y="485.67679"
rx="1"
ry="1" />
<g
transform="translate(-7.9861743,-1.9445437)"
id="g62939">
<rect
ry="1"
rx="1"
y="492"
x="695"
height="8"
width="2"
id="rect62941"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="699"
height="8"
width="2"
id="rect62943"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="703"
height="8"
width="2"
id="rect62945"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
</g>
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 677.59874,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 677.59874,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
inkscape:connector-curvature="0"
id="path4444"
d="m 661.91421,522.09451 0,7"
style="fill:none;stroke:#1a71cc;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;fill-opacity:1;fill-rule:nonzero;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 18,7.96875 0,7"
id="path3922"
inkscape:connector-curvature="0"
transform="translate(643.91421,513.06326)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -0,0 +1,212 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.48+devel r12050"
sodipodi:docname="toggle-on-us.svg">
<defs
id="defs10867">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62991-9-6"
id="linearGradient62979-8-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.3066667,0,0,1,-197.64667,0)"
x1="702.58966"
y1="484.49405"
x2="702.58966"
y2="507.42715" />
<linearGradient
inkscape:collect="always"
id="linearGradient62991-9-6">
<stop
style="stop-color:#589fe9;stop-opacity:1"
offset="0"
id="stop62993-6-9" />
<stop
style="stop-color:#a3cefe;stop-opacity:1"
offset="1"
id="stop62995-1-6" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,57.747905,92.132229)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="8.2018252"
inkscape:cy="8.0650495"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1375"
inkscape:window-x="1600"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:url(#linearGradient62979-8-1);fill-opacity:1;stroke:#1a71cc;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#777b7a;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect62937"
width="29.97398"
height="17.022524"
x="676.49646"
y="485.67679"
rx="1"
ry="1" />
<g
transform="translate(-7.9861743,-1.9445437)"
id="g62939">
<rect
ry="1"
rx="1"
y="492"
x="695"
height="8"
width="2"
id="rect62941"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="699"
height="8"
width="2"
id="rect62943"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
<rect
ry="1"
rx="1"
y="492"
x="703"
height="8"
width="2"
id="rect62945"
style="fill:#e8e8e5;fill-opacity:1;stroke:none;display:inline" />
</g>
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 677.59874,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 677.59874,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<text
transform="scale(1.0113976,0.98873084)"
sodipodi:linespacing="125%"
id="text62949-7"
y="534.96918"
x="646.71399"
style="font-size:10.01104736px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#1a71cc;fill-opacity:1;stroke:none;display:inline;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
xml:space="preserve"><tspan
y="534.96918"
x="646.71399"
id="tspan62951-7"
sodipodi:role="line">ON</tspan></text>
<text
transform="scale(1.0113976,0.98873084)"
sodipodi:linespacing="125%"
id="text62949"
y="533.94482"
x="646.71399"
style="font-size:10.01104736px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
xml:space="preserve"><tspan
y="533.94482"
x="646.71399"
id="tspan62951"
sodipodi:role="line">ON</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.9 KiB

10
data/classic.json.in Normal file
View File

@@ -0,0 +1,10 @@
{
"parentMode": "user",
"stylesheetName": "gnome-classic.css",
"overridesSchema": "org.gnome.shell.extensions.classic-overrides",
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
"panel": { "left": ["activities", "appMenu"],
"center": [],
"right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"]
}
}

282
data/gnome-classic.css Normal file
View File

@@ -0,0 +1,282 @@
@import url("gnome-shell.css");
/* FIXME:
- white edge highlight with text-shadow and icon-shadow for panel-button
- better shading of the panel (dark 5%) - impossible without multipoint gradients, image-bg is a hack
*/
#panel {
background-color: #e9e9e9 !important;
background-gradient-direction: vertical;
background-gradient-end: #d0d0d0;
border-top-color: #666; /* we don't support non-uniform border-colors and
use the top border color for any border, so we
need to set it even if all we want is a bottom
border */
border-bottom: 1px solid #666;
app-icon-bottom-clip: 0px;
/* hrm, still no multipoint gradients
background-image: linear-gradient(left, rgba(255, 255, 255, 0), rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0)) !important;*/
}
#panel:overview {
background-color: #000 !important;
background-gradient-end: #000 !important;
border-top-color: #000;
border-bottom: 1px solid #000 !important;
}
#panel.lock-screen {
background-color: rgba(0,0,0,0.3) !important;
background-gradient-end: rgba(0,0,0,0.3) !important;
border-top-color: transparent;
}
#panel.unlock-screen {
background-color: transparent !important;
background-gradient-end: transparent !important;
border-top-color: transparent;
}
/* TOP BAR */
.panel-corner,
.panel-corner:active,
.panel-corner:overview,
.panel-corner:focus {
-panel-corner-radius: 0 !important;
}
.panel-button {
color: #555 !important;
-natural-hpadding: 6px !important;
-minimum-hpadding: 3px !important;
}
#panel:overview .panel-button,
#panel.lock-screen .panel-button,
#panel.unlock-screen .panel-button {
color: #ccc !important;
}
.panel-button:hover {
color: #000 !important;
}
#panel:overview .panel-button:hover,
#panel:overview .panel-button:active {
color: white !important;
}
.panel-button > .system-status-icon {
icon-shadow: #fff 0 1px 0 !important; /* FIXME */
}
.panel-button:hover,
.panel-button:active,
.panel-button:overview,
.panel-button:focus {
text-shadow: 0 0 0 transparent !important; /* FIXME: why can't I do none ? */
}
.panel-button:active,
.panel-button:overview,
.panel-button:focus {
background-color: #4a90d9 !important; /* FIXME */
color: #fff !important;
border: none !important;
border-image: none !important;
background-image: none !important;
}
#panelUserMenu {
padding: 0 10px 0 10px !important;
}
#appMenu {
text-shadow: 0 0 0 transparent !important;
spinner-image: url("classic-process-working.svg");
}
/* used for the app menu header only */
.label-shadow {
color: rgba(0,0,0,0.5);
}
.label-shadow {
color: rgba(255,255,255,.5) !important;
}
.panel-button:active .label-shadow,
.panel-button:focus .label-shadow {
color: rgba(0,0,0,.5) !important;
}
.popup-menu-boxpointer {
-arrow-background-color: #e9e9e9 !important;
-arrow-border-width: 1px !important;
-arrow-border-color: #aaa !important;
-arrow-border-radius: 3px !important;
color: #000 !important;
-arrow-base: 11px !important;
-arrow-rise: 5px !important;
}
.popup-combo-menu {
background-color: #e9e9e9 !important;
border: 1px solid #aaa !important;
color: #000 !important;
}
.popup-menu-item:active {
background-color: #4a90d9 !important;
color: #fff !important;
}
.popup-menu-item:insensitive {
color: #888;
}
.popup-separator-menu-item {
-gradient-height: 1px;
-gradient-start: rgba(0,0,0,0.0);
-gradient-end: rgba(0,0,0,0.15);
-margin-horizontal: 24px;
height: 1px;
padding: 8px 0px;
}
.popup-menu-item:hover .popup-status-menu-item {
color: #fff;
}
.popup-subtitle-menu-item, .popup-subtitle-menu-item:insensitive {
color: #000;
}
.popup-submenu-menu-item:open {
background-color: #888;
color: #fff;
}
.popup-sub-menu {
background-gradient-start: #ddd;
background-gradient-end: #dfdfdf;
background-gradient-direction: vertical;
box-shadow: inset 0px 1px 3px rgba(0,0,0,0.4);
}
/* SCROLLBARS for POPUP MENU */
.popup-menu StScrollBar StBin#trough {
background-color: transparent;
}
.popup-menu StScrollBar StButton#vhandle, .popup-menu StScrollBar StButton#hhandle {
border-color: #e9e9e9;
background-color: #888;
}
.popup-menu StScrollBar StButton#vhandle:hover,
.popup-menu StScrollBar StButton#hhandle:hover {
background-color: #666;
}
.popup-menu StScrollBar StButton#vhandle:active,
.popup-menu StScrollBar StButton#hhandle:active {
background-color: #4a90d9;
}
/* CALENDAR */
.calendar {}
.calendar-month-label {
color: #333 !important;
}
.datemenu-date-label,
.events-day-header {
color: #666 !important;
}
.calendar-day-base:active {
color: #fff !important;
background-color: #4a90d9 !important;
background-image: none !important;
border-image: none !important;
}
.calendar-today {
background-color: #4a90d9 !important;
background-image: none !important;
border-image: none !important;
}
.calendar-day-base {
color: #666 !important;
}
.calendar-day-base:hover {
background-color: #666 !important;
color: #fff !important;
}
.calendar-nonwork-day {
color: #999 !important;
}
.events-day-dayname,
.events-day-time {
color: #666 !important;
}
/* SYSTEM MENU */
.system-menu-action {
color: #e6e6e6;
border: 1px solid #ddd; /* using rgba() is flaky unfortunately */
}
.system-menu-action:hover,
.system-menu-action:focus,
.system-menu-action:active {
color: white;
background-color: #4a90d9;
border: none;
}
/* VOLUME SLIDER */
.slider {
-slider-background-color: #e9e9e9;
-slider-border-color: #999;
-slider-active-background-color: #76b0ec;
-slider-active-border-color: #1f6dbc;
-slider-handle-border-color: #888;
-slider-handle-border-width: 1px;
}
.popup-menu-icon {
color: #000 !important;
}
/* ON OFF switch */
.toggle-switch-us {
background-image: url("classic-toggle-off-us.svg");
background-size: contain;
}
.toggle-switch-us:checked {
background-image: url("classic-toggle-on-us.svg");
background-size: contain;
}
.toggle-switch-intl {
background-image: url("classic-toggle-off-intl.svg");
background-size: contain;
}
.toggle-switch-intl:checked {
background-image: url("classic-toggle-on-intl.svg");
background-size: contain;
}
.system-menu-action {
color: #555 !important;
}
.system-menu-action:hover,
.system-menu-action:focus {
color: black !important;
}

View File

@@ -0,0 +1,7 @@
[Desktop Entry]
_Name=GNOME Classic
_Comment=This session logs you into GNOME Classic
Exec=gnome-session --session gnome-classic
TryExec=gnome-session
Icon=
Type=Application

View File

@@ -0,0 +1,3 @@
[GNOME Session]
_Name=GNOME Classic
RequiredComponents=gnome-shell-classic;gnome-settings-daemon;nautilus-classic;

View File

@@ -0,0 +1,17 @@
[Desktop Entry]
Type=Application
_Name=GNOME Shell Classic
_Comment=Window management and application launching
Exec=@bindir@/gnome-shell --mode=classic
TryExec=@bindir@/gnome-shell
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=gnome-shell
X-GNOME-Bugzilla-Component=general
X-GNOME-Bugzilla-Version=@VERSION@
Categories=GNOME;GTK;Core;
OnlyShowIn=GNOME;
NoDisplay=true
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=panel;windowmanager;
X-GNOME-Autostart-Notify=true
X-GNOME-AutoRestart=false

View File

@@ -0,0 +1,38 @@
<schemalist>
<schema id="org.gnome.shell.extensions.classic-overrides"
path="/org/gnome/shell/extensions/classic-overrides/"
gettext-domain="gnome-shell-extensions">
<key name="attach-modal-dialogs" type="b">
<default>true</default>
<_summary>Attach modal dialog to the parent window</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running
GNOME Shell.
</_description>
</key>
<key name="edge-tiling" type="b">
<default>true</default>
<_summary>Enable edge tiling when dropping windows on screen edges</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</_description>
</key>
<key name="workspaces-only-on-primary" type="b">
<default>true</default>
<_summary>Workspaces only on primary monitor</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</_description>
</key>
<key name="focus-change-on-pointer-rest" type="b">
<default>true</default>
<_summary>Delay focus changes in mouse mode until the pointer stops moving</_summary>
<_description>
This key overrides the key in org.gnome.mutter when running GNOME Shell.
</_description>
</key>
</schema>
</schemalist>

View File

@@ -11,7 +11,7 @@ metadata.json: metadata.json.in $(top_builddir)/config.status
-e "s|[@]uuid@|$(uuid)|" \
-e "s|[@]gschemaname@|$(gschemaname)|" \
-e "s|[@]gettext_domain@|$(GETTEXT_PACKAGE)|" \
-e "s|[@]shell_current@|$(PACKAGE_VERSION)|" \
-e "s|[@]shell_current@|$(SHELL_VERSION)|" \
-e "s|[@]url@|$(extensionurl)|" \
$< > $@

View File

@@ -1,6 +1,5 @@
EXTENSION_ID = alternate-tab
EXTRA_MODULES = settings.js
EXTRA_MODULES = prefs.js
include ../../extension.mk
include ../../settings.mk

View File

@@ -1,487 +1,66 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* most of the code is borrowed from
* > js/ui/altTab.js <
* of the gnome-shell source code
*/
/* -*- mode: js; js-basic-offset: 4; indent-tabs-mode: nil -*- */
const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const AltTab = imports.ui.altTab;
const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog;
const Tweener = imports.ui.tweener;
const WindowManager = imports.ui.windowManager;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(e) { return e };
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const Settings = Me.imports.settings;
let settings;
const POPUP_DELAY_TIMEOUT = 150; // milliseconds
const SETTINGS_BEHAVIOUR_KEY = 'behaviour';
const SETTINGS_FIRST_TIME_KEY = 'first-time';
const AltTabPopupWorkspaceIcons = new Lang.Class({
Name: 'AlternateTab.AltTabPopupWorkspaceIcons',
Extends: AltTab.AltTabPopup,
_windowActivated : function(thumbnailList, n) { },
show : function(backward, binding, mask) {
let appSys = Shell.AppSystem.get_default();
let apps = appSys.get_running ();
if (!apps.length)
return false;
if (!Main.pushModal(this.actor)) {
// Probably someone else has a pointer grab, try again with keyboard only
if (!Main.pushModal(this.actor, global.get_current_time(), Meta.ModalOptions.POINTER_ALREADY_GRABBED)) {
return false;
}
}
this._haveModal = true;
this._modifierMask = AltTab.primaryModifier(mask);
this.actor.connect('key-press-event', Lang.bind(this, this._keyPressEvent));
this.actor.connect('key-release-event', Lang.bind(this, this._keyReleaseEvent));
this.actor.connect('button-press-event', Lang.bind(this, this._clickedOutside));
this.actor.connect('scroll-event', Lang.bind(this, this._onScroll));
this._appSwitcher = new WindowSwitcher(apps, this);
this.actor.add_actor(this._appSwitcher.actor);
this._appSwitcher.connect('item-activated', Lang.bind(this, this._appActivated));
this._appSwitcher.connect('item-entered', Lang.bind(this, this._appEntered));
this._appIcons = this._appSwitcher.icons;
// Need to force an allocation so we can figure out whether we
// need to scroll when selecting
this.actor.opacity = 0;
this.actor.show();
this.actor.get_allocation_box();
// Make the initial selection
if (binding == 'switch_group') {
//see AltTab.AltTabPopup.show function
//cached windows are always of length one, so select first app and the window
//the direction doesn't matter, so ignore backward
this._select(0, 0);
} else if (binding == 'switch_group_backward') {
this._select(0, 0);
} else if (binding == 'switch_windows_backward') {
this._select(this._appIcons.length - 1);
} else if (this._appIcons.length == 1) {
this._select(0);
} else if (backward) {
this._select(this._appIcons.length - 1);
} else {
this._select(1);
}
// There's a race condition; if the user released Alt before
// we got the grab, then we won't be notified. (See
// https://bugzilla.gnome.org/show_bug.cgi?id=596695 for
// details.) So we check now. (Have to do this after updating
// selection.)
let [x, y, mods] = global.get_pointer();
if (!(mods & this._modifierMask)) {
this._finish();
return false;
}
// We delay showing the popup so that fast Alt+Tab users aren't
// disturbed by the popup briefly flashing.
this._initialDelayTimeoutId = Mainloop.timeout_add(POPUP_DELAY_TIMEOUT,
Lang.bind(this, function () {
this.actor.opacity = 255;
this._initialDelayTimeoutId = 0;
}));
return true;
},
_finish : function() {
let app = this._appIcons[this._currentApp];
if (!app)
return;
Main.activateWindow(app.cachedWindows[0]);
this.destroy();
}
});
const AppIcon = new Lang.Class({
Name: 'AlternateTab.AppIcon',
Extends: AltTab.AppIcon,
_init: function(app, window) {
this.app = app;
this.cachedWindows = [];
this.cachedWindows.push(window);
this.actor = new St.BoxLayout({ style_class: 'alt-tab-app',
vertical: true });
this.icon = null;
this._iconBin = new St.Bin({ x_fill: true, y_fill: true });
this.actor.add(this._iconBin, { x_fill: false, y_fill: false } );
let title = window.get_title();
if (title) {
this.label = new St.Label({ text: title });
let bin = new St.Bin({ x_align: St.Align.MIDDLE });
bin.add_actor(this.label);
this.actor.add(bin);
}
else {
this.label = new St.Label({ text: this.app.get_name() });
this.actor.add(this.label, { x_fill: false });
}
}
});
const WindowSwitcher = new Lang.Class({
Name: 'AlternateTab.WindowSwitcher',
Extends: AltTab.AppSwitcher,
_init : function(apps, altTabPopup) {
// Horrible HACK!
// We inherit from AltTab.AppSwitcher, but only chain up to
// AltTab.SwitcherList._init, to bypass AltTab.AppSwitcher._init
AltTab.SwitcherList.prototype._init.call(this, true);
// Construct the AppIcons, sort by time, add to the popup
let activeWorkspace = global.screen.get_active_workspace();
let workspaceIcons = [];
let otherIcons = [];
for (let i = 0; i < apps.length; i++) {
// Cache the window list now; we don't handle dynamic changes here,
// and we don't want to be continually retrieving it
let windows = apps[i].get_windows();
for(let j = 0; j < windows.length; j++) {
let appIcon = new AppIcon(apps[i], windows[j]);
if (this._isWindowOnWorkspace(windows[j], activeWorkspace)) {
workspaceIcons.push(appIcon);
}
else {
otherIcons.push(appIcon);
}
}
}
workspaceIcons.sort(Lang.bind(this, this._sortAppIcon));
otherIcons.sort(Lang.bind(this, this._sortAppIcon));
if(otherIcons.length > 0) {
let mostRecentOtherIcon = otherIcons[0];
otherIcons = [];
otherIcons.push(mostRecentOtherIcon);
}
this.icons = [];
this._arrows = [];
for (let i = 0; i < workspaceIcons.length; i++)
this._addIcon(workspaceIcons[i]);
if (workspaceIcons.length > 0 && otherIcons.length > 0)
this.addSeparator();
for (let i = 0; i < otherIcons.length; i++)
this._addIcon(otherIcons[i]);
this._curApp = -1;
this._iconSize = 0;
this._altTabPopup = altTabPopup;
this._mouseTimeOutId = 0;
},
_isWindowOnWorkspace: function(w, workspace) {
if (w.get_workspace() == workspace)
return true;
return false;
},
_sortAppIcon : function(appIcon1, appIcon2) {
let t1 = appIcon1.cachedWindows[0].get_user_time();
let t2 = appIcon2.cachedWindows[0].get_user_time();
if (t2 > t1) return 1;
else return -1;
}
});
const AltTabPopupAllThumbnails = new Lang.Class({
Name: 'AlternateTab.AltTabPopup.AllThumbnails',
Extends: AltTab.AltTabPopup,
_init : function() {
this.actor = new Shell.GenericContainer({ name: 'altTabPopup',
reactive: true });
this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this.actor.connect('allocate', Lang.bind(this, this._allocate));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this._haveModal = false;
this._currentApp = 0;
this._currentWindow = -1;
this._thumbnailTimeoutId = 0;
this._motionTimeoutId = 0;
// Initially disable hover so we ignore the enter-event if
// the switcher appears underneath the current pointer location
this._disableHover();
//this.show();
Main.uiGroup.add_actor(this.actor);
//this._select(0);
},
show : function(backward, binding, mask) {
let windows = global.get_window_actors();
let list = '';
let normal_windows= [];
let appIcons = [];
let appSys = Shell.AppSystem.get_default();
let apps = appSys.get_running();
for (let w = windows.length-1; w >= 0; w--) {
let win = windows[w].get_meta_window();
normal_windows.push(win);
}
normal_windows.sort(Lang.bind(this, this._sortWindows));
let win_on_top = normal_windows.shift();
normal_windows.push(win_on_top);
windows = normal_windows;
for (let w = 0; w < windows.length; w++) {
let win = windows[w];
let ap1 = null;
for (let i = 0;i < apps.length; i++) {
let app_wins = apps[i].get_windows();
for (let j = 0;j < app_wins.length; j++) {
if (app_wins[j] == win)
ap1 = new AltTab.AppIcon(apps[i]);
}
}
if (ap1 != null) {
ap1.cachedWindows = [win];
appIcons.push(ap1);
}
}
if (!windows.length) {
this.destroy();
return false;
}
if (!Main.pushModal(this.actor)) {
// Probably someone else has a pointer grab, try again with keyboard only
if (!Main.pushModal(this.actor, global.get_current_time(), Meta.ModalOptions.POINTER_ALREADY_GRABBED)) {
return false;
}
}
this._haveModal = true;
this._modifierMask = AltTab.primaryModifier(mask);
this.actor.connect('key-press-event', Lang.bind(this, this._keyPressEvent));
this.actor.connect('key-release-event', Lang.bind(this, this._keyReleaseEvent));
this.actor.connect('button-press-event', Lang.bind(this, this._clickedOutside));
this.actor.connect('scroll-event', Lang.bind(this, this._onScroll));
this._appSwitcher = new WindowList(windows);
this._appSwitcher._altTabPopup=this;
this.actor.add_actor(this._appSwitcher.actor);
this._appSwitcher.connect('item-activated', Lang.bind(this, this._appActivated));
this._appSwitcher.connect('item-entered', Lang.bind(this, this._appEntered));
this._appIcons = appIcons;
// make the initial selection
if (backward)
this._select(windows.length - 2);
else
this._select(0);
this.actor.opacity = 0;
this.actor.show();
// There's a race condition; if the user released Alt before
// we got the grab, then we won't be notified. (See
// https://bugzilla.gnome.org/show_bug.cgi?id=596695 for
// details.) So we check now. (Have to do this after updating
// selection.)
let [x, y, mods] = global.get_pointer();
if (!(mods & this._modifierMask)) {
this._finish();
return false;
}
// We delay showing the popup so that fast Alt+Tab users aren't
// disturbed by the popup briefly flashing.
this._initialDelayTimeoutId = Mainloop.timeout_add(AltTab.POPUP_DELAY_TIMEOUT,
Lang.bind(this, function () {
this.actor.opacity = 255;
this._initialDelayTimeoutId = 0;
}));
return true
},
_sortWindows : function(win1,win2) {
let t1 = win1.get_user_time();
let t2 = win2.get_user_time();
if (t2 > t1) return 1;
else return -1;
},
_appActivated : function(thumbnailList, n) {
let appIcon = this._appIcons[this._currentApp];
Main.activateWindow(appIcon.cachedWindows[0]);
this.destroy();
},
_finish : function() {
let app = this._appIcons[this._currentApp];
Main.activateWindow(app.cachedWindows[0]);
this.destroy();
},
});
const WindowList = new Lang.Class({
Name: 'AlternateTab.WindowList',
Extends: AltTab.SwitcherList,
_init : function(windows) {
this.parent(true);
let activeWorkspace = global.screen.get_active_workspace();
this._labels = new Array();
this._thumbnailBins = new Array();
this._clones = new Array();
this._windows = windows;
this._arrows = new Array();
this.icons = new Array();
for (let w = 0; w < windows.length; w++) {
let arrow = new St.DrawingArea({ style_class: 'switcher-arrow' });
arrow.connect('repaint', Lang.bind(this, function (area) {
Shell.draw_box_pointer(area, Shell.PointerDirection.DOWN);
}));
this._list.add_actor(arrow);
this._arrows.push(arrow);
arrow.hide();
let win=windows[w];
let appSys = Shell.AppSystem.get_default();
let apps = appSys.get_running();
let ap1 = null;
for (let i = 0; i < apps.length; i++) {
let app_wins = apps[i].get_windows();
for (let j = 0; j < app_wins.length; j++) {
if (app_wins[j] == win) {
ap1 = new AltTab.AppIcon(apps[i]);
let mutterWindow = win.get_compositor_private();
let windowTexture = mutterWindow.get_texture ();
let [width, height] = windowTexture.get_size();
let scale = Math.min(1.0, 128 / width, 128 / height);
let clone = new Clutter.Clone ({ source: windowTexture, reactive: true, width: width * scale, height: height * scale });
ap1.icon = ap1.app.create_icon_texture(128);
ap1._iconBin.set_size(128,128);
ap1._iconBin.child = clone;
ap1.label.text = win.get_title();
}
}
}
if (ap1 != null) {
ap1.cachedWindows = [win];
this.addItem(ap1.actor, ap1.label);
this.icons.push(ap1);
}
}
},
addSeparator: function () {
this._separator=null;
}
});
const MODES = {
all_thumbnails: AltTabPopupAllThumbnails,
workspace_icons: AltTabPopupWorkspaceIcons,
};
function doAltTab(display, screen, window, binding) {
if(settings.get_boolean(SETTINGS_FIRST_TIME_KEY)) {
let dialog = new Settings.AltTabSettingsDialog(settings);
dialog.open();
return;
}
let behaviour = settings.get_string(SETTINGS_BEHAVIOUR_KEY);
// alt-tab having no effect is unexpected, even with wrong settings
if (!(behaviour in MODES))
behaviour = 'all_thumbnails';
if (Main.wm._workspaceSwitcherPopup)
Main.wm._workspaceSwitcherPopup.actor.hide();
let modifiers = binding.get_modifiers()
let backwards = modifiers & Meta.VirtualModifier.SHIFT_MASK;
let constructor = MODES[behaviour];
let popup = new constructor();
if (!popup.show(backwards, binding.get_name(), binding.get_mask()))
popup.destroy();
}
let injections = {};
function init(metadata) {
Convenience.initTranslations();
settings = Convenience.getSettings();
}
function setKeybinding(name, func) {
Main.wm.setCustomKeybindingHandler(name, Shell.KeyBindingMode.NORMAL, func);
}
function enable() {
Meta.keybindings_set_custom_handler('switch-windows', doAltTab);
Meta.keybindings_set_custom_handler('switch-group', doAltTab);
Meta.keybindings_set_custom_handler('switch-windows-backward', doAltTab);
Meta.keybindings_set_custom_handler('switch-group-backward', doAltTab);
injections['_initialSelection'] = AltTab.WindowSwitcherPopup.prototype._initialSelection;
AltTab.WindowSwitcherPopup.prototype._initialSelection = function(backward, binding) {
if (binding == 'switch-windows-backward' ||
binding == 'switch-applications-backward' ||
binding == 'switch-group-backward' || backward)
this._select(this._items.length - 1);
else if (this._items.length == 1)
this._select(0);
else
this._select(1);
};
injections['_keyPressHandler'] = AltTab.WindowSwitcherPopup.prototype._keyPressHandler;
AltTab.WindowSwitcherPopup.prototype._keyPressHandler = function(keysym, backwards, action) {
if (action == Meta.KeyBindingAction.SWITCH_WINDOWS ||
action == Meta.KeyBindingAction.SWITCH_APPLICATIONS ||
action == Meta.KeyBindingAction.SWITCH_GROUP) {
this._select(backwards ? this._previous() : this._next());
} else if (action == Meta.KeyBindingAction.SWITCH_WINDOWS_BACKWARD ||
action == Meta.KeyBindingAction.SWITCH_APPLICATIONS_BACKWARD ||
action == Meta.KeyBindingAction.SWITCH_GROUP_BACKWARD) {
this._select(this._previous());
} else {
if (keysym == Clutter.Left)
this._select(this._previous());
else if (keysym == Clutter.Right)
this._select(this._next());
}
};
setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._startWindowSwitcher));
setKeybinding('switch-group', Lang.bind(Main.wm, Main.wm._startWindowSwitcher));
setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._startWindowSwitcher));
setKeybinding('switch-group-backward', Lang.bind(Main.wm, Main.wm._startWindowSwitcher));
}
function disable() {
Meta.keybindings_set_custom_handler('switch-windows', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
Meta.keybindings_set_custom_handler('switch-group', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
Meta.keybindings_set_custom_handler('switch-windows-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
Meta.keybindings_set_custom_handler('switch-group-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
var prop;
setKeybinding('switch-applications', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
setKeybinding('switch-group', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
setKeybinding('switch-applications-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
setKeybinding('switch-group-backward', Lang.bind(Main.wm, Main.wm._startAppSwitcher));
for (prop in injections)
AltTab.WindowSwitcherPopup.prototype[prop] = injections[prop];
}

View File

@@ -4,7 +4,7 @@
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "AlternateTab",
"description": "A replacement for Alt-Tab, allows to cycle between windows and does not group by application",
"description": "Substitute Alt-Tab with a window based switcher that does not group by application.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME Bugzilla instead.",
"original-authors": [ "jw@bargsten.org", "thomas.bouffon@gmail.com" ],
"shell-version": [ "@shell_current@" ],
"url": "@url@"

View File

@@ -1,18 +0,0 @@
<schemalist gettext-domain="gnome-shell-extensions">
<enum id="org.gnome.shell.extensions.alternate-tab.BehaviourMode">
<value value="1" nick="all_thumbnails"/>
<value value="2" nick="workspace_icons"/>
</enum>
<schema id="org.gnome.shell.extensions.alternate-tab" path="/org/gnome/shell/extensions/alternate-tab/">
<key name="behaviour" enum="org.gnome.shell.extensions.alternate-tab.BehaviourMode">
<default>'all_thumbnails'</default>
<_summary>The alt tab behaviour.</_summary>
<_description>Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and workspace_icons.</_description>
</key>
<key type="b" name="first-time">
<default>true</default>
<_summary>Indicates if Alternate Tab is newly installed</_summary>
<_description>Ask the user for a default behaviour if true.</_description>
</key>
</schema>
</schemalist>

View File

@@ -0,0 +1,78 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const GObject = imports.gi.GObject;
const Lang = imports.lang;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(e) { return e };
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const SETTINGS_APP_ICON_MODE = 'app-icon-mode';
const SETTINGS_CURRENT_WORKSPACE_ONLY = 'current-workspace-only';
const MODES = {
'thumbnail-only': N_("Thumbnail only"),
'app-icon-only': N_("Application icon only"),
'both': N_("Thumbnail and application icon"),
};
const AltTabSettingsWidget = new GObject.Class({
Name: 'AlternateTab.Prefs.AltTabSettingsWidget',
GTypeName: 'AltTabSettingsWidget',
Extends: Gtk.Grid,
_init : function(params) {
this.parent(params);
this.margin = 10;
this.orientation = Gtk.Orientation.VERTICAL;
this._settings = new Gio.Settings({ schema: 'org.gnome.shell.window-switcher' });
let presentLabel = _("Present windows as");
this.add(new Gtk.Label({ label: presentLabel, sensitive: true,
margin_bottom: 10, margin_top: 5 }));
let top = 1;
let radio = null;
let currentMode = this._settings.get_string(SETTINGS_APP_ICON_MODE);
for (let mode in MODES) {
// copy the mode variable because it has function scope, not block scope
// so cannot be used in a closure
let modeCapture = mode;
let name = Gettext.gettext(MODES[mode]);
radio = new Gtk.RadioButton({ group: radio, label: name, valign: Gtk.Align.START });
radio.connect('toggled', Lang.bind(this, function(widget) {
if (widget.active)
this._settings.set_string(SETTINGS_APP_ICON_MODE, modeCapture);
}));
this.add(radio);
if (mode == currentMode)
radio.active = true;
top += 1;
}
let check = new Gtk.CheckButton({ label: _("Show only windows in the current workspace"),
margin_top: 12 });
this._settings.bind(SETTINGS_CURRENT_WORKSPACE_ONLY, check, 'active', Gio.SettingsBindFlags.DEFAULT);
this.add(check);
},
});
function init() {
Convenience.initTranslations();
}
function buildPrefsWidget() {
let widget = new AltTabSettingsWidget();
widget.show_all();
return widget;
}

View File

@@ -1,113 +0,0 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* most of the code is borrowed from
* > js/ui/altTab.js <
* of the gnome-shell source code
*/
const Clutter = imports.gi.Clutter;
const Gdk = imports.gi.Gdk;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const AltTab = imports.ui.altTab;
const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog;
const Tweener = imports.ui.tweener;
const WindowManager = imports.ui.windowManager;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(e) { return e };
const SETTINGS_BEHAVIOUR_KEY = 'behaviour';
const SETTINGS_FIRST_TIME_KEY = 'first-time';
const MESSAGE = N_("This is the first time you use the Alternate Tab extension. \n\
Please choose your preferred behaviour:\n\
\n\
All & Thumbnails:\n\
This mode presents all applications from all workspaces in one selection \n\
list. Instead of using the application icon of every window, it uses small \n\
thumbnails resembling the window itself. \n\
\n\
Workspace & Icons:\n\
This mode let's you switch between the applications of your current \n\
workspace and gives you additionally the option to switch to the last used \n\
application of your previous workspace. This is always the last symbol in \n\
the list and is segregated by a separator/vertical line if available. \n\
Every window is represented by its application icon. \n\
\n\
If you whish to revert to the default behavior for the Alt-Tab switcher, just\n\
disable the extension from extensions.gnome.org or the Advanced Settings application.\
");
const AltTabSettingsDialog = new Lang.Class({
Name: 'AlternateTab.Settings.AltTabSettingsDialog',
Extends: ModalDialog.ModalDialog,
_init : function(settings) {
this.settings = settings;
this.parent({ styleClass: null });
let mainContentBox = new St.BoxLayout({ style_class: 'polkit-dialog-main-layout',
vertical: false });
this.contentLayout.add(mainContentBox,
{ x_fill: true,
y_fill: true });
let messageBox = new St.BoxLayout({ style_class: 'polkit-dialog-message-layout',
vertical: true });
mainContentBox.add(messageBox,
{ y_align: St.Align.START });
this._subjectLabel = new St.Label({ style_class: 'polkit-dialog-headline',
text: _("Alt Tab Behaviour") });
messageBox.add(this._subjectLabel,
{ y_fill: false,
y_align: St.Align.START });
this._descriptionLabel = new St.Label({ style_class: 'polkit-dialog-description',
text: Gettext.gettext(MESSAGE) });
messageBox.add(this._descriptionLabel,
{ y_fill: true,
y_align: St.Align.START });
this.setButtons([
{
label: _("All & Thumbnails"),
action: Lang.bind(this, function() {
this.setBehaviour('all_thumbnails');
this.close();
})
},
{
label: _("Workspace & Icons"),
action: Lang.bind(this, function() {
this.setBehaviour('workspace_icons');
this.close();
})
},
{
label: _("Cancel"),
action: Lang.bind(this, function() {
this.close();
}),
key: Clutter.Escape
}
]);
},
setBehaviour: function(behaviour) {
this.settings.set_string(SETTINGS_BEHAVIOUR_KEY, behaviour);
this.settings.set_boolean(SETTINGS_FIRST_TIME_KEY, false);
}
});

View File

@@ -1,3 +0,0 @@
EXTENSION_ID = alternative-status-menu
include ../../extension.mk

View File

@@ -1,122 +0,0 @@
/* -*- mode: js2 - indent-tabs-mode: nil - js2-basic-offset: 4 -*- */
const Lang = imports.lang;
const St = imports.gi.St;
const Main = imports.ui.main;
const PopupMenu = imports.ui.popupMenu;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
let suspend_item = null;
let hibernate_item = null;
let poweroff_item = null;
let suspend_signal_id = 0, hibernate_signal_id = 0;
function updateSuspend(object, pspec, item) {
item.actor.visible = object.get_can_suspend();
}
function updateHibernate(object, pspec, item) {
item.actor.visible = object.get_can_hibernate();
}
function onSuspendActivate(item) {
Main.overview.hide();
this._screenSaverProxy.LockRemote(Lang.bind(this, function() {
this._upClient.suspend_sync(null);
}));
}
function onHibernateActivate(item) {
Main.overview.hide();
this._screenSaverProxy.LockRemote(Lang.bind(this, function() {
this._upClient.hibernate_sync(null);
}));
}
// Put your extension initialization code here
function init(metadata) {
Convenience.initTranslations();
}
function enable() {
let statusMenu = Main.panel._statusArea.userMenu;
let children = statusMenu.menu._getMenuItems();
let index = children.length;
/* find and destroy the old entry */
for (let i = children.length - 1; i >= 0; i--) {
if (children[i] == statusMenu._suspendOrPowerOffItem) {
children[i].destroy();
index = i;
break;
}
}
/* add the new entries */
suspend_item = new PopupMenu.PopupMenuItem(_("Suspend"));
suspend_item.connect('activate', Lang.bind(statusMenu, onSuspendActivate));
suspend_signal_id = statusMenu._upClient.connect('notify::can-suspend', Lang.bind(statusMenu, updateSuspend, suspend_item));
updateSuspend(statusMenu._upClient, null, suspend_item);
hibernate_item = new PopupMenu.PopupMenuItem(_("Hibernate"));
hibernate_item.connect('activate', Lang.bind(statusMenu, onHibernateActivate));
hibernate_signal_id = statusMenu._upClient.connect('notify::can-hibernate', Lang.bind(statusMenu, updateHibernate, hibernate_item));
updateHibernate(statusMenu._upClient, null, hibernate_item);
poweroff_item = new PopupMenu.PopupMenuItem(_("Power Off..."), { style_class: 'popup-alternating-menu-item' });
poweroff_item.actor.add_style_pseudo_class('alternate');
poweroff_item.connect('activate', Lang.bind(statusMenu, function() {
this._session.ShutdownRemote();
}));
/* insert the entries at the found position */
statusMenu.menu.addMenuItem(suspend_item, index);
statusMenu.menu.addMenuItem(hibernate_item, index + 1);
statusMenu.menu.addMenuItem(poweroff_item, index + 2);
// clear out this to avoid criticals (we don't mess with
// updateSuspendOrPowerOff)
statusMenu._suspendOrPowerOffItem = null;
}
function disable() {
let statusMenu = Main.panel._statusArea.userMenu;
let children = statusMenu.menu._getMenuItems();
let index = children.length;
/* find the index for the previously created suspend entry */
for (let i = children.length - 1; i >= 0; i--) {
if (children[i] == suspend_item) {
index = i;
break;
}
}
/* disconnect signals */
statusMenu._upClient.disconnect(suspend_signal_id);
statusMenu._upClient.disconnect(hibernate_signal_id);
suspend_signal_id = hibernate_signal_id = 0;
/* destroy the entries we had created */
suspend_item.destroy();
hibernate_item.destroy();
poweroff_item.destroy();
/* create a new suspend/poweroff entry */
/* empty strings are fine for the labels, since we immediately call updateSuspendOrPowerOff */
let item = new PopupMenu.PopupAlternatingMenuItem("", "");
/* restore the userMenu field */
statusMenu._suspendOrPowerOffItem = item;
statusMenu.menu.addMenuItem(item, index);
item.connect('activate', Lang.bind(statusMenu, statusMenu._onSuspendOrPowerOffActivate));
statusMenu._updateSuspendOrPowerOff();
}

View File

@@ -1,10 +0,0 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Alternative Status Menu",
"description": "Replaces GNOME Shell Status Menu with one showing Suspend/Hibernate and Power Off as separate items",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -1,3 +0,0 @@
.popup-alternating-menu-item:alternate {
font-weight: normal !important;
}

View File

@@ -1,113 +1,617 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Atk = imports.gi.Atk;
const GMenu = imports.gi.GMenu;
const Lang = imports.lang;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Clutter = imports.gi.Clutter;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Gtk = imports.gi.Gtk;
const GLib = imports.gi.GLib;
const Signals = imports.signals;
const Layout = imports.ui.layout;
const Pango = imports.gi.Pango;
const ICON_SIZE = 28;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const AppMenuItem = new Lang.Class({
Name: 'AppsMenu.AppMenuItem',
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const appSys = Shell.AppSystem.get_default();
const APPLICATION_ICON_SIZE = 32;
const HORIZ_FACTOR = 5;
const MENU_HEIGHT_OFFSET = 132;
const NAVIGATION_REGION_OVERSHOOT = 50;
const ActivitiesMenuItem = new Lang.Class({
Name: 'ActivitiesMenuItem',
Extends: PopupMenu.PopupBaseMenuItem,
_init: function (app, params) {
this.parent(params);
this._app = app;
this.label = new St.Label({ text: app.get_name() });
this.addActor(this.label);
this._icon = app.create_icon_texture(ICON_SIZE);
this.addActor(this._icon, { expand: false });
_init: function(button) {
this.parent();
this._button = button;
this.actor.add_child(new St.Label({ text: _("Activities Overview") }));
},
activate: function (event) {
this._app.activate_full(-1, event.get_time());
activate: function(event) {
this._button.menu.toggle();
Main.overview.toggle();
this.parent(event);
},
});
this.parent(event);
const ApplicationMenuItem = new Lang.Class({
Name: 'ApplicationMenuItem',
Extends: PopupMenu.PopupBaseMenuItem,
_init: function(button, app) {
this.parent();
this._app = app;
this._button = button;
this._iconBin = new St.Bin();
this.actor.add_child(this._iconBin);
let appLabel = new St.Label({ text: app.get_name() });
this.actor.add_child(appLabel, { expand: true });
this.actor.label_actor = appLabel;
let textureCache = St.TextureCache.get_default();
let iconThemeChangedId = textureCache.connect('icon-theme-changed',
Lang.bind(this, this._updateIcon));
this.actor.connect('destroy', Lang.bind(this,
function() {
textureCache.disconnect(iconThemeChangedId);
}));
this._updateIcon();
},
activate: function(event) {
this._app.open_new_window(event.get_time());
this._button.selectCategory(null, null);
this._button.menu.toggle();
this.parent(event);
},
setActive: function(active, params) {
if (active)
this._button.scrollToButton(this);
this.parent(active, params);
},
_getPreferredWidth: function(actor, forHeight, alloc) {
alloc.min_size = alloc.natural_size = -1;
},
_updateIcon: function() {
this._iconBin.set_child(this._app.create_icon_texture(APPLICATION_ICON_SIZE));
}
});
const CategoryMenuItem = new Lang.Class({
Name: 'CategoryMenuItem',
Extends: PopupMenu.PopupBaseMenuItem,
_init: function(button, category) {
this.parent();
this._category = category;
this._button = button;
this._oldX = -1;
this._oldY = -1;
let name;
if (this._category)
name = this._category.get_name();
else
name = _("Favorites");
this.actor.add_child(new St.Label({ text: name }));
this.actor.connect('motion-event', Lang.bind(this, this._onMotionEvent));
},
activate: function(event) {
this._button.selectCategory(this._category, this);
this._button.scrollToCatButton(this);
this.parent(event);
},
_isNavigatingSubmenu: function([x, y]) {
let [posX, posY] = this.actor.get_transformed_position();
if (this._oldX == -1) {
this._oldX = x;
this._oldY = y;
return true;
}
let deltaX = Math.abs(x - this._oldX);
let deltaY = Math.abs(y - this._oldY);
this._oldX = x;
this._oldY = y;
// If it lies outside the x-coordinates then it is definitely outside.
if (posX > x || posX + this.actor.width < x)
return false;
// If it lies inside the menu item then it is definitely inside.
if (posY <= y && posY + this.actor.height >= y)
return true;
// We want the keep-up triangle only if the movement is more
// horizontal than vertical.
if (deltaX * HORIZ_FACTOR < deltaY)
return false;
// Check whether the point lies inside triangle ABC, and a similar
// triangle on the other side of the menu item.
//
// +---------------------+
// | menu item |
// A +---------------------+ C
// P |
// B
// Ensure that the point P always lies below line AC so that we can
// only check for triangle ABC.
if (posY > y) {
let offset = posY - y;
y = posY + this.actor.height + offset;
}
// Ensure that A is (0, 0).
x -= posX;
y -= posY + this.actor.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)
return true;
return false;
},
_onMotionEvent: function(actor, event) {
if (!Clutter.get_pointer_grab()) {
this._oldX = -1;
this._oldY = -1;
Clutter.grab_pointer(this.actor);
}
this.actor.hover = true;
if (this._isNavigatingSubmenu(event.get_coords()))
return true;
this._oldX = -1;
this._oldY = -1;
this.actor.hover = false;
Clutter.ungrab_pointer();
return false;
},
setActive: function(active, params) {
if (active) {
this._button.selectCategory(this._category, this);
this._button.scrollToCatButton(this);
}
this.parent(active, params);
}
});
const HotCorner = new Lang.Class({
Name: 'HotCorner',
Extends: Layout.HotCorner,
_onCornerEntered : function() {
if (!this._entered) {
this._entered = true;
if (!Main.overview.animationInProgress) {
this._activationTime = Date.now() / 1000;
this.rippleAnimation();
Main.overview.toggle();
}
}
return false;
}
});
const ApplicationsMenu = new Lang.Class({
Name: 'ApplicationsMenu',
Extends: PopupMenu.PopupMenu,
_init: function(sourceActor, arrowAlignment, arrowSide, button) {
this.parent(sourceActor, arrowAlignment, arrowSide);
this._button = button;
},
isEmpty: function() {
return false;
},
open: function(animate) {
this._button.hotCorner.setBarrierSize(0);
if (this._button.hotCorner.actor) // fallback corner
this._button.hotCorner.actor.hide();
this.parent(animate);
},
close: function(animate) {
let size = Main.layoutManager.panelBox.height;
this._button.hotCorner.setBarrierSize(size);
if (this._button.hotCorner.actor) // fallback corner
this._button.hotCorner.actor.show();
this.parent(animate);
},
toggle: function() {
if (this.isOpen) {
this._button.selectCategory(null, null);
} else {
if (Main.overview.visible)
Main.overview.hide();
}
this.parent();
}
});
const ApplicationsButton = new Lang.Class({
Name: 'AppsMenu.ApplicationsButton',
Extends: PanelMenu.SystemStatusButton,
Name: 'ApplicationsButton',
Extends: PanelMenu.Button,
_init: function() {
this.parent('start-here');
this.parent(1.0, null, false);
this._appSys = Shell.AppSystem.get_default();
this._installedChangedId = this._appSys.connect('installed-changed', Lang.bind(this, this._refresh));
this.setMenu(new ApplicationsMenu(this.actor, 1.0, St.Side.TOP, this));
Main.panel.menuManager.addMenu(this.menu);
// At this moment applications menu is not keyboard navigable at
// all (so not accessible), so it doesn't make sense to set as
// role ATK_ROLE_MENU like other elements of the panel.
this.actor.accessible_role = Atk.Role.LABEL;
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 });
hbox.add_child(this._label);
hbox.add_child(new St.Label({ text: '\u25BE',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.actor.add_actor(hbox);
this.actor.name = 'panelApplications';
this.actor.label_actor = this._label;
this.actor.connect('captured-event', Lang.bind(this, this._onCapturedEvent));
_showingId = Main.overview.connect('showing', Lang.bind(this, function() {
this.actor.add_accessible_state (Atk.StateType.CHECKED);
}));
_hidingId = Main.overview.connect('hiding', Lang.bind(this, function() {
this.actor.remove_accessible_state (Atk.StateType.CHECKED);
}));
this.reloadFlag = false;
this._createLayout();
this._display();
_installedChangedId = appSys.connect('installed-changed', Lang.bind(this, function() {
if (this.menu.isOpen) {
this._redisplay();
this.mainBox.show();
} else {
this.reloadFlag = true;
}
}));
// Since the hot corner uses stage coordinates, Clutter won't
// queue relayouts for us when the panel moves. Queue a relayout
// when that happens.
_panelBoxChangedId = Main.layoutManager.connect('panel-box-changed', Lang.bind(this, function() {
container.queue_relayout();
}));
},
get hotCorner() {
return Main.layoutManager.hotCorners[Main.layoutManager.primaryIndex];
},
_createVertSeparator: function() {
let separator = new St.DrawingArea({ style_class: 'calendar-vertical-separator',
pseudo_class: 'highlighted' });
separator.connect('repaint', Lang.bind(this, this._onVertSepRepaint));
return separator;
},
_onCapturedEvent: function(actor, event) {
if (event.type() == Clutter.EventType.BUTTON_PRESS) {
if (!Main.overview.shouldToggleByCornerOrButton())
return true;
}
return false;
},
_onMenuKeyPress: function(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 (this.menu.actor.navigate_focus(global.stage.key_focus, direction, false))
return true;
}
return this.parent(actor, event);
},
_onVertSepRepaint: function(area) {
let cr = area.get_context();
let themeNode = area.get_theme_node();
let [width, height] = area.get_surface_size();
let stippleColor = themeNode.get_color('-stipple-color');
let stippleWidth = themeNode.get_length('-stipple-width');
let x = Math.floor(width/2) + 0.5;
cr.moveTo(x, 0);
cr.lineTo(x, height);
Clutter.cairo_set_source_color(cr, stippleColor);
cr.setDash([1, 3], 1); // Hard-code for now
cr.setLineWidth(stippleWidth);
cr.stroke();
},
_onOpenStateChanged: function(menu, open) {
if (open) {
if (this.reloadFlag) {
this._redisplay();
this.reloadFlag = false;
}
this.mainBox.show();
}
this.parent(menu, open);
},
_redisplay: function() {
this.applicationsBox.destroy_all_children();
this.categoriesBox.destroy_all_children();
this._display();
},
destroy: function() {
this._appSys.disconnect(this._installedChangedId);
this.parent();
},
_refresh: function() {
this._clearAll();
this._display();
},
_clearAll: function() {
this.menu.removeAll();
},
// Recursively load a GMenuTreeDirectory; we could put this in ShellAppSystem too
// (taken from js/ui/appDisplay.js in core shell)
_loadCategory: function(dir, menu) {
var iter = dir.iter();
var nextType;
_loadCategory: function(categoryId, dir) {
let iter = dir.iter();
let nextType;
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
if (nextType == GMenu.TreeItemType.ENTRY) {
var entry = iter.get_entry();
var app = this._appSys.lookup_app_by_tree_entry(entry);
if (!entry.get_app_info().get_nodisplay())
menu.addMenuItem(new AppMenuItem(app));
let entry = iter.get_entry();
if (!entry.get_app_info().get_nodisplay()) {
let app = appSys.lookup_app_by_tree_entry(entry);
let menu_id = dir.get_menu_id();
this.applicationsByCategory[categoryId].push(app);
}
} else if (nextType == GMenu.TreeItemType.DIRECTORY) {
this._loadCategory(iter.get_directory(), menu);
let subdir = iter.get_directory();
if (!subdir.get_is_nodisplay())
this._loadCategory(categoryId, subdir);
}
}
},
_display : function() {
let tree = this._appSys.get_tree();
let root = tree.get_root_directory();
scrollToButton: function(button) {
let appsScrollBoxAdj = this.applicationsScrollBox.get_vscroll_bar().get_adjustment();
let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
let currentScrollValue = appsScrollBoxAdj.get_value();
let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
let buttonAlloc = button.actor.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)
appsScrollBoxAdj.set_value(newScrollValue);
},
scrollToCatButton: function(button) {
let catsScrollBoxAdj = this.categoriesScrollBox.get_vscroll_bar().get_adjustment();
let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
let currentScrollValue = catsScrollBoxAdj.get_value();
let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
let buttonAlloc = button.actor.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)
catsScrollBoxAdj.set_value(newScrollValue);
},
_createLayout: function() {
let section = new PopupMenu.PopupMenuSection();
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.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
let vscroll = this.applicationsScrollBox.get_vscroll_bar();
vscroll.connect('scroll-start', Lang.bind(this, function() {
this.menu.passEvents = true;
}));
vscroll.connect('scroll-stop', Lang.bind(this, function() {
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.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
vscroll = this.categoriesScrollBox.get_vscroll_bar();
vscroll.connect('scroll-start', Lang.bind(this, function() {
this.menu.passEvents = true;
}));
vscroll.connect('scroll-stop', Lang.bind(this, function() {
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 });
this.applicationsBox = new St.BoxLayout({ vertical: true });
this.applicationsScrollBox.add_actor(this.applicationsBox);
this.categoriesBox = new St.BoxLayout({ vertical: true });
this.categoriesScrollBox.add_actor(this.categoriesBox, { expand: true, x_fill: false });
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 });
section.actor.add_actor(this.mainBox);
},
_display: function() {
this._applicationsButtons = new Array();
this.mainBox.style=('width: 640px;');
this.mainBox.hide();
//Load categories
this.applicationsByCategory = {};
let tree = appSys.get_tree();
let root = tree.get_root_directory();
let categoryMenuItem = new CategoryMenuItem(this, null);
this.categoriesBox.add_actor(categoryMenuItem.actor);
let iter = root.iter();
let nextType;
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
if (nextType == GMenu.TreeItemType.DIRECTORY) {
let dir = iter.get_directory();
let item = new PopupMenu.PopupSubMenuMenuItem(dir.get_name());
this._loadCategory(dir, item.menu);
this.menu.addMenuItem(item);
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);
}
}
}
}
//Load applications
this._displayButtons(this._listApplications(null));
let height = this.categoriesBox.height + MENU_HEIGHT_OFFSET + 'px';
this.mainBox.style+=('height: ' + height);
},
_clearApplicationsBox: function(selectedActor) {
let actors = this.applicationsBox.get_children();
for (let i = 0; i < actors.length; i++) {
let actor = actors[i];
this.applicationsBox.remove_actor(actor);
}
},
selectCategory: function(dir, categoryMenuItem) {
if (categoryMenuItem)
this._clearApplicationsBox(categoryMenuItem.actor);
else
this._clearApplicationsBox(null);
if (dir)
this._displayButtons(this._listApplications(dir.get_menu_id()));
else
this._displayButtons(this._listApplications(null));
},
_displayButtons: function(apps) {
if (apps) {
for (let i = 0; i < apps.length; i++) {
let app = apps[i];
if (!this._applicationsButtons[app]) {
let applicationMenuItem = new ApplicationMenuItem(this, app);
this._applicationsButtons[app] = applicationMenuItem;
}
if (!this._applicationsButtons[app].actor.get_parent())
this.applicationsBox.add_actor(this._applicationsButtons[app].actor);
}
}
},
_listApplications: function(category_menu_id) {
let applist;
if (category_menu_id) {
applist = this.applicationsByCategory[category_menu_id];
applist.sort(function(a,b) {
return a.get_name().toLowerCase() > b.get_name().toLowerCase();
});
} 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);
}
}
return applist;
},
destroy: function() {
this.menu.actor.get_children().forEach(function(c) { c.destroy() });
this.parent();
}
});
let appsMenuButton;
let activitiesButton;
let _hidingId;
let _installedChangedId;
let _panelBoxChangedId;
let _showingId;
function enable() {
activitiesButton = Main.panel.statusArea['activities'];
activitiesButton.container.hide();
appsMenuButton = new ApplicationsButton();
Main.panel._leftBox.insert_actor(appsMenuButton.actor, 1);
Main.panel._leftBox.child_set(appsMenuButton.actor, { y_fill : true } );
Main.panel._menus.addMenu(appsMenuButton.menu);
Main.panel.addToStatusArea('apps-menu', appsMenuButton, 1, 'left');
Main.wm.setCustomKeybindingHandler('panel-main-menu',
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
function() {
appsMenuButton.menu.toggle();
});
}
function disable() {
Main.panel.menuManager.removeMenu(appsMenuButton.menu);
appSys.disconnect(_installedChangedId);
Main.layoutManager.disconnect(_panelBoxChangedId);
Main.overview.disconnect(_hidingId);
Main.overview.disconnect(_showingId);
appsMenuButton.destroy();
activitiesButton.container.show();
Main.wm.setCustomKeybindingHandler('panel-main-menu',
Shell.KeyBindingMode.NORMAL |
Shell.KeyBindingMode.OVERVIEW,
Main.sessionMode.hasOverview ?
Lang.bind(Main.overview, Main.overview.toggle) :
null);
}
function init() {
/* do nothing */
function init(metadata) {
Convenience.initTranslations();
}

View File

@@ -1,10 +1,10 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Applications Menu",
"description": "Add a gnome 2.x style menu for applications",
"description": "Add a category-based menu for applications.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME Bugzilla instead.",
"original-authors": [ "e2002@bk.ru", "debarshir@gnome.org" ],
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -1 +1,7 @@
/* none used*/
.apps-menu:ltr {
padding-right: 3px;
}
.apps-menu:rtl {
padding-left: 3px;
}

View File

@@ -1,5 +1,7 @@
EXTENSION_ID = auto-move-windows
EXTRA_MODULES = prefs.js
include ../../extension.mk
include ../../settings.mk

View File

@@ -87,80 +87,81 @@ function init() {
settings = Convenience.getSettings();
}
function myCheckWorkspaces() {
let i;
let emptyWorkspaces = new Array(this._workspaces.length);
for (i = 0; i < this._workspaces.length; i++) {
let lastRemoved = this._workspaces[i]._lastRemovedWindow;
if (lastRemoved &&
(lastRemoved.get_window_type() == Meta.WindowType.SPLASHSCREEN ||
lastRemoved.get_window_type() == Meta.WindowType.DIALOG ||
lastRemoved.get_window_type() == Meta.WindowType.MODAL_DIALOG))
emptyWorkspaces[i] = false;
else
emptyWorkspaces[i] = true;
}
let windows = global.get_window_actors();
for (i = 0; i < windows.length; i++) {
let win = windows[i];
if (win.get_meta_window().is_on_all_workspaces())
continue;
let workspaceIndex = win.get_workspace();
emptyWorkspaces[workspaceIndex] = false;
}
// If we don't have an empty workspace at the end, add one
if (!emptyWorkspaces[emptyWorkspaces.length -1]) {
global.screen.append_new_workspace(false, global.get_current_time());
emptyWorkspaces.push(false);
}
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
let activeIsLast = activeWorkspaceIndex == global.screen.n_workspaces - 2;
let removingTrailWorkspaces = (emptyWorkspaces[activeWorkspaceIndex] &&
activeIsLast);
// Don't enter the overview when removing multiple empty workspaces at startup
let showOverview = (removingTrailWorkspaces &&
!emptyWorkspaces.every(function(x) { return x; }));
if (removingTrailWorkspaces) {
// "Merge" the empty workspace we are removing with the one at the end
this._wm.blockAnimations();
}
// Delete other empty workspaces; do it from the end to avoid index changes
for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
if (emptyWorkspaces[i])
global.screen.remove_workspace(this._workspaces[i], global.get_current_time());
else
break;
}
if (removingTrailWorkspaces) {
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
this._wm.unblockAnimations();
if (!Main.overview.visible && showOverview)
Main.overview.show();
}
this._checkWorkspacesId = 0;
return false;
}
function enable() {
prevCheckWorkspaces = Main._checkWorkspaces;
Main._checkWorkspaces = function() {
let i;
let emptyWorkspaces = new Array(Main._workspaces.length);
for (i = 0; i < Main._workspaces.length; i++) {
let lastRemoved = Main._workspaces[i]._lastRemovedWindow;
if (lastRemoved &&
(lastRemoved.get_window_type() == Meta.WindowType.SPLASHSCREEN ||
lastRemoved.get_window_type() == Meta.WindowType.DIALOG ||
lastRemoved.get_window_type() == Meta.WindowType.MODAL_DIALOG))
emptyWorkspaces[i] = false;
else
emptyWorkspaces[i] = true;
}
let windows = global.get_window_actors();
for (i = 0; i < windows.length; i++) {
let win = windows[i];
if (win.get_meta_window().is_on_all_workspaces())
continue;
let workspaceIndex = win.get_workspace();
emptyWorkspaces[workspaceIndex] = false;
}
// If we don't have an empty workspace at the end, add one
if (!emptyWorkspaces[emptyWorkspaces.length -1]) {
global.screen.append_new_workspace(false, global.get_current_time());
emptyWorkspaces.push(false);
}
let activeWorkspaceIndex = global.screen.get_active_workspace_index();
let activeIsLast = activeWorkspaceIndex == global.screen.n_workspaces - 2;
let removingTrailWorkspaces = (emptyWorkspaces[activeWorkspaceIndex] &&
activeIsLast);
// Don't enter the overview when removing multiple empty workspaces at startup
let showOverview = (removingTrailWorkspaces &&
!emptyWorkspaces.every(function(x) { return x; }));
if (removingTrailWorkspaces) {
// "Merge" the empty workspace we are removing with the one at the end
Main.wm.blockAnimations();
}
// Delete other empty workspaces; do it from the end to avoid index changes
for (i = emptyWorkspaces.length - 2; i >= 0; i--) {
if (emptyWorkspaces[i])
global.screen.remove_workspace(Main._workspaces[i], global.get_current_time());
else
break;
}
if (removingTrailWorkspaces) {
global.screen.get_workspace_by_index(global.screen.n_workspaces - 1).activate(global.get_current_time());
Main.wm.unblockAnimations();
if (!Main.overview.visible && showOverview)
Main.overview.show();
}
Main._checkWorkspacesId = 0;
return false;
};
prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
if (Meta.prefs_get_dynamic_workspaces())
Main.wm._workspaceTracker._checkWorkspaces = myCheckWorkspaces;
winMover = new WindowMover();
}
function disable() {
Main._checkWorkspaces = prevCheckWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces = prevCheckWorkspaces;
winMover.destroy();
}

View File

@@ -4,7 +4,7 @@
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Auto Move Windows",
"description": "Move applications to specific workspaces when they create windows",
"description": "Move applications to specific workspaces when they create windows.",
"shell-version": [ "@shell_current@" ],
"original-authors": [ "alessandro.crismani@gmail.com", "thomas.bouffon@gmail.com" ],
"url": "@url@"

View File

@@ -0,0 +1,260 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces
const GdkPixbuf = imports.gi.GdkPixbuf;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const GMenu = imports.gi.GMenu;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Mainloop = imports.mainloop;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(e) { return e };
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const SETTINGS_KEY = 'application-list';
const WORKSPACE_MAX = 36; // compiled in limit of mutter
const Columns = {
APPINFO: 0,
DISPLAY_NAME: 1,
ICON: 2,
WORKSPACE: 3,
ADJUSTMENT: 4
};
const Widget = new GObject.Class({
Name: 'AutoMoveWindows.Prefs.Widget',
GTypeName: 'AutoMoveWindowsPrefsWidget',
Extends: Gtk.Grid,
_init: function(params) {
this.parent(params);
this.set_orientation(Gtk.Orientation.VERTICAL);
this._settings = Convenience.getSettings();
this._settings.connect('changed', Lang.bind(this, this._refresh));
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._treeView = new Gtk.TreeView({ model: this._store,
hexpand: true, vexpand: true });
this._treeView.get_selection().set_mode(Gtk.SelectionMode.SINGLE);
let appColumn = new Gtk.TreeViewColumn({ expand: true, sort_column_id: Columns.DISPLAY_NAME,
title: _("Application") });
let iconRenderer = new Gtk.CellRendererPixbuf;
appColumn.pack_start(iconRenderer, false);
appColumn.add_attribute(iconRenderer, "gicon", Columns.ICON);
let nameRenderer = new Gtk.CellRendererText;
appColumn.pack_start(nameRenderer, true);
appColumn.add_attribute(nameRenderer, "text", Columns.DISPLAY_NAME);
this._treeView.append_column(appColumn);
let workspaceColumn = new Gtk.TreeViewColumn({ title: _("Workspace"),
sort_column_id: Columns.WORKSPACE });
let workspaceRenderer = new Gtk.CellRendererSpin({ editable: true });
workspaceRenderer.connect('edited', Lang.bind(this, this._workspaceEdited));
workspaceColumn.pack_start(workspaceRenderer, true);
workspaceColumn.add_attribute(workspaceRenderer, "adjustment", Columns.ADJUSTMENT);
workspaceColumn.add_attribute(workspaceRenderer, "text", Columns.WORKSPACE);
this._treeView.append_column(workspaceColumn);
this.add(this._treeView);
let toolbar = new Gtk.Toolbar();
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR);
this.add(toolbar);
let newButton = new Gtk.ToolButton({ stock_id: Gtk.STOCK_NEW,
label: _("Add rule"),
is_important: true });
newButton.connect('clicked', Lang.bind(this, this._createNew));
toolbar.add(newButton);
let delButton = new Gtk.ToolButton({ stock_id: Gtk.STOCK_DELETE });
delButton.connect('clicked', Lang.bind(this, this._deleteSelected));
toolbar.add(delButton);
this._changedPermitted = true;
this._refresh();
},
_createNew: function() {
let dialog = new Gtk.Dialog({ title: _("Create new matching rule"),
transient_for: this.get_toplevel(),
modal: true });
dialog.add_button(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL);
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 });
dialog._appChooser = new Gtk.AppChooserWidget({ show_all: true });
grid.attach(dialog._appChooser, 0, 0, 2, 1);
grid.attach(new Gtk.Label({ label: _("Workspace") }),
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 });
dialog._spin.set_value(1);
grid.attach(dialog._spin, 1, 1, 1, 1);
dialog.get_content_area().add(grid);
dialog.connect('response', Lang.bind(this, function(dialog, id) {
if (id != Gtk.ResponseType.OK) {
dialog.destroy();
return;
}
let appInfo = dialog._appChooser.get_app_info();
if (!appInfo)
return;
let index = Math.floor(dialog._spin.value);
if (isNaN(index) || index < 0)
index = 1;
this._changedPermitted = false;
if (!this._appendItem(appInfo.get_id(), index)) {
this._changedPermitted = true;
return;
}
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._changedPermitted = true;
dialog.destroy();
}));
dialog.show_all();
},
_deleteSelected: function() {
let [any, model, iter] = this._treeView.get_selection().get_selected();
if (any) {
let appInfo = this._store.get_value(iter, Columns.APPINFO);
this._changedPermitted = false;
this._removeItem(appInfo.get_id());
this._store.remove(iter);
this._changedPermitted = true;
}
},
_workspaceEdited: function(renderer, pathString, text) {
let index = parseInt(text);
if (isNaN(index) || index < 0)
index = 1;
let path = Gtk.TreePath.new_from_string(pathString);
let [model, iter] = this._store.get_iter(path);
let appInfo = this._store.get_value(iter, Columns.APPINFO);
this._changedPermitted = false;
this._changeItem(appInfo.get_id(), index);
this._store.set_value(iter, Columns.WORKSPACE, index);
this._changedPermitted = true;
},
_refresh: function() {
if (!this._changedPermitted)
// Ignore this notification, model is being modified outside
return;
this._store.clear();
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let validItems = [ ];
for (let i = 0; i < currentItems.length; i++) {
let [id, index] = currentItems[i].split(':');
let appInfo = Gio.DesktopAppInfo.new(id);
if (!appInfo)
continue;
validItems.push(currentItems[i]);
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]);
}
if (validItems.length != currentItems.length) // some items were filtered out
this._settings.set_strv(SETTINGS_KEY, validItems);
},
_appendItem: function(id, workspace) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let alreadyHave = currentItems.map(function(el) {
return el.split(':')[0];
}).indexOf(id) != -1;
if (alreadyHave) {
printerr("Already have an item for this id");
return false;
}
currentItems.push(id + ':' + workspace);
this._settings.set_strv(SETTINGS_KEY, currentItems);
return true;
},
_removeItem: function(id) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let index = currentItems.map(function(el) {
return el.split(':')[0];
}).indexOf(id);
if (index < 0)
return;
currentItems.splice(index, 1);
this._settings.set_strv(SETTINGS_KEY, currentItems);
},
_changeItem: function(id, workspace) {
let currentItems = this._settings.get_strv(SETTINGS_KEY);
let index = currentItems.map(function(el) {
return el.split(':')[0];
}).indexOf(id);
if (index < 0)
currentItems.push(id + ':' + workspace);
else
currentItems[index] = id + ':' + workspace;
this._settings.set_strv(SETTINGS_KEY, currentItems);
}
});
function init() {
Convenience.initTranslations();
}
function buildPrefsWidget() {
let widget = new Widget();
widget.show_all();
return widget;
}

View File

@@ -1,5 +0,0 @@
EXTENSION_ID = dock
include ../../extension.mk
include ../../settings.mk

View File

@@ -1,880 +0,0 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Clutter = imports.gi.Clutter;
const Pango = imports.gi.Pango;
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const Shell = imports.gi.Shell;
const Lang = imports.lang;
const Signals = imports.signals;
const St = imports.gi.St;
const Mainloop = imports.mainloop;
const AppFavorites = imports.ui.appFavorites;
const DND = imports.ui.dnd;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const PopupMenu = imports.ui.popupMenu;
const Search = imports.ui.search;
const Tweener = imports.ui.tweener;
const Workspace = imports.ui.workspace;
const AppDisplay = imports.ui.appDisplay;
const AltTab = imports.ui.altTab;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
// Settings
const DOCK_POSITION_KEY = 'position';
const DOCK_SIZE_KEY = 'size';
const DOCK_HIDE_KEY = 'autohide';
const DOCK_EFFECTHIDE_KEY = 'hide-effect';
const DOCK_AUTOHIDE_ANIMATION_TIME_KEY = 'hide-effect-duration';
// Keep enums in sync with GSettings schemas
const PositionMode = {
LEFT: 0,
RIGHT: 1
};
const AutoHideEffect = {
RESIZE: 0,
RESCALE: 1,
MOVE: 2
};
const DND_RAISE_APP_TIMEOUT = 500;
/*************************************************************************************/
/**** start resize's Dock functions *****************/
/*************************************************************************************/
function hideDock_size () {
if (!this._hideable)
return;
let monitor = Main.layoutManager.primaryMonitor
let position_x = monitor.x;
let height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this, {
_item_size: 1,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function () {
height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x-2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x = monitor.x + (monitor.width-1-this._item_size-2*this._spacing);
}
this.actor.set_position (position_x,monitor.y+(monitor.height-height)/2);
this.actor.set_size(width,height);
},
});
this._hidden = true;
}
function showDock_size () {
let monitor = Main.layoutManager.primaryMonitor;
let height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
let position_x = monitor.x;
Tweener.addTween(this, {
_item_size: this._settings.get_int(DOCK_SIZE_KEY),
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad',
onUpdate: function () {
height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x-2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x=monitor.x + (monitor.width-this._item_size-2*this._spacing);
}
this.actor.set_position (position_x, monitor.y+(monitor.height-height)/2);
this.actor.set_size(width,height);
}
});
this._hidden = false;
}
function showEffectAddItem_size () {
let primary = Main.layoutManager.primaryMonitor;
let height = (this._nicons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this.actor, {
y: primary.y + (primary.height-height)/2,
height: height,
width: width,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad'
});
}
/**************************************************************************************/
/**** start rescale's Dock functions *****************/
/**************************************************************************************/
function hideDock_scale () {
if (!this._hideable)
return;
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
let cornerX = 0;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
cornerX=monitor.x;
break;
case PositionMode.RIGHT:
default:
cornerX = monitor.x + monitor.width-1;
}
Tweener.addTween(this.actor,{
y: monitor.y + (monitor.height-height)/2,
x: cornerX,
height:height,
width: width,
scale_x: 0.025,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad'
});
this._hidden = true;
}
function showDock_scale () {
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
let position_x = monitor.x;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x-2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x=monitor.x + (monitor.width-this._item_size-2*this._spacing);
}
Tweener.addTween(this.actor, {
y: monitor.y + (monitor.height-height)/2,
x: monitor.x + position_x,
height: height,
width: width,
scale_x: 1,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad'
});
this._hidden = false;
}
function showEffectAddItem_scale () {
let monitor = Main.layoutManager.primaryMonitor;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this.actor, {
y: monitor.y + (monitor.height-height)/2,
height: height,
width: width,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad'
});
}
/**************************************************************************************/
/**** start move Dock functions *****************/
/**************************************************************************************/
function hideDock_move () {
if (!this._hideable)
return;
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
let cornerX = 0;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
cornerX= monitor.x - width + this._spacing;
break;
case PositionMode.RIGHT:
default:
cornerX = monitor.x + monitor.width - this._spacing;
}
Tweener.addTween(this.actor,{
x: cornerX,
y: monitor.y + (monitor.height - height)/2,
width: width,
height: height,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad'
});
this._hidden = true;
}
function showDock_move () {
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
let monitor = Main.layoutManager.primaryMonitor;
let position_x = monitor.x;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
switch (this._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
position_x=monitor.x - 2*this._spacing;
break;
case PositionMode.RIGHT:
default:
position_x=monitor.x + (monitor.width-this._item_size-2*this._spacing);
}
Tweener.addTween(this.actor, {
x: position_x,
y: monitor.y + (monitor.height - height)/2,
width: width,
height: height,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad'
});
this._hidden = false;
}
function showEffectAddItem_move () {
let monitor = Main.layoutManager.primaryMonitor;
let height = this._nicons*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
Tweener.addTween(this.actor, {
y: monitor.y + (monitor.height-height)/2,
height: height,
width: width,
time: this._settings.get_double(DOCK_AUTOHIDE_ANIMATION_TIME_KEY),
transition: 'easeOutQuad'
});
}
const Dock = new Lang.Class({
Name: 'Dock.Dock',
_init : function() {
this._placeholderText = null;
this._menus = [];
this._menuDisplays = [];
this._favorites = [];
// Load Settings
this._settings = Convenience.getSettings();
this._hidden = false;
this._hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
this._spacing = 4;
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
this._nicons = 0;
this._selectEffectFunctions(this._settings.get_enum(DOCK_EFFECTHIDE_KEY));
this.actor = new St.BoxLayout({ name: 'dock', vertical: true, reactive: true });
this._grid = new Shell.GenericContainer();
this.actor.add(this._grid, { expand: true, y_align: St.Align.START });
this.actor.connect('style-changed', Lang.bind(this, this._onStyleChanged));
this._grid.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
this._grid.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
this._grid.connect('allocate', Lang.bind(this, this._allocate));
this._workId = Main.initializeDeferredWork(this.actor, Lang.bind(this, this._redisplay));
this._tracker = Shell.WindowTracker.get_default();
this._appSystem = Shell.AppSystem.get_default();
this._installedChangedId = this._appSystem.connect('installed-changed', Lang.bind(this, this._queueRedisplay));
this._appFavoritesChangedId = AppFavorites.getAppFavorites().connect('changed', Lang.bind(this, this._queueRedisplay));
this._appStateChangedId = this._appSystem.connect('app-state-changed', Lang.bind(this, this._queueRedisplay));
this._overviewShowingId = Main.overview.connect('showing', Lang.bind(this, function() {
this.actor.hide();
}));
this._overviewHiddenId = Main.overview.connect('hidden', Lang.bind(this, function() {
this.actor.show();
}));
Main.layoutManager.addChrome(this.actor,
{ affectsStruts: !this._settings.get_boolean(DOCK_HIDE_KEY) });
//hidden
this._settings.connect('changed::'+DOCK_POSITION_KEY, Lang.bind(this, this._redisplay));
this._settings.connect('changed::'+DOCK_SIZE_KEY, Lang.bind(this, this._redisplay));
this._settings.connect('changed::'+DOCK_HIDE_KEY, Lang.bind(this, function (){
Main.layoutManager.removeChrome(this.actor);
Main.layoutManager.addChrome(this.actor,
{ affectsStruts: !this._settings.get_boolean(DOCK_HIDE_KEY) });
this._hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
if (this._hideable)
this._hideDock();
else
this._showDock();
}));
this._settings.connect('changed::' + DOCK_EFFECTHIDE_KEY, Lang.bind(this, function () {
let hideEffect = this._settings.get_enum(DOCK_EFFECTHIDE_KEY);
// restore the effects of the other functions
switch (hideEffect) {
case AutoHideEffect.RESCALE:
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
break;
case AutoHideEffect.RESIZE:
this.actor.set_scale(1, 1);
break;
case AutoHideEffect.MOVE:
this.actor.set_scale(1, 1);
this._item_size = this._settings.get_int(DOCK_SIZE_KEY);
}
this.actor.disconnect(this._leave_event);
this.actor.disconnect(this._enter_event);
this._selectEffectFunctions(hideEffect);
this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
this._redisplay();
}));
this._leave_event = this.actor.connect('leave-event', Lang.bind(this, this._hideDock));
this._enter_event = this.actor.connect('enter-event', Lang.bind(this, this._showDock));
this._hideDock();
},
destroy: function() {
if (this._installedChangedId) {
this._appSystem.disconnect(this._installedChangedId);
this._installedChangedId = 0;
}
if (this._appFavoritesChangedId) {
AppFavorites.getAppFavorites().disconnect(this._appFavoritesChangedId);
this._appFavoritesChangedId = 0;
}
if (this._appStateChangedId) {
this._appSystem.disconnect(this._appStateChangedId);
this._appStateChangedId = 0;
}
if (this._overviewShowingId) {
Main.overview.disconnect(this._overviewShowingId);
this._overviewShowingId = 0;
}
if (this._overviewHiddenId) {
Main.overview.disconnect(this._overviewHiddenId);
this._overviewHiddenId = 0;
}
this.actor.destroy();
// Break reference cycles
this._settings.run_dispose();
this._settings = null;
this._appSystem = null;
this._tracker = null;
},
// fuctions hide
_restoreHideDock: function() {
this._hideable = this._settings.get_boolean(DOCK_HIDE_KEY);
},
_disableHideDock: function() {
this._hideable = false;
},
_selectEffectFunctions: function(hideEffect) {
switch (hideEffect) {
case AutoHideEffect.RESCALE:
this._hideDock = hideDock_scale;
this._showDock = showDock_scale;
this._showEffectAddItem = showEffectAddItem_scale;
break;
case AutoHideEffect.MOVE:
this._hideDock = hideDock_move;
this._showDock = showDock_move;
this._showEffectAddItem = showEffectAddItem_move;
break;
case AutoHideEffect.RESIZE:
default:
this._hideDock = hideDock_size;
this._showDock = showDock_size;
this._showEffectAddItem = showEffectAddItem_size;
}
},
_appIdListToHash: function(apps) {
let ids = {};
for (let i = 0; i < apps.length; i++)
ids[apps[i].get_id()] = apps[i];
return ids;
},
_queueRedisplay: function () {
Main.queueDeferredWork(this._workId);
},
_redisplay: function () {
this.removeAll();
let favorites = AppFavorites.getAppFavorites().getFavoriteMap();
let running = this._appSystem.get_running();
let runningIds = this._appIdListToHash(running);
let icons = 0;
let nFavorites = 0;
for (let id in favorites) {
let app = favorites[id];
let display = new DockIcon(app,this);
this.addItem(display.actor);
nFavorites++;
icons++;
}
for (let i = 0; i < running.length; i++) {
let app = running[i];
if (app.get_id() in favorites)
continue;
let display = new DockIcon(app,this);
icons++;
this.addItem(display.actor);
}
this._nicons=icons;
if (this._placeholderText) {
this._placeholderText.destroy();
this._placeholderText = null;
}
if (running.length == 0 && nFavorites == 0) {
this._placeholderText = new St.Label({ text: _("Drag here to add favorites") });
this.actor.add_actor(this._placeholderText);
}
let primary = Main.layoutManager.primaryMonitor;
let height = (icons)*(this._item_size + this._spacing) + 2*this._spacing;
let width = this._item_size + 4*this._spacing;
if (this._hideable && this._hidden) {
this._hideDock();
} else {
if (this._settings.get_int(DOCK_SIZE_KEY) == this._item_size) {
// only add/delete icon
this._showEffectAddItem ();
} else {
// change size icon
this._showDock ();
}
}
},
_getPreferredWidth: function (grid, forHeight, alloc) {
alloc.min_size = this._item_size;
alloc.natural_size = this._item_size + this._spacing;
},
_getPreferredHeight: function (grid, forWidth, alloc) {
let children = this._grid.get_children();
let nRows = children.length;
let totalSpacing = Math.max(0, nRows - 1) * this._spacing;
let height = nRows * this._item_size + totalSpacing;
alloc.min_size = height;
alloc.natural_size = height;
},
_allocate: function (grid, box, flags) {
let children = this._grid.get_children();
let x = box.x1 + this._spacing;
if (this._settings.get_enum(DOCK_POSITION_KEY) == PositionMode.LEFT)
x = box.x1 + 2*this._spacing;
let y = box.y1 + this._spacing;
for (let i = 0; i < children.length; i++) {
let childBox = new Clutter.ActorBox();
childBox.x1 = x;
childBox.y1 = y;
childBox.x2 = childBox.x1 + this._item_size;
childBox.y2 = childBox.y1 + this._item_size;
children[i].allocate(childBox, flags);
y += this._item_size + this._spacing;
}
},
_onStyleChanged: function() {
let themeNode = this.actor.get_theme_node();
let [success, len] = themeNode.get_length('spacing', false);
if (success)
this._spacing = len;
[success, len] = themeNode.get_length('-shell-grid-item-size', false);
if (success)
this._item_size = len;
this._grid.queue_relayout();
},
removeAll: function () {
this._grid.get_children().forEach(Lang.bind(this, function (child) {
child.destroy();
}));
},
addItem: function(actor) {
this._grid.add_actor(actor);
}
});
Signals.addSignalMethods(Dock.prototype);
const DockIcon = new Lang.Class({
Name: 'Dock.DockIcon',
_init : function(app, dock) {
this._dock = dock;
this._settings = dock._settings;
this.app = app;
this.actor = new St.Button({ style_class: 'app-well-app',
button_mask: St.ButtonMask.ONE | St.ButtonMask.TWO,
reactive: true,
x_fill: true,
y_fill: true });
this.actor._delegate = this;
this._icon = new AppDisplay.AppIcon(app, { setSizeManually: true,
showLabel: false });
this.actor.set_child(this._icon.actor);
this._icon.setIconSize(this._settings.get_int(DOCK_SIZE_KEY));
this.actor.connect('clicked', Lang.bind(this, this._onClicked));
this._menu = null;
this._menuManager = new PopupMenu.PopupMenuManager(this);
this._has_focus = false;
let tracker = Shell.WindowTracker.get_default();
tracker.connect('notify::focus-app', Lang.bind(this, this._onStateChanged));
this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this.actor.connect('notify::hover', Lang.bind(this, this._hoverChanged));
this._menuTimeoutId = 0;
this._stateChangedId = this.app.connect('notify::state',
Lang.bind(this, this._onStateChanged));
this._onStateChanged();
},
_onDestroy: function() {
if (this._stateChangedId > 0)
this.app.disconnect(this._stateChangedId);
this._stateChangedId = 0;
this._removeMenuTimeout();
},
_removeMenuTimeout: function() {
if (this._menuTimeoutId > 0) {
Mainloop.source_remove(this._menuTimeoutId);
this._menuTimeoutId = 0;
}
},
_hoverChanged: function(actor) {
if (actor != this.actor)
this._has_focus = false;
else
this._has_focus = true;
return false;
},
_onStateChanged: function() {
let tracker = Shell.WindowTracker.get_default();
let focusedApp = tracker.focus_app;
if (this.app.state != Shell.AppState.STOPPED) {
this.actor.add_style_class_name('running');
if (this.app == focusedApp) {
this.actor.add_style_class_name('focused');
} else {
this.actor.remove_style_class_name('focused');
}
} else {
this.actor.remove_style_class_name('focused');
this.actor.remove_style_class_name('running');
}
},
_onButtonPress: function(actor, event) {
let button = event.get_button();
if (button == 1) {
this._removeMenuTimeout();
this._menuTimeoutId = Mainloop.timeout_add(AppDisplay.MENU_POPUP_TIMEOUT, Lang.bind(this, function() {
this.popupMenu();
}));
} else if (button == 3) {
this.popupMenu();
}
},
_onClicked: function(actor, button) {
this._removeMenuTimeout();
if (button == 1) {
this._onActivate(Clutter.get_current_event());
} else if (button == 2) {
// Last workspace is always empty
let launchWorkspace = global.screen.get_workspace_by_index(global.screen.n_workspaces - 1);
launchWorkspace.activate(global.get_current_time());
this.emit('launching');
this.app.open_new_window(-1);
}
return false;
},
getId: function() {
return this.app.get_id();
},
popupMenu: function() {
this._removeMenuTimeout();
this.actor.fake_release();
this._dock._disableHideDock();
if (!this._menu) {
this._menu = new DockIconMenu(this);
this._menu.connect('activate-window', Lang.bind(this, function (menu, window) {
this.activateWindow(window);
}));
this._menu.connect('open-state-changed', Lang.bind(this, function (menu, isPoppedUp) {
if (!isPoppedUp){
//Restore value of autohidedock
this._dock._restoreHideDock();
this._dock._hideDock();
this._onMenuPoppedDown();
}
}));
this._menuManager.addMenu(this._menu, true);
}
this._menu.redisplay();
this._menu.open();
return false;
},
activateWindow: function(metaWindow) {
if (metaWindow) {
this._didActivateWindow = true;
Main.activateWindow(metaWindow);
}
},
setSelected: function (isSelected) {
this._selected = isSelected;
if (this._selected)
this.actor.add_style_class_name('selected');
else
this.actor.remove_style_class_name('selected');
},
_onMenuPoppedDown: function() {
this.actor.sync_hover();
},
_getRunning: function() {
return this.app.state != Shell.AppState.STOPPED;
},
_onActivate: function (event) {
this.emit('launching');
let modifiers = Shell.get_event_state(event);
if (modifiers & Clutter.ModifierType.CONTROL_MASK
&& this.app.state == Shell.AppState.RUNNING) {
let current_workspace = global.screen.get_active_workspace().index();
this.app.open_new_window(current_workspace);
} else {
let tracker = Shell.WindowTracker.get_default();
let focusedApp = tracker.focus_app;
if (this.app == focusedApp) {
let windows = this.app.get_windows();
let current_workspace = global.screen.get_active_workspace();
for (let i = 0; i < windows.length; i++) {
let w = windows[i];
if (w.get_workspace() == current_workspace)
w.minimize();
}
} else {
this.app.activate(-1);
}
}
Main.overview.hide();
}
});
Signals.addSignalMethods(DockIcon.prototype);
const DockIconMenu = new Lang.Class({
Name: 'Dock.DockIconMenu',
Extends: PopupMenu.PopupMenu,
_init: function(source) {
let side;
switch (source._settings.get_enum(DOCK_POSITION_KEY)) {
case PositionMode.LEFT:
side = St.Side.LEFT;
break;
case PositionMode.RIGHT:
default:
side = St.Side.RIGHT;
}
this.parent(source.actor, 0.5, side);
this._source = source;
this.connect('activate', Lang.bind(this, this._onActivate));
this.actor.add_style_class_name('dock-menu');
// Chain our visibility and lifecycle to that of the source
source.actor.connect('notify::mapped', Lang.bind(this, function () {
if (!source.actor.mapped)
this.close();
}));
source.actor.connect('destroy', Lang.bind(this, function () { this.destroy(); }));
Main.layoutManager.addChrome(this.actor);
},
redisplay: function() {
this.removeAll();
let windows = this._source.app.get_windows();
// Display the app windows menu items and the separator between windows
// of the current desktop and other windows.
let activeWorkspace = global.screen.get_active_workspace();
let separatorShown = windows.length > 0 && windows[0].get_workspace() != activeWorkspace;
for (let i = 0; i < windows.length; i++) {
if (!separatorShown && windows[i].get_workspace() != activeWorkspace) {
this._appendSeparator();
separatorShown = true;
}
let item = this._appendMenuItem(windows[i].title);
item._window = windows[i];
}
if (windows.length > 0)
this._appendSeparator();
let isFavorite = AppFavorites.getAppFavorites().isFavorite(this._source.app.get_id());
this._newWindowMenuItem = windows.length > 0 ? this._appendMenuItem(_("New Window")) : null;
this._quitAppMenuItem = windows.length >0 ? this._appendMenuItem(_("Quit Application")) : null;
if (windows.length > 0)
this._appendSeparator();
this._toggleFavoriteMenuItem = this._appendMenuItem(isFavorite ?
_("Remove from Favorites")
: _("Add to Favorites"));
this._highlightedItem = null;
},
_appendSeparator: function () {
let separator = new PopupMenu.PopupSeparatorMenuItem();
this.addMenuItem(separator);
},
_appendMenuItem: function(labelText) {
// FIXME: app-well-menu-item style
let item = new PopupMenu.PopupMenuItem(labelText);
this.addMenuItem(item);
return item;
},
popup: function(activatingButton) {
this._redisplay();
this.open();
},
_onActivate: function (actor, child) {
if (child._window) {
let metaWindow = child._window;
this.emit('activate-window', metaWindow);
} else if (child == this._newWindowMenuItem) {
let current_workspace = global.screen.get_active_workspace().index();
this._source.app.open_new_window(current_workspace);
this.emit('activate-window', null);
} else if (child == this._quitAppMenuItem) {
this._source.app.request_quit();
} else if (child == this._toggleFavoriteMenuItem) {
let favs = AppFavorites.getAppFavorites();
let isFavorite = favs.isFavorite(this._source.app.get_id());
if (isFavorite)
favs.removeFavorite(this._source.app.get_id());
else
favs.addFavorite(this._source.app.get_id());
}
this.close();
}
});
function init() {
Convenience.initTranslations();
}
let dock;
function enable() {
dock = new Dock();
}
function disable() {
dock.destroy();
dock = null;
}

View File

@@ -1,11 +0,0 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Dock",
"description": "A dock for the GNOME Shell -- displays favorite and running applications",
"original-author": "tclaesson@gmail.com",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -1,38 +0,0 @@
<schemalist gettext-domain="gnome-shell-extensions">
<enum id='org.gnome.shell.extensions.dock.PositionMode'>
<value nick='left' value='0'/>
<value nick='right' value='1'/>
</enum>
<enum id='org.gnome.shell.extensions.dock.AutoHideEffect'>
<value nick='resize' value='0'/>
<value nick='rescale' value='1'/>
<value nick='move' value='2'/>
</enum>
<schema id="org.gnome.shell.extensions.dock" path="/org/gnome/shell/extensions/dock/">
<key name="position" enum="org.gnome.shell.extensions.dock.PositionMode">
<default>'right'</default>
<_summary>Position of the dock</_summary>
<_description>Sets the position of the dock in the screen. Allowed values are 'right' or 'left'</_description>
</key>
<key name="size" type="i">
<default>48</default>
<_summary>Icon size</_summary>
<_description>Sets icon size of the dock.</_description>
</key>
<key name="autohide" type="b">
<default>true</default>
<_summary>Enable/disable autohide</_summary>
</key>
<key name="hide-effect" enum="org.gnome.shell.extensions.dock.AutoHideEffect">
<default>'move'</default>
<_summary>Autohide effect</_summary>
<_description>Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and 'move'</_description>
</key>
<key name="hide-effect-duration" type="d">
<default>0.3</default>
<_summary>Autohide duration</_summary>
<_description>Sets the time duration of the autohide effect.</_description>
</key>
</schema>
</schemalist>

View File

@@ -1,10 +0,0 @@
#dock {
border-radius: 9px;
background-color: rgba(0,0,0,0.9);
border-width: 2px;
border-color: #5f5f5f;
}
.dock-menu {
font-size: 12px
}

View File

@@ -1,4 +1,5 @@
// Drive menu extension
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const Lang = imports.lang;
const St = imports.gi.St;
@@ -11,37 +12,71 @@ const Main = imports.ui.main;
const Panel = imports.ui.panel;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const ShellMountOperation = imports.ui.shellMountOperation;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const DriveMenuItem = new Lang.Class({
Name: 'DriveMenu.DriveMenuItem',
const MountMenuItem = new Lang.Class({
Name: 'DriveMenu.MountMenuItem',
Extends: PopupMenu.PopupBaseMenuItem,
_init: function(place) {
_init: function(mount) {
this.parent();
this.place = place;
this.label = new St.Label({ text: mount.get_name() });
this.actor.add(this.label, { expand: true });
this.actor.label_actor = this.label;
this.label = new St.Label({ text: place.name });
this.addActor(this.label);
this.mount = mount;
let ejectIcon = new St.Icon({ icon_name: 'media-eject',
icon_type: St.IconType.SYMBOLIC,
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', Lang.bind(this, this._eject));
this.addActor(ejectButton);
this.actor.add(ejectButton);
},
_eject: function() {
this.place.remove();
let mountOp = new ShellMountOperation.ShellMountOperation(this.mount);
if (this.mount.can_eject())
this.mount.eject_with_operation(Gio.MountUnmountFlags.NONE,
mountOp.mountOp,
null, // Gio.Cancellable
Lang.bind(this, this._ejectFinish));
else
this.mount.unmount_with_operation(Gio.MountUnmountFlags.NONE,
mountOp.mountOp,
null, // Gio.Cancellable
Lang.bind(this, this._unmountFinish));
},
_unmountFinish: function(mount, result) {
try {
mount.unmount_with_operation_finish(result);
} catch(e) {
this._reportFailure(e);
}
},
_ejectFinish: function(mount, result) {
try {
mount.eject_with_operation_finish(result);
} catch(e) {
this._reportFailure(e);
}
},
_reportFailure: function(exception) {
let msg = _("Ejecting drive '%s' failed:").format(this.mount.get_name());
Main.notifyError(msg, exception.message);
},
activate: function(event) {
this.place.launch({ timestamp: event.get_time() });
Gio.AppInfo.launch_default_for_uri(this.mount.get_root().get_uri(),
global.create_app_launch_context());
this.parent(event);
}
@@ -49,44 +84,98 @@ const DriveMenuItem = new Lang.Class({
const DriveMenu = new Lang.Class({
Name: 'DriveMenu.DriveMenu',
Extends: PanelMenu.SystemStatusButton,
Extends: PanelMenu.Button,
_init: function() {
this.parent('media-eject');
this.parent(0.0, _("Removable devices"));
this._manager = Main.placesManager;
this._updatedId = this._manager.connect('mounts-updated', Lang.bind(this, this._update));
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' });
this._contentSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._contentSection);
hbox.add_child(icon);
hbox.add_child(new St.Label({ text: '\u25BE',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.actor.add_child(hbox);
this._update();
this._monitor = Gio.VolumeMonitor.get();
this._addedId = this._monitor.connect('mount-added', Lang.bind(this, function(monitor, mount) {
this._addMount(mount);
this._updateMenuVisibility();
}));
this._removedId = this._monitor.connect('mount-removed', Lang.bind(this, function(monitor, mount) {
this._removeMount(mount);
this._updateMenuVisibility();
}));
this._mounts = [ ];
this._monitor.get_mounts().forEach(Lang.bind(this, this._addMount));
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addAction(_("Open file manager"), function(event) {
this.menu.addAction(_("Open File"), function(event) {
let appSystem = Shell.AppSystem.get_default();
let app = appSystem.lookup_app('nautilus.desktop');
app.activate_full(-1, event.get_time());
});
this._updateMenuVisibility();
},
_update: function() {
this._contentSection.removeAll();
_updateMenuVisibility: function() {
if (this._mounts.length > 0)
this.actor.show();
else
this.actor.hide();
},
let mounts = this._manager.getMounts();
let any = false;
for (let i = 0; i < mounts.length; i++) {
if (mounts[i].isRemovable()) {
this._contentSection.addMenuItem(new DriveMenuItem(mounts[i]));
any = true;
_isMountInteresting: function(mount) {
if (!mount.can_eject() && !mount.can_unmount())
return false;
let volume = mount.get_volume();
if (volume == null) {
// 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';
},
_addMount: function(mount) {
if (!this._isMountInteresting(mount))
return;
let item = new MountMenuItem(mount);
this._mounts.unshift(item);
this.menu.addMenuItem(item, 0);
},
_removeMount: function(mount) {
if (!this._isMountInteresting(mount))
return;
for (let i = 0; i < this._mounts.length; i++) {
let item = this._mounts[i];
if (item.mount == mount) {
item.destroy();
this._mounts.splice(i, 1);
return;
}
}
this.actor.visible = any;
log ('Removing a mount that was never added to the menu');
},
destroy: function() {
this._manager.disconnect(this._updatedId);
if (this._connectedId) {
this._monitor.disconnect(this._connectedId);
this._monitor.disconnect(this._disconnectedId);
this._connectedId = 0;
this._disconnectedId = 0;
}
this.parent();
},

View File

@@ -4,7 +4,7 @@
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Removable Drive Menu",
"description": "A status menu for accessing and unmounting removable devices",
"description": "A status menu for accessing and unmounting removable devices.",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -1,3 +1,6 @@
EXTENSION_ID = example
EXTRA_MODULES = prefs.js
include ../../extension.mk
include ../../settings.mk

View File

@@ -1,3 +1,4 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Sample extension code, makes clicking on the panel show a message
const St = imports.gi.St;
const Mainloop = imports.mainloop;
@@ -12,11 +13,14 @@ const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
function _showHello() {
let text = new St.Label({ style_class: 'helloworld-label', text: _("Hello, world!") });
let settings = Convenience.getSettings();
let text = settings.get_string('hello-text') || _("Hello, world!");
let label = new St.Label({ style_class: 'helloworld-label', text: text });
let monitor = Main.layoutManager.primaryMonitor;
global.stage.add_actor(text);
text.set_position(Math.floor (monitor.width / 2 - text.width / 2), Math.floor(monitor.height / 2 - text.height / 2));
Mainloop.timeout_add(3000, function () { text.destroy(); });
global.stage.add_actor(label);
label.set_position(Math.floor (monitor.width / 2 - label.width / 2), Math.floor(monitor.height / 2 - label.height / 2));
Mainloop.timeout_add(3000, function () { label.destroy(); });
}
// Put your extension initialization code here

View File

@@ -0,0 +1,9 @@
<schemalist gettext-domain="gnome-shell-extensions">
<schema id="org.gnome.shell.extensions.example" path="/org/gnome/shell/extensions/example/">
<key name="hello-text" type="s">
<default>''</default>
<_summary>Alternative greeting text.</_summary>
<_description>If not empty, it contains the text that will be shown when clicking on the panel.</_description>
</key>
</schema>
</schemalist>

View File

@@ -0,0 +1,52 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Gio = imports.gi.Gio;
const Gtk = imports.gi.Gtk;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
function init() {
Convenience.initTranslations();
}
const ExamplePrefsWidget = new GObject.Class({
Name: 'Example.Prefs.Widget',
GTypeName: 'ExamplePrefsWidget',
Extends: Gtk.Grid,
_init: function(params) {
this.parent(params);
this.margin = this.row_spacing = this.column_spacing = 10;
// TRANSLATORS: Example is the name of the extension, should not be
// translated
let primaryText = _("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.");
this.attach(new Gtk.Label({ label: primaryText, wrap: true }), 0, 0, 2, 1);
this.attach(new Gtk.Label({ label: '<b>' + _("Message:") + '</b>', use_markup: true }),
0, 1, 1, 1);
let entry = new Gtk.Entry({ hexpand: true });
this.attach(entry, 1, 1, 1, 1);
this._settings = Convenience.getSettings();
this._settings.bind('hello-text', entry, 'text', Gio.SettingsBindFlags.DEFAULT);
}
});
function buildPrefsWidget() {
let widget = new ExamplePrefsWidget();
widget.show_all();
return widget;
}

View File

@@ -1,3 +0,0 @@
EXTENSION_ID = gajim
include ../../extension.mk

View File

@@ -1,340 +0,0 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const DBus = imports.dbus;
const Gettext = imports.gettext.domain('gnome-shell');
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Signals = imports.signals;
const St = imports.gi.St;
const Tp = imports.gi.TelepathyGLib;
const Main = imports.ui.main;
const Mainloop = imports.mainloop;
const MessageTray = imports.ui.messageTray;
const Shell = imports.gi.Shell;
const TelepathyClient = imports.ui.telepathyClient;
const _ = Gettext.gettext;
// http://ntt.cc/ext/base64-Encoding-Decoding.html
const keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
function decode64(input) {
let output = "";
let chr1, chr2, chr3;
let enc1, enc2, enc3, enc4;
let i = 0;
input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
do {
enc1 = keyStr.indexOf(input.charAt(i++));
enc2 = keyStr.indexOf(input.charAt(i++));
enc3 = keyStr.indexOf(input.charAt(i++));
enc4 = keyStr.indexOf(input.charAt(i++));
chr1 = (enc1 << 2) | (enc2 >> 4);
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
chr3 = ((enc3 & 3) << 6) | enc4;
output = output + String.fromCharCode(chr1);
if (enc3 != 64) {
output = output + String.fromCharCode(chr2);
}
if (enc4 != 64) {
output = output + String.fromCharCode(chr3);
}
chr1 = chr2 = chr3 = "";
enc1 = enc2 = enc3 = enc4 = "";
} while (i < input.length);
return unescape(output);
}
function wrappedText(text, sender, timestamp, direction) {
if (!timestamp)
timestamp = (Date.now() / 1000);
return {
messageType: Tp.ChannelTextMessageType.NORMAL,
text: text,
sender: sender,
timestamp: timestamp,
direction: direction
};
}
function Source(gajimClient, accountName, author, initialMessage) {
this._init(gajimClient, accountName, author, initialMessage);
}
Source.prototype = {
__proto__: MessageTray.Source.prototype,
_init: function(gajimClient, accountName, author, initialMessage) {
MessageTray.Source.prototype._init.call(this, author);
this.isChat = true;
this._author = author;
this._gajimClient = gajimClient;
this._accountName = accountName;
this._initialMessage = initialMessage;
this._iconUri = null;
this._presence = "online";
this._notification = new TelepathyClient.ChatNotification(this);
this._notification.setUrgency(MessageTray.Urgency.HIGH);
let jid = author.split('/')[0];
let proxy = this._gajimClient.proxy();
proxy.contact_infoRemote(jid, Lang.bind(this, this._gotContactInfos));
this._statusChangeId = proxy.connect('ContactStatus',
Lang.bind(this, this._onStatusChange));
this._contactAbsenceId = proxy.connect('ContactAbsence',
Lang.bind(this, this._onStatusChange));
this._chatStateId = proxy.connect('ChatState',
Lang.bind(this, this._onChatState));
this._messageSentId = proxy.connect('MessageSent',
Lang.bind(this, this._messageSent));
this._newMessageId = proxy.connect('NewMessage',
Lang.bind(this, this._messageReceived));
},
destroy: function() {
let proxy = this._gajimClient.proxy();
proxy.disconnect(this._statusChangeId);
proxy.disconnect(this._contactAbsenceId);
proxy.disconnect(this._chatStateId);
proxy.disconnect(this._messageSentId);
proxy.disconnect(this._newMessageId);
MessageTray.Source.prototype.destroy.call(this);
},
_gotContactInfos: function(result, excp) {
this.title = result['FN'];
let avatarUri = null;
if (result['PHOTO']) {
let mimeType = result['PHOTO']['TYPE'];
let avatarData = decode64(result['PHOTO']['BINVAL']);
let sha = result['PHOTO']['SHA'];
avatarUri = this._gajimClient.cacheAvatar(mimeType, sha, avatarData);
}
this._iconUri = avatarUri;
this._setSummaryIcon(this.createNotificationIcon());
let message = wrappedText(this._initialMessage, this._author, null, TelepathyClient.NotificationDirection.RECEIVED);
this._notification.appendMessage(message, false);
if (!Main.messageTray.contains(this))
Main.messageTray.add(this);
this.notify(this._notification);
},
createNotificationIcon: function() {
let iconBox = new St.Bin({ style_class: 'avatar-box' });
iconBox._size = this.ICON_SIZE;
if (!this._iconUri) {
iconBox.child = new St.Icon({ icon_name: 'avatar-default',
icon_type: St.IconType.FULLCOLOR,
icon_size: iconBox._size });
} else {
let textureCache = St.TextureCache.get_default();
iconBox.child = textureCache.load_uri_async(this._iconUri, iconBox._size, iconBox._size);
}
return iconBox;
},
open: function(notification) {
// Lookup for the messages window and display it. In the case where it's not o
// opened yet fallback to the roster window.
let windows = global.get_window_actors();
for (let i = 0; i < windows.length; i++) {
let metaWindow = windows[i].metaWindow;
if (metaWindow.get_wm_class_instance() == "gajim" &&
metaWindow.get_role() == "messages") {
Main.activateWindow(metaWindow);
return;
}
}
let app = Shell.AppSystem.get_default().lookup_app('gajim.desktop');
app.activate(-1);
},
_onChatState: function(emitter, data) {
let chatstate = data[1][5];
if (chatstate == 'gone')
this.destroy();
},
setChatState: function(state) {
// Gajim DBUS API doesn't support sending chatstate yet.
},
_messageReceived: function(emitter, data) {
let author = data[1][0];
let text = data[1][1];
if (text && (author == this._author)) {
let message = wrappedText(text, this._author, null, TelepathyClient.NotificationDirection.RECEIVED);
this._notification.appendMessage(message, false);
this.notify(this._notification);
}
},
_messageSent: function(emitter, data) {
let recipient = data[1][0];
let text = data[1][1];
let chatstate = data[1][3];
if (text && (recipient == this._author)) {
let message = wrappedText(text, this._author, null, TelepathyClient.NotificationDirection.SENT);
this._notification.appendMessage(message, false);
} else if (chatstate == 'gone')
this.destroy();
},
notify: function() {
MessageTray.Source.prototype.notify.call(this, this._notification);
},
respond: function(text) {
let jid = this._author;
let keyID = ""; // unencrypted.
this._gajimClient.proxy().send_chat_messageRemote(jid, text, keyID, this._accountName);
},
_onStatusChange: function(emitter, data) {
if (!this.title)
return;
let jid = data[1][0];
let presence = data[1][1];
let message = data[1][2];
if (jid != this._author.split('/')[0])
return;
let presenceMessage, shouldNotify, title;
title = GLib.markup_escape_text(this.title, -1);
if (presence == "away") {
presenceMessage = _("%s is away.").format(title);
shouldNotify = false;
} else if (presence == "offline") {
presenceMessage = _("%s is offline.").format(title);
shouldNotify = (this._presence != "offline");
} else if (presence == "online") {
presenceMessage = _("%s is online.").format(title);
shouldNotify = (this._presence == "offline");
} else if (presence == "dnd") {
presenceMessage = _("%s is busy.").format(title);
shouldNotify = false;
} else
return;
this._presence = presence;
if (message)
presenceMessage += ' <i>(' + GLib.markup_escape_text(message, -1) + ')</i>';
this._notification.appendPresence(presenceMessage, shouldNotify);
if (shouldNotify)
this.notify(this._notification);
}
};
const GajimIface = {
name: 'org.gajim.dbus.RemoteInterface',
properties: [],
methods: [{ name: 'send_chat_message', inSignature: 'ssss', outSignature: 'b'},
{ name: 'contact_info', inSignature: 's', outSignature: 'a{sv}'}],
signals: [{ name: 'NewMessage', inSignature: 'av' },
{ name: 'ChatState', inSignature: 'av' },
{ name: 'ContactStatus', inSignature: 'av' },
{ name: 'ContactAbsence', inSignature: 'av' },
{ name: 'MessageSent', inSignature: 'av' }]
};
let Gajim = DBus.makeProxyClass(GajimIface);
function GajimClient() {
this._init();
}
GajimClient.prototype = {
_init: function() {
this._sources = {};
},
proxy : function() {
return this._proxy;
},
enable: function() {
this._cacheDir = GLib.get_user_cache_dir() + '/gnome-shell/gajim-avatars';
let dir = Gio.file_new_for_path(this._cacheDir);
if (!dir.query_exists(null)) {
GLib.mkdir_with_parents(this._cacheDir, 0x1c0); // 0x1c0 = octal 0700
}
this._proxy = new Gajim(DBus.session, 'org.gajim.dbus', '/org/gajim/dbus/RemoteObject');
this._newMessageId = this._proxy.connect('NewMessage', Lang.bind(this, this._messageReceived));
},
disable: function() {
if (this._newMessageId) {
this._proxy.disconnect(this._newMessageId);
this._newMessageId = 0;
}
this._proxy = null;
for (let id in this._sources)
this._sources[id].destroy();
this._sources = { };
},
_messageReceived : function(emitter, data) {
let author = data[1][0];
let message = data[1][1];
let account = data[0];
let source = this._sources[author];
if (!source) {
source = new Source(this, account, author, message);
source.connect('destroy', Lang.bind(this,
function() {
delete this._sources[author];
}));
this._sources[author] = source;
}
},
cacheAvatar : function(mimeType, sha, avatarData) {
let ext = mimeType.split('/')[1];
let file = this._cacheDir + '/' + sha + '.' + ext;
let uri = GLib.filename_to_uri(file, null);
if (GLib.file_test(file, GLib.FileTest.EXISTS))
return uri;
let success = false;
try {
success = GLib.file_set_contents(file, avatarData, avatarData.length);
} catch (e) {
logError(e, 'Error caching avatar data');
}
return uri;
}
};
function init() {
return new GajimClient();
}

View File

@@ -1,10 +0,0 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Gajim IM integration",
"description": "Display Gajim incoming chats as notifications in the Shell message tray.",
"shell-version": [ "@shell_current@" ],
"url": "http://base-art.net"
}

View File

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

View File

@@ -0,0 +1,3 @@
EXTENSION_ID = launch-new-instance
include ../../extension.mk

View File

@@ -0,0 +1,37 @@
const Main = imports.ui.main;
const AppDisplay = imports.ui.appDisplay;
var _onActivateOriginal = null;
var _activateResultOriginal = null;
function _onActivate(event) {
this.emit('launching');
if (this._onActivateOverride) {
this._onActivateOverride(event);
} else {
this.app.open_new_window(-1);
}
Main.overview.hide();
}
function _activateResult(app) {
app.open_new_window(-1);
}
function init() {
}
function enable() {
_onActivateOriginal = AppDisplay.AppIcon.prototype._onActivate;
AppDisplay.AppIcon.prototype._onActivate = _onActivate;
_activateResultOriginal = AppDisplay.AppSearchProvider.prototype.activateResult;
AppDisplay.AppSearchProvider.prototype.activateResult = _activateResult;
}
function disable() {
AppDisplay.AppIcon.prototype._onActivate = _onActivateOriginal;
AppDisplay.AppSearchProvider.prototype.activateResult = _activateResultOriginal;
}

View File

@@ -0,0 +1,10 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Launch new instance",
"description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME Bugzilla instead.",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

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

View File

@@ -33,6 +33,9 @@ const WINDOW_PLACEMENT_NATURAL_MAX_TRANSLATIONS = 5000; // safety li
const PLACE_WINDOW_CAPTIONS_ON_TOP = true; // place window titles in overview on top of windows with overlap parameter
const WORKSPACE_BORDER_GAP = 10; // minimum gap between the workspace area and the workspace selector
const WINDOW_AREA_TOP_GAP = 20; // minimum gap between the workspace area and the top border. This keeps window captions and close buttons visible. 13px (26/2) should currently be enough.
const BUTTON_LAYOUT_SCHEMA = 'org.gnome.shell.overrides';
const BUTTON_LAYOUT_KEY = 'button-layout';
@@ -46,7 +49,6 @@ function injectToFunction(parent, name, func) {
return ret;
}
}
const WORKSPACE_BORDER_GAP = 10; // gap between the workspace area and the workspace selector
const Rect = new Lang.Class({
Name: 'NativeWindowPlacement.Rect',
@@ -121,7 +123,8 @@ function enable() {
let settings = Convenience.getSettings();
let useMoreScreen = settings.get_boolean('use-more-screen');
signalId = settings.connect('changed::use-more-screen', function() {
let windowCaptionsOnTop = settings.get_boolean('window-captions-on-top');
let signalId = settings.connect('changed::use-more-screen', function() {
useMoreScreen = settings.get_boolean('use-more-screen');
});
connectedSignals.push({ obj: settings, id: signalId });
@@ -135,19 +138,12 @@ function enable() {
* PresentWindowsEffect::calculateWindowTransformationsNatural() from KDE, see:
* https://projects.kde.org/projects/kde/kdebase/kde-workspace/repository/revisions/master/entry/kwin/effects/presentwindows/presentwindows.cpp
*/
Workspace.Workspace.prototype._calculateWindowTransformationsNatural = function(clones) {
Workspace.Workspace.prototype._calculateWindowTransformationsNatural = function(clones, area) {
// As we are using pseudo-random movement (See "slot") we need to make sure the list
// is always sorted the same way no matter which window is currently active.
clones = clones.sort(function (win1, win2) {
return win2.metaWindow.get_stable_sequence() - win1.metaWindow.get_stable_sequence();
});
// Put a gap on the right edge of the workspace to separe it from the workspace selector
let x_gap = WORKSPACE_BORDER_GAP;
let y_gap = WORKSPACE_BORDER_GAP * this._height / this._width
let area = new Rect(this._x, this._y, this._width - x_gap, this._height - y_gap);
let bounds = area.copy();
let area_rect = new Rect(area.x, area.y, area.width, area.height);
let bounds = area_rect.copy();
let direction = 0;
let directions = [];
@@ -190,7 +186,7 @@ function enable() {
if (diff[0] == 0 && diff[1] == 0)
diff[0] = 1;
// Try to keep screen/workspace aspect ratio
if ( bounds.height / bounds.width > area.height / area.width )
if ( bounds.height / bounds.width > area_rect.height / area_rect.width )
diff[0] *= 2;
else
diff[1] *= 2;
@@ -262,15 +258,15 @@ function enable() {
// Work out scaling by getting the most top-left and most bottom-right window coords.
let scale;
scale = Math.min(area.width / bounds.width,
area.height / bounds.height,
scale = Math.min(area_rect.width / bounds.width,
area_rect.height / bounds.height,
1.0);
// Make bounding rect fill the screen size for later steps
bounds.x = bounds.x - (area.width - bounds.width * scale) / 2;
bounds.y = bounds.y - (area.height - bounds.height * scale) / 2;
bounds.width = area.width / scale;
bounds.height = area.height / scale;
bounds.x = bounds.x - (area_rect.width - bounds.width * scale) / 2;
bounds.y = bounds.y - (area_rect.height - bounds.height * scale) / 2;
bounds.width = area_rect.width / scale;
bounds.height = area_rect.height / scale;
// Move all windows back onto the screen and set their scale
for (let i = 0; i < rects.length; i++) {
@@ -285,163 +281,144 @@ function enable() {
let buttonOuterHeight, captionHeight;
let buttonOuterWidth = 0;
let targets = [];
let slots = [];
for (let i = 0; i < rects.length; i++) {
rects[i].x = rects[i].x * scale + this._x;
rects[i].y = rects[i].y * scale + this._y;
rects[i].x = rects[i].x * scale + area_rect.x;
rects[i].y = rects[i].y * scale + area_rect.y;
targets[i] = [rects[i].x, rects[i].y, scale];
slots.push([rects[i].x, rects[i].y, scale, clones[i]]);
}
return [clones, targets];
return slots;
}
workspaceInjections['_calculateWindowTransformationsNatural'] = undefined;
/**
* positionWindows:
* _updateWindowPositions:
* @flags:
* INITIAL - this is the initial positioning of the windows.
* ANIMATE - Indicates that we need animate changing position.
*/
workspaceInjections['positionWindows'] = Workspace.Workspace.prototype.positionWindows;
Workspace.Workspace.prototype.positionWindows = function(flags) {
if (this._repositionWindowsId > 0) {
Mainloop.source_remove(this._repositionWindowsId);
this._repositionWindowsId = 0;
}
workspaceInjections['_updateWindowPositions'] = Workspace.Workspace.prototype._updateWindowPositions;
Workspace.Workspace.prototype._updateWindowPositions = function(flags) {
if (this._currentLayout == null) {
this._recalculateWindowPositions(flags);
return;
}
let clones = this._windows.slice();
if (this._reservedSlot)
clones.push(this._reservedSlot);
let initialPositioning = flags & WindowPositionFlags.INITIAL;
let animate = flags & WindowPositionFlags.ANIMATE;
let initialPositioning = flags & WindowPositionFlags.INITIAL;
let animate = flags & WindowPositionFlags.ANIMATE;
let layout = this._currentLayout;
let strategy = layout.strategy;
// Start the animations
let targets = [];
let scales = [];
let [, , padding] = this._getSpacingAndPadding();
let area = Workspace.padArea(this._actualGeometry, padding);
[clones, targets] = this._calculateWindowTransformationsNatural(clones);
/// EDIT replace this version by our own:
//let slots = strategy.computeWindowSlots(layout, area);
let currentWorkspace = global.screen.get_active_workspace();
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
for (let i = 0; i < clones.length; i++) {
let clone = clones[i];
let [x, y , scale] = targets[i];
let metaWindow = clone.metaWindow;
let mainIndex = this._lookupIndex(metaWindow);
let overlay = this._windowOverlays[mainIndex];
/// EDIT copied from _realRecalculateWindowPositions:
let clones = this._windows.slice();
if (clones.length == 0)
return;
// Positioning a window currently being dragged must be avoided;
// we'll just leave a blank spot in the layout for it.
if (clone.inDrag)
continue;
clones.sort(function(a, b) {
return a.metaWindow.get_stable_sequence() - b.metaWindow.get_stable_sequence();
});
if (overlay && initialPositioning)
overlay.hide();
if (animate && isOnCurrentWorkspace) {
if (!metaWindow.showing_on_its_workspace()) {
/* Hidden windows should fade in and grow
* therefore we need to resize them now so they
* can be scaled up later */
if (initialPositioning) {
clone.actor.opacity = 0;
clone.actor.scale_x = 0;
clone.actor.scale_y = 0;
clone.actor.x = x;
clone.actor.y = y;
}
if (this._reservedSlot)
clones.push(this._reservedSlot);
// Make the window slightly transparent to indicate it's hidden
Tweener.addTween(clone.actor,
{ opacity: 255,
time: Overview.ANIMATION_TIME,
transition: 'easeInQuad'
});
/// EDIT our own window placement function:
let slots = this._calculateWindowTransformationsNatural(clones, area);
let currentWorkspace = global.screen.get_active_workspace();
let isOnCurrentWorkspace = this.metaWorkspace == null || this.metaWorkspace == currentWorkspace;
for (let i = 0; i < slots.length; i++) {
let slot = slots[i];
let [x, y, scale, clone] = slot;
let metaWindow = clone.metaWindow;
let overlay = clone.overlay;
clone.slotId = i;
// Positioning a window currently being dragged must be avoided;
// we'll just leave a blank spot in the layout for it.
if (clone.inDrag)
continue;
let cloneWidth = clone.actor.width * scale;
let cloneHeight = clone.actor.height * scale;
clone.slot = [x, y, cloneWidth, cloneHeight];
if (overlay && (initialPositioning || !clone.positioned))
overlay.hide();
if (!clone.positioned) {
// This window appeared after the overview was already up
// Grow the clone from the center of the slot
clone.actor.x = x + cloneWidth / 2;
clone.actor.y = y + cloneHeight / 2;
clone.actor.scale_x = 0;
clone.actor.scale_y = 0;
clone.positioned = true;
}
this._animateClone(clone, overlay, x, y, scale, initialPositioning);
} else {
clone.actor.set_position(x, y);
clone.actor.set_scale(scale, scale);
this._updateWindowOverlayPositions(clone, overlay, x, y, scale, false);
this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace);
if (animate && isOnCurrentWorkspace) {
if (!metaWindow.showing_on_its_workspace()) {
/* Hidden windows should fade in and grow
* therefore we need to resize them now so they
* can be scaled up later */
if (initialPositioning) {
clone.actor.opacity = 0;
clone.actor.scale_x = 0;
clone.actor.scale_y = 0;
clone.actor.x = x;
clone.actor.y = y;
}
Tweener.addTween(clone.actor,
{ opacity: 255,
time: Overview.ANIMATION_TIME,
transition: 'easeInQuad'
});
}
this._animateClone(clone, overlay, x, y, scale, initialPositioning);
} else {
// cancel any active tweens (otherwise they might override our changes)
Tweener.removeTweens(clone.actor);
clone.actor.set_position(x, y);
clone.actor.set_scale(scale, scale);
clone.overlay.relayout(false);
this._showWindowOverlay(clone, overlay, isOnCurrentWorkspace);
}
}
}
}
/// position window titles on top of windows in overlay ////
if (settings.get_boolean('window-captions-on-top')) {
winInjections['_init'] = Workspace.WindowOverlay.prototype._init;
Workspace.WindowOverlay.prototype._init = function(windowClone, parentActor) {
let metaWindow = windowClone.metaWindow;
if (windowCaptionsOnTop) {
this._windowClone = windowClone;
this._parentActor = parentActor;
this._hidden = false;
let title = new St.Label({ style_class: 'window-caption',
text: metaWindow.title });
title.clutter_text.ellipsize = Pango.EllipsizeMode.END;
title._spacing = 0;
title._overlap = 0;
this._updateCaptionId = metaWindow.connect('notify::title', Lang.bind(this, function(w) {
this.title.text = w.title;
}));
let button = new St.Button({ style_class: 'window-close' });
button._overlap = 0;
this._idleToggleCloseId = 0;
button.connect('clicked', Lang.bind(this, this._closeWindow));
windowClone.actor.connect('destroy', Lang.bind(this, this._onDestroy));
windowClone.actor.connect('enter-event', Lang.bind(this, this._onEnter));
windowClone.actor.connect('leave-event', Lang.bind(this, this._onLeave));
this._windowAddedId = 0;
windowClone.connect('zoom-start', Lang.bind(this, this.hide));
windowClone.connect('zoom-end', Lang.bind(this, this.show));
button.hide();
this.title = title;
this.closeButton = button;
parentActor.add_actor(this.title);
parentActor.add_actor(this.closeButton);
title.connect('style-changed', Lang.bind(this, this._onStyleChanged));
button.connect('style-changed', Lang.bind(this, this._onStyleChanged));
// force a style change if we are already on a stage - otherwise
// the signal will be emitted normally when we are added
if (parentActor.get_stage())
this._onStyleChanged();
},
winInjections['chromeHeights'] = Workspace.WindowOverlay.prototype.chromeHeights;
Workspace.WindowOverlay.prototype.chromeHeights = function () {
return [Math.max( this.closeButton.height - this.closeButton._overlap, this.title.height - this.title._overlap),
0];
},
winInjections['updatePositions'] = Workspace.WindowOverlay.prototype.updatePositions;
Workspace.WindowOverlay.prototype.updatePositions = function(cloneX, cloneY, cloneWidth, cloneHeight, animate) {
/// This is almost a direct copy of the original relayout function. Differences are marked.
winInjections['relayout'] = Workspace.WindowOverlay.prototype.relayout;
Workspace.WindowOverlay.prototype.relayout = function(animate) {
let button = this.closeButton;
let title = this.title;
let border = this.border;
let settings = new Gio.Settings({ schema: BUTTON_LAYOUT_SCHEMA });
let layout = settings.get_string(BUTTON_LAYOUT_KEY);
let rtl = St.Widget.get_default_direction() == St.TextDirection.RTL;
Tweener.removeTweens(button);
Tweener.removeTweens(title);
Tweener.removeTweens(border);
let split = layout.split(":");
let side;
if (split[0].indexOf("close") > -1)
side = rtl ? St.Side.RIGHT : St.Side.LEFT;
else
side = rtl ? St.Side.LEFT : St.Side.RIGHT;
let [cloneX, cloneY, cloneWidth, cloneHeight] = this._windowClone.slot;
let layout = Meta.prefs_get_button_layout();
let side = layout.left_buttons.indexOf(Meta.ButtonFunction.CLOSE) > -1 ? St.Side.LEFT : St.Side.RIGHT;
let buttonX;
let buttonY = cloneY - (button.height - button._overlap);
@@ -455,12 +432,22 @@ function enable() {
else
button.set_position(Math.floor(buttonX), Math.floor(buttonY));
if (!title.fullWidth)
title.fullWidth = title.width;
let titleWidth = Math.min(title.fullWidth, cloneWidth);
// Clutter.Actor.get_preferred_width() will return the fixed width if one
// is set, so we need to reset the width by calling set_width(-1), to forward
// the call down to StLabel.
// We also need to save and restore the current width, otherwise the animation
// starts from the wrong point.
let prevTitleWidth = title.width;
title.set_width(-1);
let [titleMinWidth, titleNatWidth] = title.get_preferred_width(-1);
let titleWidth = Math.max(titleMinWidth, Math.min(titleNatWidth, cloneWidth));
title.width = prevTitleWidth;
let titleX = cloneX + (cloneWidth - titleWidth) / 2;
let titleY = cloneY - title.height + title._overlap;
/// this is the actual difference to original gnome-shell:
//let titleY = cloneY + cloneHeight + title._spacing;
let titleY = cloneY - title.height + title._spacing;
if (animate)
this._animateOverlayActor(title, Math.floor(titleX), Math.floor(titleY), titleWidth);
@@ -468,19 +455,20 @@ function enable() {
title.width = titleWidth;
title.set_position(Math.floor(titleX), Math.floor(titleY));
}
},
winInjections['_onStyleChanged'] = Workspace.WindowOverlay.prototype._onStyleChanged;
Workspace.WindowOverlay.prototype._onStyleChanged = function() {
let titleNode = this.title.get_theme_node();
this.title._spacing = titleNode.get_length('-shell-caption-spacing');
this.title._overlap = titleNode.get_length('-shell-caption-overlap');
let borderX = cloneX - this.borderSize;
let borderY = cloneY - this.borderSize;
let borderWidth = cloneWidth + 2 * this.borderSize;
let borderHeight = cloneHeight + 2 * this.borderSize;
let closeNode = this.closeButton.get_theme_node();
this.closeButton._overlap = closeNode.get_length('-shell-close-overlap');
this._parentActor.queue_relayout();
}
if (animate) {
this._animateOverlayActor(this.border, borderX, borderY,
borderWidth, borderHeight);
} else {
this.border.set_position(borderX, borderY);
this.border.set_size(borderWidth, borderHeight);
}
};
}
}
@@ -492,6 +480,8 @@ function removeInjection(object, injection, name) {
}
function disable() {
var i;
for (i in workspaceInjections)
removeInjection(Workspace.Workspace.prototype, workspaceInjections, i);
for (i in winInjections)

View File

@@ -4,7 +4,7 @@
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Native Window Placement",
"description": "Arrange windows in overview in a more native way",
"description": "Arrange windows in overview in a more compact way.",
"shell-version": [ "@shell_current@" ],
"url": "@url@",
"original-authors": [ "wepmaschda@gmx.de" ]

View File

@@ -1,3 +1,9 @@
.window-caption {
-shell-caption-overlap: 10px;
-shell-caption-spacing: 13px; /* current caption height is 26px => set it to half of it. TODO: better solution needed */
}
.window-picker {
-horizontal-spacing: 32px;
-vertical-spacing: 32px;
padding: 64px 32px;
}

View File

@@ -1,3 +1,5 @@
EXTENSION_ID = places-menu
EXTRA_MODULES = placeDisplay.js
include ../../extension.mk

View File

@@ -1,6 +1,7 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const Gdk = imports.gi.Gdk;
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Shell = imports.gi.Shell;
@@ -13,112 +14,115 @@ const Panel = imports.ui.panel;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(x) { return x; }
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const PlaceDisplay = Me.imports.placeDisplay;
const PLACE_ICON_SIZE = 22;
const PLACE_ICON_SIZE = 16;
const PlacesMenu = new Lang.Class({
Name: 'PlacesMenu.PlacesMenu',
Extends: PanelMenu.SystemStatusButton,
const PlaceMenuItem = new Lang.Class({
Name: 'PlaceMenuItem',
Extends: PopupMenu.PopupBaseMenuItem,
_init: function() {
this.parent('folder');
_init: function(info) {
this.parent();
this._info = info;
this.defaultItems = [];
this.bookmarkItems = [];
this.deviceItems = [];
this._createDefaultPlaces();
this._bookmarksSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._bookmarksSection);
this._createBookmarks();
this._devicesMenuItem = new PopupMenu.PopupSubMenuMenuItem(_("Removable Devices"));
this.menu.addMenuItem(this._devicesMenuItem);
this._createDevices();
this._icon = new St.Icon({ gicon: info.icon,
icon_size: PLACE_ICON_SIZE });
this.actor.add_child(this._icon);
this._bookmarksId = Main.placesManager.connect('bookmarks-updated',Lang.bind(this,this._redisplayBookmarks));
this._mountsId = Main.placesManager.connect('mounts-updated',Lang.bind(this,this._redisplayDevices));
this._label = new St.Label({ text: info.name });
this.actor.add_child(this._label);
this._changedId = info.connect('changed',
Lang.bind(this, this._propertiesChanged));
},
destroy: function() {
Main.placesManager.disconnect(this._bookmarksId);
Main.placesManager.disconnect(this._mountsId);
if (this._changedId) {
this._info.disconnect(this._changedId);
this._changedId = 0;
}
this.parent();
},
_redisplayBookmarks: function(){
this._clearBookmarks();
this._createBookmarks();
activate: function(event) {
this._info.launch(event.get_time());
this.parent(event);
},
_redisplayDevices: function(){
this._clearDevices();
this._createDevices();
_propertiesChanged: function(info) {
this._icon.gicon = info.icon;
this._label.text = info.name;
},
});
const SECTIONS = [
'special',
'devices',
'bookmarks',
'network'
]
const PlacesMenu = new Lang.Class({
Name: 'PlacesMenu.PlacesMenu',
Extends: PanelMenu.Button,
_init: function() {
this.parent(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 });
hbox.add_child(label);
hbox.add_child(new St.Label({ text: '\u25BE',
y_expand: true,
y_align: Clutter.ActorAlign.CENTER }));
this.actor.add_actor(hbox);
this.placesManager = new PlaceDisplay.PlacesManager();
this._sections = { };
for (let i=0; i < SECTIONS.length; i++) {
let id = SECTIONS[i];
this._sections[id] = new PopupMenu.PopupMenuSection();
this.placesManager.connect(id + '-updated', Lang.bind(this, function() {
this._redisplay(id);
}));
this._create(id);
this.menu.addMenuItem(this._sections[id]);
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
}
},
_createDefaultPlaces : function() {
this.defaultPlaces = Main.placesManager.getDefaultPlaces();
destroy: function() {
this.placesManager.destroy();
for (let placeid = 0; placeid < this.defaultPlaces.length; placeid++) {
this.defaultItems[placeid] = new PopupMenu.PopupMenuItem(this.defaultPlaces[placeid].name);
let icon = this.defaultPlaces[placeid].iconFactory(PLACE_ICON_SIZE);
this.defaultItems[placeid].addActor(icon, { align: St.Align.END });
this.defaultItems[placeid].place = this.defaultPlaces[placeid];
this.menu.addMenuItem(this.defaultItems[placeid]);
this.defaultItems[placeid].connect('activate', function(actor,event) {
actor.place.launch();
});
}
this.parent();
},
_createBookmarks : function() {
this.bookmarks = Main.placesManager.getBookmarks();
for (let bookmarkid = 0; bookmarkid < this.bookmarks.length; bookmarkid++) {
this.bookmarkItems[bookmarkid] = new PopupMenu.PopupMenuItem(this.bookmarks[bookmarkid].name);
let icon = this.bookmarks[bookmarkid].iconFactory(PLACE_ICON_SIZE);
this.bookmarkItems[bookmarkid].addActor(icon, { align: St.Align.END });
this.bookmarkItems[bookmarkid].place = this.bookmarks[bookmarkid];
this._bookmarksSection.addMenuItem(this.bookmarkItems[bookmarkid]);
this.bookmarkItems[bookmarkid].connect('activate', function(actor,event) {
actor.place.launch();
});
}
_redisplay: function(id) {
this._sections[id].removeAll();
this._create(id);
},
_createDevices : function() {
this.devices = Main.placesManager.getMounts();
_create: function(id) {
let places = this.placesManager.get(id);
for (let devid = 0; devid < this.devices.length; devid++) {
this.deviceItems[devid] = new PopupMenu.PopupMenuItem(this.devices[devid].name);
let icon = this.devices[devid].iconFactory(PLACE_ICON_SIZE);
this.deviceItems[devid].addActor(icon, { align: St.Align.END });
this.deviceItems[devid].place = this.devices[devid];
this._devicesMenuItem.menu.addMenuItem(this.deviceItems[devid]);
this.deviceItems[devid].connect('activate', function(actor,event) {
actor.place.launch();
});
}
for (let i = 0; i < places.length; i++)
this._sections[id].addMenuItem(new PlaceMenuItem(places[i]));
if (this.devices.length == 0)
this._devicesMenuItem.actor.hide();
else
this._devicesMenuItem.actor.show();
},
_clearBookmarks : function(){
this._bookmarksSection.removeAll();
this.bookmarkItems = [];
},
_clearDevices : function(){
this._devicesMenuItem.menu.removeAll();
this.deviceItems = [];
},
this._sections[id].actor.visible = places.length > 0;
}
});
function init() {
@@ -129,7 +133,11 @@ let _indicator;
function enable() {
_indicator = new PlacesMenu;
Main.panel.addToStatusArea('places-menu', _indicator);
let pos = 1;
if ('apps-menu' in Main.panel.statusArea)
pos = 2;
Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
}
function disable() {

View File

@@ -4,7 +4,7 @@
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Places Status Indicator",
"description": "Add a systems status menu for quickly navigating places in the system",
"description": "Add a menu for quickly navigating places in the system.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME Bugzilla instead.",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -0,0 +1,448 @@
// -*- 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 Lang = imports.lang;
const Mainloop = imports.mainloop;
const Signals = imports.signals;
const St = imports.gi.St;
const DND = imports.ui.dnd;
const Main = imports.ui.main;
const Params = imports.misc.params;
const Search = imports.ui.search;
const Util = imports.misc.util;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(x) { return x; }
const Hostname1Iface = <interface name="org.freedesktop.hostname1">
<property name="PrettyHostname" type="s" access="read" />
</interface>;
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
const PlaceInfo = new Lang.Class({
Name: 'PlaceInfo',
_init: function(kind, file, name, icon) {
this.kind = kind;
this.file = file;
this.name = name || this._getFileName();
this.icon = icon ? new Gio.ThemedIcon({ name: icon }) : this.getIcon();
},
destroy: function() {
},
isRemovable: function() {
return false;
},
launch: function(timestamp) {
let launchContext = global.create_app_launch_context();
launchContext.set_timestamp(timestamp);
try {
Gio.AppInfo.launch_default_for_uri(this.file.get_uri(),
launchContext);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
this.file.mount_enclosing_volume(0, null, null, function(file, result) {
file.mount_enclosing_volume_finish(result);
Gio.AppInfo.launch_default_for_uri(file.get_uri(), launchContext);
});
} catch(e) {
Main.notifyError(_("Failed to launch \"%s\"").format(this.name), e.message);
}
},
getIcon: function() {
try {
let info = this.file.query_info('standard::symbolic-icon', 0, null);
return info.get_symbolic_icon();
} catch(e if e instanceof Gio.IOErrorEnum) {
// return a generic icon for this kind
switch (this.kind) {
case 'network':
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
case 'devices':
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
case 'special':
case 'bookmarks':
default:
if (!this.file.is_native())
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
else
return new Gio.ThemedIcon({ name: 'folder-symbolic' });
}
}
},
_getFileName: function() {
try {
let info = this.file.query_info('standard::display-name', 0, null);
return info.get_display_name();
} catch(e if e instanceof Gio.IOErrorEnum) {
return this.file.get_basename();
}
},
});
Signals.addSignalMethods(PlaceInfo.prototype);
const RootInfo = new Lang.Class({
Name: 'RootInfo',
Extends: PlaceInfo,
_init: function() {
this.parent('devices', Gio.File.new_for_path('/'), _("Computer"));
this._proxy = new Hostname1(Gio.DBus.system,
'org.freedesktop.hostname1',
'/org/freedesktop/hostname1',
Lang.bind(this, function(obj, error) {
if (error)
return;
this._proxy.connect('g-properties-changed',
Lang.bind(this, this._propertiesChanged));
this._propertiesChanged(obj);
}));
},
getIcon: function() {
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
},
_propertiesChanged: function(proxy) {
// GDBusProxy will emit a g-properties-changed when hostname1 goes down
// ignore it
if (proxy.g_name_owner) {
this.name = proxy.PrettyHostname || _("Computer");
this.emit('changed');
}
},
destroy: function() {
this._proxy.run_dispose();
this.parent();
}
});
const PlaceDeviceInfo = new Lang.Class({
Name: 'PlaceDeviceInfo',
Extends: PlaceInfo,
_init: function(kind, mount) {
this._mount = mount;
this.parent(kind, mount.get_root(), mount.get_name());
},
getIcon: function() {
return this._mount.get_symbolic_icon();
}
});
const PlaceVolumeInfo = new Lang.Class({
Name: 'PlaceVolumeInfo',
Extends: PlaceInfo,
_init: function(kind, volume) {
this._volume = volume;
this.parent(kind, volume.get_activation_root(), volume.get_name());
},
launch: function(timestamp) {
if (this.file) {
this.parent(timestamp);
return;
}
this._volume.mount(0, null, null, Lang.bind(this, function(volume, result) {
volume.mount_finish(result);
let mount = volume.get_mount();
this.file = mount.get_root();
this.parent(timestamp);
}));
},
getIcon: function() {
return this._volume.get_symbolic_icon();
}
});
const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_DOCUMENTS,
GLib.UserDirectory.DIRECTORY_PICTURES,
GLib.UserDirectory.DIRECTORY_MUSIC,
GLib.UserDirectory.DIRECTORY_DOWNLOAD,
GLib.UserDirectory.DIRECTORY_VIDEOS,
];
const PlacesManager = new Lang.Class({
Name: 'PlacesManager',
_init: function() {
this._places = {
special: [],
devices: [],
bookmarks: [],
network: [],
};
let homePath = GLib.get_home_dir();
this._places.special.push(new PlaceInfo('special',
Gio.File.new_for_path(homePath),
_("Home")));
let specials = [];
for (let i = 0; i < DEFAULT_DIRECTORIES.length; i++) {
let specialPath = GLib.get_user_special_dir(DEFAULT_DIRECTORIES[i]);
if (specialPath == homePath)
continue;
let file = Gio.File.new_for_path(specialPath), info;
try {
info = new PlaceInfo('special', file);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
continue;
}
specials.push(info);
}
specials.sort(function(a, b) {
return GLib.utf8_collate(a.name, b.name);
});
this._places.special = this._places.special.concat(specials);
/*
* Show devices, code more or less ported from nautilus-places-sidebar.c
*/
this._volumeMonitor = Gio.VolumeMonitor.get();
this._connectVolumeMonitorSignals();
this._updateMounts();
this._bookmarksFile = this._findBookmarksFile()
this._bookmarkTimeoutId = 0;
this._monitor = null;
if (this._bookmarksFile) {
this._monitor = this._bookmarksFile.monitor_file(Gio.FileMonitorFlags.NONE, null);
this._monitor.connect('changed', Lang.bind(this, function () {
if (this._bookmarkTimeoutId > 0)
return;
/* Defensive event compression */
this._bookmarkTimeoutId = Mainloop.timeout_add(100, Lang.bind(this, function () {
this._bookmarkTimeoutId = 0;
this._reloadBookmarks();
return false;
}));
}));
this._reloadBookmarks();
}
},
_connectVolumeMonitorSignals: function() {
const signals = ['volume-added', 'volume-removed', 'volume-changed',
'mount-added', 'mount-removed', 'mount-changed',
'drive-connected', 'drive-disconnected', 'drive-changed'];
this._volumeMonitorSignals = [];
let func = Lang.bind(this, this._updateMounts);
for (let i = 0; i < signals.length; i++) {
let id = this._volumeMonitor.connect(signals[i], func);
this._volumeMonitorSignals.push(id);
}
},
destroy: function() {
for (let i = 0; i < this._volumeMonitorSignals.length; i++)
this._volumeMonitor.disconnect(this._volumeMonitorSignals[i]);
if (this._monitor)
this._monitor.cancel();
if (this._bookmarkTimeoutId)
Mainloop.source_remove(this._bookmarkTimeoutId);
},
_updateMounts: function() {
let networkMounts = [];
let networkVolumes = [];
this._places.devices.forEach(function (p) { p.destroy(); });
this._places.devices = [];
this._places.network.forEach(function (p) { p.destroy(); });
this._places.network = [];
/* Add standard places */
this._places.devices.push(new RootInfo());
this._places.network.push(new PlaceInfo('network',
Gio.File.new_for_uri('network:///'),
_("Browse Network"),
'network-workgroup-symbolic'));
/* first go through all connected drives */
let drives = this._volumeMonitor.get_connected_drives();
for (let i = 0; i < drives.length; i++) {
let volumes = drives[i].get_volumes();
for(let j = 0; j < volumes.length; j++) {
let identifier = volumes[j].get_identifier('class');
if (identifier && identifier.indexOf('network') >= 0) {
networkVolumes.push(volumes[j]);
} else {
let mount = volumes[j].get_mount();
if(mount != null)
this._addMount('devices', mount);
}
}
}
/* 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)
continue;
let identifier = volumes[i].get_identifier('class');
if (identifier && identifier.indexOf('network') >= 0) {
networkVolumes.push(volumes[i]);
} else {
let mount = volumes[i].get_mount();
if(mount != null)
this._addMount('devices', mount);
}
}
/* add mounts that have no volume (/etc/mtab mounts, ftp, sftp,...) */
let mounts = this._volumeMonitor.get_mounts();
for(let i = 0; i < mounts.length; i++) {
if(mounts[i].is_shadowed())
continue;
if(mounts[i].get_volume())
continue;
let root = mounts[i].get_default_location();
if (!root.is_native()) {
networkMounts.push(mounts[i]);
continue;
}
this._addMount('devices', mounts[i]);
}
for (let i = 0; i < networkVolumes.length; i++) {
let mount = networkVolumes[i].get_mount();
if (mount) {
networkMounts.push(mount);
continue;
}
this._addVolume('network', networkVolumes[i]);
}
for (let i = 0; i < networkMounts.length; i++) {
this._addMount('network', networkMounts[i]);
}
this.emit('devices-updated');
this.emit('network-updated');
},
_findBookmarksFile: function() {
let paths = [
GLib.build_filenamev([GLib.get_user_config_dir(), 'gtk-3.0', 'bookmarks']),
GLib.build_filenamev([GLib.get_home_dir(), '.gtk-bookmarks']),
];
for (let i = 0; i < paths.length; i++) {
if (GLib.file_test(paths[i], GLib.FileTest.EXISTS))
return Gio.File.new_for_path(paths[i]);
}
return null;
},
_reloadBookmarks: function() {
this._bookmarks = [];
let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
let lines = content.split('\n');
let bookmarks = [];
for (let i = 0; i < lines.length; i++) {
let line = lines[i];
let components = line.split(' ');
let bookmark = components[0];
if (!bookmark)
continue;
let file = Gio.File.new_for_uri(bookmark);
if (file.is_native() && !file.query_exists(null))
continue;
let duplicate = false;
for (let i = 0; i < this._places.special.length; i++) {
if (file.equal(this._places.special[i].file)) {
duplicate = true;
break;
}
}
if (duplicate)
continue;
for (let i = 0; i < bookmarks.length; i++) {
if (file.equal(bookmarks[i].file)) {
duplicate = true;
break;
}
}
if (duplicate)
continue;
let label = null;
if (components.length > 1)
label = components.slice(1).join(' ');
bookmarks.push(new PlaceInfo('bookmarks', file, label));
}
this._places.bookmarks = bookmarks;
this.emit('bookmarks-updated');
},
_addMount: function(kind, mount) {
let devItem;
try {
devItem = new PlaceDeviceInfo(kind, mount);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
return;
}
this._places[kind].push(devItem);
},
_addVolume: function(kind, volume) {
let volItem;
try {
volItem = new PlaceVolumeInfo(kind, volume);
} catch(e if e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND)) {
return;
}
this._places[kind].push(volItem);
},
get: function (kind) {
return this._places[kind];
}
});
Signals.addSignalMethods(PlacesManager.prototype);

View File

@@ -8,13 +8,21 @@ const St = imports.gi.St;
const Shell = imports.gi.Shell;
const Main = imports.ui.main;
const Tweener = imports.ui.tweener;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const INDICATOR_UPDATE_INTERVAL = 500;
const INDICATOR_NUM_GRID_LINES = 3;
let _cpuIndicator;
let _memIndicator;
let _box;
const ITEM_LABEL_SHOW_TIME = 0.15;
const ITEM_LABEL_HIDE_TIME = 0.1;
const ITEM_HOVER_TIMEOUT = 300;
const Indicator = new Lang.Class({
Name: 'SystemMonitor.Indicator',
@@ -22,15 +30,16 @@ const Indicator = new Lang.Class({
_init: function() {
this._initValues();
this.drawing_area = new St.DrawingArea({ reactive: true });
this.drawing_area.width = 100; this.drawing_area.height = 100;
this.drawing_area.connect('repaint', Lang.bind(this, this._draw));
this.drawing_area.connect('button-press-event', function() {
let app = Shell.AppSystem.get_default().lookup_app('gnome-system-monitor.desktop');
app.open_new_window(-1);
return true;
});
this.actor = new St.Bin({ style_class: "extension-systemMonitor-indicator-area",
reactive: true});
reactive: true, track_hover: true,
x_fill: true, y_fill: true });
this.actor.add_actor(this.drawing_area);
this._timeout = Mainloop.timeout_add(INDICATOR_UPDATE_INTERVAL, Lang.bind(this, function () {
@@ -40,10 +49,63 @@ const Indicator = new Lang.Class({
}));
},
showLabel: function() {
if (this.label == null)
return;
this.label.opacity = 0;
this.label.show();
let [stageX, stageY] = this.actor.get_transformed_position();
let itemWidth = this.actor.allocation.x2 - this.actor.allocation.x1;
let itemHeight = this.actor.allocation.y2 - this.actor.allocation.y1;
let labelWidth = this.label.width;
let labelHeight = this.label.height;
let xOffset = Math.floor((itemWidth - labelWidth) / 2)
let x = stageX + xOffset;
let node = this.label.get_theme_node();
let yOffset = node.get_length('-y-offset');
let y = stageY - this.label.get_height() - yOffset;
this.label.set_position(x, y);
Tweener.addTween(this.label,
{ opacity: 255,
time: ITEM_LABEL_SHOW_TIME,
transition: 'easeOutQuad',
});
},
setLabelText: function(text) {
if (this.label == null)
this.label = new St.Label({ style_class: 'extension-systemMonitor-indicator-label'});
this.label.set_text(text);
Main.layoutManager.addChrome(this.label);
this.label.hide();
},
hideLabel: function () {
Tweener.addTween(this.label,
{ opacity: 0,
time: ITEM_LABEL_HIDE_TIME,
transition: 'easeOutQuad',
onComplete: Lang.bind(this, function() {
this.label.hide();
})
});
},
destroy: function() {
Mainloop.source_remove(this._timeout);
this.actor.destroy();
if (this.label)
this.label.destroy();
},
_initValues: function() {
@@ -148,6 +210,8 @@ const CpuIndicator = new Lang.Class({
this.renderStats = this.renderStats.sort(function(a,b) {
return renderStatOrder[a] - renderStatOrder[b];
});
this.setLabelText(_("CPU"));
},
_initValues: function() {
@@ -199,6 +263,8 @@ const MemoryIndicator = new Lang.Class({
this.renderStats = this.renderStats.sort(function(a,b) {
return renderStatOrder[a] - renderStatOrder[b];
});
this.setLabelText(_("Memory"));
},
_initValues: function() {
@@ -222,23 +288,89 @@ const MemoryIndicator = new Lang.Class({
}
});
const INDICATORS = [CpuIndicator, MemoryIndicator];
const Extension = new Lang.Class({
Name: 'SystemMonitor.Extension',
_init: function() {
Convenience.initTranslations();
this._showLabelTimeoutId = 0;
this._resetHoverTimeoutId = 0;
this._labelShowing = false;
},
enable: function() {
this._box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container',
x_align: Clutter.ActorAlign.START,
x_expand: true });
this._indicators = [ ];
for (let i = 0; i < INDICATORS.length; i++) {
let indicator = new (INDICATORS[i])();
indicator.actor.connect('notify::hover', Lang.bind(this, function() {
this._onHover(indicator);
}));
this._box.add_actor(indicator.actor);
this._indicators.push(indicator);
}
this._boxHolder = new St.BoxLayout({ x_expand: true,
y_expand: true,
x_align: Clutter.ActorAlign.START,
});
let menuButton = Main.messageTray._messageTrayMenuButton.actor;
Main.messageTray.actor.remove_child(menuButton);
Main.messageTray.actor.add_child(this._boxHolder);
this._boxHolder.add_child(this._box);
this._boxHolder.add_child(menuButton);
},
disable: function() {
this._indicators.forEach(function(i) { i.destroy(); });
let menuButton = Main.messageTray._messageTrayMenuButton.actor;
this._boxHolder.remove_child(menuButton);
Main.messageTray.actor.add_child(menuButton);
this._box.destroy();
this._boxHolder.destroy();
},
_onHover: function (item) {
if (item.actor.get_hover()) {
if (this._showLabelTimeoutId == 0) {
let timeout = this._labelShowing ? 0 : ITEM_HOVER_TIMEOUT;
this._showLabelTimeoutId = Mainloop.timeout_add(timeout,
Lang.bind(this, function() {
this._labelShowing = true;
item.showLabel();
return false;
}));
if (this._resetHoverTimeoutId > 0) {
Mainloop.source_remove(this._resetHoverTimeoutId);
this._resetHoverTimeoutId = 0;
}
}
} else {
if (this._showLabelTimeoutId > 0)
Mainloop.source_remove(this._showLabelTimeoutId);
this._showLabelTimeoutId = 0;
item.hideLabel();
if (this._labelShowing) {
this._resetHoverTimeoutId = Mainloop.timeout_add(ITEM_HOVER_TIMEOUT,
Lang.bind(this, function() {
this._labelShowing = false;
return false;
}));
}
}
},
});
function init() {
// nothing to do here
}
function enable() {
_cpuIndicator = new CpuIndicator();
_memIndicator = new MemoryIndicator();
_box = new St.BoxLayout({ style_class: 'extension-systemMonitor-container' });
_box.add(_cpuIndicator.actor);
_box.add(_memIndicator.actor);
Main.messageTray.actor.add_actor(_box);
}
function disable() {
_cpuIndicator.destroy();
_cpuIndicator = null;
_memIndicator.destroy();
_memIndicator = null;
_box.destroy();
return new Extension();
}

View File

@@ -6,6 +6,6 @@
"gettext-domain": "@gettext_domain@",
"original-author": "zaspire@rambler.ru",
"name": "SystemMonitor",
"description": "System Monitor",
"description": "System monitor showing CPU and memory usage in the message tray.",
"url": "@url@"
}

View File

@@ -2,15 +2,17 @@
spacing: 5px;
padding-left: 5px;
padding-right: 5px;
padding-bottom: 1px;
padding-top: 0px;
padding-bottom: 10px;
padding-top: 10px;
}
.extension-systemMonitor-indicator-area {
border: 1px solid #8d8d8d;
border-radius: 3px;
width: 100px;
height: 30px;
/* message tray is 72px, so 20px padding of the container,
2px of border, makes it 50px */
height: 50px;
-grid-color: #575757;
-cpu-total-color: rgb(0,154,62);
-cpu-user-color: rgb(69,154,0);
@@ -21,3 +23,13 @@
-mem-other-color: rgb(205,203,41);
background-color: #1e1e1e;
}
.extension-systemMonitor-indicator-label {
border-radius: 7px;
padding: 4px 12px;
background-color: rgba(0,0,0,0.9);
text-align: center;
-y-offset: 8px;
font-size: 9pt;
font-weight: bold;
}

View File

@@ -45,6 +45,7 @@ const ThemeManager = new Lang.Class({
_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 = sysdirs[i] + '/themes/' + _themeName + '/gnome-shell/gnome-shell.css';
let file = Gio.file_new_for_path(_userCssStylesheet);

View File

@@ -4,7 +4,7 @@
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "User Themes",
"description": "Load shell themes from user directory",
"description": "Load shell themes from user directory.",
"shell-version": [ "@shell_current@" ],
"original-authors": [ "john.stowers@gmail.com" ],
"url": "@url@"

View File

@@ -0,0 +1,10 @@
EXTENSION_ID = window-list
EXTRA_MODULES = prefs.js
if CLASSIC_MODE
EXTRA_MODULES += classic.css
endif
include ../../extension.mk
include ../../settings.mk

View File

@@ -0,0 +1,44 @@
@import url("stylesheet.css");
#panel.bottom-panel {
border-top-width: 1px;
border-bottom-width: 0px;
height: 32px !important;
}
.bottom-panel .window-button > StWidget {
background-color: #e9e9e9 !important;
background-gradient-direction: vertical;
background-gradient-end: #d0d0d0;
color: #555 !important;
border-radius: 2px !important;
padding: 4px 6px 2px !important;
text-shadow: 0 0 transparent;
box-shadow: inset -1px -1px 1px rgba(0,0,0,0.5) !important;
}
.bottom-panel .window-button:hover > StWidget {
background-color: #f9f9f9 !important;
background-gradient-end: #e0e0e0;
}
.bottom-panel .window-button:active > StWidget {
box-shadow: inset 1px 1px 2px rgba(0,0,0,0.5) !important;
}
.bottom-panel .window-button.focused > StWidget {
background-color: #a9a9a9 !important;
background-gradient-end: #b0b0b0;
box-shadow: inset 1px 1px 2px rgba(0,0,0,0.5) !important;
}
.bottom-panel .window-button.focused:hover > StWidget {
background-color: #b9b9b9 !important;
background-gradient-end: #c0c0c0;
}
.bottom-panel .window-button.minimized > StWidget {
color: #888 !important;
box-shadow: inset -1px -1px 1px rgba(0,0,0,0.4) !important;
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,10 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Window List",
"description": "Display a window list at the bottom of the screen.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME Bugzilla instead.",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -0,0 +1,19 @@
<schemalist gettext-domain="gnome-shell-extensions">
<enum id="org.gnome.shell.extensions.window-list.GroupingMode">
<value value="0" nick="never"/>
<value value="1" nick="auto"/>
<value value="2" nick="always"/>
</enum>
<schema id="org.gnome.shell.extensions.window-list"
path="/org/gnome/shell/extensions/window-list/">
<key name="grouping-mode"
enum="org.gnome.shell.extensions.window-list.GroupingMode">
<default>'never'</default>
<_summary>When to group windows</_summary>
<_description>
Decides when to group windows from the same application on the
window list. Possible values are "never", "auto" and "always".
</_description>
</key>
</schema>
</schemalist>

View File

@@ -0,0 +1,81 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
function init() {
Convenience.initTranslations();
}
const WindowListPrefsWidget = new GObject.Class({
Name: 'WindowList.Prefs.Widget',
GTypeName: 'WindowListPrefsWidget',
Extends: Gtk.Frame,
_init: function(params) {
this.parent(params);
this.shadow_type = Gtk.ShadowType.NONE;
this.margin = 24;
let title = '<b>' + _("Window Grouping") + '</b>';
let titleLabel = new Gtk.Label({ use_markup: true, label: title });
this.set_label_widget(titleLabel);
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,
margin_top: 6 });
align.add(grid);
this._settings = Convenience.getSettings();
let currentMode = this._settings.get_string('grouping-mode');
let range = this._settings.get_range('grouping-mode');
let modes = range.deep_unpack()[1].deep_unpack();
let modeLabels = {
'never': _("Never group windows"),
'auto': _("Group windows when space is limited"),
'always': _("Always group windows")
};
let radio = null;
for (let i = 0; i < modes.length; i++) {
let mode = modes[i];
let label = modeLabels[mode];
if (!label) {
log('Unhandled option "%s" for grouping-mode'.format(mode));
continue;
}
radio = new Gtk.RadioButton({ active: currentMode == mode,
label: label,
group: radio });
grid.add(radio);
radio.connect('toggled', Lang.bind(this, function(button) {
if (button.active)
this._settings.set_string('grouping-mode', mode);
}));
}
}
});
function buildPrefsWidget() {
let widget = new WindowListPrefsWidget();
widget.show_all();
return widget;
}

View File

@@ -0,0 +1,77 @@
.bottom-panel {
/* .window-button-icon height +
.window-button vertical padding +
.window-button > StWidget vertical padding) */
height: 30px;
}
.window-list {
spacing: 2px;
font-size: 10pt;
}
.window-button {
padding: 1px;
}
.window-button:first-child:ltr {
padding-left: 2px;
}
.window-button:last-child:rtl {
padding-right: 2px;
}
.window-button > StWidget {
-st-natural-width: 250px;
max-width: 250px;
color: #bbb;
background-color: black;
border-radius: 4px;
padding: 3px 6px 1px;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.5);
text-shadow: 1px 1px 4px rgba(0,0,0,0.8);
spacing: 4px;
}
.window-button:hover > StWidget {
color: white;
background-color: #1f1f1f;
}
.window-button:active > StWidget,
.window-button:focus > StWidget {
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.5);
}
.window-button.focused > StWidget {
color: white;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.7);
}
.window-button.focused:active > StWidget {
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.7);
}
.window-button.minimized > StWidget {
color: #666;
box-shadow: inset -1px -1px 4px rgba(255,255,255,0.5);
}
.window-button.minimized:active > StWidget {
box-shadow: inset -2px -2px 4px rgba(255,255,255,0.5);
}
.window-button-icon {
width: 24px;
height: 24px;
}
.window-list-workspace-indicator {
background-color: rgba(200, 200, 200, .3);
border: 1px solid #cccccc;
}
.window-list-workspace-indicator > StLabel {
padding: 0 2px;
}

View File

@@ -33,41 +33,37 @@ function resetState() {
function enable() {
resetState();
Workspace.WindowOverlay.prototype.setId = function(id) {
if (this._text.visible && id == null)
this._text.hide();
this._id = id;
if (id != null)
this._text.text = this._id.toString();
}
winInjections['setId'] = undefined;
Workspace.WindowOverlay.prototype.getId = function() {
return this._id;
}
winInjections['getId'] = undefined;
Workspace.WindowOverlay.prototype.showTooltip = function() {
if (this._id === null)
return;
this._text.raise_top();
this._text.show();
this._text.text = this._id.toString();
this._text.text = (this._windowClone.slotId + 1).toString();
}
winInjections['showTooltip'] = undefined;
Workspace.WindowOverlay.prototype.hideTooltip = function() {
if (this._text.visible)
if (this._text && this._text.visible)
this._text.hide();
}
winInjections['hideTooltip'] = undefined;
Workspace.Workspace.prototype.showTooltip = function() {
if (this._tip == null)
if (this._tip == null || this._actualGeometry == null)
return;
this._tip.text = (this.metaWorkspace.index() + 1).toString();
this._tip.x = this._x;
this._tip.y = this._y;
// Hand code this instead of using _getSpacingAndPadding
// because that fails on empty workspaces
let node = this.actor.get_theme_node();
let padding = {
left: node.get_padding(St.Side.LEFT),
top: node.get_padding(St.Side.TOP),
bottom: node.get_padding(St.Side.BOTTOM),
right: node.get_padding(St.Side.RIGHT),
};
let area = Workspace.padArea(this._actualGeometry, padding);
this._tip.x = area.x;
this._tip.y = area.y;
this._tip.show();
this._tip.raise_top();
}
@@ -83,11 +79,9 @@ function enable() {
workspaceInjections['hideTooltip'] = undefined;
Workspace.Workspace.prototype.getWindowWithTooltip = function(id) {
for (let i in this._windowOverlays) {
if (this._windowOverlays[i] == null)
continue;
if (this._windowOverlays[i].getId() === id)
return this._windowOverlays[i]._windowClone.metaWindow;
for (let i = 0; i < this._windows.length; i++) {
if ((this._windows[i].slotId + 1) == id)
return this._windows[i].metaWindow;
}
return null;
}
@@ -127,11 +121,11 @@ function enable() {
workViewInjections['_hideWorkspacesTooltips'] = undefined;
WorkspacesView.WorkspacesView.prototype._onKeyRelease = function(s, o) {
if (this._pickWindow &&
if (this._pickWindow &&
(o.get_key_symbol() == Clutter.KEY_Alt_L ||
o.get_key_symbol() == Clutter.KEY_Alt_R))
this._hideTooltips();
if (this._pickWorkspace &&
if (this._pickWorkspace &&
(o.get_key_symbol() == Clutter.KEY_Control_L ||
o.get_key_symbol() == Clutter.KEY_Control_R))
this._hideWorkspacesTooltips();
@@ -139,6 +133,9 @@ function enable() {
workViewInjections['_onKeyRelease'] = undefined;
WorkspacesView.WorkspacesView.prototype._onKeyPress = function(s, o) {
if(Main.overview.viewSelector._activePage != Main.overview.viewSelector._workspacesPage)
return false;
if ((o.get_key_symbol() == Clutter.KEY_Alt_L ||
o.get_key_symbol() == Clutter.KEY_Alt_R)
&& !this._pickWorkspace) {
@@ -221,7 +218,9 @@ function enable() {
parentActor.add_actor(this._text);
});
winInjections['updatePositions'] = injectToFunction(Workspace.WindowOverlay.prototype, 'updatePositions', function(cloneX, cloneY, cloneWidth, cloneHeight) {
winInjections['relayout'] = injectToFunction(Workspace.WindowOverlay.prototype, 'relayout', function(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);
@@ -242,23 +241,6 @@ function enable() {
this._tip = null;
});
workspaceInjections['positionWindows'] = injectToFunction(Workspace.Workspace.prototype, 'positionWindows', function(flags) {
let visibleClones = this._windows.slice();
if (this._reservedSlot)
visibleClones.push(this._reservedSlot);
let slots = this._computeAllWindowSlots(visibleClones.length);
visibleClones = this._orderWindowsByMotionAndStartup(visibleClones, slots);
for (let i = 0; i < visibleClones.length; i++) {
let clone = visibleClones[i];
let metaWindow = clone.metaWindow;
let mainIndex = this._lookupIndex(metaWindow);
let overlay = this._windowOverlays[mainIndex];
if (overlay)
overlay.setId(i < 9 ? i + 1 : null);
}
});
workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) {
this._pickWorkspace = false;
this._pickWindow = false;
@@ -283,6 +265,8 @@ function removeInjection(object, injection, name) {
}
function disable() {
let i;
for (i in workspaceInjections)
removeInjection(Workspace.Workspace.prototype, workspaceInjections, i);
for (i in winInjections)

View File

@@ -6,6 +6,6 @@
"gettext-domain": "@gettext_domain@",
"original-author": "zaspire@rambler.ru",
"name": "windowNavigator",
"description": "Allow keyboard selection of windows and workspaces in overlay mode",
"description": "Allow keyboard selection of windows and workspaces in overlay mode. <Ctrl>number selects a workspace, and <Alt>number selects a window.",
"url": "@url@"
}

View File

@@ -1,3 +1,5 @@
EXTENSION_ID = workspace-indicator
EXTRA_MODULES = prefs.js
include ../../extension.mk

View File

@@ -1,3 +1,6 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
const Gio = imports.gi.Gio;
const Meta = imports.gi.Meta;
const Clutter = imports.gi.Clutter;
const St = imports.gi.St;
@@ -16,6 +19,9 @@ const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
const WorkspaceIndicator = new Lang.Class({
Name: 'WorkspaceIndicator.WorkspaceIndicator',
Extends: PanelMenu.Button,
@@ -41,21 +47,28 @@ const WorkspaceIndicator = new Lang.Class({
this._createWorkspacesSection();
//styling
this.menu.actor.add_style_class_name('workspace-indicator-shorter');
this.statusLabel.add_style_class_name('panel-workspace-indicator');
this._settings = new Gio.Settings({ schema: WORKSPACE_SCHEMA });
this._settingsChangedId = this._settings.connect('changed::' + WORKSPACE_KEY, Lang.bind(this, this._createWorkspacesSection));
},
destroy: function() {
for (let i = 0; i < this._screenSignals.length; i++)
global.screen.disconnect(this._screenSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
this._settingsChangedId = 0;
}
this.parent();
},
_updateIndicator: function() {
this.workspacesItems[this._currentWorkspace].setShowDot(false);
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.NONE);
this._currentWorkspace = global.screen.get_active_workspace().index();
this.workspacesItems[this._currentWorkspace].setShowDot(true);
this.workspacesItems[this._currentWorkspace].setOrnament(PopupMenu.Ornament.DOT);
this.statusLabel.set_text(this._labelText());
},
@@ -85,7 +98,7 @@ const WorkspaceIndicator = new Lang.Class({
}));
if (i == this._currentWorkspace)
this.workspacesItems[i].setShowDot(true);
this.workspacesItems[i].setOrnament(PopupMenu.Ornament.DOT);
}
this.statusLabel.set_text(this._labelText());
@@ -94,7 +107,7 @@ const WorkspaceIndicator = new Lang.Class({
_activate : function (index) {
if(index >= 0 && index < global.screen.n_workspaces) {
let metaWorkspace = global.screen.get_workspace_by_index(index);
metaWorkspace.activate(true);
metaWorkspace.activate(global.get_current_time());
}
},

View File

@@ -4,7 +4,7 @@
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Workspace Indicator",
"description": "Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one",
"description": "Put an indicator on the panel signaling in which workspace you are, and give you the possibility of switching to another one.",
"shell-version": [ "@shell_current@" ],
"original-authors": [ "erick.red@gmail.com" ],
"url": "@url@"

View File

@@ -0,0 +1,207 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(e) { return e };
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
const WorkspaceNameModel = new GObject.Class({
Name: 'WorkspaceIndicator.WorkspaceNameModel',
GTypeName: 'WorkspaceNameModel',
Extends: Gtk.ListStore,
Columns: {
LABEL: 0,
},
_init: function(params) {
this.parent(params);
this.set_column_types([GObject.TYPE_STRING]);
this._settings = new Gio.Settings({ schema: WORKSPACE_SCHEMA });
//this._settings.connect('changed::workspace-names', Lang.bind(this, this._reloadFromSettings));
this._reloadFromSettings();
// overriding class closure doesn't work, because GtkTreeModel
// plays tricks with marshallers and class closures
this.connect('row-changed', Lang.bind(this, this._onRowChanged));
this.connect('row-inserted', Lang.bind(this, this._onRowInserted));
this.connect('row-deleted', Lang.bind(this, this._onRowDeleted));
},
_reloadFromSettings: function() {
if (this._preventChanges)
return;
this._preventChanges = true;
let newNames = this._settings.get_strv(WORKSPACE_KEY);
let i = 0;
let [ok, iter] = this.get_iter_first();
while (ok && i < newNames.length) {
this.set(iter, [this.Columns.LABEL], [newNames[i]]);
ok = this.iter_next(iter);
i++;
}
while (ok)
ok = this.remove(iter);
for ( ; i < newNames.length; i++) {
iter = this.append();
this.set(iter, [this.Columns.LABEL], [newNames[i]]);
}
this._preventChanges = false;
},
_onRowChanged: function(self, path, iter) {
if (this._preventChanges)
return;
this._preventChanges = true;
let index = path.get_indices()[0];
let names = this._settings.get_strv(WORKSPACE_KEY);
if (index >= names.length) {
// fill with blanks
for (let i = names.length; i <= index; i++)
names[i] = '';
}
names[index] = this.get_value(iter, this.Columns.LABEL);
this._settings.set_strv(WORKSPACE_KEY, names);
this._preventChanges = false;
},
_onRowInserted: function(self, path, iter) {
if (this._preventChanges)
return;
this._preventChanges = true;
let index = path.get_indices()[0];
let names = this._settings.get_strv(WORKSPACE_KEY);
let label = this.get_value(iter, this.Columns.LABEL) || '';
names.splice(index, 0, label);
this._settings.set_strv(WORKSPACE_KEY, names);
this._preventChanges = false;
},
_onRowDeleted: function(self, path) {
if (this._preventChanges)
return;
this._preventChanges = true;
let index = path.get_indices()[0];
let names = this._settings.get_strv(WORKSPACE_KEY);
if (index >= names.length)
return;
names.splice(index, 1);
// compact the array
for (let i = names.length -1; i >= 0 && !names[i]; i++)
names.pop();
this._settings.set_strv(WORKSPACE_KEY, names);
this._preventChanges = false;
},
});
const WorkspaceSettingsWidget = new GObject.Class({
Name: 'WorkspaceIndicator.WorkspaceSettingsWidget',
GTypeName: 'WorkspaceSettingsWidget',
Extends: Gtk.Grid,
_init: function(params) {
this.parent(params);
this.margin = 10;
this.orientation = Gtk.Orientation.VERTICAL;
this.add(new Gtk.Label({ label: _("Workspace names:"),
margin_bottom: 5 }));
this._store = new WorkspaceNameModel();
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 renderer = new Gtk.CellRendererText({ editable: true });
renderer.connect('edited', Lang.bind(this, this._cellEdited));
column.pack_start(renderer, true);
column.add_attribute(renderer, 'text', this._store.Columns.LABEL);
this._treeView.append_column(column);
this.add(this._treeView);
let toolbar = new Gtk.Toolbar();
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR);
let newButton = new Gtk.ToolButton({ stock_id: Gtk.STOCK_NEW });
newButton.connect('clicked', Lang.bind(this, this._newClicked));
toolbar.add(newButton);
let delButton = new Gtk.ToolButton({ stock_id: Gtk.STOCK_DELETE });
delButton.connect('clicked', Lang.bind(this, this._delClicked));
toolbar.add(delButton);
this.add(toolbar);
},
_cellEdited: function(renderer, path, new_text) {
let [ok, iter] = this._store.get_iter_from_string(path);
if (ok)
this._store.set(iter, [this._store.Columns.LABEL], [new_text]);
},
_newClicked: function() {
let iter = this._store.append();
let index = this._store.get_path(iter).get_indices()[0];
let label = _("Workspace %d").format(index);
this._store.set(iter, [this._store.Columns.LABEL], [label]);
},
_delClicked: function() {
let [any, model, iter] = this._treeView.get_selection().get_selected();
if (any)
this._store.remove(iter);
}
});
function init() {
Convenience.initTranslations();
}
function buildPrefsWidget() {
let widget = new WorkspaceSettingsWidget();
widget.show_all();
return widget;
}

View File

@@ -1,7 +1,3 @@
.workspace-indicator-shorter {
min-width: 25px;
font-size: 10pt;
}
.panel-workspace-indicator {
padding: 0 8px;
background-color: rgba(200, 200, 200, .5);

View File

@@ -1,3 +0,0 @@
EXTENSION_ID = xrandr-indicator
include ../../extension.mk

View File

@@ -1,156 +0,0 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
const DBus = imports.dbus;
const Gdk = imports.gi.Gdk;
const GLib = imports.gi.GLib;
const GnomeDesktop = imports.gi.GnomeDesktop;
const Lang = imports.lang;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Panel = imports.ui.panel;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
const N_ = function(e) { return e };
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
const possibleRotations = [ GnomeDesktop.RRRotation.ROTATION_0,
GnomeDesktop.RRRotation.ROTATION_90,
GnomeDesktop.RRRotation.ROTATION_180,
GnomeDesktop.RRRotation.ROTATION_270
];
let rotations = [ [ GnomeDesktop.RRRotation.ROTATION_0, N_("Normal") ],
[ GnomeDesktop.RRRotation.ROTATION_90, N_("Left") ],
[ GnomeDesktop.RRRotation.ROTATION_270, N_("Right") ],
[ GnomeDesktop.RRRotation.ROTATION_180, N_("Upside-down") ]
];
const XRandr2Iface = {
name: 'org.gnome.SettingsDaemon.XRANDR_2',
methods: [
{ name: 'ApplyConfiguration', inSignature: 'xx', outSignature: '' },
]
};
let XRandr2 = DBus.makeProxyClass(XRandr2Iface);
function Indicator() {
this._init.apply(this, arguments);
}
Indicator.prototype = {
__proto__: PanelMenu.SystemStatusButton.prototype,
_init: function() {
PanelMenu.SystemStatusButton.prototype._init.call(this, 'preferences-desktop-display');
this._proxy = new XRandr2(DBus.session, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/XRANDR');
try {
this._screen = new GnomeDesktop.RRScreen({ gdk_screen: Gdk.Screen.get_default() });
this._screen.init(null);
} catch(e) {
// an error means there is no XRandR extension
this.actor.hide();
return;
}
this._createMenu();
this._screen.connect('changed', Lang.bind(this, this._randrEvent));
},
_randrEvent: function() {
this.menu.removeAll();
this._createMenu();
},
_createMenu: function() {
let config = GnomeDesktop.RRConfig.new_current(this._screen);
let outputs = config.get_outputs();
for (let i = 0; i < outputs.length; i++) {
if (outputs[i].is_connected())
this._addOutputItem(config, outputs[i]);
}
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this.menu.addAction(_("Configure display settings..."), function() {
GLib.spawn_command_line_async('gnome-control-center display');
});
},
_addOutputItem: function(config, output) {
let item = new PopupMenu.PopupMenuItem(output.get_display_name());
item.label.add_style_class_name('display-subtitle');
item.actor.reactive = false;
item.actor.can_focus = false;
this.menu.addMenuItem(item);
let allowedRotations = this._getAllowedRotations(config, output);
let currentRotation = output.get_rotation();
for (let i = 0; i < rotations.length; i++) {
let [bitmask, name] = rotations[i];
if (bitmask & allowedRotations) {
let item = new PopupMenu.PopupMenuItem(Gettext.gettext(name));
if (bitmask & currentRotation)
item.setShowDot(true);
item.connect('activate', Lang.bind(this, function(item, event) {
/* ensure config is saved so we get a backup if anything goes wrong */
config.save();
output.set_rotation(bitmask);
try {
config.save();
this._proxy.ApplyConfigurationRemote(0, event.get_time());
} catch (e) {
log ('Could not save monitor configuration: ' + e);
}
}));
this.menu.addMenuItem(item);
}
}
},
_getAllowedRotations: function(config, output) {
let retval = 0;
let current = output.get_rotation();
for (let i = 0; i < possibleRotations.length; i++) {
output.set_rotation(possibleRotations[i]);
if (config.applicable(this._screen)) {
retval |= possibleRotations[i];
}
}
output.set_rotation(current);
if (retval.lenght == 0) {
// what, no rotation?
// what's current then?
retval = current;
}
return retval;
}
}
function init(metadata) {
Convenience.initTranslations();
}
let _indicator;
function enable() {
_indicator = new Indicator();
Main.panel.addToStatusArea('display', _indicator);
}
function disable() {
_indicator.destroy();
}

View File

@@ -1,10 +0,0 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Monitor Status Indicator",
"description": "Add a systems status menu for rotating monitors (overrides what is currently provided by gnome-settings-daemon)",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -1,3 +0,0 @@
.display-subtitle {
font-weight: bold;
}

View File

@@ -4,7 +4,7 @@
xmlns:gnome="http://api.gnome.org/doap-extensions#"
xmlns="http://usefulinc.com/ns/doap#">
<name xml:lang="en">GNOME Shell Extensions</name>
<name xml:lang="en">gnome-shell-extensions</name>
<shortdesc xml:lang="en">Modify and extend GNOME Shell functionality and behavior</shortdesc>
<description xml:lang="en">
GNOME Shell Extensions is a collection of extensions providing

View File

@@ -1,8 +1,34 @@
/* -*- mode: js; js-basic-offset: 4; indent-tabs-mode: nil -*- */
/*
Copyright (c) 2011-2012, Giovanni Campagna <scampa.giovanni@gmail.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of the GNOME nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
const Gettext = imports.gettext;
const Gio = imports.gi.Gio;
const Config = imports.misc.config;
const ExtensionUtils = imports.misc.extensionUtils;
/**
@@ -17,8 +43,15 @@ function initTranslations(domain) {
domain = domain || extension.metadata['gettext-domain'];
let localeDir = extension.dir.get_child('locale').get_path();
Gettext.bindtextdomain(domain, localeDir);
// check if this extension was built with "make zip-file", and thus
// has the locale files in a subfolder
// otherwise assume that extension has been installed in the
// same prefix as gnome-shell
let localeDir = extension.dir.get_child('locale');
if (localeDir.query_exists(null))
Gettext.bindtextdomain(domain, localeDir.get_path());
else
Gettext.bindtextdomain(domain, Config.LOCALEDIR);
}
/**
@@ -34,11 +67,26 @@ function getSettings(schema) {
schema = schema || extension.metadata['settings-schema'];
let schemaDir = extension.dir.get_child('schemas').get_path();
let schemaSource = Gio.SettingsSchemaSource.new_from_directory(schemaDir,
Gio.SettingsSchemaSource.get_default(),
false);
let schemaObj = schemaSource.lookup(schema, false);
const GioSSS = Gio.SettingsSchemaSource;
// check if this extension was built with "make zip-file", and thus
// has the schema files in a subfolder
// otherwise assume that extension has been installed in the
// same prefix as gnome-shell (and therefore schemas are available
// in the standard folders)
let schemaDir = extension.dir.get_child('schemas');
let schemaSource;
if (schemaDir.query_exists(null))
schemaSource = GioSSS.new_from_directory(schemaDir.get_path(),
GioSSS.get_default(),
false);
else
schemaSource = GioSSS.get_default();
let schemaObj = schemaSource.lookup(schema, true);
if (!schemaObj)
throw new Error('Schema ' + schema + ' could not be found for extension '
+ extension.metadata.uuid + '. Please check your installation.');
return new Gio.Settings({ settings_schema: schemaObj });
}

View File

@@ -1,15 +0,0 @@
#!/bin/bash
extensionbase=~/.local/share/gnome-shell/extensions
for i in zip-files/*; do
zip_file=`pwd`/$i;
uuid=`basename $i | sed -e "s/.shell-extension.zip//"`;
if [ -d $extensionbase/$uuid ]; then
rm -fR $extensionbase/$uuid;
fi
mkdir $extensionbase/$uuid;
(cd $extensionbase/$uuid;
unzip -q $zip_file;
);
done

View File

@@ -1,3 +1,6 @@
an
ar
as
ca
cs
da
@@ -6,18 +9,26 @@ el
en_GB
eo
es
et
eu
fa
fi
fr
fur
gl
gu
he
hu
id
it
ja
kk
ko
lv
lt
ml
nb
nl
pa
pt
pt_BR
@@ -25,8 +36,12 @@ pl
ru
sk
sl
sr
sr@latin
sv
ta
te
tg
vi
uk
zh_CN

View File

@@ -1,15 +1,26 @@
extensions/alternative-status-menu/extension.js
extensions/alternate-tab/extension.js
extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in
data/gnome-classic.desktop.in
data/gnome-classic.session.desktop.in.in
data/gnome-shell-classic.desktop.in.in
data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in
extensions/alternate-tab/prefs.js
extensions/apps-menu/extension.js
extensions/auto-move-windows/extension.js
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
extensions/dock/extension.js
extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in
extensions/auto-move-windows/prefs.js
extensions/drive-menu/extension.js
extensions/example/extension.js
extensions/gajim/extension.js
extensions/example/org.gnome.shell.extensions.example.gschema.xml.in
extensions/example/prefs.js
extensions/native-window-placement/extension.js
extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in
extensions/places-menu/extension.js
extensions/places-menu/placeDisplay.js
extensions/systemMonitor/extension.js
extensions/user-theme/extension.js
extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in
extensions/window-list/extension.js
extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in
extensions/window-list/prefs.js
extensions/windowsNavigator/extension.js
extensions/xrandr-indicator/extension.js
extensions/workspace-indicator/extension.js
extensions/workspace-indicator/prefs.js

313
po/an.po Normal file
View File

@@ -0,0 +1,313 @@
# Aragonese 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.
# Jorge Pérez Pérez <jorgtum@gmail.com>, 2013.
#
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: 2013-06-05 18:52+0000\n"
"PO-Revision-Date: 2013-06-05 20:51+0100\n"
"Last-Translator: Jorge Pérez Pérez <jorgtum@gmail.com>\n"
"Language-Team: Aragonese <softaragones@googlegroups.com>\n"
"Language: an\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 1.5.4\n"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME clasico"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "Ista sesión encieta lo GNOME clasico"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "GNOME Shell clasico"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Chestión de finestras y inicio d'aplicacions"
#: ../extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Nomás as miniaturas"
#: ../extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Nomás l'icono de l'aplicación"
#: ../extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniatura y icono de l'aplicación"
#: ../extensions/alternate-tab/prefs.js:37
msgid "Present windows as"
msgstr "Presentar as finestras como"
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "Amostrar as finestras solament en l'aria de treballo actual"
#. add the new entries
#: ../extensions/alternative-status-menu/extension.js:125
msgid "Suspend"
msgstr "Suspender"
#: ../extensions/alternative-status-menu/extension.js:128
msgid "Hibernate"
msgstr "Hibernar"
#: ../extensions/alternative-status-menu/extension.js:131
msgid "Power Off"
msgstr "Amortar"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
msgid "Enable suspending"
msgstr "Activar a suspensión"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:2
msgid "Control the visibility of the Suspend menu item"
msgstr "Controla la visibilidat de l'elemento de menú «Suspender»"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
msgid "Enable hibernating"
msgstr "Activar a hibernación"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:4
msgid "Control the visibility of the Hibernate menu item"
msgstr "Controla la visibilidat de l'elemento de menú «Hibernar»"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "Anvista d'actividatz"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritos"
#: ../extensions/apps-menu/extension.js:278
msgid "Applications"
msgstr "Aplicacions"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Lista d'aplicacions y arias de treballo"
#: ../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 ""
"Una lista de cadenas, que cadaguna contién l'identificador de l'aplicación "
"(o nombre d'o fichero d'escritorio), seguiu por dos puntos y o numero de "
"l'aria de treballo"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Aplicación"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Aria de treballo"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Adhibir un regle"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Creyar un regle nuevo de coincidencia"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Adhibir"
#: ../extensions/drive-menu/extension.js:72
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "Ha fallau en fer fuera o dispositivo «%s»"
#: ../extensions/drive-menu/extension.js:89
msgid "Removable devices"
msgstr "Dispositivos extraíbles"
#: ../extensions/drive-menu/extension.js:106
msgid "Open File"
msgstr "Ubrir o fichero"
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Ola, mundo!"
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Texto alternativo de bienvenida"
#: ../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 ""
"Si no ye vuedo, contién o texto que s'amostrará quan se faiga clic en o "
"panel."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"«Example» tien por obchecto amostrar cómo construir as extensions de buen "
"comportamiento ta la Shell y por ixo tien poca funcionalidat por ell "
"solenco.\n"
"Manimenos, ye posible presonalizar o mensache de bienvenida."
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "Mensache:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows"
msgstr "Fer servir mas pantalla ta las finestras"
#: ../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."
msgstr ""
"Intenta fer servir mas espacio ta situar as miniaturas, adaptando-las a la "
"forma d'a pantalla, y consolidar-las encara mas ta reducir l'aria ocupada. "
"Ista opción solament s'aplica a la estratechia de posicionamiento «natural»."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Situar os titols de finestras alto"
#: ../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."
msgstr ""
"Si ye cierto, situar os titols d'as finestras dencima d'as miniaturas "
"correspondients, cambiando o comportamiento predeterminau de shell, que los "
"sitúa por debaixo. Cambiar ista configuración requier reiniciar a shell ta "
"que tienga efecto."
#: ../extensions/places-menu/extension.js:77
msgid "Places"
msgstr "Puestos"
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "Ha fallau en lanzar «%s»"
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "Equipo"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "Carpeta presonal"
#: ../extensions/places-menu/placeDisplay.js:286
msgid "Browse Network"
msgstr "Examinar o ret"
#: ../extensions/systemMonitor/extension.js:213
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:266
msgid "Memory"
msgstr "CPU"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "Theme name"
msgstr "Nombre d'o tema"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nombre d'o tema, que se carga dende /.themes/nombre/gnome-shell"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Quan agrupar as finestras"
#: ../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 ""
"Decide quan agrupar as finestras dende a mesma aplicación en a lista de "
"finestras. As valors posibles son «never», «auto» y «always»."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Agrupación de finestras"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Nunca no agrupar as finestras"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "Agrupar as finestras quan l'espacio siga limitau"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "Agrupar siempre as finestras"
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indicador d'aria de treballo"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Nombres d'as arias de treballo:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Nombre"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Aria de treballo %d"
#: ../extensions/xrandr-indicator/extension.js:30
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:31
msgid "Left"
msgstr "Cucha"
#: ../extensions/xrandr-indicator/extension.js:32
msgid "Right"
msgstr "Dreita"
#: ../extensions/xrandr-indicator/extension.js:33
msgid "Upside-down"
msgstr "Enta baixo"
#: ../extensions/xrandr-indicator/extension.js:50
msgid "Display"
msgstr "Pantalla"
#: ../extensions/xrandr-indicator/extension.js:80
msgid "Display Settings"
msgstr "Opcions de pantalla"

425
po/ar.po Normal file
View File

@@ -0,0 +1,425 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Khaled Hosny <khaledhosny@eglug.org>, 2012, 2013.
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-08-19 08:21+0000\n"
"PO-Revision-Date: 2013-09-09 23:22+0200\n"
"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
"Language-Team: Arabic <doc@arabeyes.org>\n"
"Language: ar\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Virtaal 0.7.1-rc1\n"
"X-Project-Style: gnome\n"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "جنوم تقليدية"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "تولجك هذه الجلسة في جنوم التقليدية"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "صدفة جنوم تقليدية"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "إدارة النوافذ وإطلاق التطبيقات"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
#| msgid "Workspace Indicator"
msgid "Workspaces only on primary monitor"
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:37
msgid "Present windows as"
msgstr "كيفية عرض التطبيقات"
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "أظهر نوافذ مساحات العمل الحالية فقط"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "ملخص الأنشطة"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "المفضّلات"
#: ../extensions/apps-menu/extension.js:278
msgid "Applications"
msgstr "التطبيقات"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
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/prefs.js:55
msgid "Application"
msgstr "التطبيق"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "مساحة العمل"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "أضِف قاعدة"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "أنشئ قاعدة تطابق"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "أضِف"
#: ../extensions/drive-menu/extension.js:73
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "فشل إخراج '%s':"
#: ../extensions/drive-menu/extension.js:90
msgid "Removable devices"
msgstr "الأجهزة المنفصلة"
#: ../extensions/drive-menu/extension.js:117
msgid "Open File"
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 ""
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
msgid ""
"Example aims to show how to build well behaved extensions for the Shell and "
"as such it has little functionality on its own.\n"
"Nevertheless it's possible to customize the greeting message."
msgstr ""
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "الرسالة:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
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."
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
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."
msgstr ""
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
msgid "Places"
msgstr "الأماكن"
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "فشل تشغيل \"%s\""
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "الحاسوب"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "المنزل"
#: ../extensions/places-menu/placeDisplay.js:286
#| msgid "Browse network"
msgid "Browse Network"
msgstr "تصفّح الشبكة"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "المعالج"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "الذاكرة"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "Theme name"
msgstr "اسم السمة"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
#: ../extensions/window-list/extension.js:92
msgid "Close"
msgstr "أغلق"
#: ../extensions/window-list/extension.js:102
msgid "Unminimize"
msgstr "ألغِ التصغير"
#: ../extensions/window-list/extension.js:103
msgid "Minimize"
msgstr "صغّر"
#: ../extensions/window-list/extension.js:109
msgid "Unmaximize"
msgstr "ألغِ التكبير"
#: ../extensions/window-list/extension.js:110
msgid "Maximize"
msgstr "كبّر"
#: ../extensions/window-list/extension.js:270
msgid "Minimize all"
msgstr "صغّر الكل"
#: ../extensions/window-list/extension.js:278
msgid "Unminimize all"
msgstr "ألغِ تصغير الكل"
#: ../extensions/window-list/extension.js:286
msgid "Maximize all"
msgstr "كبّر الكل"
#: ../extensions/window-list/extension.js:295
msgid "Unmaximize all"
msgstr "ألغِ تكبير الكل"
#: ../extensions/window-list/extension.js:304
msgid "Close all"
msgstr "أغلق الكل"
#: ../extensions/window-list/extension.js:591
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "مؤشر مساحات العمل"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
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 ""
"يقرر متى تجمع نوافذ نفس التطبيق في قائمة النوافذ. القيم الممكنة هي \"never"
"\"، \"auto\" و \"always\"."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "تجميع النوافذ"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "لا تجمّع النوافذ أبدا"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "جمّع النوافذ عندما تكون المساحة محدودة"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "جمّع النوافذ دائما"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "أسماء مساحات العمل"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "الاسم"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "مساحة العمل %Id"
#~ msgid "Normal"
#~ msgstr "عادي"
#~ msgid "Left"
#~ msgstr "يسار"
#~ msgid "Right"
#~ msgstr "يمين"
#~ msgid "Upside-down"
#~ msgstr "رأسا على عقب"
#~ msgid "Display"
#~ msgstr "العرض"
#~ msgid "Display Settings"
#~ msgstr "إعدادات العرض"
#~ msgid "Suspend"
#~ msgstr "علّق"
#~ msgid "Hibernate"
#~ msgstr "أسبِت"
#~ msgid "Power Off"
#~ msgstr "أطفئ"
#~ msgid "Enable suspending"
#~ msgstr "فعّل التعليق"
#~ msgid "Control the visibility of the Suspend menu item"
#~ msgstr "تحكم في ظهور ”علّق“ في القائمة"
#~ msgid "Enable hibernating"
#~ msgstr "فعّل الإسبات"
#~ msgid "Control the visibility of the Hibernate menu item"
#~ msgstr "تحكم في ظهور ”أسبِت“ في القائمة"
#~ msgid "Devices"
#~ msgstr "الأجهزة"
#~ msgid "Bookmarks"
#~ msgstr "العلامات"
#~ msgid "Network"
#~ msgstr "الشبكة"
#~ msgid "File System"
#~ msgstr "نظام الملفات"
#~ msgid "Drag here to add favorites"
#~ msgstr "اسحب إلى هنا ليضاف إلى المفضّلة"
#~ msgid "New Window"
#~ msgstr "نافذة جديدة"
#~ msgid "Quit Application"
#~ msgstr "أغلق التطبيق"
#~ msgid "Remove from Favorites"
#~ msgstr "أزِل من المفضّلة"
#~ msgid "Icon size"
#~ msgstr "حجم الأيقونة"
#~ msgid "Monitor"
#~ msgstr "الشاشة"
#~ msgid "%s is away."
#~ msgstr "%s غائب."
#~ msgid "%s is offline."
#~ msgstr "%s غير متّصل."
#~ msgid "%s is online."
#~ msgstr "%s متّصل."
#~ msgid "%s is busy."
#~ msgstr "%s مشغول."
#~ msgid ""
#~ "This mode presents all applications from all workspaces in one selection "
#~ "list. Instead of using the application icon of every window, it uses "
#~ "small thumbnails resembling the window itself."
#~ msgstr ""
#~ "يعرض هذا النمط كل التطبيقات من كل مساحات العمل في قائمة واحدة، وبدلا من "
#~ "استخدام أيقونة التطبيق لكل النوافذ يستخدم صورة مصغّرة للنافذة نفسها."
#~ msgid "Workspace & Icons"
#~ msgstr "مساحة العمل مع أيقونات"
#~ msgid ""
#~ "This mode let's you switch between the applications of your current "
#~ "workspace and gives you additionally the option to switch to the last "
#~ "used application of your previous workspace. This is always the last "
#~ "symbol in the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ "Every window is represented by its application icon."
#~ msgstr ""
#~ "يتيح هذا النمط التنقل بين التطبيقات في مساحة العمل الحالية بالإضافة إلى "
#~ "إمكانية الانتقال إلى آخر تطبيق استُخدم في مساحة العمل السابقة، والذي سيكون "
#~ "دائما آخر عنصر في القائمة مفصولا بخط رأسي.\n"
#~ "تُمثل كل نافذة بأيقونة التطبيق الذي تنتمي إليه."
#~ msgid "Move current selection to front before closing the popup"
#~ msgstr "انقل الاختيار الحالي إلى المقدمة قبل غلق النافذة المنبثقة."
#~ msgid ""
#~ "The Alternate Tab can be used in different modes, that affect the way "
#~ "windows are chosen and presented."
#~ msgstr ""
#~ "يمكن استخدام هذا الامتداد في أنماط مختلفة تؤثر على كيفية اختيار وعرض "
#~ "النوافذ."
#~ msgid "Removable Devices"
#~ msgstr "الأجهزة المنفصلة"

367
po/as.po Normal file
View File

@@ -0,0 +1,367 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Nilamdyuti Goswami <ngoswami@redhat.com>, 2013.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-09-23 10:19+0000\n"
"PO-Revision-Date: 2013-09-24 14:28+0530\n"
"Last-Translator: Nilamdyuti Goswami <ngoswami@redhat.com>\n"
"Language-Team: American English <kde-i18n-doc@kde.org>\n"
"Language: en_US\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"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME ক্লাচিক"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "এই অধিবেশনে আপোনাক GNOME ক্লাচিকলৈ লগ কৰে"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "GNOME শ্বেল ক্লাচিক"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "উইন্ডো ব্যৱস্থাপনা আৰু এপ্লিকেচনৰ লঞ্চ"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr "মডাল ডাইলগ উপধায়ক উইন্ডোৰ সৈতে সংলগ্ন কৰক"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr "GNOME শ্বেল চলাওতে এই কি'য়ে org.gnome.mutter ত থকা কি' অভাৰৰাইড কৰে।"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "উইন্ডোসমূহক পৰ্দাৰ প্ৰান্তসমূহত এৰোতে প্ৰান্ত টাইলিং সামৰ্থবান কৰক"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid "Workspaces only on primary monitor"
msgstr "কাৰ্য্যস্থানসমূহ কেৱল প্ৰাথমিক মনিটৰত"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
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:37
msgid "Present windows as"
msgstr "উইন্ডোসমূহক এই ধৰণে পৰিৱেশন কৰক"
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "কেৱল বৰ্তমান কাৰ্য্যস্থানত থকা উইন্ডোসমূহ দেখুৱাওক"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "কাৰ্য্যসমূহৰ অভাৰভিউ"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "পছন্দৰ"
#: ../extensions/apps-menu/extension.js:282
msgid "Applications"
msgstr "এপ্লিকেচনসমূহ"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
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/prefs.js:55
msgid "Application"
msgstr "এপ্লিকেচন"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "কাৰ্য্যস্থান"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "নিয়ম যোগ কৰক"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "নতুন মিল খোৱা নিয়ম সৃষ্টি কৰক"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "যোগ কৰক"
#: ../extensions/drive-menu/extension.js:73
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "ড্ৰাইভ '%s' বাহিৰ কৰাটো ব্যৰ্থ হ'ল:"
#: ../extensions/drive-menu/extension.js:90
msgid "Removable devices"
msgstr "আতৰাব পৰা ডিভাইচসমূহ"
#: ../extensions/drive-menu/extension.js:117
msgid "Open File"
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 "যদি ৰিক্ত নহয়, ই পেনেল ক্লিক কৰোতে দেখুৱা লিখনী অন্তৰ্ভুক্ত কৰিব।"
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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/example/prefs.js:36
msgid "Message:"
msgstr "বাৰ্তা:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
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."
msgstr ""
"পৰ্দা অনুপাত হাৰৰ সৈতে অনুকূলন কৰি উইন্ডো থাম্বনেইলসমূহ উপস্থাপন কৰাৰ বাবে "
"অধিক পৰ্দা "
"ব্যৱহাৰ কৰাৰ, আৰু বান্ধনী বাকচ হ্ৰাস কৰিবলে সিহতক ততোধিক শৃঙ্খলাবদ্ধ কৰাৰ "
"চেষ্টা "
"কৰক। এই সংহতি কেৱল স্বাভাৱিক উপস্থাপন কৌশলৰ সৈতে প্ৰযোজ্য।"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
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."
msgstr ""
"যদি সত্য, উইন্ডো কেপষণ প্ৰতিটো থাম্বনেইলৰ ওপৰত ৰাখক, ইয়াক তলত ৰখাৰ শ্বেলৰ "
"অবিকল্পিত প্ৰক্ৰিয়াক অভাৰৰাইড কৰাকৈ। এই সংহতিৰ পৰিবৰ্তন প্ৰভাৱশালী হ'বলৈ "
"শ্বেল "
"পুনৰাম্ভ কৰাৰ প্ৰয়োজন।"
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
msgid "Places"
msgstr "স্থানবোৰ"
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "\"%s\" লঞ্চ কৰিবলে ব্যৰ্থ"
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "কমপিউটাৰ"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "ঘৰ"
#: ../extensions/places-menu/placeDisplay.js:286
msgid "Browse Network"
msgstr "নেটৱাৰ্ক ব্ৰাউছ কৰক"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "মেমৰি"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "Theme name"
msgstr "থীম নাম"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "~/.themes/name/gnome-shell ৰ পৰা ল'ড কৰিব লগিয়া থীমৰ নাম"
#: ../extensions/window-list/extension.js:92
msgid "Close"
msgstr "বন্ধ কৰক"
#: ../extensions/window-list/extension.js:102
msgid "Unminimize"
msgstr "ডাঙৰ কৰক"
#: ../extensions/window-list/extension.js:103
msgid "Minimize"
msgstr "সৰু কৰক"
#: ../extensions/window-list/extension.js:109
msgid "Unmaximize"
msgstr "সৰু কৰক"
#: ../extensions/window-list/extension.js:110
msgid "Maximize"
msgstr "ডাঙৰ কৰক"
#: ../extensions/window-list/extension.js:270
msgid "Minimize all"
msgstr "সকলো সৰু কৰক"
#: ../extensions/window-list/extension.js:278
msgid "Unminimize all"
msgstr "সকলো ডাঙৰ কৰক"
#: ../extensions/window-list/extension.js:286
msgid "Maximize all"
msgstr "সকলো ডাঙৰ কৰক"
#: ../extensions/window-list/extension.js:295
msgid "Unmaximize all"
msgstr "সকলো সৰু কৰক"
#: ../extensions/window-list/extension.js:304
msgid "Close all"
msgstr "সকলো বন্ধ কৰক"
#: ../extensions/window-list/extension.js:591
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "কাৰ্য্যস্থান সূচক"
#: ../extensions/window-list/extension.js:743
msgid "Window List"
msgstr "উইন্ডো তালিকা"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
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/prefs.js:30
msgid "Window Grouping"
msgstr "উইন্ডো দলবদ্ধকৰণ"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "উইন্ডোসমূহ কেতিয়াও দলবদ্ধ নকৰিব "
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "উইন্ডোসমূহ দলবদ্ধ কৰক যেতিয়া স্থান সীমিত থাকে"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "উইন্ডোসমূহ সদায় দলবদ্ধ কৰিব"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "কাৰ্য্যস্থানৰ নামবোৰ:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "নাম"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "কাৰ্য্যস্থান %d"
#~ msgid "Suspend"
#~ msgstr "স্থগিত কৰক"
#~ msgid "Hibernate"
#~ msgstr "হাইবাৰনেইট"
#~ msgid "Power Off"
#~ msgstr "বন্ধ কৰক"
#~ msgid "Enable suspending"
#~ msgstr "স্থগিত কৰা সামৰ্থবান কৰক"
#~ msgid "Control the visibility of the Suspend menu item"
#~ msgstr "স্থগিত মেনু বস্তুৰ দৃশ্যমানতা নিয়ন্ত্ৰণ কৰক"
#~ msgid "Enable hibernating"
#~ msgstr "হাইবেৰনেইট কৰা সামৰ্থবান কৰক"
#~ msgid "Control the visibility of the Hibernate menu item"
#~ msgstr "হাইবেৰনেইট মেনু বস্তুৰ দৃশ্যমানতা নিয়ন্ত্ৰণ কৰক"
#~ msgid "Normal"
#~ msgstr "স্বাভাৱিক"
#~ msgid "Left"
#~ msgstr "বাঁওফাল"
#~ msgid "Right"
#~ msgstr "সোঁফাল"
#~ msgid "Upside-down"
#~ msgstr "উলোটা"
#~ msgid "Display"
#~ msgstr "প্ৰদৰ্শন"
#~ msgid "Display Settings"
#~ msgstr "প্ৰদৰ্শনৰ সংহতিসমূহ"

607
po/ca.po
View File

@@ -2,152 +2,93 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Jordi Mas i Hernandez <jmas@softcatala.org>, 2011.
# Gil Forcada <gilforcada@guifi.net>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-08-19 23:28+0200\n"
"PO-Revision-Date: 2011-08-02 07:30+0200\n"
"Last-Translator: jmas@softcatala.org\n"
"Language-Team: ca_ES <tradgnome@softcatala.net>\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-09-06 17:51+0000\n"
"PO-Revision-Date: 2012-09-29 00:02+0200\n"
"Last-Translator: Gil Forcada <gilforcada@guifi.net>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: ../extensions/alternative-status-menu/extension.js:39
msgid "Available"
msgstr "Disponible"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "The application icon mode."
msgstr "El mode d'icona d'aplicació."
#: ../extensions/alternative-status-menu/extension.js:44
msgid "Busy"
msgstr "Ocupat"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configura com es mostren les icones en l'intercanviador. Les possibilitats "
"vàlides són «thumbnail-only» (només miniatures, mostra les miniatures de les "
"finestres), «app-icon-only» (només icona de l'aplicació, mostra només la "
"icona de l'aplicació) o «both» (ambdós, mostra tan la icona de l'aplicació "
"com la miniatura). "
#: ../extensions/alternative-status-menu/extension.js:52
msgid "My Account"
msgstr "El meu compte"
#: ../extensions/alternate-tab/prefs.js:26
msgid "Thumbnail only"
msgstr "Només miniatures"
#: ../extensions/alternative-status-menu/extension.js:56
msgid "System Settings"
msgstr "Paràmetres de l'ordinador"
#: ../extensions/alternate-tab/prefs.js:27
msgid "Application icon only"
msgstr "Només la icona de l'aplicació"
#: ../extensions/alternative-status-menu/extension.js:63
msgid "Lock Screen"
msgstr "Bloca la pantalla"
#: ../extensions/alternate-tab/prefs.js:28
msgid "Thumbnail and application icon"
msgstr "Miniatura i icona de l'aplicació"
#: ../extensions/alternative-status-menu/extension.js:67
msgid "Switch User"
msgstr "Canvia d'usuari"
#: ../extensions/alternate-tab/prefs.js:43
msgid "Present windows as"
msgstr "Mostra les finestres com a"
#: ../extensions/alternative-status-menu/extension.js:72
msgid "Log Out..."
msgstr "Surt..."
#: ../extensions/alternate-tab/prefs.js:68
msgid "Show only windows in the current workspace"
msgstr "Mostra només les icones de l'espai de treball actual"
#: ../extensions/alternative-status-menu/extension.js:79
#. add the new entries
#: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend"
msgstr "Atura temporalment"
#: ../extensions/alternative-status-menu/extension.js:85
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate"
msgstr "Hiberna"
#: ../extensions/alternative-status-menu/extension.js:91
msgid "Power Off..."
msgstr "Apaga..."
#: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off"
msgstr "Apaga"
#: ../extensions/alternate-tab/extension.js:44
msgid ""
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one "
"selection \n"
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode let's you switch between the applications of your current \n"
" workspace and gives you additionally the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"Native:\n"
" This mode is the native GNOME 3 behaviour or in other words: Clicking \n"
" native switches the Alternate Tab extension off. \n"
msgstr ""
"Aquest és el primer cop que utilitzeu l'extensió «Alternate Tab». \n"
"Trieu el comportament que preferiu:\n"
"\n"
"Totes i miniatures:\n"
" Aquest mode presenta totes les aplicacions de tots els espais de treball "
"com a\n"
" una llista de selecció. En comptes de mostrar la icona d'aplicació de "
"cada finestra, mostra les \n"
" miniatures que representen el contingut de la finestra. \n"
"\n"
"Espai de treball i icones:\n"
" Aquest mode us permet canviar entre aplicacions de l'espai de treball "
"actual \n"
" i us dóna la possibilitat de canviar a l'última aplicació usada de "
"l'espai de \n"
" treball anterior. Aquest és sempre el darrer símbol a la llista i està "
"separat \n"
" per una línia vertical/separador quan està disponible. \n"
" Cada finestra es representa per la seva icona d'aplicació. \n"
"\n"
"Nadiu:\n"
" Aquest és el mode de comportament nadiu al GNOME 3 o amb altres "
"paraules: fent \n"
" clic inhabilita l'extensió «Alternate Tab». \n"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
msgid "Enable suspending"
msgstr "Habilita l'aturada temporal"
#: ../extensions/alternate-tab/extension.js:269
msgid "Alt Tab Behaviour"
msgstr "Comportament de l'«Alternate Tab»"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:2
msgid "Control the visibility of the Suspend menu item"
msgstr "Permet controlar si es mostra l'element de menú «Atura temporalment»"
#: ../extensions/alternate-tab/extension.js:285
msgid "All & Thumbnails"
msgstr "Totes i miniatures"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
msgid "Enable hibernating"
msgstr "Habilita la hibernació"
#: ../extensions/alternate-tab/extension.js:292
msgid "Workspace & Icons"
msgstr "Espai de treball i icones"
#: ../extensions/alternate-tab/extension.js:299
msgid "Native"
msgstr "Nadiu"
#: ../extensions/alternate-tab/extension.js:306
msgid "Cancel"
msgstr "Cancel·la"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "Ask the user for a default behaviour if true."
msgstr "Si és «true» (cert) pregunta a l'usuari pel comportament per defecte."
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "Indicates if Alternate Tab is newly installed"
msgstr "Indica si s'acaba d'instal·lar l'«Alternate Tab»"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:3
msgid ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
msgstr ""
"Defineix el comportament de l'«Alternate Tab». Els valors possibles són: "
"«native» (nadiu), «all_thumbnails» (totes i miniatures) i "
"«workspace_icons» (espai de treball i icones)."
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
msgid "The alt tab behaviour."
msgstr "Comportament de l'«Alternate Tab»"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:4
msgid "Control the visibility of the Hibernate menu item"
msgstr "Permet controlar si es mostra l'element de menú «Hiberna»"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Aplicació i llista d'espais de treball"
#: ../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"
@@ -156,62 +97,52 @@ msgstr ""
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
"número de l'espai de treball"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Aplicació i llista d'espais de treball"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Aplicació"
#: ../extensions/dock/extension.js:437
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Espai de treball"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Afegeix una regla"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Crea una regla de coincidència nova"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Afegeix"
#: ../extensions/dock/extension.js:600
msgid "Drag here to add favorites"
msgstr "Arrossegueu aquí per afegir als preferits"
#: ../extensions/dock/extension.js:771
#: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "Finestra nova"
#: ../extensions/dock/extension.js:773
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Surt de l'aplicació"
#: ../extensions/dock/extension.js:778
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Suprimeix dels preferits"
#: ../extensions/dock/extension.js:779
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Afegeix als preferits"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Autohide duration"
msgstr "Duració de l'ocultació automàtica"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Autohide effect"
msgstr "Efecte de l'ocultació automàtica"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Enable/disable autohide"
msgstr "Habilita/Inhabilita l'ocultació automàtica"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Icon size"
msgstr "Mida de la icona"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Position of the dock"
msgstr "Posició de l'acoblador"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Sets icon size of the dock."
msgstr "Defineix la mida de la icona per l'acoblador."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize' or 'rescale'"
msgstr ""
"Defineix l'efecte de l'acoblador amagat. Els valors permesos són "
"«resize» (amplia) o «rescale» (escala)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
@@ -219,61 +150,115 @@ msgstr ""
"Defineix la posició de l'acoblador a la pantalla. Els valors permesos són "
"«right» (dreta) o «left» (esquerra)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Mida de la icona"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Defineix la mida de la icona per l'acoblador."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Habilita/inhabilita l'ocultació automàtica"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Efecte de l'ocultació automàtica"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Defineix l'efecte de l'acoblador ocult. Els valors permesos són "
"«resize» (amplia), «rescale» (escala) i «move» (mou)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid "Autohide duration"
msgstr "Duració de l'ocultació automàtica"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Defineix la durada en temps de l'efecte d'ocultació automàtica."
#: ../extensions/example/extension.js:11
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Pantalla"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
msgstr ""
"Estableix la pantalla a on es mostra l'acoblador. El valor per defecte és "
"«-1», la pantalla principal."
#: ../extensions/drive-menu/extension.js:56
msgid "Removable devices"
msgstr "Dispositius extraïbles"
#: ../extensions/drive-menu/extension.js:67
msgid "Open file manager"
msgstr "Obre del gestor de fitxers"
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hola, món!"
#: ../extensions/gajim/extension.js:219
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Text de rebuda alternatiu."
#: ../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 ""
"Si no és buit, conté el text que es mostrarà quan es faci clic en el quadre."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"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 del rebedor."
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "Missatge:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "%s està absent."
#: ../extensions/gajim/extension.js:222
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "%s està fora de línia."
#: ../extensions/gajim/extension.js:225
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "%s està en línia."
#: ../extensions/gajim/extension.js:228
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "%s està ocupat."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
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 ""
"Si és «true» (cert), posiciona el títol de la finestra damunt de la "
"miniatura corresponent, substituint el comportament per defecte del Shell de "
"posicionar-lo a baix. Cal reiniciar el Shell per tal de que aquest canvi "
"tingui efecte."
msgid "Use more screen for windows"
msgstr "Utilitza més pantalla per les finestres"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr "Posiciona els títols de les finestres al damunt"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid ""
"The algorithm used to layout thumbnails in the overview. 'grid' to use the "
"default grid based algorithm, 'natural' to use another one that reflects "
"more the position and size of the actual window"
msgstr ""
"L'algoritme per posicionar les miniatures en la perspectiva general. Useu "
"«grid» (graella) per a utilitzar l'algoritme per defecte basat en disposició "
"en graella, o «natural» (natural) per a usar un algoritme que reflexa millor "
"la posició i mida de la finestra actual."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
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. "
@@ -285,38 +270,258 @@ msgstr ""
"configuració només s'aplica a l'estratègia de posicionament de finestres "
"natural."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:5
msgid "Use more screen for windows"
msgstr "Utilitza més pantalla per les finestres"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Posiciona els títols de les finestres al damunt"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:6
msgid "Window placement strategy"
msgstr "Estratègia de posicionament de la finestra"
#: ../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."
msgstr ""
"Si és «true» (cert), posiciona el títol de la finestra damunt de la "
"miniatura corresponent, substituint el comportament per defecte del Shell de "
"posicionar-lo a baix. Cal reiniciar el Shell per tal de que aquest canvi "
"tingui efecte."
#: ../extensions/places-menu/extension.js:46
msgid "Places"
msgstr "Llocs"
#: ../extensions/places-menu/extension.js:47
msgid "Devices"
msgstr "Dispositius"
#: ../extensions/places-menu/extension.js:48
msgid "Bookmarks"
msgstr "Adreces d'interès"
#: ../extensions/places-menu/extension.js:49
msgid "Network"
msgstr "Xarxa"
#: ../extensions/places-menu/placeDisplay.js:48
#, c-format
msgid "Failed to launch \"%s\""
msgstr "No s'ha pogut iniciar «%s»"
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Home"
msgstr "Inici"
#: ../extensions/places-menu/placeDisplay.js:184
msgid "File System"
msgstr "Sistema de fitxers"
#: ../extensions/places-menu/placeDisplay.js:188
msgid "Browse network"
msgstr "Navega per la xarxa"
#: ../extensions/systemMonitor/extension.js:213
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:266
msgid "Memory"
msgstr "Memòria"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
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/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Nom del tema"
#: ../extensions/xrandr-indicator/extension.js:26
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
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/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indicador de l'espai de treball"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Noms dels espais de treball:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Nom"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Espai de treball %d"
#: ../extensions/xrandr-indicator/extension.js:30
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
#: ../extensions/xrandr-indicator/extension.js:31
msgid "Left"
msgstr "Esquerra"
#: ../extensions/xrandr-indicator/extension.js:28
#: ../extensions/xrandr-indicator/extension.js:32
msgid "Right"
msgstr "Dreta"
#: ../extensions/xrandr-indicator/extension.js:29
#: ../extensions/xrandr-indicator/extension.js:33
msgid "Upside-down"
msgstr "Capgira"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configura els paràmetres de visualització..."
#: ../extensions/xrandr-indicator/extension.js:50
msgid "Display"
msgstr "Pantalla"
#: ../extensions/xrandr-indicator/extension.js:80
msgid "Display Settings"
msgstr "Paràmetres de la pantalla"
#~ msgid "The alt tab behaviour."
#~ msgstr "Comportament de l'«Alternate Tab»."
#~ msgid ""
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
#~ "workspace_icons. See the configuration dialogs for details."
#~ msgstr ""
#~ "Defineix el comportament de l'«Alternate Tab». Els valors possibles són: "
#~ "«all_thumbnails» (totes i les miniatures) i «workspace_icons» (espais de "
#~ "treball i icones). Vegeu els diàlegs de configuració per saber-ne més."
#~ msgid ""
#~ "This mode presents all applications from all workspaces in one selection "
#~ "list. Instead of using the application icon of every window, it uses "
#~ "small thumbnails resembling the window itself."
#~ msgstr ""
#~ "Aquest mode mostra totes les aplicacions de tots els espais de treball en "
#~ "una sola llista de selecció. En comptes de fer servir la icona de "
#~ "l'aplicació per cada finestra, fa servir miniatures de les mateixes "
#~ "finestres de les aplicacions."
#~ msgid "Workspace & Icons"
#~ msgstr "Espai de treball i icones"
#~ msgid ""
#~ "This mode let's you switch between the applications of your current "
#~ "workspace and gives you additionally the option to switch to the last "
#~ "used application of your previous workspace. This is always the last "
#~ "symbol in the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ "Every window is represented by its application icon."
#~ msgstr ""
#~ "Aquest mode us permet canviar entre les aplicacions de l'espai de treball "
#~ "actual i us dóna la possibilitat de canviar a l'última aplicació "
#~ "utilitzada de l'espai de treball anterior. Es mostra, en cas d'estar "
#~ "disponible, sempre com a l'última icona de la llista, separada de la "
#~ "resta amb un separador vertical.\n"
#~ "Cada finestra està representada per la seva icona d'aplicació."
#~ msgid "Move current selection to front before closing the popup"
#~ msgstr ""
#~ "Mou la selecció actual al primer pla abans de tancar el diàleg emergent"
#~ msgid ""
#~ "The Alternate Tab can be used in different modes, that affect the way "
#~ "windows are chosen and presented."
#~ msgstr ""
#~ "L'«Alternate Tab» es pot utilitzar de diferents maneres que canvien la "
#~ "forma en que es seleccionen i es mostren les finestres."
#~ msgid "Removable Devices"
#~ msgstr "Dispositius extraïbles"
#~ msgid "Configure display settings..."
#~ msgstr "Configura els paràmetres de visualització..."
#~ msgid "Available"
#~ msgstr "Disponible"
#~ msgid "Busy"
#~ msgstr "Ocupat"
#~ msgid "My Account"
#~ msgstr "El meu compte"
#~ msgid "Lock Screen"
#~ msgstr "Bloca la pantalla"
#~ msgid "Switch User"
#~ msgstr "Canvia d'usuari"
#~ msgid "Log Out..."
#~ msgstr "Surt..."
#~ msgid ""
#~ "This is the first time you use the Alternate Tab extension. \n"
#~ "Please choose your preferred behaviour:\n"
#~ "\n"
#~ "All & Thumbnails:\n"
#~ " This mode presents all applications from all workspaces in one "
#~ "selection \n"
#~ " list. Instead of using the application icon of every window, it uses "
#~ "small \n"
#~ " thumbnails resembling the window itself. \n"
#~ "\n"
#~ "Workspace & Icons:\n"
#~ " This mode let's you switch between the applications of your current \n"
#~ " workspace and gives you additionally the option to switch to the last "
#~ "used \n"
#~ " application of your previous workspace. This is always the last "
#~ "symbol in \n"
#~ " the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ " Every window is represented by its application icon. \n"
#~ "\n"
#~ "Native:\n"
#~ " This mode is the native GNOME 3 behaviour or in other words: "
#~ "Clicking \n"
#~ " native switches the Alternate Tab extension off. \n"
#~ msgstr ""
#~ "Aquest és el primer cop que utilitzeu l'extensió «Alternate Tab». \n"
#~ "Trieu el comportament que preferiu:\n"
#~ "\n"
#~ "Totes i miniatures:\n"
#~ " Aquest mode presenta totes les aplicacions de tots els espais de "
#~ "treball com a\n"
#~ " una llista de selecció. En comptes de mostrar la icona d'aplicació de "
#~ "cada finestra, mostra les \n"
#~ " miniatures que representen el contingut de la finestra. \n"
#~ "\n"
#~ "Espai de treball i icones:\n"
#~ " Aquest mode us permet canviar entre aplicacions de l'espai de treball "
#~ "actual \n"
#~ " i us dóna la possibilitat de canviar a l'última aplicació usada de "
#~ "l'espai de \n"
#~ " treball anterior. Aquest és sempre el darrer símbol a la llista i "
#~ "està separat \n"
#~ " per una línia vertical/separador quan està disponible. \n"
#~ " Cada finestra es representa per la seva icona d'aplicació. \n"
#~ "\n"
#~ "Nadiu:\n"
#~ " Aquest és el mode de comportament nadiu al GNOME 3 o amb altres "
#~ "paraules: fent \n"
#~ " clic inhabilita l'extensió «Alternate Tab». \n"
#~ msgid "Alt Tab Behaviour"
#~ msgstr "Comportament de l'«Alternate Tab»"
#~ msgid "Cancel"
#~ msgstr "Cancel·la"
#~ msgid "Ask the user for a default behaviour if true."
#~ msgstr ""
#~ "Si és «true» (cert) pregunta a l'usuari pel comportament per defecte."
#~ msgid "Indicates if Alternate Tab is newly installed"
#~ msgstr "Indica si s'acaba d'instal·lar l'«Alternate Tab»"
#~ msgid ""
#~ "The algorithm used to layout thumbnails in the overview. 'grid' to use "
#~ "the default grid based algorithm, 'natural' to use another one that "
#~ "reflects more the position and size of the actual window"
#~ msgstr ""
#~ "L'algoritme per posicionar les miniatures en la perspectiva general. Useu "
#~ "«grid» (graella) per a utilitzar l'algoritme per defecte basat en "
#~ "disposició en graella, o «natural» (natural) per a usar un algoritme que "
#~ "reflexa millor la posició i mida de la finestra actual."
#~ msgid "Window placement strategy"
#~ msgstr "Estratègia de posicionament de la finestra"

461
po/cs.po
View File

@@ -1,123 +1,100 @@
# Czech translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Marek Černocký <marek@manet.cz>, 2011, 2012.
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013.
# Petr Kovar <pknbe@volny.cz>, 2013.
#
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: 2012-01-07 10:46+0000\n"
"PO-Revision-Date: 2012-01-16 10:51+0100\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"POT-Creation-Date: 2013-09-23 10:19+0000\n"
"PO-Revision-Date: 2013-09-23 15:07+0200\n"
"Last-Translator: Petr Kovar <pknbe@volny.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Gtranslator 2.91.6\n"
#. add the new entries
#: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend"
msgstr "Uspat do paměti"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME klasik"
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate"
msgstr "Uspat na disk"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "Toto sezení vás přihlásí do GNOME klasik"
#: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off..."
msgstr "Vypnout…"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "GNOME Shell klasik"
#: ../extensions/alternate-tab/extension.js:54
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Správa oken a spouštění aplikací"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
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.in.h:2
msgid ""
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one "
"selection \n"
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode let's you switch between the applications of your current \n"
" workspace and gives you additionally the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"If you whish to revert to the default behavior for the Alt-Tab switcher, "
"just\n"
"disable the extension from extensions.gnome.org or the Advanced Settings "
"application."
msgstr ""
"Právě jste poprvé použili rozšíření Alternate Tab.\n"
"Vyberte si vámi upřednostňované chování:\n"
"\n"
"Vše a náhledy:\n"
" Tento režim předkládá všechny aplikace ze všech pracovních ploch\n"
" v jediném výběrovém seznamu. Místo ikon aplikací pro každé z oken\n"
" používá malé náhledy vytvořené přímo podle oken.\n"
"\n"
"Pracovní plocha a ikony:\n"
" Tento režim vám umožňuje přepínat mezi aplikacemi vaší aktuální "
"pracovní\n"
" plochy a poskytuje vám navíc možnost přepnout se na naposledy použitou\n"
" aplikaci vaší předchozí pracovní plochy. Jde vždy o poslední symbol v "
"seznamu\n"
" a pokud je k dispozici, je oddělen oddělovačem/svislou čárou. Každé z "
"oken\n"
" je prezentováno ikonou příslušné aplikace.\n"
"\n"
"Jestliže si přejete vrátit výchozí chování přepínače Alt-Tab, jednoduše "
"rozšíření\n"
"zakažte v extensions.gnome.org nebo v aplikaci Pokročilá nastavení."
"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"
#: ../extensions/alternate-tab/extension.js:295
msgid "Alt Tab Behaviour"
msgstr "Chování Alt Tab"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Okna upuštěná u okraje obrazovky nechat řadit jako dlaždice"
#: ../extensions/alternate-tab/extension.js:311
msgid "All & Thumbnails"
msgstr "Vše a náhledy"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid "Workspaces only on primary monitor"
msgstr "Pracovní plochy jen na hlavním monitoru"
#: ../extensions/alternate-tab/extension.js:318
msgid "Workspace & Icons"
msgstr "Pracovní plocha a ikony"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
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/extension.js:325
msgid "Cancel"
msgstr "Zrušit"
#: ../extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Pouze náhled"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "Ask the user for a default behaviour if true."
msgstr "Když je zapnuto, dotázat se uživatele na výchozí chování."
#: ../extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Pouze ikona aplikace"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "Indicates if Alternate Tab is newly installed"
msgstr "Signalizuje, když je rozšíření Alternate Tab nově nainstalováno"
#: ../extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Náhled a ikona aplikace"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:3
msgid ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
msgstr ""
"Nastavuje chování klávesové zkratky Alt-Tab. Možné hodnoty jsou: native "
"(přirozené), all_thumbnails (vše a náhledy) a workspace_icons (pracovní "
"plocha a ikony)."
#: ../extensions/alternate-tab/prefs.js:37
msgid "Present windows as"
msgstr "Představovat okna jako"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
msgid "The alt tab behaviour."
msgstr "Chování klávesové zkratky alt tab."
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "Zobrazovat pouze okna z aktuální pracovní plochy"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "Přehled činností"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Oblíbené"
#: ../extensions/apps-menu/extension.js:282
msgid "Applications"
msgstr "Aplikace"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Seznam aplikací a pracovních ploch"
#: ../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"
@@ -125,117 +102,76 @@ msgstr ""
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Seznam aplikací a pracovních ploch"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Aplikace"
#: ../extensions/dock/extension.js:561
msgid "Drag here to add favorites"
msgstr "Přetažením sem přidáte do oblíbených"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Pracovní plocha"
#: ../extensions/dock/extension.js:896
msgid "New Window"
msgstr "Nové okno"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Přidat pravidlo"
#: ../extensions/dock/extension.js:898
msgid "Quit Application"
msgstr "Ukončit aplikaci"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Vytvoření nového srovnávacího pravidla"
#: ../extensions/dock/extension.js:903
msgid "Remove from Favorites"
msgstr "Odebrat z oblíbených"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Přidat"
#: ../extensions/dock/extension.js:904
msgid "Add to Favorites"
msgstr "Přidat do oblíbených"
#: ../extensions/drive-menu/extension.js:73
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "Vysunutí disku „%s“ selhalo:"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Autohide duration"
msgstr "Čas automatického skrývání"
#: ../extensions/drive-menu/extension.js:90
msgid "Removable devices"
msgstr "Výměnná zařízení"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Autohide effect"
msgstr "Efekt automatického skrývání"
#: ../extensions/drive-menu/extension.js:117
msgid "Open File"
msgstr "Otevřít soubor"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Enable/disable autohide"
msgstr "Zapnout/vypnout automatické skrývání"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Icon size"
msgstr "Velikost ikony"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Position of the dock"
msgstr "Poloha doku"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Sets icon size of the dock."
msgstr "Nastavuje velikost ikon v doku."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Nastavuje efekt skrývání doku. Povolené hodnoty jsou „resize“ (změna "
"velikosti), „rescale“ (změna měřítka) a „move“ (přesun)."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Nastavuje polohu doku na obrazovce. Povolené hodnoty jsou „right“ (vpravo) "
"nebo „left“ (vlevo)."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Nastavuje čas trvání efektu automatického skrývání."
#: ../extensions/drive-menu/extension.js:69
msgid "Open file manager"
msgstr "Otevřít správce souborů"
#: ../extensions/example/extension.js:11
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Ahoj světe!"
#: ../extensions/gajim/extension.js:227
#, c-format
msgid "%s is away."
msgstr "%s je pryč."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Alternativní uvítací text"
#: ../extensions/gajim/extension.js:230
#, c-format
msgid "%s is offline."
msgstr "%s je odpojen."
#: ../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 ""
"Pokud není prázdné, obsahuje text, který se objeví po kliknutí na panel."
#: ../extensions/gajim/extension.js:233
#, c-format
msgid "%s is online."
msgstr "%s je připojen."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"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/gajim/extension.js:236
#, c-format
msgid "%s is busy."
msgstr "%s je zaneprázdněn."
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "Zpráva:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
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 ""
"Pokud je zapnuto, umisťuje se název okna nad případný náhled, čímž se "
"přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
"nastavení vyžaduje restart shellu, aby se projevila."
msgid "Use more screen for windows"
msgstr "Použít větší část obrazovky pro okna"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr "Umístit název okna nahoru"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
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. "
@@ -245,38 +181,145 @@ msgstr ""
"využít větší část obrazovky pro umístění náhledů oken. Toto nastavení se "
"použije pouze dohromady se strategií umisťování „natural“."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid "Use more screen for windows"
msgstr "Použít větší část obrazovky pro okna"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Umístit název okna nahoru"
#: ../extensions/places-menu/extension.js:36
msgid "Removable Devices"
msgstr "Výměnná zařízení"
#: ../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."
msgstr ""
"Pokud je zapnuto, umisťuje se název okna nad případný náhled, čímž se "
"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
msgid "Places"
msgstr "Místa"
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "Selhalo spuštění „%s“"
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "Počítač"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "Domů"
#: ../extensions/places-menu/placeDisplay.js:286
msgid "Browse Network"
msgstr "Procházet síť"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "Procesor"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "Paměť"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
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/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Název motivu"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normální"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
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/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Doleva"
#: ../extensions/window-list/extension.js:92
msgid "Close"
msgstr "Zavřít"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Doprava"
#: ../extensions/window-list/extension.js:102
msgid "Unminimize"
msgstr "Zrušit minimalizaci"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Vzhůru nohama"
#: ../extensions/window-list/extension.js:103
msgid "Minimize"
msgstr "Minimalizovat"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Upravit nastavení zobrazení…"
#: ../extensions/window-list/extension.js:109
msgid "Unmaximize"
msgstr "Zrušit maximalizaci"
#: ../extensions/window-list/extension.js:110
msgid "Maximize"
msgstr "Maximalizovat"
#: ../extensions/window-list/extension.js:270
msgid "Minimize all"
msgstr "Minimalizovat všechna"
#: ../extensions/window-list/extension.js:278
msgid "Unminimize all"
msgstr "Zrušit minimalizaci všech"
#: ../extensions/window-list/extension.js:286
msgid "Maximize all"
msgstr "Maximalizovat všechna"
#: ../extensions/window-list/extension.js:295
msgid "Unmaximize all"
msgstr "Zrušit maximalizaci všech"
#: ../extensions/window-list/extension.js:304
msgid "Close all"
msgstr "Zavřít všechna"
#: ../extensions/window-list/extension.js:591
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Ukazatel pracovní plochy"
#: ../extensions/window-list/extension.js:743
msgid "Window List"
msgstr "Seznam oken"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Kdy seskupovat okna"
#: ../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 ""
"Rozhoduje, kdy se mají v seznamu oken seskupovat okna stejné aplikace. Možné "
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Seskupování oken"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Nikdy neseskupovat okna"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "Seskupovat okna při nedostatku místa"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "Vždy seskupovat okna"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Názvy pracovních ploch"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Název"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Pracovní plocha %d"

562
po/da.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.
#
# Kris Thomsen <lakristho@gmail.com>, 2011.
# Kris Thomsen <mail@kristhomsen.dk>, 2011-2013.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-02 12:35+0100\n"
"PO-Revision-Date: 2011-12-27 00:32+0000\n"
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
"POT-Creation-Date: 2013-09-23 19:34+0200\n"
"PO-Revision-Date: 2013-09-23 19:29+0200\n"
"Last-Translator: Kris Thomsen <mail@kristhomsen.dk>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
"MIME-Version: 1.0\n"
@@ -18,106 +18,84 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. add the new entries
#: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend"
msgstr "Dvale"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate"
msgstr "Hviletilstand"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "Denne session logger dig ind i GNOME Classic"
#: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off..."
msgstr "Sluk..."
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "GNOME Shell Classic"
#: ../extensions/alternate-tab/extension.js:54
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Vindueshåndtering og programopstart"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr "Tillæg modal-dialog til det overordnede vindue"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one "
"selection \n"
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode let's you switch between the applications of your current \n"
" workspace and gives you additionally the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"If you whish to revert to the default behavior for the Alt-Tab switcher, "
"just\n"
"disable the extension from extensions.gnome.org or the Advanced Settings "
"application."
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Dette er første gang du bruger Alternate Tab-udvidelsen. \n"
"Vælg venligst din foretrukne opførsel:\n"
"\n"
"Alle & miniaturebilleder:\n"
" Denne tilstand præsenterer alle programmer fra alle arbejdsområder i en "
"markerings- \n"
" liste. I stedet for at bruge programikonet for hvert vindue, bruges et "
"lille \n"
" miniaturebillede af vinduet selv. \n"
"\n"
"Arbejdsområde & ikoner:\n"
" Denne tilstand giver mulighed for at skifte mellem programmerne i dit "
"nuværende \n"
" arbejdsområde og giver dig derudover muligheden for at skifte til det "
"seneste brugte \n"
" program i dit tidligere arbejdsområde. Dette er altid det sidste symbol "
"i \n"
" listen og er visuelt adskilt af en vertikal linje, hvis tilgængelig. \n"
" Hvert vindue er repræsenteret af dets programikon. \n"
"\n"
"Hvis du ønsker at skifte tilbage til standardopførslen for Alt-Tab-"
"skifteren, skal du\n"
"blot deaktivere udvidelsen fra extensions.gnome.org eller programmet "
"Avancerede indstillinger."
"Denne nøgle tilsidesætter nøglen i org.gnome.mutter når GNOME Shell kører."
#: ../extensions/alternate-tab/extension.js:295
msgid "Alt Tab Behaviour"
msgstr "Alt-Tab-opførsel"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr "Aktivér kant-fliselægning når vinduer slippes på skærmkanter"
#: ../extensions/alternate-tab/extension.js:311
msgid "All & Thumbnails"
msgstr "Alle & miniaturebilleder"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid "Workspaces only on primary monitor"
msgstr "Kun arbejdsområder på primær skærm"
#: ../extensions/alternate-tab/extension.js:318
msgid "Workspace & Icons"
msgstr "Arbejdsområde & ikoner"
#: ../extensions/alternate-tab/extension.js:325
msgid "Cancel"
msgstr "Annullér"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "Ask the user for a default behaviour if true."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
msgid "Delay focus changes in mouse mode until the pointer stops moving"
msgstr ""
"Forsink fokusændringer i musetilstand indtil pegeren holder op med at bevæge "
"sig"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "Indicates if Alternate Tab is newly installed"
msgstr ""
#: ../extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Kun miniaturebillede"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:3
msgid ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
msgstr ""
#: ../extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Kun programikon"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
#, fuzzy
msgid "The alt tab behaviour."
msgstr "Alt-Tab-opførsel"
#: ../extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Miniaturebillede og programikon"
#: ../extensions/alternate-tab/prefs.js:37
msgid "Present windows as"
msgstr "Præsentér vindue som"
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "Vis kun vinduer i det nuværende arbejdsområde"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "Aktivitetsoversigt"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritter"
#: ../extensions/apps-menu/extension.js:282
msgid "Applications"
msgstr "Programmer"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Liste over programmer og arbejdsområder"
#: ../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"
@@ -125,151 +103,337 @@ msgstr ""
"En liste over strenge, som hver indeholder et program-id "
"(skrivebordsfilnavn), efterfulgt af et kolon og arbejdsområdets nummer"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Liste over programmer og arbejdsområder"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Program"
#: ../extensions/dock/extension.js:561
msgid "Drag here to add favorites"
msgstr "Træk hertil for at føje til favoritter"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Arbejdsområde"
#: ../extensions/dock/extension.js:896
msgid "New Window"
msgstr "Nyt vindue"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Tilføj regel"
#: ../extensions/dock/extension.js:898
msgid "Quit Application"
msgstr "Afslut program"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Opret ny regel for match"
#: ../extensions/dock/extension.js:903
msgid "Remove from Favorites"
msgstr "Fjern fra favoritter"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Tilføj"
#: ../extensions/dock/extension.js:904
msgid "Add to Favorites"
msgstr "Føj til favoritter"
#: ../extensions/drive-menu/extension.js:73
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "Udskubning af drevet \"%s\" fejlede:"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Autohide duration"
msgstr ""
#: ../extensions/drive-menu/extension.js:90
msgid "Removable devices"
msgstr "Flytbare enheder"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Autohide effect"
msgstr ""
#: ../extensions/drive-menu/extension.js:117
msgid "Open File"
msgstr "Åbn fil"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Enable/disable autohide"
msgstr ""
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Icon size"
msgstr ""
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Position of the dock"
msgstr ""
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Sets icon size of the dock."
msgstr ""
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr ""
#: ../extensions/drive-menu/extension.js:69
msgid "Open file manager"
msgstr ""
#: ../extensions/example/extension.js:11
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hej verden!"
#: ../extensions/gajim/extension.js:227
#, c-format
msgid "%s is away."
msgstr "%s er ikke til stede."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Alternativ velkomsttekst."
#: ../extensions/gajim/extension.js:230
#, c-format
msgid "%s is offline."
msgstr "%s er frakoblet."
#: ../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 ""
"Hvis den ikke er tom, så indeholder den teksten, der vil blive vist når der "
"klikkes på panelet."
#: ../extensions/gajim/extension.js:233
#, c-format
msgid "%s is online."
msgstr "%s er tilgængelig."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"Example sigter efter at vise hvordan man bygger udvidelser til shell'en som "
"opfører sig ordentligt, og har som sådan meget lidt selvstændig "
"funktionalitet.Alligevel er det muligt at tilpasse velkomstbeskeden."
#: ../extensions/gajim/extension.js:236
#, c-format
msgid "%s is busy."
msgstr "%s er optaget."
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "Besked:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
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 ""
msgid "Use more screen for windows"
msgstr "Brug mere skærmplads til vinduer"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr ""
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
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 ""
"Prøv at bruge mere skærmplads til at placere vinduesminiaturer ved at "
"tilpasse dem til skærmens størrelsesforhold, samt ved at konsolidere dem "
"yderligere for at reducere den omkransende boks.Denne indstilling gælder kun "
"med den naturlige placeringsstrategi."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Placér vinduestitler i toppen"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid "Use more screen for windows"
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 ""
"Hvis sat, vil vinduestitler bliver placeret i toppen af de respektive "
"miniaturer, tilsidesætter shell-standarden, som placerer den i bunden. "
"Ændring af denne indstilling kræver at shell'en genstartes for at træde i "
"kraft."
#: ../extensions/places-menu/extension.js:36
msgid "Removable Devices"
msgstr ""
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
msgid "Places"
msgstr "Steder"
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "Kunne ikke åbne \"%s\""
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "Computer"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "Hjem"
#: ../extensions/places-menu/placeDisplay.js:286
msgid "Browse Network"
msgstr "Gennemse netværk"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "Hukommelse"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Temanavn"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Venstre"
#: ../extensions/window-list/extension.js:92
msgid "Close"
msgstr "Luk"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Højre"
#: ../extensions/window-list/extension.js:102
msgid "Unminimize"
msgstr "Afminimér"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "På hovedet"
#: ../extensions/window-list/extension.js:103
msgid "Minimize"
msgstr "Minimér"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Konfigurér skærmindstillinger..."
#: ../extensions/window-list/extension.js:109
msgid "Unmaximize"
msgstr "Afmaksimér"
#: ../extensions/window-list/extension.js:110
msgid "Maximize"
msgstr "Maksimér"
#: ../extensions/window-list/extension.js:270
msgid "Minimize all"
msgstr "Minimér"
#: ../extensions/window-list/extension.js:278
msgid "Unminimize all"
msgstr "Afminimér alle"
#: ../extensions/window-list/extension.js:286
msgid "Maximize all"
msgstr "Maksimér alle"
#: ../extensions/window-list/extension.js:295
msgid "Unmaximize all"
msgstr "Afmaksimér alle"
#: ../extensions/window-list/extension.js:304
msgid "Close all"
msgstr "Luk alle"
#: ../extensions/window-list/extension.js:591
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Arbejdsområdeindikator"
#: ../extensions/window-list/extension.js:743
msgid "Window List"
msgstr "Vinduesliste"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Hvornår vinduer skal grupperes"
#: ../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 ""
"Afgør hvornår vinduer fra samme program skal grupperes i vindueslisten. "
"Mulige værdier er \"never\" (aldrig), \"auto\" (automatisk) og \"always"
"\" (altid)."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Vinduesgruppering"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Gruppér aldrig vinduer"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "Gruppér vinduer når pladsen er begrænset"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "Gruppér altid vinduer"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Arbejdsområdenavne:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Navn"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Arbejdsområde %d"
#~ msgid "Suspend"
#~ msgstr "Dvale"
#~ msgid "Hibernate"
#~ msgstr "Hviletilstand"
#~ msgid "Power Off..."
#~ msgstr "Sluk..."
#~ msgid ""
#~ "This is the first time you use the Alternate Tab extension. \n"
#~ "Please choose your preferred behaviour:\n"
#~ "\n"
#~ "All & Thumbnails:\n"
#~ " This mode presents all applications from all workspaces in one "
#~ "selection \n"
#~ " list. Instead of using the application icon of every window, it uses "
#~ "small \n"
#~ " thumbnails resembling the window itself. \n"
#~ "\n"
#~ "Workspace & Icons:\n"
#~ " This mode let's you switch between the applications of your current \n"
#~ " workspace and gives you additionally the option to switch to the last "
#~ "used \n"
#~ " application of your previous workspace. This is always the last "
#~ "symbol in \n"
#~ " the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ " Every window is represented by its application icon. \n"
#~ "\n"
#~ "If you whish to revert to the default behavior for the Alt-Tab switcher, "
#~ "just\n"
#~ "disable the extension from extensions.gnome.org or the Advanced Settings "
#~ "application."
#~ msgstr ""
#~ "Dette er første gang du bruger Alternate Tab-udvidelsen. \n"
#~ "Vælg venligst din foretrukne opførsel:\n"
#~ "\n"
#~ "Alle & miniaturebilleder:\n"
#~ " Denne tilstand præsenterer alle programmer fra alle arbejdsområder i "
#~ "en markerings- \n"
#~ " liste. I stedet for at bruge programikonet for hvert vindue, bruges "
#~ "et lille \n"
#~ " miniaturebillede af vinduet selv. \n"
#~ "\n"
#~ "Arbejdsområde & ikoner:\n"
#~ " Denne tilstand giver mulighed for at skifte mellem programmerne i dit "
#~ "nuværende \n"
#~ " arbejdsområde og giver dig derudover muligheden for at skifte til det "
#~ "seneste brugte \n"
#~ " program i dit tidligere arbejdsområde. Dette er altid det sidste "
#~ "symbol i \n"
#~ " listen og er visuelt adskilt af en vertikal linje, hvis "
#~ "tilgængelig. \n"
#~ " Hvert vindue er repræsenteret af dets programikon. \n"
#~ "\n"
#~ "Hvis du ønsker at skifte tilbage til standardopførslen for Alt-Tab-"
#~ "skifteren, skal du\n"
#~ "blot deaktivere udvidelsen fra extensions.gnome.org eller programmet "
#~ "Avancerede indstillinger."
#~ msgid "Alt Tab Behaviour"
#~ msgstr "Alt-Tab-opførsel"
#~ msgid "Cancel"
#~ msgstr "Annullér"
#~ msgid "The alt tab behaviour."
#~ msgstr "Alt-Tab-opførsel"
#~ msgid "Drag here to add favorites"
#~ msgstr "Træk hertil for at føje til favoritter"
#~ msgid "New Window"
#~ msgstr "Nyt vindue"
#~ msgid "Remove from Favorites"
#~ msgstr "Fjern fra favoritter"
#~ msgid "%s is away."
#~ msgstr "%s er ikke til stede."
#~ msgid "%s is offline."
#~ msgstr "%s er frakoblet."
#~ msgid "%s is online."
#~ msgstr "%s er tilgængelig."
#~ msgid "%s is busy."
#~ msgstr "%s er optaget."
#~ msgid "Normal"
#~ msgstr "Normal"
#~ msgid "Left"
#~ msgstr "Venstre"
#~ msgid "Right"
#~ msgstr "Højre"
#~ msgid "Upside-down"
#~ msgstr "På hovedet"
#~ msgid "Configure display settings..."
#~ msgstr "Konfigurér skærmindstillinger..."
#~ msgid "Notifications"
#~ msgstr "Beskeder"

558
po/de.po
View File

@@ -1,234 +1,197 @@
# German translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2011.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2011.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2011-2013.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2011, 2012.
# Benjamin Steinwender <b@stbe.at>, 2013.
#
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: 2011-12-27 14:30+0000\n"
"PO-Revision-Date: 2011-12-28 11:14+0100\n"
"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
"POT-Creation-Date: 2013-09-15 00:43+0000\n"
"PO-Revision-Date: 2013-09-15 21:33+0100\n"
"Last-Translator: Benjamin Steinwender <b@stbe.at>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"X-Poedit-Language: German\n"
"X-Poedit-Country: GERMANY\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 1.5.7\n"
#. add the new entries
#: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend"
msgstr "Bereitschaft"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate"
msgstr "Ruhezustand"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "Diese Sitzung meldet Sie in GNOME Classic an"
#: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off..."
msgstr "Ausschalten …"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "GNOME Shell Classic"
#: ../extensions/alternate-tab/extension.js:54
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Fensterverwaltung und Anwendungsstart"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr "Einen modalen Dialog an das übergeordnete Fenster anhängen"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one "
"selection \n"
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode let's you switch between the applications of your current \n"
" workspace and gives you additionally the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"If you whish to revert to the default behavior for the Alt-Tab switcher, "
"just\n"
"disable the extension from extensions.gnome.org or the Advanced Settings "
"application."
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Sie verwenden die Erweiterung »Alt-Tab« das erste Mal. \n"
"Bitte wählen Sie das gewünschte Verhalten:\n"
"\n"
"Alle und Vorschaubilder:\n"
" Dieser Modus stellt alle Anwendungen aus allen Arbeitsflächen in einer\n"
" Auswahlliste dar. Anstelle des Anwendungssymbols jedes Fensters werden\n"
" kleine Vorschaubilder dargestellt, die dem Fenster ähnlich sind. \n"
"\n"
"Arbeitsfläche und Symbole:\n"
" Dieser Modus ermöglicht den Wechsel zwischen Anwendungen auf Ihrer \n"
" aktuellen Arbeitsfläche und ermöglicht weiterhin, auf die zuletzt "
"verwendete\n"
" Anwendung der letzten Arbeitsfläche zu wechseln. Sie ist immer das letzte "
"Symbol\n"
" der Liste und ist durch einen Trenner (vertikale Linie) getrennt. \n"
" Jedes Fenster wird durch das entsprechende Anwendungssymbol "
"repräsentiert.\n"
"\n"
"Falls Sie zum Standardverhalten der Alt-Tab-Umschaltung zurückkehren wollen,\n"
"deaktivieren Sie diese Erweiterung in extensions.gnome.org oder verwenden "
"Sie\n"
"die »Erweiterten Einstellungen«."
"Dieser Schlüssel überschreibt den Schlüssel in »org.gnome.mutter« wenn die "
"GNOME-Shell ausgeführt wird."
#: ../extensions/alternate-tab/extension.js:295
msgid "Alt Tab Behaviour"
msgstr "Verhalten bei Alt-Tab"
#: ../extensions/alternate-tab/extension.js:311
msgid "All & Thumbnails"
msgstr "Alle und Vorschaubilder"
#: ../extensions/alternate-tab/extension.js:318
msgid "Workspace & Icons"
msgstr "Arbeitsbereich und Symbole"
#: ../extensions/alternate-tab/extension.js:325
msgid "Cancel"
msgstr "Abbrechen"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "Ask the user for a default behaviour if true."
# identisch zum Schüssel in »gnome-shell«
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Falls wahr, so wird der Benutzer nach dem voreinzustellendem Verhalten "
"gefragt."
"Größenanpassung aktivieren, wenn ein Fenster an die Bildschirmkante "
"verschoben wird"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "Indicates if Alternate Tab is newly installed"
msgstr "Gibt an, ob die Erweiterung »Alt-Tab« neu installiert wurde"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid "Workspaces only on primary monitor"
msgstr "Arbeitsflächen nur auf dem Primärmonitor"
# Oder müssen die Werte doch übersetzt werden? -ck
# Nein, dconf verhält sich hier nicht anders als gconf. Keinesfalls übersetzen! -mb
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:3
msgid ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
msgstr ""
"Legt das Verhalten bei Drücken von Alt-Tab fest. Mögliche Werte sind: "
"»native«, »all_thumbnails« und »workspace_icons«."
#: ../extensions/alternate-tab/prefs.js:20
msgid "Thumbnail only"
msgstr "Nur Vorschaubild"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
msgid "The alt tab behaviour."
msgstr "Das Verhalten bei Eingabe von Alt-Tab."
#: ../extensions/alternate-tab/prefs.js:21
msgid "Application icon only"
msgstr "Nur Anwendungssymbol"
#: ../extensions/alternate-tab/prefs.js:22
msgid "Thumbnail and application icon"
msgstr "Vorschaubild und Anwendungssymbol"
#: ../extensions/alternate-tab/prefs.js:37
msgid "Present windows as"
msgstr "Fenster darstellen als"
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "Nur Fenster der aktuellen Arbeitsfläche anzeigen"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "Aktivitäten-Übersicht"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoriten"
#: ../extensions/apps-menu/extension.js:278
msgid "Applications"
msgstr "Anwendungen"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Anwendungs- und Arbeitsflächenliste"
#: ../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 ""
"Eine Liste aus Zeichenketten, wovon jede eine Anwendungskennung (*.desktop-"
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der Arbeitsfläche"
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der "
"Arbeitsfläche"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Anwendungs- und Arbeitsflächenliste"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Anwendung"
#: ../extensions/dock/extension.js:561
msgid "Drag here to add favorites"
msgstr "Hierher ziehen, um zu Favoriten hinzuzufügen"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Arbeitsfläche "
#: ../extensions/dock/extension.js:896
msgid "New Window"
msgstr "Neues Fenster"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Regel hinzufügen"
#: ../extensions/dock/extension.js:898
msgid "Quit Application"
msgstr "Anwendung beenden"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Neue Übereinstimmungsregel erstellen"
#: ../extensions/dock/extension.js:903
msgid "Remove from Favorites"
msgstr "Aus Favoriten entfernen"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Hinzufügen"
#: ../extensions/dock/extension.js:904
msgid "Add to Favorites"
msgstr "Zu Favoriten hinzufügen"
#: ../extensions/drive-menu/extension.js:73
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "Auswerfen von Laufwerk »%s« schlug fehl:"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Autohide duration"
msgstr "Dauer automatisch verbergen"
#: ../extensions/drive-menu/extension.js:90
msgid "Removable devices"
msgstr "Wechseldatenträger"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Autohide effect"
msgstr "Effekt automatisch verbergen"
#: ../extensions/drive-menu/extension.js:117
msgid "Open File"
msgstr "Datei öffnen"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Enable/disable autohide"
msgstr "Automatisches Verbergen aktivieren/deaktivieren"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Icon size"
msgstr "Symbolgröße"
# Dock = das Dock ? -ck
# Sofern es sich nicht um das Original-Dash handelt, ja. -mb
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Position of the dock"
msgstr "Position des Docks"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Sets icon size of the dock."
msgstr "Legt die Symbolgröße für das Dock fest"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Legt den Effekt für das versteckte Dock fest. Mögliche Werte sind »resize«, "
"»rescale« und »move«"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Legt die Position des Docks auf dem Bildschirm fest. Mögliche Werte sind "
"»right« und »left«"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Legt die Effektdauer für automatisches Verbergen fest."
#: ../extensions/drive-menu/extension.js:69
msgid "Open file manager"
msgstr "Dateiverwaltung öffnen"
#: ../extensions/example/extension.js:11
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hallo, Welt!"
#: ../extensions/gajim/extension.js:227
#, c-format
msgid "%s is away."
msgstr "%s ist abwesend."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Alternative Begrüßungstext."
#: ../extensions/gajim/extension.js:230
#, c-format
msgid "%s is offline."
msgstr "%s ist abgemeldet."
#: ../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 ""
"Falls nicht leer, ist dies der Text, der beim Anklicken des Panels angezeigt "
"wird."
#: ../extensions/gajim/extension.js:233
#, c-format
msgid "%s is online."
msgstr "%s ist angemeldet."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"Das Beispiel soll zeigen, wie sich korrekt verhaltende Erweiterungen für die "
"Shell erstellt werden. Es enthält grundlegende Funktionalität.\n"
"Es ist möglich, die Begrüßungsnachricht zu ändern."
#: ../extensions/gajim/extension.js:236
#, c-format
msgid "%s is busy."
msgstr "%s ist beschäftigt."
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "Nachricht:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows"
msgstr "Mehr Bildschirmbereich für Fenster verwenden"
#: ../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."
msgstr ""
"Versuchen, mehr Bildschirmfläche zum Platzieren der Fenstervorschaubilder zu "
"verwenden, indem das Bildschirmseitenverhältnis berücksichtigt wird und "
"diese stärker zusammengelegt werden, um den umgebenden Rahmen zu "
"verkleinern. Diese Einstellung betrifft nur den natürlichen "
"Platzierungsalgorithmus."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Fensterbeschriftungen oben platzieren"
#: ../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 "
@@ -238,55 +201,210 @@ msgstr ""
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr "Fensterbeschriftungen oben platzieren"
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
msgid "Places"
msgstr "Orte"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
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 ""
"Versuchen, mehr Bildschirmfläche zum Platzieren der Fenstervorschaubilder zu "
"verwenden, indem das Bildschirmseitenverhältnis berücksichtigt wird und diese "
"stärker zusammengelegt werden, um den umgebenden Rahmen zu verkleinern. Diese "
"Einstellung betrifft nur den natürlichen Platzierungsalgorithmus."
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "Starten von »%s« fehlgeschlagen"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid "Use more screen for windows"
msgstr "Mehr Bildschirmbereich für Fenster verwenden"
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "Rechner"
#: ../extensions/places-menu/extension.js:36
msgid "Removable Devices"
msgstr "Wechseldatenträger"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "Persönlicher Ordner"
#: ../extensions/places-menu/placeDisplay.js:286
msgid "Browse Network"
msgstr "Netzwerk durchsuchen"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "Speicher"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "Theme name"
msgstr "Themenname"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
"soll"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Themenname"
#: ../extensions/window-list/extension.js:92
msgid "Close"
msgstr "Schließen"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/window-list/extension.js:102
msgid "Unminimize"
msgstr "Minimieren rückgängig"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Links"
#: ../extensions/window-list/extension.js:103
msgid "Minimize"
msgstr "Minimieren"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Rechts"
#: ../extensions/window-list/extension.js:109
msgid "Unmaximize"
msgstr "Maximieren rückgängig"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Kopfüber"
#: ../extensions/window-list/extension.js:110
msgid "Maximize"
msgstr "Maximieren"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Bildschirmeinstellungen festlegen …"
#: ../extensions/window-list/extension.js:270
msgid "Minimize all"
msgstr "Alle minimieren"
#: ../extensions/window-list/extension.js:278
msgid "Unminimize all"
msgstr "Alle minimieren rückgängig"
#: ../extensions/window-list/extension.js:286
msgid "Maximize all"
msgstr "Alle maximieren"
#: ../extensions/window-list/extension.js:295
msgid "Unmaximize all"
msgstr "Alle maximieren rückgängig"
#: ../extensions/window-list/extension.js:304
msgid "Close all"
msgstr "Alle schließen"
#: ../extensions/window-list/extension.js:591
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Arbeitsflächenindikator"
#: ../extensions/window-list/extension.js:743
#| msgid "Window Grouping"
msgid "Window List"
msgstr "Fensterliste"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Fenstergruppierung"
#: ../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 ""
"Legt fest, ob Fenster der gleichen Anwendung in der Fensterliste gruppiert "
"werden sollen. Mögliche Werte sind »never« (nie), »auto« (automatisch) und "
"»always« (immer)."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Fenstergruppierung"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Fenster niemals gruppieren"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "Fenster bei Platzmangel gruppieren"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "Fenster immer gruppieren"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Namen der Arbeitsflächen:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Name"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Arbeitsfläche %d"
#~ msgid "Suspend"
#~ msgstr "Bereitschaft"
#~ msgid "Hibernate"
#~ msgstr "Ruhezustand"
#~ msgid "Power Off"
#~ msgstr "Ausschalten …"
#~ msgid "Enable suspending"
#~ msgstr "Bereitschaft einblenden"
#~ msgid "Control the visibility of the Suspend menu item"
#~ msgstr "Die Sichtbarkeit des Menüeintrags »Bereitschaft« festlegen"
#~ msgid "Enable hibernating"
#~ msgstr "Ruhezustand einblenden"
#~ msgid "Control the visibility of the Hibernate menu item"
#~ msgstr "Die Sichtbarkeit des Menüeintrags »Ruhezustand« festlegen"
#~ msgid "Normal"
#~ msgstr "Normal"
#~ msgid "Left"
#~ msgstr "Links"
#~ msgid "Right"
#~ msgstr "Rechts"
#~ msgid "Upside-down"
#~ msgstr "Kopfüber"
#~ msgid "Display"
#~ msgstr "Anzeige"
#~ msgid "Display Settings"
#~ msgstr "Bildschirmeinstellungen"
#~ msgid "The application icon mode."
#~ msgstr "Der Modus des Anwendungssymbols."
#~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
#~ "only' (shows only the application icon) or 'both'."
#~ msgstr ""
#~ "Legt fest, wie die Fenster im Fensterumschalter angezeigt werden. Gültige "
#~ "Werte sind »thumbnail-only« (zeigt ein Vorschaubild des Fensters), »app-"
#~ "icon-only« (zeigt das Anwendungssymbol) oder »both« (beides)."
#~ msgid "Devices"
#~ msgstr "Geräte"
#~ msgid "Bookmarks"
#~ msgstr "Lesezeichen"
#~ msgid "Network"
#~ msgstr "Netzwerk"
#~ msgid "File System"
#~ msgstr "Dateisystem"
#~ msgid "Drag here to add favorites"
#~ msgstr "Hierher ziehen, um zu Favoriten hinzuzufügen"
#~ msgid "New Window"
#~ msgstr "Neues Fenster"
#~ msgid "Quit Application"
#~ msgstr "Anwendung beenden"
#~ msgid "Remove from Favorites"
#~ msgstr "Aus Favoriten entfernen"

806
po/el.po
View File

@@ -3,277 +3,180 @@
# This file is distributed under the same license as the gnome-shell-extensions package.
# ioza1964 <ioza1964@yahoo.gr>, 2011.
# Ιωάννης Ζαμπούκας <ioza1964@yahoo.gr>, 2011.
#
# Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>, 2013.
# Vangelis Skarmoutsos <skarmoutsosv@gmail.com>, 2013.
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: 2011-09-17 15:20+0000\n"
"PO-Revision-Date: 2011-09-18 14:34+0300\n"
"Last-Translator: Ιωάννης Ζαμπούκας <ioza1964@yahoo.gr>\n"
"Language-Team: Greek <team@gnome.gr>\n"
"POT-Creation-Date: 2013-09-15 08:32+0000\n"
"PO-Revision-Date: 2013-09-16 22:25+0300\n"
"Last-Translator: Dimitris Spingos (Δημήτρης Σπίγγος) <dmtrs32@gmail.com>\n"
"Language-Team: team@gnome.gr\n"
"Language: el\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bits\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Project-Style: gnome\n"
#: ../extensions/alternative-status-menu/extension.js:44
msgid "Notifications"
msgstr "Ειδοποιήσεις"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Online Accounts"
msgstr "Λογαριασμοί διαδικτύου"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic"
#: ../extensions/alternative-status-menu/extension.js:56
msgid "System Settings"
msgstr "Ρυθμίσεις συστήματος"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "GNOME Shell Classic"
#: ../extensions/alternative-status-menu/extension.js:63
msgid "Lock Screen"
msgstr "Κλείδωμα οθόνης"
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Διαχείριση παραθύρου και εκκίνηση εφαρμογής"
#: ../extensions/alternative-status-menu/extension.js:68
msgid "Switch User"
msgstr "Αλλαγή χρήστη"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
msgid "Attach modal dialog to the parent window"
msgstr "Προσάρτηση αποκλειστικού διαλόγου στο γονικό παράθυρο"
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Log Out..."
msgstr "Αποσύνδεση…"
#: ../extensions/alternative-status-menu/extension.js:81
msgid "Suspend"
msgstr "Αναστολή"
#: ../extensions/alternative-status-menu/extension.js:87
msgid "Hibernate"
msgstr "Αδρανοποίηση"
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Power Off..."
msgstr "Σβήσιμο…"
#: ../extensions/alternate-tab/extension.js:44
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
msgid ""
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one "
"selection \n"
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode let's you switch between the applications of your current \n"
" workspace and gives you additionally the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"Native:\n"
" This mode is the native GNOME 3 behaviour or in other words: Clicking \n"
" native switches the Alternate Tab extension off. \n"
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
msgstr ""
"Αυτή είναι η πρώτη φορά που χρησιμοποιήσατε την εναλλακτική επέκταση "
"στηλοθέτη. \n"
"Παρακαλούμε επιλέξτε την συμπεριφορά που επιθυμείτε εσείς:\n"
"\n"
"Όλα & μικρογραφίες:\n"
" Αυτή η κατάσταση εμφανίζει όλες τις εφαρμογές από όλους τους χώρους "
"εργασίας σε μια επιλογή \n"
" λίστα. Αντί να χρησιμοποιεί το εικονίδιο της εφαρμογής από κάθε "
"παράθυρο, χρησιμοποιεί μικρές \n"
" μικρογραφίες που μοιάζουν με το ίδιο το παράθυρο. \n"
"\n"
"Χώρος εργασίας & εικονίδια:\n"
" Αυτή η λειτουργία σας επιτρέπει να κάνετε εναλλαγή μεταξύ των εφαρμογών "
"του τρέχοντος \n"
" χώρου εργασίας σας και σας δίνει επιπλέον τη δυνατότητα να μεταβείτε "
"στην τελευταία χρησιμοποιημένη \n"
" εφαρμογή του προηγούμενου χώρου εργασίας σας. Αυτό είναι πάντα το "
"τελευταίο σύμβολο στη \n"
" λίστα και είναι απομονωμένο από ένα διαχωριστικό/κάθετη γραμμή, εάν "
"υπάρχει. \n"
" Κάθε παράθυρο αντιπροσωπεύεται από εικονίδιο της εφαρμογής της. \n"
"\n"
"Μητρική:\n"
" Αυτή η λειτουργία είναι η μητρική συμπεριφορά του GNOME 3 ή με άλλα "
"λόγια: Αν κάνετε κλικ \n"
" στο μητρική θέτει εκτός λειτουργίας την εναλλακτική επέκταση "
"στηλοθέτη. \n"
"Αυτό το κλειδί επικαλύπτει το κλειδί στο org.gnome.mutter όταν τρέχει το "
"GNOME Shell."
#: ../extensions/alternate-tab/extension.js:269
msgid "Alt Tab Behaviour"
msgstr "Συμπεριφορά Alt Tab"
#: ../extensions/alternate-tab/extension.js:285
msgid "All & Thumbnails"
msgstr "Όλα & μικρογραφίες"
#: ../extensions/alternate-tab/extension.js:292
msgid "Workspace & Icons"
msgstr "Χώρος εργασίας & εικονίδια"
#: ../extensions/alternate-tab/extension.js:299
msgid "Native"
msgstr "Εγγενή"
#: ../extensions/alternate-tab/extension.js:306
msgid "Cancel"
msgstr "Ακύρωση"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "Ask the user for a default behaviour if true."
msgstr "Ρωτήστε τον χρήστη για μια προεπιλεγμένη συμπεριφορα εαν αληθεύει."
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "Indicates if Alternate Tab is newly installed"
msgstr "Υποδεικνύει αν ο εναλλακτικός στηλοθέτης είναι νεοεισαχθείς"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:3
msgid ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Enable edge tiling when dropping windows on screen edges"
msgstr ""
"Ρυθμίζει την συμπεριφορά του Alt Tab. Πιθανές τιμές είναι οι εξής: μητρική, "
"όλες_μικρογραφίες και εικονίδια_χώρου εργασίας."
"Ενεργοποίηση προσκόλλησης στην άκρη, όταν αφήνονται παράθυρα στα άκρα της "
"οθόνης"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
msgid "The alt tab behaviour."
msgstr "Η συμπεριφορά alt tab."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid "Workspaces only on primary monitor"
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:37
msgid "Present windows as"
msgstr "Παρουσίαση παραθύρων ως"
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "Εμφάνιση μόνο των παραθύρων του τρέχοντος χώρου εργασίας"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "Επισκόπηση δραστηριοτήτων"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Αγαπημένα"
#: ../extensions/apps-menu/extension.js:278
msgid "Applications"
msgstr "Εφαρμογές"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
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.in.h:2
msgid "Application and workspace list"
msgstr "Λίστα εφαρμογής και χώρου εργασίας"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Εφαρμογή"
#: ../extensions/dock/extension.js:486
msgid "Drag here to add favorites"
msgstr "Σύρετε εδώ για να προσθέσετε αγαπημένα"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Χώρος εργασίας"
#: ../extensions/dock/extension.js:820
msgid "New Window"
msgstr "Νέο παράθυρο"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Προσθήκη κανόνα"
#: ../extensions/dock/extension.js:822
msgid "Quit Application"
msgstr "Εγκατάλειψη εφαρμογής"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Δημιουργία νέου κανόνα αντιστοίχισης"
#: ../extensions/dock/extension.js:827
msgid "Remove from Favorites"
msgstr "Απομάκρυνση από τα αγαπημένα"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Προσθήκη"
#: ../extensions/dock/extension.js:828
msgid "Add to Favorites"
msgstr "Προσθήκη στα αγαπημένα"
#: ../extensions/drive-menu/extension.js:73
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "Απέτυχε η εξαγωγή του δίσκου '%s':"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Autohide duration"
msgstr "Διάρκεια αυτόματης απόκρυψης"
#: ../extensions/drive-menu/extension.js:90
msgid "Removable devices"
msgstr "Αφαιρούμενες συσκευές"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Autohide effect"
msgstr "Εφέ αυτόματης απόκρυψης"
#: ../extensions/drive-menu/extension.js:117
msgid "Open File"
msgstr "Άνοιγμα αρχείου"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Enable/disable autohide"
msgstr "Ενεργοποίηση/απενεργοποίηση αυτόματης απόκρυψης"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Icon size"
msgstr "Μέγεθος εικονιδίου"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Position of the dock"
msgstr "Θέση υποδοχέα"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Sets icon size of the dock."
msgstr "Ρυθμίζει το μέγεθος εικόνας του υποδοχέα."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize' or 'rescale'"
msgstr ""
"Ρυθμίζειτην επίδραση κρυψίματος του υποδοχέα. Επιτρεπόμενες τιμές είναι "
"resize («αλλαγή μεγέθους») ή rescale («αλλαγή κλίμακας»)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Ρυθμίζει τη θέση του υποδοχέα στην οθόνη. Επιτρεπόμενες τιμές είναι right («δεξιά») "
"ή right («αριστερά»)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Ρυθμίζει την χρονική διάρκεια του εφέ αυτόματης απόκρυψης."
#: ../extensions/example/extension.js:11
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Καλημέρα, Κόσμε!"
msgstr "Γεια σου, κόσμε!"
#: ../extensions/gajim/extension.js:227
#, c-format
msgid "%s is away."
msgstr "%s είναι εκτός."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Εναλλακτικό κείμενο χαιρετισμού."
#: ../extensions/gajim/extension.js:230
#, c-format
msgid "%s is offline."
msgstr "%s είναι εκτός σύνδεσης."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
msgid ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
msgstr ""
"Αν δεν είναι κενό, περιέχει το κείμενο που θα εμφανιστεί όταν γίνεται κλικ "
"στον πίνακα εφαρμογών."
#: ../extensions/gajim/extension.js:233
#, c-format
msgid "%s is online."
msgstr "%s είναι σε σύνδεση."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"Το παράδειγμα στοχεύει να δείξει πώς δημιουργούμε επεκτάσεις που "
"συμπεριφέρονται σωστά για το Shell και ως τέτοιο έχει μικρή λειτουργικότητα "
"από μόνο του.\n"
"Παρ' όλα αυτά είναι δυνατό να προσαρμόσετε το μήνυμα χαιρετισμού."
#: ../extensions/gajim/extension.js:236
#, c-format
msgid "%s is busy."
msgstr "%s είναι απασχολημένος/η."
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "Μήνυμα:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
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 ""
"Αν αυτό αληθεύει, τοποθετήστε τους τίτλους παράθυρου στην κορυφή της "
"αντίστοιχης μικρογραφίας, παρακάμπτοντας το προεπιλεγμένο του κελύφους πού "
"το τοποθετεί στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί "
"επανεκκίνηση του κέλυφους για να έχει κάποιο αποτέλεσμα."
msgid "Use more screen for windows"
msgstr "Χρησιμοποιήστε περισσότερη οθόνη για τα παράθυρα"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr "Τοποθετήστε τίτλους παράθυρου στην κορυφή"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid ""
"The algorithm used to layout thumbnails in the overview. 'grid' to use the "
"default grid based algorithm, 'natural' to use another one that reflects "
"more the position and size of the actual window"
msgstr ""
"Ο αλγόριθμος που χρησιμοποιείται για την διάταξη μικρογραφιών στην "
"επισκόπηση. grid («πλέγμα») να χρησιμοποιήσει τον αλγόριθμο που βασίζετε στο "
"προεπιλεγμένο πλέγμα, natural («φυσικό») να χρησιμοποιήσει ένα άλλο που αντανακλά "
"περισσότερο τη θέση και το μέγεθος της πραγματικού παράθυρου"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
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. "
@@ -284,40 +187,433 @@ msgstr ""
"εδραιώνοντας τους περαιτέρω για να μειώσετε το πλαίσιο οριοθέτησης. Αυτή η "
"ρύθμιση ισχύει μόνο με την στρατηγική φυσικής τοποθέτησης."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:5
msgid "Use more screen for windows"
msgstr "Χρησιμοποιήστε περισσότερη οθόνη για τα παράθυρα"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Τοποθέτηση τίτλων παράθυρου στην κορυφή"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:6
msgid "Window placement strategy"
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."
msgstr ""
"Αν αληθεύει, τοποθέτηση τίτλων παραθύρου πάνω από την αντίστοιχη "
"μικρογραφία, παρακάμπτοντας την προεπιλογή του κελύφους που τους τοποθετεί "
"στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί επανεκκίνηση του "
"κελύφους για να υπάρξει κάποιο αποτέλεσμα."
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
msgid "Places"
msgstr "Τοποθεσίες"
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "Αποτυχία εκκίνησης \"%s\""
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "Υπολογιστής"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "Προσωπικός φάκελος"
#: ../extensions/places-menu/placeDisplay.js:286
msgid "Browse Network"
msgstr "Περιήγηση δικτύου"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "Μνήμη"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Το όνομα του θέματος, για να φορτωθεί από το αρχείο ~ / .themes / name / "
"gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Όνομα θέματος"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Κανονικό"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell"
#: ../extensions/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Αριστερά"
#: ../extensions/window-list/extension.js:92
msgid "Close"
msgstr "Κλείσιμο"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Δεξιά"
#: ../extensions/window-list/extension.js:102
msgid "Unminimize"
msgstr "Αποελαχιστοποίηση"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Αναποδογυρισμένο"
#: ../extensions/window-list/extension.js:103
msgid "Minimize"
msgstr "Ελαχιστοποίηση"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Διαμορφώστε τις ρυθμίσεις της οθόνης…"
#: ../extensions/window-list/extension.js:109
msgid "Unmaximize"
msgstr "Απομεγιστοποίηση"
#: ../extensions/window-list/extension.js:110
msgid "Maximize"
msgstr "Μεγιστοποίηση"
#: ../extensions/window-list/extension.js:270
msgid "Minimize all"
msgstr "Ελαχιστοποίηση όλων"
#: ../extensions/window-list/extension.js:278
msgid "Unminimize all"
msgstr "Αποελαχιστοποίηση όλων"
#: ../extensions/window-list/extension.js:286
msgid "Maximize all"
msgstr "Μεγιστοποίηση όλων"
#: ../extensions/window-list/extension.js:295
msgid "Unmaximize all"
msgstr "Απομεγιστοποίηση όλων"
#: ../extensions/window-list/extension.js:304
msgid "Close all"
msgstr "Κλείσιμο όλων"
#: ../extensions/window-list/extension.js:591
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Δείκτης χώρου εργασίας"
#: ../extensions/window-list/extension.js:743
msgid "Window List"
msgstr "Λίστα παραθύρου"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
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 ""
"Αποφασίζει πότε θα ομαδοποιούνται παράθυρα από την ίδια εφαρμογή στη λίστα "
"παραθύρου. Δυνατές τιμές είναι \"never\" (ποτέ), \"auto\" (αυτόματα) και "
"\"always\" (πάντα)."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Ομαδοποίηση παραθύρου"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Να μη γίνεται ποτέ ομαδοποίηση παραθύρων"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "Ομαδοποίηση παραθύρων όταν ο χώρος είναι περιορισμένος"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Ονόματα χώρων εργασίας:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Όνομα"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Χώρος εργασίας %d"
#~ msgid "Suspend"
#~ msgstr "Αναστολή"
#~ msgid "Hibernate"
#~ msgstr "Αδρανοποίηση"
#~ msgid "Power Off"
#~ msgstr "Τερματισμός"
#~ msgid "Enable suspending"
#~ msgstr "Ενεργοποίηση αναστολής"
#~ msgid "Control the visibility of the Suspend menu item"
#~ msgstr "Ελέγχει την ορατότητα του αντικειμένου Αναστολη"
#~ msgid "Enable hibernating"
#~ msgstr "Ενεργοποίηση αδρανοποίησης"
#~ msgid "Control the visibility of the Hibernate menu item"
#~ msgstr "Ελέγχει την ορατότητα του αντικειμένου Αδρανοποίηση"
#~ msgid "Normal"
#~ msgstr "Κανονικό"
#~ msgid "Left"
#~ msgstr "Αριστερά"
#~ msgid "Right"
#~ msgstr "Δεξιά"
#~ msgid "Upside-down"
#~ msgstr "Αναποδογυρισμένο"
#~ msgid "Display"
#~ msgstr "Οθόνη"
#~ msgid "Display Settings"
#~ msgstr "Ρυθμίσεις οθόνης"
#~ msgid "The application icon mode."
#~ msgstr "Η λειτουργία εικονιδίου της εφαρμογής"
#~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
#~ "only' (shows only the application icon) or 'both'."
#~ msgstr ""
#~ "Διαμορφώνει πως τα παράθυρα θα εμφανίζονται στν εναλλαγή των παραθύρων. "
#~ "Έγκυρες ρυθμίσεις είναι 'thumbnail-only' (εμφανίζει μια μικρογραφία του "
#~ "παραθύρου), 'app-icon-only' (εμφανίζει μόνο το εικονίδιο της εφαρμογής) ή "
#~ "'both'."
#~ msgid "Drag here to add favorites"
#~ msgstr "Σύρετε εδώ για να προσθέσετε αγαπημένα"
#~ msgid "New Window"
#~ msgstr "Νέο παράθυρο"
#~ msgid "Quit Application"
#~ msgstr "Εγκατάλειψη εφαρμογής"
#~ msgid "Remove from Favorites"
#~ msgstr "Απομάκρυνση από τα αγαπημένα"
#~ msgid "Position of the dock"
#~ msgstr "Θέση υποδοχέα"
#~ msgid ""
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
#~ msgstr ""
#~ "Ρυθμίζει τη θέση του υποδοχέα στην οθόνη. Επιτρεπόμενες τιμές είναι right "
#~ "(«δεξιά») ή right («αριστερά»)"
#~ msgid "Icon size"
#~ msgstr "Μέγεθος εικονιδίου"
#~ msgid "Sets icon size of the dock."
#~ msgstr "Ρυθμίζει το μέγεθος εικόνας του υποδοχέα."
#~ msgid "Enable/disable autohide"
#~ msgstr "Ενεργοποίηση/απενεργοποίηση αυτόματης απόκρυψης"
#~ msgid "Autohide effect"
#~ msgstr "Εφέ αυτόματης απόκρυψης"
#~ msgid ""
#~ "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' "
#~ "and 'move'"
#~ msgstr ""
#~ "Ρυθμίζει το εφέ κρυψίματος του υποδοχέα. Επιτρεπόμενες τιμές είναι "
#~ "'resize', 'rescale' και 'move'"
#~ msgid "Autohide duration"
#~ msgstr "Διάρκεια αυτόματης απόκρυψης"
#~ msgid "Sets the time duration of the autohide effect."
#~ msgstr "Ρυθμίζει την χρονική διάρκεια του εφέ αυτόματης απόκρυψης."
#~ msgid "Monitor"
#~ msgstr "Οθόνη"
#~ msgid ""
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
#~ "monitor."
#~ msgstr ""
#~ "Ορίζει την οθόνη για την εμφάνιση του ταμπλό. Η προεπιλεγμένη τιμή (-1) "
#~ "είναι η κύρια οθόνη."
#~ msgid "%s is away."
#~ msgstr "%s είναι εκτός."
#~ msgid "%s is offline."
#~ msgstr "%s είναι εκτός σύνδεσης."
#~ msgid "%s is online."
#~ msgstr "%s είναι σε σύνδεση."
#~ msgid "%s is busy."
#~ msgstr "%s είναι απασχολημένος/η."
#~ msgid "Devices"
#~ msgstr "Συσκευές"
#~ msgid "Bookmarks"
#~ msgstr "Σελιδοδείκτες"
#~ msgid "Network"
#~ msgstr "Δίκτυο"
#~ msgid "File System"
#~ msgstr "Σύστημα αρχείων"
#~ msgid "The alt tab behaviour."
#~ msgstr "Η συμπεριφορά alt tab."
#~| msgid ""
#~| "Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails "
#~| "and workspace_icons."
#~ msgid ""
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
#~ "workspace_icons. See the configuration dialogs for details."
#~ msgstr ""
#~ "Ρυθμίζει την συμπεριφορά του Alt Tab. Πιθανές τιμές είναι οι εξής: "
#~ "όλες_μικρογραφίες (all_thumbnails) και εικονίδια_χώρου εργασίας "
#~ "(workspace_icons). Δείτε τις ρυθμίσεις διαλόγου για λεπτομέρειες."
#~ msgid ""
#~ "This mode presents all applications from all workspaces in one selection "
#~ "list. Instead of using the application icon of every window, it uses "
#~ "small thumbnails resembling the window itself."
#~ msgstr ""
#~ "Αυτή η κατάσταση εμφανίζει όλες τις εφαρμογές απ' όλους τους χώρους "
#~ "εργασίας σε μια λίστα επιλογής. Αντί να χρησιμοποιήσει το εικονίδιο της "
#~ "εφαρμογής για κάθε παράθυρο, χρησιμοποιεί μικρογραφίες που μοιάζουν με το "
#~ "ίδιο το παράθυρο."
#~ msgid "Workspace & Icons"
#~ msgstr "Χώρος εργασίας & εικονίδια"
#~ msgid ""
#~ "This mode let's you switch between the applications of your current "
#~ "workspace and gives you additionally the option to switch to the last "
#~ "used application of your previous workspace. This is always the last "
#~ "symbol in the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ "Every window is represented by its application icon."
#~ msgstr ""
#~ "Αυτή η κατάσταση σας επιτρέπει την εναλλαγή μεταξύ των εφαρμογών του "
#~ "τωρινού χώρου εργασίας και σας δίνει επιπλέον την επιλογή να μεταβείτε "
#~ "στην τελευταία χρησιμοποιημένη εφαρμογή του προηγούμενου χώρου εργασίας "
#~ "σας. Αυτό είναι πάντα το τελευταίο σύμβολο στη λιστα και διαχωρίζεται από "
#~ "μια κάθετη γραμμή αν είναι διαθέσιμη. \n"
#~ "Κάθε παράθυρο αντιπροσωπεύεται από το εικονίδιο της εφαρμογής του."
#~ msgid "Move current selection to front before closing the popup"
#~ msgstr ""
#~ "Μετακινήστε τη τωρινή επιλογή προς τα εμπρός πριν το κλείσιμο του "
#~ "αναδυόμενου"
#, fuzzy
#~ msgid ""
#~ "The Alternate Tab can be used in different modes, that affect the way "
#~ "windows are chosen and presented."
#~ msgstr ""
#~ "Το Alternate Tab μπορεί να χρησιμοποιηθεί σε διαφορετικές καταστάσεις, οι "
#~ "οποίες επηρεάζουν τον τρόπο που τα παράθυρα επιλέγονται και "
#~ "παρουσιάζονται."
#~ msgid "Configure display settings..."
#~ msgstr "Διαμορφώστε τις ρυθμίσεις της οθόνης…"
#~ msgid "Notifications"
#~ msgstr "Ειδοποιήσεις"
#~ msgid "Online Accounts"
#~ msgstr "Λογαριασμοί διαδικτύου"
#~ msgid "Lock Screen"
#~ msgstr "Κλείδωμα οθόνης"
#~ msgid "Switch User"
#~ msgstr "Αλλαγή χρήστη"
#~ msgid "Log Out..."
#~ msgstr "Αποσύνδεση…"
#~ msgid ""
#~ "This is the first time you use the Alternate Tab extension. \n"
#~ "Please choose your preferred behaviour:\n"
#~ "\n"
#~ "All & Thumbnails:\n"
#~ " This mode presents all applications from all workspaces in one "
#~ "selection \n"
#~ " list. Instead of using the application icon of every window, it uses "
#~ "small \n"
#~ " thumbnails resembling the window itself. \n"
#~ "\n"
#~ "Workspace & Icons:\n"
#~ " This mode let's you switch between the applications of your current \n"
#~ " workspace and gives you additionally the option to switch to the last "
#~ "used \n"
#~ " application of your previous workspace. This is always the last "
#~ "symbol in \n"
#~ " the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ " Every window is represented by its application icon. \n"
#~ "\n"
#~ "Native:\n"
#~ " This mode is the native GNOME 3 behaviour or in other words: "
#~ "Clicking \n"
#~ " native switches the Alternate Tab extension off. \n"
#~ msgstr ""
#~ "Αυτή είναι η πρώτη φορά που χρησιμοποιήσατε την εναλλακτική επέκταση "
#~ "στηλοθέτη. \n"
#~ "Παρακαλούμε επιλέξτε την συμπεριφορά που επιθυμείτε εσείς:\n"
#~ "\n"
#~ "Όλα & μικρογραφίες:\n"
#~ " Αυτή η κατάσταση εμφανίζει όλες τις εφαρμογές από όλους τους χώρους "
#~ "εργασίας σε μια επιλογή \n"
#~ " λίστα. Αντί να χρησιμοποιεί το εικονίδιο της εφαρμογής από κάθε "
#~ "παράθυρο, χρησιμοποιεί μικρές \n"
#~ " μικρογραφίες που μοιάζουν με το ίδιο το παράθυρο. \n"
#~ "\n"
#~ "Χώρος εργασίας & εικονίδια:\n"
#~ " Αυτή η λειτουργία σας επιτρέπει να κάνετε εναλλαγή μεταξύ των "
#~ "εφαρμογών του τρέχοντος \n"
#~ " χώρου εργασίας σας και σας δίνει επιπλέον τη δυνατότητα να μεταβείτε "
#~ "στην τελευταία χρησιμοποιημένη \n"
#~ " εφαρμογή του προηγούμενου χώρου εργασίας σας. Αυτό είναι πάντα το "
#~ "τελευταίο σύμβολο στη \n"
#~ " λίστα και είναι απομονωμένο από ένα διαχωριστικό/κάθετη γραμμή, εάν "
#~ "υπάρχει. \n"
#~ " Κάθε παράθυρο αντιπροσωπεύεται από εικονίδιο της εφαρμογής της. \n"
#~ "\n"
#~ "Μητρική:\n"
#~ " Αυτή η λειτουργία είναι η μητρική συμπεριφορά του GNOME 3 ή με άλλα "
#~ "λόγια: Αν κάνετε κλικ \n"
#~ " στο μητρική θέτει εκτός λειτουργίας την εναλλακτική επέκταση "
#~ "στηλοθέτη. \n"
#~ msgid "Alt Tab Behaviour"
#~ msgstr "Συμπεριφορά Alt Tab"
#~ msgid "Cancel"
#~ msgstr "Ακύρωση"
#~ msgid "Ask the user for a default behaviour if true."
#~ msgstr "Ρωτήστε τον χρήστη για μια προεπιλεγμένη συμπεριφορα εαν αληθεύει."
#~ msgid "Indicates if Alternate Tab is newly installed"
#~ msgstr "Υποδεικνύει αν ο εναλλακτικός στηλοθέτης είναι νεοεισαχθείς"
#~ msgid ""
#~ "The algorithm used to layout thumbnails in the overview. 'grid' to use "
#~ "the default grid based algorithm, 'natural' to use another one that "
#~ "reflects more the position and size of the actual window"
#~ msgstr ""
#~ "Ο αλγόριθμος που χρησιμοποιείται για την διάταξη μικρογραφιών στην "
#~ "επισκόπηση. grid («πλέγμα») να χρησιμοποιήσει τον αλγόριθμο που βασίζετε "
#~ "στο προεπιλεγμένο πλέγμα, natural («φυσικό») να χρησιμοποιήσει ένα άλλο "
#~ "που αντανακλά περισσότερο τη θέση και το μέγεθος της πραγματικού παράθυρου"
#~ msgid "Window placement strategy"
#~ msgstr "Στρατηγική τοποθέτησης παραθύρου"

View File

@@ -2,308 +2,475 @@
# Copyright (C) 2011 gnome-shell-extensions'S COPYRIGHT HOLDER.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Bruce Cowan <bruce@bcowan.me.uk>, 2011.
# Chris Leonard <cjlhomeaddress@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-09-08 16:00+0100\n"
"PO-Revision-Date: 2011-09-08 16:04+0100\n"
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\n"
"Language-Team: British English <en@li.org>\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2012-09-20 13:47+0000\n"
"PO-Revision-Date: 2012-09-21 21:00-0400\n"
"Last-Translator: Chris Leonard <cjlhomeaddress@gmail.com>\n"
"Language-Team: Sugar Labs\n"
"Language: en_GB\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: Virtaal 0.7.1-beta1\n"
"X-Generator: Virtaal 0.7.1\n"
"X-Project-Style: gnome\n"
#: ../extensions/alternative-status-menu/extension.js:44
msgid "Do Not Disturb"
msgstr "Do Not Disturb"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "The application icon mode."
msgstr "The application icon mode."
#: ../extensions/alternative-status-menu/extension.js:52
msgid "Online Accounts"
msgstr "Online Accounts"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
msgstr ""
"Configures how the windows are shown in the switcher. Valid possibilities "
"are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
"only' (shows only the application icon) or 'both'."
#: ../extensions/alternative-status-menu/extension.js:56
msgid "System Settings"
msgstr "System Settings"
#: ../extensions/alternate-tab/prefs.js:26
msgid "Thumbnail only"
msgstr "Thumbnail only"
#: ../extensions/alternative-status-menu/extension.js:63
msgid "Lock Screen"
msgstr "Lock Screen"
#: ../extensions/alternate-tab/prefs.js:27
msgid "Application icon only"
msgstr "Application icon only"
#: ../extensions/alternate-tab/prefs.js:28
msgid "Thumbnail and application icon"
msgstr "Thumbnail and application icon"
#: ../extensions/alternate-tab/prefs.js:43
msgid "Present windows as"
msgstr "Present windows as"
#: ../extensions/alternate-tab/prefs.js:68
msgid "Show only windows in the current workspace"
msgstr "Show only windows in the current workspace"
#. add the new entries
#: ../extensions/alternative-status-menu/extension.js:68
msgid "Switch User"
msgstr "Switch User"
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Log Out..."
msgstr "Log Out…"
#: ../extensions/alternative-status-menu/extension.js:81
msgid "Suspend"
msgstr "Suspend"
#: ../extensions/alternative-status-menu/extension.js:87
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate"
msgstr "Hibernate"
#: ../extensions/alternative-status-menu/extension.js:93
msgid "Power Off..."
msgstr "Power Off"
#: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off"
msgstr "Power Off"
#: ../extensions/alternate-tab/extension.js:44
msgid ""
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one "
"selection \n"
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode let's you switch between the applications of your current \n"
" workspace and gives you additionally the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"Native:\n"
" This mode is the native GNOME 3 behaviour or in other words: Clicking \n"
" native switches the Alternate Tab extension off. \n"
msgstr ""
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one selection "
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode lets you switch between the applications of your current \n"
" workspace and additionally gives you the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"Native:\n"
" This mode is the native GNOME 3 behaviour or in other words: Clicking \n"
" native switches the Alternate Tab extension off. \n"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
msgid "Enable suspending"
msgstr "Enable suspending"
#: ../extensions/alternate-tab/extension.js:269
msgid "Alt Tab Behaviour"
msgstr "Alt Tab Behaviour"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:2
msgid "Control the visibility of the Suspend menu item"
msgstr "Control the visibility of the Suspend menu item"
#: ../extensions/alternate-tab/extension.js:285
msgid "All & Thumbnails"
msgstr "All & Thumbnails"
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
msgid "Enable hibernating"
msgstr "Enable hibernating"
#: ../extensions/alternate-tab/extension.js:292
msgid "Workspace & Icons"
msgstr "Workspace & Icons"
#: ../extensions/alternate-tab/extension.js:299
msgid "Native"
msgstr "Native"
#: ../extensions/alternate-tab/extension.js:306
msgid "Cancel"
msgstr "Cancel"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "Ask the user for a default behaviour if true."
msgstr "Ask the user for a default behaviour if true."
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "Indicates if Alternate Tab is newly installed"
msgstr "Indicates if Alternate Tab is newly installed"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:3
msgid ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
msgstr ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
msgid "The alt tab behaviour."
msgstr "The alt tab behaviour."
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:4
msgid "Control the visibility of the Hibernate menu item"
msgstr "Control the visibility of the Hibernate menu item"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Application and workspace list"
#: ../extensions/dock/extension.js:486
#: ../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 ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Application"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Workspace"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Add rule"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Create new matching rule"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Add"
#: ../extensions/dock/extension.js:600
msgid "Drag here to add favorites"
msgstr "Drag here to add favourites"
#: ../extensions/dock/extension.js:820
#: ../extensions/dock/extension.js:926
msgid "New Window"
msgstr "New Window"
#: ../extensions/dock/extension.js:822
#: ../extensions/dock/extension.js:928
msgid "Quit Application"
msgstr "Quit Application"
#: ../extensions/dock/extension.js:827
#: ../extensions/dock/extension.js:933
msgid "Remove from Favorites"
msgstr "Remove from Favourites"
#: ../extensions/dock/extension.js:828
#: ../extensions/dock/extension.js:934
msgid "Add to Favorites"
msgstr "Add to Favourites"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Autohide duration"
msgstr "Autohide duration"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Autohide effect"
msgstr "Autohide effect"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Enable/disable autohide"
msgstr "Enable/disable autohide"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Icon size"
msgstr "Icon size"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Position of the dock"
msgstr "Position of the dock"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Icon size"
msgstr "Icon size"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Sets icon size of the dock."
msgstr "Sets icon size of the dock."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Enable/disable autohide"
msgstr "Enable/disable autohide"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Autohide effect"
msgstr "Autohide effect"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize' or 'rescale'"
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Sets the effect of the hide dock. Allowed values are 'resize' or 'rescale'"
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgid "Autohide duration"
msgstr "Autohide duration"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Sets the time duration of the autohide effect."
#: ../extensions/example/extension.js:11
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
msgid "Monitor"
msgstr "Monitor"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:11
msgid ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
msgstr ""
"Sets monitor to display dock in. The default value (-1) is the primary "
"monitor."
#: ../extensions/drive-menu/extension.js:56
msgid "Removable devices"
msgstr "Removable devices"
#: ../extensions/drive-menu/extension.js:67
msgid "Open file manager"
msgstr "Open file manager"
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "Hello, world!"
#: ../extensions/gajim/extension.js:227
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Alternative greeting text."
#: ../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 ""
"If not empty, it contains the text that will be shown when clicking on the "
"panel."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"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:36
msgid "Message:"
msgstr "Message:"
#: ../extensions/gajim/extension.js:226
#, c-format
msgid "%s is away."
msgstr "%s is away."
#: ../extensions/gajim/extension.js:230
#: ../extensions/gajim/extension.js:229
#, c-format
msgid "%s is offline."
msgstr "%s is offline."
#: ../extensions/gajim/extension.js:233
#: ../extensions/gajim/extension.js:232
#, c-format
msgid "%s is online."
msgstr "%s is online."
#: ../extensions/gajim/extension.js:236
#: ../extensions/gajim/extension.js:235
#, c-format
msgid "%s is busy."
msgstr "%s is busy."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
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 ""
"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.in.h:2
msgid "Place window captions on top"
msgstr "Place window captions on top"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid ""
"The algorithm used to layout thumbnails in the overview. 'grid' to use the "
"default grid based algorithm, 'natural' to use another one that reflects "
"more the position and size of the actual window"
msgstr ""
"The algorithm used to layout thumbnails in the overview. 'grid' to use the "
"default grid based algorithm, 'natural' to use another one that reflects "
"more the position and size of the actual window"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
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 ""
"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.in.h:5
msgid "Use more screen for windows"
msgstr "Use more screen for windows"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:6
msgid "Window placement strategy"
msgstr "Window placement strategy"
#: ../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."
msgstr ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Place window captions on top"
#: ../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."
msgstr ""
"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/places-menu/extension.js:46
msgid "Places"
msgstr "Places"
#: ../extensions/places-menu/extension.js:47
msgid "Devices"
msgstr "Devices"
#: ../extensions/places-menu/extension.js:48
msgid "Bookmarks"
msgstr "Bookmarks"
#: ../extensions/places-menu/extension.js:49
msgid "Network"
msgstr "Network"
#: ../extensions/places-menu/placeDisplay.js:48
#, c-format
msgid "Failed to launch \"%s\""
msgstr "Failed to launch \"%s\""
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Home"
msgstr "Home"
#: ../extensions/places-menu/placeDisplay.js:184
msgid "File System"
msgstr "File System"
#: ../extensions/places-menu/placeDisplay.js:188
msgid "Browse network"
msgstr "Browse network"
#: ../extensions/systemMonitor/extension.js:213
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:266
msgid "Memory"
msgstr "Memory"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "Theme name"
msgstr "Theme name"
#: ../extensions/xrandr-indicator/extension.js:26
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Workspace Indicator"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Workspace names:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Name"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Workspace %d"
#: ../extensions/xrandr-indicator/extension.js:30
msgid "Normal"
msgstr "Normal"
#: ../extensions/xrandr-indicator/extension.js:27
#: ../extensions/xrandr-indicator/extension.js:31
msgid "Left"
msgstr "Left"
#: ../extensions/xrandr-indicator/extension.js:28
#: ../extensions/xrandr-indicator/extension.js:32
msgid "Right"
msgstr "Right"
#: ../extensions/xrandr-indicator/extension.js:29
#: ../extensions/xrandr-indicator/extension.js:33
msgid "Upside-down"
msgstr "Upside-down"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configure display settings…"
#: ../extensions/xrandr-indicator/extension.js:50
msgid "Display"
msgstr "Display"
#: ../extensions/xrandr-indicator/extension.js:80
msgid "Display Settings"
msgstr "Display Settings"
#~ msgid "Do Not Disturb"
#~ msgstr "Do Not Disturb"
#~ msgid "Online Accounts"
#~ msgstr "Online Accounts"
#~ msgid "Lock Screen"
#~ msgstr "Lock Screen"
#~ msgid "Switch User"
#~ msgstr "Switch User"
#~ msgid "Log Out..."
#~ msgstr "Log Out…"
#~ msgid ""
#~ "This is the first time you use the Alternate Tab extension. \n"
#~ "Please choose your preferred behaviour:\n"
#~ "\n"
#~ "All & Thumbnails:\n"
#~ " This mode presents all applications from all workspaces in one "
#~ "selection \n"
#~ " list. Instead of using the application icon of every window, it uses "
#~ "small \n"
#~ " thumbnails resembling the window itself. \n"
#~ "\n"
#~ "Workspace & Icons:\n"
#~ " This mode let's you switch between the applications of your current \n"
#~ " workspace and gives you additionally the option to switch to the last "
#~ "used \n"
#~ " application of your previous workspace. This is always the last "
#~ "symbol in \n"
#~ " the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ " Every window is represented by its application icon. \n"
#~ "\n"
#~ "Native:\n"
#~ " This mode is the native GNOME 3 behaviour or in other words: "
#~ "Clicking \n"
#~ " native switches the Alternate Tab extension off. \n"
#~ msgstr ""
#~ "This is the first time you use the Alternate Tab extension. \n"
#~ "Please choose your preferred behaviour:\n"
#~ "\n"
#~ "All & Thumbnails:\n"
#~ " This mode presents all applications from all workspaces in one "
#~ "selection list. Instead of using the application icon of every "
#~ "window, it uses small \n"
#~ " thumbnails resembling the window itself. \n"
#~ "\n"
#~ "Workspace & Icons:\n"
#~ " This mode lets you switch between the applications of your current \n"
#~ " workspace and additionally gives you the option to switch to the last "
#~ "used \n"
#~ " application of your previous workspace. This is always the last "
#~ "symbol in \n"
#~ " the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ " Every window is represented by its application icon. \n"
#~ "\n"
#~ "Native:\n"
#~ " This mode is the native GNOME 3 behaviour or in other words: "
#~ "Clicking \n"
#~ " native switches the Alternate Tab extension off. \n"
#~ msgid "Alt Tab Behaviour"
#~ msgstr "Alt Tab Behaviour"
#~ msgid "Native"
#~ msgstr "Native"
#~ msgid "Cancel"
#~ msgstr "Cancel"
#~ msgid "Ask the user for a default behaviour if true."
#~ msgstr "Ask the user for a default behaviour if true."
#~ msgid "Indicates if Alternate Tab is newly installed"
#~ msgstr "Indicates if Alternate Tab is newly installed"
#~ msgid ""
#~ "Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails "
#~ "and workspace_icons."
#~ msgstr ""
#~ "Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails "
#~ "and workspace_icons."
#~ msgid "The alt tab behaviour."
#~ msgstr "The alt tab behaviour."
#~ msgid ""
#~ "The algorithm used to layout thumbnails in the overview. 'grid' to use "
#~ "the default grid based algorithm, 'natural' to use another one that "
#~ "reflects more the position and size of the actual window"
#~ msgstr ""
#~ "The algorithm used to layout thumbnails in the overview. 'grid' to use "
#~ "the default grid based algorithm, 'natural' to use another one that "
#~ "reflects more the position and size of the actual window"
#~ msgid "Window placement strategy"
#~ msgstr "Window placement strategy"
#~ msgid "Configure display settings..."
#~ msgstr "Configure display settings…"

758
po/es.po
View File

@@ -1,230 +1,199 @@
# Spanish translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
# Spanish translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
#
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011, 2012.
, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"POT-Creation-Date: 2011-12-27 14:30+0000\n"
"PO-Revision-Date: 2011-12-27 16:58-0300\n"
"Last-Translator: Nicolás Satragno <nsatragno@gmail.com>\n"
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
"shell&keywords=I18N+L10N&component=extensions\n"
"POT-Creation-Date: 2013-09-23 10:19+0000\n"
"PO-Revision-Date: 2013-09-23 14:31+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Español <gnome-es-list@gnome.org>\n"
"Language: \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.5\n"
#. add the new entries
#: ../extensions/alternative-status-menu/extension.js:68
msgid "Suspend"
msgstr "Suspender"
#: ../data/gnome-classic.desktop.in.h:1
#: ../data/gnome-classic.session.desktop.in.in.h:1
msgid "GNOME Classic"
msgstr "GNOME clásico"
#: ../extensions/alternative-status-menu/extension.js:73
msgid "Hibernate"
msgstr "Hibernar"
#: ../data/gnome-classic.desktop.in.h:2
msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión inicia GNOME clásico"
#: ../extensions/alternative-status-menu/extension.js:78
msgid "Power Off..."
msgstr "Apagar…"
#: ../data/gnome-shell-classic.desktop.in.in.h:1
msgid "GNOME Shell Classic"
msgstr "GNOME Shell clásico"
#: ../extensions/alternate-tab/extension.js:54
#: ../data/gnome-shell-classic.desktop.in.in.h:2
msgid "Window management and application launching"
msgstr "Gestión de ventanas e inicio de aplicaciones"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
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.in.h:2
"This is the first time you use the Alternate Tab extension. \n"
"Please choose your preferred behaviour:\n"
"\n"
"All & Thumbnails:\n"
" This mode presents all applications from all workspaces in one "
"selection \n"
" list. Instead of using the application icon of every window, it uses "
"small \n"
" thumbnails resembling the window itself. \n"
"\n"
"Workspace & Icons:\n"
" This mode let's you switch between the applications of your current \n"
" workspace and gives you additionally the option to switch to the last "
"used \n"
" application of your previous workspace. This is always the last symbol "
"in \n"
" the list and is segregated by a separator/vertical line if available. \n"
" Every window is represented by its application icon. \n"
"\n"
"If you whish to revert to the default behavior for the Alt-Tab switcher, "
"just\n"
"disable the extension from extensions.gnome.org or the Advanced Settings "
"application."
msgid ""
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
"Esta es la primera vez que usa la extensión Alt+Tab. \n"
"Seleccione el comportamiento preferido:\n"
"\n"
"Todo y miniaturas:\n"
" Este modo muestra todas la aplicaciones de todas las áreas de trabajo \n"
" en una única lista. En lugar de usar el icono de la aplicación de cada "
"ventana, usa \n"
" miniaturas similares a la ventana.\n"
"\n"
"Área de trabajo e iconos:\n"
" Este modo permite le alternar entre aplicaciones del área de trabajo "
"actual, \n"
" y ofrece la posibilidad de cambiar a la última aplicación usada en el \n"
" área de trabajo anterior. Éste último es siempre el último símbolo en "
"la \n"
" lista, y está diferenciado mediante un separador/línea vertical, si "
"está \n"
" disponible. \n"
" Cada ventana se representa con el icono de la aplicación. \n"
"\n"
"Si quiere volver al comportamiento predeterminado de Alt+Tab, simplemente\n"
"desactive la extensión desde extensions.gnome.org o en la aplicación "
"Configuración avanzada."
msgstr ""
"Esta clave sobreescribe la clave en org.gnome.mutter al ejecutar GNOME Shell."
#: ../extensions/alternate-tab/extension.js:295
msgid "Alt Tab Behaviour"
msgstr "Comportamiento de Alt+Tab"
#: ../extensions/alternate-tab/extension.js:311
msgid "All & Thumbnails"
msgstr "Todo y miniaturas"
#: ../extensions/alternate-tab/extension.js:318
msgid "Workspace & Icons"
msgstr "Espacio de trabajo e iconos"
#: ../extensions/alternate-tab/extension.js:325
msgid "Cancel"
msgstr "Cancelar"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
msgid "Ask the user for a default behaviour if true."
msgstr "Si es cierto, preguntar al usuario el comportamiento predeterminado."
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
msgid "Indicates if Alternate Tab is newly installed"
msgstr "Indica si se ha instalado Alt+Tab recientemente"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:3
msgid ""
"Sets the Alt-Tab behaviour. Possible values are: native, all_thumbnails and "
"workspace_icons."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
msgid "Enable edge tiling when dropping windows on screen edges"
"Establece el comportamiento de Alt+Tab. Los valores posibles son: "
"«native» (nativo), «all_thumbnails» (todo y miniaturas) y "
"«workspace_icons» (iconos de áreas de trabajo)."
msgstr ""
"Activar el mosaico en los bordes al arrastrar ventanas a los bordes de la "
"ventana"
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
msgid "The alt tab behaviour."
msgstr "El comportamiento de Alt+Tab."
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
msgid "Workspaces only on primary monitor"
msgstr "Áreas de trabajo solo en la pantalla principal"
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
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:37
msgid "Present windows as"
msgstr "Presentar ventanas como"
#: ../extensions/alternate-tab/prefs.js:62
msgid "Show only windows in the current workspace"
msgstr "Mostrar ventanas solamente en el área de trabajo actual"
#: ../extensions/apps-menu/extension.js:39
msgid "Activities Overview"
msgstr "Vista de actividades"
#: ../extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritos"
#: ../extensions/apps-menu/extension.js:282
msgid "Applications"
msgstr "Aplicaciones"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
msgid "Application and workspace list"
msgstr "Lista de aplicaciones y áreas de trabajo"
#: ../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 ""
"archivo de escritorio), seguido de dos puntos y el número del espacio de "
"trabajo"
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
"archivo de escritorio), seguido de dos puntos y el número del área de trabajo"
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
msgid "Application and workspace list"
msgstr "Lista de aplicaciones y espacios de trabajo"
#: ../extensions/auto-move-windows/prefs.js:55
msgid "Application"
msgstr "Aplicación"
#: ../extensions/dock/extension.js:561
msgid "Drag here to add favorites"
msgstr "Arrastrar aquí para añadir a favoritos"
#: ../extensions/auto-move-windows/prefs.js:64
#: ../extensions/auto-move-windows/prefs.js:106
msgid "Workspace"
msgstr "Área de trabajo"
#: ../extensions/dock/extension.js:896
msgid "New Window"
msgstr "Ventana nueva"
#: ../extensions/auto-move-windows/prefs.js:80
msgid "Add rule"
msgstr "Añadir regla"
#: ../extensions/dock/extension.js:898
msgid "Quit Application"
msgstr "Salir de la aplicación"
#: ../extensions/auto-move-windows/prefs.js:94
msgid "Create new matching rule"
msgstr "Crear regla de coincidencia nueva"
#: ../extensions/dock/extension.js:903
msgid "Remove from Favorites"
msgstr "Quitar de favoritos"
#: ../extensions/auto-move-windows/prefs.js:98
msgid "Add"
msgstr "Añadir"
#: ../extensions/dock/extension.js:904
msgid "Add to Favorites"
msgstr "Añadir a favoritos"
#: ../extensions/drive-menu/extension.js:73
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "Falló al expulsar el dispositivo «%s»"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
msgid "Autohide duration"
msgstr "Duración de la ocultación automática"
#: ../extensions/drive-menu/extension.js:90
msgid "Removable devices"
msgstr "Dispositivos extraíbles"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
msgid "Autohide effect"
msgstr "Efecto de ocultación automática"
#: ../extensions/drive-menu/extension.js:117
msgid "Open File"
msgstr "Abrir archivo"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
msgid "Enable/disable autohide"
msgstr "Activar/desactivar ocultación automática"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
msgid "Icon size"
msgstr "Tamaño del icono"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
msgid "Position of the dock"
msgstr "Posición del tablero"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
msgid "Sets icon size of the dock."
msgstr "Configura el tamaño de los íconos del tablero."
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:7
msgid ""
"Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' and "
"'move'"
msgstr ""
"Establece el efecto de ocultación del tablero. Los valores permitidos son "
"«resize» (redimensionar) y «rescale» (re-escalar) y «move» (mover)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
msgid ""
"Sets the position of the dock in the screen. Allowed values are 'right' or "
"'left'"
msgstr ""
"Configura la posición del tablero en la pantalla. Los valores permitidos son "
"«right» (derecha) o «left» (izquierda)"
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
msgid "Sets the time duration of the autohide effect."
msgstr "Configura la duración del efecto de ocultación automática."
#: ../extensions/drive-menu/extension.js:69
msgid "Open file manager"
msgstr "Abrir el gestor de archivos"
#: ../extensions/example/extension.js:11
#: ../extensions/example/extension.js:17
msgid "Hello, world!"
msgstr "¡Hola, mundo!"
#: ../extensions/gajim/extension.js:227
#, c-format
msgid "%s is away."
msgstr "%s no está disponible."
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
msgid "Alternative greeting text."
msgstr "Texto de bienvenida alternativo"
#: ../extensions/gajim/extension.js:230
#, c-format
msgid "%s is offline."
msgstr "%s está desconectado."
#: ../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 ""
"Si no está vacío, contiene el texto que se desplegará al pulsar sobre el "
"panel."
#: ../extensions/gajim/extension.js:233
#, c-format
msgid "%s is online."
msgstr "%s está conectado."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
#: ../extensions/example/prefs.js:30
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 ""
"«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/gajim/extension.js:236
#, c-format
msgid "%s is busy."
msgstr "%s está ocupado."
#: ../extensions/example/prefs.js:36
msgid "Message:"
msgstr "Mensaje:"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
msgid "Use more screen for windows"
msgstr "Usar más pantalla para las ventanas"
#: ../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."
msgstr ""
"Intente utilizar más espacio para situar las miniaturas, adaptándolas a la "
"forma de la pantalla, y consolidarlas aún más para reducir el área ocupada. "
"Esta opción sólo se aplica a la estrategia de posicionamiento «natural»."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
msgid "Place window captions on top"
msgstr "Situar los títulos de ventanas arriba"
#: ../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 "
@@ -235,55 +204,396 @@ msgstr ""
"correspondientes, cambiando el comportamiento predeterminado de shell, que "
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
"para que tenga efecto."
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
msgid "Place window captions on top"
msgstr "Situar los títulos de ventanas arriba"
#: ../extensions/places-menu/extension.js:78
#: ../extensions/places-menu/extension.js:81
msgid "Places"
msgstr "Lugares"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
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 ""
"Intente utilizar más espacio para situar las miniaturas, adaptándolas a la "
"forma de la pantalla, y consolidarlas aún más para reducir el área ocupada. "
"Esta opción sólo se aplica a la estrategia de posicionamiento «natural»."
#: ../extensions/places-menu/placeDisplay.js:56
#, c-format
msgid "Failed to launch \"%s\""
msgstr "Falló al lanzar «%s»"
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
msgid "Use more screen for windows"
msgstr "Usar más pantalla para las ventanas"
#: ../extensions/places-menu/placeDisplay.js:98
#: ../extensions/places-menu/placeDisplay.js:121
msgid "Computer"
msgstr "Equipo"
#: ../extensions/places-menu/extension.js:36
msgid "Removable Devices"
msgstr "Dispositivos extraíbles"
#: ../extensions/places-menu/placeDisplay.js:199
msgid "Home"
msgstr "Carpeta personal"
#: ../extensions/places-menu/placeDisplay.js:286
msgid "Browse Network"
msgstr "Examinar la red"
#: ../extensions/systemMonitor/extension.js:214
msgid "CPU"
msgstr "CPU"
#: ../extensions/systemMonitor/extension.js:267
msgid "Memory"
msgstr "Memoria"
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/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
msgid "Theme name"
msgstr "Nombre del tema"
#: ../extensions/xrandr-indicator/extension.js:26
msgid "Normal"
msgstr "Normal"
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
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/xrandr-indicator/extension.js:27
msgid "Left"
msgstr "Izquierda"
#: ../extensions/window-list/extension.js:92
msgid "Close"
msgstr "Cerrar"
#: ../extensions/xrandr-indicator/extension.js:28
msgid "Right"
msgstr "Derecha"
#: ../extensions/window-list/extension.js:102
msgid "Unminimize"
msgstr "Desminimizar"
#: ../extensions/xrandr-indicator/extension.js:29
msgid "Upside-down"
msgstr "Hacia abajo"
#: ../extensions/window-list/extension.js:103
msgid "Minimize"
msgstr "Minimizar"
#: ../extensions/xrandr-indicator/extension.js:78
msgid "Configure display settings..."
msgstr "Configurar las opciones de pantalla…"
#: ../extensions/window-list/extension.js:109
msgid "Unmaximize"
msgstr "Desmaximizar"
#: ../extensions/window-list/extension.js:110
msgid "Maximize"
msgstr "Maximizar"
#: ../extensions/window-list/extension.js:270
msgid "Minimize all"
msgstr "Minimizar todo"
#: ../extensions/window-list/extension.js:278
msgid "Unminimize all"
msgstr "Desminimizar todo"
#: ../extensions/window-list/extension.js:286
msgid "Maximize all"
msgstr "Maximizar todo"
#: ../extensions/window-list/extension.js:295
msgid "Unmaximize all"
msgstr "Desmaximizar todo"
#: ../extensions/window-list/extension.js:304
msgid "Close all"
msgstr "Cerrar todo"
#: ../extensions/window-list/extension.js:591
#: ../extensions/workspace-indicator/extension.js:30
msgid "Workspace Indicator"
msgstr "Indicador de área de trabajo"
#: ../extensions/window-list/extension.js:743
msgid "Window List"
msgstr "Lista de ventanas"
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
msgid "When to group windows"
msgstr "Cuándo agrupar las ventanas"
#: ../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 ""
"Decide cuándo agrupar ventanas para la misma aplicación en la lista de "
"ventanas. Los valores posibles son «never», «auto» y «always»."
#: ../extensions/window-list/prefs.js:30
msgid "Window Grouping"
msgstr "Agrupación de ventanas"
#: ../extensions/window-list/prefs.js:49
msgid "Never group windows"
msgstr "Nunca agrupar las ventanas"
#: ../extensions/window-list/prefs.js:50
msgid "Group windows when space is limited"
msgstr "Agrupar las ventanas cuando el espacio esté limitado"
#: ../extensions/window-list/prefs.js:51
msgid "Always group windows"
msgstr "Siempre agrupar las ventanas"
#: ../extensions/workspace-indicator/prefs.js:141
msgid "Workspace names:"
msgstr "Nombres de los áreas de trabajo:"
#: ../extensions/workspace-indicator/prefs.js:152
msgid "Name"
msgstr "Nombre"
#: ../extensions/workspace-indicator/prefs.js:186
#, c-format
msgid "Workspace %d"
msgstr "Área de trabajo %d"
#~ msgid "Suspend"
#~ msgstr "Suspender"
#~ msgid "Hibernate"
#~ msgstr "Hibernar"
#~ msgid "Power Off"
#~ msgstr "Apagar"
#~ msgid "Enable suspending"
#~ msgstr "Activar la suspensión"
#~ msgid "Control the visibility of the Suspend menu item"
#~ msgstr "Controla la visibilidad del elemento de menú «Suspender»"
#~ msgid "Enable hibernating"
#~ msgstr "Activar la hibernación"
#~ msgid "Control the visibility of the Hibernate menu item"
#~ msgstr "Controla la visibilidad del elemento de menú «Hibernar»"
#~ msgid "Normal"
#~ msgstr "Normal"
#~ msgid "Left"
#~ msgstr "Izquierda"
#~ msgid "Right"
#~ msgstr "Derecha"
#~ msgid "Upside-down"
#~ msgstr "Hacia abajo"
#~ msgid "Display"
#~ msgstr "Pantalla"
#~ msgid "Display Settings"
#~ msgstr "Configuración de pantalla"
#~ msgid "File System"
#~ msgstr "Sistema de archivos"
#~ msgid "The application icon mode."
#~ msgstr "El modo de icono de la aplicación."
#~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
#~ "only' (shows only the application icon) or 'both'."
#~ msgstr ""
#~ "Configura cómo se muestran las ventanas en el intercambiador. Las "
#~ "opciones posibles son «thumbnail-only» (muestra una miniatura de la "
#~ "ventana, «app-icon-only» (sólo muestra el icono de la aplicación) o "
#~ "«both» (se muestran ambas cosas)."
#~ msgid "Devices"
#~ msgstr "Dispositivos"
#~ msgid "Bookmarks"
#~ msgstr "Marcadores"
#~ msgid "Network"
#~ msgstr "Red"
#~ msgid "Drag here to add favorites"
#~ msgstr "Arrastrar aquí para añadir a favoritos"
#~ msgid "New Window"
#~ msgstr "Ventana nueva"
#~ msgid "Quit Application"
#~ msgstr "Salir de la aplicación"
#~ msgid "Remove from Favorites"
#~ msgstr "Quitar de favoritos"
#~ msgid "Position of the dock"
#~ msgstr "Posición del tablero"
#~ msgid ""
#~ "Sets the position of the dock in the screen. Allowed values are 'right' "
#~ "or 'left'"
#~ msgstr ""
#~ "Configura la posición del tablero en la pantalla. Los valores permitidos "
#~ "son «right» (derecha) o «left» (izquierda)"
#~ msgid "Icon size"
#~ msgstr "Tamaño del icono"
#~ msgid "Sets icon size of the dock."
#~ msgstr "Configura el tamaño de los íconos del tablero."
#~ msgid "Enable/disable autohide"
#~ msgstr "Activar/desactivar ocultación automática"
#~ msgid "Autohide effect"
#~ msgstr "Efecto de ocultación automática"
#~ msgid ""
#~ "Sets the effect of the hide dock. Allowed values are 'resize', 'rescale' "
#~ "and 'move'"
#~ msgstr ""
#~ "Establece el efecto de ocultación del tablero. Los valores permitidos son "
#~ "«resize» (redimensionar) y «rescale» (re-escalar) y «move» (mover)"
#~ msgid "Autohide duration"
#~ msgstr "Duración de la ocultación automática"
#~ msgid "Sets the time duration of the autohide effect."
#~ msgstr "Configura la duración del efecto de ocultación automática."
#~ msgid "Monitor"
#~ msgstr "Pantalla"
#~ msgid ""
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
#~ "monitor."
#~ msgstr ""
#~ "Establece la pantalla en la que mostrar el tablero. El valor "
#~ "predeterminado es (-1), que es la pantalla principal."
#~ msgid "%s is away."
#~ msgstr "%s no está disponible."
#~ msgid "%s is offline."
#~ msgstr "%s está desconectado."
#~ msgid "%s is online."
#~ msgstr "%s está conectado."
#~ msgid "%s is busy."
#~ msgstr "%s está ocupado."
#~ msgid "Removable Devices"
#~ msgstr "Dispositivos extraíbles"
#~ msgid "Configure display settings..."
#~ msgstr "Configurar las opciones de pantalla…"
#~ msgid "The alt tab behaviour."
#~ msgstr "El comportamiento de Alt+Tab."
#~ msgid ""
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
#~ "workspace_icons. See the configuration dialogs for details."
#~ msgstr ""
#~ "Establece el comportamiento de Alt+Tab. Los valores posibles son: "
#~ "«native» (nativo), «all_thumbnails» (todo y miniaturas) y "
#~ "«workspace_icons» (iconos de áreas de trabajo). Para obtener información "
#~ "más detallada, consulte la configuración de los diálogos "
#~ msgid ""
#~ "This mode presents all applications from all workspaces in one selection "
#~ "list. Instead of using the application icon of every window, it uses "
#~ "small thumbnails resembling the window itself."
#~ msgstr ""
#~ "Este modo presenta todas las aplicaciones de todas las áreas de trabajo "
#~ "en una lista de selección. En lugar de usar el icono de aplicación de "
#~ "cada ventana, usa pequeñas miniaturas que se asemejan a la propia ventana."
#~ msgid "Workspace & Icons"
#~ msgstr "Área de trabajo e iconos"
#~| msgid ""
#~| "This mode let's you switch between the applications of your current "
#~| "workspace and gives you additionally the option to switch to the last "
#~| "used application of your previous workspace. This is always the last "
#~| "symbol in the list and is segregated by a separator/vertical line if "
#~| "available. \n"
#~| "Every window is represented by its application icon."
#~ msgid ""
#~ "This mode lets you switch between the applications of your current "
#~ "workspace and gives you additionally the option to switch to the last "
#~ "used application of your previous workspace. This is always the last "
#~ "symbol in the list and is separated by a separator/vertical line if "
#~ "available. \n"
#~ "Every window is represented by its application icon."
#~ msgstr ""
#~ "Este modo le permite alternar entre las aplicaciones de su área de "
#~ "trabajo actual y le da la opción de cambiar a la última aplicación "
#~ "utilizada de su área de trabajo anterior. Este siempre es el último "
#~ "símbolo de la lista y está separado por un separador/línea vertical si "
#~ "está disponible.\n"
#~ "Cada ventana está representada por su icono de aplicación."
#~ msgid "Move current selection to front before closing the popup"
#~ msgstr ""
#~ "Mover la selección actual al frente antes de cerrar la ventana emergente"
#~ msgid ""
#~ "The Alternate Tab can be used in different modes, that affect the way "
#~ "windows are chosen and presented."
#~ msgstr ""
#~ "La combinación de teclas Alt+Tab se puede usar en diferentes modos, que "
#~ "afectan la manera en que se eligen y presentan las ventanas."
#~ msgid "Indicates if Alternate Tab is newly installed"
#~ msgstr "Indica si se ha instalado Alt+Tab recientemente"
#~ msgid "Ask the user for a default behaviour if true."
#~ msgstr ""
#~ "Si es cierto, preguntar al usuario el comportamiento predeterminado."
#~ msgid ""
#~ "This is the first time you use the Alternate Tab extension. \n"
#~ "Please choose your preferred behaviour:\n"
#~ "\n"
#~ "All & Thumbnails:\n"
#~ " This mode presents all applications from all workspaces in one "
#~ "selection \n"
#~ " list. Instead of using the application icon of every window, it uses "
#~ "small \n"
#~ " thumbnails resembling the window itself. \n"
#~ "\n"
#~ "Workspace & Icons:\n"
#~ " This mode let's you switch between the applications of your current \n"
#~ " workspace and gives you additionally the option to switch to the last "
#~ "used \n"
#~ " application of your previous workspace. This is always the last "
#~ "symbol in \n"
#~ " the list and is segregated by a separator/vertical line if "
#~ "available. \n"
#~ " Every window is represented by its application icon. \n"
#~ "\n"
#~ "If you whish to revert to the default behavior for the Alt-Tab switcher, "
#~ "just\n"
#~ "disable the extension from extensions.gnome.org or the Advanced Settings "
#~ "application."
#~ msgstr ""
#~ "Esta es la primera vez que usa la extensión Alt+Tab. \n"
#~ "Seleccione el comportamiento preferido:\n"
#~ "\n"
#~ "Todo y miniaturas:\n"
#~ " Este modo muestra todas la aplicaciones de todas las áreas de "
#~ "trabajo \n"
#~ " en una única lista. En lugar de usar el icono de la aplicación de "
#~ "cada ventana, usa \n"
#~ " miniaturas similares a la ventana.\n"
#~ "\n"
#~ "Área de trabajo e iconos:\n"
#~ " Este modo permite le alternar entre aplicaciones del área de trabajo "
#~ "actual, \n"
#~ " y ofrece la posibilidad de cambiar a la última aplicación usada en "
#~ "el \n"
#~ " área de trabajo anterior. Éste último es siempre el último símbolo en "
#~ "la \n"
#~ " lista, y está diferenciado mediante un separador/línea vertical, si "
#~ "está \n"
#~ " disponible. \n"
#~ " Cada ventana se representa con el icono de la aplicación. \n"
#~ "\n"
#~ "Si quiere volver al comportamiento predeterminado de Alt+Tab, "
#~ "simplemente\n"
#~ "desactive la extensión desde extensions.gnome.org o en la aplicación "
#~ "Configuración avanzada."
#~ msgid "Alt Tab Behaviour"
#~ msgstr "Comportamiento de Alt+Tab"
#~ msgid "Cancel"
#~ msgstr "Cancelar"
#~ msgid "Notifications"
@@ -291,9 +601,6 @@ msgstr "Configurar las opciones de pantalla…"
#~ msgid "Online Accounts"
#~ msgstr "Cuentas en línea"
#~ msgid "System Settings"
#~ msgstr "Configuración del sistema"
#~ msgid "Lock Screen"
#~ msgstr "Bloquear la pantalla"
@@ -316,9 +623,6 @@ msgstr "Configurar las opciones de pantalla…"
#~ msgid "Window placement strategy"
#~ msgstr "Estrategia de ubicación de ventanas"
#~ msgid "Native"
#~ msgstr "Nativo"
#~ msgid "Available"
#~ msgstr "Disponible"

251
po/et.po Normal file
View File

@@ -0,0 +1,251 @@
# Estonian 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.
# Mattias Põldaru <mahfiaz@gmail.com>, 2013.
#
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: 2013-09-18 22:55+0000\n"
"PO-Revision-Date: 2013-09-19 16:04+0300\n"
"Last-Translator: Mattias Põldaru <mahfiaz@gmail.com>\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"
msgid "GNOME Classic"
msgstr "Klassikaline GNOME"
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 "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 "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 "Activities Overview"
msgstr "Tegevuste ülevaade"
msgid "Favorites"
msgstr "Lemmikud"
msgid "Applications"
msgstr "Rakendused"
msgid "Application and workspace list"
msgstr "Rakenduste ja tööalade loend"
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Rakenduste loend, sõnedest, mis sisaldavad rakenduse id-d (desktop faili "
"nimi), koolonit ja tööala numbrit."
msgid "Application"
msgstr "Rakendus"
msgid "Workspace"
msgstr "Tööala"
msgid "Add rule"
msgstr "Lisa reegel"
msgid "Create new matching rule"
msgstr "Uue reegli loomine"
msgid "Add"
msgstr "Lisa"
#, c-format
msgid "Ejecting drive '%s' failed:"
msgstr "Seadme '%s' väljastamine nurjus:"
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."
#. TRANSLATORS: Example is the name of the extension, should not be
#. translated
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 "Message:"
msgstr "Sõnum:"
msgid "Use more screen for windows"
msgstr "Rohkem pinda akende jaoks"
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 ""
"Et kasutada rohkem pinda akende jaoks, kohandutakse ekraani külgede suhtega "
"ja paigutatakse aknad üksteisele lähemale. See säte kehtib ainult koos "
"akende loomuliku paigutusega."
msgid "Place window captions on top"
msgstr "Akende pealkirjad on üleval"
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 ""
"Kui märgitud, asuvad akende pealkirjad vastava pisipildi kohal, muutes "
"Shelli vaikimisi viisi, alla asetamist. Selle sätte muutmine mõjub alles "
"pärast Shelli taaskäivitust."
msgid "Places"
msgstr "Asukohad"
#, c-format
msgid "Failed to launch \"%s\""
msgstr "\"%s\" käivitamine nurjus"
msgid "Computer"
msgstr "Arvuti"
msgid "Home"
msgstr "Kodu"
msgid "Browse Network"
msgstr "Võrgu sirvimine"
msgid "CPU"
msgstr "Protsessor"
msgid "Memory"
msgstr "Mälu"
msgid "Theme name"
msgstr "Kujunduse nimi"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Kujunduse nimi, mis laaditakse asukohast ~/.themes/name/gnome-shell"
msgid "Close"
msgstr "Sulge"
msgid "Unminimize"
msgstr "Taasta"
msgid "Minimize"
msgstr "Minimeeri"
msgid "Unmaximize"
msgstr "Taasta suurus"
msgid "Maximize"
msgstr "Maksimeeri"
msgid "Minimize all"
msgstr "Minimeeri kõik"
msgid "Unminimize all"
msgstr "Taasta kõik"
msgid "Maximize all"
msgstr "Maksimeeri kõik"
msgid "Unmaximize all"
msgstr "Taasta kõigi suurus"
msgid "Close all"
msgstr "Sulge kõik"
msgid "Workspace Indicator"
msgstr "Tööala näitaja"
msgid "Window List"
msgstr "Akende loend"
msgid "When to group windows"
msgstr "Millal aknaid grupeeritakse"
msgid ""
"Decides when to group windows from the same application on the window list. "
"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)."
msgid "Window Grouping"
msgstr "Akende grupeerimine"
msgid "Never group windows"
msgstr "Aknaid ei grupeerita kunagi"
msgid "Group windows when space is limited"
msgstr "Aknaid grupeeritakse, kui ruumi on vähe"
msgid "Always group windows"
msgstr "Aknaid grupeeritakse alati"
msgid "Workspace names:"
msgstr "Tööalade nimed:"
msgid "Name"
msgstr "Nimi"
#, c-format
msgid "Workspace %d"
msgstr "Tööala %d"

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