Compare commits
36 Commits
upstream/3
...
3.37.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81f999f761 | ||
|
|
17b5c0400a | ||
|
|
ac937b9549 | ||
|
|
0c223de045 | ||
|
|
564235d44c | ||
|
|
92a2361306 | ||
|
|
9f27654729 | ||
|
|
f4013c7a5c | ||
|
|
9e7eff4a3e | ||
|
|
5b2bdd138a | ||
|
|
90d3c5c51d | ||
|
|
b00e531626 | ||
|
|
b1c1b01184 | ||
|
|
739b1e11a0 | ||
|
|
a3541ff0d9 | ||
|
|
8fb5476a1c | ||
|
|
fc8a46f15a | ||
|
|
2e21f7cf72 | ||
|
|
a317d79016 | ||
|
|
4722b89cc3 | ||
|
|
5a4b71ba90 | ||
|
|
a6ee142f21 | ||
|
|
35427ed4f1 | ||
|
|
bce63d3168 | ||
|
|
0426d1d8d5 | ||
|
|
f9aaa732b2 | ||
|
|
7b82c5e12b | ||
|
|
db305687d5 | ||
|
|
f527fe3774 | ||
|
|
3428bebb67 | ||
|
|
73822dc5f5 | ||
|
|
961757f717 | ||
|
|
7d5c985004 | ||
|
|
cd16995503 | ||
|
|
3a3b5bac85 | ||
|
|
9f6b83eece |
29
.gitignore
vendored
Normal file
29
.gitignore
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
ABOUT-NLS
|
||||
Makefile
|
||||
Makefile.in
|
||||
Makefile.in.in
|
||||
aclocal.m4
|
||||
autom4te.cache/
|
||||
config/
|
||||
configure
|
||||
config.log
|
||||
config.status
|
||||
data/*.json
|
||||
m4/
|
||||
po/*.header
|
||||
po/*.sed
|
||||
po/*.sin
|
||||
po/Makevars.template
|
||||
po/POTFILES
|
||||
po/Rules-quot
|
||||
po/gnome-shell-extensions.pot
|
||||
po/stamp-it
|
||||
staging/
|
||||
zip-files/
|
||||
|
||||
*~
|
||||
*.gmo
|
||||
metadata.json
|
||||
*.desktop
|
||||
*.gschema.valid
|
||||
*.session
|
||||
55
.gitlab-ci.yml
Normal file
55
.gitlab-ci.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
||||
|
||||
stages:
|
||||
- review
|
||||
- build
|
||||
|
||||
variables:
|
||||
LINT_LOG: "eslint-report.txt"
|
||||
JS_LOG: "js-report.txt"
|
||||
|
||||
.only_default: &only_default
|
||||
only:
|
||||
- branches
|
||||
- tags
|
||||
- merge_requests
|
||||
|
||||
check_commit_log:
|
||||
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis
|
||||
stage: review
|
||||
script:
|
||||
- ./.gitlab-ci/check-commit-log.sh
|
||||
only:
|
||||
- merge_requests
|
||||
|
||||
js_check:
|
||||
stage: review
|
||||
script:
|
||||
- find extensions -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG
|
||||
- (! grep -q . $JS_LOG)
|
||||
<<: *only_default
|
||||
artifacts:
|
||||
paths:
|
||||
- ${JS_LOG}
|
||||
when: on_failure
|
||||
|
||||
eslint:
|
||||
stage: review
|
||||
script:
|
||||
- eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; }
|
||||
<<: *only_default
|
||||
artifacts:
|
||||
paths:
|
||||
- ${LINT_LOG}
|
||||
when: on_failure
|
||||
|
||||
build-bundles:
|
||||
stage: build
|
||||
script:
|
||||
- ./export-zips.sh
|
||||
<<: *only_default
|
||||
artifacts:
|
||||
name: 'Extension bundles'
|
||||
expose_as: 'Get Extension bundles here'
|
||||
paths:
|
||||
- zip-files/
|
||||
31
.gitlab-ci/check-commit-log.sh
Executable file
31
.gitlab-ci/check-commit-log.sh
Executable file
@@ -0,0 +1,31 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||
echo Cannot review non-merge request
|
||||
exit 1
|
||||
fi
|
||||
|
||||
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||
|
||||
branch_point=$(git merge-base HEAD FETCH_HEAD)
|
||||
|
||||
commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA)
|
||||
|
||||
if [ -z "$commits" ]; then
|
||||
echo Commit range empty
|
||||
exit 1
|
||||
fi
|
||||
|
||||
function commit_message_has_url() {
|
||||
commit=$1
|
||||
commit_message=$(git show -s --format='format:%b' $commit)
|
||||
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
|
||||
return $?
|
||||
}
|
||||
|
||||
for commit in $commits; do
|
||||
if ! commit_message_has_url $commit; then
|
||||
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "data/gnome-shell-sass"]
|
||||
path = data/gnome-shell-sass
|
||||
url = https://gitlab.gnome.org/GNOME/gnome-shell-sass.git
|
||||
23
NEWS
23
NEWS
@@ -1,3 +1,26 @@
|
||||
3.37.1
|
||||
======
|
||||
* drive-menu: Emphasize eject buttons [Florian; #223]
|
||||
* user-theme: Add preference dialog [Florian; !117]
|
||||
* window-list: Fix inconsistent state in preference dialog [Milan; !119]
|
||||
* workspace-indicator: Overhaul preference dialog [Florian; !120]
|
||||
* user-theme: Support session mode styles [Florian; !118]
|
||||
* Misc. bug fixes and cleanups [Florian, Xiaoguang; !113, !106, !114, !116]
|
||||
|
||||
Contributors:
|
||||
Milan Crha, Florian Müllner, Xiaoguang Wang
|
||||
|
||||
Translators:
|
||||
Daniel Korostil [uk], Yosef Or Boczko [he], Kristjan SCHMIDT [eo],
|
||||
Dz Chen [zh_CN], Danial Behzadi [fa], Yuri Chornoivan [uk],
|
||||
Anders Jonsson [sv], Daniel Mustieles [es]
|
||||
|
||||
3.36.0
|
||||
======
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
3.35.91
|
||||
=======
|
||||
|
||||
|
||||
1
data/gnome-shell-sass
Submodule
1
data/gnome-shell-sass
Submodule
Submodule data/gnome-shell-sass added at 475294bf2f
@@ -1,339 +0,0 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc. <http://fsf.org>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
@@ -1,16 +0,0 @@
|
||||
# GNOME Shell Sass
|
||||
GNOME Shell Sass is a project intended to allow the sharing of the
|
||||
theme sources in sass between gnome-shell and other projects like
|
||||
gnome-shell-extensions.
|
||||
|
||||
Any changes should be done in the [GNOME Shell subtree][shell-subtree]
|
||||
and not the stand-alone [gnome-shell-sass repository][sass-repo]. They
|
||||
will then be synchronized periodically before releases.
|
||||
|
||||
## License
|
||||
GNOME Shell Sass is distributed under the terms of the GNU General Public
|
||||
License, version 2 or later. See the [COPYING][license] file for details.
|
||||
|
||||
[shell-subtree]: https://gitlab.gnome.org/GNOME/gnome-shell/tree/master/data/theme/gnome-shell-sass
|
||||
[sass-repo]: https://gitlab.gnome.org/GNOME/gnome-shell-sass
|
||||
[license]: COPYING
|
||||
@@ -1,43 +0,0 @@
|
||||
// When color definition differs for dark and light variant,
|
||||
// it gets @if ed depending on $variant
|
||||
|
||||
$base_color: if($variant == 'light', #fff, lighten(desaturate(#241f31, 20%), 2%));
|
||||
$bg_color: if($variant == 'light', #f6f5f4, darken(desaturate(#3d3846, 100%), 4%));
|
||||
$fg_color: if($variant == 'light', #2e3436, #eeeeec);
|
||||
|
||||
$selected_fg_color: #fff;
|
||||
$selected_bg_color: if($variant == 'light', #3584e4, darken(#3584e4, 10%));
|
||||
$selected_borders_color: if($variant== 'light', darken($selected_bg_color, 15%), darken($selected_bg_color, 30%));
|
||||
$borders_color: if($variant == 'light', darken($bg_color, 18%), darken($bg_color, 8%));
|
||||
$borders_edge: if($variant == 'light', rgba(255,255,255,0.8), transparentize($fg_color, 0.93));
|
||||
$link_color: if($variant == 'light', darken($selected_bg_color, 10%), lighten($selected_bg_color, 20%));
|
||||
$link_visited_color: if($variant == 'light', darken($selected_bg_color, 20%), lighten($selected_bg_color, 10%));
|
||||
$top_hilight: $borders_edge;
|
||||
|
||||
$warning_color: #f57900;
|
||||
$error_color: #ff8080;
|
||||
$success_color: if($variant == 'light', #33d17a, darken(#33d17a, 10%));
|
||||
$destructive_color: if($variant == 'light', #e01b24, darken(#e01b24, 10%));
|
||||
|
||||
$osd_fg_color: #eeeeec;
|
||||
$osd_text_color: white;
|
||||
$osd_bg_color: transparentize(darken(desaturate(#3d3846, 100%), 12%),0.04);
|
||||
$osd_insensitive_bg_color: transparentize(mix($osd_fg_color, opacify($osd_bg_color, 1), 10%), 0.5);
|
||||
$osd_insensitive_fg_color: mix($osd_fg_color, opacify($osd_bg_color, 1), 50%);
|
||||
$osd_borders_color: transparentize(black, 0.3);
|
||||
$osd_outer_borders_color: transparentize(white, 0.84);
|
||||
|
||||
$shadow_color: if($variant == 'light', rgba(0,0,0,0.1), rgba(0,0,0,0.2));
|
||||
|
||||
//insensitive state derived colors
|
||||
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
|
||||
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
|
||||
$insensitive_borders_color: mix($borders_color, $base_color, 60%);
|
||||
|
||||
//colors for the backdrop state, derived from the main colors.
|
||||
$backdrop_base_color: if($variant =='light', darken($base_color,1%), lighten($base_color,1%));
|
||||
$backdrop_bg_color: $bg_color;
|
||||
$backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 80%);
|
||||
$backdrop_insensitive_color: if($variant =='light', darken($backdrop_bg_color,15%), lighten($backdrop_bg_color,15%));
|
||||
$backdrop_borders_color: mix($borders_color, $bg_color, 90%);
|
||||
$backdrop_dark_fill: mix($backdrop_borders_color,$backdrop_bg_color, 35%);
|
||||
@@ -1,177 +0,0 @@
|
||||
//This is the RIGHT PLACE to edit the stylesheet
|
||||
|
||||
//let's start by telling people not to edit the generated CSS:
|
||||
$cakeisalie: "This stylesheet is generated, DO NOT EDIT";
|
||||
/* #{$cakeisalie} */
|
||||
|
||||
/* Copyright 2009, 2015 Red Hat, Inc.
|
||||
*
|
||||
* Portions adapted from Mx's data/style/default.css
|
||||
* Copyright 2009 Intel Corporation
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify it
|
||||
* under the terms and conditions of the GNU Lesser General Public License,
|
||||
* version 2.1, as published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope it will be useful, but WITHOUT ANY
|
||||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
|
||||
* more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
/* Global Values */
|
||||
|
||||
// padding, margin and spacing
|
||||
$base_padding: 6px;
|
||||
$base_margin: 4px;
|
||||
$base_spacing: 6px;
|
||||
|
||||
// border radii
|
||||
$base_border_radius: 5px;
|
||||
|
||||
$modal_radius:$base_border_radius * 2;
|
||||
|
||||
// non-standard colors
|
||||
$bubble_borders_color: lighten($borders_color, if($variant=='light', 0%, 5%));
|
||||
// $bubble_borders_color: if($variant == 'light', rgba(255,255,255,0.1), rgba(0,0,0,0.3));
|
||||
|
||||
// hover
|
||||
$hover_bg_color: if($variant=='light', darken($bg_color, 3%), lighten($bg_color, 5%));
|
||||
$hover_fg_color: if($variant=='light', darken($fg_color, 5%), lighten($fg_color, 5%));
|
||||
$hover_borders_color: lighten($borders_color,if($variant=='light', 5%, 3%));
|
||||
|
||||
// active
|
||||
$active_bg_color: if($variant == 'light', darken($bg_color, 7%), darken($bg_color, 9%));
|
||||
$active_fg_color: darken($fg_color,if($variant=='light', 5%, 3%));
|
||||
$active_borders_color: darken($borders_color,if($variant=='light', 5%, 3%));
|
||||
|
||||
// fonts
|
||||
$base_font_size: 11;
|
||||
$text_shadow_color: if($variant == 'light', rgba(255,255,255,0.3), rgba(0,0,0,0.2));
|
||||
|
||||
// icons
|
||||
$base_icon_size: 1.09em;
|
||||
// $base_icon_size: 16px;
|
||||
|
||||
// Stage
|
||||
stage {
|
||||
@include fontsize($base_font_size);
|
||||
color: $fg_color;
|
||||
}
|
||||
|
||||
/* Common Stylings */
|
||||
|
||||
// Text
|
||||
%status_text {
|
||||
font-size: 2em;
|
||||
font-weight: bold;
|
||||
color: $osd_fg_color;
|
||||
}
|
||||
|
||||
// osd panels
|
||||
%osd_panel {
|
||||
color: $osd_fg_color;
|
||||
background-color: $osd_bg_color;
|
||||
border: 1px solid $osd_outer_borders_color;
|
||||
border-radius: $base_border_radius * 2 + 4px;
|
||||
padding: $base_padding * 2;
|
||||
}
|
||||
|
||||
// Overview panels
|
||||
// for the dash and workspace switcher
|
||||
%overview_panel {
|
||||
color: $osd_fg_color;
|
||||
background-color: transparentize($osd_bg_color, 0.2);
|
||||
border: 1px solid $osd_outer_borders_color;
|
||||
}
|
||||
|
||||
// icon tiles
|
||||
%icon_tile {
|
||||
border-radius: $base_border_radius + 4px;
|
||||
padding: $base_padding;
|
||||
border: 2px solid transparent;
|
||||
transition-duration: 100ms;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
// dialogs
|
||||
%bubble_panel {
|
||||
color: $fg_color;
|
||||
background-color: $bg_color;
|
||||
border: 1px solid if($variant=='light', rgba(0,0,0, 0.6), $borders_color);
|
||||
}
|
||||
|
||||
// button styling
|
||||
%button {
|
||||
border-radius: $base_border_radius;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
min-height: 22px;
|
||||
padding: $base_padding * 0.5 $base_padding * 4;
|
||||
|
||||
@include button(normal);
|
||||
&:focus { @include button(focus);}
|
||||
&:hover { @include button(hover);}
|
||||
&:insensitive { @include button(insensitive);}
|
||||
&:active { @include button(active);}
|
||||
}
|
||||
|
||||
// buttons in dialogs
|
||||
%bubble_button {
|
||||
@include button(normal, $shadow: none);
|
||||
padding: $base_padding * 2;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-left-width: 0;
|
||||
border-bottom-width: 0;
|
||||
|
||||
&:insensitive { @include button(insensitive, $shadow: none); }
|
||||
&:hover { @include button(hover, $shadow: none); }
|
||||
&:focus { @include button(focus, $shadow: none); }
|
||||
&:active { @include button(active, $shadow: none); }
|
||||
|
||||
// radius is 2 pixel less to fit in bubble
|
||||
&:first-child {
|
||||
border-radius: 0 0 0 $modal_radius - 2px;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-right-width: 0;
|
||||
border-radius: 0 0 $modal_radius - 2px 0;
|
||||
}
|
||||
|
||||
&:first-child:last-child {
|
||||
border-radius: 0 0 $modal_radius - 2px $modal_radius - 2px;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// notification styling
|
||||
@mixin notification_bubble($flat: false) {
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: $base_border_radius + 2px;
|
||||
margin: $base_margin;
|
||||
|
||||
@if $flat {
|
||||
@include button(undecorated);
|
||||
} @else {
|
||||
@include button(normal);
|
||||
}
|
||||
|
||||
&:focus {
|
||||
@include button(focus);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
@include button(hover);
|
||||
}
|
||||
|
||||
&:active {
|
||||
@include button(active);
|
||||
}
|
||||
}
|
||||
@@ -1,231 +0,0 @@
|
||||
// Drawing mixins
|
||||
|
||||
// generic drawing of more complex things
|
||||
|
||||
@function draw_widget_edge($c:$borders_edge) {
|
||||
// outer highlight "used" on most widgets
|
||||
@return 0 1px $c;
|
||||
}
|
||||
|
||||
// provide font size in rem, with px fallback
|
||||
@mixin fontsize($size: 24, $base: 16) {
|
||||
font-size: round($size) + pt;
|
||||
//font-size: ($size / $base) * 1rem;
|
||||
}
|
||||
|
||||
@mixin draw_shadows($shadow1, $shadow2:none, $shadow3:none, $shadow4:none) {
|
||||
//
|
||||
// Helper function to stack up to 4 box-shadows;
|
||||
//
|
||||
@if $shadow4!=none { box-shadow: $shadow1, $shadow2, $shadow3, $shadow4; }
|
||||
@else if $shadow3!=none { box-shadow: $shadow1, $shadow2, $shadow3; }
|
||||
@else if $shadow2!=none { box-shadow: $shadow1, $shadow2; }
|
||||
@else { box-shadow: $shadow1; }
|
||||
}
|
||||
|
||||
// entries
|
||||
|
||||
@mixin entry($t, $fc:$selected_bg_color, $edge: $borders_edge) {
|
||||
//
|
||||
// Entries drawing function
|
||||
//
|
||||
// $t: entry type
|
||||
// $fc: focus color
|
||||
// $edge: set to none to not draw the bottom edge or specify a color to not use the default one
|
||||
//
|
||||
// possible $t values:
|
||||
// normal, focus, insensitive
|
||||
//
|
||||
|
||||
@if $t==normal {
|
||||
background-color: $base_color;
|
||||
border-color: $borders_color;
|
||||
|
||||
}
|
||||
@if $t==focus {
|
||||
border-color: if($fc==$selected_bg_color,
|
||||
$selected_borders_color,
|
||||
darken($fc,35%));
|
||||
box-shadow: inset 0 0 0 1px $fc;
|
||||
}
|
||||
@if $t==hover { }
|
||||
@if $t==insensitive {
|
||||
color: $insensitive_fg_color;
|
||||
border-color: $insensitive_bg_color;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// buttons
|
||||
|
||||
@function draw_border_color ($c) {
|
||||
//
|
||||
// colored buttons want the border form the base color
|
||||
//
|
||||
@return if($variant == 'light', darken($c, 18%), darken($c, 4%));
|
||||
}
|
||||
|
||||
@function draw_text_shadow_color ($tc:$fg_color, $bg:$bg_color) {
|
||||
//
|
||||
// calculate the color of text shadows
|
||||
//
|
||||
// $tc is the text color
|
||||
// $bg is the background color
|
||||
//
|
||||
$lbg: lightness($bg)/100%;
|
||||
@if lightness($tc)<50% { @return rgba(255,255,255,$lbg/($lbg*1.3)); }
|
||||
@else { @return rgba(0,0,0,1-$lbg*0.8); }
|
||||
}
|
||||
|
||||
@function draw_button_hilight_color($c) {
|
||||
//
|
||||
// calculate the right top hilight color for buttons
|
||||
//
|
||||
// $c: base color;
|
||||
//
|
||||
@if lightness($c)>90% { @return white; }
|
||||
@else if lightness($c)>80% { @return rgba(255,255,255, 0.7); }
|
||||
@else if lightness($c)>50% { @return rgba(255,255,255, 0.5); }
|
||||
@else if lightness($c)>40% { @return rgba(255,255,255, 0.3); }
|
||||
@else { @return rgba(255,255,255, 0.1); }
|
||||
}
|
||||
|
||||
@mixin draw_button_text_shadow ($tc:$fg_color, $bg:$bg_color) {
|
||||
//
|
||||
// helper function for the text emboss effect
|
||||
//
|
||||
// $tc is the optional text color, not the shadow color
|
||||
//
|
||||
// TODO: this functions needs a way to deal with special cases
|
||||
//
|
||||
|
||||
$shadow: draw_text_shadow_color($tc, $bg);
|
||||
|
||||
@if lightness($tc)<50% {
|
||||
text-shadow: 0 1px $shadow;
|
||||
icon-shadow: 0 1px $shadow;
|
||||
}
|
||||
@else {
|
||||
text-shadow: 0 -1px $shadow;
|
||||
icon-shadow: 0 -1px $shadow;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin button($t, $c:$bg_color, $tc:$fg_color, $edge: $borders_edge, $shadow: $shadow_color) {
|
||||
//
|
||||
// Button drawing function
|
||||
//
|
||||
// $t: button type,
|
||||
// $c: base button color for colored* types
|
||||
// $tc: optional text color for colored* types
|
||||
// $edge: set to none to not draw the bottom edge or specify a color to not
|
||||
// use the default one
|
||||
// $shadow: set to none to not draw the drop shadow or specify a color to not
|
||||
// use the default one
|
||||
//
|
||||
// possible $t values:
|
||||
// normal, hover, active, insensitive, insensitive-active,
|
||||
// backdrop, backdrop-active, backdrop-insensitive, backdrop-insensitive-active,
|
||||
// osd, osd-hover, osd-active, osd-insensitive, osd-backdrop, undecorated
|
||||
//
|
||||
|
||||
$hilight_color: draw_button_hilight_color($c);
|
||||
$button_edge: if($edge == none, none, draw_widget_edge($edge));
|
||||
$blank_edge: if($edge == none, none, draw_widget_edge(transparentize($edge,1)));
|
||||
$button_shadow: if($shadow == none, none, 0 1px 1px 0 $shadow);
|
||||
|
||||
// normal button
|
||||
@if $t==normal {
|
||||
color: $tc;
|
||||
background-color: lighten($c, 3%);
|
||||
border-color: draw_border_color($c);
|
||||
@include draw_shadows($button_shadow);
|
||||
// box-shadow: 0 1px 1px 0 rgba(0,0,0,0.1);
|
||||
text-shadow: 0 1px $text_shadow_color;
|
||||
icon-shadow: 0 1px $text_shadow_color;
|
||||
}
|
||||
|
||||
// focused button
|
||||
@if $t==focus {
|
||||
color: $tc;
|
||||
text-shadow: 0 1px $text_shadow_color;
|
||||
icon-shadow: 0 1px $text_shadow_color;
|
||||
box-shadow: inset 0 0 0 2px transparentize($selected_bg_color, 0.7);
|
||||
//border-color: $selected_bg_color;
|
||||
}
|
||||
|
||||
// hover button
|
||||
@else if $t==hover {
|
||||
color: $tc;
|
||||
background-color: lighten($c, if($variant == 'light', 8%, 5%));
|
||||
border-color: if($variant == 'light', draw_border_color(lighten($c, 7%)), draw_border_color($c));
|
||||
@include draw_shadows($button_shadow);
|
||||
text-shadow: 0 1px $text_shadow_color;
|
||||
icon-shadow: 0 1px $text_shadow_color;
|
||||
}
|
||||
|
||||
// active button
|
||||
@else if $t==active {
|
||||
color: $tc;
|
||||
background-color: darken($c,3%);
|
||||
border-color: draw_border_color(if($variant == 'light', $c, darken($c,7%)));
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
// insensitive button
|
||||
@else if $t==insensitive {
|
||||
color: $insensitive_fg_color;
|
||||
border-color: $insensitive_borders_color;
|
||||
background-color: $insensitive_bg_color;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
}
|
||||
|
||||
// reset
|
||||
@else if $t==undecorated {
|
||||
border-color: transparent;
|
||||
background-color: transparent;
|
||||
background-image: none;
|
||||
@include draw_shadows(inset 0 1px rgba(255,255,255,0),$blank_edge);
|
||||
text-shadow: none;
|
||||
icon-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// overview icons
|
||||
@mixin overview-icon($color) {
|
||||
.overview-icon {
|
||||
@extend %icon_tile;
|
||||
color: $color;
|
||||
}
|
||||
|
||||
&:hover,
|
||||
&:selected {
|
||||
.overview-icon {
|
||||
background-color: transparentize($color, .9);
|
||||
}
|
||||
}
|
||||
|
||||
&:focus {
|
||||
.overview-icon {
|
||||
background-color: transparentize($color, .7);
|
||||
// border-color: $selected_bg_color;
|
||||
}
|
||||
}
|
||||
|
||||
&:drop {
|
||||
.overview-icon {
|
||||
background-color: transparentize($selected_bg_color, .15);
|
||||
}
|
||||
}
|
||||
|
||||
&:active,
|
||||
&:checked {
|
||||
.overview-icon {
|
||||
background-color: transparentize(darken($osd_bg_color, 10%), .5);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
// When color definition differs for dark and light variant,
|
||||
// it gets @if ed depending on $variant
|
||||
|
||||
|
||||
$base_color: #222;
|
||||
$bg_color: #000;
|
||||
$fg_color: #fff;
|
||||
|
||||
$selected_fg_color: #ffffff;
|
||||
$selected_bg_color: darken(#4a90d9,20%);
|
||||
$selected_borders_color: darken($selected_bg_color, 20%);
|
||||
$borders_color: darken($bg_color,12%);
|
||||
$borders_edge: transparentize($fg_color, 0.9);
|
||||
$link_color: lighten($selected_bg_color,20%);
|
||||
$link_visited_color: lighten($selected_bg_color,10%);
|
||||
$top_hilight: $borders_edge;
|
||||
|
||||
$warning_color: #f57900;
|
||||
$error_color: #cc0000;
|
||||
$success_color: darken(#73d216,10%);
|
||||
$destructive_color: darken(#ef2929,10%);
|
||||
|
||||
$osd_fg_color: #eeeeec;
|
||||
$osd_bg_color: #2e3436;
|
||||
$osd_borders_color: rgba(0,0,0, 0.7);
|
||||
$osd_outer_borders_color: rgba(255,255,255, 0.1);
|
||||
|
||||
$shadow_color: rgba(0,0,0, 0.1);
|
||||
|
||||
//insensitive state derived colors
|
||||
$insensitive_fg_color: mix($fg_color, $bg_color, 50%);
|
||||
$insensitive_bg_color: mix($bg_color, $base_color, 60%);
|
||||
$insensitive_borders_color: $borders_color;
|
||||
|
||||
//colors for the backdrop state, derived from the main colors.
|
||||
$backdrop_base_color: lighten($base_color,1%);
|
||||
$backdrop_bg_color: $bg_color;
|
||||
$backdrop_fg_color: mix($fg_color, $backdrop_bg_color, 80%);
|
||||
$backdrop_insensitive_color: lighten($backdrop_bg_color,15%);
|
||||
$backdrop_borders_color: mix($borders_color, $bg_color, 90%);
|
||||
$backdrop_dark_fill: mix($backdrop_borders_color,$backdrop_bg_color, 35%);
|
||||
@@ -1,51 +0,0 @@
|
||||
//
|
||||
// Shell widgets stylesheets are placed in separate .scss files
|
||||
// in 'widgets' and imported into the main stylesheet in this file.
|
||||
// To create or update a widget for the shell modify the list below.
|
||||
//
|
||||
|
||||
/* WIDGETS */
|
||||
|
||||
// Primary widgets
|
||||
@import 'widgets/base';
|
||||
@import 'widgets/entries';
|
||||
@import 'widgets/buttons';
|
||||
@import 'widgets/check-box';
|
||||
@import 'widgets/switches';
|
||||
@import 'widgets/slider';
|
||||
@import 'widgets/scrollbars';
|
||||
// Popovers
|
||||
@import 'widgets/popovers';
|
||||
@import 'widgets/calendar';
|
||||
@import 'widgets/message-list';
|
||||
@import 'widgets/ibus-popup';
|
||||
// Notifications
|
||||
@import 'widgets/notifications';
|
||||
@import 'widgets/hotplug';
|
||||
// Dialogs
|
||||
@import 'widgets/dialogs';
|
||||
@import 'widgets/network-dialog';
|
||||
// OSDs
|
||||
@import 'widgets/osd';
|
||||
@import 'widgets/switcher-popup';
|
||||
@import 'widgets/workspace-switcher';
|
||||
// Panel
|
||||
@import 'widgets/panel';
|
||||
@import 'widgets/corner-ripple';
|
||||
// Overview
|
||||
@import 'widgets/overview';
|
||||
@import 'widgets/window-picker';
|
||||
@import 'widgets/search-entry';
|
||||
@import 'widgets/search-results';
|
||||
@import 'widgets/app-grid';
|
||||
@import 'widgets/dash';
|
||||
@import 'widgets/workspace-thumbnails';
|
||||
// A11y / misc
|
||||
@import 'widgets/a11y';
|
||||
@import 'widgets/misc';
|
||||
@import 'widgets/tiled-previews';
|
||||
@import 'widgets/keyboard';
|
||||
@import 'widgets/looking-glass';
|
||||
// Lock / login screens
|
||||
@import 'widgets/login-dialog';
|
||||
@import 'widgets/screen-shield';
|
||||
@@ -1,37 +0,0 @@
|
||||
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
|
||||
xmlns:foaf="http://xmlns.com/foaf/0.1/"
|
||||
xmlns:gnome="http://api.gnome.org/doap-extensions#"
|
||||
xmlns="http://usefulinc.com/ns/doap#">
|
||||
|
||||
<name xml:lang="en">GNOME Shell Sass</name>
|
||||
<shortdesc xml:lang="en">Sass sources of GNOME Shell</shortdesc>
|
||||
<description>GNOME Shell Sass is a project intended to allow the sharing of the
|
||||
sass theme sources between gnome-shell and other projects like gnome-shell-extensions.</description>
|
||||
|
||||
<category rdf:resource="http://api.gnome.org/doap-extensions#core" />
|
||||
<programming-language>sass</programming-language>
|
||||
<programming-language>css</programming-language>
|
||||
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Carlos Soriano</foaf:name>
|
||||
<foaf:mbox rdf:resource="mailto:csoriano@gnome.org" />
|
||||
<gnome:userid>csoriano</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Florian Müllner</foaf:name>
|
||||
<foaf:mbox rdf:resource="mailto:fmuellner@gnome.org" />
|
||||
<gnome:userid>fmuellner</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Jakub Steiner</foaf:name>
|
||||
<foaf:mbox rdf:resource="mailto:jimmac@gmail.com" />
|
||||
<gnome:userid>jimmac</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
</Project>
|
||||
@@ -1,24 +0,0 @@
|
||||
// Pointer location
|
||||
.ripple-pointer-location {
|
||||
width: $ripple_size;
|
||||
height: $ripple_size;
|
||||
border-radius: $ripple_size * 0.5; // radius equals the size of the box to give us the curve
|
||||
background-color: lighten(transparentize($selected_bg_color, 0.7), 30%);
|
||||
box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
|
||||
}
|
||||
|
||||
// Pointer accessibility notifications
|
||||
.pie-timer {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
-pie-border-width: 3px;
|
||||
-pie-border-color: $selected_bg_color;
|
||||
-pie-background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
|
||||
}
|
||||
|
||||
// Screen zoom/Magnifier
|
||||
.magnifier-zoom-region {
|
||||
border: 2px solid $selected_bg_color;
|
||||
|
||||
&.full-screen { border-width: 0; }
|
||||
}
|
||||
@@ -1,186 +0,0 @@
|
||||
/* App Grid */
|
||||
|
||||
$app_icon_size: 96px;
|
||||
$app_icon_padding: 24px;
|
||||
|
||||
// app icons
|
||||
.icon-grid {
|
||||
-shell-grid-horizontal-item-size: $app_icon_size + $app_icon_padding * 2;
|
||||
-shell-grid-vertical-item-size: $app_icon_size + $app_icon_padding * 2;
|
||||
spacing: $base_spacing * 6;
|
||||
|
||||
.overview-icon {
|
||||
icon-size: $app_icon_size;
|
||||
}
|
||||
}
|
||||
|
||||
//.app-display { spacing: 20px; }
|
||||
|
||||
/* App Icons */
|
||||
|
||||
$app_grid_fg_color: #fff;
|
||||
|
||||
// Icon tiles in the app grid
|
||||
.app-well-app,
|
||||
%app-well-app {
|
||||
@include overview-icon($app_grid_fg_color);
|
||||
|
||||
.overview-icon.overview-icon-with-label {
|
||||
padding: 10px 8px 5px 8px;
|
||||
|
||||
> StBoxLayout {
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* App Folders */
|
||||
.app-folder {
|
||||
.overview-icon {
|
||||
}
|
||||
}
|
||||
|
||||
// expanded folder
|
||||
.app-folder-dialog {
|
||||
border-radius: $modal_radius * 1.5;
|
||||
border: 1px solid $osd_outer_borders_color;
|
||||
spacing: 12px;
|
||||
background-color: transparentize(darken($osd_bg_color,10%), 0.05);
|
||||
|
||||
& .folder-name-container {
|
||||
padding: 24px 36px 0;
|
||||
spacing: 12px;
|
||||
|
||||
& .folder-name-label,
|
||||
& .folder-name-entry {
|
||||
font-size: 18pt;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
& .folder-name-entry { width: 300px }
|
||||
|
||||
/* FIXME: this is to keep the label in sync with the entry */
|
||||
& .folder-name-label { padding: 5px 7px }
|
||||
|
||||
& .edit-folder-button {
|
||||
@extend %button;
|
||||
|
||||
padding: 0;
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
border-radius: 18px;
|
||||
|
||||
& > StIcon { icon-size: 16px }
|
||||
}
|
||||
}
|
||||
|
||||
& StButton#vhandle,
|
||||
& StButton#vhandle:hover,
|
||||
& StButton#vhandle:active { background-color: transparent; }
|
||||
}
|
||||
.app-folder-dialog-container {
|
||||
padding: 12px;
|
||||
width: 800px;
|
||||
height: 600px;
|
||||
}
|
||||
|
||||
.app-folder-icon {
|
||||
padding: $base_padding;
|
||||
spacing-rows: $base_spacing;
|
||||
spacing-columns: $base_spacing;
|
||||
}
|
||||
|
||||
|
||||
// Running app indicator (also shown in dash)
|
||||
.app-well-app-running-dot {
|
||||
height: 5px;
|
||||
width: 5px;
|
||||
border-radius:5px;
|
||||
background-color: $osd_fg_color;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
// Rename popup for app folders
|
||||
.rename-folder-popup {
|
||||
.rename-folder-popup-item {
|
||||
spacing: $base_spacing;
|
||||
&:ltr, &:rtl { padding: 0 $base_padding * 2; }
|
||||
}
|
||||
}
|
||||
|
||||
// right-click app menu
|
||||
.app-menu,
|
||||
.app-well-menu {
|
||||
max-width: 27.25em;
|
||||
}
|
||||
|
||||
// App Grid pagination indicators
|
||||
.page-indicator {
|
||||
padding: 15px 20px;
|
||||
|
||||
.page-indicator-icon {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 10px; // the same as height&width
|
||||
background-color: white;
|
||||
}
|
||||
}
|
||||
|
||||
// Some hacks I don't even know
|
||||
.all-apps,
|
||||
.frequent-apps > StBoxLayout {
|
||||
// horizontal padding to make sure scrollbars or dash don't overlap content
|
||||
padding: 0px 88px 10px 88px;
|
||||
}
|
||||
|
||||
// Label when no frequent apps
|
||||
.no-frequent-applications-label { @extend %status_text; }
|
||||
|
||||
// shutdown and other actions in the grid
|
||||
.system-action-icon {
|
||||
background-color: rgba(0,0,0,0.8);
|
||||
color: #fff;
|
||||
border-radius: 99px;
|
||||
icon-size: $app_icon_size * 0.5;
|
||||
}
|
||||
|
||||
/* Frequent | All toggle */
|
||||
|
||||
// container
|
||||
.app-view-controls {
|
||||
padding-bottom: 32px;
|
||||
}
|
||||
|
||||
// buttons
|
||||
.app-view-control {
|
||||
padding: 4px 32px;
|
||||
margin: 0 4px;
|
||||
|
||||
&, &:hover, &:checked {
|
||||
@include button(undecorated);
|
||||
color: darken($osd_fg_color, 25%);
|
||||
}
|
||||
|
||||
&:hover {
|
||||
color: $osd_fg_color;
|
||||
box-shadow: inset 0 -2px darken($osd_fg_color, 25%);
|
||||
}
|
||||
|
||||
&:active {
|
||||
box-shadow: inset 0 -2px $osd_fg_color;
|
||||
}
|
||||
|
||||
&:checked {
|
||||
color: $osd_fg_color;
|
||||
box-shadow: inset 0 -2px $selected_bg_color;
|
||||
}
|
||||
|
||||
&:first-child {
|
||||
border-right-width: 0;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border-radius: 0;
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
// Links
|
||||
.shell-link {
|
||||
color: $link_color;
|
||||
|
||||
&:hover {
|
||||
color: lighten($link_color, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
// Outline for low res icons
|
||||
.lowres-icon {
|
||||
icon-shadow: 0 1px 2px rgba(black, 0.3);
|
||||
}
|
||||
|
||||
// Dropshadow for large icons
|
||||
.icon-dropshadow {
|
||||
icon-shadow: 0 1px 2px rgba(black, 0.4);
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
/* Buttons */
|
||||
|
||||
.button {
|
||||
@extend %button; // that's it
|
||||
}
|
||||
@@ -1,255 +0,0 @@
|
||||
/* Date/Time Menu */
|
||||
|
||||
.clock-display-box { spacing: $base_spacing; }
|
||||
|
||||
// overall menu
|
||||
#calendarArea {
|
||||
padding:0;
|
||||
}
|
||||
|
||||
// Calendar menu side column
|
||||
.datemenu-calendar-column {
|
||||
spacing: $base_spacing;
|
||||
border: 0 solid $bubble_borders_color;
|
||||
padding: 0 $base_padding * 2;
|
||||
|
||||
&:ltr {margin-right: $base_margin * 2; border-left-width: 1px; }
|
||||
&:rtl {margin-left: $base_margin * 2; border-right-width: 1px; }
|
||||
|
||||
.datemenu-displays-section {
|
||||
}
|
||||
|
||||
.datemenu-displays-box {
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
}
|
||||
|
||||
.events-section-title {
|
||||
@include notification_bubble($flat: true);
|
||||
color: desaturate(darken($fg_color,40%), 10%);
|
||||
font-weight: bold;
|
||||
padding: .4em;
|
||||
}
|
||||
|
||||
/* today button (the date) */
|
||||
.datemenu-today-button {
|
||||
@include notification_bubble($flat: true);
|
||||
padding: $base_padding * 1.5;
|
||||
|
||||
// weekday label
|
||||
.day-label {
|
||||
@include fontsize($base_font_size+1);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
// date label
|
||||
.date-label {
|
||||
@include fontsize($base_font_size+7);
|
||||
font-weight: 1000;
|
||||
}
|
||||
}
|
||||
|
||||
/* Calendar */
|
||||
.calendar {
|
||||
@include notification_bubble;
|
||||
padding: $base_padding;
|
||||
|
||||
// month
|
||||
.calendar-month-label {
|
||||
color: lighten($fg_color,5%);
|
||||
font-weight: bold;
|
||||
padding: 8px 0;
|
||||
&:focus {}
|
||||
}
|
||||
|
||||
// prev/next month icons
|
||||
.calendar-change-month-back StIcon,
|
||||
.calendar-change-month-forward StIcon {
|
||||
icon-size: $base_icon_size;
|
||||
}
|
||||
|
||||
.pager-button {
|
||||
background-color: transparent;
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
border-radius: $base_border_radius;
|
||||
&:hover, &:focus { background-color: lighten($hover_bg_color, 5%); }
|
||||
&:active { background-color: $active_bg_color; }
|
||||
}
|
||||
|
||||
|
||||
$calendar_day_size: 32px;
|
||||
|
||||
.calendar-day-base {
|
||||
@include fontsize($base_font_size - 3);
|
||||
text-align: center;
|
||||
width: $calendar_day_size;
|
||||
height: $calendar_day_size;
|
||||
padding: 0;
|
||||
margin: 2px;
|
||||
border-radius: $calendar_day_size * 0.5 + 2px;
|
||||
border: 1px solid transparent; //avoid jumparound due to today
|
||||
font-feature-settings: "tnum";
|
||||
&:hover, &:focus { background-color: $hover_bg_color; }
|
||||
&:active,&:selected {
|
||||
color: lighten($fg_color,10%);
|
||||
background-color: darken($bg_color,5%);
|
||||
}
|
||||
|
||||
// day of week heading
|
||||
&.calendar-day-heading {
|
||||
color: lighten($fg_color,10%);
|
||||
margin-top: 1em;
|
||||
@include fontsize($base_font_size - 4);
|
||||
}
|
||||
}
|
||||
|
||||
.calendar-day { //border collapse hack - see calendar.js
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.calendar-day-top {
|
||||
border-top-width: 1px;
|
||||
}
|
||||
|
||||
.calendar-day-left {
|
||||
border-left-width: 1px;
|
||||
}
|
||||
|
||||
.calendar-work-day {}
|
||||
|
||||
.calendar-nonwork-day {
|
||||
color: $insensitive_fg_color;
|
||||
}
|
||||
|
||||
// Today
|
||||
.calendar-today {
|
||||
font-weight: bold;
|
||||
border: 1px solid transparent;
|
||||
background-color: $selected_bg_color;
|
||||
color: $selected_fg_color;
|
||||
|
||||
&:hover,&:focus {
|
||||
background-color:lighten($selected_bg_color, 3%);
|
||||
color: $selected_fg_color;
|
||||
}
|
||||
|
||||
&:active,&:selected {
|
||||
background-color: $selected_bg_color;
|
||||
color: $selected_fg_color;
|
||||
|
||||
&:hover,&:focus {
|
||||
background-color:lighten($selected_bg_color, 3%);
|
||||
color: $selected_fg_color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.calendar-day-with-events {
|
||||
color: lighten($fg_color,10%);
|
||||
font-weight: bold;
|
||||
background-image: url("resource:///org/gnome/shell/theme/calendar-today.svg");
|
||||
}
|
||||
|
||||
.calendar-other-month-day {
|
||||
color: transparentize($fg_color ,0.5);
|
||||
}
|
||||
|
||||
.calendar-week-number {
|
||||
@include fontsize($base_font_size - 4);
|
||||
font-weight: bold;
|
||||
height: 1.8em;
|
||||
width: 2.3em;
|
||||
border-radius: 2px;
|
||||
padding: 0.5em 0 0;
|
||||
margin: 6px;
|
||||
background-color: darken($bg_color, 2%);
|
||||
color: lighten($fg_color, 5%);
|
||||
}
|
||||
}
|
||||
|
||||
/* World clocks */
|
||||
.world-clocks-button {
|
||||
@include notification_bubble;
|
||||
padding: $base_padding * 2;
|
||||
|
||||
.world-clocks-grid {
|
||||
spacing-rows: $base_spacing;
|
||||
spacing-columns: $base_spacing * 2;
|
||||
}
|
||||
|
||||
// title
|
||||
.world-clocks-header {
|
||||
color: desaturate(darken($fg_color,40%), 10%);
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
// city label
|
||||
.world-clocks-city {
|
||||
color: $fg_color;
|
||||
@include fontsize($base_font_size);
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
// timezone time
|
||||
.world-clocks-time {
|
||||
font-weight: bold;
|
||||
color: $fg_color;
|
||||
font-feature-settings: "lnum";
|
||||
@include fontsize($base_font_size);
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// timezone offset label
|
||||
.world-clocks-timezone {
|
||||
color: darken($fg_color,20%);
|
||||
font-feature-settings: "tnum";
|
||||
@include fontsize($base_font_size - 1);
|
||||
}
|
||||
}
|
||||
|
||||
/* Weather */
|
||||
.weather-button {
|
||||
@include notification_bubble;
|
||||
padding: $base_padding * 2;
|
||||
|
||||
.weather-box {
|
||||
spacing: $base_spacing + $base_margin;
|
||||
}
|
||||
|
||||
.weather-header-box {
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
|
||||
.weather-header {
|
||||
color: desaturate(darken($fg_color,40%), 10%);
|
||||
font-weight: bold;
|
||||
|
||||
&.location {
|
||||
font-weight: normal;
|
||||
@include fontsize($base_font_size - 1);
|
||||
}
|
||||
}
|
||||
|
||||
.weather-grid {
|
||||
spacing-rows: $base_spacing;
|
||||
spacing-columns: $base_spacing * 2;
|
||||
}
|
||||
|
||||
.weather-forecast-time {
|
||||
color: darken($fg_color,30%);
|
||||
font-feature-settings: "tnum";
|
||||
@include fontsize($base_font_size - 2);
|
||||
font-weight: normal;
|
||||
padding-top: 0.2em;
|
||||
padding-bottom: 0.4em;
|
||||
}
|
||||
|
||||
.weather-forecast-icon {
|
||||
icon-size: $base_icon_size * 2;
|
||||
}
|
||||
|
||||
.weather-forecast-temp {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
/* Check Boxes */
|
||||
|
||||
// these are equal to the size of the SVG assets
|
||||
$check_height: 22px;
|
||||
$check_width: 24px;
|
||||
|
||||
|
||||
.check-box {
|
||||
StBoxLayout { spacing: .8em; }
|
||||
StBin {
|
||||
width: $check_width;
|
||||
height: $check_height;
|
||||
background-image: url("resource:///org/gnome/shell/theme/checkbox-off.svg");
|
||||
}
|
||||
&:focus StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox-off-focused.svg"); }
|
||||
&:checked StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox.svg"); }
|
||||
&:focus:checked StBin { background-image: url("resource:///org/gnome/shell/theme/checkbox-focused.svg"); }
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
/* Activities Ripple */
|
||||
|
||||
$ripple_size: 50px;
|
||||
|
||||
.ripple-box {
|
||||
background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
|
||||
box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
|
||||
// plus + 2px for the border (box-shadow)
|
||||
width: $ripple_size + 2px;
|
||||
height: $ripple_size + 2px;
|
||||
border-radius: 0 0 $ripple_size + 2px 0; // radius equals the size of the box to give us the curve
|
||||
|
||||
// just a simple change to the border radius position
|
||||
&:rtl { border-radius: 0 0 0 $ripple_size + 2px; }
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
/* Dash */
|
||||
|
||||
$dash_placeholder_size: 32px;
|
||||
$dash_spacing: $base_padding + 4px;
|
||||
$dash_border_radius: $modal_radius * 1.5;
|
||||
|
||||
#dash {
|
||||
@extend %overview_panel;
|
||||
@include fontsize($base_font_size - 2);
|
||||
padding: ($dash_spacing / 2) 0;
|
||||
|
||||
border-radius: 0 $dash_border_radius $dash_border_radius 0;
|
||||
border-left-width: 0;
|
||||
&:rtl {
|
||||
border-radius: $dash_border_radius 0 0 $dash_border_radius;
|
||||
border-right-width: 0;
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
// background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
|
||||
background-image:none;
|
||||
background-size: contain;
|
||||
height: $dash_placeholder_size;
|
||||
}
|
||||
|
||||
.empty-dash-drop-target {
|
||||
width: $dash_placeholder_size;
|
||||
height: $dash_placeholder_size;
|
||||
}
|
||||
}
|
||||
|
||||
// Dash Items
|
||||
.dash-item-container > StWidget {
|
||||
padding: ($dash_spacing / 2) $dash_spacing;
|
||||
}
|
||||
|
||||
// OSD Tooltip
|
||||
.dash-label {
|
||||
background-color: transparentize($osd_bg_color,0.05);
|
||||
border-radius: $base_border_radius + 2px;
|
||||
border:none;
|
||||
box-shadow:0 0 0 1px $osd_outer_borders_color;
|
||||
color: $osd_fg_color;
|
||||
padding: $base_padding $base_padding + 2px;
|
||||
text-align: center;
|
||||
-x-offset: $base_margin * 2; // distance from the dash edge
|
||||
}
|
||||
|
||||
// Show apps button
|
||||
.show-apps {
|
||||
@include overview-icon($osd_fg_color);
|
||||
|
||||
&:focus,
|
||||
&:checked {
|
||||
.overview-icon {
|
||||
background-color: darken($osd_bg_color,10%);
|
||||
color: $fg_color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,168 +0,0 @@
|
||||
/* Modal Dialogs */
|
||||
|
||||
.headline {
|
||||
@include fontsize($base_font_size + 1);
|
||||
}
|
||||
|
||||
.modal-dialog {
|
||||
border-radius: $modal_radius;
|
||||
@extend %bubble_panel;
|
||||
|
||||
.modal-dialog-content-box {
|
||||
margin: 32px 40px;
|
||||
spacing: 32px;
|
||||
max-width: 28em;
|
||||
}
|
||||
|
||||
.modal-dialog-linked-button {
|
||||
@extend %bubble_button;
|
||||
}
|
||||
}
|
||||
|
||||
/* End Session Dialog */
|
||||
.end-session-dialog {
|
||||
width: 30em;
|
||||
|
||||
.end-session-dialog-battery-warning,
|
||||
.dialog-list-title {
|
||||
color: $warning_color;
|
||||
}
|
||||
}
|
||||
|
||||
/* Message Dialog */
|
||||
.message-dialog-content {
|
||||
spacing: 18px;
|
||||
|
||||
.message-dialog-title {
|
||||
text-align: center;
|
||||
font-size: 18pt;
|
||||
font-weight: 800;
|
||||
|
||||
&.leightweight {
|
||||
font-size: 13pt;
|
||||
font-weight: 800;
|
||||
}
|
||||
}
|
||||
.message-dialog-description { text-align: center; }
|
||||
}
|
||||
|
||||
/* Dialog List */
|
||||
.dialog-list {
|
||||
spacing: 18px;
|
||||
|
||||
.dialog-list-title {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.dialog-list-scrollview { max-height: 200px; }
|
||||
.dialog-list-box {
|
||||
spacing: 1em;
|
||||
|
||||
.dialog-list-item {
|
||||
spacing: 1em;
|
||||
|
||||
.dialog-list-item-title { font-weight: bold; }
|
||||
.dialog-list-item-description {
|
||||
color: darken($fg_color,5%);
|
||||
@include fontsize($base_font_size - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* Run Dialog */
|
||||
.run-dialog {
|
||||
.modal-dialog-content-box {
|
||||
margin-top: 24px;
|
||||
margin-bottom: 14px;
|
||||
}
|
||||
.run-dialog-entry { width: 20em; }
|
||||
.run-dialog-description {
|
||||
@include fontsize($base_font_size - 1);
|
||||
text-align: center;
|
||||
color: darken($fg_color, 20%);
|
||||
}
|
||||
}
|
||||
|
||||
/* Password or Authentication Dialog */
|
||||
|
||||
.prompt-dialog {
|
||||
width: 28em;
|
||||
|
||||
.modal-dialog-content-box {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
.prompt-dialog-password-grid {
|
||||
spacing-rows: 8px;
|
||||
spacing-columns: 4px;
|
||||
|
||||
.prompt-dialog-password-entry {
|
||||
width: auto;
|
||||
|
||||
// 4px (spacing) + 16px (spinner-width)
|
||||
&:ltr { margin-left: 20px; }
|
||||
&:rtl { margin-right: 20px; }
|
||||
}
|
||||
}
|
||||
|
||||
.prompt-dialog-password-layout {
|
||||
spacing: 8px;
|
||||
}
|
||||
|
||||
.prompt-dialog-password-entry {
|
||||
width: 20em;
|
||||
}
|
||||
|
||||
.prompt-dialog-error-label,
|
||||
.prompt-dialog-info-label,
|
||||
.prompt-dialog-null-label {
|
||||
text-align: center;
|
||||
@include fontsize($base_font_size - 1);
|
||||
}
|
||||
|
||||
.prompt-dialog-error-label {
|
||||
color: $warning_color;
|
||||
}
|
||||
|
||||
|
||||
/* Polkit Dialog */
|
||||
|
||||
.polkit-dialog-user-layout {
|
||||
text-align: center;
|
||||
spacing: 8px;
|
||||
margin-bottom: 6px;
|
||||
|
||||
.polkit-dialog-user-icon {
|
||||
border-radius: 99px;
|
||||
background-size: contain;
|
||||
}
|
||||
.polkit-dialog-user-root-label { color: $warning_color; }
|
||||
}
|
||||
|
||||
/* Audio selection dialog */
|
||||
.audio-device-selection-dialog {
|
||||
.modal-dialog-content-box { margin-bottom: 28px; }
|
||||
.audio-selection-box { spacing: 20px; }
|
||||
}
|
||||
|
||||
.audio-selection-device {
|
||||
border: 1px solid $bubble_borders_color;
|
||||
border-radius: 12px;
|
||||
&:hover,&:focus { background-color: $hover_bg_color; }
|
||||
&:active {
|
||||
background-color: $selected_bg_color;
|
||||
color: $selected_fg_color;
|
||||
}
|
||||
}
|
||||
|
||||
.audio-selection-device-box {
|
||||
padding: 20px;
|
||||
spacing: 20px;
|
||||
}
|
||||
|
||||
.audio-selection-device-icon {
|
||||
icon-size: $base_icon_size * 4;
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
/* Entries */
|
||||
|
||||
StEntry {
|
||||
border-radius: $base_border_radius;
|
||||
padding: 8px;
|
||||
border-width: 1px;
|
||||
color: $fg_color;
|
||||
@include entry(normal);
|
||||
//&:hover { @include entry(hover);}
|
||||
&:focus { @include entry(focus);}
|
||||
&:insensitive { @include entry(insensitive);}
|
||||
selection-background-color: $selected_bg_color;
|
||||
selected-color: $selected_fg_color;
|
||||
StIcon.capslock-warning {
|
||||
icon-size: 16px;
|
||||
warning-color: $warning_color;
|
||||
padding: 0 4px;
|
||||
}
|
||||
StIcon.peek-password {
|
||||
icon-size: $base_icon_size;
|
||||
padding: 0 4px;
|
||||
}
|
||||
StLabel.hint-text {
|
||||
margin-left: 2px;
|
||||
color: transparentize($fg_color, 0.3);
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
// hotplug
|
||||
|
||||
.hotplug-notification-item {
|
||||
@extend %bubble_button;
|
||||
}
|
||||
|
||||
.hotplug-notification-item-icon {
|
||||
icon-size: 24px;
|
||||
padding: 0 4px;
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
// IBus Candidate Popup
|
||||
|
||||
.candidate-popup-boxpointer {
|
||||
@extend .popup-menu-boxpointer;
|
||||
}
|
||||
|
||||
.candidate-popup-content {
|
||||
padding: 0.5em;
|
||||
spacing: 0.3em;
|
||||
}
|
||||
|
||||
.candidate-index {
|
||||
padding: 0 0.5em 0 0;
|
||||
color: darken($fg_color,10%);
|
||||
}
|
||||
|
||||
.candidate-box {
|
||||
padding: 0.3em 0.5em 0.3em 0.5em;
|
||||
border-radius: $base_border_radius;
|
||||
&:selected,&:hover { background-color: $selected_bg_color; color: $selected_fg_color; }
|
||||
}
|
||||
|
||||
.candidate-page-button-box {
|
||||
height: 2em;
|
||||
.vertical & { padding-top: 0.5em; }
|
||||
.horizontal & { padding-left: 0.5em; }
|
||||
}
|
||||
|
||||
.candidate-page-button {
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.candidate-page-button-previous { border-radius: $base_border_radius 0px 0px $base_border_radius; border-right-width: 0; }
|
||||
.candidate-page-button-next { border-radius: 0px $base_border_radius $base_border_radius 0px; }
|
||||
.candidate-page-button-icon { icon-size: 1em; }
|
||||
@@ -1,124 +0,0 @@
|
||||
/* On-screen Keyboard */
|
||||
|
||||
$key_size: 1.2em;
|
||||
$key_border_radius: $base_border_radius + 3px;
|
||||
$key_bg_color: $bg_color;
|
||||
// $default_key_bg_color: darken($key_bg_color, 4%);
|
||||
$default_key_bg_color: if($variant=='light', darken($osd_bg_color, 11%), lighten($osd_bg_color, 2%));
|
||||
|
||||
|
||||
// draw keys using button function
|
||||
#keyboard {
|
||||
background-color: transparentize(if($variant=='light', darken($bg_color, 5%), darken($bg_color, 8%)), 0.1);
|
||||
box-shadow: inset 0 1px 0 0 $osd_outer_borders_color;
|
||||
|
||||
.page-indicator {
|
||||
padding: $base_padding;
|
||||
|
||||
.page-indicator-icon {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// the container for individual keys
|
||||
.key-container {
|
||||
padding: $base_margin;
|
||||
spacing: $base_margin;
|
||||
}
|
||||
|
||||
// the keys
|
||||
.keyboard-key {
|
||||
|
||||
@include button(normal, $c:$key_bg_color);
|
||||
|
||||
&:focus { @include button(focus);}
|
||||
&:hover, &:checked { @include button(hover, $c: $key_bg_color);}
|
||||
&:active { @include button(active, $c: $key_bg_color); }
|
||||
|
||||
@include fontsize($base_font_size + 5);
|
||||
min-height: $key_size;
|
||||
min-width: $key_size;
|
||||
border-width: 1px;
|
||||
border-style: solid;
|
||||
border-radius: $key_border_radius;
|
||||
|
||||
&:grayed { //FIXMEy
|
||||
background-color: darken($bg_color, 3%);
|
||||
color: $osd_fg_color;
|
||||
border-color: $osd_borders_color;
|
||||
}
|
||||
|
||||
// non-character keys
|
||||
&.default-key {
|
||||
|
||||
// size of the icon asset
|
||||
background-size: 24px;
|
||||
|
||||
@include button(normal, $c:$default_key_bg_color);
|
||||
&:hover, &:checked {@include button(hover, $c: $default_key_bg_color);}
|
||||
&:active { @include button(active, $c: $default_key_bg_color);}
|
||||
}
|
||||
|
||||
// enter key is suggested-action
|
||||
&.enter-key {
|
||||
background-image: url("resource:///org/gnome/shell/theme/key-enter.svg");
|
||||
|
||||
@include button(normal, $c:$selected_bg_color, $tc:$selected_fg_color);
|
||||
&:hover, &:checked { @include button(hover, $c: lighten($selected_bg_color, 3%));}
|
||||
&:active {@include button(active, $c: darken($selected_bg_color, 2%));}
|
||||
}
|
||||
|
||||
// key assets
|
||||
&.shift-key-lowercase {background-image: url("resource:///org/gnome/shell/theme/key-shift.svg");}
|
||||
&.shift-key-uppercase {background-image: url("resource:///org/gnome/shell/theme/key-shift-uppercase.svg");}
|
||||
&.shift-key-uppercase:latched {background-image: url("resource:///org/gnome/shell/theme/key-shift-latched-uppercase.svg");}
|
||||
&.hide-key {background-image: url("resource:///org/gnome/shell/theme/key-hide.svg");}
|
||||
&.layout-key {background-image: url("resource:///org/gnome/shell/theme/key-layout.svg");}
|
||||
}
|
||||
|
||||
// long press on a key popup
|
||||
.keyboard-subkeys {
|
||||
color: $osd_fg_color;
|
||||
-arrow-border-radius: $modal_radius;
|
||||
-arrow-background-color: $osd_bg_color;
|
||||
-arrow-border-width: 1px;
|
||||
-arrow-border-color: lighten($osd_bg_color, 9%);
|
||||
-arrow-base: 20px;
|
||||
-arrow-rise: 10px;
|
||||
-boxpointer-gap: $base_spacing;
|
||||
|
||||
.keyboard-key {
|
||||
@include button(normal, $c:$key_bg_color);
|
||||
|
||||
&:focus { @include button(focus);}
|
||||
&:hover, &:checked { @include button(hover, $c: $key_bg_color);}
|
||||
&:active { @include button(active, $c: $key_bg_color); }
|
||||
|
||||
border-radius:$base_border_radius;
|
||||
}
|
||||
}
|
||||
|
||||
// emoji
|
||||
.emoji-page {
|
||||
.keyboard-key {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
color: initial;
|
||||
}
|
||||
}
|
||||
|
||||
.emoji-panel {
|
||||
.keyboard-key:latched {
|
||||
border-color: lighten($selected_bg_color, 5%);
|
||||
background-color: $selected_bg_color;
|
||||
}
|
||||
}
|
||||
|
||||
// suggestions
|
||||
.word-suggestions {
|
||||
@include fontsize($base_font_size + 3);
|
||||
spacing: 12px;
|
||||
min-height: 20pt;
|
||||
}
|
||||
@@ -1,171 +0,0 @@
|
||||
/* Login Dialog */
|
||||
|
||||
.login-dialog-banner-view {
|
||||
padding-top: 24px;
|
||||
max-width: 23em;
|
||||
}
|
||||
|
||||
.login-dialog {
|
||||
//reset
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
|
||||
$_gdm_bg: lighten(#2e3436, 19%);
|
||||
|
||||
StEntry {
|
||||
@if $variant=='dark' {
|
||||
$_gdm_entry_bg: transparentize(lighten(desaturate(#241f31, 20%), 2%), 0.5);
|
||||
background-color: $_gdm_entry_bg;
|
||||
color: $osd_fg_color;
|
||||
}
|
||||
}
|
||||
|
||||
.modal-dialog-button-box { spacing: 3px; }
|
||||
.modal-dialog-button {
|
||||
padding: 4px 18px;
|
||||
box-shadow: 0 1px 3px rgba(0,0,0,0.2);
|
||||
background-color: $_gdm_bg;
|
||||
border-color: $_gdm_bg;
|
||||
color: $fg_color;
|
||||
|
||||
$_hover_c: lighten($_gdm_bg, 5%);
|
||||
&:hover, &:focus {
|
||||
background-color: $_hover_c;
|
||||
border-color: $_hover_c;
|
||||
}
|
||||
&:active {
|
||||
$_active_c: darken($_gdm_bg, 5%);
|
||||
box-shadow: none;
|
||||
background-color: $_active_c;
|
||||
border-color: $_active_c;
|
||||
}
|
||||
&:insensitive {
|
||||
@include button(insensitive);
|
||||
border-color: darken($_gdm_bg, 5%);
|
||||
background-color: darken($_gdm_bg, 5%);
|
||||
color: transparentize($fg_color, 0.3);
|
||||
}
|
||||
&:default {
|
||||
@include button(normal, $c:$selected_bg_color, $tc:$selected_fg_color);
|
||||
border-color: $selected_bg_color;
|
||||
&:hover, &:focus {
|
||||
@include button(hover,$c:$selected_bg_color, $tc:$selected_fg_color);
|
||||
$_def_hover_c: lighten($selected_bg_color, 5%);
|
||||
background-color: $_def_hover_c;
|
||||
border-color: $_def_hover_c;
|
||||
}
|
||||
&:active {
|
||||
@include button(active,$c:$selected_bg_color, $tc:$selected_fg_color);
|
||||
$_def_active_c: darken($selected_bg_color, 5%);
|
||||
background-color: $_def_active_c;
|
||||
border-color: $_def_active_c;
|
||||
}
|
||||
&:insensitive {
|
||||
@include button(insensitive);
|
||||
border-color: darken($selected_bg_color, 10%);
|
||||
background-color: darken($selected_bg_color, 10%);
|
||||
color: transparentize($selected_fg_color, 0.3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.cancel-button,
|
||||
.switch-user-button,
|
||||
.login-dialog-session-list-button {
|
||||
padding: 0;
|
||||
border-radius: 99px;
|
||||
width: $base_icon_size * 2;
|
||||
height: $base_icon_size * 2;
|
||||
border-color: transparentize($bg_color,0.7);
|
||||
background-color: transparentize($bg_color,0.7);
|
||||
|
||||
StIcon { icon-size: $base_icon_size; }
|
||||
}
|
||||
|
||||
.caps-lock-warning-label,
|
||||
.login-dialog-message-warning {
|
||||
color: $osd_fg_color;
|
||||
}
|
||||
}
|
||||
|
||||
.login-dialog-logo-bin { padding: 24px 0px; }
|
||||
.login-dialog-banner { color: darken($osd_fg_color,10%); }
|
||||
.login-dialog-button-box { width: 23em; spacing: 5px; }
|
||||
.login-dialog-message { text-align: center; }
|
||||
.login-dialog-message-hint { padding-top: 0; padding-bottom: 20px; }
|
||||
.login-dialog-user-selection-box { padding: 100px 0px; }
|
||||
.login-dialog-not-listed-label {
|
||||
padding-left: 2px;
|
||||
.login-dialog-not-listed-button:focus &,
|
||||
.login-dialog-not-listed-button:hover & {
|
||||
color: $osd_fg_color;
|
||||
}
|
||||
}
|
||||
|
||||
.login-dialog-not-listed-label {
|
||||
@include fontsize($base_font_size - 1);
|
||||
font-weight: bold;
|
||||
color: darken($osd_fg_color,30%);
|
||||
padding-top: 1em;
|
||||
}
|
||||
|
||||
.login-dialog-user-list-view { -st-vfade-offset: 1em; }
|
||||
.login-dialog-user-list {
|
||||
spacing: 12px;
|
||||
width: 23em;
|
||||
&:expanded .login-dialog-user-list-item:selected { background-color: $selected_bg_color; color: $selected_fg_color; }
|
||||
&:expanded .login-dialog-user-list-item:logged-in { border-right: 2px solid $selected_bg_color; }
|
||||
}
|
||||
|
||||
.login-dialog-user-list-item {
|
||||
border-radius: $base_border_radius + 4px;
|
||||
padding: 6px;
|
||||
color: darken($osd_fg_color,30%);
|
||||
&:ltr .user-widget { padding-right: 1em; }
|
||||
&:rtl .user-widget { padding-left: 1em; }
|
||||
.login-dialog-timed-login-indicator {
|
||||
height: 2px;
|
||||
margin-top: 6px;
|
||||
background-color: $osd_fg_color;
|
||||
}
|
||||
&:focus .login-dialog-timed-login-indicator { background-color: $selected_fg_color; }
|
||||
}
|
||||
|
||||
.user-widget-label {
|
||||
color: $osd_fg_color;
|
||||
}
|
||||
|
||||
.user-widget.horizontal .user-widget-label {
|
||||
@include fontsize($base_font_size + 2);
|
||||
font-weight: bold;
|
||||
text-align: left;
|
||||
padding-left: 15px;
|
||||
|
||||
&:ltr { padding-left: 14px; }
|
||||
&:rtl { padding-right: 14px; }
|
||||
}
|
||||
|
||||
.user-widget.vertical .user-widget-label {
|
||||
@include fontsize($base_font_size + 5);
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
padding-top: 16px;
|
||||
}
|
||||
|
||||
.login-dialog-prompt-layout {
|
||||
padding-top: 24px;
|
||||
padding-bottom: 12px;
|
||||
spacing: $base_spacing * 2;
|
||||
width: 23em;
|
||||
}
|
||||
|
||||
.login-dialog-prompt-entry {
|
||||
width: 17.89em;
|
||||
height: 1.5em;
|
||||
}
|
||||
|
||||
.login-dialog-prompt-label {
|
||||
color: darken($osd_fg_color, 20%);
|
||||
@include fontsize($base_font_size + 1);
|
||||
padding-top: 1em;
|
||||
}
|
||||
@@ -1,97 +0,0 @@
|
||||
/* Looking Glass */
|
||||
|
||||
// Dialog
|
||||
#LookingGlassDialog {
|
||||
background-color: $osd_bg_color;
|
||||
spacing: $base_spacing;
|
||||
padding: 4px;
|
||||
border: 2px solid transparentize($osd_fg_color, 0.8);
|
||||
border-top-width:0;
|
||||
border-radius: 0 0 $base_border_radius $base_border_radius;
|
||||
|
||||
& > #Toolbar {
|
||||
border: none;
|
||||
border-radius: $base_border_radius;
|
||||
background-color: darken($osd_bg_color, 10%);
|
||||
}
|
||||
|
||||
.labels { spacing: $base_spacing; }
|
||||
.notebook-tab {
|
||||
-natural-hpadding: $base_padding * 2;
|
||||
-minimum-hpadding: 6px;
|
||||
font-weight: bold;
|
||||
color: $fg_color;
|
||||
transition-duration: 100ms;
|
||||
padding-left: .3em;
|
||||
padding-right: .3em;
|
||||
&:hover {
|
||||
color: white;
|
||||
text-shadow: black 0px 2px 2px;
|
||||
}
|
||||
&:selected {
|
||||
border-bottom-width: 2px;
|
||||
border-color: lighten($selected_bg_color,5%);
|
||||
color: white;
|
||||
text-shadow: black 0px 2px 2px;
|
||||
}
|
||||
}
|
||||
StBoxLayout#EvalBox { padding: 4px; spacing: $base_spacing; }
|
||||
StBoxLayout#ResultsArea { spacing: $base_spacing; }
|
||||
}
|
||||
|
||||
.lg-dialog {
|
||||
StEntry {
|
||||
selection-background-color: #bbbbbb;
|
||||
selected-color: $osd_bg_color;
|
||||
}
|
||||
.shell-link {
|
||||
color: #999999;
|
||||
&:hover { color: #dddddd; }
|
||||
}
|
||||
}
|
||||
|
||||
.lg-completions-text {
|
||||
font-size: .9em;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.lg-obj-inspector-title {
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
|
||||
.lg-obj-inspector-button {
|
||||
border: 1px solid gray;
|
||||
padding: 4px;
|
||||
border-radius: $base_border_radius;
|
||||
&:hover { border: 1px solid #ffffff; }
|
||||
}
|
||||
|
||||
// Extensions
|
||||
#lookingGlassExtensions { padding: 4px; }
|
||||
|
||||
.lg-extensions-list {
|
||||
padding: 4px;
|
||||
spacing: 6px;
|
||||
}
|
||||
|
||||
.lg-extension {
|
||||
border: 1px solid $osd_borders_color;
|
||||
border-radius: $base_border_radius;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.lg-extension-name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.lg-extension-meta {
|
||||
spacing: 6px;
|
||||
}
|
||||
|
||||
// Inspector
|
||||
#LookingGlassPropertyInspector {
|
||||
background: $osd_bg_color;
|
||||
border: 1px solid $osd_borders_color;
|
||||
border-radius: $base_border_radius;
|
||||
padding: 6px;
|
||||
}
|
||||
@@ -1,134 +0,0 @@
|
||||
/* Message List */
|
||||
// a.k.a. notifications in the menu
|
||||
|
||||
// main list
|
||||
.message-list {
|
||||
width: 31.5em;
|
||||
padding: 0 $base_padding * 2;
|
||||
|
||||
.message-list-placeholder { spacing: 12px; }
|
||||
}
|
||||
|
||||
.message-list-sections {
|
||||
spacing: $base_spacing;
|
||||
margin: 0 $base_margin * 4; // to account for scrollbar
|
||||
}
|
||||
|
||||
.message-list-section,
|
||||
.message-list-section-list {
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
|
||||
// do-not-disturb + clear button
|
||||
.message-list-controls {
|
||||
margin: ($base_margin * 2) ($base_margin * 4) 0;
|
||||
// NOTE: remove the padding if notification_bubble could remove margin for drop shadow
|
||||
padding: $base_margin;
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
|
||||
// message bubbles
|
||||
.message {
|
||||
@include notification_bubble;
|
||||
|
||||
// icon container
|
||||
.message-icon-bin {
|
||||
padding: ($base_padding * 3) 0 ($base_padding * 3) ($base_padding * 2);
|
||||
|
||||
&:rtl {
|
||||
padding: ($base_padding * 3) ($base_padding * 2) ($base_padding * 3) 0;
|
||||
}
|
||||
|
||||
// icon size and color
|
||||
> StIcon {
|
||||
icon-size: $base_icon_size*2; // 32px
|
||||
-st-icon-style: symbolic;
|
||||
}
|
||||
|
||||
// fallback
|
||||
> .fallback-app-icon {
|
||||
width: $base_icon_size;
|
||||
height: $base_icon_size;
|
||||
}
|
||||
}
|
||||
|
||||
// content
|
||||
.message-content {
|
||||
padding: $base_padding + $base_margin * 2;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
// title
|
||||
.message-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
// secondary container in title box
|
||||
.message-secondary-bin {
|
||||
padding: 0 $base_margin * 2;
|
||||
|
||||
// notification time stamp
|
||||
> .event-time {
|
||||
color: transparentize($fg_color, 0.5);
|
||||
@include fontsize($base_font_size - 2);
|
||||
text-align: right;
|
||||
/* HACK: the label should be baseline-aligned with a 1em label, fake this with some bottom padding */
|
||||
padding-bottom: 0.13em;
|
||||
}
|
||||
}
|
||||
|
||||
// close button
|
||||
.message-close-button {
|
||||
color: lighten($fg_color, 15%);
|
||||
&:hover { color: if($variant=='light', lighten($fg_color, 30%), darken($fg_color, 10%)); }
|
||||
&:active { color: if($variant=='light', lighten($fg_color, 40%), darken($fg_color, 20%)); }
|
||||
}
|
||||
|
||||
// body
|
||||
.message-body {
|
||||
color: darken($fg_color, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
// URLs in messages
|
||||
.url-highlighter {
|
||||
link-color: $link_color;
|
||||
}
|
||||
|
||||
/* Media Controls */
|
||||
.message-media-control {
|
||||
padding: $base_padding * 2 $base_padding * 4;
|
||||
color: darken($fg_color, 15%);
|
||||
|
||||
// uses $hover_bg_color since the media controls are in a notification_bubble
|
||||
&:hover {
|
||||
background-color: lighten($hover_bg_color, 5%);
|
||||
color: $fg_color;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: darken($hover_bg_color, 2%);
|
||||
color: $fg_color;
|
||||
}
|
||||
|
||||
&:insensitive { color: darken($fg_color,40%); }
|
||||
|
||||
// fix border-radius for last button
|
||||
&:last-child:ltr { border-radius: 0 $base_border_radius+2 $base_border_radius+2 0; }
|
||||
&:last-child:rtl { border-radius: $base_border_radius+2 0 0 $base_border_radius+2; }
|
||||
}
|
||||
|
||||
// album-art
|
||||
.media-message-cover-icon {
|
||||
icon-size: $base_icon_size*2 !important; // 48px
|
||||
border-radius: $base_border_radius;
|
||||
|
||||
// when there is no artwork
|
||||
&.fallback {
|
||||
color: darken($fg_color, 17%);
|
||||
background-color: $bg_color;
|
||||
border: 1px solid transparent;
|
||||
border-radius: $base_border_radius;
|
||||
icon-size: $base_icon_size * 2 !important;
|
||||
}
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
// Rubberband for select-area screenshots
|
||||
.select-area-rubberband {
|
||||
background-color: transparentize($selected_bg_color,0.7);
|
||||
border: 1px solid $selected_bg_color;
|
||||
}
|
||||
|
||||
// User icon
|
||||
.user-icon {
|
||||
background-size: contain;
|
||||
color: $osd_fg_color;
|
||||
border-radius: 99px;
|
||||
&:hover {
|
||||
color: lighten($osd_fg_color,30%);
|
||||
}
|
||||
|
||||
& StIcon {
|
||||
background-color: transparentize($osd_fg_color,0.95);
|
||||
padding: 18px 20px 22px 20px;
|
||||
width: 88px; height: 88px;
|
||||
border-radius: 99px;
|
||||
}
|
||||
}
|
||||
|
||||
.user-widget.vertical .user-icon {
|
||||
icon-size: 128px;
|
||||
}
|
||||
|
||||
.user-widget.horizontal .user-icon {
|
||||
icon-size: 64px;
|
||||
}
|
||||
|
||||
.lightbox { background-color: black; }
|
||||
.flashspot { background-color: white; }
|
||||
|
||||
|
||||
// Hidden
|
||||
.hidden { color: rgba(0,0,0,0);}
|
||||
|
||||
// Caps-lock warning
|
||||
.caps-lock-warning-label {
|
||||
text-align: center;
|
||||
padding-bottom: 8px;
|
||||
@include fontsize($base_font_size - 1);
|
||||
color: $warning_color;
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
/* Network Dialogs */
|
||||
.nm-dialog {
|
||||
max-height: 34em;
|
||||
min-height: 31em;
|
||||
min-width: 32em;
|
||||
}
|
||||
|
||||
.nm-dialog-content {
|
||||
spacing: 20px;
|
||||
padding: 24px;
|
||||
}
|
||||
|
||||
.nm-dialog-airplane-box { spacing: 12px; }
|
||||
|
||||
.nm-dialog-airplane-headline {
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nm-dialog-airplane-text { color: $fg_color; }
|
||||
|
||||
// header
|
||||
.nm-dialog-header {
|
||||
font-weight: bold;
|
||||
}
|
||||
.nm-dialog-header-icon {
|
||||
icon-size: $base_icon_size * 2;
|
||||
}
|
||||
.nm-dialog-header-hbox { spacing: 10px; }
|
||||
|
||||
// list of networks
|
||||
.nm-dialog-scroll-view {
|
||||
border: 1px solid $borders_color;
|
||||
padding:0;
|
||||
background-color: darken($bg_color, 3%);
|
||||
}
|
||||
|
||||
// list item
|
||||
.nm-dialog-item {
|
||||
@include fontsize($base_font_size);
|
||||
border-bottom: 1px solid $borders_color;
|
||||
padding: $base_padding * 2;
|
||||
spacing: 0px;
|
||||
&:selected {
|
||||
background-color: $selected_bg_color;
|
||||
color: $selected_fg_color;
|
||||
}
|
||||
}
|
||||
|
||||
// icons in list
|
||||
.nm-dialog-icon { icon-size: $base_icon_size; }
|
||||
.nm-dialog-icons { spacing: $base_spacing * 2; }
|
||||
|
||||
// no networks
|
||||
.no-networks-label { color: $insensitive_fg_color; }
|
||||
.no-networks-box { spacing: $base_padding; }
|
||||
@@ -1,57 +0,0 @@
|
||||
/* Notifications & Mesage Tray */
|
||||
|
||||
$notification_banner_height: 64px;
|
||||
$notification_banner_width: 34em;
|
||||
|
||||
// Banner notifications
|
||||
.notification-banner {
|
||||
min-height: $notification_banner_height;
|
||||
width: $notification_banner_width;
|
||||
|
||||
.notification-actions {
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
.notification-button {
|
||||
@extend %bubble_button;
|
||||
}
|
||||
}
|
||||
|
||||
// counter
|
||||
.summary-source-counter {
|
||||
font-size: $base_font_size - 1pt;
|
||||
font-weight: bold;
|
||||
height: 1.6em;
|
||||
width: 1.6em;
|
||||
-shell-counter-overlap-x: 3px;
|
||||
-shell-counter-overlap-y: 3px;
|
||||
background-color: $selected_bg_color;
|
||||
color: $selected_fg_color;
|
||||
border: 2px solid $fg_color;
|
||||
box-shadow: 0 2px 2px rgba(0,0,0,0.5);
|
||||
border-radius: 0.9em; // should be 0.8 but whatever; wish I could do 50%;
|
||||
}
|
||||
|
||||
// chat bubbles
|
||||
.chat-body { spacing: 5px; }
|
||||
.chat-response { margin: 5px; }
|
||||
.chat-log-message { color: darken($fg_color,10%); }
|
||||
.chat-new-group { padding-top: 1em; }
|
||||
.chat-received {
|
||||
padding-left: 4px;
|
||||
&:rtl { padding-left: 0px; padding-right: 4px; }
|
||||
}
|
||||
|
||||
.chat-sent {
|
||||
padding-left: 18pt;
|
||||
color: lighten($fg_color, 15%);
|
||||
&:rtl { padding-left: 0; padding-right: 18pt; }
|
||||
}
|
||||
|
||||
.chat-meta-message {
|
||||
padding-left: 4px;
|
||||
@include fontsize($base_font_size - 2);
|
||||
font-weight: bold;
|
||||
color: lighten($fg_color,18%);
|
||||
&:rtl { padding-left: 0; padding-right: 4px; }
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/* OSD */
|
||||
|
||||
$osd_levelbar_height:8px;
|
||||
|
||||
.osd-window {
|
||||
@extend %osd_panel;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
spacing: $base_spacing * 2; // 12px
|
||||
margin: $base_margin * 8; // 32px
|
||||
min-width: 64px;
|
||||
min-height: 64px;
|
||||
|
||||
StIcon {
|
||||
icon-size:$base_icon_size * 6;
|
||||
}
|
||||
|
||||
.osd-monitor-label { font-size: 3em; }
|
||||
|
||||
.level {
|
||||
height: $osd_levelbar_height;
|
||||
-barlevel-height: $osd_levelbar_height;
|
||||
-barlevel-background-color: transparentize($osd_fg_color, if($variant=='light', 0.7, 0.9));
|
||||
-barlevel-active-background-color: $osd_fg_color;
|
||||
-barlevel-overdrive-color: $destructive_color;
|
||||
-barlevel-overdrive-separator-width: 3px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Pad OSD */
|
||||
.pad-osd-window {
|
||||
padding: 32px;
|
||||
background-color: transparentize(#000, 0.2);
|
||||
|
||||
.pad-osd-title-box { spacing: 12px; }
|
||||
.pad-osd-title-menu-box { spacing: 6px; }
|
||||
}
|
||||
|
||||
.combo-box-label {
|
||||
width: 15em;
|
||||
}
|
||||
|
||||
.resize-popup {
|
||||
@extend %osd_panel;
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
/* OVERVIEW */
|
||||
|
||||
#overview {
|
||||
spacing: 24px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.overview-controls {
|
||||
padding-bottom: 32px;
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
/* Top Bar */
|
||||
// a.k.a. the panel
|
||||
|
||||
$panel_corner_radius: $base_border_radius+1;
|
||||
$panel_bg_color: #000;
|
||||
$panel_fg_color: #ccc;
|
||||
$panel_height: 1.86em;
|
||||
|
||||
|
||||
#panel {
|
||||
background-color: $panel_bg_color;
|
||||
font-weight: bold;
|
||||
height: $panel_height;
|
||||
font-feature-settings: "tnum";
|
||||
|
||||
// transparent panel on lock & login screens
|
||||
&.unlock-screen,
|
||||
&.login-screen {
|
||||
background-color: transparent;
|
||||
|
||||
.panel-corner {
|
||||
-panel-corner-radius: 0;
|
||||
-panel-corner-background-color: transparent;
|
||||
-panel-corner-border-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
// spacing between activities, app menu and such
|
||||
#panelLeft, #panelCenter {
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
|
||||
// the rounded outset corners
|
||||
.panel-corner {
|
||||
-panel-corner-radius: $panel_corner_radius;
|
||||
-panel-corner-background-color: $panel_bg_color;
|
||||
-panel-corner-border-width: 2px;
|
||||
-panel-corner-border-color: transparent;
|
||||
|
||||
&:active, &:overview, &:focus {
|
||||
-panel-corner-border-color: lighten($selected_bg_color,5%);
|
||||
}
|
||||
}
|
||||
|
||||
// panel menus
|
||||
.panel-button {
|
||||
font-weight: bold;
|
||||
color: $panel_fg_color;
|
||||
-natural-hpadding: $base_padding * 2;
|
||||
-minimum-hpadding: $base_padding;
|
||||
|
||||
&:hover {
|
||||
color: lighten($panel_fg_color, 20%);
|
||||
}
|
||||
|
||||
&:active, &:overview, &:focus, &:checked {
|
||||
// Trick due to St limitations. It needs a background to draw a box-shadow
|
||||
background-color: rgba(0, 0, 0, 0.01);
|
||||
box-shadow: inset 0 -2px 0 0 lighten($selected_bg_color,5%);
|
||||
color: lighten($panel_fg_color, 20%);
|
||||
}
|
||||
|
||||
// status area icons
|
||||
.system-status-icon {
|
||||
icon-size: $base_icon_size;
|
||||
padding: $base_padding - 1px;
|
||||
}
|
||||
|
||||
// app menu icon
|
||||
.app-menu-icon {
|
||||
margin-left: $base_margin;
|
||||
margin-right: $base_margin;
|
||||
-st-icon-style: symbolic;
|
||||
// dimensions of the icon are hardcoded
|
||||
}
|
||||
|
||||
// lock & login screen styles
|
||||
.unlock-screen &,
|
||||
.login-screen & {
|
||||
color: lighten($fg_color, 10%);
|
||||
&:focus, &:hover, &:active { color: lighten($fg_color, 10%); }
|
||||
}
|
||||
}
|
||||
|
||||
.panel-status-indicators-box,
|
||||
.panel-status-menu-box {
|
||||
spacing: 2px;
|
||||
}
|
||||
|
||||
// spacing between power icon and (optional) percentage label
|
||||
.power-status.panel-status-indicators-box {
|
||||
spacing: 0;
|
||||
}
|
||||
|
||||
// indicator for active
|
||||
.screencast-indicator,
|
||||
.remote-access-indicator { color: $warning_color; }
|
||||
}
|
||||
|
||||
// App Menu
|
||||
#appMenu {
|
||||
spacing: $base_spacing;
|
||||
.label-shadow { color: transparent; }
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
/* Popovers/Menus */
|
||||
|
||||
$popover_arrow_height: 12px;
|
||||
|
||||
//.the popover itself
|
||||
.popup-menu-boxpointer {
|
||||
-arrow-border-radius: $base_border_radius+4;
|
||||
-arrow-background-color: $bg_color;
|
||||
-arrow-border-width: 1px;
|
||||
-arrow-border-color: $borders_color;
|
||||
-arrow-base: $popover_arrow_height * 2;
|
||||
-arrow-rise: $popover_arrow_height;
|
||||
-arrow-box-shadow: 0 1px 3px rgba(0,0,0,0.5); // dreaming bugzilla #689995
|
||||
}
|
||||
|
||||
// container of the popover menu
|
||||
.popup-menu {
|
||||
min-width: 15em;
|
||||
color: $fg_color;
|
||||
|
||||
//.popup-status-menu-item { font-weight: normal; color: pink; } //dunno what that is
|
||||
&.panel-menu {
|
||||
-boxpointer-gap: $base_margin; // distance from the panel
|
||||
margin-bottom: 1.75em;
|
||||
}
|
||||
}
|
||||
|
||||
.popup-menu-content {
|
||||
padding: $base_padding * 2 + $base_margin 0;
|
||||
}
|
||||
|
||||
// menu items
|
||||
.popup-menu-item {
|
||||
spacing: $base_padding;
|
||||
padding: $base_padding;
|
||||
|
||||
&:ltr { padding-right:1.75em; padding-left: 0; }
|
||||
&:rtl { padding-right: 0; padding-left:1.75em; }
|
||||
|
||||
&:checked {
|
||||
background-color: lighten($bg_color, 2%);
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
&.selected {
|
||||
background-color: transparentize(white, if($variant=='light', 0.2, 0.9));
|
||||
color: $fg_color;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: $selected_bg_color;
|
||||
color: $selected_fg_color;
|
||||
}
|
||||
|
||||
&:insensitive { color: transparentize($fg_color,0.5);}
|
||||
}
|
||||
|
||||
// all icons and other graphical elements
|
||||
.popup-inactive-menu-item {
|
||||
color: $fg_color;
|
||||
|
||||
&:insensitive { color: transparentize($fg_color,0.5); }
|
||||
}
|
||||
|
||||
// symbolic icons in popover
|
||||
.popup-menu-arrow,
|
||||
.popup-menu-icon { icon-size: $base_icon_size; }
|
||||
|
||||
// popover submenus
|
||||
.popup-sub-menu {
|
||||
background-color: darken($bg_color, 3%);
|
||||
box-shadow: none;
|
||||
border-top: 1px solid transparentize($borders_color, 0.2);
|
||||
border-bottom: 1px solid transparentize($borders_color, 0.2);
|
||||
}
|
||||
|
||||
// container for radio and check boxes
|
||||
.popup-menu-ornament {
|
||||
text-align: right;
|
||||
width: 1.2em;
|
||||
}
|
||||
|
||||
// separator
|
||||
.popup-separator-menu-item {
|
||||
padding: 0;
|
||||
|
||||
.popup-separator-menu-item-separator {
|
||||
//-margin-horizontal: 24px;
|
||||
height: 1px; //not really the whole box
|
||||
margin: 6px 64px;
|
||||
background-color: lighten($borders_color, 2%);
|
||||
.popup-sub-menu & { //submenu separators
|
||||
margin: 0 64px 0 32px;
|
||||
@if $variant == 'dark' {
|
||||
background-color: lighten($bg_color,10%);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// desktop background menu
|
||||
.background-menu {
|
||||
-boxpointer-gap: $base_margin;
|
||||
-arrow-rise: 0px; // hide the beak on the menu
|
||||
}
|
||||
|
||||
// system status menu
|
||||
.aggregate-menu {
|
||||
min-width: 21em;
|
||||
|
||||
// lock screen, shutdown, etc. buttons
|
||||
.popup-menu-icon {
|
||||
padding:0;
|
||||
margin: 0 $base_margin;
|
||||
-st-icon-style: symbolic;
|
||||
}
|
||||
|
||||
.popup-sub-menu .popup-menu-item > :first-child {
|
||||
// account for icons in submenus with padding
|
||||
&:ltr {
|
||||
padding-left: $base_padding + $base_margin * 2;
|
||||
margin-left: $base_icon_size;
|
||||
}
|
||||
&:rtl {
|
||||
padding-right: $base_padding + $base_margin * 2; ;
|
||||
margin-right: $base_icon_size;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
/* Screen Shield */
|
||||
|
||||
.unlock-dialog-clock {
|
||||
color: white;
|
||||
font-weight: 300;
|
||||
text-align: center;
|
||||
spacing: 24px;
|
||||
padding-bottom: 2.5em;
|
||||
}
|
||||
|
||||
.unlock-dialog-clock-time {
|
||||
font-size: 64pt;
|
||||
padding-top: 42px;
|
||||
font-feature-settings: "tnum";
|
||||
}
|
||||
|
||||
.unlock-dialog-clock-date {
|
||||
font-size: 16pt;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.unlock-dialog-clock-hint {
|
||||
font-weight: normal;
|
||||
padding-top: 48px;
|
||||
}
|
||||
|
||||
.unlock-dialog-notifications-container {
|
||||
margin: 12px 0;
|
||||
spacing: 6px;
|
||||
width: 23em;
|
||||
background-color: transparent;
|
||||
.summary-notification-stack-scrollview {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.notification,
|
||||
.unlock-dialog-notification-source {
|
||||
padding: 12px 6px;
|
||||
border: none;
|
||||
background-color: transparentize($osd_bg_color,0.7);
|
||||
color: $osd_fg_color;
|
||||
border-radius: $modal_radius;
|
||||
|
||||
&.critical { background-color: transparentize($osd_bg_color,0.1) }
|
||||
}
|
||||
}
|
||||
|
||||
.unlock-dialog-notification-label {
|
||||
padding: 0px 0px 0px 12px;
|
||||
}
|
||||
|
||||
.unlock-dialog-notification-count-text {
|
||||
weight: bold;
|
||||
padding: 0 6px;
|
||||
color: $osd_bg_color;
|
||||
background-color: transparentize($osd_fg_color, 0.7);
|
||||
border-radius: 99px;
|
||||
margin-right: 12px;
|
||||
|
||||
}
|
||||
|
||||
.screen-shield-background { //just the shadow, really
|
||||
background: black;
|
||||
box-shadow: 0px 2px 4px rgba(0,0,0,0.6);
|
||||
}
|
||||
|
||||
#lockDialogGroup {
|
||||
background-color: lighten(#2e3436, 8%);
|
||||
}
|
||||
|
||||
#unlockDialogNotifications {
|
||||
StButton#vhandle, StButton#hhandle {
|
||||
background-color: transparentize($bg_color,0.7);
|
||||
&:hover, &:focus { background-color: transparentize($bg_color,0.5); }
|
||||
&:active { background-color: transparentize($selected_bg_color,0.5); }
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
/* Scrollbars */
|
||||
|
||||
StScrollView {
|
||||
&.vfade { -st-vfade-offset: 68px; }
|
||||
&.hfade { -st-hfade-offset: 68px; }
|
||||
}
|
||||
|
||||
StScrollBar {
|
||||
padding: 0;
|
||||
|
||||
StScrollView & {
|
||||
min-width: 14px;
|
||||
min-height: 14px;
|
||||
}
|
||||
|
||||
StBin#trough {
|
||||
border-radius: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
StButton#vhandle, StButton#hhandle {
|
||||
border-radius: 8px;
|
||||
background-color: mix($fg_color, $bg_color, 60%);
|
||||
//border: 3px solid transparent; //would be nice to margin or at least to transparent
|
||||
margin: 3px;
|
||||
&:hover { background-color: mix($fg_color, $bg_color, 80%); }
|
||||
&:active { background-color: $selected_bg_color; }
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
// Search entry
|
||||
|
||||
$search_entry_width: 320px;
|
||||
$search_entry_height: 36px;
|
||||
|
||||
%search_entry,
|
||||
.search-entry {
|
||||
width: $search_entry_width;
|
||||
padding: $base_padding+1 $base_padding+3;
|
||||
border-radius: $search_entry_height * 0.5; // half the height
|
||||
color: transparentize($fg_color,0.3);
|
||||
background-color: $bg_color;
|
||||
border-color: $borders_color;
|
||||
|
||||
&:hover {
|
||||
background-color: $hover_bg_color;
|
||||
border-color: $hover_borders_color;
|
||||
color: $hover_fg_color;
|
||||
}
|
||||
|
||||
&:focus {
|
||||
padding: $base_padding $base_padding+2; // 1px less to account for wider border
|
||||
border-width: 2px;
|
||||
border-style: solid;
|
||||
border-color: $selected_bg_color;
|
||||
color: $fg_color;
|
||||
box-shadow: inset 0 1px 2px 1px rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.search-entry-icon {
|
||||
icon-size: $base_icon_size;
|
||||
padding: 0 4px;
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
@@ -1,104 +0,0 @@
|
||||
/* Search */
|
||||
|
||||
// search overview container
|
||||
#searchResultsContent {
|
||||
max-width: 1024px;
|
||||
spacing: $base_margin * 2;
|
||||
}
|
||||
|
||||
// search results sections "the boxes"
|
||||
.search-section {
|
||||
// This should be equal to #searchResultsContent spacing
|
||||
spacing: $base_margin * 2;
|
||||
|
||||
// separator
|
||||
.search-section-separator {
|
||||
// height: 1px;
|
||||
// background-color: $osd_outer_borders_color;
|
||||
height: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
// content
|
||||
.search-section-content {
|
||||
background-color: transparentize(lighten($osd_bg_color, 5%), 0.2);
|
||||
border-radius: $modal_radius+3;
|
||||
border: 1px solid $osd_outer_borders_color;
|
||||
box-shadow: 0 2px 4px 0 $shadow_color;
|
||||
text-shadow: 0 1px if($variant == 'light', rgba(255,255,255,0.2), rgba(0,0,0,0.2));
|
||||
color: $osd_fg_color;
|
||||
padding: $base_padding * 3;
|
||||
// This is the space between the provider icon and the results container
|
||||
spacing: $base_margin * 2;
|
||||
}
|
||||
|
||||
%search-section-content-item {
|
||||
@extend %icon_tile;
|
||||
|
||||
&:focus,
|
||||
&:hover,
|
||||
&:selected {
|
||||
background-color: transparentize($osd_fg_color, .9);
|
||||
transition-duration: 200ms;
|
||||
}
|
||||
|
||||
&:active,
|
||||
&:checked {
|
||||
background-color: transparentize(darken($osd_bg_color, 10%), .1);
|
||||
}
|
||||
}
|
||||
|
||||
// "no results" text
|
||||
.search-statustext {
|
||||
@extend %status_text;
|
||||
}
|
||||
|
||||
// Search results with icons
|
||||
.grid-search-result {
|
||||
@extend %app-well-app;
|
||||
}
|
||||
|
||||
// search result provider
|
||||
.search-provider-icon {
|
||||
@extend %search-section-content-item;
|
||||
|
||||
// content
|
||||
.list-search-provider-content {
|
||||
spacing: $base_spacing * 2;
|
||||
|
||||
// provider labels
|
||||
.list-search-provider-details {
|
||||
width: 120px;
|
||||
margin-top: 0;
|
||||
color: darken($osd_fg_color, 8%);
|
||||
// font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// search results list
|
||||
.list-search-results {
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
|
||||
// search result listitem
|
||||
.list-search-result {
|
||||
@extend %search-section-content-item;
|
||||
|
||||
// content
|
||||
.list-search-result-content {
|
||||
spacing: $base_padding;
|
||||
}
|
||||
|
||||
// list item title (with leading icon)
|
||||
.list-search-result-title {
|
||||
spacing: $base_spacing * 2;
|
||||
// font-weight: bold;
|
||||
}
|
||||
|
||||
// list item description
|
||||
.list-search-result-description {
|
||||
color: darken($osd_fg_color, 30%);
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
/* Slider */
|
||||
|
||||
$slider_size: 15px;
|
||||
|
||||
.slider {
|
||||
height: $slider_size;
|
||||
// slider trough
|
||||
-barlevel-height: 3px; // has to be an odd number
|
||||
-barlevel-background-color: $borders_color; //background of the trough
|
||||
-barlevel-border-width: 1px;
|
||||
-barlevel-border-color: $borders_color; // trough border color
|
||||
// fill style
|
||||
-barlevel-active-background-color: $selected_bg_color; //active trough fill
|
||||
-barlevel-active-border-color: if($variant == 'light', darken($selected_bg_color, 4%), lighten($selected_bg_color, 2%)); //active trough border
|
||||
// overfill style (red in this case)
|
||||
-barlevel-overdrive-color: $destructive_color;
|
||||
-barlevel-overdrive-border-color: if($variant == 'light', darken($destructive_color, 4%), lighten($destructive_color, 2%)); //trough border when red;
|
||||
-barlevel-overdrive-separator-width:1px;
|
||||
// slider hander
|
||||
-slider-handle-radius: $slider_size * 0.5; // half the size of the size
|
||||
-slider-handle-border-width: 1px;
|
||||
-slider-handle-border-color: if($variant == 'light', $borders_color, $fg_color);
|
||||
|
||||
color: if($variant == 'light', lighten($bg_color, 10%), $fg_color);
|
||||
&:hover { color: $hover_bg_color; }
|
||||
&:active { color: $active_bg_color; }
|
||||
}
|
||||
@@ -1,67 +0,0 @@
|
||||
/* App Switcher */
|
||||
|
||||
.switcher-popup {
|
||||
padding: 8px;
|
||||
spacing: $base_spacing * 4;
|
||||
}
|
||||
|
||||
// switcher onscreen panel
|
||||
.switcher-list {
|
||||
@extend %osd_panel;
|
||||
|
||||
.item-box {
|
||||
padding: 8px;
|
||||
border-radius: $base_border_radius + 1px;
|
||||
border: 1px solid transparent;
|
||||
|
||||
&:outlined {
|
||||
border: 1px solid darken($borders_color,5%);
|
||||
background-color: transparentize($osd_fg_color, 0.9);
|
||||
box-shadow: inset 0 2px 2px 0 rgba(0,0,0,0.4);
|
||||
}
|
||||
|
||||
&:selected {
|
||||
background-color: transparentize($osd_fg_color, 0.9);
|
||||
color: $osd_fg_color;
|
||||
}
|
||||
}
|
||||
|
||||
// window thumbnails
|
||||
.thumbnail-box {
|
||||
padding: 2px;
|
||||
spacing: $base_spacing;
|
||||
}
|
||||
|
||||
.thumbnail {
|
||||
width: 256px;
|
||||
}
|
||||
|
||||
.separator {
|
||||
width: 1px;
|
||||
background: $borders_color;
|
||||
}
|
||||
|
||||
.switcher-list-item-container {
|
||||
spacing: $base_spacing * 2;
|
||||
}
|
||||
}
|
||||
|
||||
.switcher-arrow {
|
||||
border-color: rgba(0,0,0,0);
|
||||
color: transparentize($fg_color,0.2);
|
||||
&:highlighted {
|
||||
color: $fg_color;
|
||||
}
|
||||
}
|
||||
|
||||
// Input Source Switcher
|
||||
.input-source-switcher-symbol {
|
||||
font-size: 34pt;
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
}
|
||||
|
||||
// Window cycler highlight
|
||||
.cycler-highlight {
|
||||
border: 5px solid $selected_bg_color;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
/* Switches */
|
||||
|
||||
// these are equal to the size of the SVG assets
|
||||
$switch_height: 22px;
|
||||
$switch_width: 46px;
|
||||
|
||||
.toggle-switch {
|
||||
color: $fg_color;
|
||||
height: $switch_height;
|
||||
width: $switch_width;
|
||||
background-size: contain;
|
||||
background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-off.svg"),url("resource:///org/gnome/shell/theme/toggle-off-dark.svg"));
|
||||
&:checked {
|
||||
background-image: if($variant == 'light', url("resource:///org/gnome/shell/theme/toggle-on.svg"),url("resource:///org/gnome/shell/theme/toggle-on-dark.svg"));
|
||||
}
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
|
||||
/* Tiled window previews */
|
||||
$tile_corner_radius: $base_border_radius + 1px;
|
||||
.tile-preview {
|
||||
background-color: transparentize($selected_bg_color,0.5);
|
||||
border: 1px solid $selected_bg_color;
|
||||
}
|
||||
|
||||
.tile-preview-left.on-primary {
|
||||
border-radius: $tile_corner_radius 0 0 0;
|
||||
}
|
||||
|
||||
.tile-preview-right.on-primary {
|
||||
border-radius: 0 $tile_corner_radius 0 0;
|
||||
}
|
||||
|
||||
.tile-preview-left.tile-preview-right.on-primary {
|
||||
border-radius: $tile_corner_radius $tile_corner_radius 0 0;
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
/* Window Picker */
|
||||
|
||||
$window_picker_spacing: $base_spacing * 2; // 16px
|
||||
$window_picker_padding: $base_padding * 2; // 16px
|
||||
|
||||
$window_thumbnail_border_color:transparentize($selected_fg_color, 0.65);
|
||||
|
||||
$window_close_button_size: 24px;
|
||||
$window_close_button_padding: 3px;
|
||||
|
||||
|
||||
// Window picker
|
||||
.window-picker {
|
||||
// Space between window thumbnails
|
||||
-horizontal-spacing: $window_picker_spacing;
|
||||
-vertical-spacing: $window_picker_spacing;
|
||||
// Padding for container around window thumbnails
|
||||
padding: $window_picker_padding;
|
||||
|
||||
&.external-monitor { padding: $window_picker_padding; }
|
||||
}
|
||||
|
||||
// Borders on window thumbnails
|
||||
.window-clone-border {
|
||||
border-width: 6px;
|
||||
border-style: solid;
|
||||
border-color: $window_thumbnail_border_color;
|
||||
border-radius: $base_border_radius + 2;
|
||||
// For window decorations with round corners we can't match
|
||||
// the exact shape when the window is scaled. So apply a shadow
|
||||
// to fix that case
|
||||
box-shadow: inset 0 0 0 1px transparentize($borders_color, 0.8);
|
||||
}
|
||||
|
||||
// Window titles
|
||||
.window-caption {
|
||||
color: $osd_fg_color;
|
||||
background-color: $osd_bg_color;
|
||||
border:1px solid $osd_outer_borders_color;
|
||||
border-radius: $base_border_radius + 1;
|
||||
padding: $base_padding $base_padding * 2;
|
||||
font-weight: bold;
|
||||
@include fontsize($base_font_size + 1);
|
||||
}
|
||||
|
||||
// Close button
|
||||
.window-close {
|
||||
background-color: $selected_bg_color;
|
||||
color: $selected_fg_color;
|
||||
border: none;
|
||||
border-radius: $window_close_button_size * 0.5 + $window_close_button_padding * 2;
|
||||
padding: $window_close_button_padding;
|
||||
height: $window_close_button_size;
|
||||
width: $window_close_button_size;
|
||||
box-shadow: -1px 1px 5px 0px rgba(0,0,0,0.5);
|
||||
|
||||
-shell-close-overlap: $window_close_button_size * 0.5;
|
||||
|
||||
&:hover {
|
||||
background-color: lighten($selected_bg_color, 5%);
|
||||
}
|
||||
|
||||
&:active {
|
||||
background-color: darken($selected_bg_color, 5%);
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
/* Workspace Switcher */
|
||||
.workspace-switcher-group {
|
||||
padding: $base_padding * 2;
|
||||
}
|
||||
|
||||
.workspace-switcher-container {
|
||||
@extend %osd_panel;
|
||||
}
|
||||
|
||||
.workspace-switcher {
|
||||
background: transparent;
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
padding: 0;
|
||||
spacing: $base_spacing * 2;
|
||||
}
|
||||
|
||||
.ws-switcher-box {
|
||||
// background: transparent;
|
||||
background: transparent;
|
||||
height: 50px;
|
||||
background-size: 32px;
|
||||
border: 1px solid transparentize($osd_fg_color,0.9);
|
||||
border-radius: $base_border_radius + 3px;
|
||||
}
|
||||
|
||||
// active workspace in the switcher
|
||||
.ws-switcher-active-up,
|
||||
.ws-switcher-active-down,
|
||||
.ws-switcher-active-left,
|
||||
.ws-switcher-active-right {
|
||||
background-color: $selected_bg_color;
|
||||
border: 1px solid if($variant=='light', darken($selected_bg_color, 8%), lighten($selected_bg_color, 5%));
|
||||
border-radius: $base_border_radius + 3px;
|
||||
color: $selected_fg_color;
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
/* Workspace pager */
|
||||
|
||||
// thumbnails in overview
|
||||
.workspace-thumbnails {
|
||||
@extend %overview_panel;
|
||||
visible-width: 32px; //amount visible before hover
|
||||
spacing: $base_spacing;
|
||||
padding: $base_padding;
|
||||
|
||||
border-radius: $modal_radius 0 0 $modal_radius;
|
||||
border-right-width: 0;
|
||||
|
||||
&:rtl {
|
||||
border-radius: 0 $modal_radius $modal_radius 0;
|
||||
border-left-width: 0;
|
||||
}
|
||||
|
||||
// drag and drop indicator
|
||||
.placeholder {
|
||||
background-image: url("resource:///org/gnome/shell/theme/dash-placeholder.svg");
|
||||
background-size: contain;
|
||||
height: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
// selected indicator
|
||||
.workspace-thumbnail-indicator {
|
||||
border: 3px solid $selected_bg_color;
|
||||
border-radius: 3px;
|
||||
padding: 0px;
|
||||
// background-color: transparentize($selected_bg_color, 0.9);
|
||||
}
|
||||
@@ -21,16 +21,23 @@ for f in $extensiondir/*; do
|
||||
uuid=$name@gnome-shell-extensions.gcampax.github.com
|
||||
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
|
||||
|
||||
cp $srcdir/NEWS $srcdir/COPYING $f
|
||||
cp -r $localedir $f
|
||||
xgettext --from-code=UTF-8 --output-dir=$builddir --output=$name.pot $f/*.js
|
||||
|
||||
if [ -f $schema ]; then
|
||||
mkdir $f/schemas
|
||||
cp $schema $f/schemas;
|
||||
glib-compile-schemas $f/schemas
|
||||
if [ -f $builddir/$name.pot ]; then
|
||||
mkdir $f/po
|
||||
for l in $(<$srcdir/po/LINGUAS); do
|
||||
msgmerge --quiet --output-file=$f/po/$l.po \
|
||||
$srcdir/po/$l.po $builddir/$name.pot
|
||||
done
|
||||
fi
|
||||
|
||||
(cd $f && zip -rmq $srcdir/zip-files/$uuid.shell-extension.zip .)
|
||||
cp $srcdir/NEWS $srcdir/COPYING $f
|
||||
sources=(NEWS COPYING $(cd $f; ls *.js))
|
||||
|
||||
[ -f $schema ] || unset schema
|
||||
|
||||
gnome-extensions pack ${sources[@]/#/--extra-source=} \
|
||||
${schema:+--schema=$schema} --out-dir=$srcdir/zip-files $f
|
||||
done
|
||||
|
||||
rm -rf $builddir
|
||||
|
||||
@@ -35,17 +35,16 @@ class WindowMover {
|
||||
|
||||
_updateAppData() {
|
||||
let ids = [...this._appConfigs.keys()];
|
||||
let removedApps = [...this._appData.keys()].filter(
|
||||
a => !ids.includes(a.id)
|
||||
);
|
||||
let removedApps = [...this._appData.keys()]
|
||||
.filter(a => !ids.includes(a.id));
|
||||
removedApps.forEach(app => {
|
||||
app.disconnect(this._appData.get(app).windowsChangedId);
|
||||
this._appData.delete(app);
|
||||
});
|
||||
|
||||
let addedApps = ids.map(id => this._appSystem.lookup_app(id)).filter(
|
||||
app => app && !this._appData.has(app)
|
||||
);
|
||||
let addedApps = ids
|
||||
.map(id => this._appSystem.lookup_app(id))
|
||||
.filter(app => app && !this._appData.has(app));
|
||||
addedApps.forEach(app => {
|
||||
let data = {
|
||||
windowsChangedId: app.connect('windows-changed',
|
||||
@@ -94,9 +93,9 @@ class WindowMover {
|
||||
// the window still exists and is just moved to a different workspace
|
||||
// or something; assume it'll be added back immediately, so keep it
|
||||
// to avoid moving it again
|
||||
windows.push(...data.windows.filter(
|
||||
w => !windows.includes(w) && w.get_compositor_private() !== null
|
||||
));
|
||||
windows.push(...data.windows.filter(w => {
|
||||
return !windows.includes(w) && w.get_compositor_private() !== null;
|
||||
}));
|
||||
|
||||
let workspaceNum = this._appConfigs.get(app.id);
|
||||
windows.filter(w => !data.windows.includes(w)).forEach(window => {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* exported init enable disable */
|
||||
// Drive menu extension
|
||||
const { Gio, GObject, Shell, St } = imports.gi;
|
||||
const { Clutter, Gio, GObject, Shell, St } = imports.gi;
|
||||
|
||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
||||
const _ = Gettext.gettext;
|
||||
@@ -14,9 +14,15 @@ const ShellMountOperation = imports.ui.shellMountOperation;
|
||||
var MountMenuItem = GObject.registerClass(
|
||||
class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
_init(mount) {
|
||||
super._init();
|
||||
super._init({
|
||||
style_class: 'drive-menu-item',
|
||||
});
|
||||
|
||||
this.label = new St.Label({ text: mount.get_name() });
|
||||
this.label = new St.Label({
|
||||
text: mount.get_name(),
|
||||
x_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_child(this.label);
|
||||
this.label_actor = this.label;
|
||||
|
||||
@@ -28,7 +34,10 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
icon_name: 'media-eject-symbolic',
|
||||
style_class: 'popup-menu-icon',
|
||||
});
|
||||
let ejectButton = new St.Button({ child: ejectIcon });
|
||||
let ejectButton = new St.Button({
|
||||
child: ejectIcon,
|
||||
style_class: 'button',
|
||||
});
|
||||
ejectButton.connect('clicked', this._eject.bind(this));
|
||||
this.add(ejectButton);
|
||||
|
||||
|
||||
@@ -1 +1,7 @@
|
||||
/* This extensions requires no custom styling */
|
||||
.drive-menu-item { spacing: 12px; }
|
||||
|
||||
.drive-menu-item .button {
|
||||
border-radius: 99px;
|
||||
padding: 3px;
|
||||
min-height: auto;
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ js_sources = []
|
||||
|
||||
metadata_name = 'metadata.json'
|
||||
|
||||
foreach e : all_extensions
|
||||
foreach e : enabled_extensions
|
||||
uuid = e + uuid_suffix
|
||||
|
||||
metadata_conf = configuration_data()
|
||||
@@ -19,27 +19,11 @@ foreach e : all_extensions
|
||||
|
||||
subdir(e)
|
||||
|
||||
js_sources += extension_sources
|
||||
|
||||
if (enabled_extensions.contains(e))
|
||||
install_data (extension_sources + extension_data,
|
||||
install_dir: join_paths(extensiondir, uuid)
|
||||
)
|
||||
endif
|
||||
install_data (extension_sources + extension_data,
|
||||
install_dir: join_paths(extensiondir, uuid)
|
||||
)
|
||||
endforeach
|
||||
|
||||
install_data (extension_schemas,
|
||||
install_dir: schemadir
|
||||
)
|
||||
|
||||
foreach js_source : js_sources
|
||||
if (js60.found())
|
||||
path_array = '@0@'.format(js_source).split('/')
|
||||
name = join_paths(path_array[-2], path_array[-1])
|
||||
|
||||
test('Checking syntax of ' + name, js60,
|
||||
args: ['-s', '-c', js_source],
|
||||
workdir: meson.current_source_dir()
|
||||
)
|
||||
endif
|
||||
endforeach
|
||||
|
||||
@@ -20,7 +20,9 @@ const PLACE_ICON_SIZE = 16;
|
||||
var PlaceMenuItem = GObject.registerClass(
|
||||
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
_init(info) {
|
||||
super._init();
|
||||
super._init({
|
||||
style_class: 'place-menu-item',
|
||||
});
|
||||
this._info = info;
|
||||
|
||||
this._icon = new St.Icon({
|
||||
@@ -29,7 +31,11 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
});
|
||||
this.add_child(this._icon);
|
||||
|
||||
this._label = new St.Label({ text: info.name, x_expand: true });
|
||||
this._label = new St.Label({
|
||||
text: info.name,
|
||||
x_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_child(this._label);
|
||||
|
||||
if (info.isRemovable()) {
|
||||
@@ -37,7 +43,10 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
icon_name: 'media-eject-symbolic',
|
||||
style_class: 'popup-menu-icon',
|
||||
});
|
||||
this._ejectButton = new St.Button({ child: this._ejectIcon });
|
||||
this._ejectButton = new St.Button({
|
||||
child: this._ejectIcon,
|
||||
style_class: 'button',
|
||||
});
|
||||
this._ejectButton.connect('clicked', info.eject.bind(info));
|
||||
this.add_child(this._ejectButton);
|
||||
}
|
||||
|
||||
@@ -1 +1,8 @@
|
||||
/* none used*/
|
||||
.place-menu-item .button {
|
||||
border-radius: 99px;
|
||||
padding: 3px;
|
||||
min-height: auto;
|
||||
}
|
||||
|
||||
.place-menu-item .button:ltr { margin-left: 6px; }
|
||||
.place-menu-item .button:rtl { margin-right: 6px; }
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
// Load shell theme from ~/.local/share/themes/name/gnome-shell
|
||||
/* exported init */
|
||||
|
||||
const { Gio, GLib } = imports.gi;
|
||||
const { Gio } = imports.gi;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const Main = imports.ui.main;
|
||||
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Util = Me.imports.util;
|
||||
|
||||
const SETTINGS_KEY = 'name';
|
||||
|
||||
class ThemeManager {
|
||||
@@ -34,13 +37,11 @@ class ThemeManager {
|
||||
let themeName = this._settings.get_string(SETTINGS_KEY);
|
||||
|
||||
if (themeName) {
|
||||
let stylesheetPaths = [
|
||||
[GLib.get_home_dir(), '.themes'],
|
||||
[GLib.get_user_data_dir(), 'themes'],
|
||||
...GLib.get_system_data_dirs().map(dir => [dir, 'themes']),
|
||||
].map(themeDir => GLib.build_filenamev([
|
||||
...themeDir, themeName, 'gnome-shell', 'gnome-shell.css',
|
||||
]));
|
||||
const stylesheetPaths = Util.getThemeDirs()
|
||||
.map(dir => `${dir}/${themeName}/gnome-shell/gnome-shell.css`);
|
||||
|
||||
stylesheetPaths.push(...Util.getModeThemeDirs()
|
||||
.map(dir => `${dir}/${themeName}.css`));
|
||||
|
||||
stylesheet = stylesheetPaths.find(path => {
|
||||
let file = Gio.file_new_for_path(path);
|
||||
|
||||
@@ -4,4 +4,5 @@ extension_data += configure_file(
|
||||
configuration: metadata_conf
|
||||
)
|
||||
|
||||
extension_sources += files('prefs.js', 'util.js')
|
||||
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
|
||||
189
extensions/user-theme/prefs.js
Normal file
189
extensions/user-theme/prefs.js
Normal file
@@ -0,0 +1,189 @@
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
/* exported init buildPrefsWidget */
|
||||
|
||||
// we use async/await here to not block the mainloop, not to parallelize
|
||||
/* eslint-disable no-await-in-loop */
|
||||
|
||||
const { Gio, GLib, GObject, Gtk } = imports.gi;
|
||||
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
|
||||
const Me = ExtensionUtils.getCurrentExtension();
|
||||
const Util = Me.imports.util;
|
||||
|
||||
Gio._promisify(Gio._LocalFilePrototype,
|
||||
'enumerate_children_async', 'enumerate_children_finish');
|
||||
Gio._promisify(Gio._LocalFilePrototype,
|
||||
'query_info_async', 'query_info_finish');
|
||||
Gio._promisify(Gio.FileEnumerator.prototype,
|
||||
'next_files_async', 'next_files_finish');
|
||||
|
||||
const UserThemePrefsWidget = GObject.registerClass(
|
||||
class UserThemePrefsWidget extends Gtk.ScrolledWindow {
|
||||
_init() {
|
||||
super._init({
|
||||
hscrollbar_policy: Gtk.PolicyType.NEVER,
|
||||
});
|
||||
|
||||
const box = new Gtk.Box();
|
||||
this.add(box);
|
||||
|
||||
this._list = new Gtk.ListBox({
|
||||
selection_mode: Gtk.SelectionMode.NONE,
|
||||
halign: Gtk.Align.CENTER,
|
||||
valign: Gtk.Align.START,
|
||||
hexpand: true,
|
||||
margin: 60,
|
||||
});
|
||||
this._list.get_style_context().add_class('frame');
|
||||
this._list.set_header_func(this._updateHeader.bind(this));
|
||||
box.add(this._list);
|
||||
|
||||
this._actionGroup = new Gio.SimpleActionGroup();
|
||||
this._list.insert_action_group('theme', this._actionGroup);
|
||||
|
||||
this._settings = ExtensionUtils.getSettings();
|
||||
this._actionGroup.add_action(
|
||||
this._settings.create_action('name'));
|
||||
|
||||
this.connect('destroy', () => this._settings.run_dispose());
|
||||
|
||||
this._rows = new Map();
|
||||
this._addTheme(''); // default
|
||||
|
||||
this._collectThemes();
|
||||
}
|
||||
|
||||
async _collectThemes() {
|
||||
for (const dirName of Util.getThemeDirs()) {
|
||||
const dir = Gio.File.new_for_path(dirName);
|
||||
for (const name of await this._enumerateDir(dir)) {
|
||||
if (this._rows.has(name))
|
||||
continue;
|
||||
|
||||
const file = dir.resolve_relative_path(
|
||||
`${name}/gnome-shell/gnome-shell.css`);
|
||||
try {
|
||||
await file.query_info_async(
|
||||
Gio.FILE_ATTRIBUTE_STANDARD_NAME,
|
||||
Gio.FileQueryInfoFlags.NONE,
|
||||
GLib.PRIORITY_DEFAULT, null);
|
||||
this._addTheme(name);
|
||||
} catch (e) {
|
||||
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||
logError(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (const dirName of Util.getModeThemeDirs()) {
|
||||
const dir = Gio.File.new_for_path(dirName);
|
||||
for (const filename of await this._enumerateDir(dir)) {
|
||||
if (!filename.endsWith('.css'))
|
||||
continue;
|
||||
|
||||
const name = filename.slice(0, -4);
|
||||
if (!this._rows.has(name))
|
||||
this._addTheme(name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_addTheme(name) {
|
||||
const row = new ThemeRow(name);
|
||||
this._rows.set(name, row);
|
||||
|
||||
this._list.add(row);
|
||||
row.show_all();
|
||||
}
|
||||
|
||||
async _enumerateDir(dir) {
|
||||
const fileInfos = [];
|
||||
let fileEnum;
|
||||
|
||||
try {
|
||||
fileEnum = await dir.enumerate_children_async(
|
||||
Gio.FILE_ATTRIBUTE_STANDARD_NAME,
|
||||
Gio.FileQueryInfoFlags.NONE,
|
||||
GLib.PRIORITY_DEFAULT, null);
|
||||
} catch (e) {
|
||||
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||
logError(e);
|
||||
return [];
|
||||
}
|
||||
|
||||
let infos;
|
||||
do {
|
||||
infos = await fileEnum.next_files_async(100,
|
||||
GLib.PRIORITY_DEFAULT, null);
|
||||
fileInfos.push(...infos);
|
||||
} while (infos.length > 0);
|
||||
|
||||
return fileInfos.map(info => info.get_name());
|
||||
}
|
||||
|
||||
_updateHeader(row, before) {
|
||||
if (!before || row.get_header())
|
||||
return;
|
||||
row.set_header(new Gtk.Separator());
|
||||
}
|
||||
});
|
||||
|
||||
const ThemeRow = GObject.registerClass(
|
||||
class ThemeRow extends Gtk.ListBoxRow {
|
||||
_init(name) {
|
||||
this._name = new GLib.Variant('s', name);
|
||||
|
||||
super._init({
|
||||
action_name: 'theme.name',
|
||||
action_target: this._name,
|
||||
});
|
||||
|
||||
const box = new Gtk.Box({
|
||||
spacing: 12,
|
||||
margin: 12,
|
||||
});
|
||||
this.add(box);
|
||||
|
||||
box.add(new Gtk.Label({
|
||||
label: name || 'Default',
|
||||
hexpand: true,
|
||||
xalign: 0,
|
||||
max_width_chars: 25,
|
||||
width_chars: 25,
|
||||
}));
|
||||
|
||||
this._checkmark = new Gtk.Image({
|
||||
icon_name: 'emblem-ok-symbolic',
|
||||
pixel_size: 16,
|
||||
});
|
||||
box.add(this._checkmark);
|
||||
|
||||
box.show_all();
|
||||
|
||||
const id = this.connect('parent-set', () => {
|
||||
this.disconnect(id);
|
||||
|
||||
const actionGroup = this.get_action_group('theme');
|
||||
actionGroup.connect('action-state-changed::name',
|
||||
this._syncCheckmark.bind(this));
|
||||
this._syncCheckmark();
|
||||
});
|
||||
}
|
||||
|
||||
_syncCheckmark() {
|
||||
const actionGroup = this.get_action_group('theme');
|
||||
const state = actionGroup.get_action_state('name');
|
||||
this._checkmark.opacity = this._name.equal(state);
|
||||
}
|
||||
});
|
||||
|
||||
function init() {
|
||||
}
|
||||
|
||||
function buildPrefsWidget() {
|
||||
let widget = new UserThemePrefsWidget();
|
||||
widget.show_all();
|
||||
|
||||
return widget;
|
||||
}
|
||||
17
extensions/user-theme/util.js
Normal file
17
extensions/user-theme/util.js
Normal file
@@ -0,0 +1,17 @@
|
||||
/* exported getThemeDirs getModeThemeDirs */
|
||||
const { GLib } = imports.gi;
|
||||
|
||||
const fn = (...args) => GLib.build_filenamev(args);
|
||||
|
||||
function getThemeDirs() {
|
||||
return [
|
||||
fn(GLib.get_home_dir(), '.themes'),
|
||||
fn(GLib.get_user_data_dir(), 'themes'),
|
||||
...GLib.get_system_data_dirs().map(dir => fn(dir, 'themes')),
|
||||
];
|
||||
}
|
||||
|
||||
function getModeThemeDirs() {
|
||||
return GLib.get_system_data_dirs()
|
||||
.map(dir => fn(dir, 'gnome-shell', 'theme'));
|
||||
}
|
||||
@@ -50,6 +50,7 @@ class WindowListPrefsWidget extends Gtk.Grid {
|
||||
};
|
||||
|
||||
let radio = null;
|
||||
let currentRadio = null;
|
||||
for (let i = 0; i < modes.length; i++) {
|
||||
let mode = modes[i];
|
||||
let label = modeLabels[mode];
|
||||
@@ -59,18 +60,24 @@ class WindowListPrefsWidget extends Gtk.Grid {
|
||||
}
|
||||
|
||||
radio = new Gtk.RadioButton({
|
||||
active: currentMode === mode,
|
||||
active: !i,
|
||||
label,
|
||||
group: radio,
|
||||
});
|
||||
grid.add(radio);
|
||||
|
||||
if (currentMode === mode)
|
||||
currentRadio = radio;
|
||||
|
||||
radio.connect('toggled', button => {
|
||||
if (button.active)
|
||||
this._settings.set_string('grouping-mode', mode);
|
||||
});
|
||||
}
|
||||
|
||||
if (currentRadio)
|
||||
currentRadio.active = true;
|
||||
|
||||
let check = new Gtk.CheckButton({
|
||||
label: _('Show on all monitors'),
|
||||
margin_top: 6,
|
||||
|
||||
@@ -83,8 +83,8 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
|
||||
this._workareasChangedId = 0;
|
||||
|
||||
if (this._nWorkspacesChangedId)
|
||||
global.workspace_manager.disconnect(this._nWorkspacesNotifyId);
|
||||
this._nWorkspacesNotifyId = 0;
|
||||
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
|
||||
this._nWorkspacesChangedId = 0;
|
||||
|
||||
super._onDestroy();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
/* exported init buildPrefsWidget */
|
||||
|
||||
const { Gio, GObject, Gtk } = imports.gi;
|
||||
const { Gdk, Gio, GLib, GObject, Gtk, Pango } = imports.gi;
|
||||
|
||||
const Gettext = imports.gettext.domain('gnome-shell-extensions');
|
||||
const _ = Gettext.gettext;
|
||||
@@ -12,189 +12,221 @@ const ExtensionUtils = imports.misc.extensionUtils;
|
||||
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const WORKSPACE_KEY = 'workspace-names';
|
||||
|
||||
const WorkspaceNameModel = GObject.registerClass(
|
||||
class WorkspaceNameModel extends Gtk.ListStore {
|
||||
_init(params) {
|
||||
super._init(params);
|
||||
this.set_column_types([GObject.TYPE_STRING]);
|
||||
|
||||
this.Columns = {
|
||||
LABEL: 0,
|
||||
};
|
||||
|
||||
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
|
||||
this._reloadFromSettings();
|
||||
|
||||
// overriding class closure doesn't work, because GtkTreeModel
|
||||
// plays tricks with marshallers and class closures
|
||||
this.connect('row-changed', this._onRowChanged.bind(this));
|
||||
this.connect('row-inserted', this._onRowInserted.bind(this));
|
||||
this.connect('row-deleted', this._onRowDeleted.bind(this));
|
||||
}
|
||||
|
||||
_reloadFromSettings() {
|
||||
if (this._preventChanges)
|
||||
return;
|
||||
this._preventChanges = true;
|
||||
|
||||
let newNames = this._settings.get_strv(WORKSPACE_KEY);
|
||||
|
||||
let i = 0;
|
||||
let [ok, iter] = this.get_iter_first();
|
||||
while (ok && i < newNames.length) {
|
||||
this.set(iter, [this.Columns.LABEL], [newNames[i]]);
|
||||
|
||||
ok = this.iter_next(iter);
|
||||
i++;
|
||||
}
|
||||
|
||||
while (ok)
|
||||
ok = this.remove(iter);
|
||||
|
||||
for (; i < newNames.length; i++) {
|
||||
iter = this.append();
|
||||
this.set(iter, [this.Columns.LABEL], [newNames[i]]);
|
||||
}
|
||||
|
||||
this._preventChanges = false;
|
||||
}
|
||||
|
||||
_onRowChanged(self, path, iter) {
|
||||
if (this._preventChanges)
|
||||
return;
|
||||
this._preventChanges = true;
|
||||
|
||||
let index = path.get_indices()[0];
|
||||
let names = this._settings.get_strv(WORKSPACE_KEY);
|
||||
|
||||
if (index >= names.length) {
|
||||
// fill with blanks
|
||||
for (let i = names.length; i <= index; i++)
|
||||
names[i] = '';
|
||||
}
|
||||
|
||||
names[index] = this.get_value(iter, this.Columns.LABEL);
|
||||
|
||||
this._settings.set_strv(WORKSPACE_KEY, names);
|
||||
|
||||
this._preventChanges = false;
|
||||
}
|
||||
|
||||
_onRowInserted(self, path, iter) {
|
||||
if (this._preventChanges)
|
||||
return;
|
||||
this._preventChanges = true;
|
||||
|
||||
let index = path.get_indices()[0];
|
||||
let names = this._settings.get_strv(WORKSPACE_KEY);
|
||||
let label = this.get_value(iter, this.Columns.LABEL) || '';
|
||||
names.splice(index, 0, label);
|
||||
|
||||
this._settings.set_strv(WORKSPACE_KEY, names);
|
||||
|
||||
this._preventChanges = false;
|
||||
}
|
||||
|
||||
_onRowDeleted(self, path) {
|
||||
if (this._preventChanges)
|
||||
return;
|
||||
this._preventChanges = true;
|
||||
|
||||
let index = path.get_indices()[0];
|
||||
let names = this._settings.get_strv(WORKSPACE_KEY);
|
||||
|
||||
if (index >= names.length)
|
||||
return;
|
||||
|
||||
names.splice(index, 1);
|
||||
|
||||
// compact the array
|
||||
for (let i = names.length - 1; i >= 0 && !names[i]; i++)
|
||||
names.pop();
|
||||
|
||||
this._settings.set_strv(WORKSPACE_KEY, names);
|
||||
|
||||
this._preventChanges = false;
|
||||
}
|
||||
});
|
||||
|
||||
const WorkspaceSettingsWidget = GObject.registerClass(
|
||||
class WorkspaceSettingsWidget extends Gtk.Grid {
|
||||
_init(params) {
|
||||
super._init(params);
|
||||
this.margin = 12;
|
||||
this.orientation = Gtk.Orientation.VERTICAL;
|
||||
class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
|
||||
_init() {
|
||||
super._init({
|
||||
hscrollbar_policy: Gtk.PolicyType.NEVER,
|
||||
});
|
||||
|
||||
this.add(new Gtk.Label({
|
||||
const box = new Gtk.Box({
|
||||
orientation: Gtk.Orientation.VERTICAL,
|
||||
halign: Gtk.Align.CENTER,
|
||||
spacing: 12,
|
||||
margin_top: 36,
|
||||
margin_bottom: 36,
|
||||
margin_start: 36,
|
||||
margin_end: 36,
|
||||
});
|
||||
this.add(box);
|
||||
|
||||
box.add(new Gtk.Label({
|
||||
label: '<b>%s</b>'.format(_('Workspace Names')),
|
||||
use_markup: true,
|
||||
margin_bottom: 6,
|
||||
hexpand: true,
|
||||
halign: Gtk.Align.START,
|
||||
}));
|
||||
|
||||
let scrolled = new Gtk.ScrolledWindow({ shadow_type: Gtk.ShadowType.IN });
|
||||
scrolled.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
|
||||
this.add(scrolled);
|
||||
this._list = new Gtk.ListBox({
|
||||
selection_mode: Gtk.SelectionMode.NONE,
|
||||
valign: Gtk.Align.START,
|
||||
});
|
||||
this._list.set_header_func(this._updateHeader.bind(this));
|
||||
this._list.connect('row-activated', (l, row) => row.edit());
|
||||
box.add(this._list);
|
||||
|
||||
this._store = new WorkspaceNameModel();
|
||||
this._treeView = new Gtk.TreeView({
|
||||
model: this._store,
|
||||
headers_visible: false,
|
||||
reorderable: true,
|
||||
const context = this._list.get_style_context();
|
||||
const cssProvider = new Gtk.CssProvider();
|
||||
cssProvider.load_from_data(
|
||||
'list { min-width: 25em; }');
|
||||
|
||||
context.add_provider(cssProvider,
|
||||
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
|
||||
context.add_class('frame');
|
||||
|
||||
this._list.add(new NewWorkspaceRow());
|
||||
|
||||
this._actionGroup = new Gio.SimpleActionGroup();
|
||||
this._list.insert_action_group('workspaces', this._actionGroup);
|
||||
|
||||
let action;
|
||||
action = new Gio.SimpleAction({ name: 'add' });
|
||||
action.connect('activate', () => {
|
||||
const names = this._settings.get_strv(WORKSPACE_KEY);
|
||||
this._settings.set_strv(WORKSPACE_KEY, [
|
||||
...names,
|
||||
_('Workspace %d').format(names.length + 1),
|
||||
]);
|
||||
});
|
||||
this._actionGroup.add_action(action);
|
||||
|
||||
action = new Gio.SimpleAction({
|
||||
name: 'remove',
|
||||
parameter_type: new GLib.VariantType('s'),
|
||||
});
|
||||
action.connect('activate', (a, param) => {
|
||||
const removed = param.deepUnpack();
|
||||
this._settings.set_strv(WORKSPACE_KEY,
|
||||
this._settings.get_strv(WORKSPACE_KEY)
|
||||
.filter(name => name !== removed));
|
||||
});
|
||||
this._actionGroup.add_action(action);
|
||||
|
||||
action = new Gio.SimpleAction({ name: 'update' });
|
||||
action.connect('activate', () => {
|
||||
const names = this._getWorkspaceRows().map(row => row.name);
|
||||
this._settings.set_strv(WORKSPACE_KEY, names);
|
||||
});
|
||||
this._actionGroup.add_action(action);
|
||||
|
||||
this._settings = new Gio.Settings({
|
||||
schema_id: WORKSPACE_SCHEMA,
|
||||
});
|
||||
this._settings.connect(`changed::${WORKSPACE_KEY}`,
|
||||
this._sync.bind(this));
|
||||
this._sync();
|
||||
|
||||
this.show_all();
|
||||
}
|
||||
|
||||
_getWorkspaceRows() {
|
||||
return this._list.get_children().filter(row => row.name);
|
||||
}
|
||||
|
||||
_sync() {
|
||||
const rows = this._getWorkspaceRows();
|
||||
|
||||
const oldNames = rows.map(row => row.name);
|
||||
const newNames = this._settings.get_strv(WORKSPACE_KEY);
|
||||
|
||||
const removed = oldNames.filter(n => !newNames.includes(n));
|
||||
const added = newNames.filter(n => !oldNames.includes(n));
|
||||
|
||||
removed.forEach(n => rows.find(r => r.name === n).destroy());
|
||||
added.forEach(n => {
|
||||
this._list.insert(new WorkspaceRow(n), newNames.indexOf(n));
|
||||
});
|
||||
}
|
||||
|
||||
_updateHeader(row, before) {
|
||||
if (!before || row.get_header())
|
||||
return;
|
||||
row.set_header(new Gtk.Separator());
|
||||
}
|
||||
});
|
||||
|
||||
const WorkspaceRow = GObject.registerClass(
|
||||
class WorkspaceRow extends Gtk.ListBoxRow {
|
||||
_init(name) {
|
||||
super._init({ name });
|
||||
|
||||
const box = new Gtk.Box({
|
||||
spacing: 12,
|
||||
margin_top: 6,
|
||||
margin_bottom: 6,
|
||||
margin_start: 6,
|
||||
margin_end: 6,
|
||||
});
|
||||
|
||||
const label = new Gtk.Label({
|
||||
hexpand: true,
|
||||
vexpand: true,
|
||||
xalign: 0,
|
||||
max_width_chars: 25,
|
||||
ellipsize: Pango.EllipsizeMode.END,
|
||||
});
|
||||
this.bind_property('name', label, 'label',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
box.add(label);
|
||||
|
||||
const image = new Gtk.Image({
|
||||
icon_name: 'edit-delete-symbolic',
|
||||
pixel_size: 16,
|
||||
});
|
||||
const button = new Gtk.Button({
|
||||
action_name: 'workspaces.remove',
|
||||
action_target: new GLib.Variant('s', name),
|
||||
image,
|
||||
});
|
||||
box.add(button);
|
||||
|
||||
this._entry = new Gtk.Entry({
|
||||
max_width_chars: 25,
|
||||
});
|
||||
|
||||
let column = new Gtk.TreeViewColumn({ title: _('Name') });
|
||||
let renderer = new Gtk.CellRendererText({ editable: true });
|
||||
renderer.connect('edited', this._cellEdited.bind(this));
|
||||
column.pack_start(renderer, true);
|
||||
column.add_attribute(renderer, 'text', this._store.Columns.LABEL);
|
||||
this._treeView.append_column(column);
|
||||
this._stack = new Gtk.Stack();
|
||||
this._stack.add_named(box, 'display');
|
||||
this._stack.add_named(this._entry, 'edit');
|
||||
this.add(this._stack);
|
||||
|
||||
scrolled.add(this._treeView);
|
||||
|
||||
let toolbar = new Gtk.Toolbar({ icon_size: Gtk.IconSize.SMALL_TOOLBAR });
|
||||
toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_INLINE_TOOLBAR);
|
||||
|
||||
let newButton = new Gtk.ToolButton({ icon_name: 'list-add-symbolic' });
|
||||
newButton.connect('clicked', this._newClicked.bind(this));
|
||||
toolbar.add(newButton);
|
||||
|
||||
let delButton = new Gtk.ToolButton({ icon_name: 'list-remove-symbolic' });
|
||||
delButton.connect('clicked', this._delClicked.bind(this));
|
||||
toolbar.add(delButton);
|
||||
|
||||
let selection = this._treeView.get_selection();
|
||||
selection.connect('changed', () => {
|
||||
delButton.sensitive = selection.count_selected_rows() > 0;
|
||||
this._entry.connect('activate', () => {
|
||||
this.name = this._entry.text;
|
||||
this._stopEdit();
|
||||
});
|
||||
delButton.sensitive = selection.count_selected_rows() > 0;
|
||||
this._entry.connect('notify::has-focus', () => {
|
||||
if (this._entry.has_focus)
|
||||
return;
|
||||
this._stopEdit();
|
||||
});
|
||||
this._entry.connect('key-press-event',
|
||||
this._onEntryKeyPress.bind(this));
|
||||
|
||||
this.add(toolbar);
|
||||
this.connect('notify::name', () => {
|
||||
button.action_target = new GLib.Variant('s', this.name);
|
||||
|
||||
const actionGroup = this.get_action_group('workspaces');
|
||||
actionGroup.activate_action('update', null);
|
||||
});
|
||||
|
||||
this.show_all();
|
||||
}
|
||||
|
||||
_cellEdited(renderer, path, newText) {
|
||||
let [ok, iter] = this._store.get_iter_from_string(path);
|
||||
|
||||
if (ok)
|
||||
this._store.set(iter, [this._store.Columns.LABEL], [newText]);
|
||||
edit() {
|
||||
this._entry.text = this.name;
|
||||
this._entry.grab_focus();
|
||||
this._stack.visible_child_name = 'edit';
|
||||
}
|
||||
|
||||
_newClicked() {
|
||||
let iter = this._store.append();
|
||||
let index = this._store.get_path(iter).get_indices()[0];
|
||||
|
||||
let label = _('Workspace %d').format(index + 1);
|
||||
this._store.set(iter, [this._store.Columns.LABEL], [label]);
|
||||
_stopEdit() {
|
||||
this.grab_focus();
|
||||
this._stack.visible_child_name = 'display';
|
||||
}
|
||||
|
||||
_delClicked() {
|
||||
let [any, model_, iter] = this._treeView.get_selection().get_selected();
|
||||
_onEntryKeyPress(entry, event) {
|
||||
const [, keyval] = event.get_keyval();
|
||||
if (keyval !== Gdk.KEY_Escape)
|
||||
return Gdk.EVENT_PROPAGATE;
|
||||
this._stopEdit();
|
||||
return Gdk.EVENT_STOP;
|
||||
}
|
||||
});
|
||||
|
||||
if (any)
|
||||
this._store.remove(iter);
|
||||
const NewWorkspaceRow = GObject.registerClass(
|
||||
class NewWorkspaceRow extends Gtk.ListBoxRow {
|
||||
_init() {
|
||||
super._init({
|
||||
action_name: 'workspaces.add',
|
||||
});
|
||||
this.get_accessible().set_name(_('Add Workspace'));
|
||||
|
||||
this.add(new Gtk.Image({
|
||||
icon_name: 'list-add-symbolic',
|
||||
pixel_size: 16,
|
||||
margin_top: 12,
|
||||
margin_bottom: 12,
|
||||
margin_start: 12,
|
||||
margin_end: 12,
|
||||
}));
|
||||
|
||||
this.show_all();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -203,8 +235,5 @@ function init() {
|
||||
}
|
||||
|
||||
function buildPrefsWidget() {
|
||||
let widget = new WorkspaceSettingsWidget();
|
||||
widget.show_all();
|
||||
|
||||
return widget;
|
||||
return new WorkspaceSettingsWidget();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
project('gnome-shell-extensions',
|
||||
version: '3.35.91',
|
||||
version: '3.37.1',
|
||||
meson_version: '>= 0.44.0',
|
||||
license: 'GPL2+'
|
||||
)
|
||||
@@ -20,8 +20,6 @@ schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
|
||||
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
|
||||
xsessiondir = join_paths(datadir, 'xsessions')
|
||||
|
||||
js60 = find_program('js60', required: false)
|
||||
|
||||
ver_arr = meson.project_version().split('.')
|
||||
if ver_arr[1].to_int().is_even()
|
||||
shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1])
|
||||
|
||||
@@ -10,7 +10,6 @@ extensions/native-window-placement/org.gnome.shell.extensions.native-window-plac
|
||||
extensions/places-menu/extension.js
|
||||
extensions/places-menu/placeDisplay.js
|
||||
extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml
|
||||
extensions/user-theme/extension.js
|
||||
extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml
|
||||
extensions/window-list/extension.js
|
||||
extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml
|
||||
|
||||
129
po/eo.po
129
po/eo.po
@@ -9,8 +9,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2019-03-02 10:57+0000\n"
|
||||
"PO-Revision-Date: 2019-03-06 22:14+0200\n"
|
||||
"POT-Creation-Date: 2020-03-31 07:16+0000\n"
|
||||
"PO-Revision-Date: 2020-04-18 10:59+0200\n"
|
||||
"Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
|
||||
"Language-Team: Esperanto <gnome-eo-list@gnome.org>\n"
|
||||
"Language: eo\n"
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Virtaal 0.7.1\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||
@@ -29,15 +29,11 @@ msgstr "GNOME-klasika"
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Ĉi seanco ensalutas vin GNOME-klasiken"
|
||||
|
||||
#: extensions/apps-menu/extension.js:29
|
||||
msgid "Activities Overview"
|
||||
msgstr "Aktivecoj-Superrigardon"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:113
|
||||
msgid "Favorites"
|
||||
msgstr "Plej ŝatataj"
|
||||
|
||||
#: extensions/apps-menu/extension.js:407
|
||||
#: extensions/apps-menu/extension.js:369
|
||||
msgid "Applications"
|
||||
msgstr "Aplikaĵoj"
|
||||
|
||||
@@ -53,41 +49,39 @@ msgstr ""
|
||||
"Listo de ĉenoj, ĉiu enhavas aplikaĵan identigilon ('desktop' dosiernomo), "
|
||||
"sevkita per dupunkto kaj la laborspaca numero"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:60
|
||||
#: extensions/auto-move-windows/prefs.js:59
|
||||
msgid "Application"
|
||||
msgstr "Aplikaĵo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:71
|
||||
#: extensions/auto-move-windows/prefs.js:134
|
||||
#: extensions/auto-move-windows/prefs.js:70
|
||||
#: extensions/auto-move-windows/prefs.js:133
|
||||
msgid "Workspace"
|
||||
msgstr "Laborspaco"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:89
|
||||
#: extensions/auto-move-windows/prefs.js:88
|
||||
msgid "Add Rule"
|
||||
msgstr "Aldoni regulon"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:111
|
||||
#: extensions/auto-move-windows/prefs.js:110
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Krei novan kongruantan regulon"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:117
|
||||
#: extensions/auto-move-windows/prefs.js:116
|
||||
msgid "Add"
|
||||
msgstr "Aldoni"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:100
|
||||
#: extensions/places-menu/placeDisplay.js:217
|
||||
#: extensions/drive-menu/extension.js:103
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#, javascript-format
|
||||
#| msgid "Ejecting drive '%s' failed:"
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Elĵeto de volumo “%s” malsukcesis:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:116
|
||||
#: extensions/drive-menu/extension.js:119
|
||||
msgid "Removable devices"
|
||||
msgstr "Demeteblaj aparatoj"
|
||||
|
||||
#: extensions/drive-menu/extension.js:143
|
||||
#| msgid "Open File"
|
||||
#: extensions/drive-menu/extension.js:146
|
||||
msgid "Open Files"
|
||||
msgstr "Malfermi dosierojn"
|
||||
|
||||
@@ -119,32 +113,31 @@ msgstr ""
|
||||
"estas meti ĝin malsupre). Si vi ŝanĝas ĉi agordon tiam vi devas restartigi "
|
||||
"la ŝelon."
|
||||
|
||||
#: extensions/places-menu/extension.js:79
|
||||
#: extensions/places-menu/extension.js:83
|
||||
#: extensions/places-menu/extension.js:80
|
||||
#: extensions/places-menu/extension.js:84
|
||||
msgid "Places"
|
||||
msgstr "Lokoj"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:59
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:72
|
||||
#, javascript-format
|
||||
#| msgid "Failed to launch \"%s\""
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Malsukcesis lanĉi “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:156
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Ne eblis munti datumportilon por “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "Komputilo"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:343
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
msgid "Home"
|
||||
msgstr "Domo"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:387
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Foliumi reton"
|
||||
|
||||
@@ -153,10 +146,8 @@ msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Cikle montri ekrankopiajn grandojn"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#, fuzzy
|
||||
#| msgid "Cycle Screenshot Sizes"
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Cikle montri ekrankopiajn grandojn"
|
||||
msgstr "Montri ekrankopiajn grandojn laŭ inversa sinsekvo"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
msgid "Theme name"
|
||||
@@ -166,52 +157,47 @@ msgstr "Etosnomo"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "La nomo de la etoso, malfermigi de ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:100
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Malfermi"
|
||||
msgstr "Fermi"
|
||||
|
||||
#: extensions/window-list/extension.js:120
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Unminimize"
|
||||
msgstr "Neplejetigi"
|
||||
|
||||
#: extensions/window-list/extension.js:120
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Minimize"
|
||||
msgstr "Plejetigi"
|
||||
|
||||
#: extensions/window-list/extension.js:127
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unmaximize"
|
||||
msgstr "Nemaksimumigi"
|
||||
|
||||
#: extensions/window-list/extension.js:127
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimumigi"
|
||||
|
||||
#: extensions/window-list/extension.js:408
|
||||
#: extensions/window-list/extension.js:429
|
||||
msgid "Minimize all"
|
||||
msgstr "Plejetigi ĉiujn"
|
||||
|
||||
#: extensions/window-list/extension.js:414
|
||||
#: extensions/window-list/extension.js:435
|
||||
msgid "Unminimize all"
|
||||
msgstr "Neplejetigi ĉiujn"
|
||||
|
||||
#: extensions/window-list/extension.js:420
|
||||
#: extensions/window-list/extension.js:441
|
||||
msgid "Maximize all"
|
||||
msgstr "Maksimumigi ĉiujn"
|
||||
|
||||
#: extensions/window-list/extension.js:429
|
||||
#: extensions/window-list/extension.js:449
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Nemaksimumigi ĉiujn"
|
||||
|
||||
#: extensions/window-list/extension.js:438
|
||||
#: extensions/window-list/extension.js:457
|
||||
msgid "Close all"
|
||||
msgstr "Fermi ĉiujn"
|
||||
|
||||
#: extensions/window-list/extension.js:655
|
||||
#: extensions/workspace-indicator/extension.js:21
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Laborspaco Indikilo"
|
||||
|
||||
#: extensions/window-list/extension.js:836
|
||||
#: extensions/window-list/extension.js:737
|
||||
msgid "Window List"
|
||||
msgstr "Fenestra listo"
|
||||
|
||||
@@ -220,23 +206,27 @@ msgid "When to group windows"
|
||||
msgstr "Kiam grupigi fenestrojn"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#, fuzzy
|
||||
#| msgid ""
|
||||
#| "Decides when to group windows from the same application on the window "
|
||||
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
msgstr ""
|
||||
"Decidas kiam grupi fenestrojn de la sama aplikaĵo en la fenestra listo. "
|
||||
"Validaj valoroj estas “never” (neniam), “auto” (aŭtomate) kaj “always” "
|
||||
"(ĉiam)."
|
||||
"Validaj valoroj estas “neniam”, “aŭtomate” kaj ĉiam”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:82
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Montri la fenestrojn de ĉiuj laborspacoj"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "Ĉu montri la fenestrojn de ĉiuj laborspacoj aŭ nur de la nuna."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Montri la fenestroliston en ĉiuj ekranoj"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -263,19 +253,27 @@ msgstr "Ĉiam grupigi fenestrojn"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Montri en ĉiuj ekranoj"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:131
|
||||
#: extensions/window-list/workspaceIndicator.js:209
|
||||
#: extensions/workspace-indicator/extension.js:215
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Laborspaco Indikilo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
msgid "Workspace Names"
|
||||
msgstr "Laborspacaj nomoj"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:151
|
||||
#: extensions/workspace-indicator/prefs.js:149
|
||||
msgid "Name"
|
||||
msgstr "Nomo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:191
|
||||
#: extensions/workspace-indicator/prefs.js:189
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Laborspaco %d"
|
||||
|
||||
#~ msgid "Activities Overview"
|
||||
#~ msgstr "Aktivecoj-Superrigardon"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Kunligi modalan dialogon al la patra fenestro"
|
||||
|
||||
@@ -319,9 +317,6 @@ msgstr "Laborspaco %d"
|
||||
#~ msgid "Present windows as"
|
||||
#~ msgstr "Prezenti fenestron kiel"
|
||||
|
||||
#~ msgid "Show only windows in the current workspace"
|
||||
#~ msgstr "Montri nur fenestrojn en la aktuala laborspaco"
|
||||
|
||||
#~ msgid "Hello, world!"
|
||||
#~ msgstr "Saluton, mondo!"
|
||||
|
||||
|
||||
88
po/es.po
88
po/es.po
@@ -4,15 +4,15 @@
|
||||
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
|
||||
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
|
||||
#
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2019.
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2020.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
|
||||
"PO-Revision-Date: 2019-08-20 12:08+0200\n"
|
||||
"POT-Creation-Date: 2020-04-17 16:03+0000\n"
|
||||
"PO-Revision-Date: 2020-04-28 12:37+0200\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
|
||||
"Language: es_ES\n"
|
||||
@@ -20,7 +20,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Gtranslator 3.32.1\n"
|
||||
"X-Generator: Gtranslator 3.36.0\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -34,7 +34,7 @@ msgstr "Esta sesión inicia GNOME clásico"
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: extensions/apps-menu/extension.js:368
|
||||
#: extensions/apps-menu/extension.js:369
|
||||
msgid "Applications"
|
||||
msgstr "Aplicaciones"
|
||||
|
||||
@@ -50,39 +50,39 @@ msgstr ""
|
||||
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
|
||||
"archivo de escritorio), seguido de dos puntos y el número del área de trabajo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:60
|
||||
#: extensions/auto-move-windows/prefs.js:59
|
||||
msgid "Application"
|
||||
msgstr "Aplicación"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:71
|
||||
#: extensions/auto-move-windows/prefs.js:134
|
||||
#: extensions/auto-move-windows/prefs.js:70
|
||||
#: extensions/auto-move-windows/prefs.js:133
|
||||
msgid "Workspace"
|
||||
msgstr "Área de trabajo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:89
|
||||
#: extensions/auto-move-windows/prefs.js:88
|
||||
msgid "Add Rule"
|
||||
msgstr "Añadir regla"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:111
|
||||
#: extensions/auto-move-windows/prefs.js:110
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Crear regla de coincidencia nueva"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:117
|
||||
#: extensions/auto-move-windows/prefs.js:116
|
||||
msgid "Add"
|
||||
msgstr "Añadir"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:102
|
||||
#: extensions/places-menu/placeDisplay.js:232
|
||||
#: extensions/drive-menu/extension.js:112
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Falló al expulsar el dispositivo «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:118
|
||||
#: extensions/drive-menu/extension.js:128
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositivos extraíbles"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:155
|
||||
msgid "Open Files"
|
||||
msgstr "Abrir archivos"
|
||||
|
||||
@@ -115,8 +115,8 @@ msgstr ""
|
||||
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
|
||||
"para que tenga efecto."
|
||||
|
||||
#: extensions/places-menu/extension.js:80
|
||||
#: extensions/places-menu/extension.js:84
|
||||
#: extensions/places-menu/extension.js:89
|
||||
#: extensions/places-menu/extension.js:93
|
||||
msgid "Places"
|
||||
msgstr "Lugares"
|
||||
|
||||
@@ -135,11 +135,11 @@ msgstr "Falló al montar el volumen para «%s»"
|
||||
msgid "Computer"
|
||||
msgstr "Equipo"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:358
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
msgid "Home"
|
||||
msgstr "Carpeta personal"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:403
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Examinar la red"
|
||||
|
||||
@@ -159,47 +159,47 @@ msgstr "Nombre del tema"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: extensions/window-list/extension.js:119
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Unminimize"
|
||||
msgstr "Desminimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:119
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:126
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:126
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:431
|
||||
#: extensions/window-list/extension.js:429
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:437
|
||||
#: extensions/window-list/extension.js:435
|
||||
msgid "Unminimize all"
|
||||
msgstr "Desminimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:443
|
||||
#: extensions/window-list/extension.js:441
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:451
|
||||
#: extensions/window-list/extension.js:449
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:459
|
||||
#: extensions/window-list/extension.js:457
|
||||
msgid "Close all"
|
||||
msgstr "Cerrar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:737
|
||||
msgid "Window List"
|
||||
msgstr "Lista de ventanas"
|
||||
|
||||
@@ -216,15 +216,11 @@ msgstr ""
|
||||
"ventanas. Los valores posibles son «never», «auto» y «always»."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:82
|
||||
#| msgid "Show only windows in the current workspace"
|
||||
#: extensions/window-list/prefs.js:89
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostrar ventanas de todas las áreas de trabajo"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#| msgid ""
|
||||
#| "Whether to show the window list on all connected monitors or only on the "
|
||||
#| "primary one."
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr ""
|
||||
"Indica si se deben mostrar ventanas de todas las áreas de trabajo o sólo de "
|
||||
@@ -258,28 +254,32 @@ msgstr "Agrupar las ventanas cuando el espacio esté limitado"
|
||||
msgid "Always group windows"
|
||||
msgstr "Siempre agrupar las ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:75
|
||||
#: extensions/window-list/prefs.js:82
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostrar en todas las pantallas"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:211
|
||||
#: extensions/workspace-indicator/extension.js:216
|
||||
#: extensions/window-list/workspaceIndicator.js:209
|
||||
#: extensions/workspace-indicator/extension.js:215
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de área de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:131
|
||||
#: extensions/workspace-indicator/prefs.js:34
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nombres de los áreas de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:151
|
||||
msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:191
|
||||
#: extensions/workspace-indicator/prefs.js:67
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Área de trabajo %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:218
|
||||
#| msgid "Workspace"
|
||||
msgid "Add Workspace"
|
||||
msgstr "Añadir área de trabajo"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Nombre"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Acoplar un diálogo modal a la ventana padre"
|
||||
|
||||
|
||||
79
po/fa.po
79
po/fa.po
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
|
||||
"PO-Revision-Date: 2019-08-14 11:48+0430\n"
|
||||
"POT-Creation-Date: 2020-04-17 16:03+0000\n"
|
||||
"PO-Revision-Date: 2020-04-24 20:12+0000\n"
|
||||
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
|
||||
"Language-Team: Persian <>\n"
|
||||
"Language: fa\n"
|
||||
@@ -17,7 +17,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Generator: Poedit 2.2.1\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||
@@ -32,7 +32,7 @@ msgstr "این نشست شما را به گنوم کلاسیک وارد می
|
||||
msgid "Favorites"
|
||||
msgstr "علاقهمندیها"
|
||||
|
||||
#: extensions/apps-menu/extension.js:368
|
||||
#: extensions/apps-menu/extension.js:369
|
||||
msgid "Applications"
|
||||
msgstr "برنامهها"
|
||||
|
||||
@@ -48,39 +48,39 @@ msgstr ""
|
||||
"فهرستی از رشتهها، هرکدام حاوی شناسهی یک برنامه (نام پرونده رومیزی)، در ادامهی یک "
|
||||
"ویرگول و شمارهی فضای کاری"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:60
|
||||
#: extensions/auto-move-windows/prefs.js:59
|
||||
msgid "Application"
|
||||
msgstr "برنامه"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:71
|
||||
#: extensions/auto-move-windows/prefs.js:134
|
||||
#: extensions/auto-move-windows/prefs.js:70
|
||||
#: extensions/auto-move-windows/prefs.js:133
|
||||
msgid "Workspace"
|
||||
msgstr "فضایکاری"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:89
|
||||
#: extensions/auto-move-windows/prefs.js:88
|
||||
msgid "Add Rule"
|
||||
msgstr "افزودن قاعده"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:111
|
||||
#: extensions/auto-move-windows/prefs.js:110
|
||||
msgid "Create new matching rule"
|
||||
msgstr "افزودن یک قاعدهی منطبق جدید"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:117
|
||||
#: extensions/auto-move-windows/prefs.js:116
|
||||
msgid "Add"
|
||||
msgstr "اضافه"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:102
|
||||
#: extensions/places-menu/placeDisplay.js:232
|
||||
#: extensions/drive-menu/extension.js:112
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "بیرون دادن دیسکگردان «%s» شکست خورد:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:118
|
||||
#: extensions/drive-menu/extension.js:128
|
||||
msgid "Removable devices"
|
||||
msgstr "دستگاههای جداشدنی"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:155
|
||||
msgid "Open Files"
|
||||
msgstr "گشودن پروندهها"
|
||||
|
||||
@@ -112,7 +112,7 @@ msgstr ""
|
||||
"شل در پایین را تغییر میدهد. تغییر این گزینه، نیاز به راهاندازی مجدد شل دارد تا "
|
||||
"تاثیر بگذارد."
|
||||
|
||||
#: extensions/places-menu/extension.js:80 extensions/places-menu/extension.js:84
|
||||
#: extensions/places-menu/extension.js:89 extensions/places-menu/extension.js:93
|
||||
msgid "Places"
|
||||
msgstr "مکانها"
|
||||
|
||||
@@ -131,11 +131,11 @@ msgstr "شکست در سوار کردن حجم برای «%s»"
|
||||
msgid "Computer"
|
||||
msgstr "رایانه"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:358
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
msgid "Home"
|
||||
msgstr "خانه"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:403
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "مرور شبکه"
|
||||
|
||||
@@ -155,47 +155,47 @@ msgstr "نام تم"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "خروج"
|
||||
|
||||
#: extensions/window-list/extension.js:119
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Unminimize"
|
||||
msgstr "ناکمینه"
|
||||
|
||||
#: extensions/window-list/extension.js:119
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Minimize"
|
||||
msgstr "کمینه"
|
||||
|
||||
#: extensions/window-list/extension.js:126
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unmaximize"
|
||||
msgstr "نابیشینه"
|
||||
|
||||
#: extensions/window-list/extension.js:126
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Maximize"
|
||||
msgstr "بیشنه"
|
||||
|
||||
#: extensions/window-list/extension.js:431
|
||||
#: extensions/window-list/extension.js:429
|
||||
msgid "Minimize all"
|
||||
msgstr "کمینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:437
|
||||
#: extensions/window-list/extension.js:435
|
||||
msgid "Unminimize all"
|
||||
msgstr "ناکمینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:443
|
||||
#: extensions/window-list/extension.js:441
|
||||
msgid "Maximize all"
|
||||
msgstr "بیشینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:451
|
||||
#: extensions/window-list/extension.js:449
|
||||
msgid "Unmaximize all"
|
||||
msgstr "نابیشینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:459
|
||||
#: extensions/window-list/extension.js:457
|
||||
msgid "Close all"
|
||||
msgstr "بستن همه"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:737
|
||||
msgid "Window List"
|
||||
msgstr "فهرست پنجره"
|
||||
|
||||
@@ -212,7 +212,7 @@ msgstr ""
|
||||
"ممکن عبارتند از «never»، «auto» و «always»."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:82
|
||||
#: extensions/window-list/prefs.js:89
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "نمایش پنجرهها از تمام فضاهای کاری"
|
||||
|
||||
@@ -248,28 +248,31 @@ msgstr "پنجرهها زمانی که فضا محدود است گروه شو
|
||||
msgid "Always group windows"
|
||||
msgstr "همیشه پنجرهها گروه شوند"
|
||||
|
||||
#: extensions/window-list/prefs.js:75
|
||||
#: extensions/window-list/prefs.js:82
|
||||
msgid "Show on all monitors"
|
||||
msgstr "نمایش در تمام نمایشگرها"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:211
|
||||
#: extensions/workspace-indicator/extension.js:216
|
||||
#: extensions/window-list/workspaceIndicator.js:209
|
||||
#: extensions/workspace-indicator/extension.js:215
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "نشانگر فضایکاری"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:131
|
||||
#: extensions/workspace-indicator/prefs.js:34
|
||||
msgid "Workspace Names"
|
||||
msgstr "نامهای فضای کاری"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:151
|
||||
msgid "Name"
|
||||
msgstr "نام"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:191
|
||||
#: extensions/workspace-indicator/prefs.js:67
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "فضای کاری %Id"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:218
|
||||
msgid "Add Workspace"
|
||||
msgstr "افزودن فضایکاری"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "نام"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "اتصال محاوره modal به پنجره والد"
|
||||
|
||||
|
||||
348
po/he.po
348
po/he.po
@@ -2,104 +2,46 @@
|
||||
# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Yaron Shahrabani <sh.yaron@gmail.com>, 2011.
|
||||
# Yosef Or Boczko <yoseforb@gnome.org>, 2013, 2014.
|
||||
# Yosef Or Boczko <yoseforb@gmail.com>, 2013-2020.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2015-01-26 21:10+0200\n"
|
||||
"PO-Revision-Date: 2015-01-26 21:10+0200\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2020-03-31 07:16+0000\n"
|
||||
"PO-Revision-Date: 2020-04-01 18:20+0300\n"
|
||||
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
|
||||
"Language-Team: עברית <>\n"
|
||||
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
|
||||
"Language: he\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Gtranslator 2.91.6\n"
|
||||
"X-Generator: Gtranslator 3.36.0\n"
|
||||
|
||||
#: ../data/gnome-classic.desktop.in.h:1
|
||||
#: ../data/gnome-classic.session.desktop.in.in.h:1
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
msgstr "GNOME קלסי"
|
||||
msgstr "0GNOME קלסי"
|
||||
|
||||
#: ../data/gnome-classic.desktop.in.h:2
|
||||
#: data/gnome-classic.desktop.in:4
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "הפעלה זו מכניסה אותך למצב הקלסי של GNOME"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Attach modal dialog to the parent window"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Arrangement of buttons on the titlebar"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
msgstr ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Enable edge tiling when dropping windows on screen edges"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:6
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Workspaces only on primary monitor"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:7
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:20
|
||||
msgid "Thumbnail only"
|
||||
msgstr "תמונות ממוזערות בלבד"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:21
|
||||
msgid "Application icon only"
|
||||
msgstr "סמל היישום בלבד"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:22
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "תמונות ממוזערות וסמלי היישומים"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:38
|
||||
msgid "Present windows as"
|
||||
msgstr "הצגת החלונות בתור"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:69
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "הצגת החלונות בלבד במרחב העבודה הנוכחי"
|
||||
|
||||
#: ../extensions/apps-menu/extension.js:39
|
||||
msgid "Activities Overview"
|
||||
msgstr "סקירת פעילויות"
|
||||
|
||||
#: ../extensions/apps-menu/extension.js:114
|
||||
#: extensions/apps-menu/extension.js:113
|
||||
msgid "Favorites"
|
||||
msgstr "מועדפים"
|
||||
|
||||
#: ../extensions/apps-menu/extension.js:283
|
||||
#: extensions/apps-menu/extension.js:369
|
||||
msgid "Applications"
|
||||
msgstr "יישומים"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Application and workspace list"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -107,77 +49,49 @@ msgstr ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:60
|
||||
#: extensions/auto-move-windows/prefs.js:59
|
||||
msgid "Application"
|
||||
msgstr "יישום"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:69
|
||||
#: ../extensions/auto-move-windows/prefs.js:127
|
||||
#: extensions/auto-move-windows/prefs.js:70
|
||||
#: extensions/auto-move-windows/prefs.js:133
|
||||
msgid "Workspace"
|
||||
msgstr "מרחב עבודה"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:85
|
||||
#: extensions/auto-move-windows/prefs.js:88
|
||||
msgid "Add Rule"
|
||||
msgstr "הוספת כלל"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
#: extensions/auto-move-windows/prefs.js:110
|
||||
msgid "Create new matching rule"
|
||||
msgstr "יצירת כלל חדש תואם"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:111
|
||||
#: extensions/auto-move-windows/prefs.js:116
|
||||
msgid "Add"
|
||||
msgstr "הוספה"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:103
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive '%s' failed:"
|
||||
msgstr "שליפת הכונן „%s“ נכשלה:"
|
||||
#| msgid "Ejecting drive '%s' failed:"
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "שליפת הכונן „%s” נכשלה:"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:124
|
||||
#: extensions/drive-menu/extension.js:119
|
||||
msgid "Removable devices"
|
||||
msgstr "התקנים נתיקים"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:151
|
||||
msgid "Open File"
|
||||
msgstr "פתיחת קובץ"
|
||||
#: extensions/drive-menu/extension.js:146
|
||||
#| msgid "Open File"
|
||||
msgid "Open Files"
|
||||
msgstr "פתיחת קבצים"
|
||||
|
||||
#: ../extensions/example/extension.js:17
|
||||
msgid "Hello, world!"
|
||||
msgstr "שלום, עולם!"
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "Alternative greeting text."
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2
|
||||
msgid ""
|
||||
"If not empty, it contains the text that will be shown when clicking on the "
|
||||
"panel."
|
||||
msgstr ""
|
||||
"If not empty, it contains the text that will be shown when clicking on the "
|
||||
"panel."
|
||||
|
||||
#: ../extensions/example/prefs.js:30
|
||||
msgid "Message"
|
||||
msgstr "הודעה"
|
||||
|
||||
#. TRANSLATORS: Example is the name of the extension, should not be
|
||||
#. translated
|
||||
#: ../extensions/example/prefs.js:43
|
||||
msgid ""
|
||||
"Example aims to show how to build well behaved extensions for the Shell and "
|
||||
"as such it has little functionality on its own.\n"
|
||||
"Nevertheless it's possible to customize the greeting message."
|
||||
msgstr ""
|
||||
"הדוגמה מנסה להציג כיצד לבנות הרחבות שמתנהלות כראוי לטובת המעטפת וככאלה שיש "
|
||||
"להן תכונות קטנות משלהן.\n"
|
||||
"עם זאת, ניתן להתאים את הודעת קבלת הפנים."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Use more screen for windows"
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -187,11 +101,11 @@ msgstr ""
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
"This setting applies only with the natural placement strategy."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Place window captions on top"
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -201,115 +115,129 @@ msgstr ""
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
"restarting the shell to have any effect."
|
||||
|
||||
#: ../extensions/places-menu/extension.js:78
|
||||
#: ../extensions/places-menu/extension.js:81
|
||||
#: extensions/places-menu/extension.js:80
|
||||
#: extensions/places-menu/extension.js:84
|
||||
msgid "Places"
|
||||
msgstr "מיקומים"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:57
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#, javascript-format
|
||||
msgid "Failed to launch \"%s\""
|
||||
msgstr "הטעינה של „%s“ נכשלה"
|
||||
#| msgid "Failed to launch \"%s\""
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "שיגור „%s” נכשל"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:99
|
||||
#: ../extensions/places-menu/placeDisplay.js:122
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "ארע כשל בעיגון כרך „%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "מחשב"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:200
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
msgid "Home"
|
||||
msgstr "בית"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:287
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "עיון ברשת"
|
||||
|
||||
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Cycle Screenshot Sizes"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:214
|
||||
msgid "CPU"
|
||||
msgstr "מעבד"
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#| msgid "Cycle Screenshot Sizes"
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Cycle Screenshot Sizes Backward"
|
||||
|
||||
#: ../extensions/systemMonitor/extension.js:267
|
||||
msgid "Memory"
|
||||
msgstr "זיכרון"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
msgid "Theme name"
|
||||
msgstr "Theme name"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
|
||||
#: ../extensions/window-list/extension.js:110
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "סגירה"
|
||||
|
||||
#: ../extensions/window-list/extension.js:120
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Unminimize"
|
||||
msgstr "ביטול המזעור"
|
||||
|
||||
#: ../extensions/window-list/extension.js:121
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Minimize"
|
||||
msgstr "מזעור"
|
||||
|
||||
#: ../extensions/window-list/extension.js:127
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unmaximize"
|
||||
msgstr "ביטול ההגדלה"
|
||||
|
||||
#: ../extensions/window-list/extension.js:128
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Maximize"
|
||||
msgstr "הגדלה"
|
||||
|
||||
#: ../extensions/window-list/extension.js:390
|
||||
#: extensions/window-list/extension.js:429
|
||||
msgid "Minimize all"
|
||||
msgstr "מזעור הכל"
|
||||
|
||||
#: ../extensions/window-list/extension.js:398
|
||||
#: extensions/window-list/extension.js:435
|
||||
msgid "Unminimize all"
|
||||
msgstr "ביטול מזעור הכל"
|
||||
|
||||
#: ../extensions/window-list/extension.js:406
|
||||
#: extensions/window-list/extension.js:441
|
||||
msgid "Maximize all"
|
||||
msgstr "הגדלת הכל"
|
||||
|
||||
#: ../extensions/window-list/extension.js:415
|
||||
#: extensions/window-list/extension.js:449
|
||||
msgid "Unmaximize all"
|
||||
msgstr "ביטול הגדלת הכל"
|
||||
|
||||
#: ../extensions/window-list/extension.js:424
|
||||
#: extensions/window-list/extension.js:457
|
||||
msgid "Close all"
|
||||
msgstr "סגירת הכל"
|
||||
|
||||
#: ../extensions/window-list/extension.js:706
|
||||
#: ../extensions/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "מחוון מרחבי עבודה"
|
||||
|
||||
#: ../extensions/window-list/extension.js:870
|
||||
#: extensions/window-list/extension.js:737
|
||||
msgid "Window List"
|
||||
msgstr "רשימת חלונות"
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
msgid "When to group windows"
|
||||
msgstr "מתי לקבץ חלונות"
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#| msgid ""
|
||||
#| "Decides when to group windows from the same application on the window "
|
||||
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are \"never\", \"auto\" and \"always\"."
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
msgstr ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are \"never\", \"auto\" and \"always\"."
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:3
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:82
|
||||
#| msgid "Show only windows in the current workspace"
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "הצגת חלונות מכל מרחבי העבודה"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#| msgid ""
|
||||
#| "Whether to show the window list on all connected monitors or only on the "
|
||||
#| "primary one."
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "Whether to show windows from all workspaces or only the current one."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Show the window list on all monitors"
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:4
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -317,39 +245,117 @@ msgstr ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
|
||||
#: ../extensions/window-list/prefs.js:32
|
||||
#: extensions/window-list/prefs.js:25
|
||||
msgid "Window Grouping"
|
||||
msgstr "קיבוץ חלונות"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:50
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Never group windows"
|
||||
msgstr "לעולם לא לקבץ חלונות"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:51
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "קיבוץ חלונות כאשר המקום מוגבל"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:52
|
||||
#: extensions/window-list/prefs.js:49
|
||||
msgid "Always group windows"
|
||||
msgstr "תמיד לקבץ חלונות"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:75
|
||||
#: extensions/window-list/prefs.js:75
|
||||
msgid "Show on all monitors"
|
||||
msgstr "הצגה בכל הצגים"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:141
|
||||
#: extensions/window-list/workspaceIndicator.js:209
|
||||
#: extensions/workspace-indicator/extension.js:215
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "מחוון מרחבי עבודה"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
msgid "Workspace Names"
|
||||
msgstr "שם מרחב העבודה"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:157
|
||||
#: extensions/workspace-indicator/prefs.js:149
|
||||
msgid "Name"
|
||||
msgstr "שם"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:198
|
||||
#: extensions/workspace-indicator/prefs.js:189
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "מרחב עבודה %d"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Attach modal dialog to the parent window"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
|
||||
#~ msgid "Arrangement of buttons on the titlebar"
|
||||
#~ msgstr "Arrangement of buttons on the titlebar"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||
#~ "running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||
#~ "running GNOME Shell."
|
||||
|
||||
#~ msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
#~ msgstr "Enable edge tiling when dropping windows on screen edges"
|
||||
|
||||
#~ msgid "Workspaces only on primary monitor"
|
||||
#~ msgstr "Workspaces only on primary monitor"
|
||||
|
||||
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
#~ msgstr "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
|
||||
#~ msgid "Thumbnail only"
|
||||
#~ msgstr "תמונות ממוזערות בלבד"
|
||||
|
||||
#~ msgid "Application icon only"
|
||||
#~ msgstr "סמל היישום בלבד"
|
||||
|
||||
#~ msgid "Thumbnail and application icon"
|
||||
#~ msgstr "תמונות ממוזערות וסמלי היישומים"
|
||||
|
||||
#~ msgid "Present windows as"
|
||||
#~ msgstr "הצגת החלונות בתור"
|
||||
|
||||
#~ msgid "Activities Overview"
|
||||
#~ msgstr "סקירת פעילויות"
|
||||
|
||||
#~ msgid "Hello, world!"
|
||||
#~ msgstr "שלום, עולם!"
|
||||
|
||||
#~ msgid "Alternative greeting text."
|
||||
#~ msgstr "Alternative greeting text."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr ""
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
|
||||
#~ msgid "Message"
|
||||
#~ msgstr "הודעה"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Example aims to show how to build well behaved extensions for the Shell "
|
||||
#~ "and as such it has little functionality on its own.\n"
|
||||
#~ "Nevertheless it's possible to customize the greeting message."
|
||||
#~ msgstr ""
|
||||
#~ "הדוגמה מנסה להציג כיצד לבנות הרחבות שמתנהלות כראוי לטובת המעטפת וככאלה "
|
||||
#~ "שיש להן תכונות קטנות משלהן.\n"
|
||||
#~ "עם זאת, ניתן להתאים את הודעת קבלת הפנים."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "מעבד"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "זיכרון"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "מעטפת GNOME קלסית"
|
||||
|
||||
|
||||
85
po/sv.po
85
po/sv.po
@@ -1,24 +1,24 @@
|
||||
# Swedish translation for gnome-shell-extensions.
|
||||
# Copyright © 2011, 2012, 2014, 2015, 2017, 2019 Free Software Foundation, Inc.
|
||||
# Copyright © 2011, 2012, 2014, 2015, 2017, 2019, 2020 Free Software Foundation, Inc.
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Daniel Nylander <po@danielnylander.se>, 2011, 2012.
|
||||
# Mattias Eriksson <snaggen@gmail.com>, 2014.
|
||||
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017, 2019.
|
||||
# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2015, 2017, 2019, 2020.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
|
||||
"PO-Revision-Date: 2019-08-12 21:30+0200\n"
|
||||
"POT-Creation-Date: 2020-04-17 16:03+0000\n"
|
||||
"PO-Revision-Date: 2020-04-26 20:51+0200\n"
|
||||
"Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n"
|
||||
"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
|
||||
"Language: sv\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 2.2.3\n"
|
||||
"X-Generator: Poedit 2.3\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -32,7 +32,7 @@ msgstr "Denna session loggar in dig till GNOME Klassisk"
|
||||
msgid "Favorites"
|
||||
msgstr "Favoriter"
|
||||
|
||||
#: extensions/apps-menu/extension.js:368
|
||||
#: extensions/apps-menu/extension.js:369
|
||||
msgid "Applications"
|
||||
msgstr "Program"
|
||||
|
||||
@@ -48,39 +48,39 @@ msgstr ""
|
||||
"En lista över strängar, var och en innehållande ett program-id "
|
||||
"(skrivbordsfilnamn), följt av ett kolontecken och arbetsytans nummer"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:60
|
||||
#: extensions/auto-move-windows/prefs.js:59
|
||||
msgid "Application"
|
||||
msgstr "Program"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:71
|
||||
#: extensions/auto-move-windows/prefs.js:134
|
||||
#: extensions/auto-move-windows/prefs.js:70
|
||||
#: extensions/auto-move-windows/prefs.js:133
|
||||
msgid "Workspace"
|
||||
msgstr "Arbetsyta"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:89
|
||||
#: extensions/auto-move-windows/prefs.js:88
|
||||
msgid "Add Rule"
|
||||
msgstr "Lägg till regel"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:111
|
||||
#: extensions/auto-move-windows/prefs.js:110
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Skapa ny matchande regel"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:117
|
||||
#: extensions/auto-move-windows/prefs.js:116
|
||||
msgid "Add"
|
||||
msgstr "Lägg till"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:102
|
||||
#: extensions/places-menu/placeDisplay.js:232
|
||||
#: extensions/drive-menu/extension.js:112
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Utmatning av disk ”%s” misslyckades:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:118
|
||||
#: extensions/drive-menu/extension.js:128
|
||||
msgid "Removable devices"
|
||||
msgstr "Flyttbara enheter"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:155
|
||||
msgid "Open Files"
|
||||
msgstr "Öppna filer"
|
||||
|
||||
@@ -113,8 +113,8 @@ msgstr ""
|
||||
"skalets standardplacering under miniatyrbilden. För att ändra denna "
|
||||
"inställning krävs att skalet startas om för att den ska få effekt."
|
||||
|
||||
#: extensions/places-menu/extension.js:80
|
||||
#: extensions/places-menu/extension.js:84
|
||||
#: extensions/places-menu/extension.js:89
|
||||
#: extensions/places-menu/extension.js:93
|
||||
msgid "Places"
|
||||
msgstr "Platser"
|
||||
|
||||
@@ -133,11 +133,11 @@ msgstr "Misslyckades med att montera volym för ”%s”"
|
||||
msgid "Computer"
|
||||
msgstr "Dator"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:358
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
msgid "Home"
|
||||
msgstr "Hem"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:403
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Bläddra i nätverket"
|
||||
|
||||
@@ -157,47 +157,47 @@ msgstr "Temanamn"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Namnet på temat, kommer att läsas in från ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Stäng"
|
||||
|
||||
#: extensions/window-list/extension.js:119
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Unminimize"
|
||||
msgstr "Avminimera"
|
||||
|
||||
#: extensions/window-list/extension.js:119
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Minimize"
|
||||
msgstr "Minimera"
|
||||
|
||||
#: extensions/window-list/extension.js:126
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unmaximize"
|
||||
msgstr "Avmaximera"
|
||||
|
||||
#: extensions/window-list/extension.js:126
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Maximize"
|
||||
msgstr "Maximera"
|
||||
|
||||
#: extensions/window-list/extension.js:431
|
||||
#: extensions/window-list/extension.js:429
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimera alla"
|
||||
|
||||
#: extensions/window-list/extension.js:437
|
||||
#: extensions/window-list/extension.js:435
|
||||
msgid "Unminimize all"
|
||||
msgstr "Avminimera alla"
|
||||
|
||||
#: extensions/window-list/extension.js:443
|
||||
#: extensions/window-list/extension.js:441
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximera alla"
|
||||
|
||||
#: extensions/window-list/extension.js:451
|
||||
#: extensions/window-list/extension.js:449
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Avmaximera alla"
|
||||
|
||||
#: extensions/window-list/extension.js:459
|
||||
#: extensions/window-list/extension.js:457
|
||||
msgid "Close all"
|
||||
msgstr "Stäng alla"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:737
|
||||
msgid "Window List"
|
||||
msgstr "Fönsterlista"
|
||||
|
||||
@@ -214,7 +214,7 @@ msgstr ""
|
||||
"värden är ”never” (aldrig), ”auto” och ”always” (alltid)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:82
|
||||
#: extensions/window-list/prefs.js:89
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Visa fönster från alla arbetsytor"
|
||||
|
||||
@@ -251,28 +251,31 @@ msgstr "Gruppera fönster när utrymmet är begränsat"
|
||||
msgid "Always group windows"
|
||||
msgstr "Gruppera alltid fönster"
|
||||
|
||||
#: extensions/window-list/prefs.js:75
|
||||
#: extensions/window-list/prefs.js:82
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Visa på alla skärmar"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:211
|
||||
#: extensions/workspace-indicator/extension.js:216
|
||||
#: extensions/window-list/workspaceIndicator.js:209
|
||||
#: extensions/workspace-indicator/extension.js:215
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbetsyteindikator"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:131
|
||||
#: extensions/workspace-indicator/prefs.js:34
|
||||
msgid "Workspace Names"
|
||||
msgstr "Namn på arbetsytor"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:151
|
||||
msgid "Name"
|
||||
msgstr "Namn"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:191
|
||||
#: extensions/workspace-indicator/prefs.js:67
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbetsyta %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:218
|
||||
msgid "Add Workspace"
|
||||
msgstr "Lägg till arbetsyta"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Namn"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Koppla samman modal dialog till föräldrafönstret"
|
||||
|
||||
|
||||
329
po/uk.po
329
po/uk.po
@@ -3,95 +3,47 @@
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Alexandr Toorchyn <ilex@mail.ua>, 2011.
|
||||
# Daniel Korostil <ted.korostiled@gmail.com>, 2013, 2014, 2015, 2017.
|
||||
# vikaig <vikaig99@gmail.com>, 2019.
|
||||
# Yuri Chornoivan <yurchor@ukr.net>, 2020.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
||||
"shell&keywords=I18N+L10N&component=extensions\n"
|
||||
"POT-Creation-Date: 2017-02-20 13:55+0200\n"
|
||||
"PO-Revision-Date: 2017-02-20 13:56+0300\n"
|
||||
"Last-Translator: Daniel Korostil <ted.korostiled@gmail.com>\n"
|
||||
"Language-Team: linux.org.ua\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
|
||||
"sues\n"
|
||||
"POT-Creation-Date: 2020-04-17 16:03+0000\n"
|
||||
"PO-Revision-Date: 2020-04-25 10:58+0300\n"
|
||||
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
|
||||
"Language-Team: Ukrainian <kde-i18n-uk@kde.org>\n"
|
||||
"Language: uk\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Virtaal 0.7.1\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: Lokalize 20.07.70\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.h:1
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "Приєднати модальне вікно до батьківського вікна"
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
msgstr "Класичний GNOME"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.h:2
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr ""
|
||||
"Цей ключ нехтує ключем у org.gnome.mutter, коли запущено оболонку GNOME."
|
||||
#: data/gnome-classic.desktop.in:4
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Це — сеанс входу в класичний GNOME"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.h:3
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "Компонування кнопок на смужці заголовку"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.h:4
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
msgstr ""
|
||||
"Цей ключ нехтує ключем у org.gnome.desktop.wm.preferences, коли запущено "
|
||||
"GNOME Shell."
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.h:5
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "Увімкнути розбиття країв, коли кладуться вікна на краї екрана"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.h:6
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "Робочий простір лише на основному моніторі"
|
||||
|
||||
#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.h:7
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "Затримувати зміни фокусу миші, поки вказівник не перестане рухатись"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:20
|
||||
msgid "Thumbnail only"
|
||||
msgstr "Тільки мініатюри"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:21
|
||||
msgid "Application icon only"
|
||||
msgstr "Тільки піктограми програми"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:22
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "Мініатюри та піктограми програм"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:38
|
||||
msgid "Present windows as"
|
||||
msgstr "Представляти вікна як"
|
||||
|
||||
#: ../extensions/alternate-tab/prefs.js:69
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "Показувати вікна тільки з поточного робочого простору"
|
||||
|
||||
#: ../extensions/apps-menu/extension.js:38
|
||||
msgid "Activities Overview"
|
||||
msgstr "Огляд діяльності"
|
||||
|
||||
#: ../extensions/apps-menu/extension.js:109
|
||||
#: extensions/apps-menu/extension.js:113
|
||||
msgid "Favorites"
|
||||
msgstr "Улюблене"
|
||||
|
||||
#: ../extensions/apps-menu/extension.js:266
|
||||
#: extensions/apps-menu/extension.js:369
|
||||
msgid "Applications"
|
||||
msgstr "Програми"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.h:1
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Програма і список робочих просторів"
|
||||
|
||||
#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.h:2
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -99,77 +51,47 @@ msgstr ""
|
||||
"Список рядків, що містять ідентифікатор програми (назва файла стільниці),"
|
||||
"двокрапка і номер робочого простору"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:60
|
||||
#: extensions/auto-move-windows/prefs.js:59
|
||||
msgid "Application"
|
||||
msgstr "Програма"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:69
|
||||
#: ../extensions/auto-move-windows/prefs.js:127
|
||||
#: extensions/auto-move-windows/prefs.js:70
|
||||
#: extensions/auto-move-windows/prefs.js:133
|
||||
msgid "Workspace"
|
||||
msgstr "Робочий простір"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:85
|
||||
#: extensions/auto-move-windows/prefs.js:88
|
||||
msgid "Add Rule"
|
||||
msgstr "Додати правило"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:106
|
||||
#: extensions/auto-move-windows/prefs.js:110
|
||||
msgid "Create new matching rule"
|
||||
msgstr "Створити нове відповідне правило"
|
||||
|
||||
#: ../extensions/auto-move-windows/prefs.js:111
|
||||
#: extensions/auto-move-windows/prefs.js:116
|
||||
msgid "Add"
|
||||
msgstr "Додати"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:106
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:112
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Не вдалося витягнути пристрій «%s»:"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:124
|
||||
#: extensions/drive-menu/extension.js:128
|
||||
msgid "Removable devices"
|
||||
msgstr "Змінні пристрої"
|
||||
|
||||
#: ../extensions/drive-menu/extension.js:149
|
||||
msgid "Open File"
|
||||
msgstr "Відкрити Файли"
|
||||
#: extensions/drive-menu/extension.js:155
|
||||
msgid "Open Files"
|
||||
msgstr "Відкрити файли"
|
||||
|
||||
#: ../extensions/example/extension.js:17
|
||||
msgid "Hello, world!"
|
||||
msgstr "Привіт, світе!"
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.h:1
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "Додатковий вітальний текст."
|
||||
|
||||
#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.h:2
|
||||
msgid ""
|
||||
"If not empty, it contains the text that will be shown when clicking on the "
|
||||
"panel."
|
||||
msgstr ""
|
||||
"Якщо це поле не порожнє, воно містить текст, який буде показуватись, коли "
|
||||
"натискаєте на панель."
|
||||
|
||||
#: ../extensions/example/prefs.js:30
|
||||
msgid "Message"
|
||||
msgstr "Надпис"
|
||||
|
||||
#. TRANSLATORS: Example is the name of the extension, should not be
|
||||
#. translated
|
||||
#: ../extensions/example/prefs.js:43
|
||||
msgid ""
|
||||
"Example aims to show how to build well behaved extensions for the Shell and "
|
||||
"as such it has little functionality on its own.\n"
|
||||
"Nevertheless it’s possible to customize the greeting message."
|
||||
msgstr ""
|
||||
"Приклад зроблено, щоб показувати, як зібрати правильні розширення для "
|
||||
"оболонки і саме по собі воно не має багато функціональності.\n"
|
||||
"Попри це, воно змінює вітальний текст. "
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.h:1
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Використовувати додаткову площу екрана для вікон"
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.h:2
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
@@ -180,11 +102,11 @@ msgstr ""
|
||||
"розмірів обмежувальної рамки. Цей параметр застосовується тільки для "
|
||||
"алгоритму розміщенням мініатюр «natural»."
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.h:3
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Розміщувати заголовки вікон зверху"
|
||||
|
||||
#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.h:4
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -194,95 +116,99 @@ msgstr ""
|
||||
"в нижній, як це робиться типово. Зміна цього параметра вимагає перезапуску "
|
||||
"оболонки, щоб зміна вступила в силу."
|
||||
|
||||
#: ../extensions/places-menu/extension.js:78
|
||||
#: ../extensions/places-menu/extension.js:81
|
||||
#: extensions/places-menu/extension.js:89
|
||||
#: extensions/places-menu/extension.js:93
|
||||
msgid "Places"
|
||||
msgstr "Місця"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:59
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Не вдалося запустити «%s»"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:101
|
||||
#: ../extensions/places-menu/placeDisplay.js:124
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Не вдалося змонтувати том до «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "Комп'ютер"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:267
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
msgid "Home"
|
||||
msgstr "Домівка"
|
||||
|
||||
#: ../extensions/places-menu/placeDisplay.js:311
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Огляд мережі"
|
||||
|
||||
#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.h:1
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Розміри циклічних знімків"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.h:1
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Змінювати розміри циклічних знімків в зворотному напрямку"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
msgid "Theme name"
|
||||
msgstr "Назва теми"
|
||||
|
||||
#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.h:2
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Назва теми, що завантажується з ~/.themes/name/gnome-shell"
|
||||
|
||||
#: ../extensions/window-list/extension.js:110
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Закрити"
|
||||
|
||||
#: ../extensions/window-list/extension.js:120
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Unminimize"
|
||||
msgstr "Відновити згорнуте"
|
||||
|
||||
#: ../extensions/window-list/extension.js:121
|
||||
#: extensions/window-list/extension.js:118
|
||||
msgid "Minimize"
|
||||
msgstr "Згорнути"
|
||||
|
||||
#: ../extensions/window-list/extension.js:127
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unmaximize"
|
||||
msgstr "Відновити розгорнуте"
|
||||
|
||||
#: ../extensions/window-list/extension.js:128
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Maximize"
|
||||
msgstr "Розгорнути"
|
||||
|
||||
#: ../extensions/window-list/extension.js:411
|
||||
#: extensions/window-list/extension.js:429
|
||||
msgid "Minimize all"
|
||||
msgstr "Згорнути все"
|
||||
|
||||
#: ../extensions/window-list/extension.js:419
|
||||
#: extensions/window-list/extension.js:435
|
||||
msgid "Unminimize all"
|
||||
msgstr "Відновити все згорнуте"
|
||||
|
||||
#: ../extensions/window-list/extension.js:427
|
||||
#: extensions/window-list/extension.js:441
|
||||
msgid "Maximize all"
|
||||
msgstr "Розгорнути все"
|
||||
|
||||
#: ../extensions/window-list/extension.js:436
|
||||
#: extensions/window-list/extension.js:449
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Відновити все розгорнуте"
|
||||
|
||||
#: ../extensions/window-list/extension.js:445
|
||||
#: extensions/window-list/extension.js:457
|
||||
msgid "Close all"
|
||||
msgstr "Закрити все"
|
||||
|
||||
#: ../extensions/window-list/extension.js:669
|
||||
#: ../extensions/workspace-indicator/extension.js:30
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Покажчик робочого простору"
|
||||
|
||||
#: ../extensions/window-list/extension.js:833
|
||||
#: extensions/window-list/extension.js:737
|
||||
msgid "Window List"
|
||||
msgstr "Перелік вікон"
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.h:1
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
msgid "When to group windows"
|
||||
msgstr "Умови групування вікон"
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.h:2
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -290,11 +216,20 @@ msgstr ""
|
||||
"Визначає правила групування вікон програм у списку вікон. Можливими "
|
||||
"значеннями є «never», «auto» і «always»."
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.h:3
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:89
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Показувати вікна з усіх робочих просторів"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "Чи показувати вікна з усіх робочих просторів або тільки з поточного."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Показати перелік вікон на всіх моніторах"
|
||||
|
||||
#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.h:4
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -302,44 +237,114 @@ msgstr ""
|
||||
"Чи показувати переліку вікон на всіх під'єднаних моніторах, чи тільки на "
|
||||
"основному."
|
||||
|
||||
#: ../extensions/window-list/prefs.js:32
|
||||
#: extensions/window-list/prefs.js:25
|
||||
msgid "Window Grouping"
|
||||
msgstr "Групування вікон"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:50
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Never group windows"
|
||||
msgstr "ніколи не групувати вікна"
|
||||
msgstr "Ніколи не групувати вікна"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:51
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Групувати вікна коли простір обмежено"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:52
|
||||
#: extensions/window-list/prefs.js:49
|
||||
msgid "Always group windows"
|
||||
msgstr "Завжди групувати вікна"
|
||||
|
||||
#: ../extensions/window-list/prefs.js:75
|
||||
#: extensions/window-list/prefs.js:82
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Показувати на всіх моніторах"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:141
|
||||
#: extensions/window-list/workspaceIndicator.js:209
|
||||
#: extensions/workspace-indicator/extension.js:215
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Покажчик робочого простору"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:34
|
||||
msgid "Workspace Names"
|
||||
msgstr "Назви робочих просторів"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:157
|
||||
msgid "Name"
|
||||
msgstr "Назва"
|
||||
|
||||
#: ../extensions/workspace-indicator/prefs.js:198
|
||||
#: extensions/workspace-indicator/prefs.js:67
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Робочий простір %d"
|
||||
|
||||
#~ msgid "GNOME Classic"
|
||||
#~ msgstr "Класичний GNOME"
|
||||
#: extensions/workspace-indicator/prefs.js:218
|
||||
#| msgid "Workspace"
|
||||
msgid "Add Workspace"
|
||||
msgstr "Додати робочий простір"
|
||||
|
||||
#~ msgid "This session logs you into GNOME Classic"
|
||||
#~ msgstr "Це — сеанс входу в класичний GNOME"
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Назва"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Приєднати модальне вікно до батьківського вікна"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "Цей ключ нехтує ключем у org.gnome.mutter, коли запущено оболонку GNOME."
|
||||
|
||||
#~ msgid "Arrangement of buttons on the titlebar"
|
||||
#~ msgstr "Компонування кнопок на смужці заголовку"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||
#~ "running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "Цей ключ нехтує ключем у org.gnome.desktop.wm.preferences, коли запущено "
|
||||
#~ "GNOME Shell."
|
||||
|
||||
#~ msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
#~ msgstr "Увімкнути розбиття країв, коли кладуться вікна на краї екрана"
|
||||
|
||||
#~ msgid "Workspaces only on primary monitor"
|
||||
#~ msgstr "Робочий простір лише на основному моніторі"
|
||||
|
||||
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
#~ msgstr "Затримувати зміни фокусу миші, поки вказівник не перестане рухатись"
|
||||
|
||||
#~ msgid "Thumbnail only"
|
||||
#~ msgstr "Тільки мініатюри"
|
||||
|
||||
#~ msgid "Application icon only"
|
||||
#~ msgstr "Тільки піктограми програми"
|
||||
|
||||
#~ msgid "Thumbnail and application icon"
|
||||
#~ msgstr "Мініатюри та піктограми програм"
|
||||
|
||||
#~ msgid "Present windows as"
|
||||
#~ msgstr "Представляти вікна як"
|
||||
|
||||
#~ msgid "Activities Overview"
|
||||
#~ msgstr "Огляд діяльності"
|
||||
|
||||
#~ msgid "Hello, world!"
|
||||
#~ msgstr "Привіт, світе!"
|
||||
|
||||
#~ msgid "Alternative greeting text."
|
||||
#~ msgstr "Додатковий вітальний текст."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr ""
|
||||
#~ "Якщо це поле не порожнє, воно містить текст, який буде показуватись, коли "
|
||||
#~ "натискаєте на панель."
|
||||
|
||||
#~ msgid "Message"
|
||||
#~ msgstr "Надпис"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Example aims to show how to build well behaved extensions for the Shell "
|
||||
#~ "and as such it has little functionality on its own.\n"
|
||||
#~ "Nevertheless it’s possible to customize the greeting message."
|
||||
#~ msgstr ""
|
||||
#~ "Приклад зроблено, щоб показувати, як зібрати правильні розширення для "
|
||||
#~ "оболонки і саме по собі воно не має багато функціональності.\n"
|
||||
#~ "Попри це, воно змінює вітальний текст. "
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "Процесор"
|
||||
|
||||
266
po/zh_CN.po
266
po/zh_CN.po
@@ -1,26 +1,27 @@
|
||||
# Chinese (China) translation for gnome-shell-extensions.
|
||||
# Copyright (C) 2011 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2011-2019 gnome-shell-extensions's authors and contributors
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Wylmer Wang <wantinghard@gmail.com>, 2011.
|
||||
# Aron Xu <aronxu@gnome.org>, 2011.
|
||||
# tuhaihe <1132321739qq@gmail.com>, 2012, 2013.
|
||||
# 甘露(Gan Lu) <rhythm.gan@gmail.com>, 2013.
|
||||
# Mingcong Bai <jeffbai@aosc.xyz>, 2017.
|
||||
# Dingzhong Chen <wsxy162@gmail.com>, 2019.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2018-01-18 12:15+0000\n"
|
||||
"PO-Revision-Date: 2017-08-18 21:26+0800\n"
|
||||
"Last-Translator: Mingcong Bai <jeffbai@aosc.xyz>\n"
|
||||
"POT-Creation-Date: 2019-08-09 22:24+0000\n"
|
||||
"PO-Revision-Date: 2019-09-10 02:34+0800\n"
|
||||
"Last-Translator: Dingzhong Chen <wsxy162@gmail.com>\n"
|
||||
"Language-Team: Chinese (China) <i18n-zh@googlegroups.com>\n"
|
||||
"Language: zh_CN\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: Gtranslator 3.32.1\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||
@@ -31,70 +32,11 @@ msgstr "GNOME 经典模式"
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "该会话将登录到“GNOME 经典模式”"
|
||||
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
|
||||
msgid "Attach modal dialog to the parent window"
|
||||
msgstr "将模式对话框附着到父窗口"
|
||||
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
msgstr "当运行 GNOME Shell 时该键会覆盖 org.gnome.mutter 中的键。"
|
||||
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
|
||||
msgid "Arrangement of buttons on the titlebar"
|
||||
msgstr "标题栏上按钮的排列"
|
||||
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17
|
||||
msgid ""
|
||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
"GNOME Shell."
|
||||
msgstr ""
|
||||
"当运行 GNOME Shell 时该键会覆盖 org.gnome.desktop.wm.preferences 中的键。"
|
||||
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
|
||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
msgstr "启用将窗口拖拽到屏幕边缘时平铺显示的功能"
|
||||
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
|
||||
msgid "Workspaces only on primary monitor"
|
||||
msgstr "仅在主显示器上显示工作区"
|
||||
|
||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
|
||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
msgstr "将鼠标模式下焦点的切换推迟到光标停止移动之后"
|
||||
|
||||
#: extensions/alternate-tab/prefs.js:19
|
||||
msgid "Thumbnail only"
|
||||
msgstr "仅缩略图"
|
||||
|
||||
#: extensions/alternate-tab/prefs.js:20
|
||||
msgid "Application icon only"
|
||||
msgstr "仅应用程序图标"
|
||||
|
||||
#: extensions/alternate-tab/prefs.js:21
|
||||
msgid "Thumbnail and application icon"
|
||||
msgstr "缩略图和应用程序图标"
|
||||
|
||||
#: extensions/alternate-tab/prefs.js:34
|
||||
msgid "Present windows as"
|
||||
msgstr "窗口展现为"
|
||||
|
||||
#: extensions/alternate-tab/prefs.js:65
|
||||
msgid "Show only windows in the current workspace"
|
||||
msgstr "仅显示当前工作区中的窗口"
|
||||
|
||||
#: extensions/apps-menu/extension.js:37
|
||||
msgid "Activities Overview"
|
||||
msgstr "活动概览"
|
||||
|
||||
#: extensions/apps-menu/extension.js:130
|
||||
#: extensions/apps-menu/extension.js:113
|
||||
msgid "Favorites"
|
||||
msgstr "收藏"
|
||||
|
||||
#: extensions/apps-menu/extension.js:417
|
||||
#: extensions/apps-menu/extension.js:368
|
||||
msgid "Applications"
|
||||
msgstr "应用程序"
|
||||
|
||||
@@ -109,30 +51,30 @@ msgid ""
|
||||
msgstr ""
|
||||
"一系列字符串,每个字符串包含一个应用程序标识(桌面文件名称)、冒号加工作区号"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:53
|
||||
#: extensions/auto-move-windows/prefs.js:60
|
||||
msgid "Application"
|
||||
msgstr "应用程序"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:62
|
||||
#: extensions/auto-move-windows/prefs.js:117
|
||||
#: extensions/auto-move-windows/prefs.js:71
|
||||
#: extensions/auto-move-windows/prefs.js:134
|
||||
msgid "Workspace"
|
||||
msgstr "工作区"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:78
|
||||
#: extensions/auto-move-windows/prefs.js:89
|
||||
msgid "Add Rule"
|
||||
msgstr "添加规则"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:98
|
||||
#: extensions/auto-move-windows/prefs.js:111
|
||||
msgid "Create new matching rule"
|
||||
msgstr "创建新的匹配规则"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:103
|
||||
#: extensions/auto-move-windows/prefs.js:117
|
||||
msgid "Add"
|
||||
msgstr "添加"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:103
|
||||
#: extensions/places-menu/placeDisplay.js:219
|
||||
#: extensions/drive-menu/extension.js:102
|
||||
#: extensions/places-menu/placeDisplay.js:232
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "弹出驱动器“%s”失败:"
|
||||
@@ -141,39 +83,10 @@ msgstr "弹出驱动器“%s”失败:"
|
||||
msgid "Removable devices"
|
||||
msgstr "可移动设备"
|
||||
|
||||
#: extensions/drive-menu/extension.js:143
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
msgid "Open Files"
|
||||
msgstr "打开文件"
|
||||
|
||||
#: extensions/example/extension.js:17
|
||||
msgid "Hello, world!"
|
||||
msgstr "Hello, world!"
|
||||
|
||||
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
|
||||
msgid "Alternative greeting text."
|
||||
msgstr "替代的祝福语。"
|
||||
|
||||
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6
|
||||
msgid ""
|
||||
"If not empty, it contains the text that will be shown when clicking on the "
|
||||
"panel."
|
||||
msgstr "如果不为空,所包含的文本会在点击面板时显示。"
|
||||
|
||||
#: extensions/example/prefs.js:27
|
||||
msgid "Message"
|
||||
msgstr "消息"
|
||||
|
||||
#. TRANSLATORS: Example is the name of the extension, should not be
|
||||
#. translated
|
||||
#: extensions/example/prefs.js:40
|
||||
msgid ""
|
||||
"Example aims to show how to build well behaved extensions for the Shell and "
|
||||
"as such it has little functionality on its own.\n"
|
||||
"Nevertheless it’s possible to customize the greeting message."
|
||||
msgstr ""
|
||||
"示例意在展示如何为 Shell 创建良好工作的扩展,本身功能有限。\n"
|
||||
"尽管如此,它还是具备定制祝福语的功能。"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "展现窗口时利用更多屏幕空间"
|
||||
@@ -200,31 +113,31 @@ msgstr ""
|
||||
"如果设置为 true,则将窗口说明文字放置在对应窗口的缩略图上方,而不是默认的下"
|
||||
"方。修改此设置需要重启 GNOME Shell 以使设置生效。"
|
||||
|
||||
#: extensions/places-menu/extension.js:79
|
||||
#: extensions/places-menu/extension.js:82
|
||||
#: extensions/places-menu/extension.js:80
|
||||
#: extensions/places-menu/extension.js:84
|
||||
msgid "Places"
|
||||
msgstr "位置"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:66
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "无法为“%s”挂载卷"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:79
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "无法启动“%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "无法为“%s”挂载卷"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "计算机"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:336
|
||||
#: extensions/places-menu/placeDisplay.js:358
|
||||
msgid "Home"
|
||||
msgstr "主文件夹"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
#: extensions/places-menu/placeDisplay.js:403
|
||||
msgid "Browse Network"
|
||||
msgstr "浏览网络"
|
||||
|
||||
@@ -244,52 +157,47 @@ msgstr "主题名称"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "从 ~/.themes/name/gnome-shell 加载的主题名称"
|
||||
|
||||
#: extensions/window-list/extension.js:106
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Close"
|
||||
msgstr "关闭"
|
||||
|
||||
#: extensions/window-list/extension.js:125
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Unminimize"
|
||||
msgstr "取消最小化"
|
||||
|
||||
#: extensions/window-list/extension.js:126
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Minimize"
|
||||
msgstr "最小化"
|
||||
|
||||
#: extensions/window-list/extension.js:132
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Unmaximize"
|
||||
msgstr "取消最大化"
|
||||
|
||||
#: extensions/window-list/extension.js:133
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Maximize"
|
||||
msgstr "最大化"
|
||||
|
||||
#: extensions/window-list/extension.js:408
|
||||
#: extensions/window-list/extension.js:431
|
||||
msgid "Minimize all"
|
||||
msgstr "全部最小化"
|
||||
|
||||
#: extensions/window-list/extension.js:414
|
||||
#: extensions/window-list/extension.js:437
|
||||
msgid "Unminimize all"
|
||||
msgstr "全部取消最小化"
|
||||
|
||||
#: extensions/window-list/extension.js:420
|
||||
#: extensions/window-list/extension.js:443
|
||||
msgid "Maximize all"
|
||||
msgstr "全部最大化"
|
||||
|
||||
#: extensions/window-list/extension.js:429
|
||||
#: extensions/window-list/extension.js:451
|
||||
msgid "Unmaximize all"
|
||||
msgstr "全部取消最大化"
|
||||
|
||||
#: extensions/window-list/extension.js:438
|
||||
#: extensions/window-list/extension.js:459
|
||||
msgid "Close all"
|
||||
msgstr "全部关闭"
|
||||
|
||||
#: extensions/window-list/extension.js:646
|
||||
#: extensions/workspace-indicator/extension.js:26
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "工作区指示器"
|
||||
|
||||
#: extensions/window-list/extension.js:811
|
||||
#: extensions/window-list/extension.js:741
|
||||
msgid "Window List"
|
||||
msgstr "窗口列表"
|
||||
|
||||
@@ -306,48 +214,124 @@ msgstr ""
|
||||
"不)、“auto”(自动)和“always”(总是)。"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:82
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "显示所有工作区中的窗口"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "显示所有工作区中的窗口还是只显示当前工作区中的。"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "在所有显示器上显示窗口列表"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
msgstr "是否在所有连接的显示器上显示窗口列表或仅在主显示器上显示。"
|
||||
|
||||
#: extensions/window-list/prefs.js:28
|
||||
#: extensions/window-list/prefs.js:25
|
||||
msgid "Window Grouping"
|
||||
msgstr "窗口分组"
|
||||
|
||||
#: extensions/window-list/prefs.js:46
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Never group windows"
|
||||
msgstr "从不将窗口分组"
|
||||
|
||||
#: extensions/window-list/prefs.js:47
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "当空间有限时将窗口分组"
|
||||
|
||||
#: extensions/window-list/prefs.js:48
|
||||
#: extensions/window-list/prefs.js:49
|
||||
msgid "Always group windows"
|
||||
msgstr "总是对窗口分组"
|
||||
|
||||
#: extensions/window-list/prefs.js:71
|
||||
#: extensions/window-list/prefs.js:75
|
||||
msgid "Show on all monitors"
|
||||
msgstr "在所有显示器上显示"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:134
|
||||
#: extensions/window-list/workspaceIndicator.js:211
|
||||
#: extensions/workspace-indicator/extension.js:216
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "工作区指示器"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:131
|
||||
msgid "Workspace Names"
|
||||
msgstr "工作区名称"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:150
|
||||
#: extensions/workspace-indicator/prefs.js:151
|
||||
msgid "Name"
|
||||
msgstr "名称"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:190
|
||||
#: extensions/workspace-indicator/prefs.js:191
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "工作区 %d"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "将模式对话框附着到父窗口"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
#~ msgstr "当运行 GNOME Shell 时该键会覆盖 org.gnome.mutter 中的键。"
|
||||
|
||||
#~ msgid "Arrangement of buttons on the titlebar"
|
||||
#~ msgstr "标题栏上按钮的排列"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||
#~ "running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "当运行 GNOME Shell 时该键会覆盖 org.gnome.desktop.wm.preferences 中的键。"
|
||||
|
||||
#~ msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
#~ msgstr "启用将窗口拖拽到屏幕边缘时平铺显示的功能"
|
||||
|
||||
#~ msgid "Workspaces only on primary monitor"
|
||||
#~ msgstr "仅在主显示器上显示工作区"
|
||||
|
||||
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
#~ msgstr "将鼠标模式下焦点的切换推迟到光标停止移动之后"
|
||||
|
||||
#~ msgid "Thumbnail only"
|
||||
#~ msgstr "仅缩略图"
|
||||
|
||||
#~ msgid "Application icon only"
|
||||
#~ msgstr "仅应用程序图标"
|
||||
|
||||
#~ msgid "Thumbnail and application icon"
|
||||
#~ msgstr "缩略图和应用程序图标"
|
||||
|
||||
#~ msgid "Present windows as"
|
||||
#~ msgstr "窗口展现为"
|
||||
|
||||
#~ msgid "Activities Overview"
|
||||
#~ msgstr "活动概览"
|
||||
|
||||
#~ msgid "Hello, world!"
|
||||
#~ msgstr "Hello, world!"
|
||||
|
||||
#~ msgid "Alternative greeting text."
|
||||
#~ msgstr "替代的祝福语。"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr "如果不为空,所包含的文本会在点击面板时显示。"
|
||||
|
||||
#~ msgid "Message"
|
||||
#~ msgstr "消息"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Example aims to show how to build well behaved extensions for the Shell "
|
||||
#~ "and as such it has little functionality on its own.\n"
|
||||
#~ "Nevertheless it’s possible to customize the greeting message."
|
||||
#~ msgstr ""
|
||||
#~ "示例意在展示如何为 Shell 创建良好工作的扩展,本身功能有限。\n"
|
||||
#~ "尽管如此,它还是具备定制祝福语的功能。"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell 经典模式"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user