Compare commits

..

2 Commits

Author SHA1 Message Date
Ben Iofel
920b169709 magnify 4 finger swipe gesture by 1.5 2017-08-01 12:16:02 +01:00
Ben Iofel
ccc5078802 WIP: windows move as you swipe with 4 fingers
(not just at the end of the gesture)
2017-08-01 12:11:26 +01:00
134 changed files with 13324 additions and 18873 deletions

18
.gitignore vendored
View File

@@ -6,8 +6,16 @@
ABOUT-NLS
ChangeLog
INSTALL
Makefile
Makefile.in
aclocal.m4
autom4te.cache
config.h
config.h.in
config.log
config.status
config
configure
data/org.gnome.Shell.desktop
data/org.gnome.Shell.desktop.in
data/gnome-shell-extension-prefs.desktop
@@ -33,9 +41,15 @@ docs/reference/*/*.types
docs/reference/*/html/
docs/reference/*/xml/
docs/reference/shell/doc-gen-*
gtk-doc.make
js/misc/config.js
js/js-resources.c
js/js-resources.h
intltool-extract.in
intltool-merge.in
intltool-update.in
libtool
m4/
man/gnome-shell.1
omf.make
po/*.gmo
@@ -44,6 +58,7 @@ po/*.header
po/*.sed
po/*.sin
po/.intltool-merge-cache
po/Makefile.in.in
po/Makevars.template
po/POTFILES
po/Rules-quot
@@ -53,6 +68,8 @@ src/*.gir
src/*.typelib
src/*-enum-types.[ch]
src/*-marshal.[ch]
src/Makefile
src/Makefile.in
src/calendar-server/evolution-calendar.desktop
src/calendar-server/org.gnome.Shell.CalendarServer.service
src/gnome-shell
@@ -76,6 +93,7 @@ src/st-scroll-view-fade-generated.c
src/stamp-st-scroll-view-fade-generated.c
stamp-h1
tests/run-test.sh
xmldocs.make
*~
*.patch
*.sw?

4
.gitmodules vendored
View File

@@ -1,6 +1,6 @@
[submodule "data/theme/gnome-shell-sass"]
path = data/theme/gnome-shell-sass
url = https://git.gnome.org/browse/gnome-shell-sass
url = git://git.gnome.org/gnome-shell-sass
[submodule "subprojects/gvc"]
path = subprojects/gvc
url = https://git.gnome.org/browse/libgnome-volume-control
url = git://git.gnome.org/libgnome-volume-control

33
Makefile.am Normal file
View File

@@ -0,0 +1,33 @@
# Point to our macro directory and pick up user flags from the environment
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
SUBDIRS = data js subprojects/gvc src tests po docs
if BUILD_BROWSER_PLUGIN
SUBDIRS += browser-plugin
endif
if ENABLE_MAN
SUBDIRS += man
endif
EXTRA_DIST = \
.project \
.settings \
autogen.sh \
tools/check-for-missing.py
# These are files checked into Git that we don't want to distribute
DIST_EXCLUDE = \
.gitignore \
.gitmodules \
gnome-shell.doap \
HACKING \
MAINTAINERS \
tools/build/*
distcheck-hook:
@echo "Checking disted files against files in git"
@$(srcdir)/tools/check-for-missing.py $(srcdir) $(distdir) $(DIST_EXCLUDE)
DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-man

85
NEWS
View File

@@ -1,88 +1,3 @@
3.26.1
======
* Don't detach launched apps to not break pkexec and friends [Florian; #763531]
* Allow search providers to not autostart [Bastien, Florian; #785380, #787986]
* Fix crash when tray icons are hidden/shown in quick succession [Ray; #787361]
* Make window group switcher more consistent [Didier; #786009]
* Improve legibility of the top bar when translucent [Jakub; #787940]
* Don't crash when running outside a logind session [Florian; #788046]
* Allow to run headless [Mario, Jonas; #730551]
* Update calendar on timezone changes [Martin; #678507]
* Improve keyboard navigation of window previews [Florian; #786546]
* Run unit tests on `meson test` [Florian; #786497]
* Misc. bug fixes [Florian, Marc-Antoine, Mario, Jakub, Krzesimir; #787423,
#766368, #787580, #787907, #787901, #788039, #788003, #786343, #787902,
#788265, #788339, #787905, #788282, #787676]
Contributors:
Martin Andersson, Florian Müllner, Bastien Nocera, Krzesimir Nowak,
Marc-Antoine Perennou, Didier Roche, Mario Sanchez Prada, Jakub Steiner,
Ray Strode
Translations:
Efstathios Iosifidis [el], Khaled Hosny [ar], Stas Solovey [ru],
Arash Mousavi [fa], Sveinn í Felli [is], Athul R T [ml],
Cheng-Chia Tseng [zh_TW], Anders Jonsson [sv]
3.26.0
======
* Misc. bug fixes [Ray, Michael, Jonas; #786332] #786783, #786886, #786868]
Contributors:
Jonas Ådahl, Michael Catanzaro, Sebastian Keller, Ray Strode
Translations:
Daniel Mustieles [es], Fran Dieguez [gl], Baurzhan Muftakhidinov [kk],
Marek Cernocky [cs], Andika Triwidada [id], Aurimas Černius [lt],
Piotr Drąg [pl], Trần Ngọc Quân [vi], Jordi Mas [ca], Fabio Tomat [fur],
gogo [hr], Dušan Kazik [sk], Piotr Drąg [ne], Emin Tufan Çetin [tr],
Ask Hjorth Larsen [da], Cheng-Chia Tseng [zh_TW], Rūdolfs Mazurs [lv],
Balázs Meskó [hu], Matej Urbančič [sl], Jiri Grönroos [fi],
Милош Поповић [sr], Милош Поповић [sr@latin], Rafael Fontenelle [pt_BR],
Wolfgang Stöggl [de], Milo Casagrande [it], hanniedu [nl],
Yuras Shumovich [be], Changwoo Ryu [ko], Alain Lojewski [fr],
Alexander Shopov [bg], Daniel Korostil [uk], Kris Thomsen [da],
A S Alam [pa], Sebastian Rasmussen [sv], Inaki Larranaga Murgoitio [eu],
Jiro Matsuzawa [ja]
3.25.91
=======
* Open context menu of highlighted search result on Shift+F10 [Florian; #675315]
* Fix mid-sentence capitalization in weather forecasts [Florian; #779873]
* Add switcher popup to cycle through monitor configurations [Rui; #783550]
* Offer system actions in search [Rares; #691900]
* Misc. bug fixes [Mario, Florian, Rui; #777519, #786120, #786145, #786419,
#786526, #786520, #786520, #786146]
Contributors:
Emmanuele Bassi, Marek Cernocky, Piotr Drąg, Carlos Garnacho, Rui Matos,
Florian Müllner, Mario Sanchez Prada, Rares Visalom
Translations:
Marek Cernocky [cs], Piotr Drąg [pl], Muhammet Kara [tr],
Мирослав Николић [sr, sr@latin], Kukuh Syafaat [id],
Baurzhan Muftakhidinov [kk], Aurimas Černius [lt], Fran Dieguez [gl],
gogo [hr], Jordi Mas [ca]
3.25.90
=======
* Add permission dialog for inhibiting shortucts [Florian; #783342]
* Improve window picker layout [Florian, Jakub; #783953]
* Remove legacy status icon tray [Florian; #785956]
* Drop autotools support [Florian; #785153]
* Misc. bug fixes [Florian, Carlos, Cosimo; #785090, #785309, #767805,
#747794, #785358, #785556]
Contributors:
Emmanuele Bassi, Cosimo Cecchi, Carlos Garnacho, Florian Müllner,
Jakub Steiner
Translations:
Fabio Tomat [fur], Pawan Chitrakar [ne], Aurimas Černius [lt], gogo [hr],
Daniel Mustieles [es], Baurzhan Muftakhidinov [kk], Matej Urbančič [sl],
Marek Cernocky [cs], Dušan Kazik [sk], Jordi Mas [ca], Fran Dieguez [gl],
Andika Triwidada [id], Anders Jonsson [sv], Balázs Meskó [hu]
3.25.4
======
* gdm: Fix "Not listed" focus indication [Florian; #784040]

35
autogen.sh Executable file
View File

@@ -0,0 +1,35 @@
#!/bin/sh
# Run this to generate all the initial makefiles, etc.
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
olddir="$(pwd)"
cd "${srcdir}"
(test -f configure.ac \
&& test -d src) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level gnome-shell directory"
exit 1
}
# Fetch submodules if needed
if test ! -f subprojects/gvc/Makefile.am || test ! -f data/theme/gnome-shell-sass/COPYING;
then
echo "+ Setting up submodules"
git submodule init
fi
git submodule update
aclocal --install || exit 1
gtkdocize --copy || exit 1
intltoolize --force --copy --automake || exit 1
autoreconf --verbose --force --install || exit 1
cd "${olddir}"
if [ "$NOCONFIGURE" = "" ]; then
"${srcdir}/configure" "$@" || exit 1
fi

View File

@@ -0,0 +1,23 @@
mozillalibdir = $(BROWSER_PLUGIN_DIR)
mozillalib_LTLIBRARIES = libgnome-shell-browser-plugin.la
# Browsers can unload and reload the module while browsing, which is not supported by GObject.
# We pass -Wl,-z,nodelete to the linker to ensure the module is never unloaded.
# https://bugzilla.gnome.org/show_bug.cgi?id=737932
libgnome_shell_browser_plugin_la_LDFLAGS = -module -avoid-version -no-undefined -Wl,-z,nodelete
libgnome_shell_browser_plugin_la_LIBADD = \
$(BROWSER_PLUGIN_LIBS)
libgnome_shell_browser_plugin_la_SOURCES = \
browser-plugin.c \
npapi/npapi.h \
npapi/npfunctions.h \
npapi/npruntime.h \
npapi/nptypes.h
libgnome_shell_browser_plugin_la_CFLAGS = \
$(BROWSER_PLUGIN_CFLAGS) \
-DG_LOG_DOMAIN=\"GnomeShellBrowserPlugin\"

158
configure vendored
View File

@@ -1,158 +0,0 @@
#!/bin/bash
# configure script adapter for Meson
# Based on build-api: https://github.com/cgwalters/build-api
# Copyright 2010, 2011, 2013 Colin Walters <walters@verbum.org>
# Copyright 2016, 2017 Emmanuele Bassi
# Licensed under the new-BSD license (http://www.opensource.org/licenses/bsd-license.php)
# Build API variables:
# Little helper function for reading args from the commandline.
# it automatically handles -a b and -a=b variants, and returns 1 if
# we need to shift $3.
read_arg() {
# $1 = arg name
# $2 = arg value
# $3 = arg parameter
local rematch='^[^=]*=(.*)$'
if [[ $2 =~ $rematch ]]; then
read "$1" <<< "${BASH_REMATCH[1]}"
else
read "$1" <<< "$3"
# There is no way to shift our callers args, so
# return 1 to indicate they should do it instead.
return 1
fi
}
sanitycheck() {
# $1 = arg name
# $1 = arg command
# $2 = arg alternates
local cmd=$( which $2 2>/dev/null )
if [ -x "$cmd" ]; then
read "$1" <<< "$cmd"
return 0
fi
test -z $3 || {
for alt in $3; do
cmd=$( which $alt 2>/dev/null )
if [ -x "$cmd" ]; then
read "$1" <<< "$cmd"
return 0
fi
done
}
echo -e "\e[1;31mERROR\e[0m: Command '$2' not found"
exit 1
}
sanitycheck MESON 'meson'
sanitycheck NINJA 'ninja' 'ninja-build'
enable_docs='-Denable-gtk-doc=false'
enable_man='-Denable-man=false'
enable_introspection=''
while (($# > 0)); do
case "${1%%=*}" in
--prefix) read_arg prefix "$@" || shift;;
--bindir) read_arg bindir "$@" || shift;;
--sbindir) read_arg sbindir "$@" || shift;;
--libexecdir) read_arg libexecdir "$@" || shift;;
--datarootdir) read_arg datarootdir "$@" || shift;;
--datadir) read_arg datadir "$@" || shift;;
--sysconfdir) read_arg sysconfdir "$@" || shift;;
--libdir) read_arg libdir "$@" || shift;;
--mandir) read_arg mandir "$@" || shift;;
--includedir) read_arg includedir "$@" || shift;;
--enable-gtk-doc) enable_docs='-Denable-gtk-doc=true';;
--disable-gtk-doc) enable_docs='-Denable-gtk-doc=false';;
--enable-man) enable_man='-Denable-man=true';;
--disable-man) enable_man='-Denable-man=false';;
--enable-introspection) enable_introspection='';;
--disable-introspection) enable_introspection='-Ddisable_introspection=true';;
*) echo -e "\e[1;33mINFO\e[0m: Ignoring unknown option '$1'";;
esac
shift
done
# Defaults
test -z ${prefix} && prefix="/usr/local"
test -z ${bindir} && bindir=${prefix}/bin
test -z ${sbindir} && sbindir=${prefix}/sbin
test -z ${libexecdir} && libexecdir=${prefix}/bin
test -z ${datarootdir} && datarootdir=${prefix}/share
test -z ${datadir} && datadir=${datarootdir}
test -z ${sysconfdir} && sysconfdir=${prefix}/etc
test -z ${libdir} && libdir=${prefix}/lib
test -z ${mandir} && mandir=${prefix}/share/man
test -z ${includedir} && includedir=${prefix}/include
# The source directory is the location of this file
srcdir=$(dirname $0)
# The build directory is the current location
builddir=`pwd`
# If we're calling this file from the source directory then
# we automatically create a build directory and ensure that
# both Meson and Ninja invocations are relative to that
# location
if [[ -f "${builddir}/meson.build" ]]; then
mkdir -p _build
builddir="${builddir}/_build"
NINJA_OPT="-C ${builddir}"
fi
# Wrapper Makefile for Ninja
cat > Makefile <<END
# Generated by configure; do not edit
all:
CC="\$(CC)" CXX="\$(CXX)" ${NINJA} ${NINJA_OPT}
install:
DESTDIR="\$(DESTDIR)" ${NINJA} ${NINJA_OPT} install
check:
${MESON} test ${NINJA_OPT}
END
echo "Summary:"
echo " meson:....... ${MESON}"
echo " ninja:....... ${NINJA}"
echo " prefix:...... ${prefix}"
echo " bindir:...... ${bindir}"
echo " sbindir:..... ${sbindir}"
echo " libexecdir:.. ${libexecdir}"
echo " datarootdir:. ${datarootdir}"
echo " datadir:..... ${datadir}"
echo " sysconfdir:.. ${sysconfdir}"
echo " libdir:...... ${libdir}"
echo " mandir:...... ${mandir}"
echo " includedir:.. ${includedir}"
echo " additional:.."
echo " - ${enable_docs} ${enable_man} ${enable_introspection}"
exec ${MESON} \
--prefix=${prefix} \
--libdir=${libdir} \
--libexecdir=${libexecdir} \
--datadir=${datadir} \
--sysconfdir=${sysconfdir} \
--bindir=${bindir} \
--includedir=${includedir} \
--mandir=${mandir} \
--default-library shared \
${enable_docs} \
${enable_man} \
${enable_introspection} \
${builddir} \
${srcdir}
# vim: ai ts=8 noet sts=2 ft=sh

280
configure.ac Normal file
View File

@@ -0,0 +1,280 @@
AC_PREREQ(2.63)
AC_INIT([gnome-shell],[3.25.4],[https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-shell],[gnome-shell])
AX_IS_RELEASE([git-directory])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/shell-global.c])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([config])
AC_SUBST([PACKAGE_NAME], ["$PACKAGE_NAME"])
AC_SUBST([PACKAGE_VERSION], ["$PACKAGE_VERSION"])
AM_INIT_AUTOMAKE([1.11 no-dist-gzip dist-xz tar-ustar foreign])
AM_MAINTAINER_MODE([enable])
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
# Checks for programs.
AC_PROG_CC
# Initialize libtool
LT_PREREQ([2.2.6])
LT_INIT([disable-static])
# i18n
GETTEXT_PACKAGE=gnome-shell
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
[The prefix for our gettext translation domains.])
AM_GNU_GETTEXT_VERSION([0.19.6])
AM_GNU_GETTEXT([external])
PKG_PROG_PKG_CONFIG([0.22])
AC_PATH_PROG([XSLTPROC], [xsltproc])
GLIB_GSETTINGS
# Get a value to substitute into gnome-shell.in
AM_PATH_PYTHON([3])
AC_SUBST(PYTHON)
# We depend on a specific version of the libmutter API. The mutter variants of
# the Cogl and Clutter libraries also use this API version.
LIBMUTTER_API_VERSION=0
LIBMUTTER=libmutter-$LIBMUTTER_API_VERSION
LIBMUTTER_COGL=mutter-cogl-$LIBMUTTER_API_VERSION
LIBMUTTER_COGL_PANGO=mutter-cogl-pango-$LIBMUTTER_API_VERSION
LIBMUTTER_CLUTTER=mutter-clutter-$LIBMUTTER_API_VERSION
# We need at least this, since gst_plugin_register_static() was added
# in 0.10.16, but nothing older than 0.10.21 has been tested.
GSTREAMER_MIN_VERSION=0.11.92
recorder_modules=
build_recorder=false
AC_MSG_CHECKING([for GStreamer (needed for recording functionality)])
if $PKG_CONFIG --exists gstreamer-1.0 '>=' $GSTREAMER_MIN_VERSION ; then
AC_MSG_RESULT(yes)
build_recorder=true
recorder_modules="gstreamer-1.0 gstreamer-base-1.0 x11 gtk+-3.0"
else
AC_MSG_RESULT(no)
fi
AM_CONDITIONAL(BUILD_RECORDER, $build_recorder)
AC_ARG_ENABLE([systemd],
AS_HELP_STRING([--enable-systemd], [Use systemd]),
[enable_systemd=$enableval],
[enable_systemd=auto])
AS_IF([test x$enable_systemd != xno], [
AC_MSG_CHECKING([for libsystemd])
PKG_CHECK_EXISTS([libsystemd],
[have_systemd=yes
AC_DEFINE([HAVE_SYSTEMD], [1], [Define if we have systemd])],
[have_systemd=no])
AC_MSG_RESULT($have_systemd)
])
AC_MSG_RESULT($enable_systemd)
GOBJECT_INTROSPECTION_MIN_VERSION=1.49.1
GJS_MIN_VERSION=1.47.0
MUTTER_MIN_VERSION=3.25.3
GTK_MIN_VERSION=3.15.0
GIO_MIN_VERSION=2.53.0
LIBECAL_MIN_VERSION=3.5.3
LIBEDATASERVER_MIN_VERSION=3.17.2
POLKIT_MIN_VERSION=0.100
STARTUP_NOTIFICATION_MIN_VERSION=0.11
GCR_MIN_VERSION=3.7.5
GNOME_DESKTOP_REQUIRED_VERSION=3.7.90
NETWORKMANAGER_MIN_VERSION=0.9.8
PULSE_MIN_VERS=2.0
# Collect more than 20 libraries for a prize!
SHARED_PCS="gio-unix-2.0 >= $GIO_MIN_VERSION
libxml-2.0
gtk+-3.0 >= $GTK_MIN_VERSION
atk-bridge-2.0
gjs-1.0 >= $GJS_MIN_VERSION
$recorder_modules
gdk-x11-3.0 libsoup-2.4
$LIBMUTTER_CLUTTER >= $MUTTER_MIN_VERSION
$LIBMUTTER_COGL_PANGO
libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_MIN_VERSION
gobject-introspection-1.0 >= $GOBJECT_INTROSPECTION_MIN_VERSION
libcanberra libcanberra-gtk3
polkit-agent-1 >= $POLKIT_MIN_VERSION
gcr-base-3 >= $GCR_MIN_VERSION"
if test x$have_systemd = xyes; then
SHARED_PCS="${SHARED_PCS} libsystemd"
fi
PKG_CHECK_MODULES(GNOME_SHELL, $SHARED_PCS)
PKG_CHECK_MODULES(MUTTER, $LIBMUTTER >= $MUTTER_MIN_VERSION)
PKG_CHECK_MODULES(GNOME_SHELL_JS, gio-2.0 gjs-1.0 >= $GJS_MIN_VERSION)
PKG_CHECK_MODULES(ST, $LIBMUTTER_CLUTTER gtk+-3.0 libcroco-0.6 >= 0.6.8 x11)
PKG_CHECK_MODULES(SHELL_PERF_HELPER, gtk+-3.0 gio-2.0)
PKG_CHECK_MODULES(SHELL_HOTPLUG_SNIFFER, gio-2.0 gdk-pixbuf-2.0)
PKG_CHECK_MODULES(TRAY, $LIBMUTTER_CLUTTER gtk+-3.0)
PKG_CHECK_MODULES(GVC, libpulse >= $PULSE_MIN_VERS libpulse-mainloop-glib gobject-2.0)
PKG_CHECK_MODULES(DESKTOP_SCHEMAS, gsettings-desktop-schemas >= 3.21.3)
AC_SUBST(LIBMUTTER_API_VERSION)
AC_ARG_ENABLE(browser-plugin,
[AS_HELP_STRING([--enable-browser-plugin],
[Enable browser plugin [default=yes]])],,
enable_browser_plugin=yes)
AS_IF([test x$enable_browser_plugin = xyes], [
PKG_CHECK_MODULES(BROWSER_PLUGIN, gio-2.0 >= $GIO_MIN_VERSION json-glib-1.0 >= 0.13.2)
])
AM_CONDITIONAL(BUILD_BROWSER_PLUGIN, test x$enable_browser_plugin = xyes)
PKG_CHECK_MODULES(BLUETOOTH, gnome-bluetooth-1.0 >= 3.9.0,
[AC_DEFINE([HAVE_BLUETOOTH],[1],[Define if you have libgnome-bluetooth-applet])
AC_SUBST([HAVE_BLUETOOTH],[1])],
[AC_DEFINE([HAVE_BLUETOOTH],[0])
AC_SUBST([HAVE_BLUETOOTH],[0])])
PKG_CHECK_MODULES(CALENDAR_SERVER, libecal-1.2 >= $LIBECAL_MIN_VERSION libedataserver-1.2 >= $LIBEDATASERVER_MIN_VERSION gio-2.0)
AC_SUBST(CALENDAR_SERVER_CFLAGS)
AC_SUBST(CALENDAR_SERVER_LIBS)
GNOME_KEYBINDINGS_KEYSDIR=`$PKG_CONFIG --variable keysdir gnome-keybindings`
AC_SUBST([GNOME_KEYBINDINGS_KEYSDIR])
GOBJECT_INTROSPECTION_CHECK([$GOBJECT_INTROSPECTION_MIN_VERSION])
MUTTER_GIR_DIR=`$PKG_CONFIG --variable=girdir $LIBMUTTER`
AC_SUBST(MUTTER_GIR_DIR)
MUTTER_TYPELIB_DIR=`$PKG_CONFIG --variable=typelibdir $LIBMUTTER`
AC_SUBST(MUTTER_TYPELIB_DIR)
GLIB_COMPILE_RESOURCES=`$PKG_CONFIG --variable glib_compile_resources gio-2.0`
AC_SUBST(GLIB_COMPILE_RESOURCES)
AC_CHECK_FUNCS(fdwalk)
AC_CHECK_FUNCS(mallinfo)
AC_CHECK_HEADERS([sys/resource.h])
# _NL_TIME_FIRST_WEEKDAY is an enum and not a define
AC_MSG_CHECKING([for _NL_TIME_FIRST_WEEKDAY])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
[[nl_langinfo(_NL_TIME_FIRST_WEEKDAY);]])],
[langinfo_ok=yes], [langinfo_ok=no])
AC_MSG_RESULT($langinfo_ok)
if test "$langinfo_ok" = "yes"; then
AC_DEFINE([HAVE__NL_TIME_FIRST_WEEKDAY], [1],
[Define if _NL_TIME_FIRST_WEEKDAY is available])
fi
AC_ARG_ENABLE(networkmanager,
AS_HELP_STRING([--disable-networkmanager],
[disable NetworkManager support @<:@default=auto@:>@]),,
[enable_networkmanager=auto])
if test "x$enable_networkmanager" != "xno"; then
PKG_CHECK_MODULES(NETWORKMANAGER,
[libnm-glib
libnm-util >= $NETWORKMANAGER_MIN_VERSION
libnm-gtk >= $NETWORKMANAGER_MIN_VERSION
libsecret-1 >= 0.18],
[have_networkmanager=yes],
[have_networkmanager=no])
GNOME_SHELL_CFLAGS="$GNOME_SHELL_CFLAGS $NETWORKMANAGER_CFLAGS"
GNOME_SHELL_LIBS="$GNOME_SHELL_LIBS $NETWORKMANAGER_LIBS"
else
have_networkmanager="no (disabled)"
fi
if test "x$have_networkmanager" = "xyes"; then
AC_DEFINE(HAVE_NETWORKMANAGER, [1], [Define if we have NetworkManager])
AC_SUBST([HAVE_NETWORKMANAGER], [1])
else
if test "x$enable_networkmanager" = "xyes"; then
AC_MSG_ERROR([Couldn't find NetworkManager.])
fi
AC_SUBST([HAVE_NETWORKMANAGER], [0])
fi
AM_CONDITIONAL(HAVE_NETWORKMANAGER, test "$have_networkmanager" = "yes")
# Sets GLIB_GENMARSHAL and GLIB_MKENUMS
AM_PATH_GLIB_2_0()
GTK_DOC_CHECK([1.15], [--flavour no-tmpl])
AC_ARG_ENABLE(man,
[AS_HELP_STRING([--enable-man],
[generate man pages [default=yes]])],,
enable_man=yes)
if test "$enable_man" != no; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
if test -z "$XSLTPROC"; then
AC_MSG_ERROR([xsltproc is required for --enable-man])
fi
fi
AM_CONDITIONAL(ENABLE_MAN, test "$enable_man" != no)
AX_COMPILER_FLAGS()
case "$WARN_CFLAGS" in
*-Werror*)
WARN_CFLAGS="$WARN_CFLAGS -Wno-error=deprecated-declarations"
;;
esac
AM_CFLAGS="$AM_CFLAGS $WARN_CFLAGS"
AC_SUBST(AM_CFLAGS)
if test -z "${BROWSER_PLUGIN_DIR}"; then
BROWSER_PLUGIN_DIR="\${libdir}/mozilla/plugins"
fi
AC_ARG_VAR([BROWSER_PLUGIN_DIR],[Where to install the plugin to])
AC_ARG_VAR([GDBUS_CODEGEN],[the gdbus-codegen programme])
AC_PATH_PROG([GDBUS_CODEGEN],[gdbus-codegen],[])
if test -z "$GDBUS_CODEGEN"; then
AC_MSG_ERROR([gdbus-codegen not found])
fi
AC_PATH_PROG([SASSC],[sassc],[])
AC_CONFIG_FILES([
Makefile
data/Makefile
docs/Makefile
docs/reference/Makefile
docs/reference/shell/Makefile
docs/reference/shell/version.xml
docs/reference/st/Makefile
docs/reference/st/version.xml
js/Makefile
src/Makefile
subprojects/gvc/Makefile
browser-plugin/Makefile
tests/Makefile
po/Makefile.in
man/Makefile
])
AC_OUTPUT
echo "
Build configuration:
Prefix: ${prefix}
Source code location: ${srcdir}
Compiler: ${CC}
Compiler Warnings: $ax_enable_compile_warnings
Support for NetworkManager: $have_networkmanager
Support for GStreamer recording: $build_recorder
"

136
data/Makefile.am Normal file
View File

@@ -0,0 +1,136 @@
CLEANFILES =
NULL =
portaldir = $(datadir)/xdg-desktop-portal/portals
portal_DATA = gnome-shell.portal
desktopdir=$(datadir)/applications
desktop_DATA = org.gnome.Shell.desktop gnome-shell-extension-prefs.desktop
if HAVE_NETWORKMANAGER
desktop_DATA += org.gnome.Shell.PortalHelper.desktop
servicedir = $(datadir)/dbus-1/services
service_DATA = org.gnome.Shell.PortalHelper.service
CLEANFILES += \
org.gnome.Shell.PortalHelper.service \
org.gnome.Shell.PortalHelper.desktop \
org.gnome.Shell.PortalHelper.desktop.in \
$(NULL)
endif
%.service: %.service.in
$(AM_V_GEN) sed -e "s|@libexecdir[@]|$(libexecdir)|" \
$< > $@ || rm $@
# We substitute in bindir so it works as an autostart
# file when built in a non-system prefix
%.desktop.in:%.desktop.in.in
$(AM_V_GEN) sed -e "s|@bindir[@]|$(bindir)|" \
-e "s|@VERSION[@]|$(VERSION)|" \
$< > $@ || rm $@
%.desktop:%.desktop.in
$(AM_V_GEN) $(MSGFMT) --desktop --template $(builddir)/$< \
-d $(top_srcdir)/po -o $@
introspectiondir = $(datadir)/dbus-1/interfaces
introspection_DATA = \
org.gnome.Shell.PadOsd.xml \
org.gnome.Shell.Screencast.xml \
org.gnome.Shell.Screenshot.xml \
org.gnome.ShellSearchProvider.xml \
org.gnome.ShellSearchProvider2.xml \
$(NULL)
theme_sources = \
theme/gnome-shell-high-contrast.scss \
theme/gnome-shell.scss \
theme/gnome-shell-sass/_colors.scss \
theme/gnome-shell-sass/_common.scss \
theme/gnome-shell-sass/_drawing.scss \
theme/gnome-shell-sass/_high-contrast-colors.scss \
$(NULL)
dist_theme_files = \
$(theme_sources) \
theme/HACKING \
theme/README \
theme/gnome-shell-sass/COPYING \
theme/gnome-shell-sass/HACKING \
theme/gnome-shell-sass/NEWS \
theme/gnome-shell-sass/README \
theme/gnome-shell-sass/gnome-shell-sass.doap \
theme/pad-osd.css \
theme/parse-sass.sh \
$(NULL)
%.css: %.scss $(theme_sources)
@if test -n "$(SASSC)"; then \
if $(AM_V_P); then PS4= set -x; else echo " GEN $@"; fi; \
$(SASSC) -a $< $@; \
fi
resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/theme --generate-dependencies $(srcdir)/gnome-shell-theme.gresource.xml)
gnome-shell-theme.gresource: gnome-shell-theme.gresource.xml $(resource_files)
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/theme $<
resourcedir = $(pkgdatadir)
resource_DATA = gnome-shell-theme.gresource
backgrounddir = $(pkgdatadir)
background_DATA = perf-background.xml
perf-background.xml: perf-background.xml.in
$(AM_V_GEN) sed -e "s|@datadir[@]|$(datadir)|" \
$< > $@ || rm $@
keysdir = @GNOME_KEYBINDINGS_KEYSDIR@
keys_DATA = 50-gnome-shell-system.xml
gsettings_SCHEMAS = org.gnome.shell.gschema.xml
%.gschema.xml: %.gschema.xml.in Makefile
$(AM_V_GEN) sed -e 's|@GETTEXT_PACKAGE[@]|$(GETTEXT_PACKAGE)|g' \
$< > $@ || rm $@
@GSETTINGS_RULES@
# We need to compile schemas at make time
# to run from source tree
gschemas.compiled: $(gsettings_SCHEMAS:.xml=.valid)
$(AM_V_GEN) $(GLIB_COMPILE_SCHEMAS) --targetdir=. .
all-local: gschemas.compiled
convertdir = $(datadir)/GConf/gsettings
convert_DATA = gnome-shell-overrides.convert
EXTRA_DIST = \
org.gnome.Shell.desktop.in.in \
gnome-shell-extension-prefs.desktop.in.in \
$(portal_DATA) \
$(introspection_DATA) \
$(menu_DATA) \
$(convert_DATA) \
$(keys_DATA) \
$(dist_theme_files) \
perf-background.xml.in \
org.gnome.Shell.PortalHelper.desktop.in.in \
org.gnome.Shell.PortalHelper.service.in \
org.gnome.shell.gschema.xml.in \
gnome-shell-theme.gresource.xml \
$(resource_files) \
$(NULL)
CLEANFILES += \
org.gnome.Shell.desktop.in \
gnome-shell-extension-prefs.in \
$(desktop_DATA) \
$(gsettings_SCHEMAS) \
perf-background.xml \
gschemas.compiled \
org.gnome.shell.gschema.valid \
gnome-shell-theme.gresource \
$(NULL)

View File

@@ -9,8 +9,6 @@
<file>checkbox-off.svg</file>
<file>checkbox.svg</file>
<file>close-window.svg</file>
<file>close-window-active.svg</file>
<file>close-window-hover.svg</file>
<file>close.svg</file>
<file>corner-ripple-ltr.png</file>
<file>corner-ripple-rtl.png</file>
@@ -20,7 +18,6 @@
<file>gnome-shell.css</file>
<file>gnome-shell-high-contrast.css</file>
<file>logged-in-indicator.svg</file>
<file alias="icons/message-indicator-symbolic.svg">message-indicator-symbolic.svg</file>
<file>no-events.svg</file>
<file>no-notifications.svg</file>
<file>noise-texture.png</file>

View File

@@ -78,18 +78,11 @@ install_data('50-gnome-shell-system.xml', install_dir: keysdir)
schemaconf = configuration_data()
schemaconf.set('GETTEXT_PACKAGE', meson.project_name())
schema = configure_file(
configure_file(
input: 'org.gnome.shell.gschema.xml.in',
output: 'org.gnome.shell.gschema.xml',
configuration: schemaconf,
install_dir: schemadir
)
# for unit tests - gnome.compile_schemas() only looks in srcdir
custom_target('compile-schemas',
input: schema,
output: 'gschemas.compiled',
command: [find_program('glib-compile-schemas'), meson.current_build_dir()],
build_by_default: true)
install_data('gnome-shell-overrides.convert', install_dir: convertdir)

View File

@@ -1,81 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Foreground"
x="0px"
y="0px"
width="32"
height="32"
viewBox="0 0 32 32"
enable-background="new 0 0 16 16"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="close-window-active.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata2399"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs2397"><linearGradient
id="linearGradient3173"><stop
style="stop-color:#c4c4c4;stop-opacity:1;"
offset="0"
id="stop3175" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3177" /></linearGradient><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1375 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333334 : 1"
id="perspective2401" /></defs><sodipodi:namedview
inkscape:window-height="1106"
inkscape:window-width="1700"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#797979"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="28.483745"
inkscape:cy="67.714004"
inkscape:window-x="1427"
inkscape:window-y="127"
inkscape:current-layer="Foreground"
showguides="true"
inkscape:guide-bbox="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:window-maximized="0"
inkscape:document-rotation="0"><inkscape:grid
type="xygrid"
id="grid11246"
empspacing="32"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
d="m 4.4362021,16 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 C 9.6090297,27.607281 4.4362021,22.410122 4.4362021,16 Z"
id="path883"
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#a5c8ec;fill-opacity:1;fill-rule:nonzero;stroke:#2975c4;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
sodipodi:nodetypes="csssc"
inkscape:connector-curvature="0" /><path
d="m 11.718386,11.764547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,16.018351 12.015167,13.61116 C 11.79279,13.405784 11.69527,13.116003 11.71839,12.819755 Z"
inkscape:connector-curvature="0"
id="path887"
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
sodipodi:nodetypes="ccsccccccccccccccccccccccc" /></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -1,81 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
id="Foreground"
x="0px"
y="0px"
width="32"
height="32"
viewBox="0 0 32 32"
enable-background="new 0 0 16 16"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
sodipodi:docname="close-window-hover.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata2399"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs2397"><linearGradient
id="linearGradient3173"><stop
style="stop-color:#c4c4c4;stop-opacity:1;"
offset="0"
id="stop3175" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3177" /></linearGradient><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1375 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333334 : 1"
id="perspective2401" /></defs><sodipodi:namedview
inkscape:window-height="1106"
inkscape:window-width="1700"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#797979"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="28.483745"
inkscape:cy="67.714004"
inkscape:window-x="1427"
inkscape:window-y="127"
inkscape:current-layer="Foreground"
showguides="true"
inkscape:guide-bbox="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:window-maximized="0"
inkscape:document-rotation="0"><inkscape:grid
type="xygrid"
id="grid11246"
empspacing="32"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
inkscape:connector-curvature="0"
sodipodi:nodetypes="csssc"
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#2975c4;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
id="path822"
d="m 4.4362021,16 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 C 9.6090297,27.607281 4.4362021,22.410122 4.4362021,16 Z" /><path
sodipodi:nodetypes="ccsccccccccccccccccccccccc"
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
id="path826"
inkscape:connector-curvature="0"
d="m 11.718386,11.764547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,16.018351 12.015167,13.61116 C 11.79279,13.405784 11.69527,13.116003 11.71839,12.819755 Z" /></svg>

Before

Width:  |  Height:  |  Size: 4.6 KiB

View File

@@ -7,6 +7,7 @@
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
@@ -15,71 +16,137 @@
y="0px"
width="32"
height="32"
viewBox="0 0 32 32"
viewBox="0 0 23.272727 23.272727"
enable-background="new 0 0 16 16"
xml:space="preserve"
sodipodi:version="0.32"
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
inkscape:version="0.48+devel r10081 custom"
sodipodi:docname="close-window.svg"
inkscape:output_extension="org.inkscape.output.svg.inkscape"><metadata
id="metadata2399"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
id="defs2397"><linearGradient
id="linearGradient3173"><stop
style="stop-color:#c4c4c4;stop-opacity:1;"
offset="0"
id="stop3175" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3177" /></linearGradient><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 11 : 1"
inkscape:vp_y="0 : 1375 : 0"
inkscape:vp_z="22 : 11 : 1"
inkscape:persp3d-origin="11 : 7.3333334 : 1"
id="perspective2401" /></defs><sodipodi:namedview
inkscape:window-height="1106"
inkscape:window-width="1700"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#797979"
id="base"
showgrid="false"
inkscape:zoom="4"
inkscape:cx="28.483745"
inkscape:cy="67.714004"
inkscape:window-x="1427"
inkscape:window-y="127"
inkscape:current-layer="Foreground"
showguides="true"
inkscape:guide-bbox="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:window-maximized="0"
inkscape:document-rotation="0"><inkscape:grid
type="xygrid"
id="grid11246"
empspacing="32"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" /></sodipodi:namedview><path
d="m 4.4362021,15.860384 c 0,-6.410121 5.1728276,-11.60728 11.5529359,-11.60728 6.380109,0 11.552937,5.197159 11.552937,11.60728 0,6.410122 -5.172828,11.607281 -11.552937,11.607281 -6.3801083,0 -11.5529359,-5.197159 -11.5529359,-11.607281 z"
id="path2394-32"
style="color:#000000;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#2975c4;stroke-width:4;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
sodipodi:nodetypes="csssc"
inkscape:connector-curvature="0" /><path
style="color:#000000;display:inline;overflow:visible;visibility:visible;opacity:0.49900004;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.74932218;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
d="m 6.4654832,15.001321 c -0.025906,0.288419 -0.044417,0.579469 -0.044417,0.874662 0,5.313347 4.2883848,9.621271 9.5768588,9.621271 5.288466,0 9.575143,-4.307924 9.575143,-9.621271 0,-0.295193 -0.01852,-0.586243 -0.04441,-0.874662 -0.440376,4.903023 -4.536071,8.746611 -9.53073,8.746611 -4.994659,0 -9.0920617,-3.843588 -9.5324391,-8.746611 z"
id="path2561"
inkscape:connector-curvature="0" /><path
d="m 11.718386,11.639547 h 1.055207 c 0.01091,-1.26e-4 0.02193,-4.86e-4 0.03298,0 0.269026,0.01183 0.538019,0.135679 0.725455,0.329752 l 2.407192,2.407192 2.440166,-2.407192 c 0.28029,-0.243226 0.471333,-0.322366 0.725455,-0.329752 h 1.055207 v 1.055208 c 0,0.302285 -0.03623,0.581049 -0.263801,0.791405 l -2.407191,2.407191 2.374217,2.374216 c 0.198577,0.198559 0.296768,0.478484 0.296775,0.758432 v 1.055206 h -1.055211 c -0.279947,-10e-6 -0.559877,-0.09824 -0.75843,-0.296777 l -2.407192,-2.407192 -2.407192,2.407192 c -0.198551,0.198579 -0.478493,0.296777 -0.758429,0.296777 H 11.71839 v -1.055206 c -3e-6,-0.279936 0.0982,-0.559873 0.296777,-0.758432 L 14.422359,15.893351 12.015167,13.48616 C 11.79279,13.280784 11.69527,12.991003 11.71839,12.694755 Z"
inkscape:connector-curvature="0"
id="path27279-0-5"
style="color:#bebebe;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:'Andale Mono';-inkscape-font-specification:'Andale Mono';text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-anchor:start;display:inline;overflow:visible;visibility:visible;fill:#4a90d9;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.87958801;marker:none;enable-background:new"
sodipodi:nodetypes="ccsccccccccccccccccccccccc" /></svg>
id="metadata2399"><rdf:RDF><cc:Work
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
id="defs2397"><linearGradient
id="linearGradient3173"><stop
style="stop-color:#c4c4c4;stop-opacity:1;"
offset="0"
id="stop3175" /><stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="1"
id="stop3177" /></linearGradient><inkscape:perspective
sodipodi:type="inkscape:persp3d"
inkscape:vp_x="0 : 8 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_z="16 : 8 : 1"
inkscape:persp3d-origin="8 : 5.3333333 : 1"
id="perspective2401" /><filter
color-interpolation-filters="sRGB"
inkscape:collect="always"
id="filter16494-4"
x="-0.20989846"
width="1.4197969"
y="-0.20903821"
height="1.4180764"><feGaussianBlur
inkscape:collect="always"
stdDeviation="1.3282637"
id="feGaussianBlur16496-8" /></filter><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient16498-6"
id="radialGradient16504-1"
cx="7.6582627"
cy="5.8191104"
fx="7.6582627"
fy="5.8191104"
r="8.6928644"
gradientTransform="matrix(1.0474339,0,0,1.0517402,-0.3632615,-0.42032492)"
gradientUnits="userSpaceOnUse" /><linearGradient
inkscape:collect="always"
id="linearGradient16498-6"><stop
style="stop-color:#7b7b7b;stop-opacity:1"
offset="0"
id="stop16500-8" /><stop
style="stop-color:#101010;stop-opacity:1"
offset="1"
id="stop16502-0" /></linearGradient><filter
color-interpolation-filters="sRGB"
inkscape:collect="always"
id="filter16524-9"
x="-0.212979"
width="1.425958"
y="-0.21305652"
height="1.426113"><feGaussianBlur
inkscape:collect="always"
stdDeviation="0.71020915"
id="feGaussianBlur16526-0" /></filter></defs><sodipodi:namedview
inkscape:window-height="1114"
inkscape:window-width="1463"
inkscape:pageshadow="2"
inkscape:pageopacity="0"
guidetolerance="10.0"
gridtolerance="10.0"
objecttolerance="10.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#000000"
id="base"
showgrid="false"
inkscape:zoom="1"
inkscape:cx="10.720189"
inkscape:cy="13.739577"
inkscape:window-x="0"
inkscape:window-y="26"
inkscape:current-layer="Foreground"
showguides="true"
inkscape:guide-bbox="true"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:window-maximized="0"><inkscape:grid
type="xygrid"
id="grid11246"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" /></sodipodi:namedview>
<g
style="display:inline"
id="g16402-8"
transform="translate(4.7533483,2.8238929)"><g
id="g3175-4"><path
sodipodi:type="inkscape:offset"
inkscape:radius="0"
inkscape:original="M 7.65625 0.125 C 3.2589349 0.125 -0.3125 3.7070002 -0.3125 8.125 C -0.3125 12.543001 3.2589349 16.125 7.65625 16.125 C 12.053566 16.125 15.625 12.543001 15.625 8.125 C 15.625 3.7070002 12.053566 0.125 7.65625 0.125 z "
xlink:href="#path2394-32"
style="opacity:0.52994014;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:2.18181825;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter16494-4);enable-background:accumulate"
id="path16480-5"
inkscape:href="#path2394-32"
d="m 7.65625,0.125 c -4.3973151,0 -7.96875,3.5820002 -7.96875,8 0,4.418001 3.5714349,8 7.96875,8 4.397316,0 7.96875,-3.581999 7.96875,-8 0,-4.4179998 -3.571434,-8 -7.96875,-8 z"
transform="translate(0,1.028519)" /><path
clip-rule="evenodd"
d="m -0.30428257,8.1237596 c 0,-4.4179998 3.56522987,-7.9999996 7.96254497,-7.9999996 4.3973156,0 7.9625456,3.5819998 7.9625456,7.9999996 0,4.4180014 -3.56523,8.0000004 -7.9625456,8.0000004 -4.3973151,0 -7.96254497,-3.581999 -7.96254497,-8.0000004 z"
id="path2394-32"
style="color:#000000;fill:url(#radialGradient16504-1);fill-opacity:1;fill-rule:nonzero;stroke:#eeeeec;stroke-width:1.4545455;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
sodipodi:nodetypes="csssc"
inkscape:connector-curvature="0" /><g
id="g3172-6" /></g><g
transform="matrix(0.72727273,0,0,0.72727273,2.368236,2.1803254)"
style="fill:#ffffff;fill-opacity:1;display:inline"
id="g27275-6-6"
inkscape:label="window-close"><g
style="fill:#ffffff;fill-opacity:1;display:inline"
id="g27277-1-1"
transform="translate(-41,-760)"><path
sodipodi:type="inkscape:offset"
inkscape:radius="0"
inkscape:original="M 44.21875 764.1875 L 44.21875 765.1875 C 44.19684 765.46825 44.289258 765.74287 44.5 765.9375 L 46.78125 768.21875 L 44.5 770.46875 C 44.31181 770.65692 44.218747 770.92221 44.21875 771.1875 L 44.21875 772.1875 L 45.21875 772.1875 C 45.48404 772.1875 45.749336 772.09444 45.9375 771.90625 L 48.21875 769.625 L 50.5 771.90625 C 50.688164 772.0944 50.953449 772.18749 51.21875 772.1875 L 52.21875 772.1875 L 52.21875 771.1875 C 52.218742 770.9222 52.125688 770.65692 51.9375 770.46875 L 49.6875 768.21875 L 51.96875 765.9375 C 52.18441 765.73815 52.21875 765.47397 52.21875 765.1875 L 52.21875 764.1875 L 51.21875 764.1875 C 50.977922 764.1945 50.796875 764.2695 50.53125 764.5 L 48.21875 766.78125 L 45.9375 764.5 C 45.75987 764.31608 45.504951 764.1987 45.25 764.1875 C 45.23954 764.18704 45.22912 764.18738 45.21875 764.1875 L 44.21875 764.1875 z "
xlink:href="#path27279-0-5"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#bebebe;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter16524-9);enable-background:new;font-family:Andale Mono;-inkscape-font-specification:Andale Mono"
id="path16506-5"
inkscape:href="#path27279-0-5"
d="m 44.21875,764.1875 0,1 c -0.02191,0.28075 0.07051,0.55537 0.28125,0.75 l 2.28125,2.28125 -2.28125,2.25 c -0.18819,0.18817 -0.281253,0.45346 -0.28125,0.71875 l 0,1 1,0 c 0.26529,0 0.530586,-0.0931 0.71875,-0.28125 L 48.21875,769.625 50.5,771.90625 c 0.188164,0.18815 0.453449,0.28124 0.71875,0.28125 l 1,0 0,-1 c -8e-6,-0.2653 -0.09306,-0.53058 -0.28125,-0.71875 l -2.25,-2.25 2.28125,-2.28125 c 0.21566,-0.19935 0.25,-0.46353 0.25,-0.75 l 0,-1 -1,0 c -0.240828,0.007 -0.421875,0.082 -0.6875,0.3125 l -2.3125,2.28125 L 45.9375,764.5 c -0.17763,-0.18392 -0.432549,-0.3013 -0.6875,-0.3125 -0.01046,-4.6e-4 -0.02088,-1.2e-4 -0.03125,0 l -1,0 z"
transform="translate(0,1.3535534)" /><path
sodipodi:nodetypes="ccsccccccccccccccccccccccc"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;color:#bebebe;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.78124988;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;font-family:Andale Mono;-inkscape-font-specification:Andale Mono"
id="path27279-0-5"
inkscape:connector-curvature="0"
d="m 44.226475,764.17222 1,0 c 0.01037,-1.2e-4 0.02079,-4.6e-4 0.03125,0 0.254951,0.0112 0.50987,0.12858 0.6875,0.3125 l 2.28125,2.28125 2.3125,-2.28125 c 0.265625,-0.2305 0.446672,-0.3055 0.6875,-0.3125 l 1,0 0,1 c 0,0.28647 -0.03434,0.55065 -0.25,0.75 l -2.28125,2.28125 2.25,2.25 c 0.188188,0.18817 0.281242,0.45345 0.28125,0.71875 l 0,1 -1,0 c -0.265301,-1e-5 -0.530586,-0.0931 -0.71875,-0.28125 l -2.28125,-2.28125 -2.28125,2.28125 c -0.188164,0.18819 -0.45346,0.28125 -0.71875,0.28125 l -1,0 0,-1 c -3e-6,-0.26529 0.09306,-0.53058 0.28125,-0.71875 l 2.28125,-2.25 -2.28125,-2.28125 c -0.210742,-0.19463 -0.30316,-0.46925 -0.28125,-0.75 l 0,-1 z" /></g></g></g></svg>

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@@ -454,10 +454,6 @@ StScrollBar {
.extension-dialog .message-dialog-title {
color: #b2b2a9; }
/* Inhibit-Shortcuts Dialog */
.inhibit-shortcuts-dialog {
spacing: 30px; }
/* Network Agent Dialog */
.network-dialog-secret-table {
spacing-rows: 15px;
@@ -657,7 +653,7 @@ StScrollBar {
/* TOP BAR */
#panel {
background-color: rgba(0, 0, 0, 0.35);
background-color: rgba(0, 0, 0, 0.2);
/* transition from solid to transparent */
transition-duration: 500ms;
font-weight: bold;
@@ -668,7 +664,7 @@ StScrollBar {
spacing: 4px; }
#panel .panel-corner {
-panel-corner-radius: 6px;
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent; }
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
@@ -682,7 +678,7 @@ StScrollBar {
-minimum-hpadding: 6px;
font-weight: bold;
color: #eee;
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
transition-duration: 100ms; }
#panel .panel-button .app-menu-icon {
-st-icon-style: symbolic;
@@ -691,14 +687,14 @@ StScrollBar {
#panel .panel-button .system-status-icon,
#panel .panel-button .app-menu-icon > StIcon,
#panel .panel-button .popup-menu-arrow {
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); }
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
#panel .panel-button:hover {
color: white;
text-shadow: 0px 1px 6px black; }
text-shadow: 0px 0px 8px black; }
#panel .panel-button:hover .system-status-icon,
#panel .panel-button:hover .app-menu-icon > StIcon,
#panel .panel-button:hover .popup-menu-arrow {
icon-shadow: 0px 1px 6px black; }
icon-shadow: 0px 0px 8px black; }
#panel .panel-button:active, #panel .panel-button:overview, #panel .panel-button:focus, #panel .panel-button:checked {
background-color: rgba(0, 0, 0, 0.01);
box-shadow: inset 0 -2px 0px #256ab1;
@@ -918,17 +914,17 @@ StScrollBar {
background-color: #0d0d0d; }
.message-icon-bin {
padding: 0.68em 0.2em 0.68em 0.68em; }
padding: 10px 3px 10px 10px; }
.message-icon-bin:rtl {
padding: 0.68em 0.68em 0.68em 0.2em; }
padding: 10px 10px 10px 3px; }
.message-icon-bin > StIcon {
color: #cccccc;
icon-size: 1.09em;
icon-size: 16px;
-st-icon-style: symbolic; }
.message-secondary-bin {
padding: 0 0.82em; }
padding: 0 12px; }
.message-secondary-bin > .event-time {
color: #999999;
@@ -938,7 +934,7 @@ StScrollBar {
padding-bottom: 0.13em; }
.message-secondary-bin > StIcon {
icon-size: 1.09em; }
icon-size: 16px; }
.message-title {
color: #f2f2f2; }
@@ -1025,12 +1021,12 @@ StScrollBar {
background-image: url("resource:///org/gnome/shell/theme/close-window.svg");
background-size: 32px;
height: 32px;
width: 32px;
width: 32px; }
.window-close {
-shell-close-overlap: 16px; }
.window-close:hover {
background-image: url("resource:///org/gnome/shell/theme/close-window-hover.svg"); }
.window-close:active {
background-image: url("resource:///org/gnome/shell/theme/close-window-active.svg"); }
.window-close:rtl {
-st-background-image-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); }
/* NETWORK DIALOGS */
.nm-dialog {
@@ -1094,11 +1090,13 @@ StScrollBar {
padding-bottom: 32px; }
.window-picker {
-horizontal-spacing: 16px;
-vertical-spacing: 16px;
padding: 0 16px 16px; }
-horizontal-spacing: 32px;
-vertical-spacing: 32px;
padding-left: 32px;
padding-right: 32px;
padding-bottom: 48px; }
.window-picker.external-monitor {
padding: 16px; }
padding: 32px; }
.window-clone-border {
border: 4px solid #215d9c;
@@ -1107,10 +1105,14 @@ StScrollBar {
.window-caption {
spacing: 25px;
color: #ffffff;
background-color: #215d9c;
color: #eeeeec;
background-color: rgba(46, 52, 54, 0.7);
border-radius: 8px;
padding: 4px 12px; }
padding: 4px 12px;
-shell-caption-spacing: 12px; }
.window-caption:hover {
background-color: #215d9c;
color: #ffffff; }
.search-entry {
width: 320px;
@@ -1210,12 +1212,6 @@ StScrollBar {
.icon-grid .overview-icon {
icon-size: 96px; }
.system-action-icon {
background-color: black;
color: white;
border-radius: 99px;
icon-size: 48px; }
.app-view-controls {
padding-bottom: 32px; }
@@ -1485,6 +1481,38 @@ StScrollBar {
color: pink; }
/* Eeeky things */
.legacy-tray {
background-color: #000;
border: 1px solid black;
border-bottom-width: 0; }
.legacy-tray:ltr {
border-radius: 0 6px 0 0;
border-left-width: 0; }
.legacy-tray:rtl {
border-radius: 6px 0 0 0;
border-right-width: 0; }
.legacy-tray-handle,
.legacy-tray-icon {
padding: 6px; }
.legacy-tray-handle StIcon,
.legacy-tray-icon StIcon {
icon-size: 24px; }
.legacy-tray-handle:hover, .legacy-tray-handle:focus,
.legacy-tray-icon:hover,
.legacy-tray-icon:focus {
background-color: rgba(255, 255, 255, 0.1); }
.legacy-tray-icon-box {
spacing: 12px; }
.legacy-tray-icon-box:ltr {
padding-left: 12px; }
.legacy-tray-icon-box:rtl {
padding-right: 12px; }
.legacy-tray-icon-box StButton {
width: 24px;
height: 24px; }
.magnifier-zoom-region {
border: 2px solid #215d9c; }
.magnifier-zoom-region.full-screen {

View File

@@ -454,10 +454,6 @@ StScrollBar {
.extension-dialog .message-dialog-title {
color: #b2b2a9; }
/* Inhibit-Shortcuts Dialog */
.inhibit-shortcuts-dialog {
spacing: 30px; }
/* Network Agent Dialog */
.network-dialog-secret-table {
spacing-rows: 15px;
@@ -657,7 +653,7 @@ StScrollBar {
/* TOP BAR */
#panel {
background-color: rgba(0, 0, 0, 0.35);
background-color: rgba(0, 0, 0, 0.2);
/* transition from solid to transparent */
transition-duration: 500ms;
font-weight: bold;
@@ -668,7 +664,7 @@ StScrollBar {
spacing: 4px; }
#panel .panel-corner {
-panel-corner-radius: 6px;
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
-panel-corner-border-width: 2px;
-panel-corner-border-color: transparent; }
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
@@ -682,7 +678,7 @@ StScrollBar {
-minimum-hpadding: 6px;
font-weight: bold;
color: #eee;
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
transition-duration: 100ms; }
#panel .panel-button .app-menu-icon {
-st-icon-style: symbolic;
@@ -691,14 +687,14 @@ StScrollBar {
#panel .panel-button .system-status-icon,
#panel .panel-button .app-menu-icon > StIcon,
#panel .panel-button .popup-menu-arrow {
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); }
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
#panel .panel-button:hover {
color: white;
text-shadow: 0px 1px 6px black; }
text-shadow: 0px 0px 8px black; }
#panel .panel-button:hover .system-status-icon,
#panel .panel-button:hover .app-menu-icon > StIcon,
#panel .panel-button:hover .popup-menu-arrow {
icon-shadow: 0px 1px 6px black; }
icon-shadow: 0px 0px 8px black; }
#panel .panel-button:active, #panel .panel-button:overview, #panel .panel-button:focus, #panel .panel-button:checked {
background-color: rgba(0, 0, 0, 0.01);
box-shadow: inset 0 -2px 0px #256ab1;
@@ -918,17 +914,17 @@ StScrollBar {
background-color: #454c4c; }
.message-icon-bin {
padding: 0.68em 0.2em 0.68em 0.68em; }
padding: 10px 3px 10px 10px; }
.message-icon-bin:rtl {
padding: 0.68em 0.68em 0.68em 0.2em; }
padding: 10px 10px 10px 3px; }
.message-icon-bin > StIcon {
color: #bebeb6;
icon-size: 1.09em;
icon-size: 16px;
-st-icon-style: symbolic; }
.message-secondary-bin {
padding: 0 0.82em; }
padding: 0 12px; }
.message-secondary-bin > .event-time {
color: #8e8e80;
@@ -938,7 +934,7 @@ StScrollBar {
padding-bottom: 0.13em; }
.message-secondary-bin > StIcon {
icon-size: 1.09em; }
icon-size: 16px; }
.message-title {
color: #e2e2df; }
@@ -1025,12 +1021,12 @@ StScrollBar {
background-image: url("resource:///org/gnome/shell/theme/close-window.svg");
background-size: 32px;
height: 32px;
width: 32px;
width: 32px; }
.window-close {
-shell-close-overlap: 16px; }
.window-close:hover {
background-image: url("resource:///org/gnome/shell/theme/close-window-hover.svg"); }
.window-close:active {
background-image: url("resource:///org/gnome/shell/theme/close-window-active.svg"); }
.window-close:rtl {
-st-background-image-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); }
/* NETWORK DIALOGS */
.nm-dialog {
@@ -1094,11 +1090,13 @@ StScrollBar {
padding-bottom: 32px; }
.window-picker {
-horizontal-spacing: 16px;
-vertical-spacing: 16px;
padding: 0 16px 16px; }
-horizontal-spacing: 32px;
-vertical-spacing: 32px;
padding-left: 32px;
padding-right: 32px;
padding-bottom: 48px; }
.window-picker.external-monitor {
padding: 16px; }
padding: 32px; }
.window-clone-border {
border: 4px solid #215d9c;
@@ -1107,10 +1105,14 @@ StScrollBar {
.window-caption {
spacing: 25px;
color: #ffffff;
background-color: #215d9c;
color: #eeeeec;
background-color: rgba(46, 52, 54, 0.7);
border-radius: 8px;
padding: 4px 12px; }
padding: 4px 12px;
-shell-caption-spacing: 12px; }
.window-caption:hover {
background-color: #215d9c;
color: #ffffff; }
.search-entry {
width: 320px;
@@ -1210,12 +1212,6 @@ StScrollBar {
.icon-grid .overview-icon {
icon-size: 96px; }
.system-action-icon {
background-color: black;
color: white;
border-radius: 99px;
icon-size: 48px; }
.app-view-controls {
padding-bottom: 32px; }
@@ -1485,6 +1481,38 @@ StScrollBar {
color: pink; }
/* Eeeky things */
.legacy-tray {
background-color: #393f3f;
border: 1px solid #1c1f1f;
border-bottom-width: 0; }
.legacy-tray:ltr {
border-radius: 0 6px 0 0;
border-left-width: 0; }
.legacy-tray:rtl {
border-radius: 6px 0 0 0;
border-right-width: 0; }
.legacy-tray-handle,
.legacy-tray-icon {
padding: 6px; }
.legacy-tray-handle StIcon,
.legacy-tray-icon StIcon {
icon-size: 24px; }
.legacy-tray-handle:hover, .legacy-tray-handle:focus,
.legacy-tray-icon:hover,
.legacy-tray-icon:focus {
background-color: rgba(238, 238, 236, 0.1); }
.legacy-tray-icon-box {
spacing: 12px; }
.legacy-tray-icon-box:ltr {
padding-left: 12px; }
.legacy-tray-icon-box:rtl {
padding-right: 12px; }
.legacy-tray-icon-box StButton {
width: 24px;
height: 24px; }
.magnifier-zoom-region {
border: 2px solid #215d9c; }
.magnifier-zoom-region.full-screen {

View File

@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="16"
height="16"
viewBox="0 0 4.2333333 4.2333333"
version="1.1"
id="svg8">
<defs
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
id="layer1"
style="display:inline"
transform="translate(0,-292.76667)">
<path
style="fill:#bebebe;fill-opacity:1;stroke:none;stroke-width:0.17969394"
d="m 3.1749998,294.88333 a 1.0583333,1.0583333 0 0 1 -1.0583332,1.05833 1.0583333,1.0583333 0 0 1 -1.0583333,-1.05833 1.0583333,1.0583333 0 0 1 1.0583333,-1.05833 1.0583333,1.0583333 0 0 1 1.0583332,1.05833 z"
id="path4485" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,4 +1,4 @@
#!/bin/sh
#!/usr/bin/sh
srcdir=`dirname $0`
stamp=${1}

1
docs/Makefile.am Normal file
View File

@@ -0,0 +1 @@
SUBDIRS = reference

View File

@@ -0,0 +1 @@
SUBDIRS = shell st

View File

@@ -0,0 +1,139 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=shell
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# Directories containing the source code
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
DOC_SOURCE_DIR=$(top_srcdir)/src
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--rebuild-types
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
MKDB_OPTIONS=--xml-mode --output-format=xml
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=$(top_srcdir)/src/*.h
CFILE_GLOB=$(top_srcdir)/src/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
IGNORE_HFILES= \
calendar-server \
gvc \
hotplug-sniffer \
st \
tray \
gactionmuxer.h \
gactionobservable.h \
gactionobserver.h \
shell-network-agent.h \
shell-recorder-src.h
if !BUILD_RECORDER
IGNORE_HFILES += shell-recorder.h
endif
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
doc-gen-org.gnome.Shell.SearchProvider.xml: $(top_srcdir)/data/org.gnome.ShellSearchProvider.xml
gdbus-codegen \
--interface-prefix org.gnome.ShellSearchProvider. \
--generate-docbook doc-gen \
$(top_srcdir)/data/org.gnome.ShellSearchProvider.xml
doc-gen-org.gnome.Shell.SearchProvider2.xml: $(top_srcdir)/data/org.gnome.ShellSearchProvider2.xml
gdbus-codegen \
--interface-prefix org.gnome.ShellSearchProvider2. \
--generate-docbook doc-gen \
$(top_srcdir)/data/org.gnome.ShellSearchProvider2.xml
doc-gen-org.gnome.Shell.Screenshot.xml: $(top_srcdir)/data/org.gnome.Shell.Screenshot.xml
gdbus-codegen \
--interface-prefix org.gnome.Shell.Screenshot. \
--generate-docbook doc-gen \
$(top_srcdir)/data/org.gnome.Shell.Screenshot.xml
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files= \
doc-gen-org.gnome.Shell.SearchProvider.xml \
doc-gen-org.gnome.Shell.SearchProvider2.xml \
doc-gen-org.gnome.Shell.Screenshot.xml
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=$(GNOME_SHELL_CFLAGS)
GTKDOC_LIBS=$(GNOME_SHELL_LIBS) $(top_builddir)/src/libgnome-shell-menu.la $(top_builddir)/src/libgnome-shell.la -rpath $(MUTTER_TYPELIB_DIR)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += version.xml.in
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
DISTCLEANFILES = $(DOC_MODULE).types
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

View File

@@ -0,0 +1,104 @@
## Process this file with automake to produce Makefile.in
# We require automake 1.6 at least.
AUTOMAKE_OPTIONS = 1.6
# This is a blank Makefile.am for using gtk-doc.
# Copy this to your project's API docs directory and modify the variables to
# suit your project. See the GTK+ Makefiles in gtk+/docs/reference for examples
# of using the various options.
# The name of the module, e.g. 'glib'.
DOC_MODULE=st
# Uncomment for versioned docs and specify the version of the module, e.g. '2'.
#DOC_MODULE_VERSION=2
# The top-level SGML file. You can change this if you want to.
DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml
# Directories containing the source code
# gtk-doc will search all .c and .h files beneath these paths
# for inline comments documenting functions and macros.
DOC_SOURCE_DIR=$(top_srcdir)/src/st
# Extra options to pass to gtkdoc-scangobj. Not normally needed.
SCANGOBJ_OPTIONS=
# Extra options to supply to gtkdoc-scan.
# e.g. SCAN_OPTIONS=--deprecated-guards="GTK_DISABLE_DEPRECATED"
SCAN_OPTIONS=--rebuild-types --rebuild-sections
# Extra options to supply to gtkdoc-mkdb.
# e.g. MKDB_OPTIONS=--xml-mode --output-format=xml
MKDB_OPTIONS=--xml-mode --output-format=xml
# Extra options to supply to gtkdoc-mktmpl
# e.g. MKTMPL_OPTIONS=--only-section-tmpl
MKTMPL_OPTIONS=
# Extra options to supply to gtkdoc-mkhtml
MKHTML_OPTIONS=
# Extra options to supply to gtkdoc-fixref. Not normally needed.
# e.g. FIXXREF_OPTIONS=--extra-dir=../gdk-pixbuf/html --extra-dir=../gdk/html
FIXXREF_OPTIONS=
# Used for dependencies. The docs will be rebuilt if any of these change.
# e.g. HFILE_GLOB=$(top_srcdir)/gtk/*.h
# e.g. CFILE_GLOB=$(top_srcdir)/gtk/*.c
HFILE_GLOB=$(top_srcdir)/src/st/*.h
CFILE_GLOB=$(top_srcdir)/src/st/*.c
# Extra header to include when scanning, which are not under DOC_SOURCE_DIR
# e.g. EXTRA_HFILES=$(top_srcdir}/contrib/extra.h
EXTRA_HFILES=
# Header files or dirs to ignore when scanning. Use base file/dir names
# e.g. IGNORE_HFILES=gtkdebug.h gtkintl.h private_code
IGNORE_HFILES=st-private.h st-theme-node-private.h
# Images to copy into HTML directory.
# e.g. HTML_IMAGES=$(top_srcdir)/gtk/stock-icons/stock_about_24.png
HTML_IMAGES=
# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE).
# e.g. content_files=running.sgml building.sgml changes-2.0.sgml
content_files=
# SGML files where gtk-doc abbrevations (#GtkWidget) are expanded
# These files must be listed here *and* in content_files
# e.g. expand_content_files=running.sgml
expand_content_files=
# CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library.
# Only needed if you are using gtkdoc-scangobj to dynamically query widget
# signals and properties.
# e.g. GTKDOC_CFLAGS=-I$(top_srcdir) -I$(top_builddir) $(GTK_DEBUG_FLAGS)
# e.g. GTKDOC_LIBS=$(top_builddir)/gtk/$(gtktargetlib)
GTKDOC_CFLAGS=
GTKDOC_LIBS=$(top_builddir)/src/libst-1.0.la -rpath $(MUTTER_TYPELIB_DIR)
# This includes the standard gtk-doc make rules, copied by gtkdocize.
include $(top_srcdir)/gtk-doc.make
# Other files to distribute
# e.g. EXTRA_DIST += version.xml.in
EXTRA_DIST += version.xml.in
# Files not to distribute
# for --rebuild-types in $(SCAN_OPTIONS), e.g. $(DOC_MODULE).types
# for --rebuild-sections in $(SCAN_OPTIONS) e.g. $(DOC_MODULE)-sections.txt
DISTCLEANFILES = $(DOC_MODULE).types $(DOC_MODULE)-sections.txt
# Comment this out if you want 'make check' to test you doc status
# and run some sanity checks
if ENABLE_GTK_DOC
TESTS_ENVIRONMENT = cd $(srcdir) && \
DOC_MODULE=$(DOC_MODULE) DOC_MAIN_SGML_FILE=$(DOC_MAIN_SGML_FILE) \
SRCDIR=$(abs_srcdir) BUILDDIR=$(abs_builddir)
#TESTS = $(GTKDOC_CHECK)
endif
-include $(top_srcdir)/git.mk

39
js/Makefile.am Normal file
View File

@@ -0,0 +1,39 @@
NULL =
BUILT_SOURCES =
misc/config.js: misc/config.js.in Makefile
[ -d $(@D) ] || $(mkdir_p) $(@D) ; \
sed -e "s|[@]PACKAGE_NAME@|$(PACKAGE_NAME)|g" \
-e "s|[@]PACKAGE_VERSION@|$(PACKAGE_VERSION)|g" \
-e "s|[@]HAVE_BLUETOOTH@|$(HAVE_BLUETOOTH)|g" \
-e "s|[@]HAVE_NETWORKMANAGER@|$(HAVE_NETWORKMANAGER)|g" \
-e "s|[@]GETTEXT_PACKAGE@|$(GETTEXT_PACKAGE)|g" \
-e "s|[@]datadir@|$(datadir)|g" \
-e "s|[@]libexecdir@|$(libexecdir)|g" \
-e "s|[@]sysconfdir@|$(sysconfdir)|g" \
-e "s|[@]LIBMUTTER_API_VERSION@|$(LIBMUTTER_API_VERSION)|g" \
$< > $@
js_resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate-dependencies $(srcdir)/js-resources.gresource.xml)
js-resources.h: js-resources.gresource.xml $(js_resource_files) misc/config.js
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate --c-name shell_js_resources $<
js-resources.c: js-resources.gresource.xml $(js_resource_files) misc/config.js
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --sourcedir=$(builddir) --generate --c-name shell_js_resources $<
js_built_sources = js-resources.c js-resources.h
BUILT_SOURCES += $(js_built_sources)
all-local: $(js_built_sources)
js_resource_dist_files = $(filter-out misc/config.js, $(js_resource_files))
EXTRA_DIST = \
$(js_resource_dist_files) \
js-resources.gresource.xml \
misc/config.js.in \
$(NULL)
CLEANFILES = \
$(js_built_sources) \
$(NULL)

View File

@@ -17,23 +17,23 @@ const ShellEntry = imports.ui.shellEntry;
const SmartcardManager = imports.misc.smartcardManager;
const Tweener = imports.ui.tweener;
var PASSWORD_SERVICE_NAME = 'gdm-password';
var FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint';
var SMARTCARD_SERVICE_NAME = 'gdm-smartcard';
var OVIRT_SERVICE_NAME = 'gdm-ovirtcred';
const PASSWORD_SERVICE_NAME = 'gdm-password';
const FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint';
const SMARTCARD_SERVICE_NAME = 'gdm-smartcard';
const OVIRT_SERVICE_NAME = 'gdm-ovirtcred';
var FADE_ANIMATION_TIME = 0.16;
var CLONE_FADE_ANIMATION_TIME = 0.25;
var LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
var PASSWORD_AUTHENTICATION_KEY = 'enable-password-authentication';
var FINGERPRINT_AUTHENTICATION_KEY = 'enable-fingerprint-authentication';
var SMARTCARD_AUTHENTICATION_KEY = 'enable-smartcard-authentication';
var BANNER_MESSAGE_KEY = 'banner-message-enable';
var BANNER_MESSAGE_TEXT_KEY = 'banner-message-text';
var ALLOWED_FAILURES_KEY = 'allowed-failures';
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
const PASSWORD_AUTHENTICATION_KEY = 'enable-password-authentication';
const FINGERPRINT_AUTHENTICATION_KEY = 'enable-fingerprint-authentication';
const SMARTCARD_AUTHENTICATION_KEY = 'enable-smartcard-authentication';
const BANNER_MESSAGE_KEY = 'banner-message-enable';
const BANNER_MESSAGE_TEXT_KEY = 'banner-message-text';
const ALLOWED_FAILURES_KEY = 'allowed-failures';
var LOGO_KEY = 'logo';
var DISABLE_USER_LIST_KEY = 'disable-user-list';
const LOGO_KEY = 'logo';
const DISABLE_USER_LIST_KEY = 'disable-user-list';
// Give user 48ms to read each character of a PAM message
var USER_READ_TIME = 48

View File

@@ -25,7 +25,6 @@
<file>misc/params.js</file>
<file>misc/permissionStore.js</file>
<file>misc/smartcardManager.js</file>
<file>misc/systemActions.js</file>
<file>misc/util.js</file>
<file>misc/weather.js</file>
@@ -60,11 +59,11 @@
<file>ui/grabHelper.js</file>
<file>ui/ibusCandidatePopup.js</file>
<file>ui/iconGrid.js</file>
<file>ui/inhibitShortcutsDialog.js</file>
<file>ui/keyboard.js</file>
<file>ui/layout.js</file>
<file>ui/lightbox.js</file>
<file>ui/lookingGlass.js</file>
<file>ui/legacyTray.js</file>
<file>ui/magnifier.js</file>
<file>ui/magnifierDBus.js</file>
<file>ui/main.js</file>
@@ -96,7 +95,6 @@
<file>ui/shellMountOperation.js</file>
<file>ui/slider.js</file>
<file>ui/switcherPopup.js</file>
<file>ui/switchMonitor.js</file>
<file>ui/tweener.js</file>
<file>ui/unlockDialog.js</file>
<file>ui/userWidget.js</file>

View File

@@ -119,13 +119,7 @@ var LoginManagerSystemd = new Lang.Class({
return;
}
let sessionId = GLib.getenv('XDG_SESSION_ID');
if (!sessionId) {
log('Unset XDG_SESSION_ID, getCurrentSessionProxy() called outside a user session.');
return;
}
this._proxy.GetSessionRemote(sessionId, Lang.bind(this,
this._proxy.GetSessionRemote(GLib.getenv('XDG_SESSION_ID'), Lang.bind(this,
function(result, error) {
if (error) {
logError(error, 'Could not get a proxy for the current session');

View File

@@ -1,440 +0,0 @@
const AccountsService = imports.gi.AccountsService;
const Clutter = imports.gi.Clutter;
const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const GObject = imports.gi.GObject;
const GnomeSession = imports.misc.gnomeSession;
const LoginManager = imports.misc.loginManager;
const Main = imports.ui.main;
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
const DISABLE_LOG_OUT_KEY = 'disable-log-out';
const DISABLE_RESTART_KEY = 'disable-restart-buttons';
const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
const SENSOR_BUS_NAME = 'net.hadess.SensorProxy';
const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
const SensorProxyInterface = '<node> \
<interface name="net.hadess.SensorProxy"> \
<property name="HasAccelerometer" type="b" access="read"/> \
</interface> \
</node>';
const POWER_OFF_ACTION_ID = 'power-off';
const LOCK_SCREEN_ACTION_ID = 'lock-screen';
const LOGOUT_ACTION_ID = 'logout';
const SUSPEND_ACTION_ID = 'suspend';
const SWITCH_USER_ACTION_ID = 'switch-user';
const LOCK_ORIENTATION_ACTION_ID = 'lock-orientation';
const SensorProxy = Gio.DBusProxy.makeProxyWrapper(SensorProxyInterface);
let _singleton = null;
function getDefault() {
if (_singleton == null)
_singleton = new SystemActions();
return _singleton;
}
const SystemActions = new Lang.Class({
Name: 'SystemActions',
Extends: GObject.Object,
Properties: {
'can-power-off': GObject.ParamSpec.boolean('can-power-off',
'can-power-off',
'can-power-off',
GObject.ParamFlags.READABLE,
false),
'can-suspend': GObject.ParamSpec.boolean('can-suspend',
'can-suspend',
'can-suspend',
GObject.ParamFlags.READABLE,
false),
'can-lock-screen': GObject.ParamSpec.boolean('can-lock-screen',
'can-lock-screen',
'can-lock-screen',
GObject.ParamFlags.READABLE,
false),
'can-switch-user': GObject.ParamSpec.boolean('can-switch-user',
'can-switch-user',
'can-switch-user',
GObject.ParamFlags.READABLE,
false),
'can-logout': GObject.ParamSpec.boolean('can-logout',
'can-logout',
'can-logout',
GObject.ParamFlags.READABLE,
false),
'can-lock-orientation': GObject.ParamSpec.boolean('can-lock-orientation',
'can-lock-orientation',
'can-lock-orientation',
GObject.ParamFlags.READABLE,
false),
'orientation-lock-icon': GObject.ParamSpec.string('orientation-lock-icon',
'orientation-lock-icon',
'orientation-lock-icon',
GObject.ParamFlags.READWRITE,
null)
},
_init: function() {
this.parent();
this._canHavePowerOff = true;
this._canHaveSuspend = true;
this._actions = new Map();
this._actions.set(POWER_OFF_ACTION_ID,
{ // Translators: The name of the power-off action in search
name: C_("search-result", "Power off"),
iconName: 'system-shutdown-symbolic',
// Translators: A list of keywords that match the power-off action, separated by semicolons
keywords: _("power off;shutdown").split(';'),
available: false });
this._actions.set(LOCK_SCREEN_ACTION_ID,
{ // Translators: The name of the lock screen action in search
name: C_("search-result", "Lock screen"),
iconName: 'system-lock-screen-symbolic',
// Translators: A list of keywords that match the lock screen action, separated by semicolons
keywords: _("lock screen").split(';'),
available: false });
this._actions.set(LOGOUT_ACTION_ID,
{ // Translators: The name of the logout action in search
name: C_("search-result", "Log out"),
iconName: 'application-exit-symbolic',
// Translators: A list of keywords that match the logout action, separated by semicolons
keywords: _("logout;sign off").split(';'),
available: false });
this._actions.set(SUSPEND_ACTION_ID,
{ // Translators: The name of the suspend action in search
name: C_("search-result", "Suspend"),
iconName: 'media-playback-pause-symbolic',
// Translators: A list of keywords that match the suspend action, separated by semicolons
keywords: _("suspend;sleep").split(';'),
available: false });
this._actions.set(SWITCH_USER_ACTION_ID,
{ // Translators: The name of the switch user action in search
name: C_("search-result", "Switch user"),
iconName: 'system-switch-user-symbolic',
// Translators: A list of keywords that match the switch user action, separated by semicolons
keywords: _("switch user").split(';'),
available: false });
this._actions.set(LOCK_ORIENTATION_ACTION_ID,
{ // Translators: The name of the lock orientation action in search
name: C_("search-result", "Lock orientation"),
iconName: '',
// Translators: A list of keywords that match the lock orientation action, separated by semicolons
keywords: _("lock orientation").split(';'),
available: false });
this._loginScreenSettings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA });
this._lockdownSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA });
this._orientationSettings = new Gio.Settings({ schema_id: 'org.gnome.settings-daemon.peripherals.touchscreen' });
this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._userManager = AccountsService.UserManager.get_default();
this._userManager.connect('notify::is-loaded',
() => { this._updateMultiUser(); });
this._userManager.connect('notify::has-multiple-users',
() => { this._updateMultiUser(); });
this._userManager.connect('user-added',
() => { this._updateMultiUser(); });
this._userManager.connect('user-removed',
() => { this._updateMultiUser(); });
this._lockdownSettings.connect('changed::' + DISABLE_USER_SWITCH_KEY,
() => { this._updateSwitchUser(); });
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
() => { this._updateLogout(); });
global.settings.connect('changed::' + ALWAYS_SHOW_LOG_OUT_KEY,
() => { this._updateLogout(); });
this._lockdownSettings.connect('changed::' + DISABLE_LOCK_SCREEN_KEY,
() => { this._updateLockScreen(); });
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
() => { this._updateHaveShutdown(); });
this.forceUpdate();
this._orientationSettings.connect('changed::orientation-lock',
() => { this._updateOrientationLock();
this._updateOrientationLockIcon(); });
Main.layoutManager.connect('monitors-changed',
() => { this._updateOrientationLock(); });
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
() => { this._sensorProxyAppeared(); },
() => {
this._sensorProxy = null;
this._updateOrientationLock();
});
this._updateOrientationLock();
this._updateOrientationLockIcon();
Main.sessionMode.connect('updated', () => { this._sessionUpdated(); });
this._sessionUpdated();
},
get can_power_off() {
return this._actions.get(POWER_OFF_ACTION_ID).available;
},
get can_suspend() {
return this._actions.get(SUSPEND_ACTION_ID).available;
},
get can_lock_screen() {
return this._actions.get(LOCK_SCREEN_ACTION_ID).available;
},
get can_switch_user() {
return this._actions.get(SWITCH_USER_ACTION_ID).available;
},
get can_logout() {
return this._actions.get(LOGOUT_ACTION_ID).available;
},
get can_lock_orientation() {
return this._actions.get(LOCK_ORIENTATION_ACTION_ID).available;
},
get orientation_lock_icon() {
return this._actions.get(LOCK_ORIENTATION_ACTION_ID).iconName;
},
_sensorProxyAppeared: function() {
this._sensorProxy = new SensorProxy(Gio.DBus.system, SENSOR_BUS_NAME, SENSOR_OBJECT_PATH,
(proxy, error) => {
if (error) {
log(error.message);
return;
}
this._sensorProxy.connect('g-properties-changed',
() => { this._updateOrientationLock(); });
this._updateOrientationLock();
});
},
_updateOrientationLock: function() {
let available = false;
if (this._sensorProxy)
available = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
this._actions.get(LOCK_ORIENTATION_ACTION_ID).available = available;
this.notify('can-lock-orientation');
},
_updateOrientationLockIcon: function() {
let locked = this._orientationSettings.get_boolean('orientation-lock');
let iconName = locked ? 'rotation-locked-symbolic'
: 'rotation-allowed-symbolic';
this._actions.get(LOCK_ORIENTATION_ACTION_ID).iconName = iconName;
this.notify('orientation-lock-icon');
},
_sessionUpdated: function() {
this._updateLockScreen();
this._updatePowerOff();
this._updateSuspend();
this._updateMultiUser();
},
forceUpdate: function() {
// Whether those actions are available or not depends on both lockdown
// settings and Polkit policy - we don't get change notifications for the
// latter, so their value may be outdated; force an update now
this._updateHaveShutdown();
this._updateHaveSuspend();
},
getMatchingActions: function(terms) {
// terms is a list of strings
terms = terms.map((term) => { return term.toLowerCase(); });
let results = [];
for (let [key, {available, keywords}] of this._actions)
if (available && terms.every(t => keywords.some(k => (k.indexOf(t) >= 0))))
results.push(key);
return results;
},
getName: function(id) {
return this._actions.get(id).name;
},
getIconName: function(id) {
return this._actions.get(id).iconName;
},
activateAction: function(id) {
switch (id) {
case POWER_OFF_ACTION_ID:
this.activatePowerOff();
break;
case LOCK_SCREEN_ACTION_ID:
this.activateLockScreen();
break;
case LOGOUT_ACTION_ID:
this.activateLogout();
break;
case SUSPEND_ACTION_ID:
this.activateSuspend();
break;
case SWITCH_USER_ACTION_ID:
this.activateSwitchUser();
break;
case LOCK_ORIENTATION_ACTION_ID:
this.activateLockOrientation();
break;
}
},
_updateLockScreen() {
let showLock = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
this._actions.get(LOCK_SCREEN_ACTION_ID).available = showLock && allowLockScreen && LoginManager.canLock();
this.notify('can-lock-screen');
},
_updateHaveShutdown: function() {
this._session.CanShutdownRemote((result, error) => {
if (error)
return;
this._canHavePowerOff = result[0];
this._updatePowerOff();
});
},
_updatePowerOff: function() {
let disabled = Main.sessionMode.isLocked ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._actions.get(POWER_OFF_ACTION_ID).available = this._canHavePowerOff && !disabled;
this.notify('can-power-off');
},
_updateHaveSuspend: function() {
this._loginManager.canSuspend(
(canSuspend, needsAuth) => {
this._canHaveSuspend = canSuspend;
this._suspendNeedsAuth = needsAuth;
this._updateSuspend();
});
},
_updateSuspend: function() {
let disabled = (Main.sessionMode.isLocked &&
this._suspendNeedsAuth) ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._actions.get(SUSPEND_ACTION_ID).available = this._canHaveSuspend && !disabled;
this.notify('can-suspend');
},
_updateMultiUser: function() {
this._updateLogout();
this._updateSwitchUser();
},
_updateSwitchUser: function() {
let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
let shouldShowInMode = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let visible = allowSwitch && multiUser && shouldShowInMode;
this._actions.get(SWITCH_USER_ACTION_ID).available = visible;
this.notify('can-switch-user');
return visible;
},
_updateLogout: function() {
let user = this._userManager.get_user(GLib.get_user_name());
let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
let alwaysShow = global.settings.get_boolean(ALWAYS_SHOW_LOG_OUT_KEY);
let systemAccount = user.system_account;
let localAccount = user.local_account;
let multiUser = this._userManager.has_multiple_users;
let multiSession = Gdm.get_session_ids().length > 1;
let shouldShowInMode = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let visible = allowLogout && (alwaysShow || multiUser || multiSession || systemAccount || !localAccount) && shouldShowInMode;
this._actions.get(LOGOUT_ACTION_ID).available = visible;
this.notify('can-logout');
return visible;
},
activateLockOrientation: function() {
if (!this._actions.get(LOCK_ORIENTATION_ACTION_ID).available)
throw new Error('The lock-orientation action is not available!');
let locked = this._orientationSettings.get_boolean('orientation-lock');
this._orientationSettings.set_boolean('orientation-lock', !locked);
},
activateLockScreen: function() {
if (!this._actions.get(LOCK_SCREEN_ACTION_ID).available)
throw new Error('The lock-screen action is not available!');
Main.screenShield.lock(true);
},
activateSwitchUser: function() {
if (!this._actions.get(SWITCH_USER_ACTION_ID).available)
throw new Error('The switch-user action is not available!');
if (Main.screenShield)
Main.screenShield.lock(false);
Clutter.threads_add_repaint_func_full(Clutter.RepaintFlags.POST_PAINT, function() {
Gdm.goto_login_session_sync(null);
return false;
});
},
activateLogout: function() {
if (!this._actions.get(LOGOUT_ACTION_ID).available)
throw new Error('The logout action is not available!');
Main.overview.hide();
this._session.LogoutRemote(0);
},
activatePowerOff: function() {
if (!this._actions.get(POWER_OFF_ACTION_ID).available)
throw new Error('The power-off action is not available!');
this._session.ShutdownRemote(0);
},
activateSuspend: function() {
if (!this._actions.get(SUSPEND_ACTION_ID).available)
throw new Error('The suspend action is not available!');
this._loginManager.suspend();
}
});

View File

@@ -158,10 +158,7 @@ var AppSwitcherPopup = new Lang.Class({
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_GROUP) {
if (!this._thumbnailsFocused)
this._select(this._selectedIndex, 0);
else
this._select(this._selectedIndex, this._nextWindow());
this._select(this._selectedIndex, this._nextWindow());
} else if (action == Meta.KeyBindingAction.SWITCH_GROUP_BACKWARD) {
this._select(this._selectedIndex, this._previousWindow());
} else if (action == Meta.KeyBindingAction.SWITCH_APPLICATIONS) {

View File

@@ -24,11 +24,8 @@ const OverviewControls = imports.ui.overviewControls;
const PopupMenu = imports.ui.popupMenu;
const Tweener = imports.ui.tweener;
const Workspace = imports.ui.workspace;
const Search = imports.ui.search;
const System = imports.ui.status.system;
const Params = imports.misc.params;
const Util = imports.misc.util;
const SystemActions = imports.misc.systemActions;
var MAX_APPLICATION_WORK_MILLIS = 75;
var MENU_POPUP_TIMEOUT = 600;
@@ -1088,35 +1085,19 @@ var AppSearchProvider = new Lang.Class({
this.id = 'applications';
this.isRemoteProvider = false;
this.canLaunchSearch = false;
this._systemActions = new SystemActions.getDefault();
},
getResultMetas: function(apps, callback) {
let metas = [];
for (let id of apps) {
if (id.endsWith('.desktop')) {
let app = this._appSys.lookup_app(id);
metas.push({ 'id': app.get_id(),
'name': app.get_name(),
'createIcon': function(size) {
return app.create_icon_texture(size);
}
});
} else {
let name = this._systemActions.getName(id);
let iconName = this._systemActions.getIconName(id);
let createIcon = size => new St.Icon({ icon_name: iconName,
width: size,
height: size,
style_class: 'system-action-icon' });
metas.push({ id, name, createIcon });
}
for (let i = 0; i < apps.length; i++) {
let app = this._appSys.lookup_app(apps[i]);
metas.push({ 'id': app.get_id(),
'name': app.get_name(),
'createIcon': function(size) {
return app.create_icon_texture(size);
}
});
}
callback(metas);
},
@@ -1138,9 +1119,6 @@ var AppSearchProvider = new Lang.Class({
return usage.compare('', a, b);
}));
});
results = results.concat(this._systemActions.getMatchingActions(terms));
callback(results);
},
@@ -1149,10 +1127,8 @@ var AppSearchProvider = new Lang.Class({
},
createResultObject: function (resultMeta) {
if (resultMeta.id.endsWith('.desktop'))
return new AppIcon(this._appSys.lookup_app(resultMeta['id']));
else
return new SystemActionIcon(this, resultMeta);
let app = this._appSys.lookup_app(resultMeta['id']);
return new AppIcon(app);
}
});
@@ -1196,9 +1172,13 @@ var FolderView = new Lang.Class({
let numItems = this._allItems.length;
let rtl = icon.get_text_direction() == Clutter.TextDirection.RTL;
for (let i = 0; i < 4; i++) {
let bin = new St.Bin({ width: subSize, height: subSize });
if (i < numItems)
bin.child = this._allItems[i].app.create_icon_texture(subSize);
let bin;
if (i < numItems) {
let texture = this._allItems[i].app.create_icon_texture(subSize);
bin = new St.Bin({ child: texture });
} else {
bin = new St.Bin({ width: subSize, height: subSize });
}
layout.attach(bin, rtl ? (i + 1) % 2 : i % 2, Math.floor(i / 2), 1, 1);
}
@@ -2007,13 +1987,3 @@ var AppIconMenu = new Lang.Class({
}
});
Signals.addSignalMethods(AppIconMenu.prototype);
var SystemActionIcon = new Lang.Class({
Name: 'SystemActionIcon',
Extends: Search.GridSearchResult,
activate: function() {
SystemActions.getDefault().activateAction(this.metaInfo['id']);
Main.overview.hide();
}
});

View File

@@ -11,7 +11,6 @@ const RENAMED_DESKTOP_IDS = {
'baobab.desktop': 'org.gnome.baobab.desktop',
'cheese.desktop': 'org.gnome.Cheese.desktop',
'dconf-editor.desktop': 'ca.desrt.dconf-editor.desktop',
'empathy.desktop': 'org.gnome.Empathy.desktop',
'epiphany.desktop': 'org.gnome.Epiphany.desktop',
'file-roller.desktop': 'org.gnome.FileRoller.desktop',
'gcalctool.desktop': 'org.gnome.Calculator.desktop',

View File

@@ -587,10 +587,7 @@ var BoxPointer = new Lang.Class({
_calculateArrowSide: function(arrowSide) {
let sourceAllocation = Shell.util_get_transformed_allocation(this._sourceActor);
let [minWidth, minHeight, boxWidth, boxHeight] = this._container.get_preferred_size();
let monitorActor = this.sourceActor;
if (!monitorActor)
monitorActor = this.actor;
let monitor = Main.layoutManager.findMonitorForActor(monitorActor);
let monitor = Main.layoutManager.findMonitorForActor(this.actor);
switch (arrowSide) {
case St.Side.TOP:

View File

@@ -20,7 +20,7 @@ var MSECS_IN_DAY = 24 * 60 * 60 * 1000;
var SHOW_WEEKDATE_KEY = 'show-weekdate';
var ELLIPSIS_CHAR = '\u2026';
var MESSAGE_ICON_SIZE = -1; // pick up from CSS
var MESSAGE_ICON_SIZE = 16;
// alias to prevent xgettext from picking up strings translated in GTK+
const gtk30_ = Gettext_gtk30.gettext;
@@ -428,13 +428,6 @@ var Calendar = new Lang.Class({
this.emit('selected-date-changed', new Date(this._selectedDate));
},
updateTimeZone: function() {
// The calendar need to be rebuilt after a time zone update because
// the date might have changed.
this._rebuildCalendar();
this._update();
},
_buildHeader: function() {
let layout = this.actor.layout_manager;
let offsetCols = this._useWeekdate ? 1 : 0;

View File

@@ -255,11 +255,7 @@ var AutorunDispatcher = new Lang.Class({
if (!shouldAutorunMount(mount))
return;
let setting;
if (contentTypes.length > 0)
setting = this._getAutorunSettingForType(contentTypes[0]);
else
setting = AutorunSetting.ASK;
let setting = this._getAutorunSettingForType(contentTypes[0]);
// check at the settings for the first content type
// to see whether we should ask

View File

@@ -22,7 +22,6 @@ const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Calendar = imports.ui.calendar;
const Weather = imports.misc.weather;
const System = imports.system;
function _isToday(date) {
let now = new Date();
@@ -234,18 +233,11 @@ var WeatherSection = new Lang.Class({
this._sync();
},
_getSummary: function(info, capitalize=false) {
let options = capitalize ? GWeather.FormatOptions.SENTENCE_CAPITALIZATION
: GWeather.FormatOptions.NO_CAPITALIZATION;
let [ok, phenomenon, qualifier] = info.get_value_conditions();
if (ok)
return new GWeather.Conditions({ significant: true,
phenomenon,
qualifier }).to_string_full(options);
let [, sky] = info.get_value_sky();
return GWeather.Sky.to_string_full(sky, options);
_getSummary: function(info) {
let summary = info.get_conditions();
if (summary == '-')
return info.get_sky();
return summary;
},
_sameSummary: function(info1, info2) {
@@ -263,10 +255,10 @@ var WeatherSection = new Lang.Class({
let info = this._weatherClient.info;
let forecasts = info.get_forecast_list();
if (forecasts.length == 0) // No forecasts, just current conditions
return '%s.'.format(this._getSummary(info, true));
return '%s.'.format(this._getSummary(info));
let current = info;
let infos = [info];
let summaries = [this._getSummary(info)];
for (let i = 0; i < forecasts.length; i++) {
let [ok, timestamp] = forecasts[i].get_value_update();
if (!_isToday(new Date(timestamp * 1000)))
@@ -276,12 +268,12 @@ var WeatherSection = new Lang.Class({
continue; // Ignore consecutive runs of equal summaries
current = forecasts[i];
if (infos.push(current) == 3)
if (summaries.push(this._getSummary(current)) == 3)
break; // Use a maximum of three summaries
}
let fmt;
switch(infos.length) {
switch(summaries.length) {
/* Translators: %s is a weather condition like "Clear sky"; see
libgweather for the possible condition strings. If at all
possible, the sentence should match the grammatical case etc. of
@@ -300,10 +292,6 @@ var WeatherSection = new Lang.Class({
the inserted conditions. */
case 3: fmt = _("%s, then %s, followed by %s later."); break;
}
let summaries = infos.map((info, i) => {
let capitalize = i == 0 && fmt.startsWith('%s');
return this._getSummary(info, capitalize);
});
return String.prototype.format.apply(fmt, summaries);
},
@@ -340,10 +328,8 @@ var MessagesIndicator = new Lang.Class({
Name: 'MessagesIndicator',
_init: function() {
this.actor = new St.Icon({ icon_name: 'message-indicator-symbolic',
icon_size: 16,
visible: false, y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this.actor = new St.Label({ text: '⚫', visible: false, y_expand: true,
y_align: Clutter.ActorAlign.CENTER });
this._sources = [];
@@ -548,7 +534,6 @@ var DateMenuButton = new Lang.Class({
this._clock = new GnomeDesktop.WallClock();
this._clock.bind_property('clock', this._clockDisplay, 'text', GObject.BindingFlags.SYNC_CREATE);
this._clock.connect('notify::timezone', Lang.bind(this, this._updateTimeZone));
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated();
@@ -568,15 +553,6 @@ var DateMenuButton = new Lang.Class({
this._eventSource = eventSource;
},
_updateTimeZone: function() {
// SpiderMonkey caches the time zone so we must explicitly clear it
// before we can update the calendar, see
// https://bugzilla.gnome.org/show_bug.cgi?id=678507
System.clearDateCaches();
this._calendar.updateTimeZone();
},
_sessionUpdated: function() {
let eventSource;
let showEvents = Main.sessionMode.showCalendarEvents;

View File

@@ -15,7 +15,6 @@ var Dialog = new Lang.Class({
this.parent({ layout_manager: new Clutter.BinLayout() });
this.connect('destroy', Lang.bind(this, this._onDestroy));
this._initialKeyFocus = null;
this._pressedKey = null;
this._buttonKeys = {};
this._createDialog();
@@ -87,10 +86,6 @@ var Dialog = new Lang.Class({
return Clutter.EVENT_PROPAGATE;
},
get initialKeyFocus() {
return this._initialKeyFocus || this;
},
addContent: function (actor) {
this.contentLayout.add (actor, { expand: true });
},
@@ -121,7 +116,7 @@ var Dialog = new Lang.Class({
if (isDefault)
button.add_style_pseudo_class('default');
if (this._initialKeyFocus == null || isDefault)
if (!this._initialKeyFocusDestroyId)
this._initialKeyFocus = button;
for (let i in keys)

View File

@@ -38,10 +38,10 @@ var DragDropResult = {
SUCCESS: 1,
CONTINUE: 2
};
var dragMonitors = [];
let eventHandlerActor = null;
let currentDraggable = null;
let dragMonitors = [];
function _getEventHandlerActor() {
if (!eventHandlerActor) {
@@ -94,7 +94,6 @@ var _Draggable = new Lang.Class({
this.disconnectAll();
}));
this._onEventId = null;
this._touchSequence = null;
this._restoreOnSuccess = params.restoreOnSuccess;
this._dragActorMaxSize = params.dragActorMaxSize;
@@ -531,7 +530,7 @@ var _Draggable = new Lang.Class({
// Snap the clone back to its source
[x, y] = this._dragActorSource.get_transformed_position();
let [sourceScaledWidth, sourceScaledHeight] = this._dragActorSource.get_transformed_size();
scale = sourceScaledWidth ? this._dragActor.width / sourceScaledWidth : 0;
scale = this._dragActor.width / sourceScaledWidth;
} else if (this._dragOrigParent) {
// Snap the actor back to its original position within
// its parent, adjusting for the fact that the parent

View File

@@ -1,102 +0,0 @@
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Gtk = imports.gi.Gtk;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Dialog = imports.ui.dialog;
const ModalDialog = imports.ui.modalDialog;
const WAYLAND_KEYBINDINGS_SCHEMA = 'org.gnome.mutter.wayland.keybindings';
const APP_WHITELIST = ['gnome-control-center.desktop'];
var DialogResponse = Meta.InhibitShortcutsDialogResponse;
var InhibitShortcutsDialog = new Lang.Class({
Name: 'InhibitShortcutsDialog',
Extends: GObject.Object,
Implements: [Meta.InhibitShortcutsDialog],
Properties: {
'window': GObject.ParamSpec.override('window', Meta.InhibitShortcutsDialog)
},
_init: function(window) {
this.parent();
this._window = window;
this._dialog = new ModalDialog.ModalDialog();
this._buildLayout();
},
get window() {
return this._window;
},
set window(window) {
this._window = window;
},
get _app() {
let windowTracker = Shell.WindowTracker.get_default();
return windowTracker.get_window_app(this._window);
},
_getRestoreAccel: function() {
let settings = new Gio.Settings({ schema_id: WAYLAND_KEYBINDINGS_SCHEMA });
let accel = settings.get_strv('restore-shortcuts')[0] || '';
return Gtk.accelerator_get_label.apply(null,
Gtk.accelerator_parse(accel));
},
_buildLayout: function() {
let name = this._app ? this._app.get_name() : this._window.title;
/* Translators: %s is an application name like "Settings" */
let title = name ? _("%s wants to inhibit shortcuts").format(name)
: _("Application wants to inhibit shortcuts");
let icon = new Gio.ThemedIcon({ name: 'dialog-warning-symbolic' });
let contentParams = { icon, title };
let restoreAccel = this._getRestoreAccel();
if (restoreAccel)
contentParams.subtitle =
/* Translators: %s is a keyboard shortcut like "Super+x" */
_("You can restore shortcuts by pressing %s.").format(restoreAccel);
let content = new Dialog.MessageDialogContent(contentParams);
this._dialog.contentLayout.add_actor(content);
this._dialog.addButton({ label: _("Deny"),
action: () => {
this._emitResponse(DialogResponse.DENY);
},
key: Clutter.KEY_Escape });
this._dialog.addButton({ label: _("Allow"),
action: () => {
this._emitResponse(DialogResponse.ALLOW);
},
default: true });
},
_emitResponse: function(response) {
this.emit('response', response);
this._dialog.close();
},
vfunc_show: function() {
if (this._app && APP_WHITELIST.indexOf(this._app.get_id()) != -1)
this._emitResponse(DialogResponse.ALLOW);
else
this._dialog.open();
},
vfunc_hide: function() {
this._dialog.close();
}
});

View File

@@ -129,9 +129,6 @@ var MonitorConstraint = new Lang.Class({
if (!this._primary && this._index < 0)
return;
if (!Main.layoutManager.primaryMonitor)
return;
let index;
if (this._primary)
index = Main.layoutManager.primaryIndex;
@@ -192,7 +189,6 @@ var LayoutManager = new Lang.Class({
this._topActors = [];
this._isPopupWindowVisible = false;
this._startingUp = true;
this._pendingLoadBackground = false;
// We don't want to paint the stage background color because either
// the SystemBackground we create or the MetaBackgroundActor inside
@@ -327,9 +323,7 @@ var LayoutManager = new Lang.Class({
for (let i = 0; i < nMonitors; i++)
this.monitors.push(new Monitor(i, screen.get_monitor_geometry(i)));
if (nMonitors == 0) {
this.primaryIndex = this.bottomIndex = -1;
} else if (nMonitors == 1) {
if (nMonitors == 1) {
this.primaryIndex = this.bottomIndex = 0;
} else {
// If there are monitors below the primary, then we need
@@ -343,15 +337,8 @@ var LayoutManager = new Lang.Class({
}
}
}
if (this.primaryIndex != -1) {
this.primaryMonitor = this.monitors[this.primaryIndex];
this.bottomMonitor = this.monitors[this.bottomIndex];
if (this._pendingLoadBackground) {
this._loadBackground();
this._pendingLoadBackground = false;
}
}
this.primaryMonitor = this.monitors[this.primaryIndex];
this.bottomMonitor = this.monitors[this.bottomIndex];
},
_updateHotCorners: function() {
@@ -471,9 +458,6 @@ var LayoutManager = new Lang.Class({
this.screenShieldGroup.set_position(0, 0);
this.screenShieldGroup.set_size(global.screen_width, global.screen_height);
if (!this.primaryMonitor)
return;
this.panelBox.set_position(this.primaryMonitor.x, this.primaryMonitor.y);
this.panelBox.set_size(this.primaryMonitor.width, -1);
@@ -496,9 +480,6 @@ var LayoutManager = new Lang.Class({
this._rightPanelBarrier = null;
}
if (!this.primaryMonitor)
return;
if (this.panelBox.height) {
let primary = this.primaryMonitor;
@@ -568,10 +549,6 @@ var LayoutManager = new Lang.Class({
},
_loadBackground: function() {
if (!this.primaryMonitor) {
this._pendingLoadBackground = true;
return;
}
this._systemBackground = new Background.SystemBackground();
this._systemBackground.actor.hide();
@@ -707,10 +684,8 @@ var LayoutManager = new Lang.Class({
},
showKeyboard: function () {
this.keyboardBox.show();
Tweener.addTween(this.keyboardBox,
{ anchor_y: this.keyboardBox.height,
opacity: 255,
time: KEYBOARD_ANIMATION_TIME,
transition: 'easeOutQuad',
onComplete: this._showKeyboardComplete,
@@ -736,7 +711,6 @@ var LayoutManager = new Lang.Class({
}
Tweener.addTween(this.keyboardBox,
{ anchor_y: 0,
opacity: 0,
time: immediate ? 0 : KEYBOARD_ANIMATION_TIME,
transition: 'easeInQuad',
onComplete: this._hideKeyboardComplete,
@@ -747,7 +721,6 @@ var LayoutManager = new Lang.Class({
},
_hideKeyboardComplete: function() {
this.keyboardBox.hide();
this._updateRegions();
},

272
js/ui/legacyTray.js Normal file
View File

@@ -0,0 +1,272 @@
const Clutter = imports.gi.Clutter;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const CtrlAltTab = imports.ui.ctrlAltTab;
const Lang = imports.lang;
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const OverviewControls = imports.ui.overviewControls;
const Tweener = imports.ui.tweener;
var STANDARD_TRAY_ICON_IMPLEMENTATIONS = {
'bluetooth-applet': 'bluetooth',
'gnome-volume-control-applet': 'volume', // renamed to gnome-sound-applet
// when moved to control center
'gnome-sound-applet': 'volume',
'nm-applet': 'network',
'gnome-power-manager': 'battery',
'keyboard': 'keyboard',
'a11y-keyboard': 'a11y',
'kbd-scrolllock': 'keyboard',
'kbd-numlock': 'keyboard',
'kbd-capslock': 'keyboard',
'ibus-ui-gtk': 'keyboard'
};
// Offset of the original position from the bottom-right corner
var CONCEALED_WIDTH = 3;
var REVEAL_ANIMATION_TIME = 0.2;
var TEMP_REVEAL_TIME = 2;
var BARRIER_THRESHOLD = 70;
var BARRIER_TIMEOUT = 1000;
var LegacyTray = new Lang.Class({
Name: 'LegacyTray',
_init: function() {
this.actor = new St.Widget({ clip_to_allocation: true,
layout_manager: new Clutter.BinLayout() });
let constraint = new Layout.MonitorConstraint({ primary: true,
work_area: true });
this.actor.add_constraint(constraint);
this._slideLayout = new OverviewControls.SlideLayout();
this._slideLayout.translationX = 0;
this._slideLayout.slideDirection = OverviewControls.SlideDirection.LEFT;
this._slider = new St.Widget({ x_expand: true, y_expand: true,
x_align: Clutter.ActorAlign.START,
y_align: Clutter.ActorAlign.END,
layout_manager: this._slideLayout });
this.actor.add_actor(this._slider);
this._slider.connect('notify::allocation', Lang.bind(this, this._syncBarrier));
this._box = new St.BoxLayout({ style_class: 'legacy-tray' });
this._slider.add_actor(this._box);
this._concealHandle = new St.Button({ style_class: 'legacy-tray-handle',
/* translators: 'Hide' is a verb */
accessible_name: _("Hide tray"),
can_focus: true });
this._concealHandle.child = new St.Icon({ icon_name: 'go-previous-symbolic' });
this._box.add_child(this._concealHandle);
this._iconBox = new St.BoxLayout({ style_class: 'legacy-tray-icon-box' });
this._box.add_actor(this._iconBox);
this._revealHandle = new St.Button({ style_class: 'legacy-tray-handle' });
this._revealHandle.child = new St.Icon({ icon_name: 'go-next-symbolic' });
this._box.add_child(this._revealHandle);
this._revealHandle.bind_property('visible',
this._concealHandle, 'visible',
GObject.BindingFlags.BIDIRECTIONAL |
GObject.BindingFlags.INVERT_BOOLEAN);
this._revealHandle.connect('notify::visible',
Lang.bind(this, this._sync));
this._revealHandle.connect('notify::hover',
Lang.bind(this ,this._sync));
this._revealHandle.connect('clicked', Lang.bind(this,
function() {
this._concealHandle.show();
}));
this._concealHandle.connect('clicked', Lang.bind(this,
function() {
this._revealHandle.show();
}));
this._horizontalBarrier = null;
this._pressureBarrier = new Layout.PressureBarrier(BARRIER_THRESHOLD,
BARRIER_TIMEOUT,
Shell.ActionMode.NORMAL);
this._pressureBarrier.connect('trigger', Lang.bind(this, function() {
this._concealHandle.show();
}));
Main.layoutManager.addChrome(this.actor, { affectsInputRegion: false });
Main.layoutManager.trackChrome(this._slider, { affectsInputRegion: true });
Main.uiGroup.set_child_below_sibling(this.actor, Main.layoutManager.modalDialogGroup);
Main.ctrlAltTabManager.addGroup(this.actor,
_("Status Icons"), 'focus-legacy-systray-symbolic',
{ sortGroup: CtrlAltTab.SortGroup.BOTTOM });
this._trayManager = new Shell.TrayManager();
this._trayIconAddedId = this._trayManager.connect('tray-icon-added', Lang.bind(this, this._onTrayIconAdded));
this._trayIconRemovedId = this._trayManager.connect('tray-icon-removed', Lang.bind(this, this._onTrayIconRemoved));
this._trayManager.manage_screen(global.screen, this.actor);
Main.overview.connect('showing', Lang.bind(this,
function() {
Tweener.removeTweens(this._slider);
Tweener.addTween(this._slider, { opacity: 0,
time: Overview.ANIMATION_TIME,
transition: 'easeOutQuad' });
}));
Main.overview.connect('shown', Lang.bind(this, this._sync));
Main.overview.connect('hiding', Lang.bind(this,
function() {
this._sync();
Tweener.removeTweens(this._slider);
Tweener.addTween(this._slider, { opacity: 255,
time: Overview.ANIMATION_TIME,
transition: 'easeOutQuad' });
}));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._sync));
global.screen.connect('in-fullscreen-changed',
Lang.bind(this, this._sync));
Main.sessionMode.connect('updated', Lang.bind(this, this._sync));
this._sync();
},
_onTrayIconAdded: function(tm, icon) {
let wmClass = icon.wm_class ? icon.wm_class.toLowerCase() : '';
if (STANDARD_TRAY_ICON_IMPLEMENTATIONS[wmClass] !== undefined)
return;
let button = new St.Button({ child: icon,
style_class: 'legacy-tray-icon',
button_mask: St.ButtonMask.ONE |
St.ButtonMask.TWO |
St.ButtonMask.THREE,
can_focus: true,
x_fill: true, y_fill: true });
let app = Shell.WindowTracker.get_default().get_app_from_pid(icon.pid);
if (!app)
app = Shell.AppSystem.get_default().lookup_startup_wmclass(wmClass);
if (!app)
app = Shell.AppSystem.get_default().lookup_desktop_wmclass(wmClass);
if (app)
button.accessible_name = app.get_name();
else
button.accessible_name = icon.title;
button.connect('clicked',
function() {
icon.click(Clutter.get_current_event());
});
button.connect('key-press-event',
function() {
icon.click(Clutter.get_current_event());
return Clutter.EVENT_PROPAGATE;
});
button.connect('key-focus-in', Lang.bind(this,
function() {
this._concealHandle.show();
}));
this._iconBox.add_actor(button);
if (!this._concealHandle.visible) {
this._concealHandle.show();
GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, TEMP_REVEAL_TIME,
Lang.bind(this, function() {
this._concealHandle.hide();
return GLib.SOURCE_REMOVE;
}));
}
},
_onTrayIconRemoved: function(tm, icon) {
if (!this.actor.contains(icon))
return;
icon.get_parent().destroy();
this._sync();
},
_syncBarrier: function() {
let rtl = (this._slider.get_text_direction() == Clutter.TextDirection.RTL);
let [x, y] = this._slider.get_transformed_position();
let [w, h] = this._slider.get_transformed_size();
let x1 = Math.round(x);
if (rtl)
x1 += Math.round(w);
let x2 = x1;
let y1 = Math.round(y);
let y2 = y1 + Math.round(h);
if (this._horizontalBarrier &&
this._horizontalBarrier.x1 == x1 &&
this._horizontalBarrier.y1 == y1 &&
this._horizontalBarrier.x2 == x2 &&
this._horizontalBarrier.y2 == y2)
return;
this._unsetBarrier();
let directions = (rtl ? Meta.BarrierDirection.NEGATIVE_X : Meta.BarrierDirection.POSITIVE_X);
this._horizontalBarrier = new Meta.Barrier({ display: global.display,
x1: x1, x2: x2,
y1: y1, y2: y2,
directions: directions });
this._pressureBarrier.addBarrier(this._horizontalBarrier);
},
_unsetBarrier: function() {
if (this._horizontalBarrier == null)
return;
this._pressureBarrier.removeBarrier(this._horizontalBarrier);
this._horizontalBarrier.destroy();
this._horizontalBarrier = null;
},
_sync: function() {
// FIXME: we no longer treat tray icons as notifications
let allowed = Main.sessionMode.hasNotifications;
let hasIcons = this._iconBox.get_n_children() > 0;
let inOverview = Main.overview.visible && !Main.overview.animationInProgress;
let inFullscreen = Main.layoutManager.primaryMonitor.inFullscreen;
this.actor.visible = allowed && hasIcons && !inOverview && !inFullscreen;
if (!hasIcons)
this._concealHandle.hide();
let targetSlide;
if (this._concealHandle.visible) {
targetSlide = 1.0;
} else if (!hasIcons) {
targetSlide = 0.0;
} else {
let [, boxWidth] = this._box.get_preferred_width(-1);
let [, handleWidth] = this._revealHandle.get_preferred_width(-1);
if (this._revealHandle.hover)
targetSlide = handleWidth / boxWidth;
else
targetSlide = CONCEALED_WIDTH / boxWidth;
}
if (this.actor.visible) {
Tweener.addTween(this._slideLayout,
{ slideX: targetSlide,
time: REVEAL_ANIMATION_TIME,
transition: 'easeOutQuad' });
} else {
this._slideLayout.slideX = targetSlide;
this._unsetBarrier();
}
}
});

View File

@@ -20,6 +20,7 @@ const Environment = imports.ui.environment;
const ExtensionSystem = imports.ui.extensionSystem;
const ExtensionDownloader = imports.ui.extensionDownloader;
const Keyboard = imports.ui.keyboard;
const LegacyTray = imports.ui.legacyTray;
const MessageTray = imports.ui.messageTray;
const ModalDialog = imports.ui.modalDialog;
const OsdWindow = imports.ui.osdWindow;
@@ -55,6 +56,7 @@ var overview = null;
var runDialog = null;
var lookingGlass = null;
var wm = null;
var legacyTray = null;
var messageTray = null;
var screenShield = null;
var notificationDaemon = null;
@@ -122,7 +124,6 @@ function start() {
sessionMode.connect('updated', _sessionUpdated);
Gtk.Settings.get_default().connect('notify::gtk-theme-name',
_loadDefaultStylesheet);
Gtk.IconTheme.get_default().add_resource_path('/org/gnome/shell/theme/icons');
_initializeUI();
shellAccessDialogDBusService = new AccessDialog.AccessDialogDBus();
@@ -168,6 +169,7 @@ function _initializeUI() {
if (LoginManager.canLock())
screenShield = new ScreenShield.ScreenShield();
legacyTray = new LegacyTray.LegacyTray();
messageTray = new MessageTray.MessageTray();
panel = new Panel.Panel();
keyboard = new Keyboard.Keyboard();

View File

@@ -1205,9 +1205,8 @@ var MessageTray = new Lang.Class({
// _updateState() figures out what (if anything) needs to be done
// at the present time.
_updateState: function() {
let hasMonitor = Main.layoutManager.primaryMonitor != null;
this.actor.visible = !this._bannerBlocked && hasMonitor && this._banner != null;
if (this._bannerBlocked || !hasMonitor)
this.actor.visible = !this._bannerBlocked && this._banner != null;
if (this._bannerBlocked)
return;
// If our state changes caused _updateState to be called,

View File

@@ -84,7 +84,7 @@ var ModalDialog = new Lang.Class({
}
global.focus_manager.add_group(this.dialogLayout);
this._initialKeyFocus = null;
this._initialKeyFocus = this.dialogLayout;
this._initialKeyFocusDestroyId = 0;
this._savedKeyFocus = null;
},
@@ -157,7 +157,7 @@ var ModalDialog = new Lang.Class({
this._initialKeyFocus = actor;
this._initialKeyFocusDestroyId = actor.connect('destroy', Lang.bind(this, function() {
this._initialKeyFocus = null;
this._initialKeyFocus = this.dialogLayout;
this._initialKeyFocusDestroyId = 0;
}));
},
@@ -237,8 +237,7 @@ var ModalDialog = new Lang.Class({
this._savedKeyFocus.grab_key_focus();
this._savedKeyFocus = null;
} else {
let focus = this._initialKeyFocus || this.dialogLayout.initialKeyFocus;
focus.grab_key_focus();
this._initialKeyFocus.grab_key_focus();
}
if (!this._shellReactive)

View File

@@ -670,7 +670,7 @@ const FdoApplicationIface = '<node> \
const FdoApplicationProxy = Gio.DBusProxy.makeProxyWrapper(FdoApplicationIface);
function objectPathFromAppId(appId) {
return '/' + appId.replace(/\./g, '/').replace(/-/g, '_');
return '/' + appId.replace(/\./g, '/');
}
function getPlatformData() {
@@ -687,8 +687,6 @@ var GtkNotificationDaemonAppSource = new Lang.Class({
_init: function(appId) {
this._appId = appId;
this._objectPath = objectPathFromAppId(appId);
if (!GLib.Variant.is_object_path(this._objectPath))
throw new InvalidAppError();
this._app = Shell.AppSystem.get_default().lookup_app(appId + '.desktop');
if (!this._app)

View File

@@ -392,9 +392,6 @@ var Overview = new Lang.Class({
// when it is next shown.
this.hide();
if (!Main.layoutManager.primaryMonitor)
return;
let workArea = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
this._coverPane.set_position(0, workArea.y);

View File

@@ -254,12 +254,18 @@ var ThumbnailsSlider = new Lang.Class({
Main.layoutManager.connect('monitors-changed', Lang.bind(this, this._updateSlide));
this.actor.connect('notify::hover', Lang.bind(this, this._updateSlide));
global.window_manager.connect('switch-workspace', Lang.bind(this, this._updateSlide));
this._thumbnailsBox.actor.bind_property('visible', this.actor, 'visible', GObject.BindingFlags.SYNC_CREATE);
},
_getAlwaysZoomOut: function() {
// Always show the pager on hover or during a drag
let alwaysZoomOut = this.actor.hover || this._inDrag;
// Always show the pager when hover, during a drag, or if workspaces are
// actually used, e.g. there are windows on any non-active workspace
let alwaysZoomOut = this.actor.hover ||
this._inDrag ||
!Meta.prefs_get_dynamic_workspaces() ||
global.screen.n_workspaces > 2 ||
global.screen.get_active_workspace_index() != 0;
if (!alwaysZoomOut) {
let monitors = Main.layoutManager.monitors;

View File

@@ -513,7 +513,7 @@ var PadDiagram = new Lang.Class({
},
getRingLabelCoords: function (number, dir) {
let numStr = number > 0 ? (number + 1).toString() : '';
let numStr = number > 0 ? number.toString() : '';
let dirStr = dir == CW ? 'CW' : 'CCW';
let labelName = 'LabelRing' + numStr + dirStr;
let leaderName = 'LeaderRing' + numStr + dirStr;

View File

@@ -839,14 +839,8 @@ var Panel = new Lang.Class({
},
_getPreferredWidth: function(actor, forHeight, alloc) {
let primaryMonitor = Main.layoutManager.primaryMonitor;
alloc.min_size = -1;
if (primaryMonitor)
alloc.natural_size = primaryMonitor.width;
else
alloc.natural_size = -1;
alloc.natural_size = Main.layoutManager.primaryMonitor.width;
},
_getPreferredHeight: function(actor, forWidth, alloc) {
@@ -865,16 +859,15 @@ var Panel = new Lang.Class({
let sideWidth, centerWidth;
centerWidth = centerNaturalWidth;
sideWidth = Math.max(0, (allocWidth - centerWidth) / 2);
sideWidth = (allocWidth - centerWidth) / 2;
let childBox = new Clutter.ActorBox();
childBox.y1 = 0;
childBox.y2 = allocHeight;
if (this.actor.get_text_direction() == Clutter.TextDirection.RTL) {
childBox.x1 = Math.max(allocWidth - Math.min(Math.floor(sideWidth),
leftNaturalWidth),
0);
childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth),
leftNaturalWidth);
childBox.x2 = allocWidth;
} else {
childBox.x1 = 0;
@@ -896,9 +889,8 @@ var Panel = new Lang.Class({
childBox.x2 = Math.min(Math.floor(sideWidth),
rightNaturalWidth);
} else {
childBox.x1 = Math.max(allocWidth - Math.min(Math.floor(sideWidth),
rightNaturalWidth),
0);
childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth),
rightNaturalWidth);
childBox.x2 = allocWidth;
}
this._rightBox.allocate(childBox, flags);
@@ -1052,9 +1044,6 @@ var Panel = new Lang.Class({
return;
}
if (!Main.layoutManager.primaryMonitor)
return;
/* Get all the windows in the active workspace that are in the primary monitor and visible */
let activeWorkspace = global.screen.get_active_workspace();
let windows = activeWorkspace.list_windows().filter(function(metaWindow) {
@@ -1084,6 +1073,8 @@ var Panel = new Lang.Class({
let indicator = this.statusArea[role];
if (!indicator)
continue;
if (indicator.menu)
indicator.menu.close();
indicator.container.hide();
}
},

View File

@@ -465,7 +465,6 @@ var PopupMenuBase = new Lang.Class({
_sessionUpdated: function() {
this._setSettingsVisibility(Main.sessionMode.allowSettings);
this.close();
},
addAction: function(title, callback, icon) {

View File

@@ -98,13 +98,6 @@ function loadRemoteSearchProviders(searchSettings, callback) {
return;
}
let autoStart = true;
try {
autoStart = keyfile.get_boolean(group, 'AutoStart');
} catch(e) {
// ignore error
}
let version = '1';
try {
version = keyfile.get_string(group, 'Version');
@@ -113,9 +106,9 @@ function loadRemoteSearchProviders(searchSettings, callback) {
}
if (version >= 2)
remoteProvider = new RemoteSearchProvider2(appInfo, busName, objectPath, autoStart);
remoteProvider = new RemoteSearchProvider2(appInfo, busName, objectPath);
else
remoteProvider = new RemoteSearchProvider(appInfo, busName, objectPath, autoStart);
remoteProvider = new RemoteSearchProvider(appInfo, busName, objectPath);
remoteProvider.defaultEnabled = true;
try {
@@ -191,22 +184,17 @@ function loadRemoteSearchProviders(searchSettings, callback) {
var RemoteSearchProvider = new Lang.Class({
Name: 'RemoteSearchProvider',
_init: function(appInfo, dbusName, dbusPath, autoStart, proxyInfo) {
_init: function(appInfo, dbusName, dbusPath, proxyInfo) {
if (!proxyInfo)
proxyInfo = SearchProviderProxyInfo;
let g_flags = Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES;
if (autoStart)
g_flags |= Gio.DBusProxyFlags.DO_NOT_AUTO_START_AT_CONSTRUCTION;
else
g_flags |= Gio.DBusProxyFlags.DO_NOT_AUTO_START;
this.proxy = new Gio.DBusProxy({ g_bus_type: Gio.BusType.SESSION,
g_name: dbusName,
g_object_path: dbusPath,
g_interface_info: proxyInfo,
g_interface_name: proxyInfo.name,
g_flags });
g_flags: (Gio.DBusProxyFlags.DO_NOT_AUTO_START_AT_CONSTRUCTION |
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
this.proxy.init_async(GLib.PRIORITY_DEFAULT, null, null);
this.appInfo = appInfo;
@@ -319,8 +307,8 @@ var RemoteSearchProvider2 = new Lang.Class({
Name: 'RemoteSearchProvider2',
Extends: RemoteSearchProvider,
_init: function(appInfo, dbusName, dbusPath, autoStart) {
this.parent(appInfo, dbusName, dbusPath, autoStart, SearchProvider2ProxyInfo);
_init: function(appInfo, dbusName, dbusPath) {
this.parent(appInfo, dbusName, dbusPath, SearchProvider2ProxyInfo);
this.canLaunchSearch = true;
},

View File

@@ -681,15 +681,6 @@ var SearchResults = new Lang.Class({
this._setSelected(this._defaultResult, highlight);
},
popupMenuDefault: function() {
// If we have a search queued up, force the search now.
if (this._searchTimeoutId > 0)
this._doSearch();
if (this._defaultResult)
this._defaultResult.actor.popup_menu();
},
navigateFocus: function(direction) {
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
if (direction == Gtk.DirectionType.TAB_BACKWARD ||
@@ -774,7 +765,7 @@ var ProviderInfo = new Lang.Class({
},
setMoreCount: function(count) {
this._moreLabel.text = ngettext("%d more", "%d more", count).format(count);
this._moreLabel.text = _("%d more").format(count);
this._moreLabel.visible = count > 0;
}
});

View File

@@ -843,7 +843,7 @@ var InputSourceIndicator = new Lang.Class({
this._indicatorLabels[i] = indicatorLabel;
is.connect('changed', function() {
menuItem.indicator.set_text(is.shortName);
indicatorLabel.set_text(is.shortName);
indicatorLabel.set_text(is.shorName);
});
this.menu.addMenuItem(menuItem, menuIndex++);

View File

@@ -115,6 +115,17 @@ function ensureActiveConnectionProps(active, settings) {
}
}
function createSettingsAction(label, device) {
let item = new PopupMenu.PopupMenuItem(label);
item.connect('activate', function() {
Util.spawnApp(['gnome-control-center', 'network', 'show-device',
device.get_path()]);
});
return item;
}
var NMConnectionItem = new Lang.Class({
Name: 'NMConnectionItem',
@@ -503,7 +514,7 @@ var NMDeviceWired = new Lang.Class({
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addSettingsAction(_("Wired Settings"), 'gnome-network-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Wired Settings"), device));
},
_hasCarrier: function() {
@@ -545,7 +556,7 @@ var NMDeviceModem = new Lang.Class({
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addSettingsAction(_("Mobile Broadband Settings"), 'gnome-network-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
this._mobileDevice = null;
@@ -624,7 +635,7 @@ var NMDeviceBluetooth = new Lang.Class({
_init: function(client, device, settings) {
this.parent(client, device, settings);
this.item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-network-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Bluetooth Settings"), device));
},
_getDescription: function() {
@@ -1194,7 +1205,7 @@ var NMDeviceWireless = new Lang.Class({
this._toggleItem.connect('activate', Lang.bind(this, this._toggleWifi));
this.item.menu.addMenuItem(this._toggleItem);
this.item.menu.addSettingsAction(_("Wi-Fi Settings"), 'gnome-wifi-panel.desktop');
this.item.menu.addMenuItem(createSettingsAction(_("Wi-Fi Settings"), device));
this._wirelessEnabledChangedId = this._client.connect('notify::wireless-enabled', Lang.bind(this, this._sync));
this._wirelessHwEnabledChangedId = this._client.connect('notify::wireless-hardware-enabled', Lang.bind(this, this._sync));
@@ -1491,7 +1502,36 @@ var NMVPNSection = new Lang.Class({
_init: function(client) {
this.parent(client);
this.item.menu.addSettingsAction(_("VPN Settings"), 'gnome-network-panel.desktop');
this._vpnSettings = new PopupMenu.PopupMenuItem('');
this.item.menu.addMenuItem(this._vpnSettings);
this._vpnSettings.connect('activate', Lang.bind(this, this._onSettingsActivate));
this._sync();
},
_sync: function() {
let nItems = this._connectionItems.size;
this.item.actor.visible = (nItems > 0);
if (nItems > 1)
this._vpnSettings.label.text = _("Network Settings");
else
this._vpnSettings.label.text = _("VPN Settings");
this.parent();
},
_onSettingsActivate: function() {
let nItems = this._connectionItems.size;
if (nItems > 1) {
let appSys = Shell.AppSystem.get_default();
let app = appSys.lookup_app('gnome-network-panel.desktop');
app.launch(0, -1, false);
} else {
let connection = this._connections[0];
Util.spawnApp(['gnome-control-center', 'network', 'show-device',
connection.get_path()]);
}
},
_getDescription: function() {

View File

@@ -2,19 +2,39 @@
const AccountsService = imports.gi.AccountsService;
const Clutter = imports.gi.Clutter;
const Gdm = imports.gi.Gdm;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const GObject = imports.gi.GObject;
const BoxPointer = imports.ui.boxpointer;
const SystemActions = imports.misc.systemActions;
const GnomeSession = imports.misc.gnomeSession;
const LoginManager = imports.misc.loginManager;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const LOCKDOWN_SCHEMA = 'org.gnome.desktop.lockdown';
const LOGIN_SCREEN_SCHEMA = 'org.gnome.login-screen';
const DISABLE_USER_SWITCH_KEY = 'disable-user-switching';
const DISABLE_LOCK_SCREEN_KEY = 'disable-lock-screen';
const DISABLE_LOG_OUT_KEY = 'disable-log-out';
const DISABLE_RESTART_KEY = 'disable-restart-buttons';
const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
const SENSOR_BUS_NAME = 'net.hadess.SensorProxy';
const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
const SensorProxyInterface = '<node> \
<interface name="net.hadess.SensorProxy"> \
<property name="HasAccelerometer" type="b" access="read"/> \
</interface> \
</node>';
const SensorProxy = Gio.DBusProxy.makeProxyWrapper(SensorProxyInterface);
var AltSwitcher = new Lang.Class({
Name: 'AltSwitcher',
@@ -118,17 +138,41 @@ var Indicator = new Lang.Class({
_init: function() {
this.parent();
let userManager = AccountsService.UserManager.get_default();
this._user = userManager.get_user(GLib.get_user_name());
this._loginScreenSettings = new Gio.Settings({ schema_id: LOGIN_SCREEN_SCHEMA });
this._lockdownSettings = new Gio.Settings({ schema_id: LOCKDOWN_SCHEMA });
this._orientationSettings = new Gio.Settings({ schema_id: 'org.gnome.settings-daemon.peripherals.touchscreen' });
this._systemActions = new SystemActions.getDefault();
this._session = new GnomeSession.SessionManager();
this._loginManager = LoginManager.getLoginManager();
this._monitorManager = Meta.MonitorManager.get();
this._haveShutdown = true;
this._haveSuspend = true;
this._userManager = AccountsService.UserManager.get_default();
this._user = this._userManager.get_user(GLib.get_user_name());
this._createSubMenu();
this._loginScreenItem.actor.connect('notify::visible',
() => { this._updateMultiUser(); });
this._logoutItem.actor.connect('notify::visible',
() => { this._updateMultiUser(); });
this._userManager.connect('notify::is-loaded',
Lang.bind(this, this._updateMultiUser));
this._userManager.connect('notify::has-multiple-users',
Lang.bind(this, this._updateMultiUser));
this._userManager.connect('user-added',
Lang.bind(this, this._updateMultiUser));
this._userManager.connect('user-removed',
Lang.bind(this, this._updateMultiUser));
this._lockdownSettings.connect('changed::' + DISABLE_USER_SWITCH_KEY,
Lang.bind(this, this._updateMultiUser));
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
Lang.bind(this, this._updateMultiUser));
this._lockdownSettings.connect('changed::' + DISABLE_LOCK_SCREEN_KEY,
Lang.bind(this, this._updateLockScreen));
global.settings.connect('changed::' + ALWAYS_SHOW_LOG_OUT_KEY,
Lang.bind(this, this._updateMultiUser));
this._updateSwitchUser();
this._updateMultiUser();
this._updateLockScreen();
// Whether shutdown is available or not depends on both lockdown
// settings (disable-log-out) and Polkit policy - the latter doesn't
// notify, so we update the menu item each time the menu opens or
@@ -138,14 +182,42 @@ var Indicator = new Lang.Class({
if (!open)
return;
this._systemActions.forceUpdate();
this._updateHaveShutdown();
this._updateHaveSuspend();
}));
this._updateMultiUser();
this._lockdownSettings.connect('changed::' + DISABLE_LOG_OUT_KEY,
Lang.bind(this, this._updateHaveShutdown));
this._orientationSettings.connect('changed::orientation-lock',
Lang.bind(this, this._updateOrientationLock));
Main.layoutManager.connect('monitors-changed',
Lang.bind(this, this._updateOrientationLock));
Gio.DBus.system.watch_name(SENSOR_BUS_NAME,
Gio.BusNameWatcherFlags.NONE,
Lang.bind(this, this._sensorProxyAppeared),
Lang.bind(this, function() {
this._sensorProxy = null;
this._updateOrientationLock();
}));
this._updateOrientationLock();
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
this._sessionUpdated();
},
_sensorProxyAppeared: function() {
this._sensorProxy = new SensorProxy(Gio.DBus.system, SENSOR_BUS_NAME, SENSOR_OBJECT_PATH,
Lang.bind(this, function(proxy, error) {
if (error) {
log(error.message);
return;
}
this._sensorProxy.connect('g-properties-changed',
Lang.bind(this, this._updateOrientationLock));
this._updateOrientationLock();
}));
},
_updateActionsVisibility: function() {
let visible = (this._settingsAction.visible ||
this._orientationLockAction.visible ||
@@ -156,14 +228,42 @@ var Indicator = new Lang.Class({
},
_sessionUpdated: function() {
this._updateLockScreen();
this._updatePowerOff();
this._updateSuspend();
this._updateMultiUser();
this._settingsAction.visible = Main.sessionMode.allowSettings;
this._updateActionsVisibility();
},
_updateMultiUser: function() {
let hasSwitchUser = this._loginScreenItem.actor.visible;
let hasLogout = this._logoutItem.actor.visible;
let shouldShowInMode = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let hasSwitchUser = this._updateSwitchUser();
let hasLogout = this._updateLogout();
this._switchUserSubMenu.actor.visible = hasSwitchUser || hasLogout;
this._switchUserSubMenu.actor.visible = shouldShowInMode && (hasSwitchUser || hasLogout);
},
_updateSwitchUser: function() {
let allowSwitch = !this._lockdownSettings.get_boolean(DISABLE_USER_SWITCH_KEY);
let multiUser = this._userManager.can_switch() && this._userManager.has_multiple_users;
let visible = allowSwitch && multiUser;
this._loginScreenItem.actor.visible = visible;
return visible;
},
_updateLogout: function() {
let allowLogout = !this._lockdownSettings.get_boolean(DISABLE_LOG_OUT_KEY);
let alwaysShow = global.settings.get_boolean(ALWAYS_SHOW_LOG_OUT_KEY);
let systemAccount = this._user.system_account;
let localAccount = this._user.local_account;
let multiUser = this._userManager.has_multiple_users;
let multiSession = Gdm.get_session_ids().length > 1;
let visible = allowLogout && (alwaysShow || multiUser || multiSession || systemAccount || !localAccount);
this._logoutItem.actor.visible = visible;
return visible;
},
_updateSwitchUserSubMenu: function() {
@@ -199,6 +299,63 @@ var Indicator = new Lang.Class({
}
},
_updateOrientationLock: function() {
if (this._sensorProxy)
this._orientationLockAction.visible = this._sensorProxy.HasAccelerometer &&
this._monitorManager.get_is_builtin_display_on();
else
this._orientationLockAction.visible = false;
let locked = this._orientationSettings.get_boolean('orientation-lock');
let icon = this._orientationLockAction.child;
icon.icon_name = locked ? 'rotation-locked-symbolic' : 'rotation-allowed-symbolic';
this._updateActionsVisibility();
},
_updateLockScreen: function() {
let showLock = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
this._lockScreenAction.visible = showLock && allowLockScreen && LoginManager.canLock();
this._updateActionsVisibility();
},
_updateHaveShutdown: function() {
this._session.CanShutdownRemote(Lang.bind(this, function(result, error) {
if (error)
return;
this._haveShutdown = result[0];
this._updatePowerOff();
}));
},
_updatePowerOff: function() {
let disabled = Main.sessionMode.isLocked ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._powerOffAction.visible = this._haveShutdown && !disabled;
this._updateActionsVisibility();
},
_updateHaveSuspend: function() {
this._loginManager.canSuspend(Lang.bind(this,
function(canSuspend, needsAuth) {
this._haveSuspend = canSuspend;
this._suspendNeedsAuth = needsAuth;
this._updateSuspend();
}));
},
_updateSuspend: function() {
let disabled = (Main.sessionMode.isLocked &&
this._suspendNeedsAuth) ||
(Main.sessionMode.isGreeter &&
this._loginScreenSettings.get_boolean(DISABLE_RESTART_KEY));
this._suspendAction.visible = this._haveSuspend && !disabled;
this._updateActionsVisibility();
},
_createActionButton: function(iconName, accessibleName) {
let icon = new St.Button({ reactive: true,
can_focus: true,
@@ -210,7 +367,6 @@ var Indicator = new Lang.Class({
},
_createSubMenu: function() {
let bindFlags = GObject.BindingFlags.DEFAULT | GObject.BindingFlags.SYNC_CREATE;
let item;
this._switchUserSubMenu = new PopupMenu.PopupSubMenuMenuItem('', true);
@@ -226,28 +382,14 @@ var Indicator = new Lang.Class({
}));
item = new PopupMenu.PopupMenuItem(_("Switch User"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateSwitchUser();
});
item.connect('activate', Lang.bind(this, this._onLoginScreenActivate));
this._switchUserSubMenu.menu.addMenuItem(item);
this._loginScreenItem = item;
this._systemActions.bind_property('can-switch-user',
this._loginScreenItem.actor,
'visible',
bindFlags);
item = new PopupMenu.PopupMenuItem(_("Log Out"));
item.connect('activate', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateLogout();
});
item.connect('activate', Lang.bind(this, this._onQuitSessionActivate));
this._switchUserSubMenu.menu.addMenuItem(item);
this._logoutItem = item;
this._systemActions.bind_property('can-logout',
this._logoutItem.actor,
'visible',
bindFlags);
this._switchUserSubMenu.menu.addSettingsAction(_("Account Settings"),
'gnome-user-accounts-panel.desktop');
@@ -263,70 +405,28 @@ var Indicator = new Lang.Class({
can_focus: false });
this._settingsAction = this._createActionButton('preferences-system-symbolic', _("Settings"));
this._settingsAction.connect('clicked', () => { this._onSettingsClicked(); });
this._settingsAction.connect('clicked', Lang.bind(this, this._onSettingsClicked));
item.actor.add(this._settingsAction, { expand: true, x_fill: false });
this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
this._orientationLockAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE),
this._systemActions.activateLockOrientation();
});
this._orientationLockAction.connect('clicked', Lang.bind(this, this._onOrientationLockClicked));
item.actor.add(this._orientationLockAction, { expand: true, x_fill: false });
this._systemActions.bind_property('can-lock-orientation',
this._orientationLockAction,
'visible',
bindFlags);
this._systemActions.bind_property('orientation-lock-icon',
this._orientationLockAction.child,
'icon-name',
bindFlags);
this._lockScreenAction = this._createActionButton('changes-prevent-symbolic', _("Lock"));
this._lockScreenAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateLockScreen();
});
this._lockScreenAction.connect('clicked', Lang.bind(this, this._onLockScreenClicked));
item.actor.add(this._lockScreenAction, { expand: true, x_fill: false });
this._systemActions.bind_property('can-lock-screen',
this._lockScreenAction,
'visible',
bindFlags);
this._suspendAction = this._createActionButton('media-playback-pause-symbolic', _("Suspend"));
this._suspendAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activateSuspend();
});
this._systemActions.bind_property('can-suspend',
this._suspendAction,
'visible',
bindFlags);
this._suspendAction.connect('clicked', Lang.bind(this, this._onSuspendClicked));
this._powerOffAction = this._createActionButton('system-shutdown-symbolic', _("Power Off"));
this._powerOffAction.connect('clicked', () => {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
this._systemActions.activatePowerOff();
});
this._systemActions.bind_property('can-power-off',
this._powerOffAction,
'visible',
bindFlags);
this._powerOffAction.connect('clicked', Lang.bind(this, this._onPowerOffClicked));
this._altSwitcher = new AltSwitcher(this._powerOffAction, this._suspendAction);
item.actor.add(this._altSwitcher.actor, { expand: true, x_fill: false });
this._actionsItem = item;
this.menu.addMenuItem(item);
this._settingsAction.connect('notify::visible',
() => { this._updateActionsVisibility(); });
this._orientationLockAction.connect('notify::visible',
() => { this._updateActionsVisibility(); });
this._lockScreenAction.connect('notify::visible',
() => { this._updateActionsVisibility(); });
this._altSwitcher.actor.connect('notify::visible',
() => { this._updateActionsVisibility(); });
},
_onSettingsClicked: function() {
@@ -334,5 +434,46 @@ var Indicator = new Lang.Class({
let app = Shell.AppSystem.get_default().lookup_app('gnome-control-center.desktop');
Main.overview.hide();
app.activate();
}
},
_onOrientationLockClicked: function() {
this.menu.itemActivated();
let locked = this._orientationSettings.get_boolean('orientation-lock');
this._orientationSettings.set_boolean('orientation-lock', !locked);
this._updateOrientationLock();
},
_onLockScreenClicked: function() {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
Main.overview.hide();
Main.screenShield.lock(true);
},
_onLoginScreenActivate: function() {
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
Main.overview.hide();
if (Main.screenShield)
Main.screenShield.lock(false);
Clutter.threads_add_repaint_func_full(Clutter.RepaintFlags.POST_PAINT, function() {
Gdm.goto_login_session_sync(null);
return false;
});
},
_onQuitSessionActivate: function() {
Main.overview.hide();
this._session.LogoutRemote(0);
},
_onPowerOffClicked: function() {
this.menu.itemActivated();
Main.overview.hide();
this._session.ShutdownRemote(0);
},
_onSuspendClicked: function() {
this.menu.itemActivated();
this._loginManager.suspend();
},
});

View File

@@ -1,101 +0,0 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
const Lang = imports.lang;
const Meta = imports.gi.Meta;
const St = imports.gi.St;
const SwitcherPopup = imports.ui.switcherPopup;
var APP_ICON_SIZE = 96;
var SwitchMonitorPopup = new Lang.Class({
Name: 'SwitchMonitorPopup',
Extends: SwitcherPopup.SwitcherPopup,
_init: function() {
let items = [{ icon: 'view-mirror-symbolic',
/* Translators: this is for display mirroring i.e. cloning.
* Try to keep it under around 15 characters.
*/
label: _('Mirror') },
{ icon: 'video-joined-displays-symbolic',
/* Translators: this is for the desktop spanning displays.
* Try to keep it under around 15 characters.
*/
label: _('Join Displays') },
{ icon: 'video-single-display-symbolic',
/* Translators: this is for using only an external display.
* Try to keep it under around 15 characters.
*/
label: _('External Only') },
{ icon: 'computer-symbolic',
/* Translators: this is for using only the laptop display.
* Try to keep it under around 15 characters.
*/
label: _('Built-in Only') }];
this.parent(items);
this._switcherList = new SwitchMonitorSwitcher(items);
},
show: function(backward, binding, mask) {
if (!Meta.MonitorManager.get().can_switch_config())
return false;
return this.parent(backward, binding, mask);
},
_initialSelection: function() {
let currentConfig = Meta.MonitorManager.get().get_switch_config();
currentConfig %= Meta.MonitorSwitchConfigType.UNKNOWN;
this._select(currentConfig);
},
_keyPressHandler: function(keysym, action) {
if (action == Meta.KeyBindingAction.SWITCH_MONITOR)
this._select(this._next());
else if (keysym == Clutter.Left)
this._select(this._previous());
else if (keysym == Clutter.Right)
this._select(this._next());
else
return Clutter.EVENT_PROPAGATE;
return Clutter.EVENT_STOP;
},
_finish : function() {
this.parent();
Meta.MonitorManager.get().switch_config(this._selectedIndex);
},
});
var SwitchMonitorSwitcher = new Lang.Class({
Name: 'SwitchMonitorSwitcher',
Extends: SwitcherPopup.SwitcherList,
_init: function(items) {
this.parent(true);
for (let i = 0; i < items.length; i++)
this._addIcon(items[i]);
},
_addIcon: function(item) {
let box = new St.BoxLayout({ style_class: 'alt-tab-app',
vertical: true });
let icon = new St.Icon({ icon_name: item.icon,
icon_size: APP_ICON_SIZE });
box.add(icon, { x_fill: false, y_fill: false } );
let text = new St.Label({ text: item.label });
box.add(text, { x_fill: false });
this.addItem(box, text);
}
});

View File

@@ -19,7 +19,6 @@ var POPUP_SCROLL_TIME = 0.10; // seconds
var POPUP_FADE_OUT_TIME = 0.1; // seconds
var DISABLE_HOVER_TIMEOUT = 500; // milliseconds
var NO_MODS_TIMEOUT = 1500; // milliseconds
function mod(a, b) {
return (a + b) % b;
@@ -62,7 +61,6 @@ var SwitcherPopup = new Lang.Class({
this._motionTimeoutId = 0;
this._initialDelayTimeoutId = 0;
this._noModsTimeoutId = 0;
// Initially disable hover so we ignore the enter-event if
// the switcher appears underneath the current pointer location
@@ -147,14 +145,10 @@ var SwitcherPopup = new Lang.Class({
// https://bugzilla.gnome.org/show_bug.cgi?id=596695 for
// details.) So we check now. (Have to do this after updating
// selection.)
if (this._modifierMask) {
let [x, y, mods] = global.get_pointer();
if (!(mods & this._modifierMask)) {
this._finish(global.get_current_time());
return false;
}
} else {
this._resetNoModsTimeout();
let [x, y, mods] = global.get_pointer();
if (!(mods & this._modifierMask)) {
this._finish(global.get_current_time());
return false;
}
// We delay showing the popup so that fast Alt+Tab users aren't
@@ -198,15 +192,11 @@ var SwitcherPopup = new Lang.Class({
},
_keyReleaseEvent: function(actor, event) {
if (this._modifierMask) {
let [x, y, mods] = global.get_pointer();
let state = mods & this._modifierMask;
let [x, y, mods] = global.get_pointer();
let state = mods & this._modifierMask;
if (state == 0)
this._finish(event.get_time());
} else {
this._resetNoModsTimeout();
}
if (state == 0)
this._finish(event.get_time());
return Clutter.EVENT_STOP;
},
@@ -263,18 +253,6 @@ var SwitcherPopup = new Lang.Class({
return GLib.SOURCE_REMOVE;
},
_resetNoModsTimeout: function() {
if (this._noModsTimeoutId != 0)
Mainloop.source_remove(this._noModsTimeoutId);
this._noModsTimeoutId = Mainloop.timeout_add(NO_MODS_TIMEOUT,
Lang.bind(this, function () {
this._finish(global.get_current_time());
this._noModsTimeoutId = 0;
return GLib.SOURCE_REMOVE;
}));
},
_popModal: function() {
if (this._haveModal) {
Main.popModal(this.actor);
@@ -309,8 +287,6 @@ var SwitcherPopup = new Lang.Class({
Mainloop.source_remove(this._motionTimeoutId);
if (this._initialDelayTimeoutId != 0)
Mainloop.source_remove(this._initialDelayTimeoutId);
if (this._noModsTimeoutId != 0)
Mainloop.source_remove(this._noModsTimeoutId);
},
_select: function(num) {

View File

@@ -35,10 +35,6 @@ var Avatar = new Lang.Class({
reactive: params.reactive,
width: this._iconSize * scaleFactor,
height: this._iconSize * scaleFactor });
// Monitor the scaling factor to make sure we recreate the avatar when needed.
let themeContext = St.ThemeContext.get_for_stage(global.stage);
themeContext.connect('notify::scale-factor', Lang.bind(this, this.update));
},
setSensitive: function(sensitive) {
@@ -60,9 +56,6 @@ var Avatar = new Lang.Class({
this.actor.child = new St.Icon({ icon_name: 'avatar-default-symbolic',
icon_size: this._iconSize });
}
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
this.actor.set_size(this._iconSize * scaleFactor, this._iconSize * scaleFactor);
}
});

View File

@@ -163,13 +163,6 @@ var ViewSelector = new Lang.Class({
this._text.connect('key-focus-out', Lang.bind(this, function() {
this._searchResults.highlightDefault(false);
}));
this._entry.connect('popup-menu', () => {
if (!this._searchActive)
return;
this._entry.menu.close();
this._searchResults.popupMenuDefault();
});
this._entry.connect('notify::mapped', Lang.bind(this, this._onMapped));
global.stage.connect('notify::key-focus', Lang.bind(this, this._onStageKeyFocusChanged));

View File

@@ -14,7 +14,6 @@ const Signals = imports.signals;
const AltTab = imports.ui.altTab;
const Dialog = imports.ui.dialog;
const WorkspaceSwitcherPopup = imports.ui.workspaceSwitcherPopup;
const InhibitShortcutsDialog = imports.ui.inhibitShortcutsDialog;
const Main = imports.ui.main;
const ModalDialog = imports.ui.modalDialog;
const Tweener = imports.ui.tweener;
@@ -22,7 +21,6 @@ const WindowMenu = imports.ui.windowMenu;
const PadOsd = imports.ui.padOsd;
const EdgeDragAction = imports.ui.edgeDragAction;
const CloseDialog = imports.ui.closeDialog;
const SwitchMonitor = imports.ui.switchMonitor;
const SHELL_KEYBINDINGS_SCHEMA = 'org.gnome.shell.keybindings';
var MINIMIZE_WINDOW_ANIMATION_TIME = 0.2;
@@ -515,17 +513,25 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({
if (event.get_touchpad_gesture_finger_count() != 4)
return Clutter.EVENT_PROPAGATE;
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
let [dx, dy] = event.get_gesture_motion_delta();
let workspacesDisplay = Main.overview.viewSelector._workspacesDisplay;
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.BEGIN) {
workspacesDisplay._onPanStart();
} else if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
let [dx, dy] = event.get_gesture_motion_delta(event);
this._dx += dx;
this._dy += dy;
workspacesDisplay._onPan(dy * 1.5);
} else if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.CANCEL) {
workspacesDisplay._onPanCancel();
} else {
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.END)
this._checkActivated();
this._checkActivated();
this._dx = 0;
this._dy = 0;
workspacesDisplay._onPanEnd();
}
return Clutter.EVENT_STOP;
@@ -713,7 +719,6 @@ var WindowManager = new Lang.Class({
this._shellwm.connect('filter-keybinding', Lang.bind(this, this._filterKeybinding));
this._shellwm.connect('confirm-display-change', Lang.bind(this, this._confirmDisplayChange));
this._shellwm.connect('create-close-dialog', Lang.bind(this, this._createCloseDialog));
this._shellwm.connect('create-inhibit-shortcuts-dialog', Lang.bind(this, this._createInhibitShortcutsDialog));
global.screen.connect('restacked', Lang.bind(this, this._syncStacking));
this._workspaceSwitcherPopup = null;
@@ -899,10 +904,6 @@ var WindowManager = new Lang.Class({
Shell.ActionMode.UNLOCK_SCREEN |
Shell.ActionMode.LOGIN_SCREEN,
Lang.bind(this, this._startA11ySwitcher));
this.setCustomKeybindingHandler('switch-monitor',
Shell.ActionMode.NORMAL |
Shell.ActionMode.OVERVIEW,
Lang.bind(this, this._startSwitcher));
this.addKeybinding('pause-resume-tweens',
new Gio.Settings({ schema_id: SHELL_KEYBINDINGS_SCHEMA }),
@@ -985,8 +986,7 @@ var WindowManager = new Lang.Class({
gesture.connect('activated', Lang.bind(this, this._switchApp));
global.stage.add_action(gesture);
let mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, Shell.ActionMode.ALL);
gesture.connect('activated', Lang.bind(this, function() {
Main.keyboard.show(Main.layoutManager.bottomIndex);
}));
@@ -1844,9 +1844,6 @@ var WindowManager = new Lang.Class({
case 'cycle-group-backward':
constructor = AltTab.GroupCyclerPopup;
break;
case 'switch-monitor':
constructor = SwitchMonitor.SwitchMonitorPopup;
break;
}
if (!constructor)
@@ -1987,10 +1984,6 @@ var WindowManager = new Lang.Class({
return new CloseDialog.CloseDialog(window);
},
_createInhibitShortcutsDialog: function (shellwm, window) {
return new InhibitShortcutsDialog.InhibitShortcutsDialog(window);
},
_showResizePopup: function(display, show, rect, displayW, displayH) {
if (show) {
if (!this._resizePopup)

View File

@@ -20,7 +20,7 @@ const WindowManager = imports.ui.windowManager;
var WINDOW_DND_SIZE = 256;
var WINDOW_CLONE_MAXIMUM_SCALE = 1.0;
var WINDOW_CLONE_MAXIMUM_SCALE = 0.7;
var CLOSE_BUTTON_FADE_TIME = 0.1;
@@ -132,7 +132,6 @@ var WindowClone = new Lang.Class({
this.actor._delegate = this;
this.slotId = 0;
this._slot = [0, 0, 0, 0];
this._dragSlot = [0, 0, 0, 0];
this._stackAbove = null;
@@ -158,12 +157,6 @@ var WindowClone = new Lang.Class({
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
this.actor.connect('key-press-event', Lang.bind(this, this._onKeyPress));
this.actor.connect('enter-event', () => { this.emit('show-chrome'); });
this.actor.connect('key-focus-in', () => { this.emit('show-chrome'); });
this.actor.connect('leave-event', () => { this.emit('hide-chrome'); });
this.actor.connect('key-focus-out', () => { this.emit('hide-chrome'); });
this._draggable = DND.makeDraggable(this.actor,
{ restoreOnSuccess: true,
manualMode: true,
@@ -381,8 +374,6 @@ var WindowClone = new Lang.Class({
action.release();
this._draggable.startDrag(x, y, global.get_current_time(), this._dragTouchSequence);
}));
} else {
this.emit('show-chrome');
}
return true;
},
@@ -448,6 +439,7 @@ var WindowOverlay = new Lang.Class({
let title = new St.Label({ style_class: 'window-caption',
text: metaWindow.title });
title.clutter_text.ellipsize = Pango.EllipsizeMode.END;
title._spacing = 0;
windowClone.actor.label_actor = title;
this._updateCaptionId = metaWindow.connect('notify::title',
@@ -463,13 +455,18 @@ var WindowOverlay = new Lang.Class({
button.connect('clicked', Lang.bind(this, this._closeWindow));
windowClone.actor.connect('destroy', Lang.bind(this, this._onDestroy));
windowClone.connect('show-chrome', Lang.bind(this, this._onShowChrome));
windowClone.connect('hide-chrome', Lang.bind(this, this._onHideChrome));
windowClone.actor.connect('enter-event',
Lang.bind(this, this._onEnter));
windowClone.actor.connect('leave-event',
Lang.bind(this, this._onLeave));
windowClone.actor.connect('key-focus-in',
Lang.bind(this, this._onEnter));
windowClone.actor.connect('key-focus-out',
Lang.bind(this, this._onLeave));
this._windowAddedId = 0;
button.hide();
title.hide();
this.title = title;
this.closeButton = button;
@@ -478,8 +475,8 @@ var WindowOverlay = new Lang.Class({
Shell.util_set_hidden_from_pick(this.title, true);
Shell.util_set_hidden_from_pick(this.border, true);
parentActor.add_actor(this.border);
parentActor.add_actor(this.title);
parentActor.add_actor(this.border);
parentActor.add_actor(this.closeButton);
title.connect('style-changed',
Lang.bind(this, this._onStyleChanged));
@@ -494,6 +491,7 @@ var WindowOverlay = new Lang.Class({
hide: function() {
this._hidden = true;
this.title.hide();
this.hideCloseButton();
},
@@ -501,13 +499,14 @@ var WindowOverlay = new Lang.Class({
show: function() {
this._hidden = false;
this.title.show();
if (this._windowClone.actor['has-pointer'])
this._animateVisible();
},
chromeHeights: function () {
return [Math.max(this.borderSize, this.closeButton.height - this.closeButton._overlap),
(this.title.height - this.borderSize) / 2];
this.title.height + this.title._spacing];
},
chromeWidths: function () {
@@ -541,13 +540,24 @@ var WindowOverlay = new Lang.Class({
else
button.set_position(Math.floor(buttonX), Math.floor(buttonY));
let titleX = cloneX + (cloneWidth - title.width) / 2;
let titleY = cloneY + cloneHeight - (title.height - this.borderSize) / 2;
// Clutter.Actor.get_preferred_width() will return the fixed width if one
// is set, so we need to reset the width by calling set_width(-1), to forward
// the call down to StLabel.
// We also need to save and restore the current width, otherwise the animation
// starts from the wrong point.
let prevTitleWidth = title.width;
title.set_width(-1);
let [titleMinWidth, titleNatWidth] = title.get_preferred_width(-1);
let titleWidth = Math.max(titleMinWidth, Math.min(titleNatWidth, cloneWidth));
title.width = prevTitleWidth;
if (animate) {
this._animateOverlayActor(title, Math.floor(titleX), Math.floor(titleY), title.width);
} else {
title.width = title.width;
let titleX = cloneX + (cloneWidth - titleWidth) / 2;
let titleY = cloneY + cloneHeight + 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));
}
@@ -630,48 +640,60 @@ var WindowOverlay = new Lang.Class({
_animateVisible: function() {
this._parentActor.raise_top();
let toAnimate = [this.border, this.title];
if (this._windowCanClose())
toAnimate.push(this.closeButton);
toAnimate.forEach(a => {
a.show();
a.opacity = 0;
Tweener.addTween(a,
if (this._windowCanClose()) {
this.closeButton.show();
this.closeButton.opacity = 0;
Tweener.addTween(this.closeButton,
{ opacity: 255,
time: CLOSE_BUTTON_FADE_TIME,
transition: 'easeOutQuad' });
});
}
this.border.show();
this.border.opacity = 0;
Tweener.addTween(this.border,
{ opacity: 255,
time: CLOSE_BUTTON_FADE_TIME,
transition: 'easeOutQuad' });
this.title.add_style_pseudo_class('hover');
},
_animateInvisible: function() {
[this.closeButton, this.border, this.title].forEach(a => {
a.opacity = 255;
Tweener.addTween(a,
{ opacity: 0,
time: CLOSE_BUTTON_FADE_TIME,
transition: 'easeInQuad' });
});
this.closeButton.opacity = 255;
Tweener.addTween(this.closeButton,
{ opacity: 0,
time: CLOSE_BUTTON_FADE_TIME,
transition: 'easeInQuad' });
this.border.opacity = 255;
Tweener.addTween(this.border,
{ opacity: 0,
time: CLOSE_BUTTON_FADE_TIME,
transition: 'easeInQuad' });
this.title.remove_style_pseudo_class('hover');
},
_onShowChrome: function() {
_onEnter: function() {
// We might get enter events on the clone while the overlay is
// hidden, e.g. during animations, we ignore these events,
// as the close button will be shown as needed when the overlays
// are shown again
if (this._hidden)
return;
return Clutter.EVENT_PROPAGATE;
this._windowClone.actor.grab_key_focus();
this._animateVisible();
this.emit('show-close-button');
return Clutter.EVENT_PROPAGATE;
},
_onHideChrome: function() {
_onLeave: function() {
if (this._idleToggleCloseId == 0) {
this._idleToggleCloseId = Mainloop.timeout_add(750, Lang.bind(this, this._idleToggleCloseButton));
GLib.Source.set_name_by_id(this._idleToggleCloseId, '[gnome-shell] this._idleToggleCloseButton');
}
return Clutter.EVENT_PROPAGATE;
},
_idleToggleCloseButton: function() {
@@ -691,10 +713,13 @@ var WindowOverlay = new Lang.Class({
}
this.closeButton.hide();
this.border.hide();
this.title.hide();
this.title.remove_style_pseudo_class('hover');
},
_onStyleChanged: function() {
let titleNode = this.title.get_theme_node();
this.title._spacing = titleNode.get_length('-shell-caption-spacing');
let closeNode = this.closeButton.get_theme_node();
this.closeButton._overlap = closeNode.get_length('-shell-close-overlap');
@@ -950,10 +975,6 @@ var LayoutStrategy = new Lang.Class({
let cloneX = x + (cellWidth - cloneWidth) / 2;
let cloneY = row.y + row.height * row.additionalScale - cellHeight + compensation;
// Align with the pixel grid to prevent blurry windows at scale = 1
cloneX = Math.floor(cloneX);
cloneY = Math.floor(cloneY);
slots.push([cloneX, cloneY, s, window]);
x += cellWidth + this._columnSpacing;
}
@@ -1070,22 +1091,6 @@ function rectEqual(one, two) {
one.height == two.height);
}
const WorkspaceActor = new Lang.Class({
Name: 'WorkspaceActor',
Extends: St.Widget,
vfunc_get_focus_chain: function() {
return this.get_children().filter(c => c.visible).sort((a,b) => {
let cloneA = (a._delegate && a._delegate instanceof WindowClone) ? a._delegate: null;
let cloneB = (b._delegate && b._delegate instanceof WindowClone) ? b._delegate: null;
if (cloneA && cloneB)
return cloneA.slotId - cloneB.slotId;
return 0;
});
}
});
/**
* @metaWorkspace: a #Meta.Workspace, or null
*/
@@ -1108,7 +1113,6 @@ var Workspace = new Lang.Class({
// do some simple aspect ratio like math to fit the layout calculated
// for the full geometry into this area.
this._actualGeometry = null;
this._actualGeometryLater = 0;
this._currentLayout = null;
@@ -1118,7 +1122,7 @@ var Workspace = new Lang.Class({
// Without this the drop area will be overlapped.
this._windowOverlaysGroup.set_size(0, 0);
this.actor = new WorkspaceActor({ style_class: 'window-picker' });
this.actor = new St.Widget({ style_class: 'window-picker' });
if (monitorIndex != Main.layoutManager.primaryIndex)
this.actor.add_style_class_name('external-monitor');
this.actor.set_size(0, 0);
@@ -1947,16 +1951,19 @@ var Workspace = new Lang.Class({
right: node.get_padding(St.Side.RIGHT),
};
let closeButtonHeight, captionHeight;
let leftBorder, rightBorder;
// All of the overlays have the same chrome sizes,
// so just pick the first one.
let overlay = this._windowOverlays[0];
let [topBorder, bottomBorder] = overlay.chromeHeights();
let [leftBorder, rightBorder] = overlay.chromeWidths();
[closeButtonHeight, captionHeight] = overlay.chromeHeights();
[leftBorder, rightBorder] = overlay.chromeWidths();
rowSpacing += (topBorder + bottomBorder) / 2;
rowSpacing += captionHeight;
columnSpacing += (rightBorder + leftBorder) / 2;
padding.top += topBorder;
padding.bottom += bottomBorder;
padding.top += closeButtonHeight;
padding.bottom += captionHeight;
padding.left += leftBorder;
padding.right += rightBorder;

View File

@@ -31,7 +31,6 @@ var WorkspaceSwitcherPopup = new Lang.Class({
this._itemSpacing = 0;
this._childHeight = 0;
this._childWidth = 0;
this._timeoutId = 0;
this._list.connect('style-changed', Lang.bind(this, function() {
this._itemSpacing = this._list.get_theme_node().get_length('spacing');
}));
@@ -50,6 +49,9 @@ var WorkspaceSwitcherPopup = new Lang.Class({
this._globalSignals = [];
this._globalSignals.push(global.screen.connect('workspace-added', Lang.bind(this, this._redisplay)));
this._globalSignals.push(global.screen.connect('workspace-removed', Lang.bind(this, this._redisplay)));
this._timeoutId = Mainloop.timeout_add(DISPLAY_TIMEOUT, Lang.bind(this, this._onTimeout));
GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._onTimeout');
},
_getPreferredHeight : function (actor, forWidth, alloc) {

View File

@@ -18,8 +18,8 @@ const WindowManager = imports.ui.windowManager;
const Workspace = imports.ui.workspace;
const WorkspacesView = imports.ui.workspacesView;
// The maximum size of a thumbnail is 1/10 the width and height of the screen
let MAX_THUMBNAIL_SCALE = 1/10.;
// The maximum size of a thumbnail is 1/8 the width and height of the screen
let MAX_THUMBNAIL_SCALE = 1/8.;
var RESCALE_ANIMATION_TIME = 0.2;
var SLIDE_ANIMATION_TIME = 0.2;
@@ -937,8 +937,7 @@ var ThumbnailsBox = new Lang.Class({
},
addThumbnails: function(start, count) {
if (!this._ensurePorthole())
return;
this._ensurePorthole();
for (let k = start; k < start + count; k++) {
let metaWorkspace = global.screen.get_workspace_by_index(k);
let thumbnail = new WorkspaceThumbnail(metaWorkspace);
@@ -1126,12 +1125,7 @@ var ThumbnailsBox = new Lang.Class({
// the size request to our children because we know how big they are and know
// that the actors aren't depending on the virtual functions being called.
if (!this._ensurePorthole()) {
alloc.min_size = -1;
alloc.natural_size = -1;
return;
}
this._ensurePorthole();
let themeNode = this.actor.get_theme_node();
let spacing = themeNode.get_length('spacing');
@@ -1143,11 +1137,7 @@ var ThumbnailsBox = new Lang.Class({
},
_getPreferredWidth: function(actor, forHeight, alloc) {
if (!this._ensurePorthole()) {
alloc.min_size = -1;
alloc.natural_size = -1;
return;
}
this._ensurePorthole();
let themeNode = this.actor.get_theme_node();
@@ -1168,13 +1158,8 @@ var ThumbnailsBox = new Lang.Class({
// The "porthole" is the portion of the screen that we show in the
// workspaces
_ensurePorthole: function() {
if (!Main.layoutManager.primaryMonitor)
return false;
if (!this._porthole)
this._porthole = Main.layoutManager.getWorkAreaForMonitor(Main.layoutManager.primaryIndex);
return true;
},
_allocate: function(actor, box, flags) {

View File

@@ -435,28 +435,14 @@ var WorkspacesDisplay = new Lang.Class({
this.actor.bind_property('mapped', clickAction, 'enabled', GObject.BindingFlags.SYNC_CREATE);
let panAction = new Clutter.PanAction({ threshold_trigger_edge: Clutter.GestureTriggerEdge.AFTER });
panAction.connect('pan', Lang.bind(this, this._onPan));
panAction.connect('gesture-begin', Lang.bind(this, function() {
if (this._workspacesOnlyOnPrimary) {
let event = Clutter.get_current_event();
if (this._getMonitorIndexForEvent(event) != this._primaryIndex)
return false;
}
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].startSwipeScroll();
return true;
}));
panAction.connect('gesture-cancel', Lang.bind(this, function() {
clickAction.release();
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].endSwipeScroll();
}));
panAction.connect('gesture-end', Lang.bind(this, function() {
clickAction.release();
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].endSwipeScroll();
panAction.connect('pan', Lang.bind(this, function (action) {
let [dist, dx, dy] = action.get_motion_delta(0);
this._onPan(dy);
}));
//panAction.connect('pan', Lang.bind(this, this._onPan));
panAction.connect('gesture-begin', Lang.bind(this, this._onPanStart));
panAction.connect('gesture-cancel', Lang.bind(this, this._onPanCancel));
panAction.connect('gesture-end', Lang.bind(this, this._onPanEnd));
Main.overview.addAction(panAction);
this.actor.bind_property('mapped', panAction, 'enabled', GObject.BindingFlags.SYNC_CREATE);
@@ -480,13 +466,36 @@ var WorkspacesDisplay = new Lang.Class({
this._fullGeometry = null;
},
_onPan: function(action) {
let [dist, dx, dy] = action.get_motion_delta(0);
_onPan: function(dy) {
let adjustment = this._scrollAdjustment;
adjustment.value -= (dy / this.actor.height) * adjustment.page_size;
return false;
},
_onPanStart: function() {
if (this._workspacesOnlyOnPrimary) {
let event = Clutter.get_current_event();
if (this._getMonitorIndexForEvent(event) != this._primaryIndex)
return false;
}
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].startSwipeScroll();
return true;
},
_onPanCancel: function() {
//clickAction.release();
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].endSwipeScroll();
},
_onPanEnd: function() {
//clickAction.release();
for (let i = 0; i < this._workspacesViews.length; i++)
this._workspacesViews[i].endSwipeScroll();
},
navigateFocus: function(from, direction) {
return this._getPrimaryView().actor.navigate_focus(from, direction, false);
},

19
man/Makefile.am Normal file
View File

@@ -0,0 +1,19 @@
XSLTPROC_FLAGS = \
--nonet \
--stringparam man.output.quietly 1 \
--stringparam funcsynopsis.style ansi \
--stringparam man.th.extra1.suppress 1 \
--stringparam man.authors.section.enabled 0 \
--stringparam man.copyright.section.enabled 0
.xml.1:
$(AM_V_GEN) $(XSLTPROC) $(XSLTPROC_FLAGS) http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $<
man_MANS = \
gnome-shell.1
xml_files = $(man_MANS:.1=.xml)
EXTRA_DIST = $(xml_files)
DISTCLEANFILES = $(man_MANS)

View File

@@ -1,12 +1,12 @@
project('gnome-shell', 'c',
version: '3.26.1',
meson_version: '>= 0.42.0',
version: '3.25.4',
meson_version: '>= 0.41.0',
license: 'GPLv2+'
)
# We depend on a specific version of the libmutter API. The mutter variants of
# the Cogl and Clutter libraries also use this API version.
mutter_api_version = '1'
mutter_api_version = '0'
clutter_pc = 'mutter-clutter-' + mutter_api_version
cogl_pc = 'mutter-cogl-' + mutter_api_version
@@ -23,7 +23,7 @@ gi_req = '>= 1.49.1'
gjs_req = '>= 1.47.0'
gtk_req = '>= 3.15.0'
json_glib_req = '>= 0.13.2'
mutter_req = '>= 3.26.0'
mutter_req = '>= 3.25.2'
polkit_req = '>= 0.100'
schemas_req = '>= 3.21.3'
startup_req = '>= 0.11'

View File

@@ -9,7 +9,6 @@ js/extensionPrefs/main.js
js/gdm/authPrompt.js
js/gdm/loginDialog.js
js/gdm/util.js
js/misc/systemActions.js
js/misc/util.js
js/portalHelper/main.js
js/ui/accessDialog.js
@@ -31,8 +30,8 @@ js/ui/dateMenu.js
js/ui/endSessionDialog.js
js/ui/extensionDownloader.js
js/ui/extensionSystem.js
js/ui/inhibitShortcutsDialog.js
js/ui/keyboard.js
js/ui/legacyTray.js
js/ui/lookingGlass.js
js/ui/main.js
js/ui/messageList.js
@@ -60,7 +59,6 @@ js/ui/status/power.js
js/ui/status/rfkill.js
js/ui/status/system.js
js/ui/status/volume.js
js/ui/switchMonitor.js
js/ui/unlockDialog.js
js/ui/viewSelector.js
js/ui/windowAttentionHandler.js

610
po/ar.po

File diff suppressed because it is too large Load Diff

565
po/be.po

File diff suppressed because it is too large Load Diff

1291
po/bg.po

File diff suppressed because it is too large Load Diff

570
po/ca.po

File diff suppressed because it is too large Load Diff

568
po/cs.po

File diff suppressed because it is too large Load Diff

677
po/da.po

File diff suppressed because it is too large Load Diff

601
po/de.po

File diff suppressed because it is too large Load Diff

638
po/el.po

File diff suppressed because it is too large Load Diff

363
po/es.po
View File

@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell.master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 13:38+0200\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-24 15:38+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: es <gnome-es-list@gnome.org>\n"
"Language: es\n"
@@ -349,7 +349,7 @@ msgstr "Hubo un error al lanzar el diálogo de preferencias para %s:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Cancelar"
@@ -410,82 +410,6 @@ msgstr "Error de autenticación"
msgid "(or swipe finger)"
msgstr "(o pase el dedo)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
#| msgid "Power Off"
msgctxt "search-result"
msgid "Power off"
msgstr "Apagar"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "apagar;apagado"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
#| msgid "Lock Screen"
msgctxt "search-result"
msgid "Lock screen"
msgstr "Bloquear la pantalla"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
#| msgid "Lock Screen"
msgid "lock screen"
msgstr "bloquear;pantalla"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
#| msgid "Log Out"
msgctxt "search-result"
msgid "Log out"
msgstr "Cerrar la sesión"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "cerrar;sesión;salir"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
#| msgid "Suspend"
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspender"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
#| msgid "Suspend"
msgid "suspend;sleep"
msgstr "suspender;dormir"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
#| msgid "Switch User"
msgctxt "search-result"
msgid "Switch user"
msgstr "Cambiar de usuario"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
#| msgid "Switch User"
msgid "switch user"
msgstr "cambiar;usuario"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
#| msgid "Orientation Lock"
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Bloqueo de orientación"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
#| msgid "Clock Format"
msgid "lock orientation"
msgstr "bloqueo;orientación"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Comando no encontrado"
@@ -644,35 +568,35 @@ msgstr "Denegar acceso"
msgid "Grant Access"
msgstr "Conceder acceso"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Las aplicaciones usadas frecuentemente aparecerán aquí"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Frecuentes"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Todas"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Ventana nueva"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Lanzar usando la tarjeta gráfica dedicada"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Quitar de los favoritos"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Añadir a los favoritos"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Mostrar detalles"
@@ -714,7 +638,7 @@ msgstr "Cambiar el fondo…"
msgid "Display Settings"
msgstr "Configuración de pantalla"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Configuración"
@@ -821,6 +745,7 @@ msgstr "Limpiar todo"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:44
#, javascript-format
#| msgid "“%s” is ready"
msgid "“%s” is not responding."
msgstr "«%s» no responde."
@@ -861,8 +786,8 @@ msgstr "Contraseña:"
msgid "Type again:"
msgstr "Escriba de nuevo:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Conectar"
@@ -937,7 +862,7 @@ msgstr "Contraseña de la red de banda ancha móvil"
msgid "A password is required to connect to “%s”."
msgstr "Se requiere una contraseña para conectarse a «%s»."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Gestor de la red"
@@ -968,7 +893,7 @@ msgstr "Eso no ha funcionado. Inténtelo de nuevo."
msgid "%s is now known as %s"
msgstr "Ahora %s se llama %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Ventanas"
@@ -1013,7 +938,7 @@ msgstr "Meteorología"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s todo el día."
@@ -1022,7 +947,7 @@ msgstr "%s todo el día."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, luego %s."
@@ -1031,30 +956,30 @@ msgstr "%s, luego %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, luego %s seguido de %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Seleccionar ubicación…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Cargando…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Sensación térmica de %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Conectarse para obtener la información meteorológica"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "La información meteorológica no está disponible actualmente."
@@ -1216,34 +1141,19 @@ msgstr "Instalar"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s quiere inhibir los atajos"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Su aplicación quiere inhibir los atajos"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Puede restaurar los atajos pulsando %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Denegar"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Permitir"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Teclado"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Ocultar bandeja"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Iconos de estado"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "No hay extensiones instaladas"
@@ -1430,7 +1340,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d notificación nueva"
msgstr[1] "%d notificaciones nuevas"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Bloquear"
@@ -1461,13 +1371,10 @@ msgstr "Buscando…"
msgid "No results."
msgstr "No se encontraron resultados."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
#| msgid "%d more"
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "%d más"
msgstr[1] "%d más"
msgstr "%d más"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1541,7 +1448,7 @@ msgstr "Texto grande"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Configuración de Bluetooth"
@@ -1561,13 +1468,13 @@ msgstr "Desconectado"
msgid "On"
msgstr "Encender"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Encender"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Apagar"
@@ -1621,13 +1528,13 @@ msgid "<unknown>"
msgstr "<desconocido>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s apagada"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s conectada"
@@ -1635,189 +1542,190 @@ msgstr "%s conectada"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s sin gestionar"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "Desconectando %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "Conectando %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s requiere autenticación"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Falta el «firmware» para %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s no disponible"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Falló la conexión %s"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Configuración de red cableada"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Configuración de banda ancha móvil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "Hardware %s desactivado"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s desactivado"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Conectar a Internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "El modo avión está activado"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "La Wi-Fi se desactiva cuando se activa el modo avión."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Apagar el modo avión"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "La Wi-Fi está desactivada"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Se debe activar la Wi-Fi para poder conectarse a la red."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Activar la Wi-Fi"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Redes Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Seleccionar una red"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "No hay redes"
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Usar el interruptor hardware para apagar"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Seleccionar red"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Configuración de Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Punto de acceso %s activo"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s no conectado"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "conectando…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "se necesita autenticación"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "falló la conexión"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "Configuración de VPN"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN apagada"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Configuración de la red"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "Configuración de VPN"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN apagada"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s conexión cableada"
msgstr[1] "%s conexiones cableadas"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s conexión inalámbrica"
msgstr[1] "%s conexiones inalámbricas"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s conexión por módem"
msgstr[1] "%s conexiones por módem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Falló la conexión"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Falló la activación de la conexión de red"
@@ -1875,27 +1783,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Modo avión activado"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Cambiar de usuario"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Cerrar la sesión"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Configuración de la cuenta"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Bloqueo de orientación"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Suspender"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Apagar"
@@ -1907,36 +1815,6 @@ msgstr "Volumen modificado"
msgid "Volume"
msgstr "Volumen"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
#| msgid "Error"
msgid "Mirror"
msgstr "Espejo"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
#| msgid "Panel Display"
msgid "Join Displays"
msgstr "Unir pantallas"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Sólo la externa"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Sólo la integrada"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Iniciar sesión como otro usuario"
@@ -1945,11 +1823,11 @@ msgstr "Iniciar sesión como otro usuario"
msgid "Unlock Window"
msgstr "Desbloquear ventana"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplicaciones"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Buscar"
@@ -1958,22 +1836,22 @@ msgstr "Buscar"
msgid "“%s” is ready"
msgstr "«%s» está preparado"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "¿Quiere mantener esta configuración de la pantalla?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Revertir configuración"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Mantener cambios"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1982,7 +1860,7 @@ msgstr[1] "La configuración se revertirá en %d segundos"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2060,21 +1938,21 @@ msgstr "Calendario de Evolution"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Imprimir versión"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Modo usado por GDM para la pantalla de inicio"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr ""
"Usar un modo específico, por ejemplo, «gdm» para la pantalla de inicio de "
"sesión"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Listar los modos posibles"
@@ -2122,12 +2000,6 @@ msgstr[1] "%u entradas"
msgid "System Sounds"
msgstr "Sonidos del sistema"
#~ msgid "Hide tray"
#~ msgstr "Ocultar bandeja"
#~ msgid "Status Icons"
#~ msgstr "Iconos de estado"
#~ msgid "Events"
#~ msgstr "Eventos"
@@ -2481,6 +2353,12 @@ msgstr "Sonidos del sistema"
#~ msgid "Device %s wants to pair with this computer"
#~ msgstr "El dispositivo «%s» quiere emparejarse con este equipo"
#~ msgid "Allow"
#~ msgstr "Permitir"
#~ msgid "Deny"
#~ msgstr "Denegar"
#~ msgid "Device %s wants access to the service '%s'"
#~ msgstr "El dispositivo %s quiere acceder al servicio «%s»"
@@ -2937,6 +2815,9 @@ msgstr "Sonidos del sistema"
#~ msgid "Online Accounts"
#~ msgstr "Cuentas en línea"
#~ msgid "Lock Screen"
#~ msgstr "Bloquear la pantalla"
#~ msgid "Log Out..."
#~ msgstr "Cerrar la sesión…"
@@ -3214,9 +3095,15 @@ msgstr "Sonidos del sistema"
#~ "especificado en la clave «custom_format». Note que si se establece a "
#~ "«unix» o «custom» se ignoran las claves «show_date» y «show_seconds»."
#~ msgid "Clock Format"
#~ msgstr "Formato del reloj"
#~ msgid "Clock Preferences"
#~ msgstr "Preferencias del reloj"
#~ msgid "Panel Display"
#~ msgstr "Panel de visualización"
#~ msgid "Show seco_nds"
#~ msgstr "Mostrar los segu_ndos"

656
po/eu.po

File diff suppressed because it is too large Load Diff

1095
po/fa.po

File diff suppressed because it is too large Load Diff

583
po/fi.po

File diff suppressed because it is too large Load Diff

767
po/fr.po

File diff suppressed because it is too large Load Diff

337
po/fur.po
View File

@@ -8,15 +8,15 @@ msgstr ""
"Project-Id-Version: video-subtitles master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-23 17:01+0200\n"
"POT-Creation-Date: 2017-07-28 11:38+0000\n"
"PO-Revision-Date: 2017-07-25 15:43+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.0.3\n"
"X-Generator: Poedit 2.0.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/50-gnome-shell-system.xml:6
@@ -341,7 +341,7 @@ msgstr ""
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Anule"
@@ -402,72 +402,6 @@ msgstr "Erôr di autenticazion"
msgid "(or swipe finger)"
msgstr "(o passe cul dêt)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Distudâ"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "distudâ;studâ"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Blocâ il schermi"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "blocâ schermi;blocâ"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Jessî"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "jessî;sierâ session"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Sospindi"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "sospindi;polse"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Cambiâ utent"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "cambiâ utent"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Blocâ orientament"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "blocâ orientament"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Comant no cjatât"
@@ -627,35 +561,35 @@ msgstr "Dinee acès"
msgid "Grant Access"
msgstr "Garantìs l'acès"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Lis aplicazions dopradis dispès a vignaran mostradis culì"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Dispès"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Dutis"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Gnûf barcon"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Invie doprant une schede grafiche dedicade"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Gjave dai preferîts"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Zonte tai preferîts"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Mostre Detais"
@@ -697,7 +631,7 @@ msgstr "Cambie sfont..."
msgid "Display Settings"
msgstr "Impostazions visôr"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Impostazions"
@@ -844,8 +778,8 @@ msgstr "Password:"
msgid "Type again:"
msgstr "Scîf di gnûf:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Conet"
@@ -920,7 +854,7 @@ msgstr "Passowrd rêt mobil a bande largje"
msgid "A password is required to connect to “%s”."
msgstr "A covente une password par tacâsi a '%s'."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Ministradôr di rêt"
@@ -951,7 +885,7 @@ msgstr "Mi displâs, no je lade drete. Prove di gnûf."
msgid "%s is now known as %s"
msgstr "L'utent %s al è cognossût cumò come %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Barcons"
@@ -996,7 +930,7 @@ msgstr "Timp"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s dut il dì."
@@ -1005,7 +939,7 @@ msgstr "%s dut il dì."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, plui tart %s."
@@ -1014,30 +948,30 @@ msgstr "%s, plui tart %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, chi di un pôc %s, e plui tart %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Selezione une posizion..."
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Daûr a cjariâ..."
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Si sint %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Va in rêt pes informazions sul timp"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Lis informazions sul timp al moment no son disponibilis"
@@ -1200,34 +1134,19 @@ msgstr "Instale"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Scjariâ e instalâ '%s' da extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s al desidere inibî lis scurtis"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Une aplicazion e desidere inibî lis scurtis"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Si pues ripristinâ lis scurtis fracant %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Dinee"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Pemet"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Tastiere"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Plate casset"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Iconis di stât"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Nissune estension instalade"
@@ -1416,7 +1335,7 @@ msgid_plural "%d new notifications"
msgstr[0] "%d gnove notifiche"
msgstr[1] "%d gnovis modifichis"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Bloche"
@@ -1448,13 +1367,10 @@ msgid "No results."
msgstr "Nissun risultât."
# o ancjemò %d
#: js/ui/search.js:777
#, fuzzy, javascript-format
#| msgid "%d more"
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "Ancjemò %d"
msgstr[1] "Ancjemò %d"
msgstr "Ancjemò %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1528,7 +1444,7 @@ msgstr "Test Larc"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Impostazions Bluetooth"
@@ -1548,13 +1464,13 @@ msgstr "Distudât"
msgid "On"
msgstr "Impiât"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Impie"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Distude"
@@ -1608,13 +1524,13 @@ msgid "<unknown>"
msgstr "<no cognossût>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s distudât"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s tacât"
@@ -1622,189 +1538,190 @@ msgstr "%s tacât"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s no ministrât"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s daûr a disconeti"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s in conession"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s al à dibisugne di autenticazion"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Al mancje il firmware par %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s no disponibil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Conession falide su %s"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Impostazions rêt vie fîl"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Impostazions bande largje mobil"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s disabilitât vie hardware "
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s disabilitât"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Conet a internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Modalitât avion piade"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Il Wi-Fi al è disabilitât cuant che la modalitât avion e je impiade."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Distude modalitât avion"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Il Wi-Fi al è distudât"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Il Wi-Fi al scugne jessi impiât par podêsi tacâ a une rêt."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Impie il Wi-Fi"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Rêts Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Selezione une rêt"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Nissune rêt"
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Dopre interutôr fisic par distudâ"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Selezione rêt"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Impostazions Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Hotspot %s atîf"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s distacât"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "daûr a coneti…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "autenticazion necessarie"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "conession falide"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "Impostazions VPN"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN distudât"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Impostazions rêt"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "Impostazions VPN"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN distudât"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s conession cablade"
msgstr[1] "%s conessions cabladis"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s conession cence fîi"
msgstr[1] "%s conessions cence fîi"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s conession modem"
msgstr[1] "%s conessions modem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Conession falide"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Ativazion de conession di rêt falide"
@@ -1862,27 +1779,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Modalitât Avion ative"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Cambie Utent"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Jes"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Impostazions account"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Bloche Orientament"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Sospindi"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Distude"
@@ -1894,34 +1811,6 @@ msgstr "Volum modificât"
msgid "Volume"
msgstr "Volum"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Sdopleâ"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Unìs schermis"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Dome esterni"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Dome incorporât"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Jentre come altri utent"
@@ -1930,11 +1819,11 @@ msgstr "Jentre come altri utent"
msgid "Unlock Window"
msgstr "Sbloche barcon"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplicazions"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Cîr"
@@ -1943,22 +1832,22 @@ msgstr "Cîr"
msgid "“%s” is ready"
msgstr "'%s' al è pront"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Vûstu tignî chestis impostazions di visôr?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Ripristine impostazions"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Ten lis modifichis"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1969,7 +1858,7 @@ msgstr[1] ""
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2047,19 +1936,19 @@ msgstr "Calendari di Evolution"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Stampe version"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Modalitât doprade da GDM pe videade di acès"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Dopre une modalitât specifiche, par esempli “gdm” pe videade di acès"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Liste modalitâts pussibilis"
@@ -2107,12 +1996,6 @@ msgstr[1] "%u jentradis"
msgid "System Sounds"
msgstr "Suns di sisteme"
#~ msgid "Hide tray"
#~ msgstr "Plate casset"
#~ msgid "Status Icons"
#~ msgstr "Iconis di stât"
#~ msgid "Events"
#~ msgstr "Events"

594
po/gl.po

File diff suppressed because it is too large Load Diff

383
po/hr.po
View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-23 17:35+0200\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-25 20:05+0200\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.0.3\n"
"X-Generator: Poedit 2.0.2\n"
#: data/50-gnome-shell-system.xml:6
msgid "System"
@@ -59,13 +59,13 @@ msgstr "GNOME ljuska"
#: data/org.gnome.Shell.desktop.in.in:5
msgid "Window management and application launching"
msgstr "Pokretanje upravljanja prozorima i aplikacijama"
msgstr "Pokretanje upravljanja prozorima i aplikacijama."
#: data/org.gnome.shell.gschema.xml.in:6
msgid "Enable internal tools useful for developers and testers from Alt-F2"
msgstr ""
"Omogući unutrašnji alat koristan za razvijatelje i testiratelje koristeći "
"Alt-F2 dijalog"
"Alt-F2 dijalog."
#: data/org.gnome.shell.gschema.xml.in:9
msgid ""
@@ -219,7 +219,7 @@ msgstr "Prečac tipkovnice za otvaranje pogleda"
#: data/org.gnome.shell.gschema.xml.in:117
msgid "Keybinding to open the Activities Overview."
msgstr "Prečac tipkovnice za otvaranje pogleda Aktivnosti."
msgstr "Prečac tipkovnice za otvaranje pogleda Aktivnosti"
#: data/org.gnome.shell.gschema.xml.in:123
msgid "Keybinding to toggle the visibility of the notification list"
@@ -245,7 +245,7 @@ msgid ""
"Keybinding that pauses and resumes all running tweens, for debugging purposes"
msgstr ""
"Prečac tipkovnice za pauziranje i nastavljanje svih pokrenutih duplikata, u "
"svrhu otklanjanja grešaka"
"svrhu otklanjanja grešaka."
#: data/org.gnome.shell.gschema.xml.in:146
msgid "Which keyboard to use"
@@ -253,7 +253,7 @@ msgstr "Koju tipkovnicu koristiti"
#: data/org.gnome.shell.gschema.xml.in:147
msgid "The type of keyboard to use."
msgstr "Vrsta tipkovnice koja se koristi."
msgstr "Vrsta tipkovnice koja se koristi"
#: data/org.gnome.shell.gschema.xml.in:158
#: data/org.gnome.shell.gschema.xml.in:185
@@ -340,7 +340,7 @@ msgstr "Dogodila se greška učitavanja dijaloga osobitosti za %s:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Odustani"
@@ -367,7 +367,7 @@ msgstr "Odaberi sesiju"
#. manually entering the username.
#: js/gdm/loginDialog.js:458
msgid "Not listed?"
msgstr "Niste na popisu?"
msgstr "Nije na popisu?"
#. Translators: this message is shown below the username entry field
#. to clue the user in on how to login to the local network realm
@@ -382,7 +382,7 @@ msgstr "(npr., korisnik ili %s)"
#: js/gdm/loginDialog.js:893 js/ui/components/networkAgent.js:243
#: js/ui/components/networkAgent.js:261
msgid "Username: "
msgstr "Korisničko ime: "
msgstr "Korisničko ime:"
#: js/gdm/loginDialog.js:1236
msgid "Login Window"
@@ -401,72 +401,6 @@ msgstr "Greška ovjere"
msgid "(or swipe finger)"
msgstr "(ili pomakni prst)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Isključivanje"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "isključi;isključivanje"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Zaključavanje zaslona"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "zaključavanje zaslona"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Odjava"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "odjava:odjavljivanje"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspenzija"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "suspendiraj;spavaj"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Zamjena korisnika"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "zamjena korisnika"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Zaključavanje orjentacije"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "zaključavanje orjentacije"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Naredba nije pronađena"
@@ -632,35 +566,35 @@ msgstr "Zabrani pristup"
msgid "Grant Access"
msgstr "Dopusti pristup"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Najčešće korištene aplikacije će se pojaviti ovdje"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Najčešće"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Sve"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Novi prozor"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Pokreni pomoću namjenske grafičke kartice"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Ukloni iz omiljenih"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Dodaj u omiljene"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Prikaži pojedinosti"
@@ -696,13 +630,13 @@ msgstr "Mikrofon"
#: js/ui/backgroundMenu.js:19
msgid "Change Background…"
msgstr "Promijeni pozadinu"
msgstr "Promijeni pozadinu..."
#: js/ui/backgroundMenu.js:21 js/ui/status/nightLight.js:51
msgid "Display Settings"
msgstr "Postavke prikaza"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Postavke"
@@ -849,8 +783,8 @@ msgstr "Lozinka:"
msgid "Type again:"
msgstr "Pokušaj ponovno:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Povezivanje"
@@ -859,24 +793,24 @@ msgstr "Povezivanje"
#: js/ui/components/networkAgent.js:245 js/ui/components/networkAgent.js:265
#: js/ui/components/networkAgent.js:275
msgid "Password: "
msgstr "Lozinka: "
msgstr "Lozinka:"
#. static WEP
#: js/ui/components/networkAgent.js:210
msgid "Key: "
msgstr "Ključ: "
msgstr "Ključ:"
#: js/ui/components/networkAgent.js:249
msgid "Identity: "
msgstr "Identitet: "
msgstr "Identitet:"
#: js/ui/components/networkAgent.js:251
msgid "Private key password: "
msgstr "Lozinka privatnog ključa: "
msgstr "Lozinka privatnog ključa:"
#: js/ui/components/networkAgent.js:263
msgid "Service: "
msgstr "Usluga: "
msgstr "Usluga:"
#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:638
msgid "Authentication required by wireless network"
@@ -896,7 +830,7 @@ msgstr "Wired 802.1X ovjera"
#: js/ui/components/networkAgent.js:299
msgid "Network name: "
msgstr "Naziv mreže: "
msgstr "Naziv mreže:"
#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:646
msgid "DSL authentication"
@@ -912,7 +846,7 @@ msgstr "PIN kôd je potreban za uređaj mobilnog interneta"
#: js/ui/components/networkAgent.js:313
msgid "PIN: "
msgstr "PIN: "
msgstr "PIN:"
#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:659
msgid "Mobile broadband network password"
@@ -924,7 +858,7 @@ msgstr "Lozinka mreže mobilnog interneta"
msgid "A password is required to connect to “%s”."
msgstr "Potrebna je lozinka za povezivanje s “%s”."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Mrežni upravitelj"
@@ -955,7 +889,7 @@ msgstr "Nažalost, to ne radi. Pokušajte ponovno."
msgid "%s is now known as %s"
msgstr "%s je poznat kao %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Prozori"
@@ -986,7 +920,7 @@ msgstr "%e %b, %Y"
#: js/ui/dateMenu.js:144
msgid "Add world clocks…"
msgstr "Dodaj satove iz svijeta"
msgstr "Dodaj satove iz svijeta..."
#: js/ui/dateMenu.js:145
msgid "World Clocks"
@@ -1000,7 +934,7 @@ msgstr "Vrijeme"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s cijeli dan."
@@ -1009,7 +943,7 @@ msgstr "%s cijeli dan."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, zatim %s kasnije."
@@ -1018,30 +952,30 @@ msgstr "%s, zatim %s kasnije."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, zatim %s, praćena s %s kasnije."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Odaberi lokaciju"
msgstr "Odaberi lokaciju..."
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Pretraživanje…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Kao da je %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Posjetite za opširnije vremenske informacije"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Vremenske informacije su trenutno nedostupne"
@@ -1211,34 +1145,19 @@ msgstr "Instaliraj"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Preuzmi i instaliraj “%s” sa extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s želi spriječiti prečac"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Aplikacija želi spriječiti prečac"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Možete obnoviti prečac pritiskom na %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Spriječi"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Dopusti"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Tipkovnica"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Sakrij traku stanja"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Ikona stanja"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Nema instaliranih proširenja"
@@ -1315,11 +1234,11 @@ msgstr "Pregled"
#. characters.
#: js/ui/overview.js:240
msgid "Type to search…"
msgstr "Upiši za pretragu"
msgstr "Upiši za pretragu..."
#: js/ui/padOsd.js:103
msgid "New shortcut…"
msgstr "Novi prečac"
msgstr "Novi prečac..."
#: js/ui/padOsd.js:152
msgid "Application defined"
@@ -1343,7 +1262,7 @@ msgstr "Završeno"
#: js/ui/padOsd.js:734
msgid "Edit…"
msgstr "Uredi"
msgstr "Uredi..."
#: js/ui/padOsd.js:774 js/ui/padOsd.js:879
msgid "None"
@@ -1387,7 +1306,7 @@ msgstr "Gornja traka"
#. simply result in invisible toggle switches.
#: js/ui/popupMenu.js:291
msgid "toggle-switch-us"
msgstr "toggle-switch-us"
msgstr ""
#: js/ui/runDialog.js:71
msgid "Enter a Command"
@@ -1403,7 +1322,7 @@ msgstr "Ponovno pokretanje nije dostupno na Waylandu"
#: js/ui/runDialog.js:282
msgid "Restarting…"
msgstr "Ponovno pokretanje"
msgstr "Ponovno pokretanje..."
#. Translators: This is a time format for a date in
#. long format
@@ -1427,7 +1346,7 @@ msgstr[0] "%d nova obavijest"
msgstr[1] "%d nove obavijesti"
msgstr[2] "%d novih obavijesti"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Zaključaj"
@@ -1458,13 +1377,10 @@ msgstr "Pretraživanje…"
msgid "No results."
msgstr "Nema rezultata."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "Još %d"
msgstr[1] "Još %d"
msgstr[2] "Još %d"
msgstr "Još %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1538,7 +1454,7 @@ msgstr "Velik tekst"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Bluetooth postavke"
@@ -1559,13 +1475,13 @@ msgstr "Isključeno"
msgid "On"
msgstr "Uključeno"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Uključi"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Isključi"
@@ -1618,13 +1534,13 @@ msgid "<unknown>"
msgstr "<nepoznato>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s isključena"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s povezana"
@@ -1632,164 +1548,165 @@ msgstr "%s povezana"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s neupravljana"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s prekidanje povezivanja"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s povezivanje"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s zahtijeva ovjeru"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Nedostaje firmver za %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s nedostupna"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s neuspješno povezivanje"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Postavke žične mreže"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Mobilni internet"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s hardverski onemogućena"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s onemogućeno"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Povežite se na internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Zrakoplovni način rada je omogućen"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Bežična mreža je onemogućena u zrakoplovnom načinu rada."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Isključi zrakoplovni način rada"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Bežična mreža isključena"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Bežična mreža se mora uključiti kako bi se povezala s internetom."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Uključi bežičnu mrežu"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Bežične mreže"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Odaberi mrežu"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Nema mreža"
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Koristi hardverski prekidač za isključivanje"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Odaberi mrežu"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Postavke bežične mreže"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s pristupna točka aktivna"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s nije povezana"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "povezivanje…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "potrebna je ovjera"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "neuspješno povezivanje"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "VPN postavke"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN isključen"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Mrežne postavke"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN postavke"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN isključen"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -1797,7 +1714,7 @@ msgstr[0] "%s žično povezivanje"
msgstr[1] "%s žična povezivanja"
msgstr[2] "%s žičnih povezivanja"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -1805,7 +1722,7 @@ msgstr[0] "%s bežično povezivanje"
msgstr[1] "%s bežična povezivanja"
msgstr[2] "%s bežičnih povezivanja"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -1813,11 +1730,11 @@ msgstr[0] "%s modemsko povezivanje"
msgstr[1] "%s modemska povezivanja"
msgstr[2] "%s modemskih povezivanja"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Neuspješno povezivanje"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Aktiviranje mrežnog povezivanja je neuspjelo"
@@ -1849,7 +1766,7 @@ msgstr "Potpuno napunjeno"
#. to estimate battery life
#: js/ui/status/power.js:84 js/ui/status/power.js:90
msgid "Estimating…"
msgstr "Procjenjivanje"
msgstr "Procjenjivanje..."
#. Translators: this is <hours>:<minutes> Remaining (<percentage>)
#: js/ui/status/power.js:98
@@ -1875,27 +1792,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Zrakoplovni način rada uključen"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Zamijeni korisnika"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Odjava"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Postavke računa"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Zaključavanje orjentacije"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Suspendiraj"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Isključivanje"
@@ -1907,34 +1824,6 @@ msgstr "Glasnoća zvuka promijenjena"
msgid "Volume"
msgstr "Glasnoća zvuka"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Zrcaljenje"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Spoji zaslone"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Samo vanjski"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Samo ugrađeni"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Prijavi se kao drugi korisnik"
@@ -1943,11 +1832,11 @@ msgstr "Prijavi se kao drugi korisnik"
msgid "Unlock Window"
msgstr "Otključaj prozor"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplikacije"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Pretraži"
@@ -1956,22 +1845,22 @@ msgstr "Pretraži"
msgid "“%s” is ready"
msgstr "“%s” je spreman"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Želite li zadržati ove postavke zaslona?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Vrati postavke"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Zadrži promjene"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1981,7 +1870,7 @@ msgstr[2] "Promjene postavka će se vratiti za %d sekundi"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2059,19 +1948,19 @@ msgstr "Evolution kalendar"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Ispiši inačicu"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Način koji koristi GDM za zaslon prijave"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Koristi određen način, npr. \"gdm\" za zaslon prijave"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Popis mogućih načina"
@@ -2121,12 +2010,6 @@ msgstr[2] "%u ulaza"
msgid "System Sounds"
msgstr "Zvukovi sustava"
#~ msgid "Hide tray"
#~ msgstr "Sakrij traku stanja"
#~ msgid "Status Icons"
#~ msgstr "Ikona stanja"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Osobitosti proširenja GNOME ljuske"

565
po/hu.po

File diff suppressed because it is too large Load Diff

413
po/id.po
View File

@@ -2,7 +2,7 @@
# Copyright (C) 2010 THE gnome-shell'S COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell package.
#
# Andika Triwidada <andika@gmail.com>, 2010-2014, 2017.
# Andika Triwidada <andika@gmail.com>, 2010, 2011, 2012, 2013, 2014.
# Dirgita <dirgitadevina@yahoo.co.id>, 2011, 2012, 2014.
# Wibiharto <wibinem@yahoo.com>, 2011.
msgid ""
@@ -10,16 +10,16 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-23 00:03+0700\n"
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
"POT-Creation-Date: 2017-07-16 17:31+0000\n"
"PO-Revision-Date: 2017-07-17 10:54+0700\n"
"Last-Translator: Kukuh Syafaat <syafaatkukuh@gmail.com>\n"
"Language-Team: Indonesian <gnome-l10n-id@googlegroups.com>\n"
"Language: id\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 2.0.3\n"
"X-Generator: Poedit 2.0.2\n"
"X-DamnedLies-Scope: partial\n"
"X-Poedit-SourceCharset: UTF-8\n"
@@ -342,8 +342,8 @@ msgstr "Ada galat saat memuat dialog preferensi bagi %s:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:195
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Batal"
@@ -404,72 +404,6 @@ msgstr "Galat otentikasi"
msgid "(or swipe finger)"
msgstr "(atau gesekkan jari)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Matikan"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "matikan"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Kunci layar"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "kunci layar"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Keluar"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "keluar"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Suspensi"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "suspensi;tidur"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Ganti pengguna"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "ganti pengguna"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Kunci orientasi"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "kunci orientasi"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Perintah tidak ditemukan"
@@ -623,35 +557,35 @@ msgstr "Tolak Akses"
msgid "Grant Access"
msgstr "Beri Akses"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:813
msgid "Frequently used applications will appear here"
msgstr "Aplikasi yang sering dipakai akan muncul di sini"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:934
msgid "Frequent"
msgstr "Sering"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:941
msgid "All"
msgstr "Semua"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1902
msgid "New Window"
msgstr "Jendela Baru"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1916
msgid "Launch using Dedicated Graphics Card"
msgstr "Luncurkan menggunakan Kartu Grafis Terdedikasi"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1943 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Hapus dari Favorit"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1949
msgid "Add to Favorites"
msgstr "Tambah ke Favorit"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1959
msgid "Show Details"
msgstr "Tampilkan Rincian"
@@ -693,7 +627,7 @@ msgstr "Ubah Latar…"
msgid "Display Settings"
msgstr "Pengaturan Tampilan"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Pengaturan"
@@ -827,7 +761,7 @@ msgstr "Drive eksternal tersambung"
msgid "External drive disconnected"
msgstr "Drive eksternal terputus"
#: js/ui/components/autorunManager.js:354
#: js/ui/components/autorunManager.js:355
#, javascript-format
msgid "Open with %s"
msgstr "Buka dengan %s"
@@ -840,8 +774,8 @@ msgstr "Sandi:"
msgid "Type again:"
msgstr "Ketik lagi:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Sambung"
@@ -916,7 +850,7 @@ msgstr "Sandi jaringan data seluler"
msgid "A password is required to connect to “%s”."
msgstr "Perlu suatu sandi untuk menyambung ke \"%s\"."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Manajer Jaringan"
@@ -947,7 +881,7 @@ msgstr "Maaf, tidak berhasil. Silakan coba lagi."
msgid "%s is now known as %s"
msgstr "%s sekarang dikenal sebagai %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Jendela"
@@ -992,7 +926,7 @@ msgstr "Cuaca"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s sepanjang hari."
@@ -1001,7 +935,7 @@ msgstr "%s sepanjang hari."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, kemudian %s."
@@ -1010,30 +944,30 @@ msgstr "%s, kemudian %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, kemudian %s, diikuti dengan %s nanti."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Pilih lokasi…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Memuat…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Terasa seperti %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Pergi daring untuk informasi cuaca"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Informasi cuaca saat ini tidak tersedia"
@@ -1179,43 +1113,28 @@ msgstr "%s (jarak jauh)"
msgid "%s (console)"
msgstr "%s (konsol)"
#: js/ui/extensionDownloader.js:201
#: js/ui/extensionDownloader.js:199
msgid "Install"
msgstr "Pasang"
#: js/ui/extensionDownloader.js:206
#: js/ui/extensionDownloader.js:204
#, javascript-format
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s ingin mencegah pintasan"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Aplikasi ingin mencegah pintasan"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Anda dapat memulihkan pintasan dengan menekan %s."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Tolak"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Izinkan"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Papan Ketik"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Sembunyikan baki"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Ikon Status"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Tak ada ekstensi terpasang"
@@ -1240,7 +1159,7 @@ msgstr "Diaktifkan"
#. translators:
#. * The device has been disabled
#: js/ui/lookingGlass.js:718 subprojects/gvc/gvc-mixer-control.c:1866
#: js/ui/lookingGlass.js:718 src/gvc/gvc-mixer-control.c:1866
msgid "Disabled"
msgstr "Dinonaktifkan"
@@ -1314,27 +1233,27 @@ msgstr "Ganti monitor"
msgid "Assign keystroke"
msgstr "Tetapkan keystroke"
#: js/ui/padOsd.js:220
#: js/ui/padOsd.js:209
msgid "Done"
msgstr "Selesai"
#: js/ui/padOsd.js:734
#: js/ui/padOsd.js:708
msgid "Edit…"
msgstr "Sunting…"
#: js/ui/padOsd.js:774 js/ui/padOsd.js:879
#: js/ui/padOsd.js:748 js/ui/padOsd.js:810
msgid "None"
msgstr "Nihil"
#: js/ui/padOsd.js:833
#: js/ui/padOsd.js:793
msgid "Press a button to configure"
msgstr "Tekan tombol untuk mengkonfigurasi"
#: js/ui/padOsd.js:834
#: js/ui/padOsd.js:794
msgid "Press Esc to exit"
msgstr "Tekan Esc untuk keluar"
#: js/ui/padOsd.js:837
#: js/ui/padOsd.js:797
msgid "Press any key to exit"
msgstr "Tekan tombol apa saja untuk keluar"
@@ -1401,7 +1320,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d pemberitahuan baru"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Kunci"
@@ -1432,11 +1351,10 @@ msgstr "Mencari…"
msgid "No results."
msgstr "Tak ada yang cocok."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "%d lagi"
msgstr "%d lagi"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1510,7 +1428,7 @@ msgstr "Teks Besar"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Pengaturan Bluetooth"
@@ -1529,13 +1447,13 @@ msgstr "Mati"
msgid "On"
msgstr "Hidup"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Nyalakan"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Matikan"
@@ -1587,13 +1505,13 @@ msgid "<unknown>"
msgstr "<tak dikenal>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s Mati"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s Tersambung"
@@ -1601,186 +1519,187 @@ msgstr "%s Tersambung"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s Tak Dikelola"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s Memutus"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s Menyambung"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s Memerlukan Otentikasi"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "Firmware Hilang Untuk %s"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s Tak tersedia"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Koneksi %s Gagal"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Pengaturan Kabel"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Pengaturan Data Seluler"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s Perangkat Keras Dinonaktifkan"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s Dinonaktifkan"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Sambungkan ke Internet"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Mode Pesawat Terbang Menyala"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi dinonaktifkan ketika mode pesawat terbang menyala."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Matikan Mode Pesawat Terbang"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Wi-Fi Mati"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Wi-Fi perlu dinyalakan untuk menyambung ke suatu jaringan."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Nyalakan Wi-Fi"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Jaringan Wi-Fi"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Pilih jaringan"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Tiada Jaringan"
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Pakai saklar perangkat keras untuk mematikan"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Pilih Jaringan"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Pengaturan Wi-Fi"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s Hotspot Aktif"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s Tak Tersambung"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "menghubungi..."
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "diperlukan otentikasi"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "koneksi gagal"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "Pengaturan VPN"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN Mati"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Pengaturan Jaringan"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "Pengaturan VPN"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN Mati"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s Koneksi Kabel"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Koneksi Wi-Fi"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s Koneksi Modem"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Koneksi gagal"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Aktivasi koneksi jaringan gagal"
@@ -1838,27 +1757,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Mode Pesawat Terbang Aktif"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Ganti Pengguna"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Keluar"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Pengaturan Akun"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Kunci Orientasi"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Suspensi"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Matikan"
@@ -1870,34 +1789,6 @@ msgstr "Volume diubah"
msgid "Volume"
msgstr "Volume"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Kembar"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Gabung Layar"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Hanya Eksternal"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Hanya Bawaan"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Masuk sebagai pengguna lain"
@@ -1906,11 +1797,11 @@ msgstr "Masuk sebagai pengguna lain"
msgid "Unlock Window"
msgstr "Buka Kunci Jendela"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Aplikasi"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Cari"
@@ -1919,22 +1810,22 @@ msgstr "Cari"
msgid "“%s” is ready"
msgstr "'%s' siap"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Apakah Anda ingin mempertahankan pengaturan tampilan ini?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Balikkan Tatanan"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Simpan Perubahan"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1942,7 +1833,7 @@ msgstr[0] "Perubahan tatanan akan dikembalikan dalam %d detik"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2020,19 +1911,39 @@ msgstr "Evolution Kalender"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#. translators:
#. * The number of sound outputs on a particular device
#: src/gvc/gvc-mixer-control.c:1873
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
msgstr[0] "%u Keluaran"
#. translators:
#. * The number of sound inputs on a particular device
#: src/gvc/gvc-mixer-control.c:1883
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u Masukan"
#: src/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "Suara Sistem"
#: src/main.c:372
msgid "Print version"
msgstr "Versi Cetak"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Mode yang dipakai oleh layar log masuk GDM"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Menampilkan mode yang mungkin"
@@ -2058,22 +1969,26 @@ msgstr "Sandi tidak boleh kosong"
msgid "Authentication dialog was dismissed by the user"
msgstr "Dialog otentikasi ditolak oleh pengguna"
#. translators:
#. * The number of sound outputs on a particular device
#: subprojects/gvc/gvc-mixer-control.c:1873
#, c-format
msgid "%u Output"
msgid_plural "%u Outputs"
msgstr[0] "%u Keluaran"
#~ msgid "Events"
#~ msgstr "Kejadian"
#. translators:
#. * The number of sound inputs on a particular device
#: subprojects/gvc/gvc-mixer-control.c:1883
#, c-format
msgid "%u Input"
msgid_plural "%u Inputs"
msgstr[0] "%u Masukan"
#~ msgid "Notifications"
#~ msgstr "Pemberitahuan"
#: subprojects/gvc/gvc-mixer-control.c:2738
msgid "System Sounds"
msgstr "Suara Sistem"
#~ msgid "Clear section"
#~ msgstr "Bersihkan seksi"
#~ msgid "Media"
#~ msgstr "Media"
#~ msgid "GNOME Shell Extension Preferences"
#~ msgstr "Preferensi Ekstensi GNOME Shell"
#~ msgid "Web Authentication Redirect"
#~ msgstr "Pengalihan Otentikasi Web"
#~ msgid "%d x %d"
#~ msgstr "%d x %d"
#~ msgid "Not In Use"
#~ msgstr "Tidak Dipakai"

1021
po/is.po

File diff suppressed because it is too large Load Diff

638
po/it.po

File diff suppressed because it is too large Load Diff

731
po/ja.po

File diff suppressed because it is too large Load Diff

333
po/kk.po
View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 19:22+0500\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-27 17:09+0500\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk_KZ@googlegroups.com>\n"
"Language: kk\n"
@@ -339,7 +339,7 @@ msgstr "%s үшін баптаулар сұхбатын жүктеу кезін
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Бас тарту"
@@ -400,72 +400,6 @@ msgstr "Аутентификация қатесі"
msgid "(or swipe finger)"
msgstr "(немесе саусағыңызды өткізіңіз)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
msgctxt "search-result"
msgid "Power off"
msgstr "Сөндіру"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "сөндіру"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Экранды блоктау"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "экранды блоктау"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
msgctxt "search-result"
msgid "Log out"
msgstr "Жүйеден шығу"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "жүйеден шығу"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
msgctxt "search-result"
msgid "Suspend"
msgstr "Ұйықтату"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
msgid "suspend;sleep"
msgstr "ұйықтату"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
msgctxt "search-result"
msgid "Switch user"
msgstr "Пайдаланушыны ауыстыру"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
msgid "switch user"
msgstr "пайдаланушыны ауыстыру"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Бағдарды бекіту"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
msgid "lock orientation"
msgstr "бағдарды бекіту"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Команда табылмады"
@@ -619,35 +553,35 @@ msgstr "Тыйым салу"
msgid "Grant Access"
msgstr "Рұқсат ету"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Жиі қолданылатын қолданбалар осында көрінеді"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Жиі қолданылатын"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Барлығы"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Жаңа терезе"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Бөлек графикалық картаны пайдаланып жөнелту"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Таңдамалылардан өшіру"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Таңдамалыларға қосу"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Деректерді көрсету"
@@ -689,7 +623,7 @@ msgstr "Фонды өзгерту..."
msgid "Display Settings"
msgstr "Экран баптаулары"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Баптаулар"
@@ -836,8 +770,8 @@ msgstr "Пароль:"
msgid "Type again:"
msgstr "Қайтадан енгізіңіз:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Байланысу"
@@ -911,7 +845,7 @@ msgstr "Сымсыз кеңжолақты желісінің паролі"
msgid "A password is required to connect to “%s”."
msgstr "\"%s\" үшін байланысты орнату үшін пароль керек."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Желілер басқарушысы"
@@ -942,7 +876,7 @@ msgstr "Кешіріңіз, талап сәтсіз. Қайтадан көрің
msgid "%s is now known as %s"
msgstr "%s енді %s ретінде белгілі"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Терезелер"
@@ -987,7 +921,7 @@ msgstr "Ауа райы"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s күні бойы."
@@ -996,7 +930,7 @@ msgstr "%s күні бойы."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, одан кейін %s."
@@ -1005,30 +939,30 @@ msgstr "%s, одан кейін %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, одан кейін %s, одан кейін %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Орналасуды таңдаңыз…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Жүктеу…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "%s сияқты сезіледі."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Ауа райы ақпаратын алу үшін желіге байланысыңыз"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Ауа райы ақпараты ағымдағы уақытта қолжетерсіз"
@@ -1184,34 +1118,19 @@ msgstr "Орнату"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "extensions.gnome.org адресінен \"%s\" жүктеп алып, орнату керек пе?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s жарлықтарды сөндіргісі келеді"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Қолданба жарлықтарды сөндіргісі келеді"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Сіз жарлықтарды %s басу арқылы қалпына келтіре аласыз."
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Тыйым салу"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Рұқсат ету"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Пернетақта"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Жүйелік трейді жасыру"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Қалып-күй таңбашалары"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Кеңейтулер орнатылмаған"
@@ -1396,7 +1315,7 @@ msgid "%d new notification"
msgid_plural "%d new notifications"
msgstr[0] "%d жаңа ескерту"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Блоктау"
@@ -1427,11 +1346,10 @@ msgstr "Іздеу..."
msgid "No results."
msgstr "Нәтижелер жоқ."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "тағы %d"
msgstr "тағы %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1505,7 +1423,7 @@ msgstr "Үлкен мәтін"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Bluetooth баптаулары"
@@ -1524,13 +1442,13 @@ msgstr "Сөнд."
msgid "On"
msgstr "Іске қос."
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Іске қосу"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Сөндіру"
@@ -1584,13 +1502,13 @@ msgid "<unknown>"
msgstr "<белгісіз>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s сөндірулі"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "%s байланысқан"
@@ -1598,186 +1516,187 @@ msgstr "%s байланысқан"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s басқарылмайтын"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "%s байланысты үзуде"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "%s байланысуда"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s аутентификацияны талап етеді"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s үшін бинарлы кодтары жоқ"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s қолжетерсіз"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "%s байланысын орнату сәтсіз"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Сымды желі баптаулары"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Сымсыз кеңжолақты желісінің баптаулары"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s құрылғылық түрде сөндірулі тұр"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s сөндірулі тұр"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Интернетке байланысу"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Ұшақтағы режим іске қосылған"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Wi-Fi ұшақтағы режимі кезінде сөндірілген болады."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Ұшақтағы режимді сөндіру"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Wi-Fi сөндірілген"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Желіге байланысты орнату үшін Wi-Fi іске қосылған болуы тиіс."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Wi-Fi іске қосу"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Wi-Fi желілері"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Желіні таңдау"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Желілер жоқ"
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Сөндіру үшін құрылғылық қосқышты қолданыңыз"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Желіні таңдау"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Wi-Fi баптаулары"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "%s қатынау нүктесі белсенді"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "%s байланыспаған"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "байланысты орнату…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "аутентификация керек"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "байланысты орнату сәтсіз"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "VPN баптаулары"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN сөндірілген"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Желі баптаулары"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN баптаулары"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN сөндірілген"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
msgstr[0] "%s сымды желі байланысы"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
msgstr[0] "%s Wi-Fi желі байланысы"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
msgstr[0] "%s модем желі байланысы"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Байланыс орнату сәтсіз"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Желілік байланысты белсендіру сәтсіз"
@@ -1835,27 +1754,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Ұшақтағы режим іске қосулы"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Пайдаланушыны ауыстыру"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Жүйеден шығу"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Тіркелгі баптаулары"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Бағдарды бекіту"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Ұйықтату"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Сөндіру"
@@ -1867,34 +1786,6 @@ msgstr "Дыбыс өзгертілді"
msgid "Volume"
msgstr "Дыбыс деңгейі"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
msgid "Mirror"
msgstr "Айналы"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Экран­дарды біріктіру"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Тек сыртқы"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Тек құрамындағы"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Басқа пайдаланушы ретінде жүйеге кіру"
@@ -1903,11 +1794,11 @@ msgstr "Басқа пайдаланушы ретінде жүйеге кіру"
msgid "Unlock Window"
msgstr "Блоктауды алу терезесі"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Қолданбалар"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Іздеу"
@@ -1916,22 +1807,22 @@ msgstr "Іздеу"
msgid "“%s” is ready"
msgstr "\"%s\" дайын"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Экранның бұл баптауларын сақтауды қалайсыз ба?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Баптауларды қалпына келтіру"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Өзгерістерді сақтау"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1939,7 +1830,7 @@ msgstr[0] "Өзгертілген баптаулар %d секундтан ке
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2017,19 +1908,19 @@ msgstr "Evolution күнтізбесі"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Баспа нұсқасы"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "GDM жүйеге кіру экраны үшін қолданатын режимі"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Жүйеге кіру экраны үшін арнайы режимді, мыс. \"gdm\", қолдану"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Қолжетерлік режимдерді тізіп шығу"
@@ -2075,12 +1966,6 @@ msgstr[0] "%u кірісі"
msgid "System Sounds"
msgstr "Жүйелік дыбыстар"
#~ msgid "Hide tray"
#~ msgstr "Жүйелік трейді жасыру"
#~ msgid "Status Icons"
#~ msgstr "Қалып-күй таңбашалары"
#~ msgid "Events"
#~ msgstr "Оқиғалар"

554
po/ko.po

File diff suppressed because it is too large Load Diff

345
po/lt.po
View File

@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell master\n"
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
"shell&keywords=I18N+L10N&component=general\n"
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
"PO-Revision-Date: 2017-08-22 23:13+0300\n"
"POT-Creation-Date: 2017-07-20 03:49+0000\n"
"PO-Revision-Date: 2017-07-24 23:45+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -337,7 +337,7 @@ msgstr "Kilo klaida įkeliant %s nuostatų dialogą:"
#: js/gdm/authPrompt.js:149 js/ui/audioDeviceSelection.js:71
#: js/ui/components/networkAgent.js:117 js/ui/components/polkitAgent.js:148
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
msgid "Cancel"
msgstr "Atsisakyti"
@@ -398,80 +398,6 @@ msgstr "Tapatybės patvirtinimo klaida"
msgid "(or swipe finger)"
msgstr "(arba perbraukite pirštu)"
#. Translators: The name of the power-off action in search
#: js/misc/systemActions.js:99
#| msgid "Power Off"
msgctxt "search-result"
msgid "Power off"
msgstr "Išjungti"
#. Translators: A list of keywords that match the power-off action, separated by semicolons
#: js/misc/systemActions.js:102
msgid "power off;shutdown"
msgstr "išjungti"
#. Translators: The name of the lock screen action in search
#: js/misc/systemActions.js:106
msgctxt "search-result"
msgid "Lock screen"
msgstr "Užrakinti ekraną"
#. Translators: A list of keywords that match the lock screen action, separated by semicolons
#: js/misc/systemActions.js:109
msgid "lock screen"
msgstr "užrakinti ekraną"
#. Translators: The name of the logout action in search
#: js/misc/systemActions.js:113
#| msgid "Log Out"
msgctxt "search-result"
msgid "Log out"
msgstr "Atsijungti"
#. Translators: A list of keywords that match the logout action, separated by semicolons
#: js/misc/systemActions.js:116
msgid "logout;sign off"
msgstr "atsijungti"
#. Translators: The name of the suspend action in search
#: js/misc/systemActions.js:120
#| msgid "Suspend"
msgctxt "search-result"
msgid "Suspend"
msgstr "Pristabdyti"
#. Translators: A list of keywords that match the suspend action, separated by semicolons
#: js/misc/systemActions.js:123
#| msgid "Suspend"
msgid "suspend;sleep"
msgstr "pristabdyti;užmigdyti"
#. Translators: The name of the switch user action in search
#: js/misc/systemActions.js:127
#| msgid "Switch User"
msgctxt "search-result"
msgid "Switch user"
msgstr "Keisti naudotoją"
#. Translators: A list of keywords that match the switch user action, separated by semicolons
#: js/misc/systemActions.js:130
#| msgid "Switch User"
msgid "switch user"
msgstr "keisti naudotoją"
#. Translators: The name of the lock orientation action in search
#: js/misc/systemActions.js:134
#| msgid "Orientation Lock"
msgctxt "search-result"
msgid "Lock orientation"
msgstr "Orientacijos užrakinimas"
#. Translators: A list of keywords that match the lock orientation action, separated by semicolons
#: js/misc/systemActions.js:137
#| msgid "Orientation Lock"
msgid "lock orientation"
msgstr "orientacijos užrakinimas"
#: js/misc/util.js:122
msgid "Command not found"
msgstr "Komanda nerasta"
@@ -636,35 +562,35 @@ msgstr "Atmesti prieigą"
msgid "Grant Access"
msgstr "Suteikti prieigą"
#: js/ui/appDisplay.js:809
#: js/ui/appDisplay.js:806
msgid "Frequently used applications will appear here"
msgstr "Čia bus matomos dažnai naudojamos programos"
#: js/ui/appDisplay.js:930
#: js/ui/appDisplay.js:927
msgid "Frequent"
msgstr "Dažnai naudojamos"
#: js/ui/appDisplay.js:937
#: js/ui/appDisplay.js:934
msgid "All"
msgstr "Visos"
#: js/ui/appDisplay.js:1915
#: js/ui/appDisplay.js:1895
msgid "New Window"
msgstr "Naujas langas"
#: js/ui/appDisplay.js:1929
#: js/ui/appDisplay.js:1909
msgid "Launch using Dedicated Graphics Card"
msgstr "Paleisti naudojant dedikuotą grafikos kortą"
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
msgid "Remove from Favorites"
msgstr "Pašalinti iš mėgstamų"
#: js/ui/appDisplay.js:1962
#: js/ui/appDisplay.js:1942
msgid "Add to Favorites"
msgstr "Pridėti prie mėgstamų"
#: js/ui/appDisplay.js:1972
#: js/ui/appDisplay.js:1952
msgid "Show Details"
msgstr "Rodyti detalią informaciją"
@@ -706,7 +632,7 @@ msgstr "Keisti foną…"
msgid "Display Settings"
msgstr "Ekrano nustatymai"
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
msgid "Settings"
msgstr "Nustatymai"
@@ -813,6 +739,7 @@ msgstr "Viską išvalyti"
#. Translators: %s is an application name
#: js/ui/closeDialog.js:44
#, javascript-format
#| msgid "“%s” is ready"
msgid "“%s” is not responding."
msgstr "„%s“ neatsiliepia."
@@ -853,8 +780,8 @@ msgstr "Slaptažodis:"
msgid "Type again:"
msgstr "Įveskite dar kartą:"
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
#: js/ui/status/network.js:355 js/ui/status/network.js:939
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
#: js/ui/status/network.js:366 js/ui/status/network.js:950
msgid "Connect"
msgstr "Prisijungti"
@@ -929,7 +856,7 @@ msgstr "Mobiliojo plačiajuosčio tinklo slaptažodis"
msgid "A password is required to connect to “%s”."
msgstr "Būtinas slaptažodis norint prisijungti prie „%s“."
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
msgid "Network Manager"
msgstr "Tinklo tvarkymas"
@@ -960,7 +887,7 @@ msgstr "Atsiprašome, tai nesuveikė. Bandykite dar kartą."
msgid "%s is now known as %s"
msgstr "%s nuo šiol vadinasi %s"
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
msgid "Windows"
msgstr "Langai"
@@ -1005,7 +932,7 @@ msgstr "Orai"
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:286
#: js/ui/dateMenu.js:281
#, javascript-format
msgid "%s all day."
msgstr "%s visą dieną."
@@ -1014,7 +941,7 @@ msgstr "%s visą dieną."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:292
#: js/ui/dateMenu.js:287
#, javascript-format
msgid "%s, then %s later."
msgstr "%s, o vėliau %s."
@@ -1023,30 +950,30 @@ msgstr "%s, o vėliau %s."
#. libgweather for the possible condition strings. If at all
#. possible, the sentence should match the grammatical case etc. of
#. the inserted conditions.
#: js/ui/dateMenu.js:298
#: js/ui/dateMenu.js:293
#, javascript-format
msgid "%s, then %s, followed by %s later."
msgstr "%s, tuomet %s, o po to vėliau %s."
#: js/ui/dateMenu.js:309
#: js/ui/dateMenu.js:300
msgid "Select a location…"
msgstr "Pasirinkite vietą…"
#: js/ui/dateMenu.js:312
#: js/ui/dateMenu.js:303
msgid "Loading…"
msgstr "Įkeliama…"
#. Translators: %s is a temperature with unit, e.g. "23℃"
#: js/ui/dateMenu.js:318
#: js/ui/dateMenu.js:309
#, javascript-format
msgid "Feels like %s."
msgstr "Jaučiama kaip %s."
#: js/ui/dateMenu.js:321
#: js/ui/dateMenu.js:312
msgid "Go online for weather information"
msgstr "Prisijunkite prie tinklo orų informacijai gauti"
#: js/ui/dateMenu.js:323
#: js/ui/dateMenu.js:314
msgid "Weather information is currently unavailable"
msgstr "Orų informacija šiuo metu yra neprieinama"
@@ -1213,34 +1140,19 @@ msgstr "Įdiegti"
msgid "Download and install “%s” from extensions.gnome.org?"
msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
#. Translators: %s is an application name like "Settings"
#: js/ui/inhibitShortcutsDialog.js:59
#, javascript-format
msgid "%s wants to inhibit shortcuts"
msgstr "%s nori talpinti trumpinius"
#: js/ui/inhibitShortcutsDialog.js:60
msgid "Application wants to inhibit shortcuts"
msgstr "Programa nori talpinti trumpinius"
#. Translators: %s is a keyboard shortcut like "Super+x"
#: js/ui/inhibitShortcutsDialog.js:69
#, javascript-format
msgid "You can restore shortcuts by pressing %s."
msgstr "Galite atstatyti trumpinius paspaudę %s"
#: js/ui/inhibitShortcutsDialog.js:74
msgid "Deny"
msgstr "Neleisti"
#: js/ui/inhibitShortcutsDialog.js:80
msgid "Allow"
msgstr "Leisti"
#: js/ui/keyboard.js:738 js/ui/status/keyboard.js:782
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
msgid "Keyboard"
msgstr "Klaviatūra"
#. translators: 'Hide' is a verb
#: js/ui/legacyTray.js:65
msgid "Hide tray"
msgstr "Slėpti dėklą"
#: js/ui/legacyTray.js:106
msgid "Status Icons"
msgstr "Būsenos piktogramos"
#: js/ui/lookingGlass.js:642
msgid "No extensions installed"
msgstr "Nėra įdiegtų plėtinių"
@@ -1429,7 +1341,7 @@ msgstr[0] "%d naujas pranešimas"
msgstr[1] "%d nauji pranešimai"
msgstr[2] "%d naujų pranešimų"
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
msgid "Lock"
msgstr "Užrakinti"
@@ -1460,13 +1372,10 @@ msgstr "Ieškoma…"
msgid "No results."
msgstr "Nerasta atitikmenų."
#: js/ui/search.js:777
#: js/ui/search.js:768
#, javascript-format
msgid "%d more"
msgid_plural "%d more"
msgstr[0] "dar %d"
msgstr[1] "dar %d"
msgstr[2] "dar %d"
msgstr "dar %d"
#: js/ui/shellEntry.js:25
msgid "Copy"
@@ -1540,7 +1449,7 @@ msgstr "Didelis tekstas"
msgid "Bluetooth"
msgstr "Bluetooth"
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
msgid "Bluetooth Settings"
msgstr "Bluetooth nustatymai"
@@ -1561,13 +1470,13 @@ msgstr "Išjungta"
msgid "On"
msgstr "Įjungta"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
msgid "Turn On"
msgstr "Įjungti"
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:170
#: js/ui/status/network.js:356 js/ui/status/network.js:1299
#: js/ui/status/network.js:1418 js/ui/status/nightLight.js:47
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:181
#: js/ui/status/network.js:367 js/ui/status/network.js:1310
#: js/ui/status/network.js:1429 js/ui/status/nightLight.js:47
#: js/ui/status/rfkill.js:90 js/ui/status/rfkill.js:117
msgid "Turn Off"
msgstr "Išjungti"
@@ -1619,13 +1528,13 @@ msgid "<unknown>"
msgstr "<nežinoma>"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
#, javascript-format
msgid "%s Off"
msgstr "%s išjungtas"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:457
#: js/ui/status/network.js:468
#, javascript-format
msgid "%s Connected"
msgstr "Prisijungta prie %s"
@@ -1633,164 +1542,165 @@ msgstr "Prisijungta prie %s"
#. Translators: this is for network devices that are physically present but are not
#. under NetworkManager's control (and thus cannot be used in the menu);
#. %s is a network identifier
#: js/ui/status/network.js:462
#: js/ui/status/network.js:473
#, javascript-format
msgid "%s Unmanaged"
msgstr "%s netvarkomas"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:465
#: js/ui/status/network.js:476
#, javascript-format
msgid "%s Disconnecting"
msgstr "Atsijungiama nuo %s"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
#, javascript-format
msgid "%s Connecting"
msgstr "Jungiamasi prie %s"
#. Translators: this is for network connections that require some kind of key or password; %s is a network identifier
#: js/ui/status/network.js:475
#: js/ui/status/network.js:486
#, javascript-format
msgid "%s Requires Authentication"
msgstr "%s reikalauja patvirtinti tapatybę"
#. Translators: this is for devices that require some kind of firmware or kernel
#. module, which is missing; %s is a network identifier
#: js/ui/status/network.js:483
#: js/ui/status/network.js:494
#, javascript-format
msgid "Firmware Missing For %s"
msgstr "%s trūksta integruotos programinės įrangos"
#. Translators: this is for a network device that cannot be activated (for example it
#. is disabled by rfkill, or it has no coverage; %s is a network identifier
#: js/ui/status/network.js:487
#: js/ui/status/network.js:498
#, javascript-format
msgid "%s Unavailable"
msgstr "%s nepasiekiamas"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:490
#: js/ui/status/network.js:501
#, javascript-format
msgid "%s Connection Failed"
msgstr "Nepavyko prisijungti prie %s"
#: js/ui/status/network.js:506
#: js/ui/status/network.js:517
msgid "Wired Settings"
msgstr "Laidinio ryšio nustatymai"
#: js/ui/status/network.js:548
#: js/ui/status/network.js:559
msgid "Mobile Broadband Settings"
msgstr "Mobiliojo plačiajuosčio tinklo nustatymai"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
#, javascript-format
msgid "%s Hardware Disabled"
msgstr "%s aparatinė įranga išjungta"
#. Translators: this is for a network device that cannot be activated
#. because it's disabled by rfkill (airplane mode); %s is a network identifier
#: js/ui/status/network.js:595
#: js/ui/status/network.js:606
#, javascript-format
msgid "%s Disabled"
msgstr "%s išjungtas"
#: js/ui/status/network.js:635
#: js/ui/status/network.js:646
msgid "Connect to Internet"
msgstr "Prisijungti prie interneto"
#: js/ui/status/network.js:833
#: js/ui/status/network.js:844
msgid "Airplane Mode is On"
msgstr "Skrydžio veiksena įjungta"
#: js/ui/status/network.js:834
#: js/ui/status/network.js:845
msgid "Wi-Fi is disabled when airplane mode is on."
msgstr "Belaidis ryšys yra išjungta skrydžio veiksenoje."
#: js/ui/status/network.js:835
#: js/ui/status/network.js:846
msgid "Turn Off Airplane Mode"
msgstr "Išjungti skrydžio veikseną"
#: js/ui/status/network.js:844
#: js/ui/status/network.js:855
msgid "Wi-Fi is Off"
msgstr "Belaidžio ryšys išjungtas"
#: js/ui/status/network.js:845
#: js/ui/status/network.js:856
msgid "Wi-Fi needs to be turned on in order to connect to a network."
msgstr "Norint prisijungti prie tinklo reikia įjungti belaidį ryšį."
#: js/ui/status/network.js:846
#: js/ui/status/network.js:857
msgid "Turn On Wi-Fi"
msgstr "Įjungti belaidį ryšį"
#: js/ui/status/network.js:871
#: js/ui/status/network.js:882
msgid "Wi-Fi Networks"
msgstr "Wi-Fi tinklai"
#: js/ui/status/network.js:873
#: js/ui/status/network.js:884
msgid "Select a network"
msgstr "Pasirinkite tinklą"
#: js/ui/status/network.js:903
#: js/ui/status/network.js:914
msgid "No Networks"
msgstr "Nėra tinklų"
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
msgid "Use hardware switch to turn off"
msgstr "Išjungimui naudoti aparatinį jungiklį"
#: js/ui/status/network.js:1191
#: js/ui/status/network.js:1202
msgid "Select Network"
msgstr "Pasirinkite tinklą"
#: js/ui/status/network.js:1197
#: js/ui/status/network.js:1208
msgid "Wi-Fi Settings"
msgstr "Belaidžio ryšio nustatymai"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1316
#: js/ui/status/network.js:1327
#, javascript-format
msgid "%s Hotspot Active"
msgstr "Prieigos taškas %s aktyvus"
#. Translators: %s is a network identifier
#: js/ui/status/network.js:1331
#: js/ui/status/network.js:1342
#, javascript-format
msgid "%s Not Connected"
msgstr "Neprisijungta prie %s"
#: js/ui/status/network.js:1435
#: js/ui/status/network.js:1446
msgid "connecting…"
msgstr "jungiamasi…"
#. Translators: this is for network connections that require some kind of key or password
#: js/ui/status/network.js:1438
#: js/ui/status/network.js:1449
msgid "authentication required"
msgstr "reikia patvirtinti tapatybę"
#: js/ui/status/network.js:1440
#: js/ui/status/network.js:1451
msgid "connection failed"
msgstr "nepavyko prisijungti"
#: js/ui/status/network.js:1494
msgid "VPN Settings"
msgstr "VPN nustatymai"
#: js/ui/status/network.js:1498
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1508
msgid "VPN Off"
msgstr "VPN išjungtas"
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
#: js/ui/status/network.js:1517 js/ui/status/network.js:1612
#: js/ui/status/rfkill.js:93
msgid "Network Settings"
msgstr "Tinklo nustatymai"
#: js/ui/status/network.js:1603
#: js/ui/status/network.js:1519
msgid "VPN Settings"
msgstr "VPN nustatymai"
#: js/ui/status/network.js:1538
msgid "VPN"
msgstr "VPN"
#: js/ui/status/network.js:1548
msgid "VPN Off"
msgstr "VPN išjungtas"
#: js/ui/status/network.js:1643
#, javascript-format
msgid "%s Wired Connection"
msgid_plural "%s Wired Connections"
@@ -1798,7 +1708,7 @@ msgstr[0] "%s laidinis ryšys"
msgstr[1] "%s laidiniai ryšiai"
msgstr[2] "%s laidinių ryšių"
#: js/ui/status/network.js:1607
#: js/ui/status/network.js:1647
#, javascript-format
msgid "%s Wi-Fi Connection"
msgid_plural "%s Wi-Fi Connections"
@@ -1806,7 +1716,7 @@ msgstr[0] "%s belaidis ryšys"
msgstr[1] "%s belaidžiai ryšiai"
msgstr[2] "%s belaidžių ryšių"
#: js/ui/status/network.js:1611
#: js/ui/status/network.js:1651
#, javascript-format
msgid "%s Modem Connection"
msgid_plural "%s Modem Connections"
@@ -1814,11 +1724,11 @@ msgstr[0] "%s modemo ryšys"
msgstr[1] "%s modemo ryšiai"
msgstr[2] "%s modemo ryšių"
#: js/ui/status/network.js:1759
#: js/ui/status/network.js:1799
msgid "Connection failed"
msgstr "Nepavyko prisijungti"
#: js/ui/status/network.js:1760
#: js/ui/status/network.js:1800
msgid "Activation of network connection failed"
msgstr "Tinklo ryšio nepavyko aktyvuoti"
@@ -1876,27 +1786,27 @@ msgstr "%d%%"
msgid "Airplane Mode On"
msgstr "Skrydžio veiksena įjungta"
#: js/ui/status/system.js:228
#: js/ui/status/system.js:384
msgid "Switch User"
msgstr "Keisti naudotoją"
#: js/ui/status/system.js:240
#: js/ui/status/system.js:389
msgid "Log Out"
msgstr "Atsijungti"
#: js/ui/status/system.js:252
#: js/ui/status/system.js:394
msgid "Account Settings"
msgstr "Paskyros nustatymai"
#: js/ui/status/system.js:269
#: js/ui/status/system.js:411
msgid "Orientation Lock"
msgstr "Padėties užrakinimas"
#: js/ui/status/system.js:295
#: js/ui/status/system.js:419
msgid "Suspend"
msgstr "Pristabdyti"
#: js/ui/status/system.js:305
#: js/ui/status/system.js:422
msgid "Power Off"
msgstr "Išjungti"
@@ -1908,35 +1818,6 @@ msgstr "Garsumas pakeistas"
msgid "Volume"
msgstr "Garsumas"
#. Translators: this is for display mirroring i.e. cloning.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:21
#| msgid "Error"
msgid "Mirror"
msgstr "Veidrodis"
#. Translators: this is for the desktop spanning displays.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:26
msgid "Join Displays"
msgstr "Sujungti vaizduoklius"
#. Translators: this is for using only an external display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:31
msgid "External Only"
msgstr "Tik išorinis"
#. Translators: this is for using only the laptop display.
#. * Try to keep it under around 15 characters.
#.
#: js/ui/switchMonitor.js:36
msgid "Built-in Only"
msgstr "Tik vidinis"
#: js/ui/unlockDialog.js:67
msgid "Log in as another user"
msgstr "Prisijungti kitu naudotoju"
@@ -1945,11 +1826,11 @@ msgstr "Prisijungti kitu naudotoju"
msgid "Unlock Window"
msgstr "Atrakinimo langas"
#: js/ui/viewSelector.js:190
#: js/ui/viewSelector.js:183
msgid "Applications"
msgstr "Programos"
#: js/ui/viewSelector.js:194
#: js/ui/viewSelector.js:187
msgid "Search"
msgstr "Ieškoti"
@@ -1958,22 +1839,22 @@ msgstr "Ieškoti"
msgid "“%s” is ready"
msgstr "„%s“ yra pasirengusi"
#: js/ui/windowManager.js:72
#: js/ui/windowManager.js:71
msgid "Do you want to keep these display settings?"
msgstr "Ar norite įrašyti šiuos vaizduoklio nustatymus?"
#. Translators: this and the following message should be limited in lenght,
#. to avoid ellipsizing the labels.
#.
#: js/ui/windowManager.js:84
#: js/ui/windowManager.js:83
msgid "Revert Settings"
msgstr "Grąžinti nustatymus"
#: js/ui/windowManager.js:87
#: js/ui/windowManager.js:86
msgid "Keep Changes"
msgstr "Įrašyti pakeitimus"
#: js/ui/windowManager.js:105
#: js/ui/windowManager.js:104
#, javascript-format
msgid "Settings changes will revert in %d second"
msgid_plural "Settings changes will revert in %d seconds"
@@ -1983,7 +1864,7 @@ msgstr[2] "Pakeitimai bus grąžinti po %d sekundžių"
#. Translators: This represents the size of a window. The first number is
#. * the width of the window and the second is the height.
#: js/ui/windowManager.js:660
#: js/ui/windowManager.js:659
#, javascript-format
msgid "%d × %d"
msgstr "%d × %d"
@@ -2061,19 +1942,19 @@ msgstr "Evolution kalendorius"
msgid "evolution"
msgstr "evolution"
#: src/main.c:380
#: src/main.c:372
msgid "Print version"
msgstr "Išvesti versijos numerį"
#: src/main.c:386
#: src/main.c:378
msgid "Mode used by GDM for login screen"
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
#: src/main.c:392
#: src/main.c:384
msgid "Use a specific mode, e.g. “gdm” for login screen"
msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
#: src/main.c:398
#: src/main.c:390
msgid "List possible modes"
msgstr "Išvardinti galimas veiksenas"
@@ -2123,12 +2004,6 @@ msgstr[2] "%u įvesčių"
msgid "System Sounds"
msgstr "Sistemos garsai"
#~ msgid "Hide tray"
#~ msgstr "Slėpti dėklą"
#~ msgid "Status Icons"
#~ msgstr "Būsenos piktogramos"
#~ msgid "Events"
#~ msgstr "Įvykiai"

577
po/lv.po

File diff suppressed because it is too large Load Diff

3132
po/ml.po

File diff suppressed because it is too large Load Diff

View File

@@ -1931,7 +1931,7 @@ msgstr "इभोल्युसन पात्रो"
#. Translators: Do NOT translate or transliterate this text (this is an icon file name)!
#: src/calendar-server/evolution-calendar.desktop.in:6
msgid "evolution"
msgstr "evolution"
msgstr "इभोल्युसन"
#: src/main.c:372
msgid "Print version"

1102
po/nl.po

File diff suppressed because it is too large Load Diff

772
po/pa.po

File diff suppressed because it is too large Load Diff

576
po/pl.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

582
po/ru.po

File diff suppressed because it is too large Load Diff

583
po/sk.po

File diff suppressed because it is too large Load Diff

598
po/sl.po

File diff suppressed because it is too large Load Diff

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