Compare commits
185 Commits
wip/fmuell
...
3.26.2
Author | SHA1 | Date | |
---|---|---|---|
6dd973be12 | |||
98be314e64 | |||
c0ef30d416 | |||
fd103ff703 | |||
49c144a64c | |||
2c2479581a | |||
f15650e060 | |||
78d58deb5a | |||
f4237a4ae7 | |||
40616015e5 | |||
43ec5280b4 | |||
5f8a511483 | |||
f036786d4a | |||
bf2a824fd1 | |||
d439456048 | |||
4543ca1620 | |||
7da5a76aaa | |||
0b02f757f8 | |||
1939e22c22 | |||
8143f734f8 | |||
156032a7ec | |||
5c37facc08 | |||
59fc26f821 | |||
9822c4c1d6 | |||
1510640067 | |||
15f0e05db4 | |||
e2ecae466b | |||
f453b3780f | |||
b5f5a594ba | |||
6321bbb773 | |||
3eb80dc6c0 | |||
023b50e7a7 | |||
9a7dbfba99 | |||
a7021f993d | |||
1ef8722c52 | |||
ce7ff27c0c | |||
de4c0bdca6 | |||
ab0e98dfdd | |||
2ae63691e9 | |||
9ecacdbded | |||
9d01828b5b | |||
7f381dd2fe | |||
fcdb73752e | |||
ec9b2cef7d | |||
18f36b68ee | |||
f88e963edf | |||
6ecbaac0a8 | |||
7015bb2ca9 | |||
703187e996 | |||
d86a4dc43b | |||
f5a28c2f24 | |||
9f0bb526f7 | |||
80151a7d64 | |||
5a414fff44 | |||
2d11b5cea0 | |||
ecddf1fffd | |||
90c55e1977 | |||
8331436ab3 | |||
289f982949 | |||
e914d11a5f | |||
e5ed0ab60f | |||
5ec0ad4e9c | |||
bddc2c0016 | |||
56f4ce37cd | |||
053b8da89c | |||
c9d5677c2f | |||
6ab9c56d05 | |||
e90d6dceab | |||
82435450b9 | |||
389091a05c | |||
d4a76429ae | |||
5068b275fa | |||
de694f47c8 | |||
31959cbb04 | |||
fa14b3b115 | |||
6fc5b0477b | |||
96e14dcbe7 | |||
6914f8fb32 | |||
24a8b12e8b | |||
5b39afc32f | |||
fa60c95639 | |||
f9e632e99b | |||
bb89c04611 | |||
729a17bd2d | |||
9dcffda3df | |||
1e4e33a183 | |||
82013d59ec | |||
d3e95735ec | |||
d8b6f2294a | |||
8af1d195d3 | |||
d82d862547 | |||
9cc143aaee | |||
9912d22901 | |||
62bb4f4db6 | |||
921b2a9c21 | |||
d40af89df6 | |||
29d37d4fd5 | |||
68854f6d0a | |||
7031d021f4 | |||
a02399eea4 | |||
accad67e1f | |||
d9631fe109 | |||
df8d797bc4 | |||
23b3476105 | |||
ddbdfa82f2 | |||
88cd943c3d | |||
e717779651 | |||
f7d6d1db72 | |||
06a758f903 | |||
3b81465d32 | |||
75574fbd6a | |||
fdaa01a00c | |||
d78d754d01 | |||
52f604757c | |||
595065b420 | |||
b4b1caf5a3 | |||
9c3b3320f8 | |||
7d95275076 | |||
e8a2c06e4e | |||
b35dfc8914 | |||
c899453800 | |||
2339351499 | |||
63bd6efae4 | |||
f2a9467f91 | |||
0ad9c51d9b | |||
b2b2f65214 | |||
b5d3c4e165 | |||
5c3de58279 | |||
093b73b616 | |||
5067ac1598 | |||
f794b6c522 | |||
709aa011aa | |||
ebda516aef | |||
7253c9b06a | |||
96c2db6c20 | |||
5dd861dff0 | |||
1532ac3726 | |||
c42f5e2b1e | |||
090063a1cc | |||
9fc6caeffb | |||
79eedd93ab | |||
d903978937 | |||
b8eeac6fcf | |||
5a621c57ef | |||
11e71845d2 | |||
7992d7c9b3 | |||
86995d724e | |||
b0d21c3a37 | |||
6d704cddea | |||
1518a778ed | |||
41c57695a8 | |||
44bb0f6a95 | |||
abe0ff4f62 | |||
4b1ba2c05c | |||
cf010cfd8f | |||
f96b0d43fa | |||
f1ee6c69d7 | |||
7f2101d2a0 | |||
6c472d8889 | |||
6816aea906 | |||
1218e68b93 | |||
b3b30f239d | |||
4fd5eee2c6 | |||
64bbad1bac | |||
8a911cdb5d | |||
2d849759c8 | |||
56c28fbb03 | |||
e39f4ec0d6 | |||
1095489cee | |||
d587ba712c | |||
1be5b67f45 | |||
b03e00dbee | |||
a93b262e8f | |||
e8e51c05d5 | |||
56a6073729 | |||
5723fccf32 | |||
31597c5a41 | |||
5eabb45ff4 | |||
62901cac58 | |||
508e3e518e | |||
c067b07185 | |||
814e9bbe96 | |||
619a69d53c | |||
7b60d36181 | |||
cdc9d2c26f |
18
.gitignore
vendored
18
.gitignore
vendored
@ -6,16 +6,8 @@
|
||||
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
|
||||
@ -41,15 +33,9 @@ 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
|
||||
@ -58,7 +44,6 @@ po/*.header
|
||||
po/*.sed
|
||||
po/*.sin
|
||||
po/.intltool-merge-cache
|
||||
po/Makefile.in.in
|
||||
po/Makevars.template
|
||||
po/POTFILES
|
||||
po/Rules-quot
|
||||
@ -68,8 +53,6 @@ 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
|
||||
@ -93,7 +76,6 @@ 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
4
.gitmodules
vendored
@ -1,6 +1,6 @@
|
||||
[submodule "data/theme/gnome-shell-sass"]
|
||||
path = data/theme/gnome-shell-sass
|
||||
url = git://git.gnome.org/gnome-shell-sass
|
||||
url = https://git.gnome.org/browse/gnome-shell-sass
|
||||
[submodule "subprojects/gvc"]
|
||||
path = subprojects/gvc
|
||||
url = git://git.gnome.org/libgnome-volume-control
|
||||
url = https://git.gnome.org/browse/libgnome-volume-control
|
||||
|
33
Makefile.am
33
Makefile.am
@ -1,33 +0,0 @@
|
||||
# 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
|
98
NEWS
98
NEWS
@ -1,3 +1,101 @@
|
||||
3.26.2
|
||||
======
|
||||
* Dump javascript stack on aborts, traps and segfaults [Marco; #789237]
|
||||
* Misc. bug fixes [Jonas, Florian, Alessandro; #788607, #789018, #789231,
|
||||
#788542, #789103]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Alessandro Bono, Florian Müllner, Marco Trevisan (Treviño)
|
||||
|
||||
Translations:
|
||||
Xavi Ivars [ca@valencia], Fabio Tomat [fur], Matej Urbančič [sl],
|
||||
Hannie Dumoleyn [nl]
|
||||
|
||||
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
35
autogen.sh
@ -1,35 +0,0 @@
|
||||
#!/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
|
@ -1,23 +0,0 @@
|
||||
|
||||
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
Executable file
158
configure
vendored
Executable file
@ -0,0 +1,158 @@
|
||||
#!/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
280
configure.ac
@ -1,280 +0,0 @@
|
||||
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=1
|
||||
|
||||
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
136
data/Makefile.am
@ -1,136 +0,0 @@
|
||||
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)
|
@ -9,6 +9,8 @@
|
||||
<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>
|
||||
@ -18,6 +20,7 @@
|
||||
<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>
|
||||
|
@ -78,11 +78,18 @@ install_data('50-gnome-shell-system.xml', install_dir: keysdir)
|
||||
|
||||
schemaconf = configuration_data()
|
||||
schemaconf.set('GETTEXT_PACKAGE', meson.project_name())
|
||||
configure_file(
|
||||
schema = 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)
|
||||
|
81
data/theme/close-window-active.svg
Normal file
81
data/theme/close-window-active.svg
Normal file
@ -0,0 +1,81 @@
|
||||
<?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>
|
After Width: | Height: | Size: 4.6 KiB |
81
data/theme/close-window-hover.svg
Normal file
81
data/theme/close-window-hover.svg
Normal file
@ -0,0 +1,81 @@
|
||||
<?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>
|
After Width: | Height: | Size: 4.6 KiB |
@ -7,7 +7,6 @@
|
||||
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"
|
||||
@ -16,137 +15,71 @@
|
||||
y="0px"
|
||||
width="32"
|
||||
height="32"
|
||||
viewBox="0 0 23.272727 23.272727"
|
||||
viewBox="0 0 32 32"
|
||||
enable-background="new 0 0 16 16"
|
||||
xml:space="preserve"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.48+devel r10081 custom"
|
||||
inkscape:version="0.92.2 5c3e80d, 2017-08-06"
|
||||
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 /></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>
|
||||
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>
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 5.3 KiB |
@ -647,7 +647,7 @@ StScrollBar {
|
||||
border: 1px solid #215d9c; }
|
||||
|
||||
.tile-preview-left.on-primary {
|
||||
border-radius: 6px 6px 0 0; }
|
||||
border-radius: 6px 0 0 0; }
|
||||
|
||||
.tile-preview-right.on-primary {
|
||||
border-radius: 0 6px 0 0; }
|
||||
@ -657,7 +657,7 @@ StScrollBar {
|
||||
|
||||
/* TOP BAR */
|
||||
#panel {
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
background-color: rgba(0, 0, 0, 0.35);
|
||||
/* transition from solid to transparent */
|
||||
transition-duration: 500ms;
|
||||
font-weight: bold;
|
||||
@ -668,7 +668,7 @@ StScrollBar {
|
||||
spacing: 4px; }
|
||||
#panel .panel-corner {
|
||||
-panel-corner-radius: 6px;
|
||||
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
|
||||
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
|
||||
-panel-corner-border-width: 2px;
|
||||
-panel-corner-border-color: transparent; }
|
||||
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
|
||||
@ -682,7 +682,7 @@ StScrollBar {
|
||||
-minimum-hpadding: 6px;
|
||||
font-weight: bold;
|
||||
color: #eee;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
|
||||
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
|
||||
transition-duration: 100ms; }
|
||||
#panel .panel-button .app-menu-icon {
|
||||
-st-icon-style: symbolic;
|
||||
@ -691,14 +691,14 @@ StScrollBar {
|
||||
#panel .panel-button .system-status-icon,
|
||||
#panel .panel-button .app-menu-icon > StIcon,
|
||||
#panel .panel-button .popup-menu-arrow {
|
||||
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
|
||||
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); }
|
||||
#panel .panel-button:hover {
|
||||
color: white;
|
||||
text-shadow: 0px 0px 8px black; }
|
||||
text-shadow: 0px 1px 6px 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 0px 8px black; }
|
||||
icon-shadow: 0px 1px 6px 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 +918,17 @@ StScrollBar {
|
||||
background-color: #0d0d0d; }
|
||||
|
||||
.message-icon-bin {
|
||||
padding: 10px 3px 10px 10px; }
|
||||
padding: 0.68em 0.2em 0.68em 0.68em; }
|
||||
.message-icon-bin:rtl {
|
||||
padding: 10px 10px 10px 3px; }
|
||||
padding: 0.68em 0.68em 0.68em 0.2em; }
|
||||
|
||||
.message-icon-bin > StIcon {
|
||||
color: #cccccc;
|
||||
icon-size: 16px;
|
||||
icon-size: 1.09em;
|
||||
-st-icon-style: symbolic; }
|
||||
|
||||
.message-secondary-bin {
|
||||
padding: 0 12px; }
|
||||
padding: 0 0.82em; }
|
||||
|
||||
.message-secondary-bin > .event-time {
|
||||
color: #999999;
|
||||
@ -938,7 +938,7 @@ StScrollBar {
|
||||
padding-bottom: 0.13em; }
|
||||
|
||||
.message-secondary-bin > StIcon {
|
||||
icon-size: 16px; }
|
||||
icon-size: 1.09em; }
|
||||
|
||||
.message-title {
|
||||
color: #f2f2f2; }
|
||||
@ -1025,12 +1025,12 @@ StScrollBar {
|
||||
background-image: url("resource:///org/gnome/shell/theme/close-window.svg");
|
||||
background-size: 32px;
|
||||
height: 32px;
|
||||
width: 32px; }
|
||||
|
||||
.window-close {
|
||||
width: 32px;
|
||||
-shell-close-overlap: 16px; }
|
||||
.window-close:rtl {
|
||||
-st-background-image-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); }
|
||||
.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"); }
|
||||
|
||||
/* NETWORK DIALOGS */
|
||||
.nm-dialog {
|
||||
@ -1094,13 +1094,11 @@ StScrollBar {
|
||||
padding-bottom: 32px; }
|
||||
|
||||
.window-picker {
|
||||
-horizontal-spacing: 32px;
|
||||
-vertical-spacing: 32px;
|
||||
padding-left: 32px;
|
||||
padding-right: 32px;
|
||||
padding-bottom: 48px; }
|
||||
-horizontal-spacing: 16px;
|
||||
-vertical-spacing: 16px;
|
||||
padding: 0 16px 16px; }
|
||||
.window-picker.external-monitor {
|
||||
padding: 32px; }
|
||||
padding: 16px; }
|
||||
|
||||
.window-clone-border {
|
||||
border: 4px solid #215d9c;
|
||||
@ -1109,14 +1107,10 @@ StScrollBar {
|
||||
|
||||
.window-caption {
|
||||
spacing: 25px;
|
||||
color: #eeeeec;
|
||||
background-color: rgba(46, 52, 54, 0.7);
|
||||
color: #ffffff;
|
||||
background-color: #215d9c;
|
||||
border-radius: 8px;
|
||||
padding: 4px 12px;
|
||||
-shell-caption-spacing: 12px; }
|
||||
.window-caption:hover {
|
||||
background-color: #215d9c;
|
||||
color: #ffffff; }
|
||||
padding: 4px 12px; }
|
||||
|
||||
.search-entry {
|
||||
width: 320px;
|
||||
@ -1216,6 +1210,12 @@ 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; }
|
||||
|
||||
@ -1339,6 +1339,10 @@ StScrollBar {
|
||||
border-radius: 9px 0 0 9px; }
|
||||
.workspace-thumbnails:rtl {
|
||||
border-radius: 0 9px 9px 0; }
|
||||
.workspace-thumbnails .placeholder {
|
||||
background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
|
||||
background-size: contain;
|
||||
height: 24px; }
|
||||
|
||||
.workspace-thumbnail-indicator {
|
||||
border: 4px solid #215d9c;
|
||||
@ -1485,38 +1489,6 @@ 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 {
|
||||
|
Submodule data/theme/gnome-shell-sass updated: 70e3ae3873...32361ac692
@ -647,7 +647,7 @@ StScrollBar {
|
||||
border: 1px solid #215d9c; }
|
||||
|
||||
.tile-preview-left.on-primary {
|
||||
border-radius: 6px 6px 0 0; }
|
||||
border-radius: 6px 0 0 0; }
|
||||
|
||||
.tile-preview-right.on-primary {
|
||||
border-radius: 0 6px 0 0; }
|
||||
@ -657,7 +657,7 @@ StScrollBar {
|
||||
|
||||
/* TOP BAR */
|
||||
#panel {
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
background-color: rgba(0, 0, 0, 0.35);
|
||||
/* transition from solid to transparent */
|
||||
transition-duration: 500ms;
|
||||
font-weight: bold;
|
||||
@ -668,7 +668,7 @@ StScrollBar {
|
||||
spacing: 4px; }
|
||||
#panel .panel-corner {
|
||||
-panel-corner-radius: 6px;
|
||||
-panel-corner-background-color: rgba(0, 0, 0, 0.2);
|
||||
-panel-corner-background-color: rgba(0, 0, 0, 0.35);
|
||||
-panel-corner-border-width: 2px;
|
||||
-panel-corner-border-color: transparent; }
|
||||
#panel .panel-corner:active, #panel .panel-corner:overview, #panel .panel-corner:focus {
|
||||
@ -682,7 +682,7 @@ StScrollBar {
|
||||
-minimum-hpadding: 6px;
|
||||
font-weight: bold;
|
||||
color: #eee;
|
||||
text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9);
|
||||
text-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9);
|
||||
transition-duration: 100ms; }
|
||||
#panel .panel-button .app-menu-icon {
|
||||
-st-icon-style: symbolic;
|
||||
@ -691,14 +691,14 @@ StScrollBar {
|
||||
#panel .panel-button .system-status-icon,
|
||||
#panel .panel-button .app-menu-icon > StIcon,
|
||||
#panel .panel-button .popup-menu-arrow {
|
||||
icon-shadow: 0px 0px 2px rgba(0, 0, 0, 0.9); }
|
||||
icon-shadow: 0px 1px 2px rgba(0, 0, 0, 0.9); }
|
||||
#panel .panel-button:hover {
|
||||
color: white;
|
||||
text-shadow: 0px 0px 8px black; }
|
||||
text-shadow: 0px 1px 6px 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 0px 8px black; }
|
||||
icon-shadow: 0px 1px 6px 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 +918,17 @@ StScrollBar {
|
||||
background-color: #454c4c; }
|
||||
|
||||
.message-icon-bin {
|
||||
padding: 10px 3px 10px 10px; }
|
||||
padding: 0.68em 0.2em 0.68em 0.68em; }
|
||||
.message-icon-bin:rtl {
|
||||
padding: 10px 10px 10px 3px; }
|
||||
padding: 0.68em 0.68em 0.68em 0.2em; }
|
||||
|
||||
.message-icon-bin > StIcon {
|
||||
color: #bebeb6;
|
||||
icon-size: 16px;
|
||||
icon-size: 1.09em;
|
||||
-st-icon-style: symbolic; }
|
||||
|
||||
.message-secondary-bin {
|
||||
padding: 0 12px; }
|
||||
padding: 0 0.82em; }
|
||||
|
||||
.message-secondary-bin > .event-time {
|
||||
color: #8e8e80;
|
||||
@ -938,7 +938,7 @@ StScrollBar {
|
||||
padding-bottom: 0.13em; }
|
||||
|
||||
.message-secondary-bin > StIcon {
|
||||
icon-size: 16px; }
|
||||
icon-size: 1.09em; }
|
||||
|
||||
.message-title {
|
||||
color: #e2e2df; }
|
||||
@ -1025,12 +1025,12 @@ StScrollBar {
|
||||
background-image: url("resource:///org/gnome/shell/theme/close-window.svg");
|
||||
background-size: 32px;
|
||||
height: 32px;
|
||||
width: 32px; }
|
||||
|
||||
.window-close {
|
||||
width: 32px;
|
||||
-shell-close-overlap: 16px; }
|
||||
.window-close:rtl {
|
||||
-st-background-image-shadow: 2px 2px 6px rgba(0, 0, 0, 0.5); }
|
||||
.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"); }
|
||||
|
||||
/* NETWORK DIALOGS */
|
||||
.nm-dialog {
|
||||
@ -1094,13 +1094,11 @@ StScrollBar {
|
||||
padding-bottom: 32px; }
|
||||
|
||||
.window-picker {
|
||||
-horizontal-spacing: 32px;
|
||||
-vertical-spacing: 32px;
|
||||
padding-left: 32px;
|
||||
padding-right: 32px;
|
||||
padding-bottom: 48px; }
|
||||
-horizontal-spacing: 16px;
|
||||
-vertical-spacing: 16px;
|
||||
padding: 0 16px 16px; }
|
||||
.window-picker.external-monitor {
|
||||
padding: 32px; }
|
||||
padding: 16px; }
|
||||
|
||||
.window-clone-border {
|
||||
border: 4px solid #215d9c;
|
||||
@ -1109,14 +1107,10 @@ StScrollBar {
|
||||
|
||||
.window-caption {
|
||||
spacing: 25px;
|
||||
color: #eeeeec;
|
||||
background-color: rgba(46, 52, 54, 0.7);
|
||||
color: #ffffff;
|
||||
background-color: #215d9c;
|
||||
border-radius: 8px;
|
||||
padding: 4px 12px;
|
||||
-shell-caption-spacing: 12px; }
|
||||
.window-caption:hover {
|
||||
background-color: #215d9c;
|
||||
color: #ffffff; }
|
||||
padding: 4px 12px; }
|
||||
|
||||
.search-entry {
|
||||
width: 320px;
|
||||
@ -1216,6 +1210,12 @@ 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; }
|
||||
|
||||
@ -1339,6 +1339,10 @@ StScrollBar {
|
||||
border-radius: 9px 0 0 9px; }
|
||||
.workspace-thumbnails:rtl {
|
||||
border-radius: 0 9px 9px 0; }
|
||||
.workspace-thumbnails .placeholder {
|
||||
background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
|
||||
background-size: contain;
|
||||
height: 24px; }
|
||||
|
||||
.workspace-thumbnail-indicator {
|
||||
border: 4px solid #215d9c;
|
||||
@ -1485,38 +1489,6 @@ 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 {
|
||||
|
40
data/theme/message-indicator-symbolic.svg
Normal file
40
data/theme/message-indicator-symbolic.svg
Normal file
@ -0,0 +1,40 @@
|
||||
<?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>
|
After Width: | Height: | Size: 1.3 KiB |
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/sh
|
||||
#!/bin/sh
|
||||
|
||||
srcdir=`dirname $0`
|
||||
stamp=${1}
|
||||
|
@ -1 +0,0 @@
|
||||
SUBDIRS = reference
|
@ -1 +0,0 @@
|
||||
SUBDIRS = shell st
|
@ -1,139 +0,0 @@
|
||||
## 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
|
@ -1,104 +0,0 @@
|
||||
## 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
|
@ -1,39 +0,0 @@
|
||||
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)
|
@ -17,23 +17,23 @@ const ShellEntry = imports.ui.shellEntry;
|
||||
const SmartcardManager = imports.misc.smartcardManager;
|
||||
const Tweener = imports.ui.tweener;
|
||||
|
||||
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 PASSWORD_SERVICE_NAME = 'gdm-password';
|
||||
var FINGERPRINT_SERVICE_NAME = 'gdm-fingerprint';
|
||||
var SMARTCARD_SERVICE_NAME = 'gdm-smartcard';
|
||||
var OVIRT_SERVICE_NAME = 'gdm-ovirtcred';
|
||||
var FADE_ANIMATION_TIME = 0.16;
|
||||
var CLONE_FADE_ANIMATION_TIME = 0.25;
|
||||
|
||||
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 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 LOGO_KEY = 'logo';
|
||||
const DISABLE_USER_LIST_KEY = 'disable-user-list';
|
||||
var LOGO_KEY = 'logo';
|
||||
var DISABLE_USER_LIST_KEY = 'disable-user-list';
|
||||
|
||||
// Give user 48ms to read each character of a PAM message
|
||||
var USER_READ_TIME = 48
|
||||
|
@ -25,6 +25,7 @@
|
||||
<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>
|
||||
|
||||
@ -64,7 +65,6 @@
|
||||
<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,6 +96,7 @@
|
||||
<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>
|
||||
|
@ -119,7 +119,13 @@ var LoginManagerSystemd = new Lang.Class({
|
||||
return;
|
||||
}
|
||||
|
||||
this._proxy.GetSessionRemote(GLib.getenv('XDG_SESSION_ID'), Lang.bind(this,
|
||||
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,
|
||||
function(result, error) {
|
||||
if (error) {
|
||||
logError(error, 'Could not get a proxy for the current session');
|
||||
|
440
js/misc/systemActions.js
Normal file
440
js/misc/systemActions.js
Normal file
@ -0,0 +1,440 @@
|
||||
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();
|
||||
}
|
||||
});
|
@ -158,7 +158,10 @@ var AppSwitcherPopup = new Lang.Class({
|
||||
|
||||
_keyPressHandler: function(keysym, action) {
|
||||
if (action == Meta.KeyBindingAction.SWITCH_GROUP) {
|
||||
this._select(this._selectedIndex, this._nextWindow());
|
||||
if (!this._thumbnailsFocused)
|
||||
this._select(this._selectedIndex, 0);
|
||||
else
|
||||
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) {
|
||||
|
@ -24,8 +24,11 @@ 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;
|
||||
@ -1085,19 +1088,35 @@ 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 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);
|
||||
}
|
||||
});
|
||||
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 });
|
||||
}
|
||||
}
|
||||
|
||||
callback(metas);
|
||||
},
|
||||
|
||||
@ -1119,6 +1138,9 @@ var AppSearchProvider = new Lang.Class({
|
||||
return usage.compare('', a, b);
|
||||
}));
|
||||
});
|
||||
|
||||
results = results.concat(this._systemActions.getMatchingActions(terms));
|
||||
|
||||
callback(results);
|
||||
},
|
||||
|
||||
@ -1127,8 +1149,10 @@ var AppSearchProvider = new Lang.Class({
|
||||
},
|
||||
|
||||
createResultObject: function (resultMeta) {
|
||||
let app = this._appSys.lookup_app(resultMeta['id']);
|
||||
return new AppIcon(app);
|
||||
if (resultMeta.id.endsWith('.desktop'))
|
||||
return new AppIcon(this._appSys.lookup_app(resultMeta['id']));
|
||||
else
|
||||
return new SystemActionIcon(this, resultMeta);
|
||||
}
|
||||
});
|
||||
|
||||
@ -1172,13 +1196,9 @@ 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;
|
||||
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 });
|
||||
}
|
||||
let bin = new St.Bin({ width: subSize, height: subSize });
|
||||
if (i < numItems)
|
||||
bin.child = this._allItems[i].app.create_icon_texture(subSize);
|
||||
layout.attach(bin, rtl ? (i + 1) % 2 : i % 2, Math.floor(i / 2), 1, 1);
|
||||
}
|
||||
|
||||
@ -1987,3 +2007,13 @@ 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();
|
||||
}
|
||||
});
|
||||
|
@ -11,6 +11,7 @@ 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',
|
||||
|
@ -587,7 +587,10 @@ 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 monitor = Main.layoutManager.findMonitorForActor(this.actor);
|
||||
let monitorActor = this.sourceActor;
|
||||
if (!monitorActor)
|
||||
monitorActor = this.actor;
|
||||
let monitor = Main.layoutManager.findMonitorForActor(monitorActor);
|
||||
|
||||
switch (arrowSide) {
|
||||
case St.Side.TOP:
|
||||
|
@ -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 = 16;
|
||||
var MESSAGE_ICON_SIZE = -1; // pick up from CSS
|
||||
|
||||
// alias to prevent xgettext from picking up strings translated in GTK+
|
||||
const gtk30_ = Gettext_gtk30.gettext;
|
||||
@ -428,6 +428,13 @@ 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;
|
||||
|
@ -255,7 +255,11 @@ var AutorunDispatcher = new Lang.Class({
|
||||
if (!shouldAutorunMount(mount))
|
||||
return;
|
||||
|
||||
let setting = this._getAutorunSettingForType(contentTypes[0]);
|
||||
let setting;
|
||||
if (contentTypes.length > 0)
|
||||
setting = this._getAutorunSettingForType(contentTypes[0]);
|
||||
else
|
||||
setting = AutorunSetting.ASK;
|
||||
|
||||
// check at the settings for the first content type
|
||||
// to see whether we should ask
|
||||
|
@ -22,6 +22,7 @@ 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();
|
||||
@ -233,11 +234,18 @@ var WeatherSection = new Lang.Class({
|
||||
this._sync();
|
||||
},
|
||||
|
||||
_getSummary: function(info) {
|
||||
let summary = info.get_conditions();
|
||||
if (summary == '-')
|
||||
return info.get_sky();
|
||||
return summary;
|
||||
_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);
|
||||
},
|
||||
|
||||
_sameSummary: function(info1, info2) {
|
||||
@ -255,10 +263,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));
|
||||
return '%s.'.format(this._getSummary(info, true));
|
||||
|
||||
let current = info;
|
||||
let summaries = [this._getSummary(info)];
|
||||
let infos = [info];
|
||||
for (let i = 0; i < forecasts.length; i++) {
|
||||
let [ok, timestamp] = forecasts[i].get_value_update();
|
||||
if (!_isToday(new Date(timestamp * 1000)))
|
||||
@ -268,12 +276,12 @@ var WeatherSection = new Lang.Class({
|
||||
continue; // Ignore consecutive runs of equal summaries
|
||||
|
||||
current = forecasts[i];
|
||||
if (summaries.push(this._getSummary(current)) == 3)
|
||||
if (infos.push(current) == 3)
|
||||
break; // Use a maximum of three summaries
|
||||
}
|
||||
|
||||
let fmt;
|
||||
switch(summaries.length) {
|
||||
switch(infos.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
|
||||
@ -292,6 +300,10 @@ 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);
|
||||
},
|
||||
|
||||
@ -328,8 +340,10 @@ var MessagesIndicator = new Lang.Class({
|
||||
Name: 'MessagesIndicator',
|
||||
|
||||
_init: function() {
|
||||
this.actor = new St.Label({ text: '⚫', visible: false, y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER });
|
||||
this.actor = new St.Icon({ icon_name: 'message-indicator-symbolic',
|
||||
icon_size: 16,
|
||||
visible: false, y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER });
|
||||
|
||||
this._sources = [];
|
||||
|
||||
@ -534,6 +548,7 @@ 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();
|
||||
@ -553,6 +568,15 @@ 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;
|
||||
|
@ -15,6 +15,8 @@ var Dialog = new Lang.Class({
|
||||
this.parent({ layout_manager: new Clutter.BinLayout() });
|
||||
this.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||
|
||||
this._initialKeyFocus = null;
|
||||
this._initialKeyFocusDestroyId = 0;
|
||||
this._pressedKey = null;
|
||||
this._buttonKeys = {};
|
||||
this._createDialog();
|
||||
@ -86,6 +88,22 @@ var Dialog = new Lang.Class({
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
|
||||
_setInitialKeyFocus: function(actor) {
|
||||
if (this._initialKeyFocus)
|
||||
this._initialKeyFocus.disconnect(this._initialKeyFocusDestroyId);
|
||||
|
||||
this._initialKeyFocus = actor;
|
||||
|
||||
this._initialKeyFocusDestroyId = actor.connect('destroy', () => {
|
||||
this._initialKeyFocus = null;
|
||||
this._initialKeyFocusDestroyId = 0;
|
||||
});
|
||||
},
|
||||
|
||||
get initialKeyFocus() {
|
||||
return this._initialKeyFocus || this;
|
||||
},
|
||||
|
||||
addContent: function (actor) {
|
||||
this.contentLayout.add (actor, { expand: true });
|
||||
},
|
||||
@ -116,8 +134,8 @@ var Dialog = new Lang.Class({
|
||||
if (isDefault)
|
||||
button.add_style_pseudo_class('default');
|
||||
|
||||
if (!this._initialKeyFocusDestroyId)
|
||||
this._initialKeyFocus = button;
|
||||
if (this._initialKeyFocus == null || isDefault)
|
||||
this._setInitialKeyFocus(button);
|
||||
|
||||
for (let i in keys)
|
||||
this._buttonKeys[keys[i]] = buttonInfo;
|
||||
|
@ -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,6 +94,7 @@ var _Draggable = new Lang.Class({
|
||||
this.disconnectAll();
|
||||
}));
|
||||
this._onEventId = null;
|
||||
this._touchSequence = null;
|
||||
|
||||
this._restoreOnSuccess = params.restoreOnSuccess;
|
||||
this._dragActorMaxSize = params.dragActorMaxSize;
|
||||
@ -530,7 +531,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 = this._dragActor.width / sourceScaledWidth;
|
||||
scale = sourceScaledWidth ? this._dragActor.width / sourceScaledWidth : 0;
|
||||
} else if (this._dragOrigParent) {
|
||||
// Snap the actor back to its original position within
|
||||
// its parent, adjusting for the fact that the parent
|
||||
|
@ -12,6 +12,8 @@ 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({
|
||||
@ -38,6 +40,11 @@ var InhibitShortcutsDialog = new Lang.Class({
|
||||
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] || '';
|
||||
@ -46,9 +53,7 @@ var InhibitShortcutsDialog = new Lang.Class({
|
||||
},
|
||||
|
||||
_buildLayout: function() {
|
||||
let windowTracker = Shell.WindowTracker.get_default();
|
||||
let app = windowTracker.get_window_app(this._window);
|
||||
let name = app ? app.get_name() : this._window.title;
|
||||
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)
|
||||
@ -57,10 +62,10 @@ var InhibitShortcutsDialog = new Lang.Class({
|
||||
|
||||
let contentParams = { icon, title };
|
||||
|
||||
/* Translators: %s is a keyboard shortcut like "Super+x" */
|
||||
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);
|
||||
@ -85,7 +90,10 @@ var InhibitShortcutsDialog = new Lang.Class({
|
||||
},
|
||||
|
||||
vfunc_show: function() {
|
||||
this._dialog.open();
|
||||
if (this._app && APP_WHITELIST.indexOf(this._app.get_id()) != -1)
|
||||
this._emitResponse(DialogResponse.ALLOW);
|
||||
else
|
||||
this._dialog.open();
|
||||
},
|
||||
|
||||
vfunc_hide: function() {
|
||||
|
@ -129,6 +129,9 @@ 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;
|
||||
@ -189,6 +192,7 @@ 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
|
||||
@ -323,7 +327,9 @@ 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 == 1) {
|
||||
if (nMonitors == 0) {
|
||||
this.primaryIndex = this.bottomIndex = -1;
|
||||
} else if (nMonitors == 1) {
|
||||
this.primaryIndex = this.bottomIndex = 0;
|
||||
} else {
|
||||
// If there are monitors below the primary, then we need
|
||||
@ -337,8 +343,18 @@ var LayoutManager = new Lang.Class({
|
||||
}
|
||||
}
|
||||
}
|
||||
this.primaryMonitor = this.monitors[this.primaryIndex];
|
||||
this.bottomMonitor = this.monitors[this.bottomIndex];
|
||||
if (this.primaryIndex != -1) {
|
||||
this.primaryMonitor = this.monitors[this.primaryIndex];
|
||||
this.bottomMonitor = this.monitors[this.bottomIndex];
|
||||
|
||||
if (this._pendingLoadBackground) {
|
||||
this._loadBackground();
|
||||
this._pendingLoadBackground = false;
|
||||
}
|
||||
} else {
|
||||
this.primaryMonitor = null;
|
||||
this.bottomMonitor = null;
|
||||
}
|
||||
},
|
||||
|
||||
_updateHotCorners: function() {
|
||||
@ -458,6 +474,9 @@ 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);
|
||||
|
||||
@ -480,6 +499,9 @@ var LayoutManager = new Lang.Class({
|
||||
this._rightPanelBarrier = null;
|
||||
}
|
||||
|
||||
if (!this.primaryMonitor)
|
||||
return;
|
||||
|
||||
if (this.panelBox.height) {
|
||||
let primary = this.primaryMonitor;
|
||||
|
||||
@ -549,6 +571,10 @@ var LayoutManager = new Lang.Class({
|
||||
},
|
||||
|
||||
_loadBackground: function() {
|
||||
if (!this.primaryMonitor) {
|
||||
this._pendingLoadBackground = true;
|
||||
return;
|
||||
}
|
||||
this._systemBackground = new Background.SystemBackground();
|
||||
this._systemBackground.actor.hide();
|
||||
|
||||
@ -684,8 +710,10 @@ 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,
|
||||
@ -711,6 +739,7 @@ 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,
|
||||
@ -721,6 +750,7 @@ var LayoutManager = new Lang.Class({
|
||||
},
|
||||
|
||||
_hideKeyboardComplete: function() {
|
||||
this.keyboardBox.hide();
|
||||
this._updateRegions();
|
||||
},
|
||||
|
||||
|
@ -1,272 +0,0 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
});
|
@ -20,7 +20,6 @@ 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;
|
||||
@ -56,7 +55,6 @@ var overview = null;
|
||||
var runDialog = null;
|
||||
var lookingGlass = null;
|
||||
var wm = null;
|
||||
var legacyTray = null;
|
||||
var messageTray = null;
|
||||
var screenShield = null;
|
||||
var notificationDaemon = null;
|
||||
@ -124,6 +122,7 @@ 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();
|
||||
@ -169,7 +168,6 @@ 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();
|
||||
|
@ -1205,8 +1205,9 @@ var MessageTray = new Lang.Class({
|
||||
// _updateState() figures out what (if anything) needs to be done
|
||||
// at the present time.
|
||||
_updateState: function() {
|
||||
this.actor.visible = !this._bannerBlocked && this._banner != null;
|
||||
if (this._bannerBlocked)
|
||||
let hasMonitor = Main.layoutManager.primaryMonitor != null;
|
||||
this.actor.visible = !this._bannerBlocked && hasMonitor && this._banner != null;
|
||||
if (this._bannerBlocked || !hasMonitor)
|
||||
return;
|
||||
|
||||
// If our state changes caused _updateState to be called,
|
||||
|
@ -84,7 +84,7 @@ var ModalDialog = new Lang.Class({
|
||||
}
|
||||
|
||||
global.focus_manager.add_group(this.dialogLayout);
|
||||
this._initialKeyFocus = this.dialogLayout;
|
||||
this._initialKeyFocus = null;
|
||||
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 = this.dialogLayout;
|
||||
this._initialKeyFocus = null;
|
||||
this._initialKeyFocusDestroyId = 0;
|
||||
}));
|
||||
},
|
||||
@ -237,7 +237,8 @@ var ModalDialog = new Lang.Class({
|
||||
this._savedKeyFocus.grab_key_focus();
|
||||
this._savedKeyFocus = null;
|
||||
} else {
|
||||
this._initialKeyFocus.grab_key_focus();
|
||||
let focus = this._initialKeyFocus || this.dialogLayout.initialKeyFocus;
|
||||
focus.grab_key_focus();
|
||||
}
|
||||
|
||||
if (!this._shellReactive)
|
||||
|
@ -670,7 +670,7 @@ const FdoApplicationIface = '<node> \
|
||||
const FdoApplicationProxy = Gio.DBusProxy.makeProxyWrapper(FdoApplicationIface);
|
||||
|
||||
function objectPathFromAppId(appId) {
|
||||
return '/' + appId.replace(/\./g, '/');
|
||||
return '/' + appId.replace(/\./g, '/').replace(/-/g, '_');
|
||||
}
|
||||
|
||||
function getPlatformData() {
|
||||
@ -687,6 +687,8 @@ 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)
|
||||
|
@ -392,6 +392,9 @@ 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);
|
||||
|
@ -254,18 +254,12 @@ 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 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;
|
||||
// Always show the pager on hover or during a drag
|
||||
let alwaysZoomOut = this.actor.hover || this._inDrag;
|
||||
|
||||
if (!alwaysZoomOut) {
|
||||
let monitors = Main.layoutManager.monitors;
|
||||
|
@ -513,7 +513,7 @@ var PadDiagram = new Lang.Class({
|
||||
},
|
||||
|
||||
getRingLabelCoords: function (number, dir) {
|
||||
let numStr = number > 0 ? number.toString() : '';
|
||||
let numStr = number > 0 ? (number + 1).toString() : '';
|
||||
let dirStr = dir == CW ? 'CW' : 'CCW';
|
||||
let labelName = 'LabelRing' + numStr + dirStr;
|
||||
let leaderName = 'LeaderRing' + numStr + dirStr;
|
||||
|
@ -839,8 +839,14 @@ var Panel = new Lang.Class({
|
||||
},
|
||||
|
||||
_getPreferredWidth: function(actor, forHeight, alloc) {
|
||||
let primaryMonitor = Main.layoutManager.primaryMonitor;
|
||||
|
||||
alloc.min_size = -1;
|
||||
alloc.natural_size = Main.layoutManager.primaryMonitor.width;
|
||||
|
||||
if (primaryMonitor)
|
||||
alloc.natural_size = primaryMonitor.width;
|
||||
else
|
||||
alloc.natural_size = -1;
|
||||
},
|
||||
|
||||
_getPreferredHeight: function(actor, forWidth, alloc) {
|
||||
@ -859,15 +865,16 @@ var Panel = new Lang.Class({
|
||||
|
||||
let sideWidth, centerWidth;
|
||||
centerWidth = centerNaturalWidth;
|
||||
sideWidth = (allocWidth - centerWidth) / 2;
|
||||
sideWidth = Math.max(0, (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 = allocWidth - Math.min(Math.floor(sideWidth),
|
||||
leftNaturalWidth);
|
||||
childBox.x1 = Math.max(allocWidth - Math.min(Math.floor(sideWidth),
|
||||
leftNaturalWidth),
|
||||
0);
|
||||
childBox.x2 = allocWidth;
|
||||
} else {
|
||||
childBox.x1 = 0;
|
||||
@ -889,8 +896,9 @@ var Panel = new Lang.Class({
|
||||
childBox.x2 = Math.min(Math.floor(sideWidth),
|
||||
rightNaturalWidth);
|
||||
} else {
|
||||
childBox.x1 = allocWidth - Math.min(Math.floor(sideWidth),
|
||||
rightNaturalWidth);
|
||||
childBox.x1 = Math.max(allocWidth - Math.min(Math.floor(sideWidth),
|
||||
rightNaturalWidth),
|
||||
0);
|
||||
childBox.x2 = allocWidth;
|
||||
}
|
||||
this._rightBox.allocate(childBox, flags);
|
||||
@ -1044,6 +1052,9 @@ 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) {
|
||||
@ -1073,8 +1084,6 @@ var Panel = new Lang.Class({
|
||||
let indicator = this.statusArea[role];
|
||||
if (!indicator)
|
||||
continue;
|
||||
if (indicator.menu)
|
||||
indicator.menu.close();
|
||||
indicator.container.hide();
|
||||
}
|
||||
},
|
||||
|
@ -405,7 +405,7 @@ var PopupImageMenuItem = new Lang.Class({
|
||||
|
||||
setIcon: function(icon) {
|
||||
// The 'icon' parameter can be either a Gio.Icon or a string.
|
||||
if (GObject.type_is_a(icon, Gio.Icon))
|
||||
if (icon instanceof GObject.Object && GObject.type_is_a(icon, Gio.Icon))
|
||||
this._icon.gicon = icon;
|
||||
else
|
||||
this._icon.icon_name = icon;
|
||||
@ -465,6 +465,7 @@ var PopupMenuBase = new Lang.Class({
|
||||
|
||||
_sessionUpdated: function() {
|
||||
this._setSettingsVisibility(Main.sessionMode.allowSettings);
|
||||
this.close();
|
||||
},
|
||||
|
||||
addAction: function(title, callback, icon) {
|
||||
|
@ -98,6 +98,13 @@ 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');
|
||||
@ -106,9 +113,9 @@ function loadRemoteSearchProviders(searchSettings, callback) {
|
||||
}
|
||||
|
||||
if (version >= 2)
|
||||
remoteProvider = new RemoteSearchProvider2(appInfo, busName, objectPath);
|
||||
remoteProvider = new RemoteSearchProvider2(appInfo, busName, objectPath, autoStart);
|
||||
else
|
||||
remoteProvider = new RemoteSearchProvider(appInfo, busName, objectPath);
|
||||
remoteProvider = new RemoteSearchProvider(appInfo, busName, objectPath, autoStart);
|
||||
|
||||
remoteProvider.defaultEnabled = true;
|
||||
try {
|
||||
@ -184,17 +191,22 @@ function loadRemoteSearchProviders(searchSettings, callback) {
|
||||
var RemoteSearchProvider = new Lang.Class({
|
||||
Name: 'RemoteSearchProvider',
|
||||
|
||||
_init: function(appInfo, dbusName, dbusPath, proxyInfo) {
|
||||
_init: function(appInfo, dbusName, dbusPath, autoStart, 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: (Gio.DBusProxyFlags.DO_NOT_AUTO_START_AT_CONSTRUCTION |
|
||||
Gio.DBusProxyFlags.DO_NOT_LOAD_PROPERTIES) });
|
||||
g_flags });
|
||||
this.proxy.init_async(GLib.PRIORITY_DEFAULT, null, null);
|
||||
|
||||
this.appInfo = appInfo;
|
||||
@ -307,8 +319,8 @@ var RemoteSearchProvider2 = new Lang.Class({
|
||||
Name: 'RemoteSearchProvider2',
|
||||
Extends: RemoteSearchProvider,
|
||||
|
||||
_init: function(appInfo, dbusName, dbusPath) {
|
||||
this.parent(appInfo, dbusName, dbusPath, SearchProvider2ProxyInfo);
|
||||
_init: function(appInfo, dbusName, dbusPath, autoStart) {
|
||||
this.parent(appInfo, dbusName, dbusPath, autoStart, SearchProvider2ProxyInfo);
|
||||
|
||||
this.canLaunchSearch = true;
|
||||
},
|
||||
|
@ -681,6 +681,15 @@ 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 ||
|
||||
@ -765,7 +774,7 @@ var ProviderInfo = new Lang.Class({
|
||||
},
|
||||
|
||||
setMoreCount: function(count) {
|
||||
this._moreLabel.text = _("%d more").format(count);
|
||||
this._moreLabel.text = ngettext("%d more", "%d more", count).format(count);
|
||||
this._moreLabel.visible = count > 0;
|
||||
}
|
||||
});
|
||||
|
@ -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.shorName);
|
||||
indicatorLabel.set_text(is.shortName);
|
||||
});
|
||||
|
||||
this.menu.addMenuItem(menuItem, menuIndex++);
|
||||
|
@ -115,17 +115,6 @@ 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',
|
||||
|
||||
@ -514,7 +503,7 @@ var NMDeviceWired = new Lang.Class({
|
||||
_init: function(client, device, settings) {
|
||||
this.parent(client, device, settings);
|
||||
|
||||
this.item.menu.addMenuItem(createSettingsAction(_("Wired Settings"), device));
|
||||
this.item.menu.addSettingsAction(_("Wired Settings"), 'gnome-network-panel.desktop');
|
||||
},
|
||||
|
||||
_hasCarrier: function() {
|
||||
@ -556,7 +545,7 @@ var NMDeviceModem = new Lang.Class({
|
||||
_init: function(client, device, settings) {
|
||||
this.parent(client, device, settings);
|
||||
|
||||
this.item.menu.addMenuItem(createSettingsAction(_("Mobile Broadband Settings"), device));
|
||||
this.item.menu.addSettingsAction(_("Mobile Broadband Settings"), 'gnome-network-panel.desktop');
|
||||
|
||||
this._mobileDevice = null;
|
||||
|
||||
@ -635,7 +624,7 @@ var NMDeviceBluetooth = new Lang.Class({
|
||||
_init: function(client, device, settings) {
|
||||
this.parent(client, device, settings);
|
||||
|
||||
this.item.menu.addMenuItem(createSettingsAction(_("Bluetooth Settings"), device));
|
||||
this.item.menu.addSettingsAction(_("Bluetooth Settings"), 'gnome-network-panel.desktop');
|
||||
},
|
||||
|
||||
_getDescription: function() {
|
||||
@ -962,7 +951,7 @@ var NMWirelessDialog = new Lang.Class({
|
||||
|| (accessPoints[0]._secType == NMAccessPointSecurity.WPA_ENT)) {
|
||||
// 802.1x-enabled APs require further configuration, so they're
|
||||
// handled in gnome-control-center
|
||||
Util.spawn(['gnome-control-center', 'network', 'connect-8021x-wifi',
|
||||
Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
|
||||
this._device.get_path(), accessPoints[0].dbus_path]);
|
||||
} else {
|
||||
let connection = new NetworkManager.Connection();
|
||||
@ -1205,7 +1194,7 @@ var NMDeviceWireless = new Lang.Class({
|
||||
this._toggleItem.connect('activate', Lang.bind(this, this._toggleWifi));
|
||||
this.item.menu.addMenuItem(this._toggleItem);
|
||||
|
||||
this.item.menu.addMenuItem(createSettingsAction(_("Wi-Fi Settings"), device));
|
||||
this.item.menu.addSettingsAction(_("Wi-Fi Settings"), 'gnome-wifi-panel.desktop');
|
||||
|
||||
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));
|
||||
@ -1502,36 +1491,7 @@ var NMVPNSection = new Lang.Class({
|
||||
_init: function(client) {
|
||||
this.parent(client);
|
||||
|
||||
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()]);
|
||||
}
|
||||
this.item.menu.addSettingsAction(_("VPN Settings"), 'gnome-network-panel.desktop');
|
||||
},
|
||||
|
||||
_getDescription: function() {
|
||||
|
@ -2,39 +2,19 @@
|
||||
|
||||
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 GnomeSession = imports.misc.gnomeSession;
|
||||
const LoginManager = imports.misc.loginManager;
|
||||
const SystemActions = imports.misc.systemActions;
|
||||
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',
|
||||
@ -138,41 +118,17 @@ var Indicator = new Lang.Class({
|
||||
_init: function() {
|
||||
this.parent();
|
||||
|
||||
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' });
|
||||
let userManager = AccountsService.UserManager.get_default();
|
||||
this._user = userManager.get_user(GLib.get_user_name());
|
||||
|
||||
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._systemActions = new SystemActions.getDefault();
|
||||
|
||||
this._createSubMenu();
|
||||
|
||||
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();
|
||||
|
||||
this._loginScreenItem.actor.connect('notify::visible',
|
||||
() => { this._updateMultiUser(); });
|
||||
this._logoutItem.actor.connect('notify::visible',
|
||||
() => { this._updateMultiUser(); });
|
||||
// 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
|
||||
@ -182,42 +138,14 @@ var Indicator = new Lang.Class({
|
||||
if (!open)
|
||||
return;
|
||||
|
||||
this._updateHaveShutdown();
|
||||
this._updateHaveSuspend();
|
||||
this._systemActions.forceUpdate();
|
||||
}));
|
||||
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();
|
||||
this._updateMultiUser();
|
||||
|
||||
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 ||
|
||||
@ -228,42 +156,14 @@ 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 shouldShowInMode = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
|
||||
let hasSwitchUser = this._updateSwitchUser();
|
||||
let hasLogout = this._updateLogout();
|
||||
let hasSwitchUser = this._loginScreenItem.actor.visible;
|
||||
let hasLogout = this._logoutItem.actor.visible;
|
||||
|
||||
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;
|
||||
this._switchUserSubMenu.actor.visible = hasSwitchUser || hasLogout;
|
||||
},
|
||||
|
||||
_updateSwitchUserSubMenu: function() {
|
||||
@ -299,63 +199,6 @@ 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,
|
||||
@ -367,6 +210,7 @@ var Indicator = new Lang.Class({
|
||||
},
|
||||
|
||||
_createSubMenu: function() {
|
||||
let bindFlags = GObject.BindingFlags.DEFAULT | GObject.BindingFlags.SYNC_CREATE;
|
||||
let item;
|
||||
|
||||
this._switchUserSubMenu = new PopupMenu.PopupSubMenuMenuItem('', true);
|
||||
@ -382,14 +226,28 @@ var Indicator = new Lang.Class({
|
||||
}));
|
||||
|
||||
item = new PopupMenu.PopupMenuItem(_("Switch User"));
|
||||
item.connect('activate', Lang.bind(this, this._onLoginScreenActivate));
|
||||
item.connect('activate', () => {
|
||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
||||
this._systemActions.activateSwitchUser();
|
||||
});
|
||||
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', Lang.bind(this, this._onQuitSessionActivate));
|
||||
item.connect('activate', () => {
|
||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
||||
this._systemActions.activateLogout();
|
||||
});
|
||||
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');
|
||||
@ -405,28 +263,70 @@ var Indicator = new Lang.Class({
|
||||
can_focus: false });
|
||||
|
||||
this._settingsAction = this._createActionButton('preferences-system-symbolic', _("Settings"));
|
||||
this._settingsAction.connect('clicked', Lang.bind(this, this._onSettingsClicked));
|
||||
this._settingsAction.connect('clicked', () => { this._onSettingsClicked(); });
|
||||
item.actor.add(this._settingsAction, { expand: true, x_fill: false });
|
||||
|
||||
this._orientationLockAction = this._createActionButton('', _("Orientation Lock"));
|
||||
this._orientationLockAction.connect('clicked', Lang.bind(this, this._onOrientationLockClicked));
|
||||
this._orientationLockAction.connect('clicked', () => {
|
||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE),
|
||||
this._systemActions.activateLockOrientation();
|
||||
});
|
||||
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', Lang.bind(this, this._onLockScreenClicked));
|
||||
this._lockScreenAction.connect('clicked', () => {
|
||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
||||
this._systemActions.activateLockScreen();
|
||||
});
|
||||
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', Lang.bind(this, this._onSuspendClicked));
|
||||
this._suspendAction.connect('clicked', () => {
|
||||
this.menu.itemActivated(BoxPointer.PopupAnimation.NONE);
|
||||
this._systemActions.activateSuspend();
|
||||
});
|
||||
this._systemActions.bind_property('can-suspend',
|
||||
this._suspendAction,
|
||||
'visible',
|
||||
bindFlags);
|
||||
|
||||
this._powerOffAction = this._createActionButton('system-shutdown-symbolic', _("Power Off"));
|
||||
this._powerOffAction.connect('clicked', Lang.bind(this, this._onPowerOffClicked));
|
||||
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._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() {
|
||||
@ -434,46 +334,5 @@ 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();
|
||||
},
|
||||
}
|
||||
});
|
||||
|
101
js/ui/switchMonitor.js
Normal file
101
js/ui/switchMonitor.js
Normal file
@ -0,0 +1,101 @@
|
||||
// -*- 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);
|
||||
}
|
||||
});
|
||||
|
@ -19,6 +19,7 @@ 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;
|
||||
@ -61,6 +62,7 @@ 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
|
||||
@ -145,10 +147,14 @@ 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.)
|
||||
let [x, y, mods] = global.get_pointer();
|
||||
if (!(mods & this._modifierMask)) {
|
||||
this._finish(global.get_current_time());
|
||||
return false;
|
||||
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();
|
||||
}
|
||||
|
||||
// We delay showing the popup so that fast Alt+Tab users aren't
|
||||
@ -192,11 +198,15 @@ var SwitcherPopup = new Lang.Class({
|
||||
},
|
||||
|
||||
_keyReleaseEvent: function(actor, event) {
|
||||
let [x, y, mods] = global.get_pointer();
|
||||
let state = mods & this._modifierMask;
|
||||
if (this._modifierMask) {
|
||||
let [x, y, mods] = global.get_pointer();
|
||||
let state = mods & this._modifierMask;
|
||||
|
||||
if (state == 0)
|
||||
this._finish(event.get_time());
|
||||
if (state == 0)
|
||||
this._finish(event.get_time());
|
||||
} else {
|
||||
this._resetNoModsTimeout();
|
||||
}
|
||||
|
||||
return Clutter.EVENT_STOP;
|
||||
},
|
||||
@ -253,6 +263,18 @@ 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);
|
||||
@ -287,6 +309,8 @@ 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) {
|
||||
|
@ -35,6 +35,10 @@ 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) {
|
||||
@ -56,6 +60,9 @@ 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);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -163,6 +163,13 @@ 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));
|
||||
|
||||
|
@ -22,6 +22,7 @@ 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,7 +516,7 @@ var TouchpadWorkspaceSwitchAction = new Lang.Class({
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (event.get_gesture_phase() == Clutter.TouchpadGesturePhase.UPDATE) {
|
||||
let [dx, dy] = event.get_gesture_motion_delta(event);
|
||||
let [dx, dy] = event.get_gesture_motion_delta();
|
||||
|
||||
this._dx += dx;
|
||||
this._dy += dy;
|
||||
@ -898,6 +899,10 @@ 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 }),
|
||||
@ -980,7 +985,8 @@ var WindowManager = new Lang.Class({
|
||||
gesture.connect('activated', Lang.bind(this, this._switchApp));
|
||||
global.stage.add_action(gesture);
|
||||
|
||||
gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, Shell.ActionMode.ALL);
|
||||
let mode = Shell.ActionMode.ALL & ~Shell.ActionMode.LOCK_SCREEN;
|
||||
gesture = new EdgeDragAction.EdgeDragAction(St.Side.BOTTOM, mode);
|
||||
gesture.connect('activated', Lang.bind(this, function() {
|
||||
Main.keyboard.show(Main.layoutManager.bottomIndex);
|
||||
}));
|
||||
@ -1838,6 +1844,9 @@ var WindowManager = new Lang.Class({
|
||||
case 'cycle-group-backward':
|
||||
constructor = AltTab.GroupCyclerPopup;
|
||||
break;
|
||||
case 'switch-monitor':
|
||||
constructor = SwitchMonitor.SwitchMonitorPopup;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!constructor)
|
||||
|
@ -20,7 +20,7 @@ const WindowManager = imports.ui.windowManager;
|
||||
|
||||
var WINDOW_DND_SIZE = 256;
|
||||
|
||||
var WINDOW_CLONE_MAXIMUM_SCALE = 0.7;
|
||||
var WINDOW_CLONE_MAXIMUM_SCALE = 1.0;
|
||||
|
||||
var CLOSE_BUTTON_FADE_TIME = 0.1;
|
||||
|
||||
@ -132,6 +132,7 @@ 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;
|
||||
@ -157,6 +158,12 @@ 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,
|
||||
@ -374,6 +381,8 @@ 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;
|
||||
},
|
||||
@ -439,7 +448,6 @@ 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',
|
||||
@ -455,18 +463,13 @@ var WindowOverlay = new Lang.Class({
|
||||
button.connect('clicked', Lang.bind(this, this._closeWindow));
|
||||
|
||||
windowClone.actor.connect('destroy', Lang.bind(this, this._onDestroy));
|
||||
windowClone.actor.connect('enter-event',
|
||||
Lang.bind(this, this._onEnter));
|
||||
windowClone.actor.connect('leave-event',
|
||||
Lang.bind(this, this._onLeave));
|
||||
windowClone.actor.connect('key-focus-in',
|
||||
Lang.bind(this, this._onEnter));
|
||||
windowClone.actor.connect('key-focus-out',
|
||||
Lang.bind(this, this._onLeave));
|
||||
windowClone.connect('show-chrome', Lang.bind(this, this._onShowChrome));
|
||||
windowClone.connect('hide-chrome', Lang.bind(this, this._onHideChrome));
|
||||
|
||||
this._windowAddedId = 0;
|
||||
|
||||
button.hide();
|
||||
title.hide();
|
||||
|
||||
this.title = title;
|
||||
this.closeButton = button;
|
||||
@ -475,8 +478,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.title);
|
||||
parentActor.add_actor(this.border);
|
||||
parentActor.add_actor(this.title);
|
||||
parentActor.add_actor(this.closeButton);
|
||||
title.connect('style-changed',
|
||||
Lang.bind(this, this._onStyleChanged));
|
||||
@ -491,7 +494,6 @@ var WindowOverlay = new Lang.Class({
|
||||
|
||||
hide: function() {
|
||||
this._hidden = true;
|
||||
this.title.hide();
|
||||
|
||||
this.hideCloseButton();
|
||||
},
|
||||
@ -499,14 +501,13 @@ 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.title._spacing];
|
||||
(this.title.height - this.borderSize) / 2];
|
||||
},
|
||||
|
||||
chromeWidths: function () {
|
||||
@ -540,24 +541,13 @@ var WindowOverlay = new Lang.Class({
|
||||
else
|
||||
button.set_position(Math.floor(buttonX), Math.floor(buttonY));
|
||||
|
||||
// Clutter.Actor.get_preferred_width() will return the fixed width if one
|
||||
// is set, so we need to reset the width by calling set_width(-1), to forward
|
||||
// the call down to StLabel.
|
||||
// We also need to save and restore the current width, otherwise the animation
|
||||
// starts from the wrong point.
|
||||
let prevTitleWidth = title.width;
|
||||
title.set_width(-1);
|
||||
let [titleMinWidth, titleNatWidth] = title.get_preferred_width(-1);
|
||||
let titleWidth = Math.max(titleMinWidth, Math.min(titleNatWidth, cloneWidth));
|
||||
title.width = prevTitleWidth;
|
||||
let titleX = cloneX + (cloneWidth - title.width) / 2;
|
||||
let titleY = cloneY + cloneHeight - (title.height - this.borderSize) / 2;
|
||||
|
||||
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;
|
||||
if (animate) {
|
||||
this._animateOverlayActor(title, Math.floor(titleX), Math.floor(titleY), title.width);
|
||||
} else {
|
||||
title.width = title.width;
|
||||
title.set_position(Math.floor(titleX), Math.floor(titleY));
|
||||
}
|
||||
|
||||
@ -640,60 +630,48 @@ var WindowOverlay = new Lang.Class({
|
||||
_animateVisible: function() {
|
||||
this._parentActor.raise_top();
|
||||
|
||||
if (this._windowCanClose()) {
|
||||
this.closeButton.show();
|
||||
this.closeButton.opacity = 0;
|
||||
Tweener.addTween(this.closeButton,
|
||||
let toAnimate = [this.border, this.title];
|
||||
if (this._windowCanClose())
|
||||
toAnimate.push(this.closeButton);
|
||||
|
||||
toAnimate.forEach(a => {
|
||||
a.show();
|
||||
a.opacity = 0;
|
||||
Tweener.addTween(a,
|
||||
{ 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.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');
|
||||
[this.closeButton, this.border, this.title].forEach(a => {
|
||||
a.opacity = 255;
|
||||
Tweener.addTween(a,
|
||||
{ opacity: 0,
|
||||
time: CLOSE_BUTTON_FADE_TIME,
|
||||
transition: 'easeInQuad' });
|
||||
});
|
||||
},
|
||||
|
||||
_onEnter: function() {
|
||||
_onShowChrome: 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 Clutter.EVENT_PROPAGATE;
|
||||
return;
|
||||
|
||||
this._windowClone.actor.grab_key_focus();
|
||||
this._animateVisible();
|
||||
this.emit('show-close-button');
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
},
|
||||
|
||||
_onLeave: function() {
|
||||
_onHideChrome: 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() {
|
||||
@ -713,13 +691,10 @@ var WindowOverlay = new Lang.Class({
|
||||
}
|
||||
this.closeButton.hide();
|
||||
this.border.hide();
|
||||
this.title.remove_style_pseudo_class('hover');
|
||||
this.title.hide();
|
||||
},
|
||||
|
||||
_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');
|
||||
|
||||
@ -975,6 +950,10 @@ 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;
|
||||
}
|
||||
@ -1091,6 +1070,22 @@ 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
|
||||
*/
|
||||
@ -1113,6 +1108,7 @@ 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;
|
||||
|
||||
@ -1122,7 +1118,7 @@ var Workspace = new Lang.Class({
|
||||
// Without this the drop area will be overlapped.
|
||||
this._windowOverlaysGroup.set_size(0, 0);
|
||||
|
||||
this.actor = new St.Widget({ style_class: 'window-picker' });
|
||||
this.actor = new WorkspaceActor({ style_class: 'window-picker' });
|
||||
if (monitorIndex != Main.layoutManager.primaryIndex)
|
||||
this.actor.add_style_class_name('external-monitor');
|
||||
this.actor.set_size(0, 0);
|
||||
@ -1951,19 +1947,16 @@ 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];
|
||||
[closeButtonHeight, captionHeight] = overlay.chromeHeights();
|
||||
[leftBorder, rightBorder] = overlay.chromeWidths();
|
||||
let [topBorder, bottomBorder] = overlay.chromeHeights();
|
||||
let [leftBorder, rightBorder] = overlay.chromeWidths();
|
||||
|
||||
rowSpacing += captionHeight;
|
||||
rowSpacing += (topBorder + bottomBorder) / 2;
|
||||
columnSpacing += (rightBorder + leftBorder) / 2;
|
||||
padding.top += closeButtonHeight;
|
||||
padding.bottom += captionHeight;
|
||||
padding.top += topBorder;
|
||||
padding.bottom += bottomBorder;
|
||||
padding.left += leftBorder;
|
||||
padding.right += rightBorder;
|
||||
|
||||
|
@ -31,6 +31,7 @@ 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');
|
||||
}));
|
||||
@ -49,9 +50,6 @@ 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) {
|
||||
|
@ -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/8 the width and height of the screen
|
||||
let MAX_THUMBNAIL_SCALE = 1/8.;
|
||||
// The maximum size of a thumbnail is 1/10 the width and height of the screen
|
||||
let MAX_THUMBNAIL_SCALE = 1/10.;
|
||||
|
||||
var RESCALE_ANIMATION_TIME = 0.2;
|
||||
var SLIDE_ANIMATION_TIME = 0.2;
|
||||
@ -937,7 +937,8 @@ var ThumbnailsBox = new Lang.Class({
|
||||
},
|
||||
|
||||
addThumbnails: function(start, count) {
|
||||
this._ensurePorthole();
|
||||
if (!this._ensurePorthole())
|
||||
return;
|
||||
for (let k = start; k < start + count; k++) {
|
||||
let metaWorkspace = global.screen.get_workspace_by_index(k);
|
||||
let thumbnail = new WorkspaceThumbnail(metaWorkspace);
|
||||
@ -1125,7 +1126,12 @@ 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.
|
||||
|
||||
this._ensurePorthole();
|
||||
if (!this._ensurePorthole()) {
|
||||
alloc.min_size = -1;
|
||||
alloc.natural_size = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
let themeNode = this.actor.get_theme_node();
|
||||
|
||||
let spacing = themeNode.get_length('spacing');
|
||||
@ -1137,7 +1143,11 @@ var ThumbnailsBox = new Lang.Class({
|
||||
},
|
||||
|
||||
_getPreferredWidth: function(actor, forHeight, alloc) {
|
||||
this._ensurePorthole();
|
||||
if (!this._ensurePorthole()) {
|
||||
alloc.min_size = -1;
|
||||
alloc.natural_size = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
let themeNode = this.actor.get_theme_node();
|
||||
|
||||
@ -1158,8 +1168,13 @@ 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) {
|
||||
|
@ -1,19 +0,0 @@
|
||||
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)
|
@ -1,6 +1,6 @@
|
||||
project('gnome-shell', 'c',
|
||||
version: '3.25.4',
|
||||
meson_version: '>= 0.41.0',
|
||||
version: '3.26.2',
|
||||
meson_version: '>= 0.42.0',
|
||||
license: 'GPLv2+'
|
||||
)
|
||||
|
||||
@ -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.25.2'
|
||||
mutter_req = '>= 3.26.0'
|
||||
polkit_req = '>= 0.100'
|
||||
schemas_req = '>= 3.21.3'
|
||||
startup_req = '>= 0.11'
|
||||
|
@ -9,6 +9,7 @@ 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
|
||||
@ -30,8 +31,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
|
||||
@ -59,6 +60,7 @@ 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
|
||||
|
2571
po/ca@valencia.po
2571
po/ca@valencia.po
File diff suppressed because it is too large
Load Diff
351
po/es.po
351
po/es.po
@ -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-07-20 03:49+0000\n"
|
||||
"PO-Revision-Date: 2017-07-24 15:38+0200\n"
|
||||
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
|
||||
"PO-Revision-Date: 2017-08-22 13: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:947
|
||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
||||
msgid "Cancel"
|
||||
msgstr "Cancelar"
|
||||
|
||||
@ -410,6 +410,82 @@ 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"
|
||||
@ -568,35 +644,35 @@ msgstr "Denegar acceso"
|
||||
msgid "Grant Access"
|
||||
msgstr "Conceder acceso"
|
||||
|
||||
#: js/ui/appDisplay.js:806
|
||||
#: js/ui/appDisplay.js:809
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Las aplicaciones usadas frecuentemente aparecerán aquí"
|
||||
|
||||
#: js/ui/appDisplay.js:927
|
||||
#: js/ui/appDisplay.js:930
|
||||
msgid "Frequent"
|
||||
msgstr "Frecuentes"
|
||||
|
||||
#: js/ui/appDisplay.js:934
|
||||
#: js/ui/appDisplay.js:937
|
||||
msgid "All"
|
||||
msgstr "Todas"
|
||||
|
||||
#: js/ui/appDisplay.js:1895
|
||||
#: js/ui/appDisplay.js:1915
|
||||
msgid "New Window"
|
||||
msgstr "Ventana nueva"
|
||||
|
||||
#: js/ui/appDisplay.js:1909
|
||||
#: js/ui/appDisplay.js:1929
|
||||
msgid "Launch using Dedicated Graphics Card"
|
||||
msgstr "Lanzar usando la tarjeta gráfica dedicada"
|
||||
|
||||
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
|
||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Quitar de los favoritos"
|
||||
|
||||
#: js/ui/appDisplay.js:1942
|
||||
#: js/ui/appDisplay.js:1962
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Añadir a los favoritos"
|
||||
|
||||
#: js/ui/appDisplay.js:1952
|
||||
#: js/ui/appDisplay.js:1972
|
||||
msgid "Show Details"
|
||||
msgstr "Mostrar detalles"
|
||||
|
||||
@ -638,7 +714,7 @@ msgstr "Cambiar el fondo…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Configuración de pantalla"
|
||||
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
|
||||
msgid "Settings"
|
||||
msgstr "Configuración"
|
||||
|
||||
@ -745,7 +821,6 @@ 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."
|
||||
|
||||
@ -786,8 +861,8 @@ msgstr "Contraseña:"
|
||||
msgid "Type again:"
|
||||
msgstr "Escriba de nuevo:"
|
||||
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
|
||||
#: js/ui/status/network.js:366 js/ui/status/network.js:950
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
||||
msgid "Connect"
|
||||
msgstr "Conectar"
|
||||
|
||||
@ -862,7 +937,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:1760
|
||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
||||
msgid "Network Manager"
|
||||
msgstr "Gestor de la red"
|
||||
|
||||
@ -893,7 +968,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:179
|
||||
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
|
||||
msgid "Windows"
|
||||
msgstr "Ventanas"
|
||||
|
||||
@ -938,7 +1013,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:281
|
||||
#: js/ui/dateMenu.js:286
|
||||
#, javascript-format
|
||||
msgid "%s all day."
|
||||
msgstr "%s todo el día."
|
||||
@ -947,7 +1022,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:287
|
||||
#: js/ui/dateMenu.js:292
|
||||
#, javascript-format
|
||||
msgid "%s, then %s later."
|
||||
msgstr "%s, luego %s."
|
||||
@ -956,30 +1031,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:293
|
||||
#: js/ui/dateMenu.js:298
|
||||
#, javascript-format
|
||||
msgid "%s, then %s, followed by %s later."
|
||||
msgstr "%s, luego %s seguido de %s."
|
||||
|
||||
#: js/ui/dateMenu.js:300
|
||||
#: js/ui/dateMenu.js:309
|
||||
msgid "Select a location…"
|
||||
msgstr "Seleccionar ubicación…"
|
||||
|
||||
#: js/ui/dateMenu.js:303
|
||||
#: js/ui/dateMenu.js:312
|
||||
msgid "Loading…"
|
||||
msgstr "Cargando…"
|
||||
|
||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||
#: js/ui/dateMenu.js:309
|
||||
#: js/ui/dateMenu.js:318
|
||||
#, javascript-format
|
||||
msgid "Feels like %s."
|
||||
msgstr "Sensación térmica de %s."
|
||||
|
||||
#: js/ui/dateMenu.js:312
|
||||
#: js/ui/dateMenu.js:321
|
||||
msgid "Go online for weather information"
|
||||
msgstr "Conectarse para obtener la información meteorológica"
|
||||
|
||||
#: js/ui/dateMenu.js:314
|
||||
#: js/ui/dateMenu.js:323
|
||||
msgid "Weather information is currently unavailable"
|
||||
msgstr "La información meteorológica no está disponible actualmente."
|
||||
|
||||
@ -1141,19 +1216,34 @@ msgstr "Instalar"
|
||||
msgid "Download and install “%s” from extensions.gnome.org?"
|
||||
msgstr "¿Descargar e instalar «%s» desde extensions.gnome.org?"
|
||||
|
||||
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
|
||||
#. 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
|
||||
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"
|
||||
@ -1340,7 +1430,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:415
|
||||
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
|
||||
msgid "Lock"
|
||||
msgstr "Bloquear"
|
||||
|
||||
@ -1371,10 +1461,13 @@ msgstr "Buscando…"
|
||||
msgid "No results."
|
||||
msgstr "No se encontraron resultados."
|
||||
|
||||
#: js/ui/search.js:768
|
||||
#: js/ui/search.js:777
|
||||
#, javascript-format
|
||||
#| msgid "%d more"
|
||||
msgid "%d more"
|
||||
msgstr "%d más"
|
||||
msgid_plural "%d more"
|
||||
msgstr[0] "%d más"
|
||||
msgstr[1] "%d más"
|
||||
|
||||
#: js/ui/shellEntry.js:25
|
||||
msgid "Copy"
|
||||
@ -1448,7 +1541,7 @@ msgstr "Texto grande"
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Configuración de Bluetooth"
|
||||
|
||||
@ -1468,13 +1561,13 @@ msgstr "Desconectado"
|
||||
msgid "On"
|
||||
msgstr "Encender"
|
||||
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
||||
msgid "Turn On"
|
||||
msgstr "Encender"
|
||||
|
||||
#: 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/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/rfkill.js:90 js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Apagar"
|
||||
@ -1528,13 +1621,13 @@ msgid "<unknown>"
|
||||
msgstr "<desconocido>"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
|
||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s apagada"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:468
|
||||
#: js/ui/status/network.js:457
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "%s conectada"
|
||||
@ -1542,190 +1635,189 @@ 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:473
|
||||
#: js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s sin gestionar"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:476
|
||||
#: js/ui/status/network.js:465
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "Desconectando %s"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
|
||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
||||
#, 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:486
|
||||
#: js/ui/status/network.js:475
|
||||
#, 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:494
|
||||
#: js/ui/status/network.js:483
|
||||
#, 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:498
|
||||
#: js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s no disponible"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:501
|
||||
#: js/ui/status/network.js:490
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "Falló la conexión %s"
|
||||
|
||||
#: js/ui/status/network.js:517
|
||||
#: js/ui/status/network.js:506
|
||||
msgid "Wired Settings"
|
||||
msgstr "Configuración de red cableada"
|
||||
|
||||
#: js/ui/status/network.js:559
|
||||
#: js/ui/status/network.js:548
|
||||
msgid "Mobile Broadband Settings"
|
||||
msgstr "Configuración de banda ancha móvil"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
|
||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
||||
#, 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:606
|
||||
#: js/ui/status/network.js:595
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s desactivado"
|
||||
|
||||
#: js/ui/status/network.js:646
|
||||
#: js/ui/status/network.js:635
|
||||
msgid "Connect to Internet"
|
||||
msgstr "Conectar a Internet"
|
||||
|
||||
#: js/ui/status/network.js:844
|
||||
#: js/ui/status/network.js:833
|
||||
msgid "Airplane Mode is On"
|
||||
msgstr "El modo avión está activado"
|
||||
|
||||
#: js/ui/status/network.js:845
|
||||
#: js/ui/status/network.js:834
|
||||
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:846
|
||||
#: js/ui/status/network.js:835
|
||||
msgid "Turn Off Airplane Mode"
|
||||
msgstr "Apagar el modo avión"
|
||||
|
||||
#: js/ui/status/network.js:855
|
||||
#: js/ui/status/network.js:844
|
||||
msgid "Wi-Fi is Off"
|
||||
msgstr "La Wi-Fi está desactivada"
|
||||
|
||||
#: js/ui/status/network.js:856
|
||||
#: js/ui/status/network.js:845
|
||||
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:857
|
||||
#: js/ui/status/network.js:846
|
||||
msgid "Turn On Wi-Fi"
|
||||
msgstr "Activar la Wi-Fi"
|
||||
|
||||
#: js/ui/status/network.js:882
|
||||
#: js/ui/status/network.js:871
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Redes Wi-Fi"
|
||||
|
||||
#: js/ui/status/network.js:884
|
||||
#: js/ui/status/network.js:873
|
||||
msgid "Select a network"
|
||||
msgstr "Seleccionar una red"
|
||||
|
||||
#: js/ui/status/network.js:914
|
||||
#: js/ui/status/network.js:903
|
||||
msgid "No Networks"
|
||||
msgstr "No hay redes"
|
||||
|
||||
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
|
||||
#: js/ui/status/network.js:924 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:1202
|
||||
#: js/ui/status/network.js:1191
|
||||
msgid "Select Network"
|
||||
msgstr "Seleccionar red"
|
||||
|
||||
#: js/ui/status/network.js:1208
|
||||
#: js/ui/status/network.js:1197
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Configuración de Wi-Fi"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1327
|
||||
#: js/ui/status/network.js:1316
|
||||
#, javascript-format
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "Punto de acceso %s activo"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1342
|
||||
#: js/ui/status/network.js:1331
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s no conectado"
|
||||
|
||||
#: js/ui/status/network.js:1446
|
||||
#: js/ui/status/network.js:1435
|
||||
msgid "connecting…"
|
||||
msgstr "conectando…"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: js/ui/status/network.js:1449
|
||||
#: js/ui/status/network.js:1438
|
||||
msgid "authentication required"
|
||||
msgstr "se necesita autenticación"
|
||||
|
||||
#: js/ui/status/network.js:1451
|
||||
#: js/ui/status/network.js:1440
|
||||
msgid "connection failed"
|
||||
msgstr "falló la conexión"
|
||||
|
||||
#: 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:1519
|
||||
#: js/ui/status/network.js:1494
|
||||
msgid "VPN Settings"
|
||||
msgstr "Configuración de VPN"
|
||||
|
||||
#: js/ui/status/network.js:1538
|
||||
#: js/ui/status/network.js:1498
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: js/ui/status/network.js:1548
|
||||
#: js/ui/status/network.js:1508
|
||||
msgid "VPN Off"
|
||||
msgstr "VPN apagada"
|
||||
|
||||
#: js/ui/status/network.js:1643
|
||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
||||
msgid "Network Settings"
|
||||
msgstr "Configuración de la red"
|
||||
|
||||
#: js/ui/status/network.js:1603
|
||||
#, 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:1647
|
||||
#: js/ui/status/network.js:1607
|
||||
#, 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:1651
|
||||
#: js/ui/status/network.js:1611
|
||||
#, 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:1799
|
||||
#: js/ui/status/network.js:1759
|
||||
msgid "Connection failed"
|
||||
msgstr "Falló la conexión"
|
||||
|
||||
#: js/ui/status/network.js:1800
|
||||
#: js/ui/status/network.js:1760
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Falló la activación de la conexión de red"
|
||||
|
||||
@ -1783,27 +1875,27 @@ msgstr "%d %%"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Modo avión activado"
|
||||
|
||||
#: js/ui/status/system.js:384
|
||||
#: js/ui/status/system.js:228
|
||||
msgid "Switch User"
|
||||
msgstr "Cambiar de usuario"
|
||||
|
||||
#: js/ui/status/system.js:389
|
||||
#: js/ui/status/system.js:240
|
||||
msgid "Log Out"
|
||||
msgstr "Cerrar la sesión"
|
||||
|
||||
#: js/ui/status/system.js:394
|
||||
#: js/ui/status/system.js:252
|
||||
msgid "Account Settings"
|
||||
msgstr "Configuración de la cuenta"
|
||||
|
||||
#: js/ui/status/system.js:411
|
||||
#: js/ui/status/system.js:269
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Bloqueo de orientación"
|
||||
|
||||
#: js/ui/status/system.js:419
|
||||
#: js/ui/status/system.js:295
|
||||
msgid "Suspend"
|
||||
msgstr "Suspender"
|
||||
|
||||
#: js/ui/status/system.js:422
|
||||
#: js/ui/status/system.js:305
|
||||
msgid "Power Off"
|
||||
msgstr "Apagar"
|
||||
|
||||
@ -1815,6 +1907,36 @@ 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"
|
||||
@ -1823,11 +1945,11 @@ msgstr "Iniciar sesión como otro usuario"
|
||||
msgid "Unlock Window"
|
||||
msgstr "Desbloquear ventana"
|
||||
|
||||
#: js/ui/viewSelector.js:183
|
||||
#: js/ui/viewSelector.js:190
|
||||
msgid "Applications"
|
||||
msgstr "Aplicaciones"
|
||||
|
||||
#: js/ui/viewSelector.js:187
|
||||
#: js/ui/viewSelector.js:194
|
||||
msgid "Search"
|
||||
msgstr "Buscar"
|
||||
|
||||
@ -1836,22 +1958,22 @@ msgstr "Buscar"
|
||||
msgid "“%s” is ready"
|
||||
msgstr "«%s» está preparado"
|
||||
|
||||
#: js/ui/windowManager.js:71
|
||||
#: js/ui/windowManager.js:72
|
||||
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:83
|
||||
#: js/ui/windowManager.js:84
|
||||
msgid "Revert Settings"
|
||||
msgstr "Revertir configuración"
|
||||
|
||||
#: js/ui/windowManager.js:86
|
||||
#: js/ui/windowManager.js:87
|
||||
msgid "Keep Changes"
|
||||
msgstr "Mantener cambios"
|
||||
|
||||
#: js/ui/windowManager.js:104
|
||||
#: js/ui/windowManager.js:105
|
||||
#, javascript-format
|
||||
msgid "Settings changes will revert in %d second"
|
||||
msgid_plural "Settings changes will revert in %d seconds"
|
||||
@ -1860,7 +1982,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:659
|
||||
#: js/ui/windowManager.js:660
|
||||
#, javascript-format
|
||||
msgid "%d × %d"
|
||||
msgstr "%d × %d"
|
||||
@ -1938,21 +2060,21 @@ msgstr "Calendario de Evolution"
|
||||
msgid "evolution"
|
||||
msgstr "evolution"
|
||||
|
||||
#: src/main.c:372
|
||||
#: src/main.c:380
|
||||
msgid "Print version"
|
||||
msgstr "Imprimir versión"
|
||||
|
||||
#: src/main.c:378
|
||||
#: src/main.c:386
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Modo usado por GDM para la pantalla de inicio"
|
||||
|
||||
#: src/main.c:384
|
||||
#: src/main.c:392
|
||||
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:390
|
||||
#: src/main.c:398
|
||||
msgid "List possible modes"
|
||||
msgstr "Listar los modos posibles"
|
||||
|
||||
@ -2000,6 +2122,12 @@ 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"
|
||||
|
||||
@ -2353,12 +2481,6 @@ 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»"
|
||||
|
||||
@ -2815,9 +2937,6 @@ 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…"
|
||||
|
||||
@ -3095,15 +3214,9 @@ 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"
|
||||
|
||||
|
360
po/fur.po
360
po/fur.po
@ -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-07-28 11:38+0000\n"
|
||||
"PO-Revision-Date: 2017-07-25 15:43+0200\n"
|
||||
"POT-Creation-Date: 2017-10-04 18:03+0000\n"
|
||||
"PO-Revision-Date: 2017-10-11 08:34+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.2\n"
|
||||
"X-Generator: Poedit 2.0.3\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:947
|
||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
||||
msgid "Cancel"
|
||||
msgstr "Anule"
|
||||
|
||||
@ -402,6 +402,72 @@ 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"
|
||||
@ -561,44 +627,44 @@ msgstr "Dinee acès"
|
||||
msgid "Grant Access"
|
||||
msgstr "Garantìs l'acès"
|
||||
|
||||
#: js/ui/appDisplay.js:806
|
||||
#: js/ui/appDisplay.js:809
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Lis aplicazions dopradis dispès a vignaran mostradis culì"
|
||||
|
||||
#: js/ui/appDisplay.js:927
|
||||
#: js/ui/appDisplay.js:930
|
||||
msgid "Frequent"
|
||||
msgstr "Dispès"
|
||||
|
||||
#: js/ui/appDisplay.js:934
|
||||
#: js/ui/appDisplay.js:937
|
||||
msgid "All"
|
||||
msgstr "Dutis"
|
||||
|
||||
#: js/ui/appDisplay.js:1895
|
||||
#: js/ui/appDisplay.js:1915
|
||||
msgid "New Window"
|
||||
msgstr "Gnûf barcon"
|
||||
|
||||
#: js/ui/appDisplay.js:1909
|
||||
#: js/ui/appDisplay.js:1929
|
||||
msgid "Launch using Dedicated Graphics Card"
|
||||
msgstr "Invie doprant une schede grafiche dedicade"
|
||||
|
||||
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
|
||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Gjave dai preferîts"
|
||||
|
||||
#: js/ui/appDisplay.js:1942
|
||||
#: js/ui/appDisplay.js:1962
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Zonte tai preferîts"
|
||||
|
||||
#: js/ui/appDisplay.js:1952
|
||||
#: js/ui/appDisplay.js:1972
|
||||
msgid "Show Details"
|
||||
msgstr "Mostre Detais"
|
||||
|
||||
#: js/ui/appFavorites.js:140
|
||||
#: js/ui/appFavorites.js:141
|
||||
#, javascript-format
|
||||
msgid "%s has been added to your favorites."
|
||||
msgstr "%s al è stât zontât tai tiei preferîts."
|
||||
|
||||
#: js/ui/appFavorites.js:174
|
||||
#: js/ui/appFavorites.js:175
|
||||
#, javascript-format
|
||||
msgid "%s has been removed from your favorites."
|
||||
msgstr "%s al è stât gjavât dai tiei preferîts."
|
||||
@ -631,7 +697,7 @@ msgstr "Cambie sfont..."
|
||||
msgid "Display Settings"
|
||||
msgstr "Impostazions visôr"
|
||||
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
|
||||
msgid "Settings"
|
||||
msgstr "Impostazions"
|
||||
|
||||
@ -687,51 +753,51 @@ msgctxt "grid saturday"
|
||||
msgid "S"
|
||||
msgstr "S"
|
||||
|
||||
#: js/ui/calendar.js:442
|
||||
#: js/ui/calendar.js:449
|
||||
msgid "Previous month"
|
||||
msgstr "Mês indaûr"
|
||||
|
||||
#: js/ui/calendar.js:452
|
||||
#: js/ui/calendar.js:459
|
||||
msgid "Next month"
|
||||
msgstr "Prossim mês"
|
||||
|
||||
#: js/ui/calendar.js:605
|
||||
#: js/ui/calendar.js:612
|
||||
#, no-javascript-format
|
||||
msgctxt "date day number format"
|
||||
msgid "%d"
|
||||
msgstr "%d"
|
||||
|
||||
#: js/ui/calendar.js:660
|
||||
#: js/ui/calendar.js:667
|
||||
msgid "Week %V"
|
||||
msgstr "Setemane %V"
|
||||
|
||||
#. Translators: Shown in calendar event list for all day events
|
||||
#. * Keep it short, best if you can use less then 10 characters
|
||||
#.
|
||||
#: js/ui/calendar.js:729
|
||||
#: js/ui/calendar.js:736
|
||||
msgctxt "event list time"
|
||||
msgid "All Day"
|
||||
msgstr "Dut il dì"
|
||||
|
||||
#: js/ui/calendar.js:862
|
||||
#: js/ui/calendar.js:869
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d"
|
||||
msgstr "%A, %d di %B"
|
||||
|
||||
#: js/ui/calendar.js:866
|
||||
#: js/ui/calendar.js:873
|
||||
msgctxt "calendar heading"
|
||||
msgid "%A, %B %d, %Y"
|
||||
msgstr "%A, %d di %B dal %Y"
|
||||
|
||||
#: js/ui/calendar.js:1086
|
||||
#: js/ui/calendar.js:1093
|
||||
msgid "No Notifications"
|
||||
msgstr "Nissune notifiche"
|
||||
|
||||
#: js/ui/calendar.js:1089
|
||||
#: js/ui/calendar.js:1096
|
||||
msgid "No Events"
|
||||
msgstr "Nissun event"
|
||||
|
||||
#: js/ui/calendar.js:1117
|
||||
#: js/ui/calendar.js:1124
|
||||
msgid "Clear All"
|
||||
msgstr "Nete dut"
|
||||
|
||||
@ -765,7 +831,7 @@ msgstr "Dispositîf esterni tacât"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Dispositîf esterni distacât"
|
||||
|
||||
#: js/ui/components/autorunManager.js:354
|
||||
#: js/ui/components/autorunManager.js:358
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Vierç cun %s"
|
||||
@ -778,8 +844,8 @@ msgstr "Password:"
|
||||
msgid "Type again:"
|
||||
msgstr "Scîf di gnûf:"
|
||||
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
|
||||
#: js/ui/status/network.js:366 js/ui/status/network.js:950
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
||||
msgid "Connect"
|
||||
msgstr "Conet"
|
||||
|
||||
@ -854,7 +920,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:1760
|
||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
||||
msgid "Network Manager"
|
||||
msgstr "Ministradôr di rêt"
|
||||
|
||||
@ -885,7 +951,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:179
|
||||
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
|
||||
msgid "Windows"
|
||||
msgstr "Barcons"
|
||||
|
||||
@ -902,7 +968,7 @@ msgstr "Dash"
|
||||
#. Translators: This is the date format to use when the calendar popup is
|
||||
#. * shown - it is shown just below the time in the shell (e.g. "Tue 9:29 AM").
|
||||
#.
|
||||
#: js/ui/dateMenu.js:75
|
||||
#: js/ui/dateMenu.js:76
|
||||
msgid "%B %e %Y"
|
||||
msgstr "%e di %B dal %Y"
|
||||
|
||||
@ -910,19 +976,19 @@ msgstr "%e di %B dal %Y"
|
||||
#. * below the time in the shell; it should combine the weekday and the
|
||||
#. * date, e.g. "Tuesday February 17 2015".
|
||||
#.
|
||||
#: js/ui/dateMenu.js:82
|
||||
#: js/ui/dateMenu.js:83
|
||||
msgid "%A %B %e %Y"
|
||||
msgstr "%A %e di %B dal %Y"
|
||||
|
||||
#: js/ui/dateMenu.js:144
|
||||
#: js/ui/dateMenu.js:145
|
||||
msgid "Add world clocks…"
|
||||
msgstr "Zonte orlois mondiâi..."
|
||||
|
||||
#: js/ui/dateMenu.js:145
|
||||
#: js/ui/dateMenu.js:146
|
||||
msgid "World Clocks"
|
||||
msgstr "Orlois mondiâi"
|
||||
|
||||
#: js/ui/dateMenu.js:224
|
||||
#: js/ui/dateMenu.js:225
|
||||
msgid "Weather"
|
||||
msgstr "Timp"
|
||||
|
||||
@ -930,7 +996,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:281
|
||||
#: js/ui/dateMenu.js:289
|
||||
#, javascript-format
|
||||
msgid "%s all day."
|
||||
msgstr "%s dut il dì."
|
||||
@ -939,7 +1005,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:287
|
||||
#: js/ui/dateMenu.js:295
|
||||
#, javascript-format
|
||||
msgid "%s, then %s later."
|
||||
msgstr "%s, plui tart %s."
|
||||
@ -948,30 +1014,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:293
|
||||
#: js/ui/dateMenu.js:301
|
||||
#, 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:300
|
||||
#: js/ui/dateMenu.js:312
|
||||
msgid "Select a location…"
|
||||
msgstr "Selezione une posizion..."
|
||||
|
||||
#: js/ui/dateMenu.js:303
|
||||
#: js/ui/dateMenu.js:315
|
||||
msgid "Loading…"
|
||||
msgstr "Daûr a cjariâ..."
|
||||
|
||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||
#: js/ui/dateMenu.js:309
|
||||
#: js/ui/dateMenu.js:321
|
||||
#, javascript-format
|
||||
msgid "Feels like %s."
|
||||
msgstr "Si sint %s."
|
||||
|
||||
#: js/ui/dateMenu.js:312
|
||||
#: js/ui/dateMenu.js:324
|
||||
msgid "Go online for weather information"
|
||||
msgstr "Va in rêt pes informazions sul timp"
|
||||
|
||||
#: js/ui/dateMenu.js:314
|
||||
#: js/ui/dateMenu.js:326
|
||||
msgid "Weather information is currently unavailable"
|
||||
msgstr "Lis informazions sul timp al moment no son disponibilis"
|
||||
|
||||
@ -1134,19 +1200,34 @@ 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"
|
||||
@ -1195,7 +1276,7 @@ msgstr "Viôt sorzint"
|
||||
msgid "Web Page"
|
||||
msgstr "Pagjine Web"
|
||||
|
||||
#: js/ui/messageTray.js:1493
|
||||
#: js/ui/messageTray.js:1494
|
||||
msgid "System Information"
|
||||
msgstr "Informazion di sisteme"
|
||||
|
||||
@ -1335,7 +1416,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:415
|
||||
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
|
||||
msgid "Lock"
|
||||
msgstr "Bloche"
|
||||
|
||||
@ -1367,10 +1448,12 @@ msgid "No results."
|
||||
msgstr "Nissun risultât."
|
||||
|
||||
# o ancjemò %d
|
||||
#: js/ui/search.js:768
|
||||
#: js/ui/search.js:777
|
||||
#, javascript-format
|
||||
msgid "%d more"
|
||||
msgstr "Ancjemò %d"
|
||||
msgid_plural "%d more"
|
||||
msgstr[0] "%d altri"
|
||||
msgstr[1] "%d altris"
|
||||
|
||||
#: js/ui/shellEntry.js:25
|
||||
msgid "Copy"
|
||||
@ -1444,7 +1527,7 @@ msgstr "Test Larc"
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Impostazions Bluetooth"
|
||||
|
||||
@ -1464,13 +1547,13 @@ msgstr "Distudât"
|
||||
msgid "On"
|
||||
msgstr "Impiât"
|
||||
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
||||
msgid "Turn On"
|
||||
msgstr "Impie"
|
||||
|
||||
#: 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/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/rfkill.js:90 js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Distude"
|
||||
@ -1524,13 +1607,13 @@ msgid "<unknown>"
|
||||
msgstr "<no cognossût>"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
|
||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s distudât"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:468
|
||||
#: js/ui/status/network.js:457
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "%s tacât"
|
||||
@ -1538,190 +1621,189 @@ 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:473
|
||||
#: js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s no ministrât"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:476
|
||||
#: js/ui/status/network.js:465
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s daûr a disconeti"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
|
||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
||||
#, 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:486
|
||||
#: js/ui/status/network.js:475
|
||||
#, 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:494
|
||||
#: js/ui/status/network.js:483
|
||||
#, 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:498
|
||||
#: js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s no disponibil"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:501
|
||||
#: js/ui/status/network.js:490
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "Conession falide su %s"
|
||||
|
||||
#: js/ui/status/network.js:517
|
||||
#: js/ui/status/network.js:506
|
||||
msgid "Wired Settings"
|
||||
msgstr "Impostazions rêt vie fîl"
|
||||
|
||||
#: js/ui/status/network.js:559
|
||||
#: js/ui/status/network.js:548
|
||||
msgid "Mobile Broadband Settings"
|
||||
msgstr "Impostazions bande largje mobil"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
|
||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
||||
#, 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:606
|
||||
#: js/ui/status/network.js:595
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s disabilitât"
|
||||
|
||||
#: js/ui/status/network.js:646
|
||||
#: js/ui/status/network.js:635
|
||||
msgid "Connect to Internet"
|
||||
msgstr "Conet a internet"
|
||||
|
||||
#: js/ui/status/network.js:844
|
||||
#: js/ui/status/network.js:833
|
||||
msgid "Airplane Mode is On"
|
||||
msgstr "Modalitât avion piade"
|
||||
|
||||
#: js/ui/status/network.js:845
|
||||
#: js/ui/status/network.js:834
|
||||
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:846
|
||||
#: js/ui/status/network.js:835
|
||||
msgid "Turn Off Airplane Mode"
|
||||
msgstr "Distude modalitât avion"
|
||||
|
||||
#: js/ui/status/network.js:855
|
||||
#: js/ui/status/network.js:844
|
||||
msgid "Wi-Fi is Off"
|
||||
msgstr "Il Wi-Fi al è distudât"
|
||||
|
||||
#: js/ui/status/network.js:856
|
||||
#: js/ui/status/network.js:845
|
||||
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:857
|
||||
#: js/ui/status/network.js:846
|
||||
msgid "Turn On Wi-Fi"
|
||||
msgstr "Impie il Wi-Fi"
|
||||
|
||||
#: js/ui/status/network.js:882
|
||||
#: js/ui/status/network.js:871
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Rêts Wi-Fi"
|
||||
|
||||
#: js/ui/status/network.js:884
|
||||
#: js/ui/status/network.js:873
|
||||
msgid "Select a network"
|
||||
msgstr "Selezione une rêt"
|
||||
|
||||
#: js/ui/status/network.js:914
|
||||
#: js/ui/status/network.js:903
|
||||
msgid "No Networks"
|
||||
msgstr "Nissune rêt"
|
||||
|
||||
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
|
||||
#: js/ui/status/network.js:924 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:1202
|
||||
#: js/ui/status/network.js:1191
|
||||
msgid "Select Network"
|
||||
msgstr "Selezione rêt"
|
||||
|
||||
#: js/ui/status/network.js:1208
|
||||
#: js/ui/status/network.js:1197
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Impostazions Wi-Fi"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1327
|
||||
#: js/ui/status/network.js:1316
|
||||
#, javascript-format
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "Hotspot %s atîf"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1342
|
||||
#: js/ui/status/network.js:1331
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s distacât"
|
||||
|
||||
#: js/ui/status/network.js:1446
|
||||
#: js/ui/status/network.js:1435
|
||||
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:1449
|
||||
#: js/ui/status/network.js:1438
|
||||
msgid "authentication required"
|
||||
msgstr "autenticazion necessarie"
|
||||
|
||||
#: js/ui/status/network.js:1451
|
||||
#: js/ui/status/network.js:1440
|
||||
msgid "connection failed"
|
||||
msgstr "conession falide"
|
||||
|
||||
#: 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:1519
|
||||
#: js/ui/status/network.js:1494
|
||||
msgid "VPN Settings"
|
||||
msgstr "Impostazions VPN"
|
||||
|
||||
#: js/ui/status/network.js:1538
|
||||
#: js/ui/status/network.js:1498
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: js/ui/status/network.js:1548
|
||||
#: js/ui/status/network.js:1508
|
||||
msgid "VPN Off"
|
||||
msgstr "VPN distudât"
|
||||
|
||||
#: js/ui/status/network.js:1643
|
||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
||||
msgid "Network Settings"
|
||||
msgstr "Impostazions rêt"
|
||||
|
||||
#: js/ui/status/network.js:1603
|
||||
#, 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:1647
|
||||
#: js/ui/status/network.js:1607
|
||||
#, 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:1651
|
||||
#: js/ui/status/network.js:1611
|
||||
#, 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:1799
|
||||
#: js/ui/status/network.js:1759
|
||||
msgid "Connection failed"
|
||||
msgstr "Conession falide"
|
||||
|
||||
#: js/ui/status/network.js:1800
|
||||
#: js/ui/status/network.js:1760
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Ativazion de conession di rêt falide"
|
||||
|
||||
@ -1779,27 +1861,27 @@ msgstr "%d %%"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Modalitât Avion ative"
|
||||
|
||||
#: js/ui/status/system.js:384
|
||||
#: js/ui/status/system.js:228
|
||||
msgid "Switch User"
|
||||
msgstr "Cambie Utent"
|
||||
|
||||
#: js/ui/status/system.js:389
|
||||
#: js/ui/status/system.js:240
|
||||
msgid "Log Out"
|
||||
msgstr "Jes"
|
||||
|
||||
#: js/ui/status/system.js:394
|
||||
#: js/ui/status/system.js:252
|
||||
msgid "Account Settings"
|
||||
msgstr "Impostazions account"
|
||||
|
||||
#: js/ui/status/system.js:411
|
||||
#: js/ui/status/system.js:269
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Bloche Orientament"
|
||||
|
||||
#: js/ui/status/system.js:419
|
||||
#: js/ui/status/system.js:295
|
||||
msgid "Suspend"
|
||||
msgstr "Sospindi"
|
||||
|
||||
#: js/ui/status/system.js:422
|
||||
#: js/ui/status/system.js:305
|
||||
msgid "Power Off"
|
||||
msgstr "Distude"
|
||||
|
||||
@ -1811,6 +1893,34 @@ 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"
|
||||
@ -1819,11 +1929,11 @@ msgstr "Jentre come altri utent"
|
||||
msgid "Unlock Window"
|
||||
msgstr "Sbloche barcon"
|
||||
|
||||
#: js/ui/viewSelector.js:183
|
||||
#: js/ui/viewSelector.js:190
|
||||
msgid "Applications"
|
||||
msgstr "Aplicazions"
|
||||
|
||||
#: js/ui/viewSelector.js:187
|
||||
#: js/ui/viewSelector.js:194
|
||||
msgid "Search"
|
||||
msgstr "Cîr"
|
||||
|
||||
@ -1832,22 +1942,22 @@ msgstr "Cîr"
|
||||
msgid "“%s” is ready"
|
||||
msgstr "'%s' al è pront"
|
||||
|
||||
#: js/ui/windowManager.js:71
|
||||
#: js/ui/windowManager.js:72
|
||||
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:83
|
||||
#: js/ui/windowManager.js:84
|
||||
msgid "Revert Settings"
|
||||
msgstr "Ripristine impostazions"
|
||||
|
||||
#: js/ui/windowManager.js:86
|
||||
#: js/ui/windowManager.js:87
|
||||
msgid "Keep Changes"
|
||||
msgstr "Ten lis modifichis"
|
||||
|
||||
#: js/ui/windowManager.js:104
|
||||
#: js/ui/windowManager.js:105
|
||||
#, javascript-format
|
||||
msgid "Settings changes will revert in %d second"
|
||||
msgid_plural "Settings changes will revert in %d seconds"
|
||||
@ -1858,7 +1968,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:659
|
||||
#: js/ui/windowManager.js:660
|
||||
#, javascript-format
|
||||
msgid "%d × %d"
|
||||
msgstr "%d × %d"
|
||||
@ -1936,19 +2046,19 @@ msgstr "Calendari di Evolution"
|
||||
msgid "evolution"
|
||||
msgstr "evolution"
|
||||
|
||||
#: src/main.c:372
|
||||
#: src/main.c:380
|
||||
msgid "Print version"
|
||||
msgstr "Stampe version"
|
||||
|
||||
#: src/main.c:378
|
||||
#: src/main.c:386
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Modalitât doprade da GDM pe videade di acès"
|
||||
|
||||
#: src/main.c:384
|
||||
#: src/main.c:392
|
||||
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:390
|
||||
#: src/main.c:398
|
||||
msgid "List possible modes"
|
||||
msgstr "Liste modalitâts pussibilis"
|
||||
|
||||
@ -1996,6 +2106,12 @@ 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"
|
||||
|
||||
|
371
po/hr.po
371
po/hr.po
@ -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-07-20 03:49+0000\n"
|
||||
"PO-Revision-Date: 2017-07-25 20:05+0200\n"
|
||||
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
|
||||
"PO-Revision-Date: 2017-08-23 17:35+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.2\n"
|
||||
"X-Generator: Poedit 2.0.3\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:947
|
||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
||||
msgid "Cancel"
|
||||
msgstr "Odustani"
|
||||
|
||||
@ -367,7 +367,7 @@ msgstr "Odaberi sesiju"
|
||||
#. manually entering the username.
|
||||
#: js/gdm/loginDialog.js:458
|
||||
msgid "Not listed?"
|
||||
msgstr "Nije na popisu?"
|
||||
msgstr "Niste 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,6 +401,72 @@ 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"
|
||||
@ -566,35 +632,35 @@ msgstr "Zabrani pristup"
|
||||
msgid "Grant Access"
|
||||
msgstr "Dopusti pristup"
|
||||
|
||||
#: js/ui/appDisplay.js:806
|
||||
#: js/ui/appDisplay.js:809
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Najčešće korištene aplikacije će se pojaviti ovdje"
|
||||
|
||||
#: js/ui/appDisplay.js:927
|
||||
#: js/ui/appDisplay.js:930
|
||||
msgid "Frequent"
|
||||
msgstr "Najčešće"
|
||||
|
||||
#: js/ui/appDisplay.js:934
|
||||
#: js/ui/appDisplay.js:937
|
||||
msgid "All"
|
||||
msgstr "Sve"
|
||||
|
||||
#: js/ui/appDisplay.js:1895
|
||||
#: js/ui/appDisplay.js:1915
|
||||
msgid "New Window"
|
||||
msgstr "Novi prozor"
|
||||
|
||||
#: js/ui/appDisplay.js:1909
|
||||
#: js/ui/appDisplay.js:1929
|
||||
msgid "Launch using Dedicated Graphics Card"
|
||||
msgstr "Pokreni pomoću namjenske grafičke kartice"
|
||||
|
||||
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
|
||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Ukloni iz omiljenih"
|
||||
|
||||
#: js/ui/appDisplay.js:1942
|
||||
#: js/ui/appDisplay.js:1962
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Dodaj u omiljene"
|
||||
|
||||
#: js/ui/appDisplay.js:1952
|
||||
#: js/ui/appDisplay.js:1972
|
||||
msgid "Show Details"
|
||||
msgstr "Prikaži pojedinosti"
|
||||
|
||||
@ -630,13 +696,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:407
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
|
||||
msgid "Settings"
|
||||
msgstr "Postavke"
|
||||
|
||||
@ -783,8 +849,8 @@ msgstr "Lozinka:"
|
||||
msgid "Type again:"
|
||||
msgstr "Pokušaj ponovno:"
|
||||
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
|
||||
#: js/ui/status/network.js:366 js/ui/status/network.js:950
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
||||
msgid "Connect"
|
||||
msgstr "Povezivanje"
|
||||
|
||||
@ -793,24 +859,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"
|
||||
@ -830,7 +896,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"
|
||||
@ -846,7 +912,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"
|
||||
@ -858,7 +924,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:1760
|
||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
||||
msgid "Network Manager"
|
||||
msgstr "Mrežni upravitelj"
|
||||
|
||||
@ -889,7 +955,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:179
|
||||
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
|
||||
msgid "Windows"
|
||||
msgstr "Prozori"
|
||||
|
||||
@ -920,7 +986,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"
|
||||
@ -934,7 +1000,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:281
|
||||
#: js/ui/dateMenu.js:286
|
||||
#, javascript-format
|
||||
msgid "%s all day."
|
||||
msgstr "%s cijeli dan."
|
||||
@ -943,7 +1009,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:287
|
||||
#: js/ui/dateMenu.js:292
|
||||
#, javascript-format
|
||||
msgid "%s, then %s later."
|
||||
msgstr "%s, zatim %s kasnije."
|
||||
@ -952,30 +1018,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:293
|
||||
#: js/ui/dateMenu.js:298
|
||||
#, javascript-format
|
||||
msgid "%s, then %s, followed by %s later."
|
||||
msgstr "%s, zatim %s, praćena s %s kasnije."
|
||||
|
||||
#: js/ui/dateMenu.js:300
|
||||
#: js/ui/dateMenu.js:309
|
||||
msgid "Select a location…"
|
||||
msgstr "Odaberi lokaciju..."
|
||||
msgstr "Odaberi lokaciju…"
|
||||
|
||||
#: js/ui/dateMenu.js:303
|
||||
#: js/ui/dateMenu.js:312
|
||||
msgid "Loading…"
|
||||
msgstr "Pretraživanje…"
|
||||
|
||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||
#: js/ui/dateMenu.js:309
|
||||
#: js/ui/dateMenu.js:318
|
||||
#, javascript-format
|
||||
msgid "Feels like %s."
|
||||
msgstr "Kao da je %s."
|
||||
|
||||
#: js/ui/dateMenu.js:312
|
||||
#: js/ui/dateMenu.js:321
|
||||
msgid "Go online for weather information"
|
||||
msgstr "Posjetite za opširnije vremenske informacije"
|
||||
|
||||
#: js/ui/dateMenu.js:314
|
||||
#: js/ui/dateMenu.js:323
|
||||
msgid "Weather information is currently unavailable"
|
||||
msgstr "Vremenske informacije su trenutno nedostupne"
|
||||
|
||||
@ -1145,19 +1211,34 @@ msgstr "Instaliraj"
|
||||
msgid "Download and install “%s” from extensions.gnome.org?"
|
||||
msgstr "Preuzmi i instaliraj “%s” sa extensions.gnome.org?"
|
||||
|
||||
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
|
||||
#. 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
|
||||
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"
|
||||
@ -1234,11 +1315,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"
|
||||
@ -1262,7 +1343,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"
|
||||
@ -1306,7 +1387,7 @@ msgstr "Gornja traka"
|
||||
#. simply result in invisible toggle switches.
|
||||
#: js/ui/popupMenu.js:291
|
||||
msgid "toggle-switch-us"
|
||||
msgstr ""
|
||||
msgstr "toggle-switch-us"
|
||||
|
||||
#: js/ui/runDialog.js:71
|
||||
msgid "Enter a Command"
|
||||
@ -1322,7 +1403,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
|
||||
@ -1346,7 +1427,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:415
|
||||
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
|
||||
msgid "Lock"
|
||||
msgstr "Zaključaj"
|
||||
|
||||
@ -1377,10 +1458,13 @@ msgstr "Pretraživanje…"
|
||||
msgid "No results."
|
||||
msgstr "Nema rezultata."
|
||||
|
||||
#: js/ui/search.js:768
|
||||
#: js/ui/search.js:777
|
||||
#, javascript-format
|
||||
msgid "%d more"
|
||||
msgstr "Još %d"
|
||||
msgid_plural "%d more"
|
||||
msgstr[0] "Još %d"
|
||||
msgstr[1] "Još %d"
|
||||
msgstr[2] "Još %d"
|
||||
|
||||
#: js/ui/shellEntry.js:25
|
||||
msgid "Copy"
|
||||
@ -1454,7 +1538,7 @@ msgstr "Velik tekst"
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Bluetooth postavke"
|
||||
|
||||
@ -1475,13 +1559,13 @@ msgstr "Isključeno"
|
||||
msgid "On"
|
||||
msgstr "Uključeno"
|
||||
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
||||
msgid "Turn On"
|
||||
msgstr "Uključi"
|
||||
|
||||
#: 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/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/rfkill.js:90 js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Isključi"
|
||||
@ -1534,13 +1618,13 @@ msgid "<unknown>"
|
||||
msgstr "<nepoznato>"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
|
||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s isključena"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:468
|
||||
#: js/ui/status/network.js:457
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "%s povezana"
|
||||
@ -1548,165 +1632,164 @@ 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:473
|
||||
#: js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s neupravljana"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:476
|
||||
#: js/ui/status/network.js:465
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s prekidanje povezivanja"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
|
||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
||||
#, 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:486
|
||||
#: js/ui/status/network.js:475
|
||||
#, 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:494
|
||||
#: js/ui/status/network.js:483
|
||||
#, 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:498
|
||||
#: js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s nedostupna"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:501
|
||||
#: js/ui/status/network.js:490
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "%s neuspješno povezivanje"
|
||||
|
||||
#: js/ui/status/network.js:517
|
||||
#: js/ui/status/network.js:506
|
||||
msgid "Wired Settings"
|
||||
msgstr "Postavke žične mreže"
|
||||
|
||||
#: js/ui/status/network.js:559
|
||||
#: js/ui/status/network.js:548
|
||||
msgid "Mobile Broadband Settings"
|
||||
msgstr "Mobilni internet"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
|
||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
||||
#, 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:606
|
||||
#: js/ui/status/network.js:595
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s onemogućeno"
|
||||
|
||||
#: js/ui/status/network.js:646
|
||||
#: js/ui/status/network.js:635
|
||||
msgid "Connect to Internet"
|
||||
msgstr "Povežite se na internet"
|
||||
|
||||
#: js/ui/status/network.js:844
|
||||
#: js/ui/status/network.js:833
|
||||
msgid "Airplane Mode is On"
|
||||
msgstr "Zrakoplovni način rada je omogućen"
|
||||
|
||||
#: js/ui/status/network.js:845
|
||||
#: js/ui/status/network.js:834
|
||||
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:846
|
||||
#: js/ui/status/network.js:835
|
||||
msgid "Turn Off Airplane Mode"
|
||||
msgstr "Isključi zrakoplovni način rada"
|
||||
|
||||
#: js/ui/status/network.js:855
|
||||
#: js/ui/status/network.js:844
|
||||
msgid "Wi-Fi is Off"
|
||||
msgstr "Bežična mreža isključena"
|
||||
|
||||
#: js/ui/status/network.js:856
|
||||
#: js/ui/status/network.js:845
|
||||
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:857
|
||||
#: js/ui/status/network.js:846
|
||||
msgid "Turn On Wi-Fi"
|
||||
msgstr "Uključi bežičnu mrežu"
|
||||
|
||||
#: js/ui/status/network.js:882
|
||||
#: js/ui/status/network.js:871
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Bežične mreže"
|
||||
|
||||
#: js/ui/status/network.js:884
|
||||
#: js/ui/status/network.js:873
|
||||
msgid "Select a network"
|
||||
msgstr "Odaberi mrežu"
|
||||
|
||||
#: js/ui/status/network.js:914
|
||||
#: js/ui/status/network.js:903
|
||||
msgid "No Networks"
|
||||
msgstr "Nema mreža"
|
||||
|
||||
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
|
||||
#: js/ui/status/network.js:924 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:1202
|
||||
#: js/ui/status/network.js:1191
|
||||
msgid "Select Network"
|
||||
msgstr "Odaberi mrežu"
|
||||
|
||||
#: js/ui/status/network.js:1208
|
||||
#: js/ui/status/network.js:1197
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Postavke bežične mreže"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1327
|
||||
#: js/ui/status/network.js:1316
|
||||
#, javascript-format
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "%s pristupna točka aktivna"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1342
|
||||
#: js/ui/status/network.js:1331
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s nije povezana"
|
||||
|
||||
#: js/ui/status/network.js:1446
|
||||
#: js/ui/status/network.js:1435
|
||||
msgid "connecting…"
|
||||
msgstr "povezivanje…"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: js/ui/status/network.js:1449
|
||||
#: js/ui/status/network.js:1438
|
||||
msgid "authentication required"
|
||||
msgstr "potrebna je ovjera"
|
||||
|
||||
#: js/ui/status/network.js:1451
|
||||
#: js/ui/status/network.js:1440
|
||||
msgid "connection failed"
|
||||
msgstr "neuspješno povezivanje"
|
||||
|
||||
#: 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:1519
|
||||
#: js/ui/status/network.js:1494
|
||||
msgid "VPN Settings"
|
||||
msgstr "VPN postavke"
|
||||
|
||||
#: js/ui/status/network.js:1538
|
||||
#: js/ui/status/network.js:1498
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: js/ui/status/network.js:1548
|
||||
#: js/ui/status/network.js:1508
|
||||
msgid "VPN Off"
|
||||
msgstr "VPN isključen"
|
||||
|
||||
#: js/ui/status/network.js:1643
|
||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
||||
msgid "Network Settings"
|
||||
msgstr "Mrežne postavke"
|
||||
|
||||
#: js/ui/status/network.js:1603
|
||||
#, javascript-format
|
||||
msgid "%s Wired Connection"
|
||||
msgid_plural "%s Wired Connections"
|
||||
@ -1714,7 +1797,7 @@ msgstr[0] "%s žično povezivanje"
|
||||
msgstr[1] "%s žična povezivanja"
|
||||
msgstr[2] "%s žičnih povezivanja"
|
||||
|
||||
#: js/ui/status/network.js:1647
|
||||
#: js/ui/status/network.js:1607
|
||||
#, javascript-format
|
||||
msgid "%s Wi-Fi Connection"
|
||||
msgid_plural "%s Wi-Fi Connections"
|
||||
@ -1722,7 +1805,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:1651
|
||||
#: js/ui/status/network.js:1611
|
||||
#, javascript-format
|
||||
msgid "%s Modem Connection"
|
||||
msgid_plural "%s Modem Connections"
|
||||
@ -1730,11 +1813,11 @@ msgstr[0] "%s modemsko povezivanje"
|
||||
msgstr[1] "%s modemska povezivanja"
|
||||
msgstr[2] "%s modemskih povezivanja"
|
||||
|
||||
#: js/ui/status/network.js:1799
|
||||
#: js/ui/status/network.js:1759
|
||||
msgid "Connection failed"
|
||||
msgstr "Neuspješno povezivanje"
|
||||
|
||||
#: js/ui/status/network.js:1800
|
||||
#: js/ui/status/network.js:1760
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktiviranje mrežnog povezivanja je neuspjelo"
|
||||
|
||||
@ -1766,7 +1849,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
|
||||
@ -1792,27 +1875,27 @@ msgstr "%d %%"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Zrakoplovni način rada uključen"
|
||||
|
||||
#: js/ui/status/system.js:384
|
||||
#: js/ui/status/system.js:228
|
||||
msgid "Switch User"
|
||||
msgstr "Zamijeni korisnika"
|
||||
|
||||
#: js/ui/status/system.js:389
|
||||
#: js/ui/status/system.js:240
|
||||
msgid "Log Out"
|
||||
msgstr "Odjava"
|
||||
|
||||
#: js/ui/status/system.js:394
|
||||
#: js/ui/status/system.js:252
|
||||
msgid "Account Settings"
|
||||
msgstr "Postavke računa"
|
||||
|
||||
#: js/ui/status/system.js:411
|
||||
#: js/ui/status/system.js:269
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Zaključavanje orjentacije"
|
||||
|
||||
#: js/ui/status/system.js:419
|
||||
#: js/ui/status/system.js:295
|
||||
msgid "Suspend"
|
||||
msgstr "Suspendiraj"
|
||||
|
||||
#: js/ui/status/system.js:422
|
||||
#: js/ui/status/system.js:305
|
||||
msgid "Power Off"
|
||||
msgstr "Isključivanje"
|
||||
|
||||
@ -1824,6 +1907,34 @@ 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"
|
||||
@ -1832,11 +1943,11 @@ msgstr "Prijavi se kao drugi korisnik"
|
||||
msgid "Unlock Window"
|
||||
msgstr "Otključaj prozor"
|
||||
|
||||
#: js/ui/viewSelector.js:183
|
||||
#: js/ui/viewSelector.js:190
|
||||
msgid "Applications"
|
||||
msgstr "Aplikacije"
|
||||
|
||||
#: js/ui/viewSelector.js:187
|
||||
#: js/ui/viewSelector.js:194
|
||||
msgid "Search"
|
||||
msgstr "Pretraži"
|
||||
|
||||
@ -1845,22 +1956,22 @@ msgstr "Pretraži"
|
||||
msgid "“%s” is ready"
|
||||
msgstr "“%s” je spreman"
|
||||
|
||||
#: js/ui/windowManager.js:71
|
||||
#: js/ui/windowManager.js:72
|
||||
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:83
|
||||
#: js/ui/windowManager.js:84
|
||||
msgid "Revert Settings"
|
||||
msgstr "Vrati postavke"
|
||||
|
||||
#: js/ui/windowManager.js:86
|
||||
#: js/ui/windowManager.js:87
|
||||
msgid "Keep Changes"
|
||||
msgstr "Zadrži promjene"
|
||||
|
||||
#: js/ui/windowManager.js:104
|
||||
#: js/ui/windowManager.js:105
|
||||
#, javascript-format
|
||||
msgid "Settings changes will revert in %d second"
|
||||
msgid_plural "Settings changes will revert in %d seconds"
|
||||
@ -1870,7 +1981,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:659
|
||||
#: js/ui/windowManager.js:660
|
||||
#, javascript-format
|
||||
msgid "%d × %d"
|
||||
msgstr "%d × %d"
|
||||
@ -1948,19 +2059,19 @@ msgstr "Evolution kalendar"
|
||||
msgid "evolution"
|
||||
msgstr "evolution"
|
||||
|
||||
#: src/main.c:372
|
||||
#: src/main.c:380
|
||||
msgid "Print version"
|
||||
msgstr "Ispiši inačicu"
|
||||
|
||||
#: src/main.c:378
|
||||
#: src/main.c:386
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Način koji koristi GDM za zaslon prijave"
|
||||
|
||||
#: src/main.c:384
|
||||
#: src/main.c:392
|
||||
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:390
|
||||
#: src/main.c:398
|
||||
msgid "List possible modes"
|
||||
msgstr "Popis mogućih načina"
|
||||
|
||||
@ -2010,6 +2121,12 @@ 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"
|
||||
|
||||
|
401
po/id.po
401
po/id.po
@ -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, 2011, 2012, 2013, 2014.
|
||||
# Andika Triwidada <andika@gmail.com>, 2010-2014, 2017.
|
||||
# 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-07-16 17:31+0000\n"
|
||||
"PO-Revision-Date: 2017-07-17 10:54+0700\n"
|
||||
"Last-Translator: Kukuh Syafaat <syafaatkukuh@gmail.com>\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"
|
||||
"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.2\n"
|
||||
"X-Generator: Poedit 2.0.3\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:195
|
||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:947
|
||||
#: js/ui/endSessionDialog.js:482 js/ui/extensionDownloader.js:197
|
||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
||||
msgid "Cancel"
|
||||
msgstr "Batal"
|
||||
|
||||
@ -404,6 +404,72 @@ 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"
|
||||
@ -557,35 +623,35 @@ msgstr "Tolak Akses"
|
||||
msgid "Grant Access"
|
||||
msgstr "Beri Akses"
|
||||
|
||||
#: js/ui/appDisplay.js:813
|
||||
#: js/ui/appDisplay.js:809
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Aplikasi yang sering dipakai akan muncul di sini"
|
||||
|
||||
#: js/ui/appDisplay.js:934
|
||||
#: js/ui/appDisplay.js:930
|
||||
msgid "Frequent"
|
||||
msgstr "Sering"
|
||||
|
||||
#: js/ui/appDisplay.js:941
|
||||
#: js/ui/appDisplay.js:937
|
||||
msgid "All"
|
||||
msgstr "Semua"
|
||||
|
||||
#: js/ui/appDisplay.js:1902
|
||||
#: js/ui/appDisplay.js:1915
|
||||
msgid "New Window"
|
||||
msgstr "Jendela Baru"
|
||||
|
||||
#: js/ui/appDisplay.js:1916
|
||||
#: js/ui/appDisplay.js:1929
|
||||
msgid "Launch using Dedicated Graphics Card"
|
||||
msgstr "Luncurkan menggunakan Kartu Grafis Terdedikasi"
|
||||
|
||||
#: js/ui/appDisplay.js:1943 js/ui/dash.js:289
|
||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Hapus dari Favorit"
|
||||
|
||||
#: js/ui/appDisplay.js:1949
|
||||
#: js/ui/appDisplay.js:1962
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Tambah ke Favorit"
|
||||
|
||||
#: js/ui/appDisplay.js:1959
|
||||
#: js/ui/appDisplay.js:1972
|
||||
msgid "Show Details"
|
||||
msgstr "Tampilkan Rincian"
|
||||
|
||||
@ -627,7 +693,7 @@ msgstr "Ubah Latar…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Pengaturan Tampilan"
|
||||
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
|
||||
msgid "Settings"
|
||||
msgstr "Pengaturan"
|
||||
|
||||
@ -761,7 +827,7 @@ msgstr "Drive eksternal tersambung"
|
||||
msgid "External drive disconnected"
|
||||
msgstr "Drive eksternal terputus"
|
||||
|
||||
#: js/ui/components/autorunManager.js:355
|
||||
#: js/ui/components/autorunManager.js:354
|
||||
#, javascript-format
|
||||
msgid "Open with %s"
|
||||
msgstr "Buka dengan %s"
|
||||
@ -774,8 +840,8 @@ msgstr "Sandi:"
|
||||
msgid "Type again:"
|
||||
msgstr "Ketik lagi:"
|
||||
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
|
||||
#: js/ui/status/network.js:366 js/ui/status/network.js:950
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
||||
msgid "Connect"
|
||||
msgstr "Sambung"
|
||||
|
||||
@ -850,7 +916,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:1760
|
||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
||||
msgid "Network Manager"
|
||||
msgstr "Manajer Jaringan"
|
||||
|
||||
@ -881,7 +947,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:179
|
||||
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
|
||||
msgid "Windows"
|
||||
msgstr "Jendela"
|
||||
|
||||
@ -926,7 +992,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:281
|
||||
#: js/ui/dateMenu.js:286
|
||||
#, javascript-format
|
||||
msgid "%s all day."
|
||||
msgstr "%s sepanjang hari."
|
||||
@ -935,7 +1001,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:287
|
||||
#: js/ui/dateMenu.js:292
|
||||
#, javascript-format
|
||||
msgid "%s, then %s later."
|
||||
msgstr "%s, kemudian %s."
|
||||
@ -944,30 +1010,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:293
|
||||
#: js/ui/dateMenu.js:298
|
||||
#, javascript-format
|
||||
msgid "%s, then %s, followed by %s later."
|
||||
msgstr "%s, kemudian %s, diikuti dengan %s nanti."
|
||||
|
||||
#: js/ui/dateMenu.js:300
|
||||
#: js/ui/dateMenu.js:309
|
||||
msgid "Select a location…"
|
||||
msgstr "Pilih lokasi…"
|
||||
|
||||
#: js/ui/dateMenu.js:303
|
||||
#: js/ui/dateMenu.js:312
|
||||
msgid "Loading…"
|
||||
msgstr "Memuat…"
|
||||
|
||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||
#: js/ui/dateMenu.js:309
|
||||
#: js/ui/dateMenu.js:318
|
||||
#, javascript-format
|
||||
msgid "Feels like %s."
|
||||
msgstr "Terasa seperti %s."
|
||||
|
||||
#: js/ui/dateMenu.js:312
|
||||
#: js/ui/dateMenu.js:321
|
||||
msgid "Go online for weather information"
|
||||
msgstr "Pergi daring untuk informasi cuaca"
|
||||
|
||||
#: js/ui/dateMenu.js:314
|
||||
#: js/ui/dateMenu.js:323
|
||||
msgid "Weather information is currently unavailable"
|
||||
msgstr "Informasi cuaca saat ini tidak tersedia"
|
||||
|
||||
@ -1113,28 +1179,43 @@ msgstr "%s (jarak jauh)"
|
||||
msgid "%s (console)"
|
||||
msgstr "%s (konsol)"
|
||||
|
||||
#: js/ui/extensionDownloader.js:199
|
||||
#: js/ui/extensionDownloader.js:201
|
||||
msgid "Install"
|
||||
msgstr "Pasang"
|
||||
|
||||
#: js/ui/extensionDownloader.js:204
|
||||
#: js/ui/extensionDownloader.js:206
|
||||
#, javascript-format
|
||||
msgid "Download and install “%s” from extensions.gnome.org?"
|
||||
msgstr "Unduh dan pasang \"%s\" dari extensions.gnome.org?"
|
||||
|
||||
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
|
||||
#. 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
|
||||
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"
|
||||
@ -1159,7 +1240,7 @@ msgstr "Diaktifkan"
|
||||
|
||||
#. translators:
|
||||
#. * The device has been disabled
|
||||
#: js/ui/lookingGlass.js:718 src/gvc/gvc-mixer-control.c:1866
|
||||
#: js/ui/lookingGlass.js:718 subprojects/gvc/gvc-mixer-control.c:1866
|
||||
msgid "Disabled"
|
||||
msgstr "Dinonaktifkan"
|
||||
|
||||
@ -1233,27 +1314,27 @@ msgstr "Ganti monitor"
|
||||
msgid "Assign keystroke"
|
||||
msgstr "Tetapkan keystroke"
|
||||
|
||||
#: js/ui/padOsd.js:209
|
||||
#: js/ui/padOsd.js:220
|
||||
msgid "Done"
|
||||
msgstr "Selesai"
|
||||
|
||||
#: js/ui/padOsd.js:708
|
||||
#: js/ui/padOsd.js:734
|
||||
msgid "Edit…"
|
||||
msgstr "Sunting…"
|
||||
|
||||
#: js/ui/padOsd.js:748 js/ui/padOsd.js:810
|
||||
#: js/ui/padOsd.js:774 js/ui/padOsd.js:879
|
||||
msgid "None"
|
||||
msgstr "Nihil"
|
||||
|
||||
#: js/ui/padOsd.js:793
|
||||
#: js/ui/padOsd.js:833
|
||||
msgid "Press a button to configure"
|
||||
msgstr "Tekan tombol untuk mengkonfigurasi"
|
||||
|
||||
#: js/ui/padOsd.js:794
|
||||
#: js/ui/padOsd.js:834
|
||||
msgid "Press Esc to exit"
|
||||
msgstr "Tekan Esc untuk keluar"
|
||||
|
||||
#: js/ui/padOsd.js:797
|
||||
#: js/ui/padOsd.js:837
|
||||
msgid "Press any key to exit"
|
||||
msgstr "Tekan tombol apa saja untuk keluar"
|
||||
|
||||
@ -1320,7 +1401,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:415
|
||||
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
|
||||
msgid "Lock"
|
||||
msgstr "Kunci"
|
||||
|
||||
@ -1351,10 +1432,11 @@ msgstr "Mencari…"
|
||||
msgid "No results."
|
||||
msgstr "Tak ada yang cocok."
|
||||
|
||||
#: js/ui/search.js:768
|
||||
#: js/ui/search.js:777
|
||||
#, javascript-format
|
||||
msgid "%d more"
|
||||
msgstr "%d lagi"
|
||||
msgid_plural "%d more"
|
||||
msgstr[0] "%d lagi"
|
||||
|
||||
#: js/ui/shellEntry.js:25
|
||||
msgid "Copy"
|
||||
@ -1428,7 +1510,7 @@ msgstr "Teks Besar"
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Pengaturan Bluetooth"
|
||||
|
||||
@ -1447,13 +1529,13 @@ msgstr "Mati"
|
||||
msgid "On"
|
||||
msgstr "Hidup"
|
||||
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
||||
msgid "Turn On"
|
||||
msgstr "Nyalakan"
|
||||
|
||||
#: 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/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/rfkill.js:90 js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Matikan"
|
||||
@ -1505,13 +1587,13 @@ msgid "<unknown>"
|
||||
msgstr "<tak dikenal>"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
|
||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s Mati"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:468
|
||||
#: js/ui/status/network.js:457
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "%s Tersambung"
|
||||
@ -1519,187 +1601,186 @@ 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:473
|
||||
#: js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s Tak Dikelola"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:476
|
||||
#: js/ui/status/network.js:465
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s Memutus"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
|
||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
||||
#, 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:486
|
||||
#: js/ui/status/network.js:475
|
||||
#, 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:494
|
||||
#: js/ui/status/network.js:483
|
||||
#, 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:498
|
||||
#: js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s Tak tersedia"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:501
|
||||
#: js/ui/status/network.js:490
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "Koneksi %s Gagal"
|
||||
|
||||
#: js/ui/status/network.js:517
|
||||
#: js/ui/status/network.js:506
|
||||
msgid "Wired Settings"
|
||||
msgstr "Pengaturan Kabel"
|
||||
|
||||
#: js/ui/status/network.js:559
|
||||
#: js/ui/status/network.js:548
|
||||
msgid "Mobile Broadband Settings"
|
||||
msgstr "Pengaturan Data Seluler"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
|
||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
||||
#, 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:606
|
||||
#: js/ui/status/network.js:595
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s Dinonaktifkan"
|
||||
|
||||
#: js/ui/status/network.js:646
|
||||
#: js/ui/status/network.js:635
|
||||
msgid "Connect to Internet"
|
||||
msgstr "Sambungkan ke Internet"
|
||||
|
||||
#: js/ui/status/network.js:844
|
||||
#: js/ui/status/network.js:833
|
||||
msgid "Airplane Mode is On"
|
||||
msgstr "Mode Pesawat Terbang Menyala"
|
||||
|
||||
#: js/ui/status/network.js:845
|
||||
#: js/ui/status/network.js:834
|
||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||
msgstr "Wi-Fi dinonaktifkan ketika mode pesawat terbang menyala."
|
||||
|
||||
#: js/ui/status/network.js:846
|
||||
#: js/ui/status/network.js:835
|
||||
msgid "Turn Off Airplane Mode"
|
||||
msgstr "Matikan Mode Pesawat Terbang"
|
||||
|
||||
#: js/ui/status/network.js:855
|
||||
#: js/ui/status/network.js:844
|
||||
msgid "Wi-Fi is Off"
|
||||
msgstr "Wi-Fi Mati"
|
||||
|
||||
#: js/ui/status/network.js:856
|
||||
#: js/ui/status/network.js:845
|
||||
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:857
|
||||
#: js/ui/status/network.js:846
|
||||
msgid "Turn On Wi-Fi"
|
||||
msgstr "Nyalakan Wi-Fi"
|
||||
|
||||
#: js/ui/status/network.js:882
|
||||
#: js/ui/status/network.js:871
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Jaringan Wi-Fi"
|
||||
|
||||
#: js/ui/status/network.js:884
|
||||
#: js/ui/status/network.js:873
|
||||
msgid "Select a network"
|
||||
msgstr "Pilih jaringan"
|
||||
|
||||
#: js/ui/status/network.js:914
|
||||
#: js/ui/status/network.js:903
|
||||
msgid "No Networks"
|
||||
msgstr "Tiada Jaringan"
|
||||
|
||||
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
|
||||
#: js/ui/status/network.js:924 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:1202
|
||||
#: js/ui/status/network.js:1191
|
||||
msgid "Select Network"
|
||||
msgstr "Pilih Jaringan"
|
||||
|
||||
#: js/ui/status/network.js:1208
|
||||
#: js/ui/status/network.js:1197
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Pengaturan Wi-Fi"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1327
|
||||
#: js/ui/status/network.js:1316
|
||||
#, javascript-format
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "%s Hotspot Aktif"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1342
|
||||
#: js/ui/status/network.js:1331
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s Tak Tersambung"
|
||||
|
||||
#: js/ui/status/network.js:1446
|
||||
#: js/ui/status/network.js:1435
|
||||
msgid "connecting…"
|
||||
msgstr "menghubungi..."
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: js/ui/status/network.js:1449
|
||||
#: js/ui/status/network.js:1438
|
||||
msgid "authentication required"
|
||||
msgstr "diperlukan otentikasi"
|
||||
|
||||
#: js/ui/status/network.js:1451
|
||||
#: js/ui/status/network.js:1440
|
||||
msgid "connection failed"
|
||||
msgstr "koneksi gagal"
|
||||
|
||||
#: 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:1519
|
||||
#: js/ui/status/network.js:1494
|
||||
msgid "VPN Settings"
|
||||
msgstr "Pengaturan VPN"
|
||||
|
||||
#: js/ui/status/network.js:1538
|
||||
#: js/ui/status/network.js:1498
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: js/ui/status/network.js:1548
|
||||
#: js/ui/status/network.js:1508
|
||||
msgid "VPN Off"
|
||||
msgstr "VPN Mati"
|
||||
|
||||
#: js/ui/status/network.js:1643
|
||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
||||
msgid "Network Settings"
|
||||
msgstr "Pengaturan Jaringan"
|
||||
|
||||
#: js/ui/status/network.js:1603
|
||||
#, javascript-format
|
||||
msgid "%s Wired Connection"
|
||||
msgid_plural "%s Wired Connections"
|
||||
msgstr[0] "%s Koneksi Kabel"
|
||||
|
||||
#: js/ui/status/network.js:1647
|
||||
#: js/ui/status/network.js:1607
|
||||
#, javascript-format
|
||||
msgid "%s Wi-Fi Connection"
|
||||
msgid_plural "%s Wi-Fi Connections"
|
||||
msgstr[0] "%s Koneksi Wi-Fi"
|
||||
|
||||
#: js/ui/status/network.js:1651
|
||||
#: js/ui/status/network.js:1611
|
||||
#, javascript-format
|
||||
msgid "%s Modem Connection"
|
||||
msgid_plural "%s Modem Connections"
|
||||
msgstr[0] "%s Koneksi Modem"
|
||||
|
||||
#: js/ui/status/network.js:1799
|
||||
#: js/ui/status/network.js:1759
|
||||
msgid "Connection failed"
|
||||
msgstr "Koneksi gagal"
|
||||
|
||||
#: js/ui/status/network.js:1800
|
||||
#: js/ui/status/network.js:1760
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Aktivasi koneksi jaringan gagal"
|
||||
|
||||
@ -1757,27 +1838,27 @@ msgstr "%d %%"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Mode Pesawat Terbang Aktif"
|
||||
|
||||
#: js/ui/status/system.js:384
|
||||
#: js/ui/status/system.js:228
|
||||
msgid "Switch User"
|
||||
msgstr "Ganti Pengguna"
|
||||
|
||||
#: js/ui/status/system.js:389
|
||||
#: js/ui/status/system.js:240
|
||||
msgid "Log Out"
|
||||
msgstr "Keluar"
|
||||
|
||||
#: js/ui/status/system.js:394
|
||||
#: js/ui/status/system.js:252
|
||||
msgid "Account Settings"
|
||||
msgstr "Pengaturan Akun"
|
||||
|
||||
#: js/ui/status/system.js:411
|
||||
#: js/ui/status/system.js:269
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Kunci Orientasi"
|
||||
|
||||
#: js/ui/status/system.js:419
|
||||
#: js/ui/status/system.js:295
|
||||
msgid "Suspend"
|
||||
msgstr "Suspensi"
|
||||
|
||||
#: js/ui/status/system.js:422
|
||||
#: js/ui/status/system.js:305
|
||||
msgid "Power Off"
|
||||
msgstr "Matikan"
|
||||
|
||||
@ -1789,6 +1870,34 @@ 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"
|
||||
@ -1797,11 +1906,11 @@ msgstr "Masuk sebagai pengguna lain"
|
||||
msgid "Unlock Window"
|
||||
msgstr "Buka Kunci Jendela"
|
||||
|
||||
#: js/ui/viewSelector.js:183
|
||||
#: js/ui/viewSelector.js:190
|
||||
msgid "Applications"
|
||||
msgstr "Aplikasi"
|
||||
|
||||
#: js/ui/viewSelector.js:187
|
||||
#: js/ui/viewSelector.js:194
|
||||
msgid "Search"
|
||||
msgstr "Cari"
|
||||
|
||||
@ -1810,22 +1919,22 @@ msgstr "Cari"
|
||||
msgid "“%s” is ready"
|
||||
msgstr "'%s' siap"
|
||||
|
||||
#: js/ui/windowManager.js:71
|
||||
#: js/ui/windowManager.js:72
|
||||
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:83
|
||||
#: js/ui/windowManager.js:84
|
||||
msgid "Revert Settings"
|
||||
msgstr "Balikkan Tatanan"
|
||||
|
||||
#: js/ui/windowManager.js:86
|
||||
#: js/ui/windowManager.js:87
|
||||
msgid "Keep Changes"
|
||||
msgstr "Simpan Perubahan"
|
||||
|
||||
#: js/ui/windowManager.js:104
|
||||
#: js/ui/windowManager.js:105
|
||||
#, javascript-format
|
||||
msgid "Settings changes will revert in %d second"
|
||||
msgid_plural "Settings changes will revert in %d seconds"
|
||||
@ -1833,7 +1942,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:659
|
||||
#: js/ui/windowManager.js:660
|
||||
#, javascript-format
|
||||
msgid "%d × %d"
|
||||
msgstr "%d × %d"
|
||||
@ -1911,39 +2020,19 @@ msgstr "Evolution Kalender"
|
||||
msgid "evolution"
|
||||
msgstr "evolution"
|
||||
|
||||
#. 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
|
||||
#: src/main.c:380
|
||||
msgid "Print version"
|
||||
msgstr "Versi Cetak"
|
||||
|
||||
#: src/main.c:378
|
||||
#: src/main.c:386
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Mode yang dipakai oleh layar log masuk GDM"
|
||||
|
||||
#: src/main.c:384
|
||||
#: src/main.c:392
|
||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||
msgstr "Menggunakan mode tertentu, mis. \"gdm\" untuk layar masuk"
|
||||
|
||||
#: src/main.c:390
|
||||
#: src/main.c:398
|
||||
msgid "List possible modes"
|
||||
msgstr "Menampilkan mode yang mungkin"
|
||||
|
||||
@ -1969,26 +2058,22 @@ msgstr "Sandi tidak boleh kosong"
|
||||
msgid "Authentication dialog was dismissed by the user"
|
||||
msgstr "Dialog otentikasi ditolak oleh pengguna"
|
||||
|
||||
#~ msgid "Events"
|
||||
#~ msgstr "Kejadian"
|
||||
#. 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 "Notifications"
|
||||
#~ msgstr "Pemberitahuan"
|
||||
#. 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 "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"
|
||||
#: subprojects/gvc/gvc-mixer-control.c:2738
|
||||
msgid "System Sounds"
|
||||
msgstr "Suara Sistem"
|
||||
|
321
po/kk.po
321
po/kk.po
@ -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-07-20 03:49+0000\n"
|
||||
"PO-Revision-Date: 2017-07-27 17:09+0500\n"
|
||||
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
|
||||
"PO-Revision-Date: 2017-08-22 19:22+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:947
|
||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
||||
msgid "Cancel"
|
||||
msgstr "Бас тарту"
|
||||
|
||||
@ -400,6 +400,72 @@ 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 "Команда табылмады"
|
||||
@ -553,35 +619,35 @@ msgstr "Тыйым салу"
|
||||
msgid "Grant Access"
|
||||
msgstr "Рұқсат ету"
|
||||
|
||||
#: js/ui/appDisplay.js:806
|
||||
#: js/ui/appDisplay.js:809
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Жиі қолданылатын қолданбалар осында көрінеді"
|
||||
|
||||
#: js/ui/appDisplay.js:927
|
||||
#: js/ui/appDisplay.js:930
|
||||
msgid "Frequent"
|
||||
msgstr "Жиі қолданылатын"
|
||||
|
||||
#: js/ui/appDisplay.js:934
|
||||
#: js/ui/appDisplay.js:937
|
||||
msgid "All"
|
||||
msgstr "Барлығы"
|
||||
|
||||
#: js/ui/appDisplay.js:1895
|
||||
#: js/ui/appDisplay.js:1915
|
||||
msgid "New Window"
|
||||
msgstr "Жаңа терезе"
|
||||
|
||||
#: js/ui/appDisplay.js:1909
|
||||
#: js/ui/appDisplay.js:1929
|
||||
msgid "Launch using Dedicated Graphics Card"
|
||||
msgstr "Бөлек графикалық картаны пайдаланып жөнелту"
|
||||
|
||||
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
|
||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Таңдамалылардан өшіру"
|
||||
|
||||
#: js/ui/appDisplay.js:1942
|
||||
#: js/ui/appDisplay.js:1962
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Таңдамалыларға қосу"
|
||||
|
||||
#: js/ui/appDisplay.js:1952
|
||||
#: js/ui/appDisplay.js:1972
|
||||
msgid "Show Details"
|
||||
msgstr "Деректерді көрсету"
|
||||
|
||||
@ -623,7 +689,7 @@ msgstr "Фонды өзгерту..."
|
||||
msgid "Display Settings"
|
||||
msgstr "Экран баптаулары"
|
||||
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
|
||||
msgid "Settings"
|
||||
msgstr "Баптаулар"
|
||||
|
||||
@ -770,8 +836,8 @@ msgstr "Пароль:"
|
||||
msgid "Type again:"
|
||||
msgstr "Қайтадан енгізіңіз:"
|
||||
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
|
||||
#: js/ui/status/network.js:366 js/ui/status/network.js:950
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
||||
msgid "Connect"
|
||||
msgstr "Байланысу"
|
||||
|
||||
@ -845,7 +911,7 @@ msgstr "Сымсыз кеңжолақты желісінің паролі"
|
||||
msgid "A password is required to connect to “%s”."
|
||||
msgstr "\"%s\" үшін байланысты орнату үшін пароль керек."
|
||||
|
||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1760
|
||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
||||
msgid "Network Manager"
|
||||
msgstr "Желілер басқарушысы"
|
||||
|
||||
@ -876,7 +942,7 @@ msgstr "Кешіріңіз, талап сәтсіз. Қайтадан көрің
|
||||
msgid "%s is now known as %s"
|
||||
msgstr "%s енді %s ретінде белгілі"
|
||||
|
||||
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:179
|
||||
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
|
||||
msgid "Windows"
|
||||
msgstr "Терезелер"
|
||||
|
||||
@ -921,7 +987,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:281
|
||||
#: js/ui/dateMenu.js:286
|
||||
#, javascript-format
|
||||
msgid "%s all day."
|
||||
msgstr "%s күні бойы."
|
||||
@ -930,7 +996,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:287
|
||||
#: js/ui/dateMenu.js:292
|
||||
#, javascript-format
|
||||
msgid "%s, then %s later."
|
||||
msgstr "%s, одан кейін %s."
|
||||
@ -939,30 +1005,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:293
|
||||
#: js/ui/dateMenu.js:298
|
||||
#, javascript-format
|
||||
msgid "%s, then %s, followed by %s later."
|
||||
msgstr "%s, одан кейін %s, одан кейін %s."
|
||||
|
||||
#: js/ui/dateMenu.js:300
|
||||
#: js/ui/dateMenu.js:309
|
||||
msgid "Select a location…"
|
||||
msgstr "Орналасуды таңдаңыз…"
|
||||
|
||||
#: js/ui/dateMenu.js:303
|
||||
#: js/ui/dateMenu.js:312
|
||||
msgid "Loading…"
|
||||
msgstr "Жүктеу…"
|
||||
|
||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||
#: js/ui/dateMenu.js:309
|
||||
#: js/ui/dateMenu.js:318
|
||||
#, javascript-format
|
||||
msgid "Feels like %s."
|
||||
msgstr "%s сияқты сезіледі."
|
||||
|
||||
#: js/ui/dateMenu.js:312
|
||||
#: js/ui/dateMenu.js:321
|
||||
msgid "Go online for weather information"
|
||||
msgstr "Ауа райы ақпаратын алу үшін желіге байланысыңыз"
|
||||
|
||||
#: js/ui/dateMenu.js:314
|
||||
#: js/ui/dateMenu.js:323
|
||||
msgid "Weather information is currently unavailable"
|
||||
msgstr "Ауа райы ақпараты ағымдағы уақытта қолжетерсіз"
|
||||
|
||||
@ -1118,19 +1184,34 @@ msgstr "Орнату"
|
||||
msgid "Download and install “%s” from extensions.gnome.org?"
|
||||
msgstr "extensions.gnome.org адресінен \"%s\" жүктеп алып, орнату керек пе?"
|
||||
|
||||
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
|
||||
#. 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
|
||||
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 "Кеңейтулер орнатылмаған"
|
||||
@ -1315,7 +1396,7 @@ msgid "%d new notification"
|
||||
msgid_plural "%d new notifications"
|
||||
msgstr[0] "%d жаңа ескерту"
|
||||
|
||||
#: js/ui/screenShield.js:452 js/ui/status/system.js:415
|
||||
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
|
||||
msgid "Lock"
|
||||
msgstr "Блоктау"
|
||||
|
||||
@ -1346,10 +1427,11 @@ msgstr "Іздеу..."
|
||||
msgid "No results."
|
||||
msgstr "Нәтижелер жоқ."
|
||||
|
||||
#: js/ui/search.js:768
|
||||
#: js/ui/search.js:777
|
||||
#, javascript-format
|
||||
msgid "%d more"
|
||||
msgstr "тағы %d"
|
||||
msgid_plural "%d more"
|
||||
msgstr[0] "тағы %d"
|
||||
|
||||
#: js/ui/shellEntry.js:25
|
||||
msgid "Copy"
|
||||
@ -1423,7 +1505,7 @@ msgstr "Үлкен мәтін"
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Bluetooth баптаулары"
|
||||
|
||||
@ -1442,13 +1524,13 @@ msgstr "Сөнд."
|
||||
msgid "On"
|
||||
msgstr "Іске қос."
|
||||
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
||||
msgid "Turn On"
|
||||
msgstr "Іске қосу"
|
||||
|
||||
#: 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/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/rfkill.js:90 js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Сөндіру"
|
||||
@ -1502,13 +1584,13 @@ msgid "<unknown>"
|
||||
msgstr "<белгісіз>"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
|
||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s сөндірулі"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:468
|
||||
#: js/ui/status/network.js:457
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "%s байланысқан"
|
||||
@ -1516,187 +1598,186 @@ 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:473
|
||||
#: js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s басқарылмайтын"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:476
|
||||
#: js/ui/status/network.js:465
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "%s байланысты үзуде"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
|
||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
||||
#, 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:486
|
||||
#: js/ui/status/network.js:475
|
||||
#, 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:494
|
||||
#: js/ui/status/network.js:483
|
||||
#, 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:498
|
||||
#: js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s қолжетерсіз"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:501
|
||||
#: js/ui/status/network.js:490
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "%s байланысын орнату сәтсіз"
|
||||
|
||||
#: js/ui/status/network.js:517
|
||||
#: js/ui/status/network.js:506
|
||||
msgid "Wired Settings"
|
||||
msgstr "Сымды желі баптаулары"
|
||||
|
||||
#: js/ui/status/network.js:559
|
||||
#: js/ui/status/network.js:548
|
||||
msgid "Mobile Broadband Settings"
|
||||
msgstr "Сымсыз кеңжолақты желісінің баптаулары"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
|
||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
||||
#, 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:606
|
||||
#: js/ui/status/network.js:595
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s сөндірулі тұр"
|
||||
|
||||
#: js/ui/status/network.js:646
|
||||
#: js/ui/status/network.js:635
|
||||
msgid "Connect to Internet"
|
||||
msgstr "Интернетке байланысу"
|
||||
|
||||
#: js/ui/status/network.js:844
|
||||
#: js/ui/status/network.js:833
|
||||
msgid "Airplane Mode is On"
|
||||
msgstr "Ұшақтағы режим іске қосылған"
|
||||
|
||||
#: js/ui/status/network.js:845
|
||||
#: js/ui/status/network.js:834
|
||||
msgid "Wi-Fi is disabled when airplane mode is on."
|
||||
msgstr "Wi-Fi ұшақтағы режимі кезінде сөндірілген болады."
|
||||
|
||||
#: js/ui/status/network.js:846
|
||||
#: js/ui/status/network.js:835
|
||||
msgid "Turn Off Airplane Mode"
|
||||
msgstr "Ұшақтағы режимді сөндіру"
|
||||
|
||||
#: js/ui/status/network.js:855
|
||||
#: js/ui/status/network.js:844
|
||||
msgid "Wi-Fi is Off"
|
||||
msgstr "Wi-Fi сөндірілген"
|
||||
|
||||
#: js/ui/status/network.js:856
|
||||
#: js/ui/status/network.js:845
|
||||
msgid "Wi-Fi needs to be turned on in order to connect to a network."
|
||||
msgstr "Желіге байланысты орнату үшін Wi-Fi іске қосылған болуы тиіс."
|
||||
|
||||
#: js/ui/status/network.js:857
|
||||
#: js/ui/status/network.js:846
|
||||
msgid "Turn On Wi-Fi"
|
||||
msgstr "Wi-Fi іске қосу"
|
||||
|
||||
#: js/ui/status/network.js:882
|
||||
#: js/ui/status/network.js:871
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Wi-Fi желілері"
|
||||
|
||||
#: js/ui/status/network.js:884
|
||||
#: js/ui/status/network.js:873
|
||||
msgid "Select a network"
|
||||
msgstr "Желіні таңдау"
|
||||
|
||||
#: js/ui/status/network.js:914
|
||||
#: js/ui/status/network.js:903
|
||||
msgid "No Networks"
|
||||
msgstr "Желілер жоқ"
|
||||
|
||||
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
|
||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
||||
msgid "Use hardware switch to turn off"
|
||||
msgstr "Сөндіру үшін құрылғылық қосқышты қолданыңыз"
|
||||
|
||||
#: js/ui/status/network.js:1202
|
||||
#: js/ui/status/network.js:1191
|
||||
msgid "Select Network"
|
||||
msgstr "Желіні таңдау"
|
||||
|
||||
#: js/ui/status/network.js:1208
|
||||
#: js/ui/status/network.js:1197
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Wi-Fi баптаулары"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1327
|
||||
#: js/ui/status/network.js:1316
|
||||
#, javascript-format
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "%s қатынау нүктесі белсенді"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1342
|
||||
#: js/ui/status/network.js:1331
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "%s байланыспаған"
|
||||
|
||||
#: js/ui/status/network.js:1446
|
||||
#: js/ui/status/network.js:1435
|
||||
msgid "connecting…"
|
||||
msgstr "байланысты орнату…"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: js/ui/status/network.js:1449
|
||||
#: js/ui/status/network.js:1438
|
||||
msgid "authentication required"
|
||||
msgstr "аутентификация керек"
|
||||
|
||||
#: js/ui/status/network.js:1451
|
||||
#: js/ui/status/network.js:1440
|
||||
msgid "connection failed"
|
||||
msgstr "байланысты орнату сәтсіз"
|
||||
|
||||
#: 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:1519
|
||||
#: js/ui/status/network.js:1494
|
||||
msgid "VPN Settings"
|
||||
msgstr "VPN баптаулары"
|
||||
|
||||
#: js/ui/status/network.js:1538
|
||||
#: js/ui/status/network.js:1498
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: js/ui/status/network.js:1548
|
||||
#: js/ui/status/network.js:1508
|
||||
msgid "VPN Off"
|
||||
msgstr "VPN сөндірілген"
|
||||
|
||||
#: js/ui/status/network.js:1643
|
||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
||||
msgid "Network Settings"
|
||||
msgstr "Желі баптаулары"
|
||||
|
||||
#: js/ui/status/network.js:1603
|
||||
#, javascript-format
|
||||
msgid "%s Wired Connection"
|
||||
msgid_plural "%s Wired Connections"
|
||||
msgstr[0] "%s сымды желі байланысы"
|
||||
|
||||
#: js/ui/status/network.js:1647
|
||||
#: js/ui/status/network.js:1607
|
||||
#, javascript-format
|
||||
msgid "%s Wi-Fi Connection"
|
||||
msgid_plural "%s Wi-Fi Connections"
|
||||
msgstr[0] "%s Wi-Fi желі байланысы"
|
||||
|
||||
#: js/ui/status/network.js:1651
|
||||
#: js/ui/status/network.js:1611
|
||||
#, javascript-format
|
||||
msgid "%s Modem Connection"
|
||||
msgid_plural "%s Modem Connections"
|
||||
msgstr[0] "%s модем желі байланысы"
|
||||
|
||||
#: js/ui/status/network.js:1799
|
||||
#: js/ui/status/network.js:1759
|
||||
msgid "Connection failed"
|
||||
msgstr "Байланыс орнату сәтсіз"
|
||||
|
||||
#: js/ui/status/network.js:1800
|
||||
#: js/ui/status/network.js:1760
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Желілік байланысты белсендіру сәтсіз"
|
||||
|
||||
@ -1754,27 +1835,27 @@ msgstr "%d %%"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Ұшақтағы режим іске қосулы"
|
||||
|
||||
#: js/ui/status/system.js:384
|
||||
#: js/ui/status/system.js:228
|
||||
msgid "Switch User"
|
||||
msgstr "Пайдаланушыны ауыстыру"
|
||||
|
||||
#: js/ui/status/system.js:389
|
||||
#: js/ui/status/system.js:240
|
||||
msgid "Log Out"
|
||||
msgstr "Жүйеден шығу"
|
||||
|
||||
#: js/ui/status/system.js:394
|
||||
#: js/ui/status/system.js:252
|
||||
msgid "Account Settings"
|
||||
msgstr "Тіркелгі баптаулары"
|
||||
|
||||
#: js/ui/status/system.js:411
|
||||
#: js/ui/status/system.js:269
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Бағдарды бекіту"
|
||||
|
||||
#: js/ui/status/system.js:419
|
||||
#: js/ui/status/system.js:295
|
||||
msgid "Suspend"
|
||||
msgstr "Ұйықтату"
|
||||
|
||||
#: js/ui/status/system.js:422
|
||||
#: js/ui/status/system.js:305
|
||||
msgid "Power Off"
|
||||
msgstr "Сөндіру"
|
||||
|
||||
@ -1786,6 +1867,34 @@ 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 "Басқа пайдаланушы ретінде жүйеге кіру"
|
||||
@ -1794,11 +1903,11 @@ msgstr "Басқа пайдаланушы ретінде жүйеге кіру"
|
||||
msgid "Unlock Window"
|
||||
msgstr "Блоктауды алу терезесі"
|
||||
|
||||
#: js/ui/viewSelector.js:183
|
||||
#: js/ui/viewSelector.js:190
|
||||
msgid "Applications"
|
||||
msgstr "Қолданбалар"
|
||||
|
||||
#: js/ui/viewSelector.js:187
|
||||
#: js/ui/viewSelector.js:194
|
||||
msgid "Search"
|
||||
msgstr "Іздеу"
|
||||
|
||||
@ -1807,22 +1916,22 @@ msgstr "Іздеу"
|
||||
msgid "“%s” is ready"
|
||||
msgstr "\"%s\" дайын"
|
||||
|
||||
#: js/ui/windowManager.js:71
|
||||
#: js/ui/windowManager.js:72
|
||||
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:83
|
||||
#: js/ui/windowManager.js:84
|
||||
msgid "Revert Settings"
|
||||
msgstr "Баптауларды қалпына келтіру"
|
||||
|
||||
#: js/ui/windowManager.js:86
|
||||
#: js/ui/windowManager.js:87
|
||||
msgid "Keep Changes"
|
||||
msgstr "Өзгерістерді сақтау"
|
||||
|
||||
#: js/ui/windowManager.js:104
|
||||
#: js/ui/windowManager.js:105
|
||||
#, javascript-format
|
||||
msgid "Settings changes will revert in %d second"
|
||||
msgid_plural "Settings changes will revert in %d seconds"
|
||||
@ -1830,7 +1939,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:659
|
||||
#: js/ui/windowManager.js:660
|
||||
#, javascript-format
|
||||
msgid "%d × %d"
|
||||
msgstr "%d × %d"
|
||||
@ -1908,19 +2017,19 @@ msgstr "Evolution күнтізбесі"
|
||||
msgid "evolution"
|
||||
msgstr "evolution"
|
||||
|
||||
#: src/main.c:372
|
||||
#: src/main.c:380
|
||||
msgid "Print version"
|
||||
msgstr "Баспа нұсқасы"
|
||||
|
||||
#: src/main.c:378
|
||||
#: src/main.c:386
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "GDM жүйеге кіру экраны үшін қолданатын режимі"
|
||||
|
||||
#: src/main.c:384
|
||||
#: src/main.c:392
|
||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||
msgstr "Жүйеге кіру экраны үшін арнайы режимді, мыс. \"gdm\", қолдану"
|
||||
|
||||
#: src/main.c:390
|
||||
#: src/main.c:398
|
||||
msgid "List possible modes"
|
||||
msgstr "Қолжетерлік режимдерді тізіп шығу"
|
||||
|
||||
@ -1966,6 +2075,12 @@ msgstr[0] "%u кірісі"
|
||||
msgid "System Sounds"
|
||||
msgstr "Жүйелік дыбыстар"
|
||||
|
||||
#~ msgid "Hide tray"
|
||||
#~ msgstr "Жүйелік трейді жасыру"
|
||||
|
||||
#~ msgid "Status Icons"
|
||||
#~ msgstr "Қалып-күй таңбашалары"
|
||||
|
||||
#~ msgid "Events"
|
||||
#~ msgstr "Оқиғалар"
|
||||
|
||||
|
333
po/lt.po
333
po/lt.po
@ -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-07-20 03:49+0000\n"
|
||||
"PO-Revision-Date: 2017-07-24 23:45+0300\n"
|
||||
"POT-Creation-Date: 2017-08-22 11:17+0000\n"
|
||||
"PO-Revision-Date: 2017-08-22 23:13+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:947
|
||||
#: js/ui/shellMountOperation.js:344 js/ui/status/network.js:936
|
||||
msgid "Cancel"
|
||||
msgstr "Atsisakyti"
|
||||
|
||||
@ -398,6 +398,80 @@ 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"
|
||||
@ -562,35 +636,35 @@ msgstr "Atmesti prieigą"
|
||||
msgid "Grant Access"
|
||||
msgstr "Suteikti prieigą"
|
||||
|
||||
#: js/ui/appDisplay.js:806
|
||||
#: js/ui/appDisplay.js:809
|
||||
msgid "Frequently used applications will appear here"
|
||||
msgstr "Čia bus matomos dažnai naudojamos programos"
|
||||
|
||||
#: js/ui/appDisplay.js:927
|
||||
#: js/ui/appDisplay.js:930
|
||||
msgid "Frequent"
|
||||
msgstr "Dažnai naudojamos"
|
||||
|
||||
#: js/ui/appDisplay.js:934
|
||||
#: js/ui/appDisplay.js:937
|
||||
msgid "All"
|
||||
msgstr "Visos"
|
||||
|
||||
#: js/ui/appDisplay.js:1895
|
||||
#: js/ui/appDisplay.js:1915
|
||||
msgid "New Window"
|
||||
msgstr "Naujas langas"
|
||||
|
||||
#: js/ui/appDisplay.js:1909
|
||||
#: js/ui/appDisplay.js:1929
|
||||
msgid "Launch using Dedicated Graphics Card"
|
||||
msgstr "Paleisti naudojant dedikuotą grafikos kortą"
|
||||
|
||||
#: js/ui/appDisplay.js:1936 js/ui/dash.js:289
|
||||
#: js/ui/appDisplay.js:1956 js/ui/dash.js:289
|
||||
msgid "Remove from Favorites"
|
||||
msgstr "Pašalinti iš mėgstamų"
|
||||
|
||||
#: js/ui/appDisplay.js:1942
|
||||
#: js/ui/appDisplay.js:1962
|
||||
msgid "Add to Favorites"
|
||||
msgstr "Pridėti prie mėgstamų"
|
||||
|
||||
#: js/ui/appDisplay.js:1952
|
||||
#: js/ui/appDisplay.js:1972
|
||||
msgid "Show Details"
|
||||
msgstr "Rodyti detalią informaciją"
|
||||
|
||||
@ -632,7 +706,7 @@ msgstr "Keisti foną…"
|
||||
msgid "Display Settings"
|
||||
msgstr "Ekrano nustatymai"
|
||||
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:407
|
||||
#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:265
|
||||
msgid "Settings"
|
||||
msgstr "Nustatymai"
|
||||
|
||||
@ -739,7 +813,6 @@ 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."
|
||||
|
||||
@ -780,8 +853,8 @@ msgstr "Slaptažodis:"
|
||||
msgid "Type again:"
|
||||
msgstr "Įveskite dar kartą:"
|
||||
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:272
|
||||
#: js/ui/status/network.js:366 js/ui/status/network.js:950
|
||||
#: js/ui/components/networkAgent.js:112 js/ui/status/network.js:261
|
||||
#: js/ui/status/network.js:355 js/ui/status/network.js:939
|
||||
msgid "Connect"
|
||||
msgstr "Prisijungti"
|
||||
|
||||
@ -856,7 +929,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:1760
|
||||
#: js/ui/components/networkAgent.js:627 js/ui/status/network.js:1720
|
||||
msgid "Network Manager"
|
||||
msgstr "Tinklo tvarkymas"
|
||||
|
||||
@ -887,7 +960,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:179
|
||||
#: js/ui/ctrlAltTab.js:29 js/ui/viewSelector.js:186
|
||||
msgid "Windows"
|
||||
msgstr "Langai"
|
||||
|
||||
@ -932,7 +1005,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:281
|
||||
#: js/ui/dateMenu.js:286
|
||||
#, javascript-format
|
||||
msgid "%s all day."
|
||||
msgstr "%s visą dieną."
|
||||
@ -941,7 +1014,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:287
|
||||
#: js/ui/dateMenu.js:292
|
||||
#, javascript-format
|
||||
msgid "%s, then %s later."
|
||||
msgstr "%s, o vėliau %s."
|
||||
@ -950,30 +1023,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:293
|
||||
#: js/ui/dateMenu.js:298
|
||||
#, javascript-format
|
||||
msgid "%s, then %s, followed by %s later."
|
||||
msgstr "%s, tuomet %s, o po to vėliau %s."
|
||||
|
||||
#: js/ui/dateMenu.js:300
|
||||
#: js/ui/dateMenu.js:309
|
||||
msgid "Select a location…"
|
||||
msgstr "Pasirinkite vietą…"
|
||||
|
||||
#: js/ui/dateMenu.js:303
|
||||
#: js/ui/dateMenu.js:312
|
||||
msgid "Loading…"
|
||||
msgstr "Įkeliama…"
|
||||
|
||||
#. Translators: %s is a temperature with unit, e.g. "23℃"
|
||||
#: js/ui/dateMenu.js:309
|
||||
#: js/ui/dateMenu.js:318
|
||||
#, javascript-format
|
||||
msgid "Feels like %s."
|
||||
msgstr "Jaučiama kaip %s."
|
||||
|
||||
#: js/ui/dateMenu.js:312
|
||||
#: js/ui/dateMenu.js:321
|
||||
msgid "Go online for weather information"
|
||||
msgstr "Prisijunkite prie tinklo orų informacijai gauti"
|
||||
|
||||
#: js/ui/dateMenu.js:314
|
||||
#: js/ui/dateMenu.js:323
|
||||
msgid "Weather information is currently unavailable"
|
||||
msgstr "Orų informacija šiuo metu yra neprieinama"
|
||||
|
||||
@ -1140,19 +1213,34 @@ msgstr "Įdiegti"
|
||||
msgid "Download and install “%s” from extensions.gnome.org?"
|
||||
msgstr "Parsiųsti ir įdiegti „%s“ iš extensions.gnome.org?"
|
||||
|
||||
#: js/ui/keyboard.js:740 js/ui/status/keyboard.js:782
|
||||
#. 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
|
||||
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ų"
|
||||
@ -1341,7 +1429,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:415
|
||||
#: js/ui/screenShield.js:452 js/ui/status/system.js:284
|
||||
msgid "Lock"
|
||||
msgstr "Užrakinti"
|
||||
|
||||
@ -1372,10 +1460,13 @@ msgstr "Ieškoma…"
|
||||
msgid "No results."
|
||||
msgstr "Nerasta atitikmenų."
|
||||
|
||||
#: js/ui/search.js:768
|
||||
#: js/ui/search.js:777
|
||||
#, javascript-format
|
||||
msgid "%d more"
|
||||
msgstr "dar %d"
|
||||
msgid_plural "%d more"
|
||||
msgstr[0] "dar %d"
|
||||
msgstr[1] "dar %d"
|
||||
msgstr[2] "dar %d"
|
||||
|
||||
#: js/ui/shellEntry.js:25
|
||||
msgid "Copy"
|
||||
@ -1449,7 +1540,7 @@ msgstr "Didelis tekstas"
|
||||
msgid "Bluetooth"
|
||||
msgstr "Bluetooth"
|
||||
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:638
|
||||
#: js/ui/status/bluetooth.js:56 js/ui/status/network.js:627
|
||||
msgid "Bluetooth Settings"
|
||||
msgstr "Bluetooth nustatymai"
|
||||
|
||||
@ -1470,13 +1561,13 @@ msgstr "Išjungta"
|
||||
msgid "On"
|
||||
msgstr "Įjungta"
|
||||
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1310
|
||||
#: js/ui/status/bluetooth.js:142 js/ui/status/network.js:1299
|
||||
msgid "Turn On"
|
||||
msgstr "Įjungti"
|
||||
|
||||
#: 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/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/rfkill.js:90 js/ui/status/rfkill.js:117
|
||||
msgid "Turn Off"
|
||||
msgstr "Išjungti"
|
||||
@ -1528,13 +1619,13 @@ msgid "<unknown>"
|
||||
msgstr "<nežinoma>"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:465 js/ui/status/network.js:1339
|
||||
#: js/ui/status/network.js:454 js/ui/status/network.js:1328
|
||||
#, javascript-format
|
||||
msgid "%s Off"
|
||||
msgstr "%s išjungtas"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:468
|
||||
#: js/ui/status/network.js:457
|
||||
#, javascript-format
|
||||
msgid "%s Connected"
|
||||
msgstr "Prisijungta prie %s"
|
||||
@ -1542,165 +1633,164 @@ 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:473
|
||||
#: js/ui/status/network.js:462
|
||||
#, javascript-format
|
||||
msgid "%s Unmanaged"
|
||||
msgstr "%s netvarkomas"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:476
|
||||
#: js/ui/status/network.js:465
|
||||
#, javascript-format
|
||||
msgid "%s Disconnecting"
|
||||
msgstr "Atsijungiama nuo %s"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:483 js/ui/status/network.js:1331
|
||||
#: js/ui/status/network.js:472 js/ui/status/network.js:1320
|
||||
#, 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:486
|
||||
#: js/ui/status/network.js:475
|
||||
#, 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:494
|
||||
#: js/ui/status/network.js:483
|
||||
#, 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:498
|
||||
#: js/ui/status/network.js:487
|
||||
#, javascript-format
|
||||
msgid "%s Unavailable"
|
||||
msgstr "%s nepasiekiamas"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:501
|
||||
#: js/ui/status/network.js:490
|
||||
#, javascript-format
|
||||
msgid "%s Connection Failed"
|
||||
msgstr "Nepavyko prisijungti prie %s"
|
||||
|
||||
#: js/ui/status/network.js:517
|
||||
#: js/ui/status/network.js:506
|
||||
msgid "Wired Settings"
|
||||
msgstr "Laidinio ryšio nustatymai"
|
||||
|
||||
#: js/ui/status/network.js:559
|
||||
#: js/ui/status/network.js:548
|
||||
msgid "Mobile Broadband Settings"
|
||||
msgstr "Mobiliojo plačiajuosčio tinklo nustatymai"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:602 js/ui/status/network.js:1336
|
||||
#: js/ui/status/network.js:591 js/ui/status/network.js:1325
|
||||
#, 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:606
|
||||
#: js/ui/status/network.js:595
|
||||
#, javascript-format
|
||||
msgid "%s Disabled"
|
||||
msgstr "%s išjungtas"
|
||||
|
||||
#: js/ui/status/network.js:646
|
||||
#: js/ui/status/network.js:635
|
||||
msgid "Connect to Internet"
|
||||
msgstr "Prisijungti prie interneto"
|
||||
|
||||
#: js/ui/status/network.js:844
|
||||
#: js/ui/status/network.js:833
|
||||
msgid "Airplane Mode is On"
|
||||
msgstr "Skrydžio veiksena įjungta"
|
||||
|
||||
#: js/ui/status/network.js:845
|
||||
#: js/ui/status/network.js:834
|
||||
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:846
|
||||
#: js/ui/status/network.js:835
|
||||
msgid "Turn Off Airplane Mode"
|
||||
msgstr "Išjungti skrydžio veikseną"
|
||||
|
||||
#: js/ui/status/network.js:855
|
||||
#: js/ui/status/network.js:844
|
||||
msgid "Wi-Fi is Off"
|
||||
msgstr "Belaidžio ryšys išjungtas"
|
||||
|
||||
#: js/ui/status/network.js:856
|
||||
#: js/ui/status/network.js:845
|
||||
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:857
|
||||
#: js/ui/status/network.js:846
|
||||
msgid "Turn On Wi-Fi"
|
||||
msgstr "Įjungti belaidį ryšį"
|
||||
|
||||
#: js/ui/status/network.js:882
|
||||
#: js/ui/status/network.js:871
|
||||
msgid "Wi-Fi Networks"
|
||||
msgstr "Wi-Fi tinklai"
|
||||
|
||||
#: js/ui/status/network.js:884
|
||||
#: js/ui/status/network.js:873
|
||||
msgid "Select a network"
|
||||
msgstr "Pasirinkite tinklą"
|
||||
|
||||
#: js/ui/status/network.js:914
|
||||
#: js/ui/status/network.js:903
|
||||
msgid "No Networks"
|
||||
msgstr "Nėra tinklų"
|
||||
|
||||
#: js/ui/status/network.js:935 js/ui/status/rfkill.js:115
|
||||
#: js/ui/status/network.js:924 js/ui/status/rfkill.js:115
|
||||
msgid "Use hardware switch to turn off"
|
||||
msgstr "Išjungimui naudoti aparatinį jungiklį"
|
||||
|
||||
#: js/ui/status/network.js:1202
|
||||
#: js/ui/status/network.js:1191
|
||||
msgid "Select Network"
|
||||
msgstr "Pasirinkite tinklą"
|
||||
|
||||
#: js/ui/status/network.js:1208
|
||||
#: js/ui/status/network.js:1197
|
||||
msgid "Wi-Fi Settings"
|
||||
msgstr "Belaidžio ryšio nustatymai"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1327
|
||||
#: js/ui/status/network.js:1316
|
||||
#, javascript-format
|
||||
msgid "%s Hotspot Active"
|
||||
msgstr "Prieigos taškas %s aktyvus"
|
||||
|
||||
#. Translators: %s is a network identifier
|
||||
#: js/ui/status/network.js:1342
|
||||
#: js/ui/status/network.js:1331
|
||||
#, javascript-format
|
||||
msgid "%s Not Connected"
|
||||
msgstr "Neprisijungta prie %s"
|
||||
|
||||
#: js/ui/status/network.js:1446
|
||||
#: js/ui/status/network.js:1435
|
||||
msgid "connecting…"
|
||||
msgstr "jungiamasi…"
|
||||
|
||||
#. Translators: this is for network connections that require some kind of key or password
|
||||
#: js/ui/status/network.js:1449
|
||||
#: js/ui/status/network.js:1438
|
||||
msgid "authentication required"
|
||||
msgstr "reikia patvirtinti tapatybę"
|
||||
|
||||
#: js/ui/status/network.js:1451
|
||||
#: js/ui/status/network.js:1440
|
||||
msgid "connection failed"
|
||||
msgstr "nepavyko prisijungti"
|
||||
|
||||
#: 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:1519
|
||||
#: js/ui/status/network.js:1494
|
||||
msgid "VPN Settings"
|
||||
msgstr "VPN nustatymai"
|
||||
|
||||
#: js/ui/status/network.js:1538
|
||||
#: js/ui/status/network.js:1498
|
||||
msgid "VPN"
|
||||
msgstr "VPN"
|
||||
|
||||
#: js/ui/status/network.js:1548
|
||||
#: js/ui/status/network.js:1508
|
||||
msgid "VPN Off"
|
||||
msgstr "VPN išjungtas"
|
||||
|
||||
#: js/ui/status/network.js:1643
|
||||
#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
|
||||
msgid "Network Settings"
|
||||
msgstr "Tinklo nustatymai"
|
||||
|
||||
#: js/ui/status/network.js:1603
|
||||
#, javascript-format
|
||||
msgid "%s Wired Connection"
|
||||
msgid_plural "%s Wired Connections"
|
||||
@ -1708,7 +1798,7 @@ msgstr[0] "%s laidinis ryšys"
|
||||
msgstr[1] "%s laidiniai ryšiai"
|
||||
msgstr[2] "%s laidinių ryšių"
|
||||
|
||||
#: js/ui/status/network.js:1647
|
||||
#: js/ui/status/network.js:1607
|
||||
#, javascript-format
|
||||
msgid "%s Wi-Fi Connection"
|
||||
msgid_plural "%s Wi-Fi Connections"
|
||||
@ -1716,7 +1806,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:1651
|
||||
#: js/ui/status/network.js:1611
|
||||
#, javascript-format
|
||||
msgid "%s Modem Connection"
|
||||
msgid_plural "%s Modem Connections"
|
||||
@ -1724,11 +1814,11 @@ msgstr[0] "%s modemo ryšys"
|
||||
msgstr[1] "%s modemo ryšiai"
|
||||
msgstr[2] "%s modemo ryšių"
|
||||
|
||||
#: js/ui/status/network.js:1799
|
||||
#: js/ui/status/network.js:1759
|
||||
msgid "Connection failed"
|
||||
msgstr "Nepavyko prisijungti"
|
||||
|
||||
#: js/ui/status/network.js:1800
|
||||
#: js/ui/status/network.js:1760
|
||||
msgid "Activation of network connection failed"
|
||||
msgstr "Tinklo ryšio nepavyko aktyvuoti"
|
||||
|
||||
@ -1786,27 +1876,27 @@ msgstr "%d %%"
|
||||
msgid "Airplane Mode On"
|
||||
msgstr "Skrydžio veiksena įjungta"
|
||||
|
||||
#: js/ui/status/system.js:384
|
||||
#: js/ui/status/system.js:228
|
||||
msgid "Switch User"
|
||||
msgstr "Keisti naudotoją"
|
||||
|
||||
#: js/ui/status/system.js:389
|
||||
#: js/ui/status/system.js:240
|
||||
msgid "Log Out"
|
||||
msgstr "Atsijungti"
|
||||
|
||||
#: js/ui/status/system.js:394
|
||||
#: js/ui/status/system.js:252
|
||||
msgid "Account Settings"
|
||||
msgstr "Paskyros nustatymai"
|
||||
|
||||
#: js/ui/status/system.js:411
|
||||
#: js/ui/status/system.js:269
|
||||
msgid "Orientation Lock"
|
||||
msgstr "Padėties užrakinimas"
|
||||
|
||||
#: js/ui/status/system.js:419
|
||||
#: js/ui/status/system.js:295
|
||||
msgid "Suspend"
|
||||
msgstr "Pristabdyti"
|
||||
|
||||
#: js/ui/status/system.js:422
|
||||
#: js/ui/status/system.js:305
|
||||
msgid "Power Off"
|
||||
msgstr "Išjungti"
|
||||
|
||||
@ -1818,6 +1908,35 @@ 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"
|
||||
@ -1826,11 +1945,11 @@ msgstr "Prisijungti kitu naudotoju"
|
||||
msgid "Unlock Window"
|
||||
msgstr "Atrakinimo langas"
|
||||
|
||||
#: js/ui/viewSelector.js:183
|
||||
#: js/ui/viewSelector.js:190
|
||||
msgid "Applications"
|
||||
msgstr "Programos"
|
||||
|
||||
#: js/ui/viewSelector.js:187
|
||||
#: js/ui/viewSelector.js:194
|
||||
msgid "Search"
|
||||
msgstr "Ieškoti"
|
||||
|
||||
@ -1839,22 +1958,22 @@ msgstr "Ieškoti"
|
||||
msgid "“%s” is ready"
|
||||
msgstr "„%s“ yra pasirengusi"
|
||||
|
||||
#: js/ui/windowManager.js:71
|
||||
#: js/ui/windowManager.js:72
|
||||
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:83
|
||||
#: js/ui/windowManager.js:84
|
||||
msgid "Revert Settings"
|
||||
msgstr "Grąžinti nustatymus"
|
||||
|
||||
#: js/ui/windowManager.js:86
|
||||
#: js/ui/windowManager.js:87
|
||||
msgid "Keep Changes"
|
||||
msgstr "Įrašyti pakeitimus"
|
||||
|
||||
#: js/ui/windowManager.js:104
|
||||
#: js/ui/windowManager.js:105
|
||||
#, javascript-format
|
||||
msgid "Settings changes will revert in %d second"
|
||||
msgid_plural "Settings changes will revert in %d seconds"
|
||||
@ -1864,7 +1983,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:659
|
||||
#: js/ui/windowManager.js:660
|
||||
#, javascript-format
|
||||
msgid "%d × %d"
|
||||
msgstr "%d × %d"
|
||||
@ -1942,19 +2061,19 @@ msgstr "Evolution kalendorius"
|
||||
msgid "evolution"
|
||||
msgstr "evolution"
|
||||
|
||||
#: src/main.c:372
|
||||
#: src/main.c:380
|
||||
msgid "Print version"
|
||||
msgstr "Išvesti versijos numerį"
|
||||
|
||||
#: src/main.c:378
|
||||
#: src/main.c:386
|
||||
msgid "Mode used by GDM for login screen"
|
||||
msgstr "Veiksena, naudojama GDM prisijungimo ekrane"
|
||||
|
||||
#: src/main.c:384
|
||||
#: src/main.c:392
|
||||
msgid "Use a specific mode, e.g. “gdm” for login screen"
|
||||
msgstr "Naudoti konkrečią veikseną, pvz., „gdm“ prisijungimo ekranui"
|
||||
|
||||
#: src/main.c:390
|
||||
#: src/main.c:398
|
||||
msgid "List possible modes"
|
||||
msgstr "Išvardinti galimas veiksenas"
|
||||
|
||||
@ -2004,6 +2123,12 @@ 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"
|
||||
|
||||
|
2
po/ne.po
2
po/ne.po
@ -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 "इभोल्युसन"
|
||||
msgstr "evolution"
|
||||
|
||||
#: src/main.c:372
|
||||
msgid "Print version"
|
||||
|
564
po/pt_BR.po
564
po/pt_BR.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
Reference in New Issue
Block a user