Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7b5f024531 | ||
|
|
7576883744 | ||
|
|
f7e32aabc5 | ||
|
|
757ab0096e | ||
|
|
2b10d99295 |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -6,18 +6,13 @@ 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
|
||||
|
||||
3
COPYING
3
COPYING
@@ -1,7 +1,8 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc. <http://fsf.org>
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
46
Makefile.am
46
Makefile.am
@@ -1,51 +1,5 @@
|
||||
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
|
||||
|
||||
include include.mk
|
||||
|
||||
zip-file: all
|
||||
-rm -fR $(builddir)/_build
|
||||
-rm -fR $(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)"; \
|
||||
if [ -f "$(builddir)/_build$(datadir)/glib-2.0/schemas/$(gschemabase).$${i}.gschema.xml" ]; then \
|
||||
$(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; \
|
||||
(cd "$(builddir)/_build/$${i}$(extensionbase)"; \
|
||||
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
|
||||
|
||||
217
NEWS
217
NEWS
@@ -1,217 +0,0 @@
|
||||
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,
|
||||
making it easier for other extensions to use, and bringing
|
||||
it up to date with gnome-shell changes
|
||||
* all extensions were ported to the Lang.Class framework
|
||||
(except xrandr-indicator, which is pending GDBus merge)
|
||||
* alternate-tab and dock were slightly refactored to clean up
|
||||
some old code
|
||||
|
||||
3.3.4
|
||||
=====
|
||||
* improved styling of windowsNavigator tooltips
|
||||
* fixed windowsNavigator when used with the numeric keypad
|
||||
* fixed native-window-placement with custom button layout
|
||||
* updated translations (pt_BR, cz)
|
||||
|
||||
3.3.3
|
||||
=====
|
||||
* windowsNavigator was fixed to work with azerty keyboards
|
||||
* drive-menu was changed to use media-eject icon instead of media-optical
|
||||
* dock: the default value of hide-effect is now move
|
||||
* dock: if autohide is disabled, now it pushes maximized windows aside
|
||||
* dock was updated to match current core shell styling
|
||||
* native-window-placement: position stategy setting was removed
|
||||
* alternative-status-menu no longer conflicts with other extensions
|
||||
in the user menu
|
||||
* various other minor bug fixes
|
||||
* updated translations (zh, uk, es, it, cz, sl, sk, fi)
|
||||
|
||||
3.3.2
|
||||
=====
|
||||
* all extensions are now self-contained, including l10n and settings
|
||||
* introduce a convenience module that can be shared among all extensions
|
||||
* you can know build an installable zip file with make zip-file
|
||||
* apps-menu no longer shows NoDisplay apps
|
||||
* alternative-status-menu, alternate-tab: fix for master shell
|
||||
|
||||
3.2.1
|
||||
=====
|
||||
* dock: added "move" hide effect
|
||||
* systemMonitor: now it enables/disables properly
|
||||
* systemMonitor: improved styling
|
||||
* alternate-tab: both modes now work with gnome-shell 3.2
|
||||
* various other bug fixes
|
||||
* updated translations
|
||||
|
||||
3.2.0
|
||||
=====
|
||||
|
||||
* various: update for gnome-shell API changes
|
||||
|
||||
3.1.91
|
||||
======
|
||||
|
||||
* gajim: update for gnome-shell API changes
|
||||
|
||||
3.1.90
|
||||
======
|
||||
|
||||
* All extensions have been ported to the new extension
|
||||
system (including live enable/disable)
|
||||
* Updated translations
|
||||
* xrandr-indicator no longer requires a specific gjs version
|
||||
* windowsNavigator fixed for more than 2 workspaces
|
||||
|
||||
3.1.4
|
||||
=====
|
||||
|
||||
* New extension: a menu for changing workspace (workspace-indicator)
|
||||
* systemMonitor: lower the requirement on libgtop
|
||||
* auto-move-windows: open overview when last window on
|
||||
last workspace is closed
|
||||
* dock: implement autohiding, with various configurable
|
||||
effects
|
||||
* alternate-tab: more configurable implementations available
|
||||
* native-window-placement: don't rearrange the windows when
|
||||
the workspace switcher is shown/hidden
|
||||
* update for gnome-shell 3.1.4 API changes
|
||||
|
||||
3.1.3
|
||||
=====
|
||||
|
||||
* New extension: a menu for removable drives (drive-menu
|
||||
* New extensions: GNOME 2 like menus for apps and places
|
||||
(apps-menu, places-menu)
|
||||
* New extension: additional configurability for the window
|
||||
layout in the overview, including a mechanism similar to
|
||||
KDE4 (native-window-placement)
|
||||
* New extension: a message tray indicator for CPU and memory
|
||||
usage (uses libgtop) (systemMonitor)
|
||||
* user-theme: fixed resetting theme
|
||||
* user-theme: support themes installed in /usr/share/themes
|
||||
* alternative-status-menu: ported to gnome-shell master
|
||||
* dock: ported to gnome-shell master
|
||||
* dock: make position configurable (can be left or right)
|
||||
* Updated translations
|
||||
|
||||
3.0.2
|
||||
=====
|
||||
|
||||
* Updated translations.
|
||||
* Fixed bug #647386 (reverting of user-theme to default)
|
||||
* Fixed bug #647599 (support globally installed themes)
|
||||
* Added license and README
|
||||
21
README
21
README
@@ -30,10 +30,6 @@ alternative-status-menu
|
||||
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.
|
||||
|
||||
auto-move-windows
|
||||
|
||||
Lets you manage your workspaces more easily, assigning a specific workspace to
|
||||
@@ -44,10 +40,6 @@ dock
|
||||
|
||||
Shows a dock-style task switcher on the right side of the screen.
|
||||
|
||||
drive-menu
|
||||
Shows a status menu for rapid unmount and power off of external storage devices
|
||||
(i.e. pendrives)
|
||||
|
||||
example
|
||||
|
||||
A minimal example illustrating how to write extensions.
|
||||
@@ -56,19 +48,6 @@ gajim
|
||||
|
||||
Integration with Gajim, a Jabber/XMPP instant messaging client.
|
||||
|
||||
native-window-placement
|
||||
|
||||
An alternative algorithm for layouting the thumbnails in the windows overview, that
|
||||
more closely reflects the actual positions and sizes.
|
||||
|
||||
places-menu
|
||||
|
||||
Shows a status Indicator for navigating to Places.
|
||||
|
||||
systemMonitor
|
||||
|
||||
An message tray indicator showing CPU and memory loads.
|
||||
|
||||
user-theme
|
||||
|
||||
Loads a shell theme from ~/.themes/<name>/gnome-shell.
|
||||
|
||||
64
configure.ac
64
configure.ac
@@ -1,5 +1,5 @@
|
||||
AC_PREREQ(2.63)
|
||||
AC_INIT([gnome-shell-extensions],[3.7.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
|
||||
AC_INIT([gnome-shell-extensions],[3.0.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell&component=extensions])
|
||||
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
AC_CONFIG_AUX_DIR([config])
|
||||
@@ -18,51 +18,31 @@ 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])
|
||||
ADDITIONAL_PACKAGES=
|
||||
|
||||
dnl keep this in alphabetic order
|
||||
CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab default-min-max static-workspaces"
|
||||
DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS alternative-status-menu drive-menu windowsNavigator workspace-indicator"
|
||||
ALL_EXTENSIONS="$DEFAULT_EXTENSIONS auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator"
|
||||
AC_SUBST(CLASSIC_EXTENSIONS, [$CLASSIC_EXTENSIONS])
|
||||
AC_SUBST(ALL_EXTENSIONS, [$ALL_EXTENSIONS])
|
||||
dnl keep this in sync with extensions/Makefile.am
|
||||
ALL_EXTENSIONS="example alternate-tab xrandr-indicator windowsNavigator auto-move-windows dock user-theme alternative-status-menu gajim"
|
||||
DEFAULT_EXTENSIONS="alternate-tab windowsNavigator dock alternative-status-menu"
|
||||
AC_ARG_ENABLE([extensions],
|
||||
[AS_HELP_STRING([--enable-extensions],[Space separated list of extensions to enable.
|
||||
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.])],
|
||||
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.])],
|
||||
[],
|
||||
[enable_extensions=$DEFAULT_EXTENSIONS]
|
||||
)
|
||||
AM_CONDITIONAL([CLASSIC_MODE], [test x"$enable_extensions" = xclassic-mode -o x"$enable_extensions" = xall])
|
||||
|
||||
if test x"$enable_extensions" = xall; then
|
||||
if test x$enable_extensions = xall; then
|
||||
enable_extensions="$ALL_EXTENSIONS"
|
||||
fi
|
||||
if test x"$enable_extensions" = xclassic-mode; then
|
||||
enable_extensions="$CLASSIC_EXTENSIONS"
|
||||
fi
|
||||
|
||||
ADDITIONAL_PACKAGES=
|
||||
ENABLED_EXTENSIONS=
|
||||
for e in $enable_extensions; do
|
||||
case $e in
|
||||
systemMonitor)
|
||||
PKG_CHECK_MODULES(GTOP, libgtop-2.0 >= 2.28.3,
|
||||
[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])])
|
||||
ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
|
||||
ADDITIONAL_PACKAGES="$ADDITIONAL_PAGKAGES gnome-desktop-3.0 >= 2.91.6"
|
||||
;;
|
||||
dnl keep this in alphabetic order
|
||||
alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|default-min-max|drive-menu|example|native-window-placement|places-menu|static-workspaces|user-theme|windowsNavigator|workspace-indicator)
|
||||
alternate-tab|example|windowsNavigator|auto-move-windows|dock|user-theme|alternative-status-menu|gajim)
|
||||
ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e"
|
||||
;;
|
||||
*)
|
||||
@@ -72,24 +52,24 @@ done
|
||||
|
||||
AC_SUBST(ENABLED_EXTENSIONS, [$ENABLED_EXTENSIONS])
|
||||
|
||||
dnl We don't really need cflags or libdirs, we just check
|
||||
dnl to ensure we don't fail at runtime.
|
||||
|
||||
if test "x$ADDITIONAL_PACKAGES" != x; then
|
||||
PKG_CHECK_MODULES(ADDITIONAL, [$ADDITIONAL_PACKAGES])
|
||||
fi
|
||||
|
||||
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/default-min-max/Makefile
|
||||
extensions/drive-menu/Makefile
|
||||
extensions/dock/Makefile
|
||||
extensions/example/Makefile
|
||||
extensions/native-window-placement/Makefile
|
||||
extensions/places-menu/Makefile
|
||||
extensions/static-workspaces/Makefile
|
||||
extensions/systemMonitor/Makefile
|
||||
extensions/user-theme/Makefile
|
||||
extensions/windowsNavigator/Makefile
|
||||
extensions/workspace-indicator/Makefile
|
||||
extensions/gajim/Makefile
|
||||
extensions/xrandr-indicator/Makefile
|
||||
extensions/user-theme/Makefile
|
||||
extensions/Makefile
|
||||
Makefile
|
||||
po/Makefile.in
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
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)
|
||||
|
||||
%.desktop.in:%.desktop.in.in
|
||||
$(AM_V_GEN) sed \
|
||||
-e "s|\@libexecdir\@|$(libexecdir)|" \
|
||||
-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) \
|
||||
$(NULL)
|
||||
|
||||
CLEANFILES = \
|
||||
$(desktop_DATA) \
|
||||
$(session_DATA) \
|
||||
$(xsession_DATA) \
|
||||
$(mode_DATA) \
|
||||
$(NULL)
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"parentMode": "user",
|
||||
"enabledExtensions": [@CLASSIC_EXTENSIONS@]
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
[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
|
||||
@@ -1,5 +0,0 @@
|
||||
[GNOME Session]
|
||||
_Name=GNOME Classic
|
||||
RequiredComponents=gnome-shell-classic;gnome-settings-daemon;
|
||||
IsRunnableHelper=@libexecdir@/gnome-session-check-accelerated
|
||||
FallbackSession=gnome-fallback
|
||||
@@ -1,17 +0,0 @@
|
||||
[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
|
||||
24
extension.mk
24
extension.mk
@@ -1,18 +1,22 @@
|
||||
include $(top_srcdir)/include.mk
|
||||
extensionurl = http://git.gnome.org/gnome-shell-extensions
|
||||
|
||||
dist_extension_DATA = extension.js stylesheet.css $(EXTRA_MODULES)
|
||||
nodist_extension_DATA = metadata.json $(top_srcdir)/lib/convenience.js $(EXTRA_EXTENSION)
|
||||
# Change these to modify how installation is performed
|
||||
topextensiondir = $(datadir)/gnome-shell/extensions
|
||||
extensionbase = @gnome-shell-extensions.gnome.org
|
||||
|
||||
uuid = $(EXTENSION_ID)$(extensionbase)
|
||||
|
||||
extensiondir = $(topextensiondir)/$(uuid)
|
||||
|
||||
dist_extension_DATA = extension.js stylesheet.css
|
||||
nodist_extension_DATA = metadata.json $(EXTRA_EXTENSION)
|
||||
|
||||
EXTRA_DIST = metadata.json.in
|
||||
|
||||
metadata.json: metadata.json.in $(top_builddir)/config.status
|
||||
$(AM_V_GEN) sed \
|
||||
-e "s|[@]extension_id@|$(EXTENSION_ID)|" \
|
||||
$(AM_V_GEN) sed -e "s|[@]LOCALEDIR@|$(datadir)/locale|" \
|
||||
-e "s|[@]uuid@|$(uuid)|" \
|
||||
-e "s|[@]gschemaname@|$(gschemaname)|" \
|
||||
-e "s|[@]gettext_domain@|$(GETTEXT_PACKAGE)|" \
|
||||
-e "s|[@]shell_current@|$(SHELL_VERSION)|" \
|
||||
-e "s|[@]url@|$(extensionurl)|" \
|
||||
$< > $@
|
||||
-e "s|[@]shell_current@|$(PACKAGE_VERSION)|" \
|
||||
-e "s|[@]url@|$(extensionurl)|" $< > $@
|
||||
|
||||
CLEANFILES = metadata.json
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
DIST_SUBDIRS = $(ALL_EXTENSIONS)
|
||||
DIST_SUBDIRS = example alternate-tab xrandr-indicator windowsNavigator auto-move-windows dock user-theme alternative-status-menu gajim
|
||||
|
||||
SUBDIRS = $(ENABLED_EXTENSIONS)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
EXTENSION_ID = alternate-tab
|
||||
|
||||
EXTRA_MODULES = prefs.js
|
||||
|
||||
include ../../extension.mk
|
||||
|
||||
@@ -1,63 +1,237 @@
|
||||
/* -*- mode: js; js-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Lang = imports.lang;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Shell= imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const AltTab = imports.ui.altTab;
|
||||
const AltTab=imports.ui.altTab;
|
||||
const Main = imports.ui.main;
|
||||
const Tweener = imports.ui.tweener;
|
||||
const WindowManager = imports.ui.windowManager;
|
||||
|
||||
let injections = {};
|
||||
|
||||
function init(metadata) {
|
||||
function AltTabPopup2() {
|
||||
this._init();
|
||||
}
|
||||
|
||||
function setKeybinding(name, func) {
|
||||
Main.wm.setCustomKeybindingHandler(name, Main.KeybindingMode.NORMAL, func);
|
||||
}
|
||||
AltTabPopup2.prototype = {
|
||||
__proto__ : AltTab.AltTabPopup.prototype,
|
||||
|
||||
function enable() {
|
||||
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());
|
||||
_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);
|
||||
},
|
||||
|
||||
show : function(backward) {
|
||||
let windows = global.get_window_actors();
|
||||
|
||||
let list = '';
|
||||
let normal_windows= [];
|
||||
let appIcons = [];
|
||||
let tracker = Shell.WindowTracker.get_default();
|
||||
let apps = tracker.get_running_apps ('');
|
||||
|
||||
for (let w = windows.length-1; w >= 0; w--) {
|
||||
let win = windows[w].get_meta_window();
|
||||
if (win.window_type == 0) {
|
||||
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]);
|
||||
}
|
||||
}
|
||||
ap1.cachedWindows = [win];
|
||||
appIcons.push(ap1);
|
||||
}
|
||||
|
||||
if (!windows.length)
|
||||
return false;
|
||||
|
||||
if (!Main.pushModal(this.actor))
|
||||
return false;
|
||||
this._haveModal = true;
|
||||
|
||||
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._appSwitcher.highlight(0,false);
|
||||
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;
|
||||
|
||||
return true
|
||||
},
|
||||
|
||||
_keyPressEvent : function(actor, event) {
|
||||
let keysym = event.get_key_symbol();
|
||||
let shift = (Shell.get_event_state(event) & Clutter.ModifierType.SHIFT_MASK);
|
||||
// X allows servers to represent Shift+Tab in two different ways
|
||||
if (shift && keysym == Clutter.Tab)
|
||||
keysym = Clutter.ISO_Left_Tab;
|
||||
|
||||
this._disableHover();
|
||||
|
||||
if (keysym == Clutter.grave)
|
||||
this._select(this._currentApp, this._nextWindow());
|
||||
else if (keysym == Clutter.asciitilde)
|
||||
this._select(this._currentApp, this._previousWindow());
|
||||
else if (keysym == Clutter.Escape)
|
||||
this.destroy();
|
||||
else if (this._thumbnailsFocused) {
|
||||
if (keysym == Clutter.Tab) {
|
||||
if (this._currentWindow == this._appIcons[this._currentApp].cachedWindows.length - 1)
|
||||
this._select(this._nextApp());
|
||||
else
|
||||
this._select(this._currentApp, this._nextWindow());
|
||||
} else if (keysym == Clutter.ISO_Left_Tab) {
|
||||
if (this._currentWindow == 0 || this._currentWindow == -1)
|
||||
this._select(this._previousApp());
|
||||
else
|
||||
this._select(this._currentApp, this._previousWindow());
|
||||
} else if (keysym == Clutter.Left)
|
||||
this._select(this._currentApp, this._previousWindow());
|
||||
else if (keysym == Clutter.Right)
|
||||
this._select(this._next());
|
||||
this._select(this._currentApp, this._nextWindow());
|
||||
else if (keysym == Clutter.Up)
|
||||
this._select(this._currentApp, null, true);
|
||||
} else {
|
||||
if (keysym == Clutter.Tab)
|
||||
this._select(this._nextApp());
|
||||
else if (keysym == Clutter.ISO_Left_Tab)
|
||||
this._select(this._previousApp());
|
||||
else if (keysym == Clutter.Left)
|
||||
this._select(this._previousApp());
|
||||
else if (keysym == Clutter.Right)
|
||||
this._select(this._nextApp());
|
||||
}
|
||||
};
|
||||
|
||||
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));
|
||||
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();
|
||||
},
|
||||
};
|
||||
|
||||
function WindowList(windows) {
|
||||
this._init(windows);
|
||||
}
|
||||
|
||||
function disable() {
|
||||
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));
|
||||
WindowList.prototype = {
|
||||
__proto__ : AltTab.AppSwitcher.prototype,
|
||||
|
||||
for (prop in injections)
|
||||
AltTab.WindowSwitcherPopup.prototype[prop] = injections[prop];
|
||||
_init : function(windows) {
|
||||
AltTab.AppSwitcher.prototype._init.call(this, []);
|
||||
|
||||
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 tracker = Shell.WindowTracker.get_default();
|
||||
let apps = tracker.get_running_apps ('');
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
ap1.cachedWindows = [win];
|
||||
this._addIcon(ap1);
|
||||
}
|
||||
},
|
||||
|
||||
addSeparator: function () {
|
||||
this._separator=null;
|
||||
}
|
||||
};
|
||||
|
||||
function main() {
|
||||
Main.wm.setKeybindingHandler('switch_windows', function() {
|
||||
let alpopup = new AltTabPopup2();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"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",
|
||||
"original-authors": [ "jw@bargsten.org", "thomas.bouffon@gmail.com" ],
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"original-author": "thomas.bouffon@gmail.com",
|
||||
"shell-version": [ "3.0" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
/* -*- 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;
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
EXTENSION_ID = alternative-status-menu
|
||||
|
||||
include ../../extension.mk
|
||||
include ../../settings.mk
|
||||
|
||||
@@ -1,191 +1,112 @@
|
||||
/* -*- mode: js2 - indent-tabs-mode: nil - js2-basic-offset: 4 -*- */
|
||||
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const BoxPointer = imports.ui.boxpointer;
|
||||
|
||||
const Main = imports.ui.main;
|
||||
const PopupMenu = imports.ui.popupMenu;
|
||||
const GnomeSession = imports.misc.gnomeSession;
|
||||
|
||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
||||
const Gettext = imports.gettext.domain('gnome-shell');
|
||||
const _ = Gettext.gettext;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = Me.imports.convenience;
|
||||
function updateSuspendOrHibernate(object, pspec, item) {
|
||||
let canSuspend = this._upClient.get_can_suspend();
|
||||
let canHibernate = this._upClient.get_can_hibernate();
|
||||
|
||||
const LOCK_ENABLED_KEY = 'lock-enabled';
|
||||
|
||||
let extension;
|
||||
|
||||
// Need to reimplement here the missing bits from LoginManager
|
||||
|
||||
function loginManager_hibernate() {
|
||||
if (this._proxy) {
|
||||
// systemd path
|
||||
this._proxy.call("Hibernate",
|
||||
GLib.Variant.new('(b)', [true]),
|
||||
Gio.DBusCallFlags.NONE,
|
||||
-1, null, null);
|
||||
} else {
|
||||
// upower path
|
||||
this._upClient.hibernate_sync(null);
|
||||
if (!canSuspend && !canHibernate) {
|
||||
item.actor.hide();
|
||||
return;
|
||||
} else
|
||||
item.actor.show();
|
||||
if (!canSuspend && canHibernate) {
|
||||
item.updateText(_("Hibernate"), null);
|
||||
return;
|
||||
}
|
||||
let suspendText = _("Suspend");
|
||||
let hibernateText = canHibernate ? _("Hibernate") : null;
|
||||
item.updateText(suspendText, hibernateText);
|
||||
}
|
||||
|
||||
function loginManager_canHibernate(asyncCallback) {
|
||||
if (this._proxy) {
|
||||
// systemd path
|
||||
this._proxy.call("CanHibernate",
|
||||
null,
|
||||
Gio.DBusCallFlags.NONE,
|
||||
-1, null, function(proxy, asyncResult) {
|
||||
let result, error;
|
||||
|
||||
try {
|
||||
result = proxy.call_finish(asyncResult);
|
||||
} catch(e) {
|
||||
error = e;
|
||||
}
|
||||
|
||||
if (error)
|
||||
asyncCallback(false);
|
||||
else
|
||||
asyncCallback(result[0] != 'no');
|
||||
});
|
||||
} else {
|
||||
Mainloop.idle_add(Lang.bind(this, function() {
|
||||
asyncCallback(this._upClient.get_can_hibernate());
|
||||
return false;
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
function statusMenu_updateHaveHibernate() {
|
||||
loginManager_canHibernate.call(this._loginManager, Lang.bind(this,
|
||||
function(result) {
|
||||
this._haveHibernate = result;
|
||||
this._updateSuspendOrPowerOff();
|
||||
}));
|
||||
}
|
||||
|
||||
function statusMenu_updateSuspendOrPowerOff() {
|
||||
this._suspendOrPowerOffItem.actor.hide();
|
||||
|
||||
extension.suspendItem.actor.visible = this._haveSuspend;
|
||||
extension.hibernateItem.actor.visible = this._haveHibernate;
|
||||
extension.powerOffItem.actor.visible = this._haveShutdown;
|
||||
}
|
||||
|
||||
function onSuspendActivate(item) {
|
||||
function onSuspendOrHibernateActivate(item) {
|
||||
Main.overview.hide();
|
||||
|
||||
if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY)) {
|
||||
let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
|
||||
Main.screenShield.disconnect(tmpId);
|
||||
let haveSuspend = this._upClient.get_can_suspend();
|
||||
let haveHibernate = this._upClient.get_can_hibernate();
|
||||
|
||||
this._loginManager.suspend();
|
||||
if (haveSuspend &&
|
||||
item.state == PopupMenu.PopupAlternatingMenuItemState.DEFAULT) {
|
||||
this._screenSaverProxy.LockRemote(Lang.bind(this, function() {
|
||||
this._upClient.suspend_sync(null);
|
||||
}));
|
||||
|
||||
this.menu.close(BoxPointer.PopupAnimation.NONE);
|
||||
Main.screenShield.lock(true);
|
||||
} else {
|
||||
this._loginManager.suspend();
|
||||
this._screenSaverProxy.LockRemote(Lang.bind(this, function() {
|
||||
this._upClient.hibernate_sync(null);
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
function onHibernateActivate(item) {
|
||||
Main.overview.hide();
|
||||
function createSubMenu() {
|
||||
let item;
|
||||
|
||||
if (this._screenSaverSettings.get_boolean(LOCK_ENABLED_KEY)) {
|
||||
let tmpId = Main.screenShield.connect('lock-screen-shown', Lang.bind(this, function() {
|
||||
Main.screenShield.disconnect(tmpId);
|
||||
item = new PopupMenu.PopupImageMenuItem(_("Available"), 'user-available');
|
||||
item.connect('activate', Lang.bind(this, this._setPresenceStatus, GnomeSession.PresenceStatus.AVAILABLE));
|
||||
this.menu.addMenuItem(item);
|
||||
this._presenceItems[GnomeSession.PresenceStatus.AVAILABLE] = item;
|
||||
|
||||
loginManager_hibernate.call(this._loginManager);
|
||||
}));
|
||||
item = new PopupMenu.PopupImageMenuItem(_("Busy"), 'user-busy');
|
||||
item.connect('activate', Lang.bind(this, this._setPresenceStatus, GnomeSession.PresenceStatus.BUSY));
|
||||
this.menu.addMenuItem(item);
|
||||
this._presenceItems[GnomeSession.PresenceStatus.BUSY] = item;
|
||||
|
||||
this.menu.close(BoxPointer.PopupAnimation.NONE);
|
||||
Main.screenShield.lock(true);
|
||||
} else {
|
||||
loginManager_hibernate.call(this._loginManager);
|
||||
}
|
||||
item = new PopupMenu.PopupSeparatorMenuItem();
|
||||
this.menu.addMenuItem(item);
|
||||
|
||||
item = new PopupMenu.PopupMenuItem(_("My Account"));
|
||||
item.connect('activate', Lang.bind(this, this._onMyAccountActivate));
|
||||
this.menu.addMenuItem(item);
|
||||
|
||||
item = new PopupMenu.PopupMenuItem(_("System Settings"));
|
||||
item.connect('activate', Lang.bind(this, this._onPreferencesActivate));
|
||||
this.menu.addMenuItem(item);
|
||||
|
||||
item = new PopupMenu.PopupSeparatorMenuItem();
|
||||
this.menu.addMenuItem(item);
|
||||
|
||||
item = new PopupMenu.PopupMenuItem(_("Lock Screen"));
|
||||
item.connect('activate', Lang.bind(this, this._onLockScreenActivate));
|
||||
this.menu.addMenuItem(item);
|
||||
|
||||
item = new PopupMenu.PopupMenuItem(_("Switch User"));
|
||||
item.connect('activate', Lang.bind(this, this._onLoginScreenActivate));
|
||||
this.menu.addMenuItem(item);
|
||||
this._loginScreenItem = item;
|
||||
|
||||
item = new PopupMenu.PopupMenuItem(_("Log Out..."));
|
||||
item.connect('activate', Lang.bind(this, this._onQuitSessionActivate));
|
||||
this.menu.addMenuItem(item);
|
||||
|
||||
item = new PopupMenu.PopupSeparatorMenuItem();
|
||||
this.menu.addMenuItem(item);
|
||||
|
||||
item = new PopupMenu.PopupAlternatingMenuItem(_("Suspend"),
|
||||
_("Hibernate"));
|
||||
this.menu.addMenuItem(item);
|
||||
item.connect('activate', Lang.bind(this, onSuspendOrHibernateActivate));
|
||||
this._upClient.connect('notify::can-suspend', Lang.bind(this, updateSuspendOrHibernate, item));
|
||||
this._upClient.connect('notify::can-hibernate', Lang.bind(this, updateSuspendOrHibernate, item));
|
||||
updateSuspendOrHibernate.call(this, null, null, item);
|
||||
|
||||
item = new PopupMenu.PopupMenuItem(_("Power Off..."));
|
||||
item.connect('activate', Lang.bind(this, function() {
|
||||
this._session.ShutdownRemote();
|
||||
}));
|
||||
this.menu.addMenuItem(item);
|
||||
}
|
||||
|
||||
const Extension = new Lang.Class({
|
||||
Name: 'AlternativeStatusMenu.Extension',
|
||||
|
||||
_init: function() {
|
||||
this.suspendItem = null;
|
||||
this.hibernateItem = null;
|
||||
this.powerOffItem = null;
|
||||
|
||||
Convenience.initTranslations();
|
||||
this._settings = Convenience.getSettings();
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
let statusMenu = Main.panel.statusArea.userMenu;
|
||||
|
||||
let children = statusMenu.menu._getMenuItems();
|
||||
let index = children.length;
|
||||
|
||||
/* find the old entry */
|
||||
for (let i = children.length - 1; i >= 0; i--) {
|
||||
if (children[i] == statusMenu._suspendOrPowerOffItem) {
|
||||
index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* add the new entries */
|
||||
this.suspendItem = new PopupMenu.PopupMenuItem(_("Suspend"));
|
||||
this.suspendItem.connect('activate', Lang.bind(statusMenu, onSuspendActivate));
|
||||
|
||||
this.hibernateItem = new PopupMenu.PopupMenuItem(_("Hibernate"));
|
||||
this.hibernateItem.connect('activate', Lang.bind(statusMenu, onHibernateActivate));
|
||||
|
||||
this.powerOffItem = new PopupMenu.PopupMenuItem(_("Power Off"));
|
||||
this.powerOffItem.connect('activate', Lang.bind(statusMenu, function() {
|
||||
this._session.ShutdownRemote();
|
||||
}));
|
||||
|
||||
/* insert the entries at the found position */
|
||||
statusMenu.menu.addMenuItem(this.suspendItem, index);
|
||||
statusMenu.menu.addMenuItem(this.hibernateItem, index + 1);
|
||||
statusMenu.menu.addMenuItem(this.powerOffItem, index + 2);
|
||||
|
||||
this._openStateChangedId = statusMenu.menu.connect('open-state-changed', function() {
|
||||
statusMenu_updateHaveHibernate.call(statusMenu);
|
||||
});
|
||||
|
||||
this._previousUpdateSuspendOrPowerOff = statusMenu._updateSuspendOrPowerOff;
|
||||
statusMenu._updateSuspendOrPowerOff = statusMenu_updateSuspendOrPowerOff;
|
||||
|
||||
this._settingsChangedId = this._settings.connect('changed', function() {
|
||||
statusMenu._updateSuspendOrPowerOff();
|
||||
});
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
let statusMenu = Main.panel.statusArea.userMenu;
|
||||
|
||||
this.suspendItem.destroy();
|
||||
this.hibernateItem.destroy();
|
||||
this.powerOffItem.destroy();
|
||||
|
||||
statusMenu.menu.disconnect(this._openStateChangedId);
|
||||
this._settings.disconnect(this._settingsChangedId);
|
||||
|
||||
statusMenu._updateSuspendOrPowerOff = this._previousUpdateSuspendOrPowerOff;
|
||||
statusMenu._updateSuspendOrPowerOff();
|
||||
},
|
||||
});
|
||||
|
||||
// Put your extension initialization code here
|
||||
function init(metadata) {
|
||||
return (extension = new Extension());
|
||||
function main(metadata) {
|
||||
let statusMenu = Main.panel._statusmenu;
|
||||
statusMenu.menu.removeAll();
|
||||
createSubMenu.call(statusMenu);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
"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@" ],
|
||||
"shell-version": [ "3.0" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
<schemalist gettext-domain="gnome-shell-extensions">
|
||||
<schema id="org.gnome.shell.extensions.alternative-status-menu" path="/org/gnome/shell/extensions/alternative-status-menu/">
|
||||
<key name="allow-suspend" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Enable suspending</_summary>
|
||||
<_description>Control the visibility of the Suspend menu item</_description>
|
||||
</key>
|
||||
<key name="allow-hibernate" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Enable hibernating</_summary>
|
||||
<_description>Control the visibility of the Hibernate menu item</_description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
@@ -1,111 +0,0 @@
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
const GMenu = imports.gi.GMenu;
|
||||
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 ICON_SIZE = 28;
|
||||
|
||||
const AppMenuItem = new Lang.Class({
|
||||
Name: 'AppsMenu.AppMenuItem',
|
||||
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 });
|
||||
},
|
||||
|
||||
activate: function (event) {
|
||||
this._app.activate_full(-1, event.get_time());
|
||||
|
||||
this.parent(event);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
const ApplicationsButton = new Lang.Class({
|
||||
Name: 'AppsMenu.ApplicationsButton',
|
||||
Extends: PanelMenu.SystemStatusButton,
|
||||
|
||||
_init: function() {
|
||||
this.parent('start-here-symbolic');
|
||||
|
||||
this._appSys = Shell.AppSystem.get_default();
|
||||
this._installedChangedId = this._appSys.connect('installed-changed', Lang.bind(this, this._refresh));
|
||||
|
||||
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;
|
||||
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));
|
||||
} else if (nextType == GMenu.TreeItemType.DIRECTORY) {
|
||||
this._loadCategory(iter.get_directory(), menu);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_display : function() {
|
||||
let tree = this._appSys.get_tree();
|
||||
let root = tree.get_root_directory();
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let appsMenuButton;
|
||||
|
||||
function enable() {
|
||||
appsMenuButton = new ApplicationsButton();
|
||||
Main.panel.addToStatusArea('apps-menu', appsMenuButton, 1, 'left');
|
||||
}
|
||||
|
||||
function disable() {
|
||||
appsMenuButton.destroy();
|
||||
}
|
||||
|
||||
function init() {
|
||||
/* do nothing */
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"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",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
/* none used*/
|
||||
@@ -1,7 +1,14 @@
|
||||
EXTENSION_ID = auto-move-windows
|
||||
|
||||
EXTRA_MODULES = prefs.js
|
||||
|
||||
include ../../extension.mk
|
||||
include ../../settings.mk
|
||||
|
||||
gschemas_in = org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
|
||||
|
||||
@INTLTOOL_XML_NOMERGE_RULE@
|
||||
|
||||
gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
|
||||
|
||||
@GSETTINGS_RULES@
|
||||
|
||||
CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
|
||||
EXTRA_DIST += $(gschemas_in)
|
||||
|
||||
@@ -5,37 +5,26 @@ const Glib = imports.gi.GLib;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = Me.imports.convenience;
|
||||
|
||||
const SETTINGS_SCHEMA = 'org.gnome.shell.extensions.auto-move-windows';
|
||||
const SETTINGS_KEY = 'application-list';
|
||||
|
||||
let settings;
|
||||
|
||||
const WindowMover = new Lang.Class({
|
||||
Name: 'AutoMoveWindows.WindowMover',
|
||||
function WindowMover() {
|
||||
this._init();
|
||||
}
|
||||
|
||||
WindowMover.prototype = {
|
||||
_init: function() {
|
||||
this._settings = settings;
|
||||
this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA });
|
||||
this._windowTracker = Shell.WindowTracker.get_default();
|
||||
|
||||
let display = global.screen.get_display();
|
||||
// Connect after so the handler from ShellWindowTracker has already run
|
||||
this._windowCreatedId = display.connect_after('window-created', Lang.bind(this, this._findAndMove));
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
if (this._windowCreatedId) {
|
||||
global.screen.get_display().disconnect(this._windowCreatedId);
|
||||
this._windowCreatedId = 0;
|
||||
}
|
||||
display.connect_after('window-created', Lang.bind(this, this._findAndMove));
|
||||
},
|
||||
|
||||
_ensureAtLeastWorkspaces: function(num, window) {
|
||||
@@ -77,91 +66,44 @@ const WindowMover = new Lang.Class({
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let prevCheckWorkspaces;
|
||||
let winMover;
|
||||
|
||||
function init() {
|
||||
Convenience.initTranslations();
|
||||
settings = Convenience.getSettings();
|
||||
}
|
||||
|
||||
function myCheckWorkspaces() {
|
||||
let i;
|
||||
let emptyWorkspaces = new Array(Main._workspaces.length);
|
||||
function main(extensionMeta) {
|
||||
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
|
||||
for (i = 0; i < Main._workspaces.length; i++)
|
||||
emptyWorkspaces[i] = true;
|
||||
}
|
||||
|
||||
let windows = global.get_window_actors();
|
||||
for (i = 0; i < windows.length; i++) {
|
||||
let win = windows[i];
|
||||
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;
|
||||
if (win.get_meta_window().is_on_all_workspaces())
|
||||
continue;
|
||||
|
||||
let workspaceIndex = win.get_workspace();
|
||||
emptyWorkspaces[workspaceIndex] = false;
|
||||
}
|
||||
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);
|
||||
}
|
||||
// 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; }));
|
||||
// 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;
|
||||
}
|
||||
Main._checkWorkspacesId = 0;
|
||||
return false;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
function enable() {
|
||||
prevCheckWorkspaces = Main._checkWorkspaces;
|
||||
if (Meta.prefs_get_dynamic_workspaces())
|
||||
Main._checkWorkspaces = myCheckWorkspaces;
|
||||
|
||||
winMover = new WindowMover();
|
||||
}
|
||||
|
||||
function disable() {
|
||||
Main._checkWorkspaces = prevCheckWorkspaces;
|
||||
winMover.destroy();
|
||||
new WindowMover();
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Auto Move Windows",
|
||||
"description": "Move applications to specific workspaces when they create windows",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"shell-version": [ "3.0.0", "3.0.1", "3.0.2" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"original-authors": [ "alessandro.crismani@gmail.com", "thomas.bouffon@gmail.com" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
@@ -1,260 +0,0 @@
|
||||
// -*- 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;
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
EXTENSION_ID = default-min-max
|
||||
|
||||
include ../../extension.mk
|
||||
@@ -1,20 +0,0 @@
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
|
||||
const Meta = imports.gi.Meta;
|
||||
|
||||
const BUTTON_LAYOUT_KEY = 'button-layout';
|
||||
const EXTENSION_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const SHELL_OVERRIDES_SCHEMA = 'org.gnome.shell.overrides';
|
||||
|
||||
function init(metadata) {
|
||||
}
|
||||
|
||||
function enable() {
|
||||
// Override gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema(BUTTON_LAYOUT_KEY, EXTENSION_SCHEMA);
|
||||
}
|
||||
|
||||
function disable() {
|
||||
// Restore gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema(BUTTON_LAYOUT_KEY, SHELL_OVERRIDES_SCHEMA);
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Default Minimize and Maximize",
|
||||
"description": "Adds minimize and maximize buttons to the titlebar by default",
|
||||
"original-authors": [ "debarshir@gnome.org" ],
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
/* This extensions requires no special styling */
|
||||
@@ -1,3 +1,3 @@
|
||||
EXTENSION_ID = apps-menu
|
||||
EXTENSION_ID = dock
|
||||
|
||||
include ../../extension.mk
|
||||
456
extensions/dock/extension.js
Normal file
456
extensions/dock/extension.js
Normal file
@@ -0,0 +1,456 @@
|
||||
/* -*- 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 DOCKICON_SIZE = 48;
|
||||
const DND_RAISE_APP_TIMEOUT = 500;
|
||||
|
||||
function Dock() {
|
||||
this._init();
|
||||
}
|
||||
|
||||
Dock.prototype = {
|
||||
_init : function() {
|
||||
this._placeholderText = null;
|
||||
this._menus = [];
|
||||
this._menuDisplays = [];
|
||||
|
||||
this._favorites = [];
|
||||
|
||||
this._spacing = 4;
|
||||
this._item_size = DOCKICON_SIZE;
|
||||
|
||||
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._appSystem.connect('installed-changed', Lang.bind(this, this._queueRedisplay));
|
||||
AppFavorites.getAppFavorites().connect('changed', Lang.bind(this, this._queueRedisplay));
|
||||
this._tracker.connect('app-state-changed', Lang.bind(this, this._queueRedisplay));
|
||||
|
||||
Main.chrome.addActor(this.actor, { visibleInOverview: false });
|
||||
this.actor.lower_bottom();
|
||||
},
|
||||
|
||||
_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();
|
||||
|
||||
/* hardcode here pending some design about how exactly desktop contexts behave */
|
||||
let contextId = '';
|
||||
|
||||
let running = this._tracker.get_running_apps(contextId);
|
||||
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.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);
|
||||
icons++;
|
||||
this.addItem(display.actor);
|
||||
}
|
||||
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 = global.get_primary_monitor();
|
||||
let height = (icons)*(this._item_size + this._spacing) + 2*this._spacing;
|
||||
this.actor.set_size(this._item_size + 4*this._spacing, height);
|
||||
this.actor.set_position(primary.width-this._item_size-this._spacing-2, (primary.height-height)/2);
|
||||
},
|
||||
|
||||
_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;
|
||||
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);
|
||||
|
||||
function DockIcon(app) {
|
||||
this._init(app);
|
||||
}
|
||||
|
||||
DockIcon.prototype = {
|
||||
_init : function(app) {
|
||||
this.app = app;
|
||||
this.actor = new St.Button({ style_class: 'dock-app',
|
||||
button_mask: St.ButtonMask.ONE | St.ButtonMask.TWO,
|
||||
reactive: true,
|
||||
x_fill: true,
|
||||
y_fill: true });
|
||||
this.actor._delegate = this;
|
||||
this.actor.set_size(DOCKICON_SIZE, DOCKICON_SIZE);
|
||||
|
||||
this._icon = this.app.create_icon_texture(DOCKICON_SIZE);
|
||||
this.actor.set_child(this._icon);
|
||||
|
||||
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();
|
||||
|
||||
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('popup', Lang.bind(this, function (menu, isPoppedUp) {
|
||||
if (!isPoppedUp)
|
||||
this._onMenuPoppedDown();
|
||||
}));
|
||||
|
||||
this._menuManager.addMenu(this._menu, true);
|
||||
}
|
||||
|
||||
this._menu.popup();
|
||||
|
||||
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();
|
||||
},
|
||||
|
||||
shellWorkspaceLaunch : function() {
|
||||
this.app.open_new_window();
|
||||
}
|
||||
};
|
||||
Signals.addSignalMethods(DockIcon.prototype);
|
||||
|
||||
function DockIconMenu(source) {
|
||||
this._init(source);
|
||||
}
|
||||
|
||||
DockIconMenu.prototype = {
|
||||
__proto__: AppDisplay.AppIconMenu.prototype,
|
||||
|
||||
_init: function(source) {
|
||||
PopupMenu.PopupMenu.prototype._init.call(this, source.actor, St.Align.MIDDLE, St.Side.RIGHT, 0);
|
||||
|
||||
this._source = source;
|
||||
|
||||
this.connect('activate', Lang.bind(this, this._onActivate));
|
||||
this.connect('open-state-changed', Lang.bind(this, this._onOpenStateChanged));
|
||||
|
||||
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.actor.destroy(); }));
|
||||
|
||||
Main.chrome.addActor(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;
|
||||
},
|
||||
|
||||
_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 main(extensionMeta) {
|
||||
imports.gettext.bindtextdomain('gnome-shell-extensions', extensionMeta.localedir);
|
||||
|
||||
let dock = new Dock();
|
||||
}
|
||||
9
extensions/dock/metadata.json.in
Normal file
9
extensions/dock/metadata.json.in
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"uuid": "@uuid@",
|
||||
"name": "Dock",
|
||||
"description": "A dock for the GNOME Shell -- displays favorite and running applications",
|
||||
"original-author": "tclaesson@gmail.com",
|
||||
"shell-version": [ "3.0" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"url": "@url@"
|
||||
}
|
||||
54
extensions/dock/stylesheet.css
Normal file
54
extensions/dock/stylesheet.css
Normal file
@@ -0,0 +1,54 @@
|
||||
#dock {
|
||||
border-radius: 9px;
|
||||
background-color: rgba(0,0,0,0.9);
|
||||
border-width: 2px;
|
||||
border-color: #5f5f5f;
|
||||
}
|
||||
/* Panel */
|
||||
.dock-app {
|
||||
padding: 4px;
|
||||
width: 70px;
|
||||
height: 70px;
|
||||
border-radius: 4px;
|
||||
transition-duration: 100;
|
||||
}
|
||||
|
||||
.dock-app.running {
|
||||
padding: 3px;
|
||||
border: 1px solid #181818;
|
||||
background-gradient-direction: vertical;
|
||||
background-gradient-start: #3d3d3d;
|
||||
background-gradient-end: #181818;
|
||||
}
|
||||
|
||||
.dock-app.selected {
|
||||
padding: 3px;
|
||||
border: 1px solid #666666;
|
||||
}
|
||||
|
||||
.dock-app.focused {
|
||||
padding: 3px;
|
||||
border: 1px solid #5f5f5f;
|
||||
background-gradient-direction: vertical;
|
||||
background-gradient-start: rgba(61,61,61,0.8);
|
||||
background-gradient-end: rgba(24,24,24,0.2);
|
||||
}
|
||||
|
||||
.dock-app:hover {
|
||||
padding: 3px;
|
||||
border: 1px solid #666666;
|
||||
background-gradient-direction: vertical;
|
||||
background-gradient-start: rgba(61,61,61,0.8);
|
||||
background-gradient-end: rgba(24,24,24,0.2);
|
||||
transition-duration: 100;
|
||||
}
|
||||
|
||||
.dock-app:active {
|
||||
padding: 3px;
|
||||
background-color: #1e1e1e;
|
||||
border: 1px solid #5f5f5f;
|
||||
}
|
||||
|
||||
.dock-menu {
|
||||
font-size: 12px
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
// Drive menu extension
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const St = imports.gi.St;
|
||||
const Shell = imports.gi.Shell;
|
||||
|
||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
||||
const _ = Gettext.gettext;
|
||||
|
||||
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 MountMenuItem = new Lang.Class({
|
||||
Name: 'DriveMenu.MountMenuItem',
|
||||
Extends: PopupMenu.PopupBaseMenuItem,
|
||||
|
||||
_init: function(mount) {
|
||||
this.parent();
|
||||
|
||||
this.label = new St.Label({ text: mount.get_name() });
|
||||
this.addActor(this.label);
|
||||
this.actor.label_actor = this.label;
|
||||
|
||||
this.mount = mount;
|
||||
|
||||
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);
|
||||
},
|
||||
|
||||
_eject: function() {
|
||||
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) {
|
||||
Gio.AppInfo.launch_default_for_uri(this.mount.get_root().get_uri(),
|
||||
global.create_app_launch_context());
|
||||
|
||||
this.parent(event);
|
||||
}
|
||||
});
|
||||
|
||||
const DriveMenu = new Lang.Class({
|
||||
Name: 'DriveMenu.DriveMenu',
|
||||
Extends: PanelMenu.SystemStatusButton,
|
||||
|
||||
_init: function() {
|
||||
this.parent('media-eject-symbolic', _("Removable devices"));
|
||||
|
||||
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"), function(event) {
|
||||
let appSystem = Shell.AppSystem.get_default();
|
||||
let app = appSystem.lookup_app('nautilus.desktop');
|
||||
app.activate_full(-1, event.get_time());
|
||||
});
|
||||
|
||||
this._updateMenuVisibility();
|
||||
},
|
||||
|
||||
_updateMenuVisibility: function() {
|
||||
if (this._mounts.length > 0)
|
||||
this.actor.show();
|
||||
else
|
||||
this.actor.hide();
|
||||
},
|
||||
|
||||
_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;
|
||||
}
|
||||
}
|
||||
log ('Removing a mount that was never added to the menu');
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
if (this._connectedId) {
|
||||
this._monitor.disconnect(this._connectedId);
|
||||
this._monitor.disconnect(this._disconnectedId);
|
||||
this._connectedId = 0;
|
||||
this._disconnectedId = 0;
|
||||
}
|
||||
|
||||
this.parent();
|
||||
},
|
||||
});
|
||||
|
||||
function init() {
|
||||
Convenience.initTranslations();
|
||||
}
|
||||
|
||||
let _indicator;
|
||||
|
||||
function enable() {
|
||||
_indicator = new DriveMenu;
|
||||
Main.panel.addToStatusArea('drive-menu', _indicator);
|
||||
}
|
||||
|
||||
function disable() {
|
||||
_indicator.destroy();
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Removable Drive Menu",
|
||||
"description": "A status menu for accessing and unmounting removable devices",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
/* This extensions requires no custom styling */
|
||||
@@ -1,6 +1,3 @@
|
||||
EXTENSION_ID = example
|
||||
|
||||
EXTRA_MODULES = prefs.js
|
||||
|
||||
include ../../extension.mk
|
||||
include ../../settings.mk
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// -*- 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;
|
||||
@@ -8,42 +7,18 @@ const _ = Gettext.gettext;
|
||||
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = Me.imports.convenience;
|
||||
|
||||
function _showHello() {
|
||||
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(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(); });
|
||||
let text = new St.Label({ style_class: 'helloworld-label', text: _("Hello, world!") });
|
||||
let monitor = global.get_primary_monitor();
|
||||
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(); });
|
||||
}
|
||||
|
||||
// Put your extension initialization code here
|
||||
function init(metadata) {
|
||||
log ('Example extension initalized');
|
||||
|
||||
Convenience.initTranslations();
|
||||
}
|
||||
|
||||
let signalId;
|
||||
|
||||
function enable() {
|
||||
log ('Example extension enabled');
|
||||
function main(metadata) {
|
||||
imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
|
||||
|
||||
Main.panel.actor.reactive = true;
|
||||
signalId = Main.panel.actor.connect('button-release-event', _showHello);
|
||||
}
|
||||
|
||||
function disable() {
|
||||
log ('Example extension disabled');
|
||||
|
||||
if (signalId) {
|
||||
Main.panel.actor.disconnect(signalId);
|
||||
signalId = 0;
|
||||
}
|
||||
Main.panel.actor.connect('button-release-event', _showHello);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Hello, World!",
|
||||
"description": "An example extension to show how it works. Shows Hello, world when clicking on the top panel.",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"shell-version": [ "3.0" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
<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>
|
||||
@@ -1,52 +0,0 @@
|
||||
// -*- 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;
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
EXTENSION_ID = drive-menu
|
||||
EXTENSION_ID = gajim
|
||||
|
||||
include ../../extension.mk
|
||||
313
extensions/gajim/extension.js
Normal file
313
extensions/gajim/extension.js
Normal file
@@ -0,0 +1,313 @@
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gettext = imports.gettext.domain('gnome-shell');
|
||||
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) {
|
||||
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.Notification(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().get_app('gajim.desktop');
|
||||
app.activate_window(null, global.get_current_time());
|
||||
},
|
||||
|
||||
_onChatState: function(emitter, data) {
|
||||
let chatstate = data[1][5];
|
||||
if (chatstate == 'gone')
|
||||
this.destroy();
|
||||
},
|
||||
|
||||
_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 text = data[1][1];
|
||||
let chatstate = data[1][3];
|
||||
|
||||
if (text) {
|
||||
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 = {};
|
||||
this._cacheDir = GLib.get_user_cache_dir() + '/gnome-shell/gajim-avatars';
|
||||
GLib.mkdir_with_parents(this._cacheDir, 0x1c0); // 0x1c0 = octal 0700
|
||||
|
||||
this._proxy = new Gajim(DBus.session, 'org.gajim.dbus', '/org/gajim/dbus/RemoteObject');
|
||||
this._proxy.connect('NewMessage', Lang.bind(this, this._messageReceived));
|
||||
},
|
||||
|
||||
proxy : function() {
|
||||
return this._proxy;
|
||||
},
|
||||
|
||||
_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 main() {
|
||||
let client = new GajimClient();
|
||||
}
|
||||
8
extensions/gajim/metadata.json.in
Normal file
8
extensions/gajim/metadata.json.in
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"uuid": "@uuid@",
|
||||
"name": "Gajim IM integration",
|
||||
"description": "Display Gajim incoming chats as notifications in the Shell message tray.",
|
||||
"shell-version": [ "3.0" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"url": "http://base-art.net"
|
||||
}
|
||||
0
extensions/gajim/stylesheet.css
Normal file
0
extensions/gajim/stylesheet.css
Normal file
@@ -1,5 +0,0 @@
|
||||
EXTENSION_ID = native-window-placement
|
||||
|
||||
include ../../extension.mk
|
||||
include ../../settings.mk
|
||||
|
||||
@@ -1,459 +0,0 @@
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
// import just everything from workspace.js:
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
const Meta = imports.gi.Meta;
|
||||
const Pango = imports.gi.Pango;
|
||||
const Shell = imports.gi.Shell;
|
||||
const St = imports.gi.St;
|
||||
const Signals = imports.signals;
|
||||
|
||||
const DND = imports.ui.dnd;
|
||||
const Lightbox = imports.ui.lightbox;
|
||||
const Main = imports.ui.main;
|
||||
const Overview = imports.ui.overview;
|
||||
const Panel = imports.ui.panel;
|
||||
const Tweener = imports.ui.tweener;
|
||||
|
||||
const Workspace = imports.ui.workspace;
|
||||
const WindowPositionFlags = Workspace.WindowPositionFlags;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = Me.imports.convenience;
|
||||
|
||||
// testing settings for natural window placement strategy:
|
||||
const WINDOW_PLACEMENT_NATURAL_FILLGAPS = true; // enlarge windows at the end to fill gaps // not implemented yet
|
||||
const WINDOW_PLACEMENT_NATURAL_GRID_FALLBACK = true; // fallback to grid mode if all windows have the same size and positions. // not implemented yet
|
||||
const WINDOW_PLACEMENT_NATURAL_ACCURACY = 20; // accuracy of window translate moves (KDE-default: 20)
|
||||
const WINDOW_PLACEMENT_NATURAL_GAPS = 5; // half of the minimum gap between windows
|
||||
const WINDOW_PLACEMENT_NATURAL_MAX_TRANSLATIONS = 5000; // safety limit for preventing endless loop if something is wrong in the algorithm
|
||||
|
||||
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';
|
||||
|
||||
function injectToFunction(parent, name, func) {
|
||||
let origin = parent[name];
|
||||
parent[name] = function() {
|
||||
let ret;
|
||||
ret = origin.apply(this, arguments);
|
||||
if (ret === undefined)
|
||||
ret = func.apply(this, arguments);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
const Rect = new Lang.Class({
|
||||
Name: 'NativeWindowPlacement.Rect',
|
||||
|
||||
_init: function(x, y, width, height) {
|
||||
[this.x, this.y, this.width, this.height] = [x, y, width, height];
|
||||
},
|
||||
|
||||
/**
|
||||
* used in _calculateWindowTransformationsNatural to replace Meta.Rectangle that is too slow.
|
||||
*/
|
||||
copy: function() {
|
||||
return new Rect(this.x, this.y, this.width, this.height);
|
||||
},
|
||||
|
||||
union: function(rect2) {
|
||||
let dest = this.copy();
|
||||
if (rect2.x < dest.x)
|
||||
{
|
||||
dest.width += dest.x - rect2.x;
|
||||
dest.x = rect2.x;
|
||||
}
|
||||
if (rect2.y < dest.y)
|
||||
{
|
||||
dest.height += dest.y - rect2.y;
|
||||
dest.y = rect2.y;
|
||||
}
|
||||
if (rect2.x + rect2.width > dest.x + dest.width)
|
||||
dest.width = rect2.x + rect2.width - dest.x;
|
||||
if (rect2.y + rect2.height > dest.y + dest.height)
|
||||
dest.height = rect2.y + rect2.height - dest.y;
|
||||
|
||||
return dest;
|
||||
},
|
||||
|
||||
adjusted: function(dx, dy, dx2, dy2) {
|
||||
let dest = this.copy();
|
||||
dest.x += dx;
|
||||
dest.y += dy;
|
||||
dest.width += -dx + dx2;
|
||||
dest.height += -dy + dy2;
|
||||
return dest;
|
||||
},
|
||||
|
||||
overlap: function(rect2) {
|
||||
return !((this.x + this.width <= rect2.x) ||
|
||||
(rect2.x + rect2.width <= this.x) ||
|
||||
(this.y + this.height <= rect2.y) ||
|
||||
(rect2.y + rect2.height <= this.y));
|
||||
},
|
||||
|
||||
center: function() {
|
||||
return [this.x + this.width / 2, this.y + this.height / 2];
|
||||
},
|
||||
|
||||
translate: function(dx, dy) {
|
||||
this.x += dx;
|
||||
this.y += dy;
|
||||
}
|
||||
});
|
||||
|
||||
let winInjections, workspaceInjections, connectedSignals;
|
||||
|
||||
function resetState() {
|
||||
winInjections = { };
|
||||
workspaceInjections = { };
|
||||
connectedSignals = [ ];
|
||||
}
|
||||
|
||||
function enable() {
|
||||
resetState();
|
||||
|
||||
let settings = Convenience.getSettings();
|
||||
let useMoreScreen = settings.get_boolean('use-more-screen');
|
||||
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 });
|
||||
|
||||
/**
|
||||
* _calculateWindowTransformationsNatural:
|
||||
* @clones: Array of #MetaWindow
|
||||
*
|
||||
* Returns clones with matching target coordinates and scales to arrange windows in a natural way that no overlap exists and relative window size is preserved.
|
||||
* This function is almost a 1:1 copy of the function
|
||||
* PresentWindowsEffect::calculateWindowTransformationsNatural() from KDE, see:
|
||||
* https://projects.kde.org/projects/kde/kdebase/kde-workspace/repository/revisions/master/entry/kwin/effects/presentwindows/presentwindows.cpp
|
||||
*/
|
||||
Workspace.Workspace.prototype._calculateWindowTransformationsNatural = function(clones) {
|
||||
// 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 ratio = this._width / this._height;
|
||||
let x_gap = Math.max(WORKSPACE_BORDER_GAP, WINDOW_AREA_TOP_GAP * ratio);
|
||||
let y_gap = Math.max(WORKSPACE_BORDER_GAP / ratio, WINDOW_AREA_TOP_GAP);
|
||||
let bottom_padding = 0;
|
||||
|
||||
// If the window captions are below the window, put an additional gap to account for them
|
||||
if (!windowCaptionsOnTop && this._windowOverlays.length)
|
||||
bottom_padding += this._windowOverlays[0].chromeHeights()[1];
|
||||
|
||||
let area = new Rect(this._x + x_gap/2, this._y + y_gap, this._width - x_gap, this._height - y_gap - bottom_padding);
|
||||
|
||||
let bounds = area.copy();
|
||||
|
||||
let direction = 0;
|
||||
let directions = [];
|
||||
let rects = [];
|
||||
for (let i = 0; i < clones.length; i++) {
|
||||
// save rectangles into 4-dimensional arrays representing two corners of the rectangular: [left_x, top_y, right_x, bottom_y]
|
||||
let rect = clones[i].metaWindow.get_outer_rect();
|
||||
rects[i] = new Rect(rect.x, rect.y, rect.width, rect.height);
|
||||
bounds = bounds.union(rects[i]);
|
||||
|
||||
// This is used when the window is on the edge of the screen to try to use as much screen real estate as possible.
|
||||
directions[i] = direction;
|
||||
direction++;
|
||||
if (direction == 4) {
|
||||
direction = 0;
|
||||
}
|
||||
}
|
||||
|
||||
let loop_counter = 0;
|
||||
let overlap;
|
||||
do {
|
||||
overlap = false;
|
||||
for (let i = 0; i < rects.length; i++) {
|
||||
for (let j = 0; j < rects.length; j++) {
|
||||
if (i != j && rects[i].adjusted(-WINDOW_PLACEMENT_NATURAL_GAPS, -WINDOW_PLACEMENT_NATURAL_GAPS,
|
||||
WINDOW_PLACEMENT_NATURAL_GAPS, WINDOW_PLACEMENT_NATURAL_GAPS).overlap(
|
||||
rects[j].adjusted(-WINDOW_PLACEMENT_NATURAL_GAPS, -WINDOW_PLACEMENT_NATURAL_GAPS,
|
||||
WINDOW_PLACEMENT_NATURAL_GAPS, WINDOW_PLACEMENT_NATURAL_GAPS))) {
|
||||
loop_counter++;
|
||||
overlap = true;
|
||||
|
||||
// TODO: something like a Point2D would be nicer here:
|
||||
|
||||
// Determine pushing direction
|
||||
let i_center = rects[i].center();
|
||||
let j_center = rects[j].center();
|
||||
let diff = [j_center[0] - i_center[0], j_center[1] - i_center[1]];
|
||||
|
||||
// Prevent dividing by zero and non-movement
|
||||
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 )
|
||||
diff[0] *= 2;
|
||||
else
|
||||
diff[1] *= 2;
|
||||
|
||||
// Approximate a vector of between 10px and 20px in magnitude in the same direction
|
||||
let length = Math.sqrt(diff[0] * diff[0] + diff[1] * diff[1]);
|
||||
diff[0] = diff[0] * WINDOW_PLACEMENT_NATURAL_ACCURACY / length;
|
||||
diff[1] = diff[1] * WINDOW_PLACEMENT_NATURAL_ACCURACY / length;
|
||||
|
||||
// Move both windows apart
|
||||
rects[i].translate(-diff[0], -diff[1]);
|
||||
rects[j].translate(diff[0], diff[1]);
|
||||
|
||||
|
||||
if (useMoreScreen) {
|
||||
// Try to keep the bounding rect the same aspect as the screen so that more
|
||||
// screen real estate is utilised. We do this by splitting the screen into nine
|
||||
// equal sections, if the window center is in any of the corner sections pull the
|
||||
// window towards the outer corner. If it is in any of the other edge sections
|
||||
// alternate between each corner on that edge. We don't want to determine it
|
||||
// randomly as it will not produce consistant locations when using the filter.
|
||||
// Only move one window so we don't cause large amounts of unnecessary zooming
|
||||
// in some situations. We need to do this even when expanding later just in case
|
||||
// all windows are the same size.
|
||||
// (We are using an old bounding rect for this, hopefully it doesn't matter)
|
||||
let xSection = Math.round((rects[i].x - bounds.x) / (bounds.width / 3));
|
||||
let ySection = Math.round((rects[i].y - bounds.y) / (bounds.height / 3));
|
||||
|
||||
let i_center = rects[i].center();
|
||||
diff[0] = 0;
|
||||
diff[1] = 0;
|
||||
if (xSection != 1 || ySection != 1) { // Remove this if you want the center to pull as well
|
||||
if (xSection == 1)
|
||||
xSection = (directions[i] / 2 ? 2 : 0);
|
||||
if (ySection == 1)
|
||||
ySection = (directions[i] % 2 ? 2 : 0);
|
||||
}
|
||||
if (xSection == 0 && ySection == 0) {
|
||||
diff[0] = bounds.x - i_center[0];
|
||||
diff[1] = bounds.y - i_center[1];
|
||||
}
|
||||
if (xSection == 2 && ySection == 0) {
|
||||
diff[0] = bounds.x + bounds.width - i_center[0];
|
||||
diff[1] = bounds.y - i_center[1];
|
||||
}
|
||||
if (xSection == 2 && ySection == 2) {
|
||||
diff[0] = bounds.x + bounds.width - i_center[0];
|
||||
diff[1] = bounds.y + bounds.height - i_center[1];
|
||||
}
|
||||
if (xSection == 0 && ySection == 2) {
|
||||
diff[0] = bounds.x - i_center[0];
|
||||
diff[1] = bounds.y + bounds.height - i_center[1];
|
||||
}
|
||||
if (diff[0] != 0 || diff[1] != 0) {
|
||||
let length = Math.sqrt(diff[0]*diff[0] + diff[1]*diff[1]);
|
||||
diff[0] *= WINDOW_PLACEMENT_NATURAL_ACCURACY / length / 2; // /2 to make it less influencing than the normal center-move above
|
||||
diff[1] *= WINDOW_PLACEMENT_NATURAL_ACCURACY / length / 2;
|
||||
rects[i].translate(diff[0], diff[1]);
|
||||
}
|
||||
}
|
||||
|
||||
// Update bounding rect
|
||||
bounds = bounds.union(rects[i]);
|
||||
bounds = bounds.union(rects[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
} while (overlap && loop_counter < WINDOW_PLACEMENT_NATURAL_MAX_TRANSLATIONS);
|
||||
|
||||
// Work out scaling by getting the most top-left and most bottom-right window coords.
|
||||
let scale;
|
||||
scale = Math.min(area.width / bounds.width,
|
||||
area.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;
|
||||
|
||||
// Move all windows back onto the screen and set their scale
|
||||
for (let i = 0; i < rects.length; i++) {
|
||||
rects[i].translate(-bounds.x, -bounds.y);
|
||||
}
|
||||
|
||||
// TODO: Implement the KDE part "Try to fill the gaps by enlarging windows if they have the space" here. (If this is wanted)
|
||||
|
||||
// rescale to workspace
|
||||
let scales = [];
|
||||
|
||||
let buttonOuterHeight, captionHeight;
|
||||
let buttonOuterWidth = 0;
|
||||
|
||||
let targets = [];
|
||||
for (let i = 0; i < rects.length; i++) {
|
||||
rects[i].x = rects[i].x * scale + area.x;
|
||||
rects[i].y = rects[i].y * scale + area.y;
|
||||
|
||||
targets[i] = [rects[i].x, rects[i].y, scale];
|
||||
}
|
||||
|
||||
return [clones, targets];
|
||||
}
|
||||
workspaceInjections['_calculateWindowTransformationsNatural'] = undefined;
|
||||
|
||||
/**
|
||||
* _realPositionWindows:
|
||||
* @flags:
|
||||
* INITIAL - this is the initial positioning of the windows.
|
||||
* ANIMATE - Indicates that we need animate changing position.
|
||||
*/
|
||||
workspaceInjections['_realPositionWindows'] = Workspace.Workspace.prototype._realPositionWindows;
|
||||
Workspace.Workspace.prototype._realPositionWindows = function(flags) {
|
||||
if (this._repositionWindowsId > 0) {
|
||||
Mainloop.source_remove(this._repositionWindowsId);
|
||||
this._repositionWindowsId = 0;
|
||||
}
|
||||
|
||||
let clones = this._windows.slice();
|
||||
if (this._reservedSlot)
|
||||
clones.push(this._reservedSlot);
|
||||
|
||||
let initialPositioning = flags & WindowPositionFlags.INITIAL;
|
||||
let animate = flags & WindowPositionFlags.ANIMATE;
|
||||
|
||||
// Start the animations
|
||||
let targets = [];
|
||||
let scales = [];
|
||||
|
||||
[clones, targets] = this._calculateWindowTransformationsNatural(clones);
|
||||
|
||||
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];
|
||||
|
||||
// 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;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
// Make the window slightly transparent to indicate it's hidden
|
||||
Tweener.addTween(clone.actor,
|
||||
{ opacity: 255,
|
||||
time: Overview.ANIMATION_TIME,
|
||||
transition: 'easeInQuad'
|
||||
});
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// position window titles on top of windows in overlay ////
|
||||
if (windowCaptionsOnTop) {
|
||||
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) {
|
||||
let button = this.closeButton;
|
||||
let title = this.title;
|
||||
|
||||
let settings = new Gio.Settings({ schema: BUTTON_LAYOUT_SCHEMA });
|
||||
let layout = settings.get_string(BUTTON_LAYOUT_KEY);
|
||||
let rtl = Clutter.get_default_text_direction() == Clutter.TextDirection.RTL;
|
||||
|
||||
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 buttonX;
|
||||
let buttonY = cloneY - (button.height - button._overlap);
|
||||
if (side == St.Side.LEFT)
|
||||
buttonX = cloneX - (button.width - button._overlap);
|
||||
else
|
||||
buttonX = cloneX + (cloneWidth - button._overlap);
|
||||
|
||||
if (animate)
|
||||
this._animateOverlayActor(button, Math.floor(buttonX), Math.floor(buttonY), button.width);
|
||||
else
|
||||
button.set_position(Math.floor(buttonX), Math.floor(buttonY));
|
||||
|
||||
if (!title.fullWidth)
|
||||
title.fullWidth = title.width;
|
||||
let titleWidth = Math.min(title.fullWidth, cloneWidth);
|
||||
|
||||
let titleX = cloneX + (cloneWidth - titleWidth) / 2;
|
||||
let titleY = cloneY - title.height + title._spacing;
|
||||
|
||||
if (animate)
|
||||
this._animateOverlayActor(title, Math.floor(titleX), Math.floor(titleY), titleWidth);
|
||||
else {
|
||||
title.width = titleWidth;
|
||||
title.set_position(Math.floor(titleX), Math.floor(titleY));
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function removeInjection(object, injection, name) {
|
||||
if (injection[name] === undefined)
|
||||
delete object[name];
|
||||
else
|
||||
object[name] = injection[name];
|
||||
}
|
||||
|
||||
function disable() {
|
||||
for (i in workspaceInjections)
|
||||
removeInjection(Workspace.Workspace.prototype, workspaceInjections, i);
|
||||
for (i in winInjections)
|
||||
removeInjection(Workspace.WindowOverlay.prototype, winInjections, i);
|
||||
|
||||
for each (i in connectedSignals)
|
||||
i.obj.disconnect(i.id);
|
||||
|
||||
global.stage.queue_relayout();
|
||||
resetState();
|
||||
}
|
||||
|
||||
function init() {
|
||||
/* do nothing */
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"uuid": "@uuid@",
|
||||
"extension-id": "@extension_id@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Native Window Placement",
|
||||
"description": "Arrange windows in overview in a more native way",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@",
|
||||
"original-authors": [ "wepmaschda@gmx.de" ]
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
<schemalist gettext-domain="gnome-shell-extensions">
|
||||
<schema id="org.gnome.shell.extensions.native-window-placement" path="/org/gnome/shell/extensions/native-window-placement/">
|
||||
<key name="use-more-screen" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Use more screen for windows</_summary>
|
||||
<_description>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.</_description>
|
||||
</key>
|
||||
<key name="window-captions-on-top" type="b">
|
||||
<default>true</default>
|
||||
<_summary>Place window captions on top</_summary>
|
||||
<_description>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.</_description>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
@@ -1,3 +0,0 @@
|
||||
.window-caption {
|
||||
-shell-caption-spacing: 13px; /* current caption height is 26px => set it to half of it. TODO: better solution needed */
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
EXTENSION_ID = places-menu
|
||||
|
||||
EXTRA_MODULES = placeDisplay.js
|
||||
|
||||
include ../../extension.mk
|
||||
@@ -1,118 +0,0 @@
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
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(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 = 16;
|
||||
|
||||
const PlaceMenuItem = new Lang.Class({
|
||||
Name: 'PlaceMenuItem',
|
||||
Extends: PopupMenu.PopupMenuItem,
|
||||
|
||||
_init: function(info) {
|
||||
this.parent(info.name);
|
||||
this._info = info;
|
||||
|
||||
this.addActor(new St.Icon({ gicon: info.icon,
|
||||
icon_size: PLACE_ICON_SIZE }),
|
||||
{ align: St.Align.END, span: -1 });
|
||||
},
|
||||
|
||||
activate: function(event) {
|
||||
this._info.launch(event.get_time());
|
||||
|
||||
this.parent(event);
|
||||
},
|
||||
});
|
||||
|
||||
const SECTIONS = {
|
||||
'special': N_("Places"),
|
||||
'devices': N_("Devices"),
|
||||
'bookmarks': N_("Bookmarks"),
|
||||
'network': N_("Network")
|
||||
}
|
||||
|
||||
const PlacesMenu = new Lang.Class({
|
||||
Name: 'PlacesMenu.PlacesMenu',
|
||||
Extends: PanelMenu.SystemStatusButton,
|
||||
|
||||
_init: function() {
|
||||
this.parent('folder-symbolic');
|
||||
this.placesManager = new PlaceDisplay.PlacesManager();
|
||||
|
||||
this._sections = { };
|
||||
|
||||
for (let foo in SECTIONS) {
|
||||
let id = foo; // stupid JS closure semantics...
|
||||
this._sections[id] = { section: new PopupMenu.PopupMenuSection(),
|
||||
title: Gettext.gettext(SECTIONS[id]) };
|
||||
this.placesManager.connect(id + '-updated', Lang.bind(this, function() {
|
||||
this._redisplay(id);
|
||||
}));
|
||||
|
||||
this._create(id);
|
||||
this.menu.addMenuItem(this._sections[id].section);
|
||||
}
|
||||
},
|
||||
|
||||
destroy: function() {
|
||||
this.placesManager.destroy();
|
||||
|
||||
this.parent();
|
||||
},
|
||||
|
||||
_redisplay: function(id) {
|
||||
this._sections[id].section.removeAll();
|
||||
this._create(id);
|
||||
},
|
||||
|
||||
_create: function(id) {
|
||||
let title = new PopupMenu.PopupMenuItem(this._sections[id].title,
|
||||
{ reactive: false,
|
||||
style_class: 'popup-subtitle-menu-item' });
|
||||
this._sections[id].section.addMenuItem(title);
|
||||
|
||||
let places = this.placesManager.get(id);
|
||||
|
||||
for (let i = 0; i < places.length; i++)
|
||||
this._sections[id].section.addMenuItem(new PlaceMenuItem(places[i]));
|
||||
|
||||
this._sections[id].section.actor.visible = places.length > 0;
|
||||
}
|
||||
});
|
||||
|
||||
function init() {
|
||||
Convenience.initTranslations();
|
||||
}
|
||||
|
||||
let _indicator;
|
||||
|
||||
function enable() {
|
||||
_indicator = new PlacesMenu;
|
||||
|
||||
let pos = 1;
|
||||
if ('apps-menu' in Main.panel.statusArea)
|
||||
pos = 2;
|
||||
Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
|
||||
}
|
||||
|
||||
function disable() {
|
||||
_indicator.destroy();
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Places Status Indicator",
|
||||
"description": "Add a systems status menu for quickly navigating places in the system",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1,336 +0,0 @@
|
||||
// -*- 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 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();
|
||||
},
|
||||
|
||||
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();
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
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 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")));
|
||||
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;
|
||||
}
|
||||
|
||||
this._places.special.push(info);
|
||||
}
|
||||
|
||||
/*
|
||||
* 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() {
|
||||
this._places.devices = [];
|
||||
this._places.network = [];
|
||||
|
||||
/* Add standard places */
|
||||
this._places.devices.push(new PlaceInfo('devices',
|
||||
Gio.File.new_for_path('/'),
|
||||
_("File System"),
|
||||
'drive-harddisk-symbolic'));
|
||||
this._places.network.push(new PlaceInfo('network',
|
||||
Gio.File.new_for_uri('network:///'),
|
||||
_("Browse network"),
|
||||
'network-workgroup-symbolic'));
|
||||
|
||||
/* first go through all connected drives */
|
||||
let drives = this._volumeMonitor.get_connected_drives();
|
||||
for (let i = 0; i < drives.length; i++) {
|
||||
let volumes = drives[i].get_volumes();
|
||||
|
||||
for(let j = 0; j < volumes.length; j++) {
|
||||
let mount = volumes[j].get_mount();
|
||||
let kind = 'devices';
|
||||
if (volumes[j].get_identifier('class').indexOf('network') >= 0)
|
||||
kind = 'network';
|
||||
|
||||
if(mount != null)
|
||||
this._addMount(kind, 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 kind = 'devices';
|
||||
if (volumes.get_identifier('class').indexOf('network') >= 0)
|
||||
kind = 'network';
|
||||
|
||||
let mount = volumes[i].get_mount();
|
||||
if(mount != null)
|
||||
this._addMount(kind, 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();
|
||||
let kind;
|
||||
if (root.is_native())
|
||||
kind = 'devices';
|
||||
else
|
||||
kind = 'network';
|
||||
|
||||
this._addMount(kind, mounts[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);
|
||||
},
|
||||
|
||||
get: function (kind) {
|
||||
return this._places[kind];
|
||||
}
|
||||
});
|
||||
Signals.addSignalMethods(PlacesManager.prototype);
|
||||
@@ -1 +0,0 @@
|
||||
/* none used*/
|
||||
@@ -1,3 +0,0 @@
|
||||
EXTENSION_ID = static-workspaces
|
||||
|
||||
include ../../extension.mk
|
||||
@@ -1,18 +0,0 @@
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
|
||||
const Meta = imports.gi.Meta;
|
||||
|
||||
function init(metadata) {
|
||||
}
|
||||
|
||||
function enable() {
|
||||
// Override gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema('dynamic-workspaces',
|
||||
'org.gnome.mutter');
|
||||
}
|
||||
|
||||
function disable() {
|
||||
// Restore gnome-shell's overrides
|
||||
Meta.prefs_override_preference_schema('dynamic-workspaces',
|
||||
'org.gnome.shell.overrides');
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Static workspaces",
|
||||
"description": "Disable dynamic workspace management",
|
||||
"original-authors": [ "fmuellner@gnome.org" ],
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
/* This extensions requires no special styling */
|
||||
@@ -1,3 +0,0 @@
|
||||
EXTENSION_ID = systemMonitor
|
||||
|
||||
include ../../extension.mk
|
||||
@@ -1,360 +0,0 @@
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
const Clutter = imports.gi.Clutter;
|
||||
const GTop = imports.gi.GTop;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
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;
|
||||
|
||||
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',
|
||||
|
||||
_init: function() {
|
||||
this._initValues();
|
||||
this.drawing_area = new St.DrawingArea({ reactive: true });
|
||||
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);
|
||||
});
|
||||
|
||||
this.actor = new St.Bin({ style_class: "extension-systemMonitor-indicator-area",
|
||||
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 () {
|
||||
this._updateValues();
|
||||
this.drawing_area.queue_repaint();
|
||||
return true;
|
||||
}));
|
||||
},
|
||||
|
||||
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() {
|
||||
},
|
||||
|
||||
_updateValues: function() {
|
||||
},
|
||||
|
||||
_draw: function(area) {
|
||||
let [width, height] = area.get_surface_size();
|
||||
let themeNode = this.actor.get_theme_node();
|
||||
let cr = area.get_context();
|
||||
|
||||
//draw the background grid
|
||||
let color = themeNode.get_color(this.gridColor);
|
||||
let gridOffset = Math.floor(height / (INDICATOR_NUM_GRID_LINES + 1));
|
||||
for (let i = 1; i <= INDICATOR_NUM_GRID_LINES; ++i) {
|
||||
cr.moveTo(0, i * gridOffset + .5);
|
||||
cr.lineTo(width, i * gridOffset + .5);
|
||||
}
|
||||
Clutter.cairo_set_source_color(cr, color);
|
||||
cr.setLineWidth(1);
|
||||
cr.setDash([4,1], 0);
|
||||
cr.stroke();
|
||||
|
||||
//draw the foreground
|
||||
|
||||
function makePath(values, reverse, nudge) {
|
||||
if (nudge == null) {
|
||||
nudge = 0;
|
||||
}
|
||||
//if we are going in reverse, we are completing the bottom of a chart, so use lineTo
|
||||
if (reverse) {
|
||||
cr.lineTo(values.length - 1, (1 - values[values.length - 1]) * height + nudge);
|
||||
for (let k = values.length - 2; k >= 0; --k) {
|
||||
cr.lineTo(k, (1 - values[k]) * height + nudge);
|
||||
}
|
||||
} else {
|
||||
cr.moveTo(0, (1 - values[0]) * height + nudge);
|
||||
for (let k = 1; k < values.length; ++k) {
|
||||
cr.lineTo(k, (1 - values[k]) * height + nudge);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
let renderStats = this.renderStats;
|
||||
|
||||
// Make sure we don't have more sample points than pixels
|
||||
renderStats.map(Lang.bind(this, function(k){
|
||||
let stat = this.stats[k];
|
||||
if (stat.values.length > width) {
|
||||
stat.values = stat.values.slice(stat.values.length - width, stat.values.length);
|
||||
}
|
||||
}));
|
||||
|
||||
for (let i = 0; i < renderStats.length; ++i) {
|
||||
let stat = this.stats[renderStats[i]];
|
||||
// We outline at full opacity and fill with 40% opacity
|
||||
let outlineColor = themeNode.get_color(stat.color);
|
||||
let color = new Clutter.Color(outlineColor);
|
||||
color.alpha = color.alpha * .4;
|
||||
|
||||
// Render the background between us and the next level
|
||||
makePath(stat.values, false);
|
||||
// If there is a process below us, render the cpu between us and it, otherwise,
|
||||
// render to the bottom of the chart
|
||||
if (i == renderStats.length - 1) {
|
||||
cr.lineTo(stat.values.length - 1, height);
|
||||
cr.lineTo(0, height);
|
||||
cr.closePath();
|
||||
} else {
|
||||
let nextStat = this.stats[renderStats[i+1]];
|
||||
makePath(nextStat.values, true);
|
||||
}
|
||||
cr.closePath()
|
||||
Clutter.cairo_set_source_color(cr, color);
|
||||
cr.fill();
|
||||
|
||||
// Render the outline of this level
|
||||
makePath(stat.values, false, .5);
|
||||
Clutter.cairo_set_source_color(cr, outlineColor);
|
||||
cr.setLineWidth(1.0);
|
||||
cr.setDash([], 0);
|
||||
cr.stroke();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
const CpuIndicator = new Lang.Class({
|
||||
Name: 'SystemMonitor.CpuIndicator',
|
||||
Extends: Indicator,
|
||||
|
||||
_init: function() {
|
||||
this.parent();
|
||||
|
||||
this.gridColor = '-grid-color';
|
||||
this.renderStats = [ 'cpu-user', 'cpu-sys', 'cpu-iowait' ];
|
||||
|
||||
// Make sure renderStats is sorted as necessary for rendering
|
||||
let renderStatOrder = {'cpu-total': 0, 'cpu-user': 1, 'cpu-sys': 2, 'cpu-iowait': 3};
|
||||
this.renderStats = this.renderStats.sort(function(a,b) {
|
||||
return renderStatOrder[a] - renderStatOrder[b];
|
||||
});
|
||||
|
||||
this.setLabelText(_("CPU"));
|
||||
},
|
||||
|
||||
_initValues: function() {
|
||||
this._prev = new GTop.glibtop_cpu;
|
||||
GTop.glibtop_get_cpu(this._prev);
|
||||
|
||||
this.stats = {
|
||||
'cpu-user': {color: '-cpu-user-color', values: []},
|
||||
'cpu-sys': {color: '-cpu-sys-color', values: []},
|
||||
'cpu-iowait': {color: '-cpu-iowait-color', values: []},
|
||||
'cpu-total': {color: '-cpu-total-color', values: []}
|
||||
};
|
||||
},
|
||||
|
||||
_updateValues: function() {
|
||||
let cpu = new GTop.glibtop_cpu;
|
||||
let t = 0.0;
|
||||
GTop.glibtop_get_cpu(cpu);
|
||||
let total = cpu.total - this._prev.total;
|
||||
let user = cpu.user - this._prev.user;
|
||||
let sys = cpu.sys - this._prev.sys;
|
||||
let iowait = cpu.iowait - this._prev.iowait;
|
||||
let idle = cpu.idle - this._prev.idle;
|
||||
|
||||
t += iowait / total;
|
||||
this.stats['cpu-iowait'].values.push(t);
|
||||
t += sys / total;
|
||||
this.stats['cpu-sys'].values.push(t);
|
||||
t += user / total;
|
||||
this.stats['cpu-user'].values.push(t);
|
||||
this.stats['cpu-total'].values.push(1 - idle / total);
|
||||
|
||||
this._prev = cpu;
|
||||
}
|
||||
});
|
||||
|
||||
const MemoryIndicator = new Lang.Class({
|
||||
Name: 'SystemMonitor.MemoryIndicator',
|
||||
Extends: Indicator,
|
||||
|
||||
_init: function() {
|
||||
this.parent();
|
||||
|
||||
this.gridColor = '-grid-color';
|
||||
this.renderStats = [ 'mem-user', 'mem-other', 'mem-cached' ];
|
||||
|
||||
// Make sure renderStats is sorted as necessary for rendering
|
||||
let renderStatOrder = { 'mem-cached': 0, 'mem-other': 1, 'mem-user': 2 };
|
||||
this.renderStats = this.renderStats.sort(function(a,b) {
|
||||
return renderStatOrder[a] - renderStatOrder[b];
|
||||
});
|
||||
|
||||
this.setLabelText(_("Memory"));
|
||||
},
|
||||
|
||||
_initValues: function() {
|
||||
this.mem = new GTop.glibtop_mem;
|
||||
this.stats = {
|
||||
'mem-user': { color: "-mem-user-color", values: [] },
|
||||
'mem-other': { color: "-mem-other-color", values: [] },
|
||||
'mem-cached': { color: "-mem-cached-color", values: [] }
|
||||
};
|
||||
},
|
||||
|
||||
_updateValues: function() {
|
||||
GTop.glibtop_get_mem(this.mem);
|
||||
|
||||
let t = this.mem.user / this.mem.total;
|
||||
this.stats['mem-user'].values.push(t);
|
||||
t += (this.mem.used - this.mem.user - this.mem.cached) / this.mem.total;
|
||||
this.stats['mem-other'].values.push(t);
|
||||
t += this.mem.cached / this.mem.total;
|
||||
this.stats['mem-cached'].values.push(t);
|
||||
}
|
||||
});
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
Main.messageTray.actor.add_actor(this._box);
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
this._indicators.forEach(function(i) { i.destroy(); });
|
||||
this._box.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() {
|
||||
return new Extension();
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"shell-version": ["@shell_current@" ],
|
||||
"uuid": "@uuid@",
|
||||
"extension-id": "@extension_id@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"original-author": "zaspire@rambler.ru",
|
||||
"name": "SystemMonitor",
|
||||
"description": "System Monitor",
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
.extension-systemMonitor-container {
|
||||
spacing: 5px;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.extension-systemMonitor-indicator-area {
|
||||
border: 1px solid #8d8d8d;
|
||||
border-radius: 3px;
|
||||
width: 100px;
|
||||
/* 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);
|
||||
-cpu-sys-color: rgb(255,253,81);
|
||||
-cpu-iowait-color: rgb(210,148,0);
|
||||
-mem-user-color: rgb(210,148,0);
|
||||
-mem-cached-color: rgb(90,90,90);
|
||||
-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;
|
||||
}
|
||||
@@ -1,5 +1,14 @@
|
||||
EXTENSION_ID = user-theme
|
||||
|
||||
include ../../extension.mk
|
||||
include ../../settings.mk
|
||||
|
||||
gschemas_in = org.gnome.shell.extensions.user-theme.gschema.xml.in
|
||||
|
||||
@INTLTOOL_XML_NOMERGE_RULE@
|
||||
|
||||
gsettings_SCHEMAS = $(gschemas_in:.xml.in=.xml)
|
||||
|
||||
@GSETTINGS_RULES@
|
||||
|
||||
CLEANFILES += $(gschemas_in:.xml.in=.valid) $(gsettings_SCHEMAS)
|
||||
EXTRA_DIST += $(gschemas_in)
|
||||
|
||||
@@ -6,48 +6,34 @@ const Gio = imports.gi.Gio;
|
||||
const Lang = imports.lang;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const SETTINGS_SCHEMA = 'org.gnome.shell.extensions.user-theme';
|
||||
const SETTINGS_KEY = 'name';
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Convenience = Me.imports.convenience;
|
||||
|
||||
const ThemeManager = new Lang.Class({
|
||||
Name: 'UserTheme.ThemeManager',
|
||||
function ThemeManager() {
|
||||
this._init();
|
||||
}
|
||||
|
||||
ThemeManager.prototype = {
|
||||
_init: function() {
|
||||
this._settings = Convenience.getSettings();
|
||||
},
|
||||
|
||||
enable: function() {
|
||||
this._changedId = this._settings.connect('changed::'+SETTINGS_KEY, Lang.bind(this, this._changeTheme));
|
||||
this._settings = new Gio.Settings({ schema: SETTINGS_SCHEMA });
|
||||
this._settings.connect('changed::'+SETTINGS_KEY, Lang.bind(this, this._changeTheme));
|
||||
this._changeTheme();
|
||||
},
|
||||
|
||||
disable: function() {
|
||||
if (this._changedId) {
|
||||
this._settings.disconnect(this._changedId);
|
||||
this._changedId = 0;
|
||||
}
|
||||
|
||||
Main.setThemeStylesheet(null);
|
||||
Main.loadTheme();
|
||||
},
|
||||
|
||||
_changeTheme: function() {
|
||||
let _stylesheet = null;
|
||||
let _themeName = this._settings.get_string(SETTINGS_KEY);
|
||||
|
||||
if (_themeName) {
|
||||
let _userCssStylesheet = GLib.get_home_dir() + '/.themes/' + _themeName + '/gnome-shell/gnome-shell.css';
|
||||
let file = Gio.file_new_for_path(_userCssStylesheet);
|
||||
file = Gio.file_new_for_path(_userCssStylesheet);
|
||||
if (file.query_exists(null))
|
||||
_stylesheet = _userCssStylesheet;
|
||||
else {
|
||||
let sysdirs = GLib.get_system_data_dirs();
|
||||
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);
|
||||
file = Gio.file_new_for_path(_userCssStylesheet);
|
||||
if (file.query_exists(null)) {
|
||||
_stylesheet = _userCssStylesheet;
|
||||
break;
|
||||
@@ -63,8 +49,9 @@ const ThemeManager = new Lang.Class({
|
||||
Main.setThemeStylesheet(_stylesheet);
|
||||
Main.loadTheme();
|
||||
}
|
||||
});
|
||||
|
||||
function init() {
|
||||
return new ThemeManager();
|
||||
}
|
||||
|
||||
|
||||
function main(metadata) {
|
||||
new ThemeManager();
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{
|
||||
"uuid": "@uuid@",
|
||||
"extension-id": "@extension_id@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "User Themes",
|
||||
"description": "Load shell themes from user directory",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"shell-version": [ "3.0" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"original-authors": [ "john.stowers@gmail.com" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/* none used */
|
||||
|
||||
@@ -17,34 +17,30 @@ function injectToFunction(parent, name, func) {
|
||||
ret = func.apply(this, arguments);
|
||||
return ret;
|
||||
}
|
||||
return origin;
|
||||
}
|
||||
|
||||
let winInjections, workspaceInjections, workViewInjections, createdActors, connectedSignals;
|
||||
|
||||
function resetState() {
|
||||
winInjections = { };
|
||||
workspaceInjections = { };
|
||||
workViewInjections = { };
|
||||
createdActors = [ ];
|
||||
connectedSignals = [ ];
|
||||
}
|
||||
|
||||
function enable() {
|
||||
resetState();
|
||||
|
||||
function main() {
|
||||
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();
|
||||
}
|
||||
Workspace.WindowOverlay.prototype.getId = function() {
|
||||
return this._id;
|
||||
}
|
||||
Workspace.WindowOverlay.prototype.showTooltip = function() {
|
||||
if (this._id === null)
|
||||
return;
|
||||
this._text.raise_top();
|
||||
this._text.show();
|
||||
this._text.text = (this._windowClone.slotId + 1).toString();
|
||||
this._text.text = this._id.toString();
|
||||
}
|
||||
winInjections['showTooltip'] = undefined;
|
||||
|
||||
Workspace.WindowOverlay.prototype.hideTooltip = function() {
|
||||
if (this._text && this._text.visible)
|
||||
if (this._text.visible)
|
||||
this._text.hide();
|
||||
}
|
||||
winInjections['hideTooltip'] = undefined;
|
||||
|
||||
Workspace.Workspace.prototype.showTooltip = function() {
|
||||
if (this._tip == null)
|
||||
@@ -55,8 +51,6 @@ function enable() {
|
||||
this._tip.show();
|
||||
this._tip.raise_top();
|
||||
}
|
||||
workspaceInjections['showTooltip'] = undefined;
|
||||
|
||||
Workspace.Workspace.prototype.hideTooltip = function() {
|
||||
if (this._tip == null)
|
||||
return;
|
||||
@@ -64,32 +58,27 @@ function enable() {
|
||||
return;
|
||||
this._tip.hide();
|
||||
}
|
||||
workspaceInjections['hideTooltip'] = undefined;
|
||||
|
||||
Workspace.Workspace.prototype.getWindowWithTooltip = function(id) {
|
||||
for (let i = 0; i < this._windows.length; i++) {
|
||||
if ((this._windows[i].slotId + 1) == id)
|
||||
return this._windows[i].metaWindow;
|
||||
for (let i in this._windowOverlays) {
|
||||
if (this._windowOverlays[i] == null)
|
||||
continue;
|
||||
if (this._windowOverlays[i].getId() === id)
|
||||
return this._windowOverlays[i]._windowClone.metaWindow;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
workspaceInjections['getWindowWithTooltip'] = undefined;
|
||||
|
||||
Workspace.Workspace.prototype.showWindowsTooltips = function() {
|
||||
for (let i in this._windowOverlays) {
|
||||
if (this._windowOverlays[i] != null)
|
||||
this._windowOverlays[i].showTooltip();
|
||||
}
|
||||
}
|
||||
workspaceInjections['showWindowsTooltips'] = undefined;
|
||||
|
||||
Workspace.Workspace.prototype.hideWindowsTooltips = function() {
|
||||
for (let i in this._windowOverlays) {
|
||||
if (this._windowOverlays[i] != null)
|
||||
this._windowOverlays[i].hideTooltip();
|
||||
}
|
||||
}
|
||||
workspaceInjections['hideWindowsTooltips'] = undefined;
|
||||
|
||||
WorkspacesView.WorkspacesView.prototype._hideTooltips = function() {
|
||||
if (global.stage.get_key_focus() == global.stage)
|
||||
@@ -98,7 +87,6 @@ function enable() {
|
||||
for (let i = 0; i < this._workspaces.length; i++)
|
||||
this._workspaces[i].hideWindowsTooltips();
|
||||
}
|
||||
workViewInjections['_hideTooltips'] = undefined;
|
||||
|
||||
WorkspacesView.WorkspacesView.prototype._hideWorkspacesTooltips = function() {
|
||||
global.stage.set_key_focus(this._prevFocusActor);
|
||||
@@ -106,27 +94,15 @@ function enable() {
|
||||
for (let i = 0; i < this._workspaces.length; i++)
|
||||
this._workspaces[i].hideTooltip();
|
||||
}
|
||||
workViewInjections['_hideWorkspacesTooltips'] = undefined;
|
||||
|
||||
WorkspacesView.WorkspacesView.prototype._onKeyRelease = function(s, o) {
|
||||
if (this._pickWindow &&
|
||||
(o.get_key_symbol() == Clutter.KEY_Alt_L ||
|
||||
o.get_key_symbol() == Clutter.KEY_Alt_R))
|
||||
if (this._pickWindow && o.get_key_symbol() == Clutter.Alt_L)
|
||||
this._hideTooltips();
|
||||
if (this._pickWorkspace &&
|
||||
(o.get_key_symbol() == Clutter.KEY_Control_L ||
|
||||
o.get_key_symbol() == Clutter.KEY_Control_R))
|
||||
if (this._pickWorkspace && o.get_key_symbol() == Clutter.Control_L)
|
||||
this._hideWorkspacesTooltips();
|
||||
}
|
||||
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) {
|
||||
if (o.get_key_symbol() == Clutter.Alt_L && !this._pickWorkspace) {
|
||||
this._prevFocusActor = global.stage.get_key_focus();
|
||||
global.stage.set_key_focus(null);
|
||||
this._active = global.screen.get_active_workspace_index();
|
||||
@@ -134,9 +110,7 @@ function enable() {
|
||||
this._workspaces[global.screen.get_active_workspace_index()].showWindowsTooltips();
|
||||
return true;
|
||||
}
|
||||
if ((o.get_key_symbol() == Clutter.KEY_Control_L ||
|
||||
o.get_key_symbol() == Clutter.KEY_Control_R)
|
||||
&& !this._pickWindow) {
|
||||
if (o.get_key_symbol() == Clutter.Control_L && !this._pickWindow) {
|
||||
this._prevFocusActor = global.stage.get_key_focus();
|
||||
global.stage.set_key_focus(null);
|
||||
this._pickWorkspace = true;
|
||||
@@ -148,125 +122,86 @@ function enable() {
|
||||
if (global.stage.get_key_focus() != global.stage)
|
||||
return false;
|
||||
|
||||
// ignore shift presses, they're required to get numerals in azerty keyboards
|
||||
if ((this._pickWindow || this._pickWorkspace) &&
|
||||
(o.get_key_symbol() == Clutter.KEY_Shift_L ||
|
||||
o.get_key_symbol() == Clutter.KEY_Shift_R))
|
||||
return true;
|
||||
|
||||
if (this._pickWindow) {
|
||||
if (this._active != global.screen.get_active_workspace_index()) {
|
||||
this._hideTooltips();
|
||||
return false;
|
||||
}
|
||||
|
||||
let c = o.get_key_symbol() - Clutter.KEY_KP_0;
|
||||
if (c > 9 || c <= 0) {
|
||||
c = o.get_key_symbol() - Clutter.KEY_0;
|
||||
if (c > 9 || c <= 0) {
|
||||
this._hideTooltips();
|
||||
global.log(c);
|
||||
return false;
|
||||
}
|
||||
let c = o.get_key_unicode();
|
||||
if (c > '9'.charCodeAt(0) || c < '0'.charCodeAt(0)) {
|
||||
this._hideTooltips();
|
||||
return false;
|
||||
}
|
||||
|
||||
let win = this._workspaces[this._active].getWindowWithTooltip(c);
|
||||
let win = this._workspaces[this._active].getWindowWithTooltip(c - '0'.charCodeAt(0));
|
||||
this._hideTooltips();
|
||||
|
||||
if (win)
|
||||
Main.activateWindow(win, global.get_current_time());
|
||||
|
||||
return true;
|
||||
}
|
||||
if (this._pickWorkspace) {
|
||||
let c = o.get_key_symbol() - Clutter.KEY_KP_0;
|
||||
if (c > 9 || c <= 0) {
|
||||
c = o.get_key_symbol() - Clutter.KEY_0;
|
||||
if (c > 9 || c <= 0) {
|
||||
this._hideWorkspacesTooltips();
|
||||
return false;
|
||||
}
|
||||
let c = o.get_key_unicode();
|
||||
if (c > '9'.charCodeAt(0) || c < '0'.charCodeAt(0)) {
|
||||
this._hideWorkspacesTooltips();
|
||||
return false;
|
||||
}
|
||||
|
||||
let workspace = this._workspaces[c - 1];
|
||||
let workspace = this._workspaces[c - '0'.charCodeAt(0) - 1];
|
||||
if (workspace !== undefined)
|
||||
workspace.metaWorkspace.activate(global.get_current_time());
|
||||
|
||||
this._hideWorkspacesTooltips();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
workViewInjections['_onKeyPress'] = undefined;
|
||||
|
||||
winInjections['_init'] = injectToFunction(Workspace.WindowOverlay.prototype, '_init', function(windowClone, parentActor) {
|
||||
injectToFunction(Workspace.WindowOverlay.prototype, '_init', function(windowClone, parentActor) {
|
||||
this._id = null;
|
||||
createdActors.push(this._text = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip' }));
|
||||
this._text = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip' });
|
||||
this._text.hide();
|
||||
parentActor.add_actor(this._text);
|
||||
});
|
||||
|
||||
winInjections['updatePositions'] = injectToFunction(Workspace.WindowOverlay.prototype, 'updatePositions', function(cloneX, cloneY, cloneWidth, cloneHeight) {
|
||||
injectToFunction(Workspace.WindowOverlay.prototype, 'updatePositions', function(cloneX, cloneY, cloneWidth, cloneHeight) {
|
||||
let textX = cloneX - 2;
|
||||
let textY = cloneY - 2;
|
||||
this._text.set_position(Math.floor(textX) + 5, Math.floor(textY) + 5);
|
||||
this._text.set_position(Math.floor(textX), Math.floor(textY));
|
||||
this._text.raise_top();
|
||||
});
|
||||
|
||||
workspaceInjections['_init'] = injectToFunction(Workspace.Workspace.prototype, '_init', function(metaWorkspace) {
|
||||
injectToFunction(Workspace.Workspace.prototype, '_init', function(metaWorkspace) {
|
||||
if (metaWorkspace && metaWorkspace.index() < 9) {
|
||||
createdActors.push(this._tip = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip',
|
||||
visible: false }));
|
||||
this._tip = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip',
|
||||
visible: false });
|
||||
|
||||
this.actor.add_actor(this._tip);
|
||||
let signalId = this.actor.connect('notify::scale-x', Lang.bind(this, function() {
|
||||
this.actor.connect('notify::scale-x', Lang.bind(this, function() {
|
||||
this._tip.set_scale(1 / this.actor.scale_x, 1 / this.actor.scale_x);
|
||||
}));
|
||||
connectedSignals.push({ obj: this.actor, id: signalId });
|
||||
} else
|
||||
this._tip = null;
|
||||
});
|
||||
injectToFunction(Workspace.Workspace.prototype, 'positionWindows', function(flags) {
|
||||
let visibleClones = this._windows.slice();
|
||||
if (this._reservedSlot)
|
||||
visibleClones.push(this._reservedSlot);
|
||||
|
||||
workViewInjections['_init'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) {
|
||||
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);
|
||||
}
|
||||
});
|
||||
|
||||
injectToFunction(WorkspacesView.WorkspacesView.prototype, '_init', function(width, height, x, y, workspaces) {
|
||||
this._pickWorkspace = false;
|
||||
this._pickWindow = false;
|
||||
this._keyPressEventId = global.stage.connect('key-press-event', Lang.bind(this, this._onKeyPress));
|
||||
this._keyReleaseEventId = global.stage.connect('key-release-event', Lang.bind(this, this._onKeyRelease));
|
||||
connectedSignals.push({ obj: global.stage, id: this._keyPressEventId });
|
||||
connectedSignals.push({ obj: global.stage, id: this._keyReleaseEventId });
|
||||
});
|
||||
|
||||
workViewInjections['_onDestroy'] = injectToFunction(WorkspacesView.WorkspacesView.prototype, '_onDestroy', function() {
|
||||
injectToFunction(WorkspacesView.WorkspacesView.prototype, '_onDestroy', function() {
|
||||
global.stage.disconnect(this._keyPressEventId);
|
||||
global.stage.disconnect(this._keyReleaseEventId);
|
||||
connectedSignals = [ ];
|
||||
});
|
||||
}
|
||||
|
||||
function removeInjection(object, injection, name) {
|
||||
if (injection[name] === undefined)
|
||||
delete object[name];
|
||||
else
|
||||
object[name] = injection[name];
|
||||
}
|
||||
|
||||
function disable() {
|
||||
for (i in workspaceInjections)
|
||||
removeInjection(Workspace.Workspace.prototype, workspaceInjections, i);
|
||||
for (i in winInjections)
|
||||
removeInjection(Workspace.WindowOverlay.prototype, winInjections, i);
|
||||
for (i in workViewInjections)
|
||||
removeInjection(WorkspacesView.WorkspacesView.prototype, workViewInjections, i);
|
||||
|
||||
for each (i in connectedSignals)
|
||||
i.obj.disconnect(i.id);
|
||||
|
||||
for each (i in createdActors)
|
||||
i.destroy();
|
||||
|
||||
resetState();
|
||||
}
|
||||
|
||||
function init() {
|
||||
/* do nothing */
|
||||
}
|
||||
|
||||
@@ -1,9 +1,7 @@
|
||||
{
|
||||
"shell-version": ["@shell_current@" ],
|
||||
"extension-id": "@extension_id@",
|
||||
"shell-version": ["3.0.0", "3.0.1", "3.0.2"],
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"original-author": "zaspire@rambler.ru",
|
||||
"name": "windowNavigator",
|
||||
"description": "Allow keyboard selection of windows and workspaces in overlay mode",
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
.extension-windowsNavigator-window-tooltip {
|
||||
color: #fefefe;
|
||||
color: #ff0000;
|
||||
background: rgba(0,0,0,0.8);
|
||||
border: 1px solid rgba(128,128,128,0.40);
|
||||
border-radius: 10px;
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
EXTENSION_ID = workspace-indicator
|
||||
|
||||
EXTRA_MODULES = prefs.js
|
||||
|
||||
include ../../extension.mk
|
||||
@@ -1,143 +0,0 @@
|
||||
// -*- 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;
|
||||
const Lang = imports.lang;
|
||||
const Mainloop = imports.mainloop;
|
||||
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 Main = imports.ui.main;
|
||||
|
||||
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,
|
||||
|
||||
_init: function(){
|
||||
this.parent(0.0, _("Workspace Indicator"));
|
||||
|
||||
this._currentWorkspace = global.screen.get_active_workspace().index();
|
||||
this.statusLabel = new St.Label({ text: this._labelText() });
|
||||
|
||||
this.actor.add_actor(this.statusLabel);
|
||||
|
||||
this.workspacesItems = [];
|
||||
this._workspaceSection = new PopupMenu.PopupMenuSection();
|
||||
this.menu.addMenuItem(this._workspaceSection);
|
||||
|
||||
this._screenSignals = [];
|
||||
this._screenSignals.push(global.screen.connect_after('workspace-added', Lang.bind(this,this._createWorkspacesSection)));
|
||||
this._screenSignals.push(global.screen.connect_after('workspace-removed', Lang.bind(this,this._createWorkspacesSection)));
|
||||
this._screenSignals.push(global.screen.connect_after('workspace-switched', Lang.bind(this,this._updateIndicator)));
|
||||
|
||||
this.actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
|
||||
this._createWorkspacesSection();
|
||||
|
||||
//styling
|
||||
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._currentWorkspace = global.screen.get_active_workspace().index();
|
||||
this.workspacesItems[this._currentWorkspace].setShowDot(true);
|
||||
|
||||
this.statusLabel.set_text(this._labelText());
|
||||
},
|
||||
|
||||
_labelText : function(workspaceIndex) {
|
||||
if(workspaceIndex == undefined) {
|
||||
workspaceIndex = this._currentWorkspace;
|
||||
return (workspaceIndex + 1).toString();
|
||||
}
|
||||
return Meta.prefs_get_workspace_name(workspaceIndex);
|
||||
},
|
||||
|
||||
_createWorkspacesSection : function() {
|
||||
this._workspaceSection.removeAll();
|
||||
this.workspacesItems = [];
|
||||
this._currentWorkspace = global.screen.get_active_workspace().index();
|
||||
|
||||
let i = 0;
|
||||
for(; i < global.screen.n_workspaces; i++) {
|
||||
this.workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
|
||||
this._workspaceSection.addMenuItem(this.workspacesItems[i]);
|
||||
this.workspacesItems[i].workspaceId = i;
|
||||
this.workspacesItems[i].label_actor = this.statusLabel;
|
||||
let self = this;
|
||||
this.workspacesItems[i].connect('activate', Lang.bind(this, function(actor, event) {
|
||||
this._activate(actor.workspaceId);
|
||||
}));
|
||||
|
||||
if (i == this._currentWorkspace)
|
||||
this.workspacesItems[i].setShowDot(true);
|
||||
}
|
||||
|
||||
this.statusLabel.set_text(this._labelText());
|
||||
},
|
||||
|
||||
_activate : function (index) {
|
||||
if(index >= 0 && index < global.screen.n_workspaces) {
|
||||
let metaWorkspace = global.screen.get_workspace_by_index(index);
|
||||
metaWorkspace.activate(global.get_current_time());
|
||||
}
|
||||
},
|
||||
|
||||
_onScrollEvent : function(actor, event) {
|
||||
let direction = event.get_scroll_direction();
|
||||
let diff = 0;
|
||||
if (direction == Clutter.ScrollDirection.DOWN) {
|
||||
diff = 1;
|
||||
} else if (direction == Clutter.ScrollDirection.UP) {
|
||||
diff = -1;
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
let newIndex = global.screen.get_active_workspace().index() + diff;
|
||||
this._activate(newIndex);
|
||||
},
|
||||
});
|
||||
|
||||
function init(meta) {
|
||||
Convenience.initTranslations();
|
||||
}
|
||||
|
||||
let _indicator;
|
||||
|
||||
function enable() {
|
||||
_indicator = new WorkspaceIndicator;
|
||||
Main.panel.addToStatusArea('workspace-indicator', _indicator);
|
||||
}
|
||||
|
||||
function disable() {
|
||||
_indicator.destroy();
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"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",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"original-authors": [ "erick.red@gmail.com" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -1,207 +0,0 @@
|
||||
// -*- 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;
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
.panel-workspace-indicator {
|
||||
padding: 0 8px;
|
||||
background-color: rgba(200, 200, 200, .5);
|
||||
border: 1px solid #cccccc;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
const DBus = imports.dbus;
|
||||
const Gdk = imports.gi.Gdk;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const GnomeDesktop = imports.gi.GnomeDesktop;
|
||||
const Lang = imports.lang;
|
||||
@@ -17,10 +17,6 @@ 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,
|
||||
@@ -33,23 +29,25 @@ let rotations = [ [ GnomeDesktop.RRRotation.ROTATION_0, N_("Normal") ],
|
||||
[ GnomeDesktop.RRRotation.ROTATION_180, N_("Upside-down") ]
|
||||
];
|
||||
|
||||
const XRandr2Iface = <interface name='org.gnome.SettingsDaemon.XRANDR_2'>
|
||||
<method name='ApplyConfiguration'>
|
||||
<arg type='x' direction='in'/>
|
||||
<arg type='x' direction='in'/>
|
||||
</method>
|
||||
</interface>;
|
||||
const XRandr2Iface = {
|
||||
name: 'org.gnome.SettingsDaemon.XRANDR_2',
|
||||
methods: [
|
||||
{ name: 'ApplyConfiguration', inSignature: 'xx', outSignature: '' },
|
||||
]
|
||||
};
|
||||
let XRandr2 = DBus.makeProxyClass(XRandr2Iface);
|
||||
|
||||
const XRandr2 = Gio.DBusProxy.makeProxyWrapper(XRandr2Iface);
|
||||
function Indicator() {
|
||||
this._init.apply(this, arguments);
|
||||
}
|
||||
|
||||
const Indicator = new Lang.Class({
|
||||
Name: 'XRandRIndicator',
|
||||
Extends: PanelMenu.SystemStatusButton,
|
||||
Indicator.prototype = {
|
||||
__proto__: PanelMenu.SystemStatusButton.prototype,
|
||||
|
||||
_init: function() {
|
||||
this.parent('preferences-desktop-display-symbolic', _("Display"));
|
||||
PanelMenu.SystemStatusButton.prototype._init.call(this, 'preferences-desktop-display');
|
||||
|
||||
this._proxy = new XRandr2(Gio.DBus.session, 'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/XRANDR');
|
||||
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() });
|
||||
@@ -77,7 +75,9 @@ const Indicator = new Lang.Class({
|
||||
this._addOutputItem(config, outputs[i]);
|
||||
}
|
||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
this.menu.addSettingsAction(_("Display Settings"), 'gnome-display-panel.desktop');
|
||||
this.menu.addAction(_("Configure display settings..."), function() {
|
||||
GLib.spawn_command_line_async('gnome-control-center display');
|
||||
});
|
||||
},
|
||||
|
||||
_addOutputItem: function(config, output) {
|
||||
@@ -102,7 +102,7 @@ const Indicator = new Lang.Class({
|
||||
output.set_rotation(bitmask);
|
||||
try {
|
||||
config.save();
|
||||
this._proxy.ApplyConfigurationRemote(0, event.get_time());
|
||||
this._proxy.ApplyConfigurationRemote(global.stage_xwindow, event.get_time());
|
||||
} catch (e) {
|
||||
log ('Could not save monitor configuration: ' + e);
|
||||
}
|
||||
@@ -133,19 +133,11 @@ const Indicator = new Lang.Class({
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
});
|
||||
|
||||
function init(metadata) {
|
||||
Convenience.initTranslations();
|
||||
}
|
||||
|
||||
let _indicator;
|
||||
|
||||
function enable() {
|
||||
_indicator = new Indicator();
|
||||
Main.panel.addToStatusArea('display', _indicator);
|
||||
}
|
||||
function main(metadata) {
|
||||
imports.gettext.bindtextdomain('gnome-shell-extensions', metadata.localedir);
|
||||
|
||||
function disable() {
|
||||
_indicator.destroy();
|
||||
Panel.STANDARD_TRAY_ICON_SHELL_IMPLEMENTATION['display'] = Indicator;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
{
|
||||
"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@" ],
|
||||
"shell-version": [ "3.0" ],
|
||||
"localedir": "@LOCALEDIR@",
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
@@ -6,13 +6,6 @@
|
||||
|
||||
<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
|
||||
additional and optional functionality to GNOME Shell.
|
||||
Most extensions can be installed by configuring --prefix=$HOME/.local,
|
||||
and will be picked automatically at next login.
|
||||
</description>
|
||||
<bug-database rdf:resource="http://bugzilla.gnome.org/browse.cgi?product=gnome-shell&component=extensions" />
|
||||
<homepage rdf:resource="http://live.gnome.org/GnomeShell/Extenstions" />
|
||||
|
||||
<maintainer>
|
||||
|
||||
12
include.mk
12
include.mk
@@ -1,12 +0,0 @@
|
||||
extensionurl = http://git.gnome.org/gnome-shell-extensions
|
||||
|
||||
# Change these to modify how installation is performed
|
||||
topextensiondir = $(datadir)/gnome-shell/extensions
|
||||
extensionbase = @gnome-shell-extensions.gcampax.github.com
|
||||
|
||||
gschemabase = org.gnome.shell.extensions
|
||||
|
||||
uuid = $(EXTENSION_ID)$(extensionbase)
|
||||
gschemaname = $(gschemabase).$(EXTENSION_ID)
|
||||
|
||||
extensiondir = $(topextensiondir)/$(uuid)
|
||||
@@ -1,93 +0,0 @@
|
||||
/* -*- 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;
|
||||
|
||||
/**
|
||||
* initTranslations:
|
||||
* @domain: (optional): the gettext domain to use
|
||||
*
|
||||
* Initialize Gettext to load translations from extensionsdir/locale.
|
||||
* If @domain is not provided, it will be taken from metadata['gettext-domain']
|
||||
*/
|
||||
function initTranslations(domain) {
|
||||
let extension = ExtensionUtils.getCurrentExtension();
|
||||
|
||||
domain = domain || extension.metadata['gettext-domain'];
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* getSettings:
|
||||
* @schema: (optional): the GSettings schema id
|
||||
*
|
||||
* Builds and return a GSettings schema for @schema, using schema files
|
||||
* in extensionsdir/schemas. If @schema is not provided, it is taken from
|
||||
* metadata['settings-schema'].
|
||||
*/
|
||||
function getSettings(schema) {
|
||||
let extension = ExtensionUtils.getCurrentExtension();
|
||||
|
||||
schema = schema || extension.metadata['settings-schema'];
|
||||
|
||||
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 });
|
||||
}
|
||||
|
||||
23
po/LINGUAS
23
po/LINGUAS
@@ -1,39 +1,16 @@
|
||||
ar
|
||||
ca
|
||||
cs
|
||||
da
|
||||
de
|
||||
el
|
||||
en_GB
|
||||
eo
|
||||
es
|
||||
eu
|
||||
fa
|
||||
fi
|
||||
fr
|
||||
gl
|
||||
he
|
||||
hu
|
||||
id
|
||||
it
|
||||
ja
|
||||
ko
|
||||
lv
|
||||
lt
|
||||
nb
|
||||
pa
|
||||
pt
|
||||
pt_BR
|
||||
pl
|
||||
ru
|
||||
sk
|
||||
sl
|
||||
sr
|
||||
sr@latin
|
||||
sv
|
||||
te
|
||||
vi
|
||||
uk
|
||||
zh_CN
|
||||
zh_HK
|
||||
zh_TW
|
||||
|
||||
@@ -1,25 +1,10 @@
|
||||
data/gnome-classic.desktop.in
|
||||
data/gnome-classic.session.desktop.in.in
|
||||
data/gnome-shell-classic.desktop.in.in
|
||||
extensions/alternate-tab/prefs.js
|
||||
extensions/alternative-status-menu/extension.js
|
||||
extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in
|
||||
extensions/apps-menu/extension.js
|
||||
extensions/alternate-tab/extension.js
|
||||
extensions/auto-move-windows/extension.js
|
||||
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in
|
||||
extensions/auto-move-windows/prefs.js
|
||||
extensions/drive-menu/extension.js
|
||||
extensions/dock/extension.js
|
||||
extensions/example/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/gajim/extension.js
|
||||
extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in
|
||||
extensions/windowsNavigator/extension.js
|
||||
extensions/workspace-indicator/extension.js
|
||||
extensions/workspace-indicator/prefs.js
|
||||
extensions/xrandr-indicator/extension.js
|
||||
|
||||
332
po/ar.po
332
po/ar.po
@@ -1,332 +0,0 @@
|
||||
# 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.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-11-21 16:58+0200\n"
|
||||
"PO-Revision-Date: 2012-11-21 17:00+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.0\n"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The application icon mode."
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "مصغّرة فقط"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "Application icon only"
|
||||
msgstr "أيقونة التطبيق فقط"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "مصغّرة وأيقونة التطبيق"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr "كيفية عرض التطبيقات"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:68
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "أظهر نوافذ مساحات العمل الحالية فقط"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:144
|
||||
msgid "Suspend"
|
||||
msgstr "علّق"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:147
|
||||
msgid "Hibernate"
|
||||
msgstr "أسبِت"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:150
|
||||
msgid "Power Off"
|
||||
msgstr "أطفئ"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
msgstr "فعّل التعليق"
|
||||
|
||||
#: ../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 "تحكم في ظهور ”علّق“ في القائمة"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr "فعّل الإسبات"
|
||||
|
||||
#: ../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 "تحكم في ظهور ”أسبِت“ في القائمة"
|
||||
|
||||
#: ../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:72
|
||||
#, c-format
|
||||
msgid "Ejecting drive '%s' failed:"
|
||||
msgstr "فشل إخراج '%s':"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:89
|
||||
msgid "Removable devices"
|
||||
msgstr "الأجهزة المنفصلة"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
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:46
|
||||
msgid "Places"
|
||||
msgstr "الأماكن"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:47
|
||||
msgid "Devices"
|
||||
msgstr "الأجهزة"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:48
|
||||
msgid "Bookmarks"
|
||||
msgstr "العلامات"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:49
|
||||
msgid "Network"
|
||||
msgstr "الشبكة"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:48
|
||||
#, c-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgstr "فشل تشغيل \"%s\""
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:121
|
||||
msgid "Home"
|
||||
msgstr "المنزل"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:195
|
||||
msgid "File System"
|
||||
msgstr "نظام الملفات"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:199
|
||||
msgid "Browse network"
|
||||
msgstr "تصفّح الشبكة"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:213
|
||||
msgid "CPU"
|
||||
msgstr "المعالج"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:266
|
||||
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/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
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"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
msgid "Normal"
|
||||
msgstr "عادي"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
msgid "Left"
|
||||
msgstr "يسار"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
msgid "Right"
|
||||
msgstr "يمين"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
msgid "Upside-down"
|
||||
msgstr "رأسا على عقب"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:50
|
||||
msgid "Display"
|
||||
msgstr "العرض"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:80
|
||||
msgid "Display Settings"
|
||||
msgstr "إعدادات العرض"
|
||||
|
||||
#~ msgid "Drag here to add favorites"
|
||||
#~ msgstr "اسحب إلى هنا ليضاف إلى المفضّلة"
|
||||
|
||||
#~ msgid "New Window"
|
||||
#~ msgstr "نافذة جديدة"
|
||||
|
||||
#~ msgid "Quit Application"
|
||||
#~ msgstr "أغلق التطبيق"
|
||||
|
||||
#~ msgid "Remove from Favorites"
|
||||
#~ msgstr "أزِل من المفضّلة"
|
||||
|
||||
#~ msgid "Add to 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 "الأجهزة المنفصلة"
|
||||
527
po/ca.po
527
po/ca.po
@@ -1,527 +0,0 @@
|
||||
# Catalan 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.
|
||||
# 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: 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: 8bits\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
|
||||
#: ../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/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/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Només miniatures"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "Application icon only"
|
||||
msgstr "Només la icona de l'aplicació"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "Miniatura i icona de l'aplicació"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr "Mostra les finestres com a"
|
||||
|
||||
#: ../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"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:68
|
||||
msgid "Suspend"
|
||||
msgstr "Atura temporalment"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:73
|
||||
msgid "Hibernate"
|
||||
msgstr "Hiberna"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:78
|
||||
msgid "Power Off"
|
||||
msgstr "Apaga"
|
||||
|
||||
#: ../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/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/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr "Habilita la hibernació"
|
||||
|
||||
#: ../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"
|
||||
msgstr ""
|
||||
"Una llista de cadenes, cada una de les quals conté un identificador "
|
||||
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
|
||||
"número de l'espai de treball"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:55
|
||||
msgid "Application"
|
||||
msgstr "Aplicació"
|
||||
|
||||
#: ../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:926
|
||||
msgid "New Window"
|
||||
msgstr "Finestra nova"
|
||||
|
||||
#: ../extensions/dock/extension.js:928
|
||||
msgid "Quit Application"
|
||||
msgstr "Surt de l'aplicació"
|
||||
|
||||
#: ../extensions/dock/extension.js:933
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Suprimeix dels preferits"
|
||||
|
||||
#: ../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 "Position of the dock"
|
||||
msgstr "Posició de l'acoblador"
|
||||
|
||||
#: ../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 ""
|
||||
"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/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/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:229
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s està fora de línia."
|
||||
|
||||
#: ../extensions/gajim/extension.js:232
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s està en línia."
|
||||
|
||||
#: ../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 "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 ""
|
||||
"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 utilitzar més espai de la pantalla per posicionar les miniatures de "
|
||||
"les finestres adaptant-les al ràtio d'aspecte de la pantalla, consolidant-"
|
||||
"les més per reduir la capsa que les envolta. Aquest paràmetre de "
|
||||
"configuració només s'aplica a l'estratègia de posicionament de finestres "
|
||||
"natural."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.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: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 "Theme name"
|
||||
msgstr "Nom del 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 "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:31
|
||||
msgid "Left"
|
||||
msgstr "Esquerra"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
msgid "Right"
|
||||
msgstr "Dreta"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
msgid "Upside-down"
|
||||
msgstr "Capgira"
|
||||
|
||||
#: ../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"
|
||||
352
po/cs.po
352
po/cs.po
@@ -1,92 +1,67 @@
|
||||
# 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.
|
||||
#
|
||||
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-10-08 17:42+0000\n"
|
||||
"PO-Revision-Date: 2012-10-08 22:39+0200\n"
|
||||
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
|
||||
"PO-Revision-Date: 2011-04-17 11:10+0200\n"
|
||||
"Last-Translator: Marek Černocký <marek@manet.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"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The application icon mode."
|
||||
msgstr "Režim ikony aplikace."
|
||||
|
||||
#: ../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 ""
|
||||
"Nastavuje, jak jsou okna zobrazována v přepínači. Platné možnosti jsou "
|
||||
"„thumbnail-only“ (zobrazuje náhled okna), „app-icon-only“ (zobrazuje pouze "
|
||||
"ikonu aplikace) nebo „both“ (zobrazuje obojí)."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Pouze náhled"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "Application icon only"
|
||||
msgstr "Pouze ikona aplikace"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "Náhled a ikona aplikace"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr "Představovat okna jako"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:68
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "Zobrazovat pouze okna z aktuální pracovní plochy"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:86
|
||||
msgid "Suspend"
|
||||
msgstr "Uspat do paměti"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:91
|
||||
#: ../extensions/alternative-status-menu/extension.js:23
|
||||
#: ../extensions/alternative-status-menu/extension.js:27
|
||||
#: ../extensions/alternative-status-menu/extension.js:93
|
||||
msgid "Hibernate"
|
||||
msgstr "Uspat na disk"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:96
|
||||
msgid "Power Off"
|
||||
msgstr "Vypnout"
|
||||
#: ../extensions/alternative-status-menu/extension.js:26
|
||||
#: ../extensions/alternative-status-menu/extension.js:92
|
||||
msgid "Suspend"
|
||||
msgstr "Uspat do paměti"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
msgstr "Povolit uspávání do paměti"
|
||||
#: ../extensions/alternative-status-menu/extension.js:52
|
||||
msgid "Available"
|
||||
msgstr "Dostupný"
|
||||
|
||||
#: ../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 "Řídí viditelnost položky „Uspat do paměti“ v nabídce"
|
||||
#: ../extensions/alternative-status-menu/extension.js:57
|
||||
msgid "Busy"
|
||||
msgstr "Zaneprázdněný"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr "Povolit uspávání na disk"
|
||||
#: ../extensions/alternative-status-menu/extension.js:65
|
||||
msgid "My Account"
|
||||
msgstr "Můj účet"
|
||||
|
||||
#: ../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 "Řídí viditelnost položky „Uspat na disk“ v nabídce"
|
||||
#: ../extensions/alternative-status-menu/extension.js:69
|
||||
msgid "System Settings"
|
||||
msgstr "Nastavení systému"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:76
|
||||
msgid "Lock Screen"
|
||||
msgstr "Zamknout obrazovku"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:80
|
||||
msgid "Switch User"
|
||||
msgstr "Přepnout uživatele"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:85
|
||||
msgid "Log Out..."
|
||||
msgstr "Odhlásit se…"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:100
|
||||
msgid "Power Off..."
|
||||
msgstr "Vypnout…"
|
||||
|
||||
#: ../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"
|
||||
@@ -94,281 +69,78 @@ msgstr ""
|
||||
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
|
||||
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:55
|
||||
msgid "Application"
|
||||
msgstr "Aplikace"
|
||||
#: ../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:64
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
msgid "Workspace"
|
||||
msgstr "Pracovní plocha"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:80
|
||||
msgid "Add rule"
|
||||
msgstr "Přidat pravidlo"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:94
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Vytvoření nového srovnávacího pravidla"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:98
|
||||
msgid "Add"
|
||||
msgstr "Přidat"
|
||||
|
||||
#: ../extensions/dock/extension.js:600
|
||||
#: ../extensions/dock/extension.js:116
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Přetažením sem přidáte do oblíbených"
|
||||
|
||||
#: ../extensions/dock/extension.js:926
|
||||
#: ../extensions/dock/extension.js:417
|
||||
msgid "New Window"
|
||||
msgstr "Nové okno"
|
||||
|
||||
#: ../extensions/dock/extension.js:928
|
||||
#: ../extensions/dock/extension.js:419
|
||||
msgid "Quit Application"
|
||||
msgstr "Ukončit aplikaci"
|
||||
|
||||
#: ../extensions/dock/extension.js:933
|
||||
#: ../extensions/dock/extension.js:424
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Odebrat z oblíbených"
|
||||
|
||||
#: ../extensions/dock/extension.js:934
|
||||
#: ../extensions/dock/extension.js:425
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Přidat do oblíbených"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Position of the dock"
|
||||
msgstr "Poloha doku"
|
||||
|
||||
#: ../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 ""
|
||||
"Nastavuje polohu doku na obrazovce. Povolené hodnoty jsou „right“ (vpravo) "
|
||||
"nebo „left“ (vlevo)."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
||||
msgid "Icon size"
|
||||
msgstr "Velikost ikony"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
||||
msgid "Sets icon size of the dock."
|
||||
msgstr "Nastavuje velikost ikon v doku."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
||||
msgid "Enable/disable autohide"
|
||||
msgstr "Zapnout/vypnout automatické skrývání"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
||||
msgid "Autohide effect"
|
||||
msgstr "Efekt automatického skrývání"
|
||||
|
||||
#: ../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 "Autohide duration"
|
||||
msgstr "Čas automatického skrývání"
|
||||
|
||||
#: ../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/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 ""
|
||||
"Nastavuje monitor, na kterém se má zobrazovat dok. Výchozí hodnotou (-1) je "
|
||||
"hlavní monitor."
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:72
|
||||
#, c-format
|
||||
msgid "Ejecting drive '%s' failed:"
|
||||
msgstr "Vysunutí disku „%s“ selhalo:"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:89
|
||||
msgid "Removable devices"
|
||||
msgstr "Výměnná zařízení"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
msgid "Open File"
|
||||
msgstr "Otevřít soubor"
|
||||
|
||||
#: ../extensions/example/extension.js:17
|
||||
#: ../extensions/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgstr "Ahoj světe!"
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "Alternativní uvítací 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 ""
|
||||
"Pokud není prázdné, obsahuje text, který se objeví po kliknutí na 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 ""
|
||||
"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/example/prefs.js:36
|
||||
msgid "Message:"
|
||||
msgstr "Zpráva:"
|
||||
|
||||
#: ../extensions/gajim/extension.js:226
|
||||
#: ../extensions/gajim/extension.js:219
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s je pryč."
|
||||
|
||||
#: ../extensions/gajim/extension.js:229
|
||||
#: ../extensions/gajim/extension.js:222
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s je odpojen."
|
||||
|
||||
#: ../extensions/gajim/extension.js:232
|
||||
#: ../extensions/gajim/extension.js:225
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s je připojen."
|
||||
|
||||
#: ../extensions/gajim/extension.js:235
|
||||
#: ../extensions/gajim/extension.js:228
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s je zaneprázdněn."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
|
||||
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 ""
|
||||
"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 ""
|
||||
"Pomocí přizpůsobení měřítka obrazovky spolu se zmenšením ohraničení zkusit "
|
||||
"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:3
|
||||
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: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:46
|
||||
msgid "Places"
|
||||
msgstr "Místa"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:47
|
||||
msgid "Devices"
|
||||
msgstr "Zařízení"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:48
|
||||
msgid "Bookmarks"
|
||||
msgstr "Záložky"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:49
|
||||
msgid "Network"
|
||||
msgstr "Síť"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:48
|
||||
#, c-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgstr "Selhalo spuštění „%s“"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:121
|
||||
msgid "Home"
|
||||
msgstr "Domů"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:184
|
||||
msgid "File System"
|
||||
msgstr "Systém souborů"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:188
|
||||
msgid "Browse network"
|
||||
msgstr "Procházet síť"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:213
|
||||
msgid "CPU"
|
||||
msgstr "Procesor"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:266
|
||||
msgid "Memory"
|
||||
msgstr "Paměť"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||
msgid "Theme name"
|
||||
msgstr "Název motivu"
|
||||
|
||||
#: ../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/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Ukazatel pracovní plochy"
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
msgid "Theme name"
|
||||
msgstr "Název motivu"
|
||||
|
||||
#: ../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"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
#: ../extensions/xrandr-indicator/extension.js:26
|
||||
msgid "Normal"
|
||||
msgstr "Normální"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "Doleva"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "Doprava"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "Vzhůru nohama"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:50
|
||||
msgid "Display"
|
||||
msgstr "Obrazovka"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:80
|
||||
msgid "Display Settings"
|
||||
msgstr "Nastavení obrazovky"
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Upravit nastavení zobrazení…"
|
||||
|
||||
209
po/da.po
209
po/da.po
@@ -8,8 +8,8 @@ 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"
|
||||
"POT-Creation-Date: 2011-04-06 22:28+0200\n"
|
||||
"PO-Revision-Date: 2011-04-06 09:07+0000\n"
|
||||
"Last-Translator: Kris Thomsen <lakristho@gmail.com>\n"
|
||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||
"Language: da\n"
|
||||
@@ -18,105 +18,6 @@ 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"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:73
|
||||
msgid "Hibernate"
|
||||
msgstr "Hviletilstand"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:78
|
||||
msgid "Power Off..."
|
||||
msgstr "Sluk..."
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:54
|
||||
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."
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:295
|
||||
msgid "Alt Tab Behaviour"
|
||||
msgstr "Alt-Tab-opførsel"
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:311
|
||||
msgid "All & Thumbnails"
|
||||
msgstr "Alle & miniaturebilleder"
|
||||
|
||||
#: ../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."
|
||||
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."
|
||||
msgstr ""
|
||||
|
||||
#: ../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/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), "
|
||||
@@ -129,120 +30,50 @@ msgstr ""
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Liste over programmer og arbejdsområder"
|
||||
|
||||
#: ../extensions/dock/extension.js:561
|
||||
#: ../extensions/dock/extension.js:116
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Træk hertil for at føje til favoritter"
|
||||
|
||||
#: ../extensions/dock/extension.js:896
|
||||
#: ../extensions/dock/extension.js:417
|
||||
msgid "New Window"
|
||||
msgstr "Nyt vindue"
|
||||
|
||||
#: ../extensions/dock/extension.js:898
|
||||
#: ../extensions/dock/extension.js:419
|
||||
msgid "Quit Application"
|
||||
msgstr "Afslut program"
|
||||
|
||||
#: ../extensions/dock/extension.js:903
|
||||
#: ../extensions/dock/extension.js:424
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Fjern fra favoritter"
|
||||
|
||||
#: ../extensions/dock/extension.js:904
|
||||
#: ../extensions/dock/extension.js:425
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Føj til favoritter"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Autohide duration"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
|
||||
msgid "Autohide effect"
|
||||
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', '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
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hej verden!"
|
||||
|
||||
#: ../extensions/gajim/extension.js:227
|
||||
#: ../extensions/gajim/extension.js:219
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s er ikke til stede."
|
||||
|
||||
#: ../extensions/gajim/extension.js:230
|
||||
#: ../extensions/gajim/extension.js:222
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s er frakoblet."
|
||||
|
||||
#: ../extensions/gajim/extension.js:233
|
||||
#: ../extensions/gajim/extension.js:225
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s er tilgængelig."
|
||||
|
||||
#: ../extensions/gajim/extension.js:236
|
||||
#: ../extensions/gajim/extension.js:228
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s er optaget."
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
|
||||
msgid "Use more screen for windows"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/places-menu/extension.js:36
|
||||
msgid "Removable Devices"
|
||||
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 "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
|
||||
@@ -270,21 +101,3 @@ msgstr "På hovedet"
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Konfigurér skærmindstillinger..."
|
||||
|
||||
#~ msgid "Notifications"
|
||||
#~ msgstr "Beskeder"
|
||||
|
||||
#~ msgid "Online Accounts"
|
||||
#~ msgstr "Online konti"
|
||||
|
||||
#~ msgid "System Settings"
|
||||
#~ msgstr "Systemindstillinger"
|
||||
|
||||
#~ msgid "Lock Screen"
|
||||
#~ msgstr "Lås skærm"
|
||||
|
||||
#~ msgid "Switch User"
|
||||
#~ msgstr "Skift bruger"
|
||||
|
||||
#~ msgid "Log Out..."
|
||||
#~ msgstr "Log ud..."
|
||||
|
||||
399
po/de.po
399
po/de.po
@@ -1,366 +1,147 @@
|
||||
# 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, 2012.
|
||||
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2011, 2012.
|
||||
# Mario Blättermann <mariobl@freenet.de>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-10-24 12:41+0200\n"
|
||||
"PO-Revision-Date: 2012-10-24 12:37+0100\n"
|
||||
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
|
||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
|
||||
"Language: \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-04-16 16:32+0000\n"
|
||||
"PO-Revision-Date: 2011-04-17 11:12+0100\n"
|
||||
"Last-Translator: Mario Blättermann <mariobl@freenet.de>\n"
|
||||
"Language-Team: German <gnome-de@gnome.org>\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"
|
||||
"X-Generator: Gtranslator 2.91.5\n"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The application icon mode."
|
||||
msgstr "Der Modus des Anwendungssymbols."
|
||||
|
||||
#: ../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 ""
|
||||
"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)."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Nur Vorschaubild"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "Application icon only"
|
||||
msgstr "Nur Anwendungssymbol"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "Vorschaubild und Anwendungssymbol"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr "Fenster darstellen als"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:68
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "Nur Fenster der aktuellen Arbeitsfläche anzeigen"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:86
|
||||
msgid "Suspend"
|
||||
msgstr "Bereitschaft"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:91
|
||||
#: ../extensions/alternative-status-menu/extension.js:23
|
||||
#: ../extensions/alternative-status-menu/extension.js:27
|
||||
#: ../extensions/alternative-status-menu/extension.js:93
|
||||
msgid "Hibernate"
|
||||
msgstr "Ruhezustand"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:96
|
||||
msgid "Power Off"
|
||||
#: ../extensions/alternative-status-menu/extension.js:26
|
||||
#: ../extensions/alternative-status-menu/extension.js:92
|
||||
msgid "Suspend"
|
||||
msgstr "Bereitschaft"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:52
|
||||
msgid "Available"
|
||||
msgstr "Verfügbar"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:57
|
||||
msgid "Busy"
|
||||
msgstr "Beschäftigt"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:65
|
||||
msgid "My Account"
|
||||
msgstr "Mein Konto"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:69
|
||||
msgid "System Settings"
|
||||
msgstr "Systemeinstellungen"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:76
|
||||
msgid "Lock Screen"
|
||||
msgstr "Bildschirm sperren"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:80
|
||||
msgid "Switch User"
|
||||
msgstr "Benutzer wechseln"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:85
|
||||
msgid "Log Out..."
|
||||
msgstr "Abmelden …"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:100
|
||||
msgid "Power Off..."
|
||||
msgstr "Ausschalten …"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
msgstr "Bereitschaft einblenden"
|
||||
|
||||
#: ../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 "Die Sichtbarkeit des Menüeintrags »Bereitschaft« festlegen"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr "Ruhezustand einblenden"
|
||||
|
||||
#: ../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 "Die Sichtbarkeit des Menüeintrags »Ruhezustand« festlegen"
|
||||
|
||||
#: ../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/prefs.js:55
|
||||
msgid "Application"
|
||||
msgstr "Anwendung"
|
||||
#: ../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:64
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
msgid "Workspace"
|
||||
msgstr "Arbeitsfläche "
|
||||
#: ../extensions/dock/extension.js:116
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Hierher ziehen, um zu Favoriten hinzuzufügen"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:80
|
||||
msgid "Add rule"
|
||||
msgstr "Regel hinzufügen"
|
||||
#: ../extensions/dock/extension.js:417
|
||||
msgid "New Window"
|
||||
msgstr "Neues Fenster"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:94
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Neue Übereinstimmungsregel erstellen"
|
||||
#: ../extensions/dock/extension.js:419
|
||||
msgid "Quit Application"
|
||||
msgstr "Anwendung beenden"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:98
|
||||
msgid "Add"
|
||||
msgstr "Hinzufügen"
|
||||
#: ../extensions/dock/extension.js:424
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Aus Favoriten entfernen"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:72
|
||||
#, c-format
|
||||
msgid "Ejecting drive '%s' failed:"
|
||||
msgstr "Auswerfen von Laufwerk »%s« schlug fehl:"
|
||||
#: ../extensions/dock/extension.js:425
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Zu Favoriten hinzufügen"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:89
|
||||
msgid "Removable devices"
|
||||
msgstr "Wechseldatenträger"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
msgid "Open File"
|
||||
msgstr "Datei öffnen"
|
||||
|
||||
#: ../extensions/example/extension.js:17
|
||||
#: ../extensions/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hallo, Welt!"
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "Alternative Begrüßungstext."
|
||||
|
||||
#: ../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."
|
||||
|
||||
#. 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/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 "
|
||||
"restarting the shell to have any effect."
|
||||
msgstr ""
|
||||
"Falls wahr, so werden die Fensterbeschriftungen über dem zugehörigen "
|
||||
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
|
||||
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
|
||||
|
||||
#: ../extensions/places-menu/extension.js:46
|
||||
msgid "Places"
|
||||
msgstr "Orte"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:47
|
||||
msgid "Devices"
|
||||
msgstr "Geräte"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:48
|
||||
msgid "Bookmarks"
|
||||
msgstr "Lesezeichen"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:49
|
||||
msgid "Network"
|
||||
msgstr "Netzwerk"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:48
|
||||
#: ../extensions/gajim/extension.js:219
|
||||
#, c-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgstr "Starten von »%s« fehlgeschlagen"
|
||||
msgid "%s is away."
|
||||
msgstr "%s ist abwesend."
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:121
|
||||
msgid "Home"
|
||||
msgstr "Persönlicher Ordner"
|
||||
#: ../extensions/gajim/extension.js:222
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s ist abgemeldet."
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:184
|
||||
msgid "File System"
|
||||
msgstr "Dateisystem"
|
||||
#: ../extensions/gajim/extension.js:225
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s ist angemeldet."
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:188
|
||||
msgid "Browse network"
|
||||
msgstr "Netzwerk durchsuchen"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:213
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:266
|
||||
msgid "Memory"
|
||||
msgstr "Speicher"
|
||||
#: ../extensions/gajim/extension.js:228
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s ist beschäftigt."
|
||||
|
||||
#: ../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/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbeitsflächenindikator"
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
msgid "Theme name"
|
||||
msgstr "Themenname"
|
||||
|
||||
#: ../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"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
#: ../extensions/xrandr-indicator/extension.js:26
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "Links"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "Rechts"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "Kopfüber"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:50
|
||||
msgid "Display"
|
||||
msgstr "Anzeige"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:80
|
||||
msgid "Display Settings"
|
||||
msgstr "Bildschirmeinstellungen"
|
||||
|
||||
#~ 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"
|
||||
|
||||
#~ msgid "Add to Favorites"
|
||||
#~ msgstr "Zu Favoriten hinzufügen"
|
||||
|
||||
# Dock = das Dock ? -ck
|
||||
# Sofern es sich nicht um das Original-Dash handelt, ja. -mb
|
||||
#~ msgid "Position of the dock"
|
||||
#~ msgstr "Position des Docks"
|
||||
|
||||
#~ 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«"
|
||||
|
||||
#~ msgid "Icon size"
|
||||
#~ msgstr "Symbolgröße"
|
||||
|
||||
#~ msgid "Sets icon size of the dock."
|
||||
#~ msgstr "Legt die Symbolgröße für das Dock fest"
|
||||
|
||||
#~ msgid "Enable/disable autohide"
|
||||
#~ msgstr "Automatisches Verbergen aktivieren/deaktivieren"
|
||||
|
||||
#~ msgid "Autohide effect"
|
||||
#~ msgstr "Effekt automatisch verbergen"
|
||||
|
||||
#~ 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«"
|
||||
|
||||
#~ msgid "Autohide duration"
|
||||
#~ msgstr "Dauer automatisch verbergen"
|
||||
|
||||
#~ msgid "Sets the time duration of the autohide effect."
|
||||
#~ msgstr "Legt die Effektdauer für automatisches Verbergen fest."
|
||||
|
||||
#~ msgid "Monitor"
|
||||
#~ msgstr "Bildschirm"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Sets monitor to display dock in. The default value (-1) is the primary "
|
||||
#~ "monitor."
|
||||
#~ msgstr ""
|
||||
#~ "Legt den Bildschirm fest, in dem das Dock angezeigt werden soll. Die "
|
||||
#~ "Voreinstellung (-1) entspricht dem primären Bildschirm."
|
||||
|
||||
#~ msgid "%s is away."
|
||||
#~ msgstr "%s ist abwesend."
|
||||
|
||||
#~ msgid "%s is offline."
|
||||
#~ msgstr "%s ist abgemeldet."
|
||||
|
||||
#~ msgid "%s is online."
|
||||
#~ msgstr "%s ist angemeldet."
|
||||
|
||||
#~ msgid "%s is busy."
|
||||
#~ msgstr "%s ist beschäftigt."
|
||||
|
||||
#~ msgid "Removable Devices"
|
||||
#~ msgstr "Wechseldatenträger"
|
||||
|
||||
#~ msgid "The alt tab behaviour."
|
||||
#~ msgstr "Das Verhalten bei Eingabe von Alt-Tab."
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Bildschirmeinstellungen festlegen …"
|
||||
|
||||
536
po/el.po
536
po/el.po
@@ -1,536 +0,0 @@
|
||||
# Greek 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.
|
||||
# ioza1964 <ioza1964@yahoo.gr>, 2011.
|
||||
# Ιωάννης Ζαμπούκας <ioza1964@yahoo.gr>, 2011.
|
||||
#
|
||||
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-10-08 17:42+0000\n"
|
||||
"PO-Revision-Date: 2012-10-11 17:16+0200\n"
|
||||
"Last-Translator: Tom Tryfonidis <tomtryf@gmail.com>\n"
|
||||
"Language-Team: Greek <team@gnome.gr>\n"
|
||||
"Language: el\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"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The application icon mode."
|
||||
msgstr "Η λειτουργία εικονιδίου της εφαρμογής"
|
||||
|
||||
#: ../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 ""
|
||||
"Διαμορφώνει πως τα παράθυρα θα εμφανίζονται στν εναλλαγή των παραθύρων. "
|
||||
"Έγκυρες ρυθμίσεις είναι 'thumbnail-only' (εμφανίζει μια μικρογραφία του "
|
||||
"παραθύρου), 'app-icon-only' (εμφανίζει μόνο το εικονίδιο της εφαρμογής) ή "
|
||||
"'both'."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Μόνο μικρογραφίες"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "Application icon only"
|
||||
msgstr "Μόνο εικονίδια εφαρμογών"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "Εικονίδια μικρογραφιών και εφαρμογών"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr "Παρουσίαση παραθύρων ως"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:68
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "Προβολή των παραθύρων μόνο στον τρέχων χώρο εργασίας"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:86
|
||||
msgid "Suspend"
|
||||
msgstr "Αναστολή"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:91
|
||||
msgid "Hibernate"
|
||||
msgstr "Αδρανοποίηση"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:96
|
||||
msgid "Power Off"
|
||||
msgstr "Τερματισμός"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
msgstr "Ενεργοποίηση αναστολής"
|
||||
|
||||
#: ../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 "Ελέγχει την ορατότητα του αντικειμένου Αναστολη"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr "Ενεργοποίηση αδρανοποίησης"
|
||||
|
||||
#: ../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 "Ελέγχει την ορατότητα του αντικειμένου Αδρανοποίηση"
|
||||
|
||||
#: ../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/dock/extension.js:600
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Σύρετε εδώ για να προσθέσετε αγαπημένα"
|
||||
|
||||
#: ../extensions/dock/extension.js:926
|
||||
msgid "New Window"
|
||||
msgstr "Νέο παράθυρο"
|
||||
|
||||
#: ../extensions/dock/extension.js:928
|
||||
msgid "Quit Application"
|
||||
msgstr "Εγκατάλειψη εφαρμογής"
|
||||
|
||||
#: ../extensions/dock/extension.js:933
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Απομάκρυνση από τα αγαπημένα"
|
||||
|
||||
#: ../extensions/dock/extension.js:934
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Προσθήκη στα αγαπημένα"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Position of the dock"
|
||||
msgstr "Θέση υποδοχέα"
|
||||
|
||||
#: ../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 ""
|
||||
"Ρυθμίζει τη θέση του υποδοχέα στην οθόνη. Επιτρεπόμενες τιμές είναι right "
|
||||
"(«δεξιά») ή right («αριστερά»)"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
||||
msgid "Icon size"
|
||||
msgstr "Μέγεθος εικονιδίου"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
||||
msgid "Sets icon size of the dock."
|
||||
msgstr "Ρυθμίζει το μέγεθος εικόνας του υποδοχέα."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
||||
msgid "Enable/disable autohide"
|
||||
msgstr "Ενεργοποίηση/απενεργοποίηση αυτόματης απόκρυψης"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
||||
msgid "Autohide effect"
|
||||
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 ""
|
||||
"Ρυθμίζει το εφέ κρυψίματος του υποδοχέα. Επιτρεπόμενες τιμές είναι 'resize', "
|
||||
"'rescale' και 'move'"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
|
||||
msgid "Autohide duration"
|
||||
msgstr "Διάρκεια αυτόματης απόκρυψης"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
|
||||
msgid "Sets the time duration of the autohide effect."
|
||||
msgstr "Ρυθμίζει την χρονική διάρκεια του εφέ αυτόματης απόκρυψης."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
|
||||
msgid "Monitor"
|
||||
msgstr "Οθόνη"
|
||||
|
||||
#: ../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 ""
|
||||
"Ορίζει την οθόνη για την εμφάνιση του ταμπλό. Η προεπιλεγμένη τιμή (-1) "
|
||||
"είναι η κύρια οθόνη."
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:72
|
||||
#, c-format
|
||||
msgid "Ejecting drive '%s' failed:"
|
||||
msgstr "Απέτυχε η εξαγωγή του δίσκου '%s':"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:89
|
||||
msgid "Removable devices"
|
||||
msgstr "Αφαιρούμενες συσκευές"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
#| msgid "Open file manager"
|
||||
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/gajim/extension.js:226
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s είναι εκτός."
|
||||
|
||||
#: ../extensions/gajim/extension.js:229
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s είναι εκτός σύνδεσης."
|
||||
|
||||
#: ../extensions/gajim/extension.js:232
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s είναι σε σύνδεση."
|
||||
|
||||
#: ../extensions/gajim/extension.js:235
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s είναι απασχολημένος/η."
|
||||
|
||||
#: ../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:46
|
||||
msgid "Places"
|
||||
msgstr "Τοποθεσίες"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:47
|
||||
msgid "Devices"
|
||||
msgstr "Συσκευές"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:48
|
||||
msgid "Bookmarks"
|
||||
msgstr "Σελιδοδείκτες"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:49
|
||||
msgid "Network"
|
||||
msgstr "Δίκτυο"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:48
|
||||
#, c-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgstr "Αποτυχία εκκίνησης \"%s\""
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:121
|
||||
msgid "Home"
|
||||
msgstr "Προσωπικός φάκελος"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:184
|
||||
msgid "File System"
|
||||
msgstr "Σύστημα αρχείων"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:188
|
||||
msgid "Browse network"
|
||||
msgstr "Περιήγηση δικτύου"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:213
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:266
|
||||
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/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
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"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
msgid "Normal"
|
||||
msgstr "Κανονικό"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
msgid "Left"
|
||||
msgstr "Αριστερά"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
msgid "Right"
|
||||
msgstr "Δεξιά"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
msgid "Upside-down"
|
||||
msgstr "Αναποδογυρισμένο"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:50
|
||||
msgid "Display"
|
||||
msgstr "Οθόνη"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:80
|
||||
msgid "Display Settings"
|
||||
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 "Στρατηγική τοποθέτησης παραθύρου"
|
||||
476
po/en_GB.po
476
po/en_GB.po
@@ -1,476 +0,0 @@
|
||||
# British English translation of 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.
|
||||
# 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: 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\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../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/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/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Thumbnail only"
|
||||
|
||||
#: ../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 "Suspend"
|
||||
msgstr "Suspend"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:73
|
||||
msgid "Hibernate"
|
||||
msgstr "Hibernate"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:78
|
||||
msgid "Power Off"
|
||||
msgstr "Power Off"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
msgstr "Enable suspending"
|
||||
|
||||
#: ../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/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr "Enable hibernating"
|
||||
|
||||
#: ../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 "Application and workspace list"
|
||||
msgstr "Application and workspace list"
|
||||
|
||||
#: ../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:926
|
||||
msgid "New Window"
|
||||
msgstr "New Window"
|
||||
|
||||
#: ../extensions/dock/extension.js:928
|
||||
msgid "Quit Application"
|
||||
msgstr "Quit Application"
|
||||
|
||||
#: ../extensions/dock/extension.js:933
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Remove from Favourites"
|
||||
|
||||
#: ../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 "Position of the dock"
|
||||
msgstr "Position of the dock"
|
||||
|
||||
#: ../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', 'rescale' and "
|
||||
"'move'"
|
||||
msgstr ""
|
||||
"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 "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/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/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:229
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s is offline."
|
||||
|
||||
#: ../extensions/gajim/extension.js:232
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s is online."
|
||||
|
||||
#: ../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 "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: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 "Theme name"
|
||||
msgstr "Theme name"
|
||||
|
||||
#: ../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:31
|
||||
msgid "Left"
|
||||
msgstr "Left"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
msgid "Right"
|
||||
msgstr "Right"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
msgid "Upside-down"
|
||||
msgstr "Upside-down"
|
||||
|
||||
#: ../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…"
|
||||
245
po/eo.po
245
po/eo.po
@@ -1,245 +0,0 @@
|
||||
# Esperanto translation for gnome-shell-extensions.
|
||||
# Copyright (C) 2011 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>, 2011.
|
||||
#
|
||||
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-28 20:45+0000\n"
|
||||
"PO-Revision-Date: 2011-12-29 13:44+0100\n"
|
||||
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
|
||||
"Language-Team: Esperanto <gnome-l10n-eo@lists.launchpad.net>\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"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:68
|
||||
msgid "Suspend"
|
||||
msgstr "Dormeti"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:73
|
||||
msgid "Hibernate"
|
||||
msgstr "Pasivumigi"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:78
|
||||
msgid "Power Off..."
|
||||
msgstr "Elŝalti..."
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:54
|
||||
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 ""
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:295
|
||||
msgid "Alt Tab Behaviour"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:311
|
||||
msgid "All & Thumbnails"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:318
|
||||
msgid "Workspace & Icons"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:325
|
||||
msgid "Cancel"
|
||||
msgstr "Nuligi"
|
||||
|
||||
#: ../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."
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
|
||||
msgid "The alt tab behaviour."
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
|
||||
msgid "Application and workspace list"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/dock/extension.js:561
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/dock/extension.js:896
|
||||
msgid "New Window"
|
||||
msgstr "Nova fenestro"
|
||||
|
||||
#: ../extensions/dock/extension.js:898
|
||||
msgid "Quit Application"
|
||||
msgstr "Ĉesi aplikaĵon"
|
||||
|
||||
#: ../extensions/dock/extension.js:903
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Forigi de la preferataj aplikaĵoj"
|
||||
|
||||
#: ../extensions/dock/extension.js:904
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Aldoni al la preferataj aplikaĵoj"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Autohide duration"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
|
||||
msgid "Autohide effect"
|
||||
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 "Piktogramgrando"
|
||||
|
||||
#: ../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 "Malfermi dosieradministrilo"
|
||||
|
||||
#: ../extensions/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgstr "Saluton, mondo!"
|
||||
|
||||
#: ../extensions/gajim/extension.js:227
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s estas fora."
|
||||
|
||||
#: ../extensions/gajim/extension.js:230
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s estas nekonektita."
|
||||
|
||||
#: ../extensions/gajim/extension.js:233
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s estas konektita."
|
||||
|
||||
#: ../extensions/gajim/extension.js:236
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s estas okupata."
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
|
||||
msgid "Use more screen for windows"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/places-menu/extension.js:36
|
||||
msgid "Removable Devices"
|
||||
msgstr "Demeteblaj aparatoj"
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
msgid "Theme name"
|
||||
msgstr "Etosnomo"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:26
|
||||
msgid "Normal"
|
||||
msgstr "Normale"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "Maldekstre"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "Dekstre"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "Renversite"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
#, fuzzy
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Agordi ekranagordojn..."
|
||||
570
po/es.po
570
po/es.po
@@ -1,538 +1,146 @@
|
||||
# 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.
|
||||
# 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.
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
|
||||
#
|
||||
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"
|
||||
"shell&keywords=I18N+L10N&component=extensions\n"
|
||||
"POT-Creation-Date: 2012-12-05 14:20+0000\n"
|
||||
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
|
||||
"PO-Revision-Date: 2011-04-21 19:31+0200\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
|
||||
"Language-Team: Español <gnome-es-list@gnome.org>\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"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
|
||||
#: ../data/gnome-classic.desktop.in.h:1
|
||||
#: ../data/gnome-classic.session.desktop.in.in.h:1
|
||||
msgid "GNOME Classic"
|
||||
msgstr "GNOME clásico"
|
||||
|
||||
#: ../data/gnome-classic.desktop.in.h:2
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Esta sesión inicia GNOME clásico"
|
||||
|
||||
#: ../data/gnome-shell-classic.desktop.in.in.h:1
|
||||
msgid "GNOME Shell Classic"
|
||||
msgstr "GNOME Shell clásico"
|
||||
|
||||
#: ../data/gnome-shell-classic.desktop.in.in.h:2
|
||||
#| msgid "Thumbnail and application icon"
|
||||
msgid "Window management and application launching"
|
||||
msgstr "Gestión de ventanas e inicio de aplicaciones"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The application icon mode."
|
||||
msgstr "El modo de icono de la aplicación."
|
||||
|
||||
#: ../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 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)."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Sólo miniaturas"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "Application icon only"
|
||||
msgstr "Sólo icono de la aplicación"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "Miniatura e icono de la aplicación"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr "Presentar ventanas como"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:68
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "Mostrar ventanas solamente en el área de trabajo actual"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:144
|
||||
msgid "Suspend"
|
||||
msgstr "Suspender"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:23
|
||||
#: ../extensions/alternative-status-menu/extension.js:27
|
||||
#: ../extensions/alternative-status-menu/extension.js:93
|
||||
msgid "Hibernate"
|
||||
msgstr "Hibernar"
|
||||
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:150
|
||||
msgid "Power Off"
|
||||
#: ../extensions/alternative-status-menu/extension.js:26
|
||||
#: ../extensions/alternative-status-menu/extension.js:92
|
||||
msgid "Suspend"
|
||||
msgstr "Suspender"
|
||||
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
#: ../extensions/alternative-status-menu/extension.js:52
|
||||
msgid "Available"
|
||||
msgstr "Disponible"
|
||||
|
||||
|
||||
#: ../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"
|
||||
#: ../extensions/alternative-status-menu/extension.js:57
|
||||
msgid "Busy"
|
||||
msgstr "Ocupado"
|
||||
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
#: ../extensions/alternative-status-menu/extension.js:65
|
||||
msgid "My Account"
|
||||
msgstr "Mi cuenta"
|
||||
|
||||
|
||||
#: ../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"
|
||||
#: ../extensions/alternative-status-menu/extension.js:69
|
||||
msgid "System Settings"
|
||||
msgstr "Configuración del sistema"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:76
|
||||
msgid "Lock Screen"
|
||||
msgstr "Bloquear la pantalla"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:80
|
||||
msgid "Switch User"
|
||||
msgstr "Cambiar de usuario"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:85
|
||||
msgid "Log Out..."
|
||||
msgstr "Cerrar la sesión…"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:100
|
||||
msgid "Power Off..."
|
||||
msgstr "Apagar…"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Lista de aplicaciones y áreas de trabajo"
|
||||
|
||||
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, conteniendo cada una un ID de aplicación (nombre de "
|
||||
"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 espacio de "
|
||||
"trabajo"
|
||||
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:55
|
||||
msgid "Application"
|
||||
#: ../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:64
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
msgid "Workspace"
|
||||
#: ../extensions/dock/extension.js:116
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Arrastrar aquí para añadir a favoritos"
|
||||
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:80
|
||||
msgid "Add rule"
|
||||
#: ../extensions/dock/extension.js:417
|
||||
msgid "New Window"
|
||||
msgstr "Ventana nueva"
|
||||
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:94
|
||||
msgid "Create new matching rule"
|
||||
#: ../extensions/dock/extension.js:419
|
||||
msgid "Quit Application"
|
||||
msgstr "Salir de la aplicación"
|
||||
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:98
|
||||
msgid "Add"
|
||||
#: ../extensions/dock/extension.js:424
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Quitar de favoritos"
|
||||
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:72
|
||||
#, c-format
|
||||
msgid "Ejecting drive '%s' failed:"
|
||||
#: ../extensions/dock/extension.js:425
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Añadir a favoritos"
|
||||
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:89
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositivos extraíbles"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
msgid "Open File"
|
||||
msgstr "Abrir archivo"
|
||||
|
||||
#: ../extensions/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgid "Hello, world!"
|
||||
msgstr "¡Hola, Mundo!"
|
||||
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "Texto de bienvenida alternativo"
|
||||
|
||||
#: ../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."
|
||||
|
||||
#. 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/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 "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
"restarting the shell to have any effect."
|
||||
msgstr ""
|
||||
"Si es cierto, situar los títulos de las ventanas encima de las miniaturas "
|
||||
"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/places-menu/extension.js:46
|
||||
msgid "Places"
|
||||
msgstr "Lugares"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:47
|
||||
msgid "Devices"
|
||||
msgstr "Dispositivos"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:48
|
||||
msgid "Bookmarks"
|
||||
msgstr "Marcadores"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:49
|
||||
msgid "Network"
|
||||
msgstr "Red"
|
||||
|
||||
#: ../extensions/gajim/extension.js:219
|
||||
#, c-format
|
||||
#, c-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgid "%s is away."
|
||||
msgstr "%s no está disponible."
|
||||
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:121
|
||||
msgid "Home"
|
||||
#: ../extensions/gajim/extension.js:222
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s está desconectado."
|
||||
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:195
|
||||
msgid "File System"
|
||||
#: ../extensions/gajim/extension.js:225
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s está conectado."
|
||||
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:199
|
||||
msgid "Browse network"
|
||||
msgstr "Examinar la red"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:213
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:266
|
||||
msgid "Memory"
|
||||
#: ../extensions/gajim/extension.js:228
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s está ocupado."
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||
msgid "Theme name"
|
||||
msgstr "Nombre del tema"
|
||||
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
|
||||
|
||||
|
||||
#: ../extensions/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
msgid "Theme name"
|
||||
msgstr "Nombre del tema"
|
||||
|
||||
|
||||
#: ../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"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:26
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "Izquierda"
|
||||
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "Derecha"
|
||||
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "Hacia abajo"
|
||||
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:50
|
||||
msgid "Display"
|
||||
msgstr "Pantalla"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:80
|
||||
msgid "Display Settings"
|
||||
msgstr "Configuración de pantalla"
|
||||
|
||||
#~ 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 "Add to Favorites"
|
||||
#~ msgstr "Añadir a 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"
|
||||
#~ msgstr "Notificaciones"
|
||||
|
||||
#~ msgid "Online Accounts"
|
||||
#~ msgstr "Cuentas en línea"
|
||||
|
||||
#~ msgid "Lock Screen"
|
||||
#~ msgstr "Bloquear la pantalla"
|
||||
|
||||
#~ msgid "Switch User"
|
||||
#~ msgstr "Cambiar de usuario"
|
||||
|
||||
#~ msgid "Log Out..."
|
||||
#~ msgstr "Cerrar la sesión…"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "El algoritmo usado para situar las miniaturas en la vista previa. "
|
||||
#~ "«grid» (tabla) para usar el algoritmo predeterminado basado en una tabla, "
|
||||
#~ "«natural» para usar otro que refleja mejor la posición y tamaño de la "
|
||||
#~ "ventana representada."
|
||||
|
||||
#~ msgid "Window placement strategy"
|
||||
#~ msgstr "Estrategia de ubicación de ventanas"
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "Disponible"
|
||||
|
||||
#~ msgid "Busy"
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Configurar las opciones de pantalla…"
|
||||
|
||||
284
po/eu.po
284
po/eu.po
@@ -1,284 +0,0 @@
|
||||
# Basque 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.
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
|
||||
# assar <asiersar@yahoo.com>, 2011.
|
||||
# Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>, 2011.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-10-10 21:36+0200\n"
|
||||
"PO-Revision-Date: 2011-10-10 21:36+0200\n"
|
||||
"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>\n"
|
||||
"Language-Team: Basque <itzulpena@euskalgnu.org>\n"
|
||||
"Language: eu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 1.0\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:44
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:52
|
||||
#, fuzzy
|
||||
msgid "Online Accounts"
|
||||
msgstr "Nire kontua"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:56
|
||||
msgid "System Settings"
|
||||
msgstr "Sistemaren konfigurazioa"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:63
|
||||
msgid "Lock Screen"
|
||||
msgstr "Blokeatu pantaila"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:68
|
||||
msgid "Switch User"
|
||||
msgstr "Aldatu erabiltzailea"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:73
|
||||
msgid "Log Out..."
|
||||
msgstr "Itxi saioa..."
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:81
|
||||
msgid "Suspend"
|
||||
msgstr "Eseki"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:87
|
||||
msgid "Hibernate"
|
||||
msgstr "Hibernatu"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:93
|
||||
msgid "Power Off..."
|
||||
msgstr "Itzali..."
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/alternate-tab/extension.js:269
|
||||
msgid "Alt Tab Behaviour"
|
||||
msgstr ""
|
||||
|
||||
#: ../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."
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:4
|
||||
msgid "The alt tab behaviour."
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
"Kateen zerrenda bat, bakoitzak aplikazio-ID bat duena (mahaigainaren "
|
||||
"fitxategi-izena) eta jarraian bi puntu eta laneko arearen zenbakia dituena"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Aplikazioen eta laneko areen zerrenda"
|
||||
|
||||
#: ../extensions/dock/extension.js:483
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Arrastatu hona gogokoei gehitzeko"
|
||||
|
||||
#: ../extensions/dock/extension.js:817
|
||||
msgid "New Window"
|
||||
msgstr "Leiho berria"
|
||||
|
||||
#: ../extensions/dock/extension.js:819
|
||||
msgid "Quit Application"
|
||||
msgstr "Irten aplikaziotik"
|
||||
|
||||
#: ../extensions/dock/extension.js:824
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Kendu gogokoetatik"
|
||||
|
||||
#: ../extensions/dock/extension.js:825
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Gehitu gogokoei"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Autohide duration"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:2
|
||||
msgid "Autohide effect"
|
||||
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 ""
|
||||
|
||||
#: ../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/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgstr "Kaixo mundua!"
|
||||
|
||||
#: ../extensions/gajim/extension.js:227
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s kanpoan dago."
|
||||
|
||||
#: ../extensions/gajim/extension.js:230
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s linea kanpo dago."
|
||||
|
||||
#: ../extensions/gajim/extension.js:233
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s linean dago."
|
||||
|
||||
#: ../extensions/gajim/extension.js:236
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s lanpetuta dago."
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../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:6
|
||||
msgid "Window placement strategy"
|
||||
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 "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
msgid "Theme name"
|
||||
msgstr "Gaiaren izena"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:26
|
||||
msgid "Normal"
|
||||
msgstr "Normala"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "Ezkerrean"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "Eskuinean"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "Buruz behera"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Konfiguratu pantailaren ezarpenak..."
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "Libre"
|
||||
|
||||
#~ msgid "Busy"
|
||||
#~ msgstr "Lanpetuta"
|
||||
294
po/fa.po
294
po/fa.po
@@ -1,294 +0,0 @@
|
||||
# Persian translation for gnome-shell-extensions.
|
||||
# Copyright (C) 2011 Iranian Free Software Users Group (IFSUG.org) translation team.
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Arash Mousavi <mousavi.arash@gmail.com>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions gnome-3-0\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-04-29 21:33+0000\n"
|
||||
"PO-Revision-Date: 2012-05-14 20:38+0330\n"
|
||||
"Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
|
||||
"Language-Team: Persian\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-Language: Persian\n"
|
||||
"X-Poedit-Country: IRAN, ISLAMIC REPUBLIC OF\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The alt tab behaviour."
|
||||
msgstr "رفتار alt tab."
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||
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. برای جزئیات، محاورهی پیکربندی را مشاهده کنید."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "All & Thumbnails"
|
||||
msgstr "همه و تصاویر بندانگشتی"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
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 ""
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:34
|
||||
msgid "Workspace & Icons"
|
||||
msgstr "فضایکاری و شمایلها"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:35
|
||||
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 ""
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:41
|
||||
msgid "Move current selection to front before closing the popup"
|
||||
msgstr "انتقالِ انتخاب فعلی به بالا قبل از بستن پنجره واشو"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:58
|
||||
msgid "The Alternate Tab can be used in different modes, that affect the way windows are chosen and presented."
|
||||
msgstr "«جایگزین Tab» میتواند در حالتهای مختلفی استفاده شود، که در نحوه باز شدن و انتخاب پنجرهها تاثیر میگذارد."
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:64
|
||||
msgid "Suspend"
|
||||
msgstr "تعلیق"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:69
|
||||
msgid "Hibernate"
|
||||
msgstr "خوابزمستانی"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:74
|
||||
msgid "Power Off..."
|
||||
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 "Quit Application"
|
||||
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/dock/extension.js:577
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "به اینجا بکشید تا به علاقهمندیها اضافه شود"
|
||||
|
||||
#: ../extensions/dock/extension.js:903
|
||||
msgid "New Window"
|
||||
msgstr "پنجره جدید"
|
||||
|
||||
#: ../extensions/dock/extension.js:905
|
||||
msgid "Quit Application"
|
||||
msgstr "خروج از برنامه"
|
||||
|
||||
#: ../extensions/dock/extension.js:910
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "حذف از علاقهمندیها"
|
||||
|
||||
#: ../extensions/dock/extension.js:911
|
||||
msgid "Add to Favorites"
|
||||
msgstr "اضافه کردن به علاقهمندیها"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Position of the dock"
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
||||
msgid "Icon size"
|
||||
msgstr "اندازه شمایل"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
||||
msgid "Sets icon size of the dock."
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
||||
msgid "Enable/disable autohide"
|
||||
msgstr "فعال/غیرفعال کردن مخفیسازی خودکار"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
||||
msgid "Autohide effect"
|
||||
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 "Autohide duration"
|
||||
msgstr "طول مدت مخفیسازی خودکار"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
|
||||
msgid "Sets the time duration of the autohide effect."
|
||||
msgstr "تنظیم مدت زمان جلوهی مخفیسازی خودکار"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
|
||||
msgid "Monitor"
|
||||
msgstr "نمایشگر"
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:66
|
||||
msgid "Open file manager"
|
||||
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/gajim/extension.js:227
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s غائب است."
|
||||
|
||||
#: ../extensions/gajim/extension.js:230
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s برونخط است."
|
||||
|
||||
#: ../extensions/gajim/extension.js:233
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s برخط است."
|
||||
|
||||
#: ../extensions/gajim/extension.js:236
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s مشغول است."
|
||||
|
||||
#: ../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:37
|
||||
msgid "Removable Devices"
|
||||
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/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
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"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
msgid "Normal"
|
||||
msgstr "عادی"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
msgid "Left"
|
||||
msgstr "چپ"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
msgid "Right"
|
||||
msgstr "راست"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
msgid "Upside-down"
|
||||
msgstr "برعکس"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:82
|
||||
msgid "Configure display settings..."
|
||||
msgstr "پیکربندی تنظیمات نمایش..."
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "موجود"
|
||||
|
||||
#~ msgid "Busy"
|
||||
#~ msgstr "مشغول"
|
||||
|
||||
#~ msgid "My Account"
|
||||
#~ msgstr "حساب من"
|
||||
|
||||
#~ msgid "System Settings"
|
||||
#~ msgstr "تنظیمات سیستم"
|
||||
|
||||
#~ msgid "Lock Screen"
|
||||
#~ msgstr "قفلکردن صفحهنمایش"
|
||||
|
||||
#~ msgid "Switch User"
|
||||
#~ msgstr "تعویض کاربر"
|
||||
|
||||
#~ msgid "Log Out..."
|
||||
#~ msgstr "خروج از سیستم..."
|
||||
366
po/fi.po
366
po/fi.po
@@ -1,366 +0,0 @@
|
||||
# Finnish translation of gnome-shell-extensions.
|
||||
# Copyright (C) 2011 Ville-Pekka Vainio
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Gnome 2012-03 Finnish translation sprint participants:
|
||||
# Jiri Grönroos
|
||||
# Niklas Laxström
|
||||
# Ville-Pekka Vainio
|
||||
# Ville-Pekka Vainio <vpvainio@iki.fi>, 2011.
|
||||
# Jiri Grönroos <jiri.gronroos@iki.fi>, 2012.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\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-10 23:46+0300\n"
|
||||
"Last-Translator: Jiri Grönroos <jiri.gronroos@iki.fi>\n"
|
||||
"Language-Team: Finnish <>\n"
|
||||
"Language: fi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Lokalize 1.5\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The application icon mode."
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:26
|
||||
#| msgid "All & Thumbnails"
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Pelkkä pienoiskuva"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
#| msgid "Application"
|
||||
msgid "Application icon only"
|
||||
msgstr "Pelkkä sovelluksen kuvake"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:68
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "Näytä vain nykyisessä työtilassa olevat ikkunat"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:68
|
||||
msgid "Suspend"
|
||||
msgstr "Valmiustila"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:73
|
||||
msgid "Hibernate"
|
||||
msgstr "Lepotila"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:78
|
||||
#| msgid "Power Off..."
|
||||
msgid "Power Off"
|
||||
msgstr "Sammuta"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr ""
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../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 "Sovellus"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:64
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
msgid "Workspace"
|
||||
msgstr "Työtila"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:80
|
||||
msgid "Add rule"
|
||||
msgstr "Lisää sääntö"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:94
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Luo uusi vastaava sääntö"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:98
|
||||
msgid "Add"
|
||||
msgstr "Lisää"
|
||||
|
||||
#: ../extensions/dock/extension.js:600
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Raahaa tähän lisätäksesi suosikkeihin"
|
||||
|
||||
#: ../extensions/dock/extension.js:926
|
||||
msgid "New Window"
|
||||
msgstr "Uusi ikkuna"
|
||||
|
||||
#: ../extensions/dock/extension.js:928
|
||||
msgid "Quit Application"
|
||||
msgstr "Lopeta ohjelma"
|
||||
|
||||
#: ../extensions/dock/extension.js:933
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Poista suosikeista"
|
||||
|
||||
#: ../extensions/dock/extension.js:934
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Lisää suosikkeihin"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Position of the dock"
|
||||
msgstr "Telakan sijainti"
|
||||
|
||||
#: ../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 ""
|
||||
"Asettaa telakan sijainnin näytöllä. Sallitut arvot ovat 'right' tai "
|
||||
"'left'"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
||||
msgid "Icon size"
|
||||
msgstr "Kuvakkeiden koko"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
||||
msgid "Sets icon size of the dock."
|
||||
msgstr "Asettaa telakan kuvakkeiden koon."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
||||
msgid "Enable/disable autohide"
|
||||
msgstr "Automaattinen piilotus päälle/pois"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
||||
msgid "Autohide effect"
|
||||
msgstr "Automaattisen piilotuksen tehoste"
|
||||
|
||||
#: ../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 "Autohide duration"
|
||||
msgstr "Automaattisen piilotuksen kesto"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
|
||||
msgid "Sets the time duration of the autohide effect."
|
||||
msgstr ""
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
|
||||
msgid "Monitor"
|
||||
msgstr "Näyttö"
|
||||
|
||||
#: ../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 ""
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:56
|
||||
msgid "Removable devices"
|
||||
msgstr "Erilliset tallennusvälineet"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:67
|
||||
msgid "Open file manager"
|
||||
msgstr "Avaa tiedostonhallinta"
|
||||
|
||||
#: ../extensions/example/extension.js:17
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hei, maailma!"
|
||||
|
||||
#: ../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 "Viesti:"
|
||||
|
||||
#: ../extensions/gajim/extension.js:226
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s on poissa."
|
||||
|
||||
#: ../extensions/gajim/extension.js:229
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s on poissa linjoilta."
|
||||
|
||||
#: ../extensions/gajim/extension.js:232
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s on linjoilla."
|
||||
|
||||
#: ../extensions/gajim/extension.js:235
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s on kiireinen."
|
||||
|
||||
#: ../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:46
|
||||
msgid "Places"
|
||||
msgstr "Sijainnit"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:47
|
||||
msgid "Devices"
|
||||
msgstr "Laitteet"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:48
|
||||
msgid "Bookmarks"
|
||||
msgstr "Kirjanmerkit"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:49
|
||||
msgid "Network"
|
||||
msgstr "Verkko"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:48
|
||||
#, c-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgstr "Kohteen \"%s\" käynnistys epäonnistui"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:121
|
||||
msgid "Home"
|
||||
msgstr "Koti"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:184
|
||||
msgid "File System"
|
||||
msgstr "Tiedostojärjestelmä"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:188
|
||||
msgid "Browse network"
|
||||
msgstr "Selaa verkkoa"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:213
|
||||
msgid "CPU"
|
||||
msgstr "Suoritin"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:266
|
||||
msgid "Memory"
|
||||
msgstr "Muisti"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||
msgid "Theme name"
|
||||
msgstr "Teeman nimi"
|
||||
|
||||
#: ../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 "Teeman nimi, ladataan sijainnista ~/.themes/name/gnome-shell"
|
||||
|
||||
#: ../extensions/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Työtilan ilmaisin"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:141
|
||||
msgid "Workspace names:"
|
||||
msgstr "Työtilojen nimet:"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:152
|
||||
msgid "Name"
|
||||
msgstr "Nimi"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:186
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Työtila %d"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
msgid "Normal"
|
||||
msgstr "Tavallinen"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
msgid "Left"
|
||||
msgstr "Vasen"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
msgid "Right"
|
||||
msgstr "Oikea"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
msgid "Upside-down"
|
||||
msgstr "Ylösalaisin"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:50
|
||||
msgid "Display"
|
||||
msgstr "Näyttö"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:80
|
||||
#| msgid "Configure display settings..."
|
||||
msgid "Display Settings"
|
||||
msgstr "Näytön asetukset"
|
||||
|
||||
#~ msgid "The alt tab behaviour."
|
||||
#~ msgstr "Alt+tab-näppäinyhdistelmän toiminta."
|
||||
|
||||
#~ msgid "Workspace & Icons"
|
||||
#~ msgstr "Työtila ja kuvakkeet"
|
||||
341
po/fr.po
341
po/fr.po
@@ -1,5 +1,5 @@
|
||||
# French translation for gnome-shell-extensions.
|
||||
# Copyright (C) 2011-12 Listed translators
|
||||
# Copyright (C) 2011 Listed translators
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Claude Paroz <claude@2xlibre.net>, 2011.
|
||||
#
|
||||
@@ -8,346 +8,139 @@ 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-04-30 14:43+0000\n"
|
||||
"PO-Revision-Date: 2012-03-24 17:30+0100\n"
|
||||
"Last-Translator: Alain Lojewski <allomervan@gmail.com>\n"
|
||||
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
|
||||
"POT-Creation-Date: 2011-04-16 16:32+0000\n"
|
||||
"PO-Revision-Date: 2011-04-21 16:51+0200\n"
|
||||
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
|
||||
"Language-Team: French <gnomefr@traduc.org>\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"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The alt tab behaviour."
|
||||
msgstr "Le comportement d'alt+tab."
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:2
|
||||
msgid ""
|
||||
"Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
||||
"workspace_icons. See the configuration dialogs for details."
|
||||
msgstr ""
|
||||
"Définit le comportement d'alt+tab. Les valeurs possibles sont : "
|
||||
"« all_thumbnails » et « workspace_icons ». Consultez les messages de "
|
||||
"configuration pour plus de détails."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "All & Thumbnails"
|
||||
msgstr "Tous et vignettes"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
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 ""
|
||||
"Ce mode présente toutes les applications de tous les espaces de travail dans "
|
||||
"une liste à sélection unique. À la place de l'icône de l'application de "
|
||||
"chaque fenêtre, il utilise de petites vignettes ressemblant à la fenêtre "
|
||||
"elle-même."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:34
|
||||
msgid "Workspace & Icons"
|
||||
msgstr "Espace de travail et icônes"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:35
|
||||
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 ""
|
||||
"Ce mode vous permet de permuter entre les applications de votre espace de "
|
||||
"travail actuel et vous donne en plus la possibilité de revenir à la dernière "
|
||||
"application utilisée dans l'espace de travail précédent. C'est toujours le "
|
||||
"dernier symbole dans la liste, et si disponible, il est isolé par une ligne "
|
||||
"verticale ou un séparateur. \n"
|
||||
"Chaque fenêtre est représentée par l'icône de son application."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:41
|
||||
msgid "Move current selection to front before closing the popup"
|
||||
msgstr ""
|
||||
"Déplacer la sélection actuelle à l'avant avant de fermer la fenêtre "
|
||||
"surgissante"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:58
|
||||
msgid ""
|
||||
"The Alternate Tab can be used in different modes, that affect the way "
|
||||
"windows are chosen and presented."
|
||||
msgstr ""
|
||||
"La combinaison alt+tab peut être utilisée dans différents modes, qui "
|
||||
"influent sur la façon dont les fenêtres sont sélectionnées et présentées."
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:68
|
||||
msgid "Suspend"
|
||||
msgstr "Mettre en veille"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:73
|
||||
#: ../extensions/alternative-status-menu/extension.js:23
|
||||
#: ../extensions/alternative-status-menu/extension.js:27
|
||||
#: ../extensions/alternative-status-menu/extension.js:93
|
||||
msgid "Hibernate"
|
||||
msgstr "Hiberner"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:78
|
||||
#: ../extensions/alternative-status-menu/extension.js:26
|
||||
#: ../extensions/alternative-status-menu/extension.js:92
|
||||
msgid "Suspend"
|
||||
msgstr "Mettre en veille"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:52
|
||||
msgid "Available"
|
||||
msgstr "Disponible"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:57
|
||||
msgid "Busy"
|
||||
msgstr "Occupé"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:65
|
||||
msgid "My Account"
|
||||
msgstr "Mon compte"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:69
|
||||
msgid "System Settings"
|
||||
msgstr "Paramètres système"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:76
|
||||
msgid "Lock Screen"
|
||||
msgstr "Verrouiller l'écran"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:80
|
||||
msgid "Switch User"
|
||||
msgstr "Changer d'utilisateur"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:85
|
||||
msgid "Log Out..."
|
||||
msgstr "Fermer la session..."
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:100
|
||||
msgid "Power Off..."
|
||||
msgstr "Éteindre..."
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:1
|
||||
msgid "Enable suspending"
|
||||
msgstr "Activer la mise en veille"
|
||||
|
||||
#: ../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 "Gère la visibilité de l'élément de menu « mise en veille »"
|
||||
|
||||
#: ../extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in.h:3
|
||||
msgid "Enable hibernating"
|
||||
msgstr "Activer l'hibernation"
|
||||
|
||||
#: ../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 "Gère la visibilité de l'élément de menu « hibernation »"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Liste d'applications et d'espaces de travail"
|
||||
|
||||
#: ../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 ""
|
||||
"Une liste de chaînes de caratères, contenant chacune un identifiant "
|
||||
"d'application (nom de fichier desktop), suivi par un deux-points et le "
|
||||
"numéro de l'espace de travail"
|
||||
"Une liste de chaînes, contenant chacune un identifiant d'application (nom de "
|
||||
"fichier desktop), suivi par un deux-points et le numéro de l'espace de "
|
||||
"travail"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:55
|
||||
msgid "Application"
|
||||
msgstr "Application"
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Liste d'applications et d'espaces de travail"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:64
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
msgid "Workspace"
|
||||
msgstr "Espace de travail"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:80
|
||||
msgid "Add rule"
|
||||
msgstr "Ajouter une règle"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:94
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Créer une nouvelle règle de concordance"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:98
|
||||
msgid "Add"
|
||||
msgstr "Ajouter"
|
||||
|
||||
#: ../extensions/dock/extension.js:577
|
||||
#: ../extensions/dock/extension.js:116
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Glissez ici pour ajouter des favoris"
|
||||
msgstr "Déposez ici pour ajouter aux favoris"
|
||||
|
||||
#: ../extensions/dock/extension.js:903
|
||||
#: ../extensions/dock/extension.js:417
|
||||
msgid "New Window"
|
||||
msgstr "Nouvelle fenêtre"
|
||||
|
||||
#: ../extensions/dock/extension.js:905
|
||||
#: ../extensions/dock/extension.js:419
|
||||
msgid "Quit Application"
|
||||
msgstr "Quitter l'application"
|
||||
|
||||
#: ../extensions/dock/extension.js:910
|
||||
#: ../extensions/dock/extension.js:424
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Enlever des favoris"
|
||||
|
||||
#: ../extensions/dock/extension.js:911
|
||||
#: ../extensions/dock/extension.js:425
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Ajouter aux favoris"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Position of the dock"
|
||||
msgstr "Position du bandeau"
|
||||
|
||||
#: ../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 ""
|
||||
"Définit la position du bandeau sur l'écran. Les valeurs possibles sont : "
|
||||
"right et left."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
||||
msgid "Icon size"
|
||||
msgstr "Taille d'icône"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
||||
msgid "Sets icon size of the dock."
|
||||
msgstr "Définit la taille des icônes du bandeau."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
||||
msgid "Enable/disable autohide"
|
||||
msgstr "Activer/désactiver le masquage automatique"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
||||
msgid "Autohide effect"
|
||||
msgstr "Effet de masquage automatique"
|
||||
|
||||
#: ../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 ""
|
||||
"Définit l'effet de masquage du bandeau. Les valeurs possibles sont : resize, "
|
||||
"rescale et move."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
|
||||
msgid "Autohide duration"
|
||||
msgstr "Durée du masquage automatique"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
|
||||
msgid "Sets the time duration of the autohide effect."
|
||||
msgstr "Définit la durée de l'effet de masquage automatique."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:10
|
||||
msgid "Monitor"
|
||||
msgstr "Écran"
|
||||
|
||||
#: ../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 ""
|
||||
"Definit l'écran qui affiche le dock. La valeur par défaut (-1) représente "
|
||||
"l'écran principal."
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:66
|
||||
msgid "Open file manager"
|
||||
msgstr "Ouvrir le gestionnaire de fichiers"
|
||||
|
||||
#: ../extensions/example/extension.js:17
|
||||
#: ../extensions/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgstr "Bonjour le monde !"
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "Autre texte d'accueil."
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
|
||||
msgid ""
|
||||
"If not empty, it contains the text that will be shown when clicking on the "
|
||||
"panel."
|
||||
msgstr ""
|
||||
"S'il n'est pas vide, il contient le texte qui est affiché lorsque vous "
|
||||
"cliquez sur le panneau."
|
||||
|
||||
#. 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 a pour but de montrer comment construire de bonnes extensions pour "
|
||||
"le Shell et en tant que tel, il n'a que peu de fonctionnalités en lui-même.\n"
|
||||
"Il est néanmoins possible de personnaliser le message d'accueil."
|
||||
|
||||
#: ../extensions/example/prefs.js:36
|
||||
msgid "Message:"
|
||||
msgstr "Message :"
|
||||
|
||||
#: ../extensions/gajim/extension.js:227
|
||||
#: ../extensions/gajim/extension.js:219
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s est absent(e)."
|
||||
|
||||
#: ../extensions/gajim/extension.js:230
|
||||
#: ../extensions/gajim/extension.js:222
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s n'est pas en ligne."
|
||||
|
||||
#: ../extensions/gajim/extension.js:233
|
||||
#: ../extensions/gajim/extension.js:225
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s est en ligne."
|
||||
|
||||
#: ../extensions/gajim/extension.js:236
|
||||
#: ../extensions/gajim/extension.js:228
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s est occupé(e)."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Utiliser plus d'écran pour les fenêtres"
|
||||
|
||||
#: ../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 ""
|
||||
"Essaye d'utiliser plus d'espace écran pour placer les vignettes des fenêtres "
|
||||
"en s'adaptant aux proportions de l'écran et en les consolidant davantage "
|
||||
"pour réduire la zone englobante. Ce paramètre ne s'applique qu'en utilisant "
|
||||
"la stratégie de placement « natural »."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Placer les titres des fenêtres au-dessus"
|
||||
|
||||
#: ../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 vrai, place les titres des fenêtres au-dessus de la vignette "
|
||||
"correspondante, ce qui remplace le comportement par défaut qui les place au-"
|
||||
"dessous. Pour que ce paramètre soit pris en compte, il faut redémarrer le "
|
||||
"shell."
|
||||
|
||||
#: ../extensions/places-menu/extension.js:37
|
||||
msgid "Removable Devices"
|
||||
msgstr "Périphériques amovibles"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||
msgid "Theme name"
|
||||
msgstr "Nom du thème"
|
||||
|
||||
#: ../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 "Le nom du thème, à charger à partir de ~/.themes/name/gnome-shell"
|
||||
|
||||
#: ../extensions/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicateur d'espace de travail"
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
msgid "Theme name"
|
||||
msgstr "Nom du thème"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:141
|
||||
msgid "Workspace names:"
|
||||
msgstr "Noms des espaces de travail :"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:152
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:186
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espace de travail %d"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
#: ../extensions/xrandr-indicator/extension.js:26
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "Gauche"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "Droite"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "Renversé"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:82
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Configurer les paramètres d'affichage..."
|
||||
|
||||
485
po/gl.po
485
po/gl.po
@@ -1,92 +1,24 @@
|
||||
# Galician 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.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
# Fran Diéguez <frandieguez@gnome.org>, 2011.
|
||||
# Fran Dieguez <frandieguez@gnome.org>, 2011, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-10-12 01:15+0200\n"
|
||||
"PO-Revision-Date: 2012-10-12 01:16+0200\n"
|
||||
"Last-Translator: Fran Dieguez <frandieguez@gnome.org>\n"
|
||||
"Language-Team: gnome-l10n-gl@gnome.org\n"
|
||||
"POT-Creation-Date: 2011-04-14 09:58+0200\n"
|
||||
"PO-Revision-Date: 2011-04-14 09:54+0200\n"
|
||||
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
|
||||
"Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
|
||||
"Language: gl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Virtaal 0.7.1\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../extensions/alternate-tab/org.gnome.shell.extensions.alternate-tab.gschema.xml.in.h:1
|
||||
msgid "The application icon mode."
|
||||
msgstr "O modo da icona do aplicativo."
|
||||
|
||||
#: ../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 como se mostran as xanelas no intercambiador. As opcións posíbeis "
|
||||
"son «thumbnail-only» (mostra unha miniatura da xanela, «app-icon-only» (só "
|
||||
"mostra a icona do aplicativo) ou «both» (móstranse ambas cosas)."
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:26
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Só miniaturas"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:27
|
||||
msgid "Application icon only"
|
||||
msgstr "Só icona do aplicativo"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:28
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "Miniatura e icona do aplicativo"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:43
|
||||
msgid "Present windows as"
|
||||
msgstr "Presentar xanelas como"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:68
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "Mostrar só as xanelas na área de traballo actual"
|
||||
|
||||
#. add the new entries
|
||||
#: ../extensions/alternative-status-menu/extension.js:86
|
||||
msgid "Suspend"
|
||||
msgstr "Suspender"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:91
|
||||
msgid "Hibernate"
|
||||
msgstr "Hibernar"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:96
|
||||
msgid "Power Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
#: ../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 a visibilidade do 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 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 a visibilidade do elemento de menú «Hibernar»"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Lista de aplicativos e espazos de traballo"
|
||||
|
||||
#: ../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"
|
||||
@@ -94,437 +26,78 @@ msgstr ""
|
||||
"Unha lista de cadeas, cada unha das cales contén un id de aplicativo (nome "
|
||||
"de ficheiro desktop), seguido por unha coma e o número do espazo de traballo"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:55
|
||||
msgid "Application"
|
||||
msgstr "Aplicativo"
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Lista de aplicativos e espazos de traballo"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:64
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
msgid "Workspace"
|
||||
msgstr "Área de traballo"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:80
|
||||
msgid "Add rule"
|
||||
msgstr "Engadir regra"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:94
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Crear regra de coincidencia nova"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:98
|
||||
msgid "Add"
|
||||
msgstr "Engadir"
|
||||
|
||||
#: ../extensions/dock/extension.js:600
|
||||
#: ../extensions/dock/extension.js:116
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "Arrastre aquí para engadir aos favoritos"
|
||||
|
||||
#: ../extensions/dock/extension.js:926
|
||||
#: ../extensions/dock/extension.js:417
|
||||
msgid "New Window"
|
||||
msgstr "Nova xanela"
|
||||
|
||||
#: ../extensions/dock/extension.js:928
|
||||
#: ../extensions/dock/extension.js:419
|
||||
msgid "Quit Application"
|
||||
msgstr "Saír do aplicativo"
|
||||
|
||||
#: ../extensions/dock/extension.js:933
|
||||
#: ../extensions/dock/extension.js:424
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Eliminar dos favoritos"
|
||||
|
||||
#: ../extensions/dock/extension.js:934
|
||||
#: ../extensions/dock/extension.js:425
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Engadir aos favoritos"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:1
|
||||
msgid "Position of the dock"
|
||||
msgstr "Posición da doca"
|
||||
|
||||
#: ../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 ""
|
||||
"Estabelece a posición da doca na pantalla. Os valores permitidos son «right» "
|
||||
"e «left»"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:3
|
||||
msgid "Icon size"
|
||||
msgstr "Tamaño da icona"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:4
|
||||
msgid "Sets icon size of the dock."
|
||||
msgstr "Estabelece o tamaño das iconas na doca."
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:5
|
||||
msgid "Enable/disable autohide"
|
||||
msgstr "Activar/desactivar autoagochado"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:6
|
||||
msgid "Autohide effect"
|
||||
msgstr "Efecto de autoagochado"
|
||||
|
||||
#: ../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 ""
|
||||
"Estabelece o efecto de agochado da doca. Os valores permitidos son "
|
||||
"«resize» (redimensionar( e «rescale» (re-escalar) e «move» (mover)"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:8
|
||||
msgid "Autohide duration"
|
||||
msgstr "Duración do autoagochado"
|
||||
|
||||
#: ../extensions/dock/org.gnome.shell.extensions.dock.gschema.xml.in.h:9
|
||||
msgid "Sets the time duration of the autohide effect."
|
||||
msgstr "Estabelece a duración do efecto de autoagochado."
|
||||
|
||||
#: ../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 ""
|
||||
"Estabelece a pantalla na que mostrar o taboleiro. O valor predeterminado es "
|
||||
"(-1), que é a pantalla principal."
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:72
|
||||
#, c-format
|
||||
msgid "Ejecting drive '%s' failed:"
|
||||
msgstr "Fallo ao extraer a unidade «%s»:"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:89
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositivos extraíbeis"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
msgid "Open File"
|
||||
msgstr "Abrir ficheiro"
|
||||
|
||||
#: ../extensions/example/extension.js:17
|
||||
#: ../extensions/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hola, mundo!"
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "Texto de benvida alternativo"
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
|
||||
msgid ""
|
||||
"If not empty, it contains the text that will be shown when clicking on the "
|
||||
"panel."
|
||||
msgstr ""
|
||||
"Se non está baleiro, contén o texto que se despregará ao premer sobre 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» ten por exemplo mostrar como construir extensións de bo "
|
||||
"comportamento para a Shell e por iso ten pouca funcionalidade por si só.\n"
|
||||
"Porén, é posíbel personalizar a mensaxe de benvida."
|
||||
|
||||
#: ../extensions/example/prefs.js:36
|
||||
msgid "Message:"
|
||||
msgstr "Mensaxe:"
|
||||
|
||||
#: ../extensions/gajim/extension.js:226
|
||||
#: ../extensions/gajim/extension.js:219
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s está ausente."
|
||||
|
||||
#: ../extensions/gajim/extension.js:229
|
||||
#: ../extensions/gajim/extension.js:222
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s está desconectado."
|
||||
|
||||
#: ../extensions/gajim/extension.js:232
|
||||
#: ../extensions/gajim/extension.js:225
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s está conectado."
|
||||
|
||||
#: ../extensions/gajim/extension.js:235
|
||||
#: ../extensions/gajim/extension.js:228
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s está ocupado."
|
||||
|
||||
#: ../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áis pantalla para as xanelas"
|
||||
|
||||
#: ../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 ""
|
||||
"Tente usar máis pantalla para dispor as miniaturas das xanelas adaptándose á "
|
||||
"taxa de aspecto da pantalla e consolidalas para reducir a caixa saltante. "
|
||||
"Esta configuración aplícase só para a estratexia de disposición natural."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Pór a xanela sempre na parte superior"
|
||||
|
||||
#: ../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 ""
|
||||
"Se é verdadeiro, dispor os títulos das xanelas enriba da miniatura "
|
||||
"respectiva, omitindo a disposición inferior por omisión do shell. Se cambia "
|
||||
"esta configuración deberá reiniciar o shell para que se apliquen os cambios."
|
||||
|
||||
#: ../extensions/places-menu/extension.js:46
|
||||
msgid "Places"
|
||||
msgstr "Lugares"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:47
|
||||
msgid "Devices"
|
||||
msgstr "Dispositivos"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:48
|
||||
msgid "Bookmarks"
|
||||
msgstr "Marcadores"
|
||||
|
||||
#: ../extensions/places-menu/extension.js:49
|
||||
msgid "Network"
|
||||
msgstr "Rede"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:48
|
||||
#, c-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgstr "Produciuse un fallo ao iniciar «%s»"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:121
|
||||
msgid "Home"
|
||||
msgstr "Cartafol persoal"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:184
|
||||
msgid "File System"
|
||||
msgstr "Sistema de ficheiros"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:188
|
||||
msgid "Browse network"
|
||||
msgstr "Explorar a rede"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:213
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:266
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||
msgid "Theme name"
|
||||
msgstr "Nome do 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 nome do tema, a cargar desde ~/.themes/name/gnome-shell"
|
||||
|
||||
#: ../extensions/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de espazo de traballo"
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
msgid "Theme name"
|
||||
msgstr "Nome do tema"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:141
|
||||
msgid "Workspace names:"
|
||||
msgstr "Nomes dos espazos de traballo:"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:152
|
||||
msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:186
|
||||
#, c-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espazos de traballo %d"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:30
|
||||
#: ../extensions/xrandr-indicator/extension.js:26
|
||||
msgid "Normal"
|
||||
msgstr "Normal"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:31
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "Esquerda"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:32
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "Dereita"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:33
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "Co de arriba cara abaixo"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:50
|
||||
msgid "Display"
|
||||
msgstr "Pantalla"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:80
|
||||
msgid "Display Settings"
|
||||
msgstr "Preferencias da pantalla"
|
||||
|
||||
#~ msgid "Removable Devices"
|
||||
#~ msgstr "Dispositivos extraíbeis"
|
||||
|
||||
#~ msgid "Configure display settings..."
|
||||
#~ msgstr "Configurar as preferencias de pantalla…"
|
||||
|
||||
#~ msgid "The alt tab behaviour."
|
||||
#~ msgstr "O comportamento de Alt+Tab"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Sets the Alt-Tab behaviour. Possible values are: all_thumbnails and "
|
||||
#~ "workspace_icons. See the configuration dialogs for details."
|
||||
#~ msgstr ""
|
||||
#~ "Estabelece o comportamento do Alt+Tab. Os valores posíbeis son: "
|
||||
#~ "«native» (nativo), «all_thumbnails» (todo e miniaturas) e "
|
||||
#~ "«worspace_icons» (iconas de áreas de traballo). Para obter información "
|
||||
#~ "máis detallada, consulte a configuración dos 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 todos os aplicativos de todas as áreas de traballo "
|
||||
#~ "nunha lista de selección. No lugar de usar a icona de aplicativo de cada "
|
||||
#~ "xanela, usa pequenas miniaturas que semellan a propia xanela."
|
||||
|
||||
#~ msgid "Workspace & Icons"
|
||||
#~ msgstr "Espazos de traballo e iconas"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "Este modo permítelle alternar entre os aplicativos da súa área de "
|
||||
#~ "traballo actual e dálle a opción de cambiar ao último aplicativo "
|
||||
#~ "empregada da súa área de traballo anterior. Este sempre é o último "
|
||||
#~ "símbolo da lista e está separado por un separador/liña vertical se está "
|
||||
#~ "dispoñíbel.\n"
|
||||
#~ "Cada xanela está representada pola súa icona de aplicativo."
|
||||
|
||||
#~ msgid "Move current selection to front before closing the popup"
|
||||
#~ msgstr ""
|
||||
#~ "Mover a selección actual ao frente antes de pechar a xanela emerxente"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "The Alternate Tab can be used in different modes, that affect the way "
|
||||
#~ "windows are chosen and presented."
|
||||
#~ msgstr ""
|
||||
#~ "A combinación de teclas Alt+Tab pódese usar en diferentes modos, que "
|
||||
#~ "afectan á maneira na que se elixen e presentan as xanelas."
|
||||
|
||||
#~ msgid "Notifications"
|
||||
#~ msgstr "Notificacións"
|
||||
|
||||
#~ msgid "Online Accounts"
|
||||
#~ msgstr "Contas en liña"
|
||||
|
||||
#~ msgid "Lock Screen"
|
||||
#~ msgstr "Bloquear Pantaia"
|
||||
|
||||
#~ msgid "Switch User"
|
||||
#~ msgstr "Trocar de Usario"
|
||||
|
||||
#~ msgid "Log Out..."
|
||||
#~ msgstr "Sair da sesión"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "É a primeira vez que usa a extensión de Tab alternativo.\n"
|
||||
#~ "Seleccione o comportamento prefirido:\n"
|
||||
#~ "\n"
|
||||
#~ "Todo e miniaturas:\n"
|
||||
#~ " Este modo mostra tódolos aplicativos de tódolos espazos de traballa "
|
||||
#~ "nunha\n"
|
||||
#~ " lista de selección. No lugar de usar as iconas de aplicativos para "
|
||||
#~ "cada\n"
|
||||
#~ " xanela, usa miniaturas pequenas que representan as xanelas.\n"
|
||||
#~ "\n"
|
||||
#~ "Espazos de traballo e iconas:\n"
|
||||
#~ " Este modo permítelle cambiar entre os aplicativos do seu espazo de "
|
||||
#~ "traballo \n"
|
||||
#~ " actual e permítelle engadir a opción de cambiar entre o último "
|
||||
#~ "aplicativo\n"
|
||||
#~ " usado do seu espazo de traballo anterior. Sempre é o último símbolo "
|
||||
#~ "na\n"
|
||||
#~ " lista e está separado por unha liña separador/vertical se está "
|
||||
#~ "dispoñíbel.\n"
|
||||
#~ " Cada xanela está representada pola icona do aplicativo.\n"
|
||||
#~ "\n"
|
||||
#~ "Nativo:\n"
|
||||
#~ " Este modo é o comportamento nativo de GNOME 3 ou noutras palabras: "
|
||||
#~ "ao \n"
|
||||
#~ " seleccionar nativo desactiva a extensión Tab alternativo.\n"
|
||||
|
||||
#~ msgid "Alt Tab Behaviour"
|
||||
#~ msgstr "Comportamento do Alt Tab"
|
||||
|
||||
#~ msgid "Native"
|
||||
#~ msgstr "Nativa"
|
||||
|
||||
#~ msgid "Cancel"
|
||||
#~ msgstr "Cancelar"
|
||||
|
||||
#~ msgid "Ask the user for a default behaviour if true."
|
||||
#~ msgstr "Preguntarlle o comportamento predeterminado ao usuario se é certo."
|
||||
|
||||
#~ msgid "Indicates if Alternate Tab is newly installed"
|
||||
#~ msgstr "Indica se o Tab alternativo está instalado recentemente"
|
||||
|
||||
#~ 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 ""
|
||||
#~ "O algoritmo usado pola disposición de miniaturas na vista previa. «grid» "
|
||||
#~ "para usar o algoritmo predeterminado baseado na grella, «natural» para "
|
||||
#~ "usar outro que reflexa máis a posición e tamaño da xanela actual"
|
||||
|
||||
#~ msgid "Window placement strategy"
|
||||
#~ msgstr "Estratexia de disposición de xanelas"
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "Dispoñible"
|
||||
|
||||
#~ msgid "Busy"
|
||||
#~ msgstr "Ocupado"
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "Configurar as configuracións de pantalla..."
|
||||
|
||||
187
po/he.po
187
po/he.po
@@ -1,187 +0,0 @@
|
||||
# Hebrew translations for PACKAGE package.
|
||||
# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Yaron Shahrabani <sh.yaron@gmail.com>, 2011.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2011-05-13 13:11+0300\n"
|
||||
"PO-Revision-Date: 2011-05-13 13:15+0200\n"
|
||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
||||
"Language-Team: Hebrew <sh.yaron@gmail.com>\n"
|
||||
"Language: he\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Poedit-Language: Hebrew\n"
|
||||
"X-Poedit-Country: ISRAEL\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:39
|
||||
msgid "Available"
|
||||
msgstr "פנוי"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:44
|
||||
msgid "Busy"
|
||||
msgstr "עסוק"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:52
|
||||
msgid "My Account"
|
||||
msgstr "החשבון שלי"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:56
|
||||
msgid "System Settings"
|
||||
msgstr "הגדרות המערכת"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:63
|
||||
msgid "Lock Screen"
|
||||
msgstr "נעילת המסך"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:67
|
||||
msgid "Switch User"
|
||||
msgstr "החלפת משתמש"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:72
|
||||
msgid "Log Out..."
|
||||
msgstr "יציאה..."
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:79
|
||||
msgid "Suspend"
|
||||
msgstr "השהיה"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:85
|
||||
msgid "Hibernate"
|
||||
msgstr "תרדמת"
|
||||
|
||||
#: ../extensions/alternative-status-menu/extension.js:91
|
||||
msgid "Power Off..."
|
||||
msgstr "כיבוי..."
|
||||
|
||||
#: ../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:116
|
||||
msgid "Drag here to add favorites"
|
||||
msgstr "יש לגרור לכאן כדי להוסיף למועדפים"
|
||||
|
||||
#: ../extensions/dock/extension.js:417
|
||||
msgid "New Window"
|
||||
msgstr "חלון חדש"
|
||||
|
||||
#: ../extensions/dock/extension.js:419
|
||||
msgid "Quit Application"
|
||||
msgstr "יציאה מהיישום"
|
||||
|
||||
#: ../extensions/dock/extension.js:424
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "הסרה מהמועדפים"
|
||||
|
||||
#: ../extensions/dock/extension.js:425
|
||||
msgid "Add to Favorites"
|
||||
msgstr "הוספה למועדפים"
|
||||
|
||||
#: ../extensions/example/extension.js:11
|
||||
msgid "Hello, world!"
|
||||
msgstr "שלום, עולם!"
|
||||
|
||||
#: ../extensions/gajim/extension.js:219
|
||||
#, c-format
|
||||
msgid "%s is away."
|
||||
msgstr "%s הופיע/ה כמרוחק/ת."
|
||||
|
||||
#: ../extensions/gajim/extension.js:222
|
||||
#, c-format
|
||||
msgid "%s is offline."
|
||||
msgstr "%s התנתק/ה."
|
||||
|
||||
#: ../extensions/gajim/extension.js:225
|
||||
#, c-format
|
||||
msgid "%s is online."
|
||||
msgstr "%s פנוי/ה."
|
||||
|
||||
#: ../extensions/gajim/extension.js:228
|
||||
#, c-format
|
||||
msgid "%s is busy."
|
||||
msgstr "%s עסוק/ה."
|
||||
|
||||
#: ../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/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
|
||||
msgid "Normal"
|
||||
msgstr "רגיל"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:27
|
||||
msgid "Left"
|
||||
msgstr "שמאל"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:28
|
||||
msgid "Right"
|
||||
msgstr "ימין"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:29
|
||||
msgid "Upside-down"
|
||||
msgstr "הפוך"
|
||||
|
||||
#: ../extensions/xrandr-indicator/extension.js:78
|
||||
msgid "Configure display settings..."
|
||||
msgstr "הגדרת תצורת התצוגה..."
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user