Compare commits

..

4 Commits

Author SHA1 Message Date
Florian Müllner
a5b6871562 Bump version to 41.1
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/200>
2021-12-11 14:20:23 +01:00
Florian Müllner
deb6031381 window-list: Fix OSK
The reveal animation moved from Main.layoutManager.keyboardBox to
the keyboard itself, so instead of applying an additional translation
for the bottom panel, we override the translation that would reveal
the keyboard (and thus prevent it from showing altogether).

Fix this by moving our translation to the keyboardBox instead.

(cherry picked from commit 02e5029eb6)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/202>
2021-12-11 14:04:21 +01:00
Sebastian Keller
486cb59aff native-window-placement: Remove custom styling
The window-picker padding was causing it to become smaller in the
overview resulting in a jump when opening it and caused sizing issues
with the workspace view in the app picker. However it is not needed
anymore with the new overview, so this can be fixed by simply removing
it.

The horizontal- and vertical-spacing properties got replaced with a
spacing property a while ago. However this is only used in
WorkspaceLayout::_createBestLayout() which gets overridden by this
extension which does not use it. So they can simply be removed.

The shell-caption-spacing property got removed when the window captions
got changed to always use the full length and has not been doing
anything since.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/301
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/309
(cherry picked from commit 4a26cecd7d)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/202>
2021-12-11 14:04:07 +01:00
Neal Gompa
de9a3df7bd classic: Add X-GNOME-SessionRegisters
GDM has supported sessions registering with it for a few years now so
it can know when to shut down the greeter. Having the GNOME Classic
session declare that it will register itself allows GDM to avoid
executing a fallback codepath.

This has been supported with the regular GNOME session for a while,
and this session was likely forgotten about when it was added there.

(cherry picked from commit a79d2afb2d)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/202>
2021-12-11 14:03:33 +01:00
107 changed files with 8411 additions and 4978 deletions

30
.gitignore vendored
View File

@@ -1,7 +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/
*~
*.patch
*.sw?
.buildconfig
.vscode
*.gmo
metadata.json
*.desktop
*.gschema.valid
*.session

View File

@@ -2,6 +2,8 @@ include:
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/34:2021-08-12.0
stages:
- pre_review
- prepare
@@ -10,7 +12,6 @@ stages:
- deploy
default:
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/35:2022-02-18.0
# Cancel jobs if newer commits are pushed to the branch
interruptible: true
# Auto-retry jobs in case of infra failures
@@ -25,6 +26,7 @@ default:
variables:
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
LINT_LOG: "eslint-report.xml"
JS_LOG: "js-report.txt"
workflow:
rules:
@@ -101,14 +103,18 @@ js_check:
stage: review
<<: *prereview_req
script:
- gjs-check-syntax
- find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
- (! grep -q . $JS_LOG)
artifacts:
paths:
- ${JS_LOG}
when: on_failure
eslint:
stage: review
<<: *prereview_req
script:
- export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout
- eslint -o $LINT_LOG -f junit --resolve-plugins-relative-to $(npm root -g) extensions
artifacts:
paths:
- ${LINT_LOG}
@@ -133,6 +139,8 @@ fedora-build:
stage: build
needs:
- build-fedora-container
before_script:
- git submodule update --init
script:
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C build
@@ -149,8 +157,8 @@ fedora-dist:
stage: deploy
needs:
- fedora-build
variables:
GIT_SUBMODULE_STRATEGY: normal
before_script:
- git submodule update --init
script:
- meson dist -C build
rules:

View File

@@ -1,54 +0,0 @@
#!/usr/bin/env node
const {ESLint} = require('eslint');
console.log(`Running ESLint version ${ESLint.version}...`);
const fs = require('fs');
const path = require('path');
function hasOption(...names) {
return process.argv.some(arg => names.includes(arg));
}
function getOption(...names) {
const optIndex =
process.argv.findIndex(arg => names.includes(arg)) + 1;
if (optIndex === 0)
return undefined;
return process.argv[optIndex];
}
(async function main() {
const outputOption = getOption('--output-file', '-o');
const outputPath = outputOption ? path.resolve(outputOption) : null;
const sourceDir = path.dirname(process.argv[1]);
process.chdir(path.resolve(sourceDir, '..'));
const sources = ['extensions'];
const eslint = new ESLint();
const results = await eslint.lintFiles(sources);
const formatter = await eslint.loadFormatter(getOption('--format', '-f'));
const resultText = formatter.format(results);
if (outputPath) {
fs.mkdirSync(path.dirname(outputPath), {recursive: true});
fs.writeFileSync(outputPath, resultText);
if (hasOption('--stdout')) {
const consoleFormatter = await eslint.loadFormatter();
console.log(consoleFormatter.format(results));
}
} else {
console.log(resultText);
}
process.exitCode = results.some(r => r.errorCount > 0) ? 1 : 0;
})().catch((error) => {
process.exitCode = 1;
console.error(error);
});

3
.gitmodules vendored Normal file
View 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

163
NEWS
View File

@@ -1,169 +1,14 @@
45.beta
=======
* Port extensions to ESM [Florian; !259, !266, !268, !269]
* Misc. bug fixes and cleanups [Florian; !260, !261, !262, !263, !264]
Contributors:
Florian Müllner
Translators:
Efstathios Iosifidis [el]
45.alpha
========
* window-list: Modernize default styling [Alexander; !253]
* Replace classic styling with built-in light style [Florian; !254]
* window-list: Add tooltip for long window titles [Arik; !251]
* light-style: New extension [Florian; !256]
* Misc. bug fixes and cleanups [Florian; !255, !257]
Contributors:
Florian Müllner, Arik W, Alexander Weichart
44.0
41.1
====
* Bump version
44.rc
=====
* Bump version
44.beta
=======
* Tweak menu alignment [robxnano; !246]
Contributors:
Florian Müllner, robxnano
Translators:
Vasil Pupkin [be]
43.1
====
* Fixed crash [Florian; !243]
* Misc. bug fixes and cleanups [mowemcfc; !244]
Contributors:
Florian Müllner, mowemcfc
Translators:
Sabri Ünal [tr]
43.0
====
Contributors:
Florian Müllner
Translators:
Pawan Chitrakar [ne], Zurab Kargareteli [ka], Aleksandr Melman [ru]
43.rc
=====
* Misc. bug fixes and cleanups [Florian; !240]
Contributors:
Florian Müllner
43.beta
=======
* Misc. bug fixes and cleanups [Florian; !237, !238]
Contributors:
Florian Müllner
Translators:
Nart Tlisha [ab]
43.alpha
========
Contributors:
Florian Müllner
Translators:
Marco Ciampa [it]
42.3
====
* screenshot-window-sizer: Fix reported sizes on wayland [Florian; !232]
* window-list: Improve touch support [Florian; !233]
Contributors:
Florian Müllner
42.2
====
* native-window-placement: Adjust to gnome-shell 42 changes [Florian; !229]
* window-list: Fix visibility on non-primary monitors [Jason; !230]
Contributors:
Jason Lynch, Florian Müllner
Translators:
Cheng-Chia Tseng [zh_TW]
42.1
====
* Misc. bug fixes and cleanups [Florian; !223, !222, !225]
Contributors:
Florian Müllner
Translators:
Milo Casagrande [it], Rūdolfs Mazurs [lv], Nathan Follens [nl],
Ngọc Quân Trần [vi], Zurab Kargareteli [ka]
42.0
====
Translators:
Philipp Kiemle [de], Balázs Úr [hu], Марко Костић [sr], sicklylife [ja],
Baurzhan Muftakhidinov [kk]
42.rc
=====
* Misc. bug fixes and cleanups [Florian; !215, !218]
Contributors:
Florian Müllner
Translators:
Marek Černocký [cs], Dušan Kazik [sk], Piotr Drąg [pl], Jiri Grönroos [fi],
Luna Jernberg [sv], Alan Mortensen [da], Charles Monzat [fr],
Changwoo Ryu [ko]
42.beta
=======
* workspace-indicator: Fix cancelling editing with Esc [Florian; !208]
* window-list: Update window tracking to avoid missing icons [Florian; !207]
* Use libadwaita for preferences [Florian; !209, !213]
* Adapt to Clutter grab API changes [Florian; !212]
* Misc. bug fixes and cleanups [Jan, Florian; !210, !214]
Contributors:
Jan Beich, Florian Müllner, Naala Nanba
Translators:
Boyuan Yang [zh_CN], Matej Urbančič [sl], Naala Nanba [ab],
Alexander Shopov [bg], Emin Tufan Çetin [tr]
42.alpha
========
* native-window-placement: Fix distorted layout in app grid [Sebastian; !189]
* window-list: Fix on-screen keyboard [Florian; !199]
* Misc. bug fixes and cleanups [Neal; Just; !195, !197]
* Misc. bug fixes [Neal; !195]
Contributors:
Piotr Drąg, Neal Gompa, Sebastian Keller, Florian Müllner, Just Perfection
Neal Gompa, Sebastian Keller, Florian Müllner
Translators:
Goran Vidović [hr], Sveinn í Felli [is], Yuri Chornoivan [uk],
Fabio Tomat [fur], Quentin PAGÈS [oc], Hugo Carvalho [pt],
Yaron Shahrabani [he], Jordi Mas i Hernandez [ca], MohammadSaleh Kamyab [fa],
Fran Dieguez [gl], Daniel Mustieles [es], Aleksandr Melman [ru],
Aurimas Černius [lt], Asier Sarasua Garmendia [eu], Kukuh Syafaat [id],
Rafael Fontenelle [pt_BR]
Goran Vidović [hr], Sveinn í Felli [is]
41.0
====

178
data/calendar-today.svg Normal file
View File

@@ -0,0 +1,178 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
id="svg10621"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="calendar-today.svg">
<defs
id="defs10623">
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient99561-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<linearGradient
inkscape:collect="always"
id="linearGradient34508-1-3">
<stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop34510-1-9" />
<stop
style="stop-color:#ffffff;stop-opacity:0;"
offset="1"
id="stop34512-4-5" />
</linearGradient>
<radialGradient
r="42"
fy="30"
fx="51"
cy="30"
cx="51"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
gradientUnits="userSpaceOnUse"
id="radialGradient10592"
xlink:href="#linearGradient34508-1-3"
inkscape:collect="always" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3770"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3001"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3007"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3067"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient3072"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
<radialGradient
inkscape:collect="always"
xlink:href="#linearGradient34508-1-3"
id="radialGradient2997"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.72146227,0,0,0.27484277,14.205424,21.754717)"
cx="51"
cy="30"
fx="51"
fy="30"
r="42" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#d3d3d3"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:zoom="8"
inkscape:cx="-55.349829"
inkscape:cy="-31.442864"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:window-width="2133"
inkscape:window-height="1241"
inkscape:window-x="238"
inkscape:window-y="89"
inkscape:window-maximized="0"
borderlayer="true"
inkscape:showpageshadow="false">
<inkscape:grid
type="xygrid"
id="grid3109"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<metadata
id="metadata10626">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-469.08263,-537.99307)">
<circle
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#555753;fill-opacity:0.23756906;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="path7305"
cx="481.57138"
cy="559.4649"
r="1.5" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.6 KiB

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -0,0 +1,262 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-off-intl.svg">
<defs
id="defs10867">
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
id="linearGradient62821-5-8">
<stop
id="stop62823-2-4"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient62852-6-5-3">
<stop
id="stop62854-6-7-6"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0-3" />
<stop
id="stop62860-5-3-9"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect62829-6-8-0"
is_visible="true" />
<linearGradient
id="linearGradient62821-5-8-1">
<stop
id="stop62823-2-4-2"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8-9"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="507.42715"
x2="702.58966"
y1="484.49405"
x1="702.58966"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
gradientUnits="userSpaceOnUse"
id="linearGradient11647"
xlink:href="#linearGradient62821-5-8-1"
inkscape:collect="always" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath65663">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
id="rect65665"
width="96.999924"
height="24.292892"
x="708.71954"
y="406.96973"
rx="3.1139846"
ry="1.9595497"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/content selection/content-selection.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9"
id="linearGradient65582"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5250827,0,0,0.72144839,620.16092,156.4917)"
x1="207.17195"
y1="497.39584"
x2="207.17195"
y2="531.48669" />
<linearGradient
inkscape:collect="always"
id="linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9">
<stop
style="stop-color:#f4f6f4;stop-opacity:1"
offset="0"
id="stop5380-6-1-1-9-3-6-3-6-45-6-4-4-9-9-8-9" />
<stop
style="stop-color:#d7dad7;stop-opacity:1"
offset="1"
id="stop5382-06-3-6-4-2-4-6-8-0-9-6-8-7-7-6-7" />
</linearGradient>
<linearGradient
inkscape:collect="always"
id="linearGradient65584">
<stop
style="stop-color:#f1f1f1;stop-opacity:1"
offset="0"
id="stop65586" />
<stop
style="stop-color:#a7aba7;stop-opacity:0;"
offset="1"
id="stop65588" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9"
id="linearGradient65582-5"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5250827,0,0,0.72144839,-75.348673,-359.16458)"
x1="207.17195"
y1="497.39584"
x2="207.17195"
y2="531.48669" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient65584"
id="linearGradient65590-6"
x1="716.62506"
y1="537.23358"
x2="716.62506"
y2="535.23358"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0139469,0,0,1.0139469,-705.52354,-521.99915)" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="23.565368"
inkscape:cy="19.596892"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:#cecece;fill-opacity:1;stroke:#a7a7a7;stroke-width:1;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;color-interpolation:sRGB;color-interpolation-filters:linearRGB;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:new;clip-rule:nonzero;opacity:1;isolation:auto;mix-blend-mode:normal;solid-color:#000000;solid-opacity:1;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient65582);fill-opacity:1;stroke:#a7a7a7;stroke-width:0.97313344;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline;color:#000000;clip-rule:nonzero;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62937"
width="29.97398"
height="17.022524"
x="646.55896"
y="485.61429"
rx="1"
ry="1" />
<g
transform="translate(-38.048674,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 647.78241,486.57192 27.73523,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 647.78241,486.57192 27.73523,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g11665"
transform="matrix(0.78906097,0,0,0.78906097,178.78814,111.57844)" />
<path
sodipodi:type="arc"
id="path3016"
sodipodi:cx="50.375"
sodipodi:cy="11.875"
sodipodi:rx="4.625"
sodipodi:ry="4.625"
d="M 55,11.875 A 4.625,4.625 0 0 1 50.375,16.5 4.625,4.625 0 0 1 45.75,11.875 4.625,4.625 0 0 1 50.375,7.25 4.625,4.625 0 0 1 55,11.875 Z"
transform="translate(642.41421,512.02037)"
style="fill:none;stroke:#2e3436;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.5 KiB

View File

@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-off-us.svg">
<defs
id="defs10867">
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
id="linearGradient62821-5-8">
<stop
id="stop62823-2-4"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
id="linearGradient62852-6-5-3">
<stop
id="stop62854-6-7-6"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0-3" />
<stop
id="stop62860-5-3-9"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
effect="spiro"
id="path-effect62829-6-8-0"
is_visible="true" />
<linearGradient
id="linearGradient62821-5-8-1">
<stop
id="stop62823-2-4-2"
offset="0"
style="stop-color:#d1d3d1;stop-opacity:1;" />
<stop
id="stop62825-3-8-9"
offset="1"
style="stop-color:#ebebeb;stop-opacity:1;" />
</linearGradient>
<linearGradient
y2="507.42715"
x2="702.58966"
y1="484.49405"
x1="702.58966"
gradientTransform="matrix(1.3066667,0,0,1,-841.64667,-483)"
gradientUnits="userSpaceOnUse"
id="linearGradient11647"
xlink:href="#linearGradient62821-5-8-1"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9"
id="linearGradient65582"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.5250827,0,0,0.72144839,620.16092,156.4917)"
x1="207.17195"
y1="497.39584"
x2="207.17195"
y2="531.48669" />
<linearGradient
inkscape:collect="always"
id="linearGradient5378-2-5-9-9-0-80-7-6-8-4-5-7-3-6-2-9">
<stop
style="stop-color:#f4f6f4;stop-opacity:1"
offset="0"
id="stop5380-6-1-1-9-3-6-3-6-45-6-4-4-9-9-8-9" />
<stop
style="stop-color:#d7dad7;stop-opacity:1"
offset="1"
id="stop5382-06-3-6-4-2-4-6-8-0-9-6-8-7-7-6-7" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0-6"
effect="spiro" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="78.222729"
inkscape:cy="-3.6620078"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
style="display:inline"
transform="translate(0,30)"
id="g62931">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#cecece;fill-opacity:1;fill-rule:nonzero;stroke:#a7a7a7;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:new"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient65582);fill-opacity:1;fill-rule:nonzero;stroke:#a7a7a7;stroke-width:0.97313344;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62937"
width="29.97398"
height="17.022524"
x="646.55896"
y="485.61429"
rx="1"
ry="1" />
<g
transform="translate(-38.048674,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 647.78241,486.57192 27.73523,0"
inkscape:path-effect="#path-effect62989-8-0-6"
id="path62947"
d="m 647.78241,486.57192 27.73523,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<g
id="g11665"
transform="matrix(0.78906097,0,0,0.78906097,167.78814,111.57844)">
<text
xml:space="preserve"
style="font-size:12.69556618px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#2e3436;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
x="644.46393"
y="533.87158"
id="text62949"
sodipodi:linespacing="125%"
transform="scale(1.0113976,0.98873084)"><tspan
sodipodi:role="line"
id="tspan62951"
x="644.46393"
y="533.87158">OFF</tspan></text>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@@ -0,0 +1,175 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-on-intl.svg">
<defs
id="defs10867">
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient38513"
id="linearGradient38519"
x1="690"
y1="506.25049"
x2="690"
y2="480.93414"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient38513">
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="0"
id="stop38515" />
<stop
style="stop-color:#6f9ccd;stop-opacity:1"
offset="1"
id="stop38517" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,57.747905,92.132229)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0-8"
effect="spiro" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="9.3225163"
inkscape:cy="-0.1588306"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
style="display:inline"
transform="translate(0,30)"
id="g62931">
<rect
style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:url(#linearGradient38519);fill-opacity:1;fill-rule:nonzero;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="display:inline;fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect62937"
width="29.97398"
height="17.022524"
x="676.49646"
y="485.67679"
rx="1"
ry="1" />
<g
transform="translate(-7.9861743,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 677.59874,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0-8"
id="path62947"
d="m 677.59874,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
inkscape:connector-curvature="0"
id="path4444"
d="m 661.91421,522.09451 0,7"
style="fill:#3465a4;stroke:#3465a4;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;fill-opacity:1;fill-rule:nonzero;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
<path
style="fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="m 18,7.96875 0,7"
id="path3922"
inkscape:connector-curvature="0"
transform="translate(643.91421,513.06326)" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

@@ -0,0 +1,209 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="65"
height="22"
id="svg10865"
version="1.1"
inkscape:version="0.91 r13725"
sodipodi:docname="classic-toggle-on-us.svg">
<defs
id="defs10867">
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient62852-6-5"
id="linearGradient62981-1-1"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.85639946,0,0,0.81059641,57.747905,92.132229)"
x1="740"
y1="486.10501"
x2="740"
y2="505.3204" />
<linearGradient
id="linearGradient62852-6-5">
<stop
id="stop62854-6-7"
offset="0"
style="stop-color:#ffffff;stop-opacity:1" />
<stop
style="stop-color:#eeeeec;stop-opacity:1"
offset="0.97726452"
id="stop62858-8-0" />
<stop
id="stop62860-5-3"
offset="1"
style="stop-color:#f5f5f4;stop-opacity:1" />
</linearGradient>
<inkscape:path-effect
is_visible="true"
id="path-effect62989-8-0"
effect="spiro" />
<clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath65663">
<rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;enable-background:new"
id="rect65665"
width="96.999924"
height="24.292892"
x="708.71954"
y="406.96973"
rx="3.1139846"
ry="1.9595497"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/content selection/content-selection.png"
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</clipPath>
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient38513"
id="linearGradient38519"
x1="690"
y1="506.25049"
x2="690"
y2="480.93414"
gradientUnits="userSpaceOnUse" />
<linearGradient
inkscape:collect="always"
id="linearGradient38513">
<stop
style="stop-color:#729fcf;stop-opacity:1"
offset="0"
id="stop38515" />
<stop
style="stop-color:#6f9ccd;stop-opacity:1"
offset="1"
id="stop38517" />
</linearGradient>
<linearGradient
gradientTransform="translate(-644,-483)"
inkscape:collect="always"
xlink:href="#linearGradient38513"
id="linearGradient38519-3"
x1="690"
y1="506.25049"
x2="690"
y2="480.93414"
gradientUnits="userSpaceOnUse" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1"
inkscape:cx="20.775745"
inkscape:cy="7.0434022"
inkscape:document-units="px"
inkscape:current-layer="g62929"
showgrid="false"
borderlayer="true"
inkscape:showpageshadow="false"
inkscape:snap-nodes="false"
inkscape:snap-bbox="true"
inkscape:bbox-paths="true"
inkscape:snap-others="false"
inkscape:window-width="2560"
inkscape:window-height="1342"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1"
showborder="false">
<inkscape:grid
type="xygrid"
id="grid11512" />
</sodipodi:namedview>
<metadata
id="metadata10870">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-1030.3622)">
<g
inkscape:export-ydpi="90"
inkscape:export-xdpi="90"
inkscape:export-filename="/home/lapo.fedora/SparkleShare/gnome-mockups/system-settings/network/network-panel-summary.png"
style="display:inline"
id="g62929"
transform="translate(-643.91421,517.29894)">
<g
transform="translate(0,30)"
id="g62931">
<rect
style="fill:url(#linearGradient38519);fill-opacity:1;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill-rule:nonzero;stroke-linejoin:miter;stroke-dashoffset:0;marker:none;marker-start:none;marker-mid:none;marker-end:none;paint-order:normal;filter-blend-mode:normal;filter-gaussianBlur-deviation:0;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
id="rect62935"
width="63.856125"
height="21.093594"
x="644.5"
y="483.5"
rx="2"
ry="2" />
<rect
style="fill:url(#linearGradient62981-1-1);fill-opacity:1;stroke:#3465a4;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
id="rect62937"
width="29.97398"
height="17.022524"
x="676.49646"
y="485.67679"
rx="1"
ry="1" />
<g
transform="translate(-7.9861743,-1.9445437)"
id="g62939" />
<path
inkscape:connector-curvature="0"
inkscape:original-d="m 677.59874,486.57192 27.94632,0"
inkscape:path-effect="#path-effect62989-8-0"
id="path62947"
d="m 677.59874,486.57192 27.94632,0"
style="fill:none;stroke:#ffffff;stroke-width:1px;stroke-linecap:round;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<text
transform="scale(1.0113976,0.98873084)"
sodipodi:linespacing="125%"
id="text62949-7"
y="534.96918"
x="646.71399"
style="font-size:10.01104736px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#3465a4;fill-opacity:1;stroke:none;display:inline;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold;"
xml:space="preserve"><tspan
y="534.96918"
x="646.71399"
id="tspan62951-7"
sodipodi:role="line">ON</tspan></text>
<text
transform="scale(1.0113976,0.98873084)"
sodipodi:linespacing="125%"
id="text62949"
y="533.94482"
x="646.71399"
style="font-size:10.01104736px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Cantarell;-inkscape-font-specification:Cantarell Bold"
xml:space="preserve"><tspan
y="533.94482"
x="646.71399"
id="tspan62951"
sodipodi:role="line">ON</tspan></text>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -1,11 +1,11 @@
{
"parentMode": "user",
"colorScheme": "force-light",
"stylesheetName": "gnome-classic.css",
"hasOverview": false,
"showWelcomeDialog": false,
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
"panel": { "left": [],
"panel": { "left": ["appMenu"],
"center": [],
"right": ["a11y", "keyboard", "dateMenu", "quickSettings"]
"right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"]
}
}

View File

@@ -0,0 +1,5 @@
@import url("gnome-classic.css");
stage {
-st-icon-style: symbolic;
}

View File

@@ -1,8 +0,0 @@
[Desktop Entry]
Name=GNOME Classic on Wayland
Comment=This session logs you into GNOME Classic
Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
TryExec=gnome-session
Type=Application
DesktopNames=GNOME-Classic;GNOME;
X-GDM-SessionRegisters=true

View File

@@ -1,8 +0,0 @@
[Desktop Entry]
Name=GNOME Classic on Xorg
Comment=This session logs you into GNOME Classic
Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
TryExec=gnome-session
Type=Application
DesktopNames=GNOME-Classic;GNOME;
X-GDM-SessionRegisters=true

107
data/gnome-classic.scss Normal file
View File

@@ -0,0 +1,107 @@
/* Use the gnome-shell theme, but with light colors */
$variant: 'light';
@import "gnome-shell-sass/_colors"; //use gtk colors
@import "gnome-shell-sass/_drawing";
@import "gnome-shell-sass/_common";
@import "gnome-shell-sass/_widgets";
/* Overrides */
#panel, #panel.solid {
font-weight: normal;
background-color: $bg_color;
background-gradient-direction: vertical;
background-gradient-end: darken($bg_color,5%);
border-top-color: #666; /* we don't support non-uniform border-colors and
use the top border color for any border, so we
need to set it even if all we want is a bottom
border */
border-bottom: 1px solid #666;
app-icon-bottom-clip: 0px;
&:overview {
background-color: #000;
background-gradient-end: #000;
border-top-color: #000;
border-bottom: 1px solid #000;
.panel-button { color: #fff; }
}
.panel-button {
-natural-hpadding: 8px;
-minimum-hpadding: 4px;
font-weight: normal;
color: $fg_color;
text-shadow: none;
transition-duration: 0ms;
border: 0;
border-radius: 0px;
&.clock-display {
.clock {
transition-duration: 0ms;
border: 0;
border-radius: 0px;
}
}
&:hover {
color: lighten($fg_color,10%);
text-shadow: none;
& .system-status-icon { icon-shadow: none; }
}
&:active, &:overview, &:focus, &:checked {
// Trick due to St limitations. It needs a background to draw
// a box-shadow
background-color: $selected_bg_color;
color: $selected_fg_color;
box-shadow: none;
& > .system-status-icon { icon-shadow: none; }
}
.app-menu-icon { width: 0; height: 0; margin: 0; } // shell's display:none; :D
.system-status-icon {
icon-shadow: none;
}
}
.panel-corner,
.panel-corner:active,
.panel-corner:overview,
.panel-corner:focus {
-panel-corner-radius: 0;
}
&.lock-screen,
&.unlock-screen,
&.login-screen {
background-color: transparentize($bg_color, 0.5);
background-gradient-start: transparentize($bg_color, 0.5);
background-gradient-end: transparentize($bg_color, 0.5);
border-bottom: none;
.panel-button { color: $osd_fg_color; }
}
}
#appMenu {
spinner-image: url("classic-process-working.svg");
.panel-status-menu-box { padding: 0; }
}
.tile-preview-left.on-primary,
.tile-preview-right.on-primary,
.tile-preview-left.tile-preview-right.on-primary {
/* keep in sync with -panel-corner-radius */
border-radius: 0;
}
@each $v in us, intl {
.toggle-switch-#{$v} {
background-image: url("classic-toggle-off-#{$v}.svg");
&:checked { background-image: url("classic-toggle-on-#{$v}.svg"); }
}
}
.calendar-day-with-events {
background-image: url("calendar-today.svg");
}

1
data/gnome-shell-sass Submodule

Submodule data/gnome-shell-sass added at b267200d75

View File

@@ -1,34 +1,12 @@
session_desktop_base = 'gnome-classic'
session_desktops = [
session_desktop_base,
session_desktop_base + '-xorg',
session_desktop_base + '-wayland',
]
foreach name: session_desktops
session_desktop = name + '.desktop'
if name.endswith('-xorg')
session_instdir = xsessiondir
elif name.endswith('-wayland')
session_instdir = wlsessiondir
else
# FIXME: The same target can not be copied into two directories.
# There is a workaround in meson/session-post-install.py until proper
# solution arises:
# https://github.com/mesonbuild/meson/issues/2416
session_instdir = xsessiondir
#session_instdir = [ xesssiondir, wlsessiondir ]
endif
i18n.merge_file(
input: session_desktop + '.in',
output: session_desktop,
po_dir: '../po',
install: true,
install_dir: session_instdir,
type: 'desktop'
)
endforeach
session_desktop = 'gnome-classic.desktop'
i18n.merge_file('',
input: session_desktop + '.in',
output: session_desktop,
po_dir: '../po',
install: true,
install_dir: xsessiondir,
type: 'desktop'
)
classic_uuids = []
foreach e : classic_extensions
@@ -46,5 +24,74 @@ configure_file(
install_dir: modedir
)
theme_sources = files(
'gnome-shell-sass/_colors.scss',
'gnome-shell-sass/_common.scss',
'gnome-shell-sass/_drawing.scss',
'gnome-shell-sass/_high-contrast-colors.scss',
'gnome-shell-sass/_widgets.scss',
'gnome-shell-sass/widgets/_a11y.scss',
'gnome-shell-sass/widgets/_app-grid.scss',
'gnome-shell-sass/widgets/_base.scss',
'gnome-shell-sass/widgets/_buttons.scss',
'gnome-shell-sass/widgets/_calendar.scss',
'gnome-shell-sass/widgets/_check-box.scss',
'gnome-shell-sass/widgets/_corner-ripple.scss',
'gnome-shell-sass/widgets/_dash.scss',
'gnome-shell-sass/widgets/_dialogs.scss',
'gnome-shell-sass/widgets/_entries.scss',
'gnome-shell-sass/widgets/_hotplug.scss',
'gnome-shell-sass/widgets/_ibus-popup.scss',
'gnome-shell-sass/widgets/_keyboard.scss',
'gnome-shell-sass/widgets/_login-dialog.scss',
'gnome-shell-sass/widgets/_looking-glass.scss',
'gnome-shell-sass/widgets/_message-list.scss',
'gnome-shell-sass/widgets/_misc.scss',
'gnome-shell-sass/widgets/_network-dialog.scss',
'gnome-shell-sass/widgets/_notifications.scss',
'gnome-shell-sass/widgets/_osd.scss',
'gnome-shell-sass/widgets/_overview.scss',
'gnome-shell-sass/widgets/_panel.scss',
'gnome-shell-sass/widgets/_popovers.scss',
'gnome-shell-sass/widgets/_screen-shield.scss',
'gnome-shell-sass/widgets/_scrollbars.scss',
'gnome-shell-sass/widgets/_search-entry.scss',
'gnome-shell-sass/widgets/_search-results.scss',
'gnome-shell-sass/widgets/_slider.scss',
'gnome-shell-sass/widgets/_switcher-popup.scss',
'gnome-shell-sass/widgets/_switches.scss',
'gnome-shell-sass/widgets/_tiled-previews.scss',
'gnome-shell-sass/widgets/_window-picker.scss',
'gnome-shell-sass/widgets/_workspace-switcher.scss',
'gnome-shell-sass/widgets/_workspace-thumbnails.scss'
)
theme_data = [
'calendar-today.svg',
'classic-process-working.svg',
'classic-toggle-off-intl.svg',
'classic-toggle-off-us.svg',
'classic-toggle-on-intl.svg',
'classic-toggle-on-us.svg',
'gnome-classic-high-contrast.css'
]
stylesheet = 'gnome-classic.css'
if fs.exists(stylesheet)
install_data(stylesheet, install_dir: themedir)
else
sassc = find_program('sassc', required: true)
custom_target(stylesheet,
input: fs.replace_suffix(stylesheet, '.scss'),
output: stylesheet,
depend_files: theme_sources,
command: [sassc, '-a', '@INPUT@', '@OUTPUT@'],
install: true,
install_dir: themedir
)
endif
install_data(theme_data, install_dir: themedir)
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
install_data(classic_override, install_dir: schemadir)

View File

@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/sh
srcdir=`dirname $0`
srcdir=`(cd $srcdir && pwd)`

View File

@@ -1,22 +1,18 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Atk from 'gi://Atk';
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GMenu from 'gi://GMenu';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
import Meta from 'gi://Meta';
import Shell from 'gi://Shell';
import St from 'gi://St';
import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
/* exported init enable disable */
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const {
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St,
} = imports.gi;
const Signals = imports.signals;
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const _ = ExtensionUtils.gettext;
const appSys = Shell.AppSystem.get_default();
@@ -28,13 +24,10 @@ const NAVIGATION_REGION_OVERSHOOT = 50;
Gio._promisify(Gio._LocalFilePrototype, 'query_info_async', 'query_info_finish');
Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish');
var ApplicationMenuItem = GObject.registerClass(
class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
static {
GObject.registerClass(this);
}
constructor(button, app) {
super();
_init(button, app) {
super._init();
this._app = app;
this._button = button;
@@ -50,8 +43,11 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
this.label_actor = appLabel;
let textureCache = St.TextureCache.get_default();
textureCache.connectObject('icon-theme-changed',
() => this._updateIcon(), this);
let iconThemeChangedId = textureCache.connect('icon-theme-changed',
this._updateIcon.bind(this));
this.connect('destroy', () => {
textureCache.disconnect(iconThemeChangedId);
});
this._updateIcon();
this._delegate = this;
@@ -97,15 +93,12 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
icon.style_class = 'icon-dropshadow';
this._iconBin.set_child(icon);
}
}
});
var CategoryMenuItem = GObject.registerClass(
class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
static {
GObject.registerClass(this);
}
constructor(button, category) {
super();
_init(button, category) {
super._init();
this._category = category;
this._button = button;
@@ -118,7 +111,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
else
name = _('Favorites');
this.add_child(new St.Label({text: name}));
this.add_child(new St.Label({ text: name }));
this.connect('motion-event', this._onMotionEvent.bind(this));
this.connect('notify::active', this._onActiveChanged.bind(this));
}
@@ -187,14 +180,11 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
}
_onMotionEvent(actor, event) {
if (!this._grab) {
let device = event.get_device();
if (!device.get_grabbed_actor()) {
this._oldX = -1;
this._oldY = -1;
const grab = global.stage.grab(this);
if (grab.get_seat_state() !== Clutter.GrabState.NONE)
this._grab = grab;
else
grab.dismiss();
device.grab(this);
}
this.hover = true;
@@ -204,8 +194,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
this._oldX = -1;
this._oldY = -1;
this.hover = false;
this._grab?.dismiss();
delete this._grab;
device.ungrab();
let source = event.get_source();
if (source instanceof St.Widget)
@@ -221,7 +210,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
this._button.selectCategory(this._category);
this._button.scrollToCatButton(this);
}
}
});
class ApplicationsMenu extends PopupMenu.PopupMenu {
constructor(sourceActor, arrowAlignment, arrowSide, button) {
@@ -240,10 +229,8 @@ class ApplicationsMenu extends PopupMenu.PopupMenu {
}
}
class DesktopTarget extends EventEmitter {
class DesktopTarget {
constructor() {
super();
this._desktop = null;
this._desktopDestroyedId = 0;
@@ -270,7 +257,9 @@ class DesktopTarget extends EventEmitter {
_setDesktop(desktop) {
if (this._desktop) {
this._desktop.disconnectObject(this);
this._desktop.disconnect(this._desktopDestroyedId);
this._desktopDestroyedId = 0;
delete this._desktop._delegate;
}
@@ -278,9 +267,9 @@ class DesktopTarget extends EventEmitter {
this.emit('desktop-changed');
if (this._desktop) {
this._desktop.connectObject('destroy', () => {
this._desktopDestroyedId = this._desktop.connect('destroy', () => {
this._setDesktop(null);
}, this);
});
this._desktop._delegate = this;
}
}
@@ -320,7 +309,10 @@ class DesktopTarget extends EventEmitter {
}
destroy() {
global.window_group.disconnectObject(this);
if (this._windowAddedId)
global.window_group.disconnect(this._windowAddedId);
this._windowAddedId = 0;
this._setDesktop(null);
}
@@ -355,14 +347,12 @@ class DesktopTarget extends EventEmitter {
return true;
}
}
Signals.addSignalMethods(DesktopTarget.prototype);
let ApplicationsButton = GObject.registerClass(
class ApplicationsButton extends PanelMenu.Button {
static {
GObject.registerClass(this);
}
constructor() {
super(1.0, null, false);
_init() {
super._init(1.0, null, false);
this.setMenu(new ApplicationsMenu(this, 1.0, St.Side.TOP, this));
Main.panel.menuManager.addMenu(this.menu);
@@ -382,14 +372,15 @@ class ApplicationsButton extends PanelMenu.Button {
this.name = 'panelApplications';
this.label_actor = this._label;
Main.overview.connectObject(
'showing', () => this.add_accessible_state(Atk.StateType.CHECKED),
'hiding', () => this.remove_accessible_state(Atk.StateType.CHECKED),
this);
this._showingId = Main.overview.connect('showing', () => {
this.add_accessible_state(Atk.StateType.CHECKED);
});
this._hidingId = Main.overview.connect('hiding', () => {
this.remove_accessible_state(Atk.StateType.CHECKED);
});
Main.wm.addKeybinding(
'apps-menu-toggle-menu',
Extension.lookupByURL(import.meta.url).getSettings(),
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
() => this.menu.toggle());
@@ -404,16 +395,16 @@ class ApplicationsButton extends PanelMenu.Button {
});
});
this._tree = new GMenu.Tree({menu_basename: 'applications.menu'});
this._tree.connectObject('changed',
() => this._onTreeChanged(), this);
this._tree = new GMenu.Tree({ menu_basename: 'applications.menu' });
this._treeChangedId = this._tree.connect('changed',
this._onTreeChanged.bind(this));
this._applicationsButtons = new Map();
this.reloadFlag = false;
this._createLayout();
this._display();
appSys.connectObject('installed-changed',
() => this._onTreeChanged(), this);
this._installedChangedId = appSys.connect('installed-changed',
this._onTreeChanged.bind(this));
}
_onTreeChanged() {
@@ -437,7 +428,11 @@ class ApplicationsButton extends PanelMenu.Button {
_onDestroy() {
super._onDestroy();
delete this._tree;
Main.overview.disconnect(this._showingId);
Main.overview.disconnect(this._hidingId);
appSys.disconnect(this._installedChangedId);
this._tree.disconnect(this._treeChangedId);
this._tree = null;
Main.wm.removeKeybinding('apps-menu-toggle-menu');
@@ -501,7 +496,7 @@ class ApplicationsButton extends PanelMenu.Button {
}
let app = appSys.lookup_app(id);
if (!app)
app = new Shell.App({app_info: entry.get_app_info()});
app = new Shell.App({ app_info: entry.get_app_info() });
if (app.get_app_info().should_show())
this.applicationsByCategory[categoryId].push(app);
} else if (nextType === GMenu.TreeItemType.SEPARATOR) {
@@ -547,8 +542,8 @@ class ApplicationsButton extends PanelMenu.Button {
_createLayout() {
let section = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(section);
this.mainBox = new St.BoxLayout({vertical: false});
this.leftBox = new St.BoxLayout({vertical: true});
this.mainBox = new St.BoxLayout({ vertical: false });
this.leftBox = new St.BoxLayout({ vertical: true });
this.applicationsScrollBox = new St.ScrollView({
style_class: 'apps-menu vfade',
x_expand: true,
@@ -570,9 +565,9 @@ class ApplicationsButton extends PanelMenu.Button {
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
this.leftBox.add_child(this.categoriesScrollBox);
this.applicationsBox = new St.BoxLayout({vertical: true});
this.applicationsBox = new St.BoxLayout({ vertical: true });
this.applicationsScrollBox.add_actor(this.applicationsBox);
this.categoriesBox = new St.BoxLayout({vertical: true});
this.categoriesBox = new St.BoxLayout({ vertical: true });
this.categoriesScrollBox.add_actor(this.categoriesBox);
this.mainBox.add(this.leftBox);
@@ -666,19 +661,24 @@ class ApplicationsButton extends PanelMenu.Button {
return applist;
}
});
let appsMenuButton;
/** */
function enable() {
appsMenuButton = new ApplicationsButton();
let index = Main.sessionMode.panel.left.indexOf('activities') + 1;
Main.panel.addToStatusArea('apps-menu', appsMenuButton, index, 'left');
}
export default class AppsMenuExtension extends Extension {
enable() {
this._appsMenuButton = new ApplicationsButton();
const index = Main.sessionMode.panel.left.indexOf('activities') + 1;
Main.panel.addToStatusArea(
'apps-menu', this._appsMenuButton, index, 'left');
}
disable() {
Main.panel.menuManager.removeMenu(this._appsMenuButton.menu);
this._appsMenuButton.destroy();
delete this._appsMenuButton;
}
/** */
function disable() {
Main.panel.menuManager.removeMenu(appsMenuButton.menu);
appsMenuButton.destroy();
}
/** */
function init() {
ExtensionUtils.initTranslations();
}

View File

@@ -3,5 +3,4 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -1,20 +1,22 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces
/* exported init enable disable */
import Shell from 'gi://Shell';
const { Shell } = imports.gi;
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
class WindowMover {
constructor(settings) {
this._settings = settings;
constructor() {
this._settings = ExtensionUtils.getSettings();
this._appSystem = Shell.AppSystem.get_default();
this._appConfigs = new Map();
this._appData = new Map();
this._appSystem.connectObject('installed-changed',
() => this._updateAppData(), this);
this._appsChangedId =
this._appSystem.connect('installed-changed',
this._updateAppData.bind(this));
this._settings.connect('changed', this._updateAppConfigs.bind(this));
this._updateAppConfigs();
@@ -36,7 +38,7 @@ class WindowMover {
let removedApps = [...this._appData.keys()]
.filter(a => !ids.includes(a.id));
removedApps.forEach(app => {
app.disconnectObject(this);
app.disconnect(this._appData.get(app).windowsChangedId);
this._appData.delete(app);
});
@@ -44,14 +46,21 @@ class WindowMover {
.map(id => this._appSystem.lookup_app(id))
.filter(app => app && !this._appData.has(app));
addedApps.forEach(app => {
app.connectObject('window-changed',
this._appWindowsChanged.bind(this), this);
this._appData.set(app, {windows: app.get_windows()});
let data = {
windowsChangedId: app.connect('windows-changed',
this._appWindowsChanged.bind(this)),
moveWindowsId: 0,
windows: app.get_windows(),
};
this._appData.set(app, data);
});
}
destroy() {
this._appSystem.disconnectObject(this);
if (this._appsChangedId) {
this._appSystem.disconnect(this._appsChangedId);
this._appsChangedId = 0;
}
if (this._settings) {
this._settings.run_dispose();
@@ -96,41 +105,47 @@ class WindowMover {
}
}
export default class AutoMoveExtension extends Extension {
enable() {
this._prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces =
this._getCheckWorkspaceOverride(this._prevCheckWorkspaces);
this._windowMover = new WindowMover(this.getSettings());
}
let prevCheckWorkspaces;
let winMover;
disable() {
Main.wm._workspaceTracker._checkWorkspaces = this._prevCheckWorkspaces;
this._windowMover.destroy();
delete this._windowMover;
}
_getCheckWorkspaceOverride(originalMethod) {
/* eslint-disable no-invalid-this */
return function () {
const keepAliveWorkspaces = [];
let foundNonEmpty = false;
for (let i = this._workspaces.length - 1; i >= 0; i--) {
if (!foundNonEmpty) {
foundNonEmpty = this._workspaces[i].list_windows().some(
w => !w.is_on_all_workspaces());
} else if (!this._workspaces[i]._keepAliveId) {
keepAliveWorkspaces.push(this._workspaces[i]);
}
}
// make sure the original method only removes empty workspaces at the end
keepAliveWorkspaces.forEach(ws => (ws._keepAliveId = 1));
originalMethod.call(this);
keepAliveWorkspaces.forEach(ws => delete ws._keepAliveId);
return false;
};
/* eslint-enable no-invalid-this */
}
/** */
function init() {
ExtensionUtils.initTranslations();
}
/**
* @returns {bool} - false (used as MetaLater handler)
*/
function myCheckWorkspaces() {
let keepAliveWorkspaces = [];
let foundNonEmpty = false;
for (let i = this._workspaces.length - 1; i >= 0; i--) {
if (!foundNonEmpty) {
foundNonEmpty = this._workspaces[i].list_windows().some(
w => !w.is_on_all_workspaces());
} else if (!this._workspaces[i]._keepAliveId) {
keepAliveWorkspaces.push(this._workspaces[i]);
}
}
// make sure the original method only removes empty workspaces at the end
keepAliveWorkspaces.forEach(ws => (ws._keepAliveId = 1));
prevCheckWorkspaces.call(this);
keepAliveWorkspaces.forEach(ws => delete ws._keepAliveId);
return false;
}
/** */
function enable() {
prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces = myCheckWorkspaces;
winMover = new WindowMover();
}
/** */
function disable() {
Main.wm._workspaceTracker._checkWorkspaces = prevCheckWorkspaces;
winMover.destroy();
}

View File

@@ -1,300 +1,227 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces
/* exported init buildPrefsWidget */
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const ExtensionUtils = imports.misc.extensionUtils;
const _ = ExtensionUtils.gettext;
const SETTINGS_KEY = 'application-list';
const WORKSPACE_MAX = 36; // compiled in limit of mutter
class NewItem extends GObject.Object {}
GObject.registerClass(NewItem);
class NewItemModel extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#item = new NewItem();
vfunc_get_item_type() {
return NewItem;
}
vfunc_get_n_items() {
return 1;
}
vfunc_get_item(_pos) {
return this.#item;
}
}
class Rule extends GObject.Object {
static [GObject.properties] = {
'app-info': GObject.ParamSpec.object(
'app-info', 'app-info', 'app-info',
GObject.ParamFlags.READWRITE,
Gio.DesktopAppInfo),
'workspace': GObject.ParamSpec.uint(
'workspace', 'workspace', 'workspace',
GObject.ParamFlags.READWRITE,
1, WORKSPACE_MAX, 1),
};
static {
GObject.registerClass(this);
}
}
class RulesList extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#settings;
#rules = [];
#changedId;
constructor(settings) {
super();
this.#settings = settings;
this.#changedId =
this.#settings.connect(`changed::${SETTINGS_KEY}`,
() => this.#sync());
this.#sync();
}
append(appInfo) {
const pos = this.#rules.length;
this.#rules.push(new Rule({appInfo}));
this.#saveRules();
this.items_changed(pos, 0, 1);
}
remove(id) {
const pos = this.#rules.findIndex(r => r.appInfo.get_id() === id);
if (pos < 0)
return;
this.#rules.splice(pos, 1);
this.#saveRules();
this.items_changed(pos, 1, 0);
}
changeWorkspace(id, workspace) {
const pos = this.#rules.findIndex(r => r.appInfo.get_id() === id);
if (pos < 0)
return;
this.#rules[pos].set({workspace});
this.#saveRules();
}
#saveRules() {
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(SETTINGS_KEY,
this.#rules.map(r => `${r.app_info.get_id()}:${r.workspace}`));
this.#settings.unblock_signal_handler(this.#changedId);
}
#sync() {
const removed = this.#rules.length;
this.#rules = [];
for (const stringRule of this.#settings.get_strv(SETTINGS_KEY)) {
const [id, workspace] = stringRule.split(':');
const appInfo = Gio.DesktopAppInfo.new(id);
if (appInfo)
this.#rules.push(new Rule({appInfo, workspace}));
else
log(`Invalid ID ${id}`);
}
this.items_changed(0, removed, this.#rules.length);
}
vfunc_get_item_type() {
return Rule;
}
vfunc_get_n_items() {
return this.#rules.length;
}
vfunc_get_item(pos) {
return this.#rules[pos] ?? null;
}
}
class AutoMoveSettingsWidget extends Adw.PreferencesGroup {
static {
GObject.registerClass(this);
this.install_action('rules.add', null, self => self._addNewRule());
this.install_action('rules.remove', 's',
(self, name, param) => self._rules.remove(param.unpack()));
this.install_action('rules.change-workspace', '(si)',
(self, name, param) => self._rules.changeWorkspace(...param.deepUnpack()));
}
constructor(settings) {
super({
title: _('Workspace Rules'),
const AutoMoveSettingsWidget = GObject.registerClass(
class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
_init() {
super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
});
this._settings = settings;
this._rules = new RulesList(this._settings);
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.set_child(box);
const store = new Gio.ListStore({item_type: Gio.ListModel});
const listModel = new Gtk.FlattenListModel({model: store});
store.append(this._rules);
store.append(new NewItemModel());
box.append(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Rules')),
use_markup: true,
halign: Gtk.Align.START,
}));
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
css_classes: ['boxed-list'],
valign: Gtk.Align.START,
show_separators: true,
});
this.add(this._list);
box.append(this._list);
this._list.bind_model(listModel, item => {
return item instanceof NewItem
? new NewRuleRow()
: new RuleRow(item);
const context = this._list.get_style_context();
const cssProvider = new Gtk.CssProvider();
cssProvider.load_from_data(
'list { min-width: 30em; }');
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
this._list.append(new NewRuleRow());
this._actionGroup = new Gio.SimpleActionGroup();
this._list.insert_action_group('rules', this._actionGroup);
let action;
action = new Gio.SimpleAction({ name: 'add' });
action.connect('activate', this._onAddActivated.bind(this));
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({
name: 'remove',
parameter_type: new GLib.VariantType('s'),
});
action.connect('activate', this._onRemoveActivated.bind(this));
this._actionGroup.add_action(action);
action = new Gio.SimpleAction({ name: 'update' });
action.connect('activate', () => {
this._settings.set_strv(SETTINGS_KEY,
this._getRuleRows().map(row => `${row.id}:${row.value}`));
});
this._actionGroup.add_action(action);
this._updateAction = action;
this._settings = ExtensionUtils.getSettings();
this._changedId = this._settings.connect('changed',
this._sync.bind(this));
this._sync();
this.connect('destroy', () => this._settings.run_dispose());
}
_addNewRule() {
const dialog = new NewRuleDialog(this.get_root(), this._settings);
_onAddActivated() {
const dialog = new NewRuleDialog(this.get_root());
dialog.connect('response', (dlg, id) => {
const appInfo = id === Gtk.ResponseType.OK
? dialog.get_widget().get_app_info() : null;
if (appInfo)
this._rules.append(appInfo);
if (appInfo) {
this._settings.set_strv(SETTINGS_KEY, [
...this._settings.get_strv(SETTINGS_KEY),
`${appInfo.get_id()}:1`,
]);
}
dialog.destroy();
});
dialog.show();
}
}
class WorkspaceSelector extends Gtk.Widget {
static [GObject.properties] = {
'number': GObject.ParamSpec.uint(
'number', 'number', 'number',
_onRemoveActivated(action, param) {
const removed = param.deepUnpack();
this._settings.set_strv(SETTINGS_KEY,
this._settings.get_strv(SETTINGS_KEY).filter(entry => {
const [id] = entry.split(':');
return id !== removed;
}));
}
_getRuleRows() {
return [...this._list].filter(row => !!row.id);
}
_sync() {
const oldRules = this._getRuleRows();
const newRules = this._settings.get_strv(SETTINGS_KEY).map(entry => {
const [id, value] = entry.split(':');
return { id, value };
});
this._settings.block_signal_handler(this._changedId);
this._updateAction.enabled = false;
newRules.forEach(({ id, value }, index) => {
const row = oldRules.find(r => r.id === id);
const appInfo = row
? null : Gio.DesktopAppInfo.new(id);
if (row)
row.set({ value });
else if (appInfo)
this._list.insert(new RuleRow(appInfo, value), index);
});
const removed = oldRules.filter(
({ id }) => !newRules.find(r => r.id === id));
removed.forEach(r => this._list.remove(r));
this._settings.unblock_signal_handler(this._changedId);
this._updateAction.enabled = true;
}
});
const RuleRow = GObject.registerClass({
Properties: {
'id': GObject.ParamSpec.string(
'id', 'id', 'id',
GObject.ParamFlags.READABLE,
''),
'value': GObject.ParamSpec.uint(
'value', 'value', 'value',
GObject.ParamFlags.READWRITE,
1, WORKSPACE_MAX, 1),
};
static {
GObject.registerClass(this);
this.set_layout_manager_type(Gtk.BoxLayout);
}
constructor() {
super();
this.layout_manager.spacing = 6;
const label = new Gtk.Label({
xalign: 1,
},
}, class RuleRow extends Gtk.ListBoxRow {
_init(appInfo, value) {
const box = new Gtk.Box({
spacing: 6,
margin_top: 6,
margin_bottom: 6,
margin_start: 6,
margin_end: 6,
});
this.bind_property('number',
label, 'label',
GObject.BindingFlags.SYNC_CREATE);
label.set_parent(this);
const buttonProps = {
css_classes: ['circular'],
valign: Gtk.Align.CENTER,
};
this._decButton = new Gtk.Button({
icon_name: 'list-remove-symbolic',
...buttonProps,
});
this._decButton.set_parent(this);
this._decButton.connect('clicked', () => this.number--);
this._incButton = new Gtk.Button({
icon_name: 'list-add-symbolic',
...buttonProps,
});
this._incButton.set_parent(this);
this._incButton.connect('clicked', () => this.number++);
this.connect('notify::number', () => this._syncButtons());
this._syncButtons();
}
_syncButtons() {
this._decButton.sensitive = this.number > 1;
this._incButton.sensitive = this.number < WORKSPACE_MAX;
}
}
class RuleRow extends Adw.ActionRow {
static {
GObject.registerClass(this);
}
constructor(rule) {
const {appInfo} = rule;
const id = appInfo.get_id();
super({
super._init({
activatable: false,
title: rule.appInfo.get_display_name(),
value,
child: box,
});
this._appInfo = appInfo;
const icon = new Gtk.Image({
css_classes: ['icon-dropshadow'],
gicon: appInfo.get_icon(),
pixel_size: 32,
});
this.add_prefix(icon);
icon.get_style_context().add_class('icon-dropshadow');
box.append(icon);
const wsButton = new WorkspaceSelector();
rule.bind_property('workspace',
wsButton, 'number',
GObject.BindingFlags.SYNC_CREATE);
this.add_suffix(wsButton);
wsButton.connect('notify::number', () => {
this.activate_action('rules.change-workspace',
new GLib.Variant('(si)', [id, wsButton.number]));
const label = new Gtk.Label({
label: appInfo.get_display_name(),
halign: Gtk.Align.START,
hexpand: true,
max_width_chars: 20,
ellipsize: Pango.EllipsizeMode.END,
});
box.append(label);
const spinButton = new Gtk.SpinButton({
adjustment: new Gtk.Adjustment({
lower: 1,
upper: WORKSPACE_MAX,
step_increment: 1,
}),
snap_to_ticks: true,
margin_end: 6,
});
this.bind_property('value',
spinButton, 'value',
GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL);
box.append(spinButton);
const button = new Gtk.Button({
action_name: 'rules.remove',
action_target: new GLib.Variant('s', id),
action_target: new GLib.Variant('s', this.id),
icon_name: 'edit-delete-symbolic',
has_frame: false,
valign: Gtk.Align.CENTER,
});
this.add_suffix(button);
}
}
box.append(button);
this.connect('notify::value',
() => this.activate_action('rules.update', null));
}
get id() {
return this._appInfo.get_id();
}
});
const NewRuleRow = GObject.registerClass(
class NewRuleRow extends Gtk.ListBoxRow {
static {
GObject.registerClass(this);
}
constructor() {
super({
_init() {
super._init({
action_name: 'rules.add',
child: new Gtk.Image({
icon_name: 'list-add-symbolic',
@@ -308,20 +235,17 @@ class NewRuleRow extends Gtk.ListBoxRow {
this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Rule')]);
}
}
});
const NewRuleDialog = GObject.registerClass(
class NewRuleDialog extends Gtk.AppChooserDialog {
static {
GObject.registerClass(this);
}
constructor(parent, settings) {
super({
_init(parent) {
super._init({
transient_for: parent,
modal: true,
});
this._settings = settings;
this._settings = ExtensionUtils.getSettings();
this.get_widget().set({
show_all: true,
@@ -339,10 +263,16 @@ class NewRuleDialog extends Gtk.AppChooserDialog {
this.set_response_sensitive(Gtk.ResponseType.OK,
appInfo && !rules.some(i => i.startsWith(appInfo.get_id())));
}
});
/** */
function init() {
ExtensionUtils.initTranslations();
}
export default class AutoMovePrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new AutoMoveSettingsWidget(this.getSettings());
}
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() {
return new AutoMoveSettingsWidget();
}

View File

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

View File

@@ -1,26 +1,19 @@
/* exported init enable disable */
// Drive menu extension
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Shell from 'gi://Shell';
import St from 'gi://St';
const { Clutter, Gio, GObject, Shell, St } = imports.gi;
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const ShellMountOperation = imports.ui.shellMountOperation;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import * as ShellMountOperation from 'resource:///org/gnome/shell/ui/shellMountOperation.js';
Gio._promisify(Gio.File.prototype, 'query_filesystem_info_async');
const _ = ExtensionUtils.gettext;
var MountMenuItem = GObject.registerClass(
class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
static {
GObject.registerClass(this);
}
constructor(mount) {
super({
_init(mount) {
super._init({
style_class: 'drive-menu-item',
});
@@ -49,11 +42,33 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
this.hide();
mount.connectObject('changed',
() => this._syncVisibility(), this);
this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
this._syncVisibility();
}
_onDestroy() {
if (this._changedId) {
this.mount.disconnect(this._changedId);
this._changedId = 0;
}
super.destroy();
}
_fsIsRemote(root) {
return new Promise((resolve, reject) => {
const attr = Gio.FILE_ATTRIBUTE_FILESYSTEM_REMOTE;
root.query_filesystem_info_async(attr, null, (o, res) => {
try {
const info = root.query_filesystem_info_finish(res);
resolve(!info.get_attribute_boolean(attr));
} catch (e) {
reject(e);
}
});
});
}
async _isInteresting() {
if (!this.mount.can_eject() && !this.mount.can_unmount())
return false;
@@ -68,9 +83,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
const root = this.mount.get_root();
try {
const attr = Gio.FILE_ATTRIBUTE_FILESYSTEM_REMOTE;
const info = await root.query_filesystem_info_async(attr, null);
return !info.get_attribute_boolean(attr);
return await this._fsIsRemote(root);
} catch (e) {
log(`Failed to query filesystem: ${e.message}`);
}
@@ -128,15 +141,12 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
super.activate(event);
}
}
});
let DriveMenu = GObject.registerClass(
class DriveMenu extends PanelMenu.Button {
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Removable devices'));
_init() {
super._init(0.0, _('Removable devices'));
let icon = new St.Icon({
icon_name: 'media-eject-symbolic',
@@ -146,12 +156,12 @@ class DriveMenu extends PanelMenu.Button {
this.add_child(icon);
this._monitor = Gio.VolumeMonitor.get();
this._monitor.connectObject(
'mount-added', (monitor, mount) => this._addMount(mount),
'mount-removed', (monitor, mount) => {
this._removeMount(mount);
this._updateMenuVisibility();
}, this);
this._addedId = this._monitor.connect('mount-added',
(monitor, mount) => this._addMount(mount));
this._removedId = this._monitor.connect('mount-removed', (monitor, mount) => {
this._removeMount(mount);
this._updateMenuVisibility();
});
this._mounts = [];
@@ -193,16 +203,33 @@ class DriveMenu extends PanelMenu.Button {
}
log('Removing a mount that was never added to the menu');
}
_onDestroy() {
if (this._addedId) {
this._monitor.disconnect(this._addedId);
this._monitor.disconnect(this._removedId);
this._addedId = 0;
this._removedId = 0;
}
super._onDestroy();
}
});
/** */
function init() {
ExtensionUtils.initTranslations();
}
export default class PlaceMenuExtension extends Extension {
enable() {
this._indicator = new DriveMenu();
Main.panel.addToStatusArea('drive-menu', this._indicator);
}
let _indicator;
disable() {
this._indicator.destroy();
delete this._indicator;
}
/** */
function enable() {
_indicator = new DriveMenu();
Main.panel.addToStatusArea('drive-menu', _indicator);
}
/** */
function disable() {
_indicator.destroy();
}

View File

@@ -3,4 +3,3 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')

View File

@@ -1,22 +1,17 @@
import {AppIcon} from 'resource:///org/gnome/shell/ui/appDisplay.js';
import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
/* exported enable disable */
const AppDisplay = imports.ui.appDisplay;
export default class Extension {
constructor() {
this._injectionManager = new InjectionManager();
}
let _activateOriginal = null;
enable() {
this._injectionManager.overrideMethod(AppIcon.prototype, 'activate',
originalMethod => {
return function () {
// eslint-disable-next-line no-invalid-this
originalMethod.call(this, 2);
};
});
}
disable() {
this._injectionManager.clear();
}
/** */
function enable() {
_activateOriginal = AppDisplay.AppIcon.prototype.activate;
AppDisplay.AppIcon.prototype.activate = function () {
_activateOriginal.call(this, 2);
};
}
/** */
function disable() {
AppDisplay.AppIcon.prototype.activate = _activateOriginal;
}

View File

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

View File

@@ -1,36 +0,0 @@
/*
* 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, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import St from 'gi://St';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
export default class Extension {
_updateColorScheme(scheme) {
Main.sessionMode.colorScheme = scheme;
St.Settings.get().notify('color-scheme');
}
enable() {
this._savedColorScheme = Main.sessionMode.colorScheme;
this._updateColorScheme('prefer-light');
}
disable() {
this._updateColorScheme(this._savedColorScheme);
}
}

View File

@@ -1,5 +0,0 @@
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)

View File

@@ -1,10 +0,0 @@
{
"extension-id": "@extension_id@",
"uuid": "@uuid@",
"settings-schema": "@gschemaname@",
"gettext-domain": "@gettext_domain@",
"name": "Light Style",
"description": "Switch default to light style",
"shell-version": [ "@shell_current@" ],
"url": "@url@"
}

View File

@@ -15,7 +15,7 @@ foreach e : enabled_extensions
metadata_conf.set('url', 'https://gitlab.gnome.org/GNOME/gnome-shell-extensions')
extension_sources = files(e + '/extension.js')
extension_data = []
extension_data = files(e + '/stylesheet.css')
subdir(e)

View File

@@ -4,6 +4,5 @@ extension_data += configure_file(
configuration: metadata_conf
)
# extension_data += files('stylesheet.css')
# extension_sources += files('prefs.js')
# extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -1,11 +1,11 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Clutter from 'gi://Clutter';
/* exported enable disable */
const { Clutter } = imports.gi;
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js';
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const { WindowPreview } = imports.ui.windowPreview;
const Workspace = imports.ui.workspace;
// testing settings for natural window placement strategy:
const WINDOW_PLACEMENT_NATURAL_ACCURACY = 20; // accuracy of window translate moves (KDE-default: 20)
@@ -97,7 +97,7 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
let rects = [];
for (let i = 0; i < clones.length; i++) {
// save rectangles into 4-dimensional arrays representing two corners of the rectangular: [left_x, top_y, right_x, bottom_y]
let rect = clones[i].boundingBox;
let rect = clones[i].metaWindow.get_frame_rect();
rects[i] = new Rect(rect.x, rect.y, rect.width, rect.height);
bounds = bounds.union(rects[i]);
@@ -236,64 +236,75 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
}
}
export default class NativeWindowPlacementExtension extends Extension {
constructor(metadata) {
super(metadata);
let winInjections, workspaceInjections;
this._injectionManager = new InjectionManager();
}
enable() {
const settings = this.getSettings();
const layoutProto = Workspace.WorkspaceLayout.prototype;
const previewProto = WindowPreview.prototype;
this._injectionManager.overrideMethod(layoutProto, '_createBestLayout', () => {
/* eslint-disable no-invalid-this */
return function () {
this._layoutStrategy = new NaturalLayoutStrategy({
monitor: Main.layoutManager.monitors[this._monitorIndex],
}, settings);
return this._layoutStrategy.computeLayout(this._sortedWindows);
};
/* eslint-enable no-invalid-this */
});
// position window titles on top of windows in overlay
this._injectionManager.overrideMethod(previewProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
if (!settings.get_boolean('window-captions-on-top'))
return;
const alignConstraint = this._title.get_constraints().find(
c => c.align_axis && c.align_axis === Clutter.AlignAxis.Y_AXIS);
alignConstraint.factor = 0;
const bindConstraint = this._title.get_constraints().find(
c => c.coordinate && c.coordinate === Clutter.BindCoordinate.Y);
bindConstraint.offset = 0;
};
/* eslint-enable no-invalid-this */
});
this._injectionManager.overrideMethod(previewProto, '_adjustOverlayOffsets', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
if (settings.get_boolean('window-captions-on-top'))
this._title.translation_y = -this._title.translation_y;
};
/* eslint-enable no-invalid-this */
});
}
disable() {
this._injectionManager.clear();
global.stage.queue_relayout();
}
/** */
function resetState() {
winInjections = { };
workspaceInjections = { };
}
/** */
function enable() {
resetState();
let settings = ExtensionUtils.getSettings();
workspaceInjections['_createBestLayout'] = Workspace.WorkspaceLayout.prototype._createBestLayout;
Workspace.WorkspaceLayout.prototype._createBestLayout = function (_area) {
this._layoutStrategy = new NaturalLayoutStrategy({
monitor: Main.layoutManager.monitors[this._monitorIndex],
}, settings);
return this._layoutStrategy.computeLayout(this._sortedWindows);
};
// position window titles on top of windows in overlay
winInjections['_init'] = WindowPreview.prototype._init;
WindowPreview.prototype._init = function (...args) {
winInjections['_init'].call(this, ...args);
if (!settings.get_boolean('window-captions-on-top'))
return;
const alignConstraint = this._title.get_constraints().find(
c => c.align_axis && c.align_axis === Clutter.AlignAxis.Y_AXIS);
alignConstraint.factor = 0;
const bindConstraint = this._title.get_constraints().find(
c => c.coordinate && c.coordinate === Clutter.BindCoordinate.Y);
bindConstraint.offset = 0;
};
winInjections['_adjustOverlayOffsets'] =
WindowPreview.prototype._adjustOverlayOffsets;
WindowPreview.prototype._adjustOverlayOffsets = function (...args) {
winInjections['_adjustOverlayOffsets'].call(this, ...args);
if (settings.get_boolean('window-captions-on-top'))
this._title.translation_y = -this._title.translation_y;
};
}
/**
* @param {Object} object - object that was modified
* @param {Object} injection - the map of previous injections
* @param {string} name - the @injection key that should be removed
*/
function removeInjection(object, injection, name) {
if (injection[name] === undefined)
delete object[name];
else
object[name] = injection[name];
}
/** */
function disable() {
var i;
for (i in workspaceInjections)
removeInjection(Workspace.WorkspaceLayout.prototype, workspaceInjections, i);
for (i in winInjections)
removeInjection(WindowPreview.prototype, winInjections, i);
global.stage.queue_relayout();
resetState();
}

View File

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

View File

@@ -1,27 +1,25 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Clutter from 'gi://Clutter';
import GObject from 'gi://GObject';
import St from 'gi://St';
/* exported init enable disable */
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const { Clutter, GObject, St } = imports.gi;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
import {PlacesManager} from './placeDisplay.js';
const Me = ExtensionUtils.getCurrentExtension();
const PlaceDisplay = Me.imports.placeDisplay;
const _ = ExtensionUtils.gettext;
const N_ = x => x;
const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass(
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
static {
GObject.registerClass(this);
}
constructor(info) {
super({
_init(info) {
super._init({
style_class: 'place-menu-item',
});
this._info = info;
@@ -52,8 +50,17 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
this.add_child(this._ejectButton);
}
info.connectObject('changed',
this._propertiesChanged.bind(this), this);
this._changedId = info.connect('changed',
this._propertiesChanged.bind(this));
}
destroy() {
if (this._changedId) {
this._info.disconnect(this._changedId);
this._changedId = 0;
}
super.destroy();
}
activate(event) {
@@ -66,7 +73,7 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
this._icon.gicon = info.icon;
this._label.text = info.name;
}
}
});
const SECTIONS = [
'special',
@@ -75,13 +82,10 @@ const SECTIONS = [
'network',
];
let PlacesMenu = GObject.registerClass(
class PlacesMenu extends PanelMenu.Button {
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Places'));
_init() {
super._init(0.0, _('Places'));
let label = new St.Label({
text: _('Places'),
@@ -90,7 +94,7 @@ class PlacesMenu extends PanelMenu.Button {
});
this.add_actor(label);
this.placesManager = new PlacesManager();
this.placesManager = new PlaceDisplay.PlacesManager();
this._sections = { };
@@ -126,20 +130,26 @@ class PlacesMenu extends PanelMenu.Button {
this._sections[id].actor.visible = places.length > 0;
}
});
/** */
function init() {
ExtensionUtils.initTranslations();
}
export default class PlacesMenuExtension extends Extension {
enable() {
this._indicator = new PlacesMenu();
let _indicator;
let pos = Main.sessionMode.panel.left.length;
if ('apps-menu' in Main.panel.statusArea)
pos++;
Main.panel.addToStatusArea('places-menu', this._indicator, pos, 'left');
}
/** */
function enable() {
_indicator = new PlacesMenu();
disable() {
this._indicator.destroy();
delete this._indicator;
}
let pos = Main.sessionMode.panel.left.indexOf('appMenu');
if ('apps-menu' in Main.panel.statusArea)
pos++;
Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
}
/** */
function disable() {
_indicator.destroy();
}

View File

@@ -3,6 +3,5 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_sources += files('placeDisplay.js')

View File

@@ -1,19 +1,15 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import Shell from 'gi://Shell';
import {EventEmitter} from 'resource:///org/gnome/shell/misc/signals.js';
import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const { Gio, GLib, Shell } = imports.gi;
const Signals = imports.signals;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as ShellMountOperation from 'resource:///org/gnome/shell/ui/shellMountOperation.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const ShellMountOperation = imports.ui.shellMountOperation;
const _ = ExtensionUtils.gettext;
const N_ = x => x;
Gio._promisify(Gio.AppInfo, 'launch_default_for_uri_async');
Gio._promisify(Gio.File.prototype, 'mount_enclosing_volume');
const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
const Hostname1Iface = '<node> \
@@ -23,10 +19,8 @@ const Hostname1Iface = '<node> \
</node>';
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
class PlaceInfo extends EventEmitter {
class PlaceInfo {
constructor(...params) {
super();
this._init(...params);
}
@@ -34,7 +28,7 @@ class PlaceInfo extends EventEmitter {
this.kind = kind;
this.file = file;
this.name = name || this._getFileName();
this.icon = icon ? new Gio.ThemedIcon({name: icon}) : this.getIcon();
this.icon = icon ? new Gio.ThemedIcon({ name: icon }) : this.getIcon();
}
destroy() {
@@ -46,7 +40,7 @@ class PlaceInfo extends EventEmitter {
async _ensureMountAndLaunch(context, tryMount) {
try {
await Gio.AppInfo.launch_default_for_uri_async(this.file.get_uri(), context, null);
await this._launchDefaultForUri(this.file.get_uri(), context, null);
} catch (err) {
if (!err.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
Main.notifyError(_('Failed to launch “%s”').format(this.name), err.message);
@@ -58,7 +52,7 @@ class PlaceInfo extends EventEmitter {
};
let op = new ShellMountOperation.ShellMountOperation(source);
try {
await this.file.mount_enclosing_volume(0, op.mountOp, null);
await this._mountEnclosingVolume(0, op.mountOp, null);
if (tryMount)
this._ensureMountAndLaunch(context, false);
@@ -97,16 +91,16 @@ class PlaceInfo extends EventEmitter {
// icon from the query info above
switch (this.kind) {
case 'network':
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'});
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
case 'devices':
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'});
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
case 'special':
case 'bookmarks':
default:
if (!this.file.is_native())
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'});
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
else
return new Gio.ThemedIcon({name: 'folder-symbolic'});
return new Gio.ThemedIcon({ name: 'folder-symbolic' });
}
}
@@ -120,7 +114,34 @@ class PlaceInfo extends EventEmitter {
throw e;
}
}
_launchDefaultForUri(uri, context, cancel) {
return new Promise((resolve, reject) => {
Gio.AppInfo.launch_default_for_uri_async(uri, context, cancel, (o, res) => {
try {
Gio.AppInfo.launch_default_for_uri_finish(res);
resolve();
} catch (e) {
reject(e);
}
});
});
}
_mountEnclosingVolume(flags, mountOp, cancel) {
return new Promise((resolve, reject) => {
this.file.mount_enclosing_volume(flags, mountOp, cancel, (o, res) => {
try {
this.file.mount_enclosing_volume_finish(res);
resolve();
} catch (e) {
reject(e);
}
});
});
}
}
Signals.addSignalMethods(PlaceInfo.prototype);
class RootInfo extends PlaceInfo {
_init() {
@@ -140,7 +161,7 @@ class RootInfo extends PlaceInfo {
}
getIcon() {
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'});
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
}
_propertiesChanged(proxy) {
@@ -248,10 +269,8 @@ const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_VIDEOS,
];
export class PlacesManager extends EventEmitter {
var PlacesManager = class {
constructor() {
super();
this._places = {
special: [],
devices: [],
@@ -259,26 +278,16 @@ export class PlacesManager extends EventEmitter {
network: [],
};
this._settings = new Gio.Settings({schema_id: BACKGROUND_SCHEMA});
this._settings.connectObject('changed::show-desktop-icons',
() => this._updateSpecials(), this);
this._settings = new Gio.Settings({ schema_id: BACKGROUND_SCHEMA });
this._showDesktopIconsChangedId = this._settings.connect(
'changed::show-desktop-icons', this._updateSpecials.bind(this));
this._updateSpecials();
/*
* Show devices, code more or less ported from nautilus-places-sidebar.c
*/
this._volumeMonitor = Gio.VolumeMonitor.get();
this._volumeMonitor.connectObject(
'volume-added', () => this._updateMounts(),
'volume-removed', () => this._updateMounts(),
'volume-changed', () => this._updateMounts(),
'mount-added', () => this._updateMounts(),
'mount-removed', () => this._updateMounts(),
'mount-changed', () => this._updateMounts(),
'drive-connected', () => this._updateMounts(),
'drive-disconnected', () => this._updateMounts(),
'drive-changed', () => this._updateMounts(),
this);
this._connectVolumeMonitorSignals();
this._updateMounts();
this._bookmarksFile = this._findBookmarksFile();
@@ -303,11 +312,34 @@ export class PlacesManager extends EventEmitter {
}
}
_connectVolumeMonitorSignals() {
const signals = [
'volume-added',
'volume-removed',
'volume-changed',
'mount-added',
'mount-removed',
'mount-changed',
'drive-connected',
'drive-disconnected',
'drive-changed',
];
this._volumeMonitorSignals = [];
let func = this._updateMounts.bind(this);
for (let i = 0; i < signals.length; i++) {
let id = this._volumeMonitor.connect(signals[i], func);
this._volumeMonitorSignals.push(id);
}
}
destroy() {
this._settings?.disconnectObject(this);
if (this._settings)
this._settings.disconnect(this._showDesktopIconsChangedId);
this._settings = null;
this._volumeMonitor.disconnectObject(this);
for (let i = 0; i < this._volumeMonitorSignals.length; i++)
this._volumeMonitor.disconnect(this._volumeMonitorSignals[i]);
if (this._monitor)
this._monitor.cancel();
@@ -533,4 +565,5 @@ export class PlacesManager extends EventEmitter {
get(kind) {
return this._places[kind];
}
}
};
Signals.addSignalMethods(PlacesManager.prototype);

View File

@@ -1,3 +1,4 @@
/* exported enable disable */
/* Screenshot Window Sizer for Gnome Shell
*
* Copyright (c) 2013 Owen Taylor <otaylor@redhat.com>
@@ -18,151 +19,147 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import Clutter from 'gi://Clutter';
import Meta from 'gi://Meta';
import Shell from 'gi://Shell';
import St from 'gi://St';
const { Clutter, Meta, Shell, St } = imports.gi;
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const MESSAGE_FADE_TIME = 2000;
export default class ScreenshotWindowSizerExtension extends Extension {
SIZES = [
[624, 351],
[800, 450],
[1024, 576],
[1200, 675],
[1600, 900],
[360, 654], // Phone portrait maximized
[720, 360], // Phone landscape fullscreen
];
let text;
_flashMessage(message) {
if (!this._text) {
this._text = new St.Label({style_class: 'screenshot-sizer-message'});
Main.uiGroup.add_actor(this._text);
}
this._text.remove_all_transitions();
this._text.text = message;
this._text.opacity = 255;
const monitor = Main.layoutManager.primaryMonitor;
this._text.set_position(
monitor.x + Math.floor(monitor.width / 2 - this._text.width / 2),
monitor.y + Math.floor(monitor.height / 2 - this._text.height / 2));
this._text.ease({
opacity: 0,
duration: MESSAGE_FADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => this._hideMessage(),
});
}
_hideMessage() {
this._text.destroy();
delete this._text;
}
/**
* @param {Meta.Display} display - the display
* @param {Meta.Window=} window - for per-window bindings, the window
* @param {Meta.KeyBinding} binding - the key binding
*/
_cycleScreenshotSizes(display, window, binding) {
// Probably this isn't useful with 5 sizes, but you can decrease instead
// of increase by holding down shift.
let modifiers = binding.get_modifiers();
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0;
// Unmaximize first
if (window.get_maximized() !== 0)
window.unmaximize(Meta.MaximizeFlags.BOTH);
let workArea = window.get_work_area_current_monitor();
let outerRect = window.get_frame_rect();
// Double both axes if on a hidpi display
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let scaledSizes = this.SIZES.map(size => size.map(wh => wh * scaleFactor))
.filter(([w, h]) => w <= workArea.width && h <= workArea.height);
// Find the nearest 16:9 size for the current window size
let nearestIndex;
let nearestError;
for (let i = 0; i < scaledSizes.length; i++) {
let [width, height] = scaledSizes[i];
// get the best initial window size
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
if (nearestIndex === undefined || error < nearestError) {
nearestIndex = i;
nearestError = error;
}
}
// get the next size up or down from ideal
let newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length;
let [newWidth, newHeight] = scaledSizes[newIndex];
// Push the window onscreen if it would be resized offscreen
let newX = outerRect.x;
let newY = outerRect.y;
if (newX + newWidth > workArea.x + workArea.width)
newX = Math.max(workArea.x + workArea.width - newWidth);
if (newY + newHeight > workArea.y + workArea.height)
newY = Math.max(workArea.y + workArea.height - newHeight);
const id = window.connect('size-changed', () => {
window.disconnect(id);
this._notifySizeChange(window);
});
window.move_resize_frame(true, newX, newY, newWidth, newHeight);
}
/**
* @param {Meta.Window} window - the window whose size changed
*/
_notifySizeChange(window) {
const {scaleFactor} = St.ThemeContext.get_for_stage(global.stage);
let newOuterRect = window.get_frame_rect();
let message = '%d×%d'.format(
newOuterRect.width / scaleFactor,
newOuterRect.height / scaleFactor);
// The new size might have been constrained by geometry hints (e.g. for
// a terminal) - in that case, include the actual ratio to the message
// we flash
let actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
if (Math.abs(actualNumerator - 16) > 0.01)
message += ' (%.2f:9)'.format(actualNumerator);
this._flashMessage(message);
}
enable() {
Main.wm.addKeybinding(
'cycle-screenshot-sizes',
this.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL,
this._cycleScreenshotSizes.bind(this));
Main.wm.addKeybinding(
'cycle-screenshot-sizes-backward',
this.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW | Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.NORMAL,
this._cycleScreenshotSizes.bind(this));
}
disable() {
Main.wm.removeKeybinding('cycle-screenshot-sizes');
Main.wm.removeKeybinding('cycle-screenshot-sizes-backward');
}
/** */
function hideMessage() {
text.destroy();
text = null;
}
/**
* @param {string} message - the message to flash
*/
function flashMessage(message) {
if (!text) {
text = new St.Label({ style_class: 'screenshot-sizer-message' });
Main.uiGroup.add_actor(text);
}
text.remove_all_transitions();
text.text = message;
text.opacity = 255;
let monitor = Main.layoutManager.primaryMonitor;
text.set_position(
monitor.x + Math.floor(monitor.width / 2 - text.width / 2),
monitor.y + Math.floor(monitor.height / 2 - text.height / 2));
text.ease({
opacity: 0,
duration: MESSAGE_FADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: hideMessage,
});
}
let SIZES = [
[624, 351],
[800, 450],
[1024, 576],
[1200, 675],
[1600, 900],
[360, 654], // Phone portrait maximized
[720, 360], // Phone landscape fullscreen
];
/**
* @param {Meta.Display} display - the display
* @param {Meta.Window=} window - for per-window bindings, the window
* @param {Meta.KeyBinding} binding - the key binding
*/
function cycleScreenshotSizes(display, window, binding) {
// Probably this isn't useful with 5 sizes, but you can decrease instead
// of increase by holding down shift.
let modifiers = binding.get_modifiers();
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0;
// Unmaximize first
if (window.get_maximized() !== 0)
window.unmaximize(Meta.MaximizeFlags.BOTH);
let workArea = window.get_work_area_current_monitor();
let outerRect = window.get_frame_rect();
// Double both axes if on a hidpi display
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
let scaledSizes = SIZES.map(size => size.map(wh => wh * scaleFactor))
.filter(([w, h]) => w <= workArea.width && h <= workArea.height);
// Find the nearest 16:9 size for the current window size
let nearestIndex;
let nearestError;
for (let i = 0; i < scaledSizes.length; i++) {
let [width, height] = scaledSizes[i];
// ignore sizes bigger than the workArea
if (width > workArea.width || height > workArea.height)
continue;
// get the best initial window size
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
if (nearestIndex === undefined || error < nearestError) {
nearestIndex = i;
nearestError = error;
}
}
// get the next size up or down from ideal
let newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length;
let [newWidth, newHeight] = scaledSizes[newIndex];
// Push the window onscreen if it would be resized offscreen
let newX = outerRect.x;
let newY = outerRect.y;
if (newX + newWidth > workArea.x + workArea.width)
newX = Math.max(workArea.x + workArea.width - newWidth);
if (newY + newHeight > workArea.y + workArea.height)
newY = Math.max(workArea.y + workArea.height - newHeight);
window.move_resize_frame(true, newX, newY, newWidth, newHeight);
let newOuterRect = window.get_frame_rect();
let message = '%d×%d'.format(
newOuterRect.width / scaleFactor,
newOuterRect.height / scaleFactor);
// The new size might have been constrained by geometry hints (e.g. for
// a terminal) - in that case, include the actual ratio to the message
// we flash
let actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
if (Math.abs(actualNumerator - 16) > 0.01)
message += ' (%.2f:9)'.format(actualNumerator);
flashMessage(message);
}
/** */
function enable() {
Main.wm.addKeybinding(
'cycle-screenshot-sizes',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
Main.wm.addKeybinding(
'cycle-screenshot-sizes-backward',
ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.PER_WINDOW | Meta.KeyBindingFlags.IS_REVERSED,
Shell.ActionMode.NORMAL,
cycleScreenshotSizes);
}
/** */
function disable() {
Main.wm.removeKeybinding('cycle-screenshot-sizes');
Main.wm.removeKeybinding('cycle-screenshot-sizes-backward');
}

View File

@@ -3,6 +3,5 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -1,26 +1,32 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Load shell theme from ~/.local/share/themes/name/gnome-shell
/* exported init */
import Gio from 'gi://Gio';
const { Gio } = imports.gi;
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import {getThemeDirs, getModeThemeDirs} from './util.js';
const Me = ExtensionUtils.getCurrentExtension();
const Util = Me.imports.util;
const SETTINGS_KEY = 'name';
export default class ThemeManager extends Extension {
class ThemeManager {
constructor() {
this._settings = ExtensionUtils.getSettings();
}
enable() {
this._settings = this.getSettings();
this._settings.connect(`changed::${SETTINGS_KEY}`, this._changeTheme.bind(this));
this._changedId = this._settings.connect(`changed::${SETTINGS_KEY}`, this._changeTheme.bind(this));
this._changeTheme();
}
disable() {
this._settings?.run_dispose();
this._settings = null;
if (this._changedId) {
this._settings.disconnect(this._changedId);
this._changedId = 0;
}
Main.setThemeStylesheet(null);
Main.loadTheme();
@@ -31,10 +37,10 @@ export default class ThemeManager extends Extension {
let themeName = this._settings.get_string(SETTINGS_KEY);
if (themeName) {
const stylesheetPaths = getThemeDirs()
const stylesheetPaths = Util.getThemeDirs()
.map(dir => `${dir}/${themeName}/gnome-shell/gnome-shell.css`);
stylesheetPaths.push(...getModeThemeDirs()
stylesheetPaths.push(...Util.getModeThemeDirs()
.map(dir => `${dir}/${themeName}.css`));
stylesheet = stylesheetPaths.find(path => {
@@ -44,10 +50,17 @@ export default class ThemeManager extends Extension {
}
if (stylesheet)
log(`loading user theme: ${stylesheet}`);
global.log(`loading user theme: ${stylesheet}`);
else
log('loading default theme (Adwaita)');
global.log('loading default theme (Adwaita)');
Main.setThemeStylesheet(stylesheet);
Main.loadTheme();
}
}
/**
* @returns {ThemeManager} - the extension state object
*/
function init() {
return new ThemeManager();
}

View File

@@ -1,34 +1,51 @@
// -*- 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 */
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
const { Gio, GLib, GObject, Gtk } = imports.gi;
import {ExtensionPreferences} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const ExtensionUtils = imports.misc.extensionUtils;
import {getThemeDirs, getModeThemeDirs} from './util.js';
const Me = ExtensionUtils.getCurrentExtension();
const Util = Me.imports.util;
Gio._promisify(Gio.File.prototype, 'enumerate_children_async');
Gio._promisify(Gio.File.prototype, 'query_info_async');
Gio._promisify(Gio.FileEnumerator.prototype, 'next_files_async');
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');
class UserThemePrefsWidget extends Adw.PreferencesGroup {
static {
GObject.registerClass(this);
}
const UserThemePrefsWidget = GObject.registerClass(
class UserThemePrefsWidget extends Gtk.ScrolledWindow {
_init() {
super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
});
constructor(settings) {
super({title: 'Themes'});
const box = new Gtk.Box();
this.set_child(box);
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
show_separators: true,
halign: Gtk.Align.CENTER,
valign: Gtk.Align.START,
hexpand: true,
margin_start: 60,
margin_end: 60,
margin_top: 60,
margin_bottom: 60,
});
this._list.get_style_context().add_class('frame');
box.append(this._list);
this._actionGroup = new Gio.SimpleActionGroup();
this.insert_action_group('theme', this._actionGroup);
this._list.insert_action_group('theme', this._actionGroup);
this._settings = settings;
this._settings = ExtensionUtils.getSettings();
this._actionGroup.add_action(
this._settings.create_action('name'));
@@ -41,7 +58,7 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
}
async _collectThemes() {
for (const dirName of getThemeDirs()) {
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))
@@ -62,7 +79,7 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
}
}
for (const dirName of getModeThemeDirs()) {
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'))
@@ -76,10 +93,10 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
}
_addTheme(name) {
const row = new ThemeRow(name);
const row = new ThemeRow(name, this._settings);
this._rows.set(name, row);
this.add(row);
this._list.append(row);
}
async _enumerateDir(dir) {
@@ -106,29 +123,64 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
return fileInfos.map(info => info.get_name());
}
}
});
class ThemeRow extends Adw.ActionRow {
static {
GObject.registerClass(this);
}
const ThemeRow = GObject.registerClass(
class ThemeRow extends Gtk.ListBoxRow {
_init(name, settings) {
this._name = name;
this._settings = settings;
constructor(name) {
const check = new Gtk.CheckButton({
const box = new Gtk.Box({
spacing: 12,
margin_start: 12,
margin_end: 12,
margin_top: 12,
margin_bottom: 12,
});
super._init({
action_name: 'theme.name',
action_target: new GLib.Variant('s', name),
child: box,
});
super({
title: name || 'Default',
activatable_widget: check,
box.append(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.append(this._checkmark);
const id = this._settings.connect('changed::name',
this._syncCheckmark.bind(this));
this._syncCheckmark();
this.connect('destroy', () => {
this._settings.disconnect(id);
this._settings = null;
});
this.add_prefix(check);
}
_syncCheckmark() {
const visible = this._name === this._settings.get_string('name');
this._checkmark.opacity = visible ? 1. : 0;
}
});
/** */
function init() {
}
export default class UserThemePrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new UserThemePrefsWidget(this.getSettings());
}
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() {
return new UserThemePrefsWidget();
}

View File

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

View File

@@ -1,11 +1,12 @@
import GLib from 'gi://GLib';
/* exported getThemeDirs getModeThemeDirs */
const { GLib } = imports.gi;
const fn = (...args) => GLib.build_filenamev(args);
/**
* @returns {string[]} - an ordered list of theme directories
*/
export function getThemeDirs() {
function getThemeDirs() {
return [
fn(GLib.get_home_dir(), '.themes'),
fn(GLib.get_user_data_dir(), 'themes'),
@@ -16,7 +17,7 @@ export function getThemeDirs() {
/**
* @returns {string[]} - an ordered list of mode theme directories
*/
export function getModeThemeDirs() {
function getModeThemeDirs() {
return GLib.get_system_data_dirs()
.map(dir => fn(dir, 'gnome-shell', 'theme'));
}

View File

@@ -1,4 +1,4 @@
@import url("stylesheet-dark.css");
@import url("stylesheet.css");
#panel.bottom-panel {
border-top-width: 1px;

View File

@@ -1,28 +1,21 @@
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
import Meta from 'gi://Meta';
import Shell from 'gi://Shell';
import St from 'gi://St';
/* exported init */
const { Clutter, Gio, GLib, GObject, Gtk, Meta, Shell, St } = imports.gi;
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const Overview = imports.ui.overview;
const PopupMenu = imports.ui.popupMenu;
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as Overview from 'resource:///org/gnome/shell/ui/overview.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const Me = ExtensionUtils.getCurrentExtension();
const { WindowPicker, WindowPickerToggle } = Me.imports.windowPicker;
const { WorkspaceIndicator } = Me.imports.workspaceIndicator;
import {WindowPicker, WindowPickerToggle} from './windowPicker.js';
import {WorkspaceIndicator} from './workspaceIndicator.js';
const _ = ExtensionUtils.gettext;
const ICON_TEXTURE_SIZE = 24;
const DND_ACTIVATE_TIMEOUT = 500;
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const GroupingMode = {
NEVER: 0,
AUTO: 1,
@@ -55,6 +48,10 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
});
this.addMenuItem(this._minimizeItem);
this._notifyMinimizedId = this._metaWindow.connect(
'notify::minimized', this._updateMinimizeItem.bind(this));
this._updateMinimizeItem();
this._maximizeItem = new PopupMenu.PopupMenuItem('');
this._maximizeItem.connect('activate', () => {
if (this._metaWindow.get_maximized() === Meta.MaximizeFlags.BOTH)
@@ -64,20 +61,21 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
});
this.addMenuItem(this._maximizeItem);
this._notifyMaximizedHId = this._metaWindow.connect(
'notify::maximized-horizontally',
this._updateMaximizeItem.bind(this));
this._notifyMaximizedVId = this._metaWindow.connect(
'notify::maximized-vertically',
this._updateMaximizeItem.bind(this));
this._updateMaximizeItem();
this._closeItem = new PopupMenu.PopupMenuItem(_('Close'));
this._closeItem.connect('activate', () => {
this._metaWindow.delete(global.get_current_time());
});
this.addMenuItem(this._closeItem);
this._metaWindow.connectObject(
'notify::minimized', this._updateMinimizeItem.bind(this),
'notify::maximized-horizontally', this._updateMaximizeItem.bind(this),
'notify::maximized-vertically', this._updateMaximizeItem.bind(this),
this);
this._updateMinimizeItem();
this._updateMaximizeItem();
this.actor.connect('destroy', this._onDestroy.bind(this));
this.connect('open-state-changed', () => {
if (!this.isOpen)
@@ -100,42 +98,46 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
this._maximizeItem.label.text = maximized
? _('Unmaximize') : _('Maximize');
}
_onDestroy() {
this._metaWindow.disconnect(this._notifyMinimizedId);
this._metaWindow.disconnect(this._notifyMaximizedHId);
this._metaWindow.disconnect(this._notifyMaximizedVId);
}
}
const WindowTitle = GObject.registerClass(
class WindowTitle extends St.BoxLayout {
static {
GObject.registerClass(this);
}
_init(metaWindow) {
this._metaWindow = metaWindow;
constructor(metaWindow) {
super({
super._init({
style_class: 'window-button-box',
x_expand: true,
y_expand: true,
});
this._metaWindow = metaWindow;
this._icon = new St.Bin({style_class: 'window-button-icon'});
this._icon = new St.Bin({ style_class: 'window-button-icon' });
this.add(this._icon);
this.label_actor = new St.Label({y_align: Clutter.ActorAlign.CENTER});
this.label_actor = new St.Label({ y_align: Clutter.ActorAlign.CENTER });
this.label_actor.clutter_text.single_line_mode = true;
this.add(this.label_actor);
this._textureCache = St.TextureCache.get_default();
this._textureCache.connectObject('icon-theme-changed',
() => this._updateIcon(), this);
this._metaWindow.connectObject(
'notify::wm-class',
() => this._updateIcon(), GObject.ConnectFlags.AFTER,
'notify::gtk-application-id',
() => this._updateIcon(), GObject.ConnectFlags.AFTER,
'notify::title', () => this._updateTitle(),
'notify::minimized', () => this._minimizedChanged(),
this);
this._iconThemeChangedId = this._textureCache.connect(
'icon-theme-changed', this._updateIcon.bind(this));
this._notifyWmClass = this._metaWindow.connect_after(
'notify::wm-class', this._updateIcon.bind(this));
this._notifyAppId = this._metaWindow.connect_after(
'notify::gtk-application-id', this._updateIcon.bind(this));
this._updateIcon();
this.connect('destroy', this._onDestroy.bind(this));
this._notifyTitleId = this._metaWindow.connect(
'notify::title', this._updateTitle.bind(this));
this._notifyMinimizedId = this._metaWindow.connect(
'notify::minimized', this._minimizedChanged.bind(this));
this._minimizedChanged();
}
@@ -165,33 +167,38 @@ class WindowTitle extends St.BoxLayout {
});
}
}
}
class BaseButton extends St.Button {
static {
GObject.registerClass({
GTypeFlags: GObject.TypeFlags.ABSTRACT,
Properties: {
'ignore-workspace': GObject.ParamSpec.boolean(
'ignore-workspace', 'ignore-workspace', 'ignore-workspace',
GObject.ParamFlags.READWRITE,
false),
},
}, this);
_onDestroy() {
this._textureCache.disconnect(this._iconThemeChangedId);
this._metaWindow.disconnect(this._notifyTitleId);
this._metaWindow.disconnect(this._notifyMinimizedId);
this._metaWindow.disconnect(this._notifyWmClass);
this._metaWindow.disconnect(this._notifyAppId);
}
});
constructor(perMonitor, monitorIndex) {
super({
const BaseButton = GObject.registerClass({
GTypeFlags: GObject.TypeFlags.ABSTRACT,
Properties: {
'ignore-workspace': GObject.ParamSpec.boolean(
'ignore-workspace', 'ignore-workspace', 'ignore-workspace',
GObject.ParamFlags.READWRITE,
false),
},
}, class BaseButton extends St.Button {
_init(perMonitor, monitorIndex) {
this._perMonitor = perMonitor;
this._monitorIndex = monitorIndex;
this._ignoreWorkspace = false;
super._init({
style_class: 'window-button',
can_focus: true,
x_expand: true,
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
});
this._perMonitor = perMonitor;
this._monitorIndex = monitorIndex;
this._ignoreWorkspace = false;
this.connect('notify::allocation',
this._updateIconGeometry.bind(this));
this.connect('clicked', this._onClicked.bind(this));
@@ -200,23 +207,17 @@ class BaseButton extends St.Button {
this._contextMenuManager = new PopupMenu.PopupMenuManager(this);
global.window_manager.connectObject('switch-workspace',
() => this._updateVisibility(), this);
this._switchWorkspaceId = global.window_manager.connect(
'switch-workspace', this._updateVisibility.bind(this));
if (this._perMonitor) {
global.display.connectObject(
this._windowEnteredMonitorId = global.display.connect(
'window-entered-monitor',
this._windowEnteredOrLeftMonitor.bind(this),
this._windowEnteredOrLeftMonitor.bind(this));
this._windowLeftMonitorId = global.display.connect(
'window-left-monitor',
this._windowEnteredOrLeftMonitor.bind(this),
this);
this._windowEnteredOrLeftMonitor.bind(this));
}
this._tooltip = new Tooltip(this, {
style_class: 'dash-label',
visible: false,
});
Main.uiGroup.add_child(this._tooltip);
}
get active() {
@@ -239,48 +240,6 @@ class BaseButton extends St.Button {
this._updateVisibility();
}
_setLongPressTimeout() {
if (this._longPressTimeoutId)
return;
const {longPressDuration} = Clutter.Settings.get_default();
this._longPressTimeoutId =
GLib.timeout_add(GLib.PRIORITY_DEFAULT, longPressDuration, () => {
delete this._longPressTimeoutId;
if (this._canOpenPopupMenu() && !this._contextMenu.isOpen)
this._openMenu(this._contextMenu);
return GLib.SOURCE_REMOVE;
});
}
_removeLongPressTimeout() {
if (!this._longPressTimeoutId)
return;
GLib.source_remove(this._longPressTimeoutId);
delete this._longPressTimeoutId;
}
vfunc_button_press_event(buttonEvent) {
if (buttonEvent.button === 1)
this._setLongPressTimeout();
return super.vfunc_button_press_event(buttonEvent);
}
vfunc_button_release_event(buttonEvent) {
this._removeLongPressTimeout();
return super.vfunc_button_release_event(buttonEvent);
}
vfunc_touch_event(touchEvent) {
if (touchEvent.type === Clutter.EventType.TOUCH_BEGIN)
this._setLongPressTimeout();
else if (touchEvent.type === Clutter.EventType.TOUCH_END)
this._removeLongPressTimeout();
return super.vfunc_touch_event(touchEvent);
}
activate() {
if (this.active)
return;
@@ -318,11 +277,9 @@ class BaseButton extends St.Button {
if (isOpen)
return;
const extension = Extension.lookupByURL(import.meta.url);
let [x, y] = global.get_pointer();
let actor = global.stage.get_actor_at_pos(Clutter.PickMode.REACTIVE, x, y);
if (extension.someWindowListContains(actor))
if (Me.stateObj.someWindowListContains(actor))
actor.sync_hover();
}
@@ -377,24 +334,28 @@ class BaseButton extends St.Button {
}
_onDestroy() {
this._tooltip.destroy();
}
}
global.window_manager.disconnect(this._switchWorkspaceId);
if (this._windowEnteredMonitorId)
global.display.disconnect(this._windowEnteredMonitorId);
this._windowEnteredMonitorId = 0;
if (this._windowLeftMonitorId)
global.display.disconnect(this._windowLeftMonitorId);
this._windowLeftMonitorId = 0;
}
});
const WindowButton = GObject.registerClass(
class WindowButton extends BaseButton {
static {
GObject.registerClass(this);
}
constructor(metaWindow, perMonitor, monitorIndex) {
super(perMonitor, monitorIndex);
_init(metaWindow, perMonitor, monitorIndex) {
super._init(perMonitor, monitorIndex);
this.metaWindow = metaWindow;
metaWindow.connectObject(
'notify::skip-taskbar', () => this._updateVisibility(),
'workspace-changed', () => this._updateVisibility(),
this);
this._skipTaskbarId = metaWindow.connect('notify::skip-taskbar', () => {
this._updateVisibility();
});
this._updateVisibility();
this._windowTitle = new WindowTitle(this.metaWindow);
@@ -408,8 +369,11 @@ class WindowButton extends BaseButton {
this._contextMenuManager.addMenu(this._contextMenu);
Main.uiGroup.add_actor(this._contextMenu.actor);
global.display.connectObject('notify::focus-window',
() => this._updateStyle(), this);
this._workspaceChangedId = this.metaWindow.connect(
'workspace-changed', this._updateVisibility.bind(this));
this._notifyFocusId = global.display.connect(
'notify::focus-window', this._updateStyle.bind(this));
this._updateStyle();
}
@@ -419,7 +383,7 @@ class WindowButton extends BaseButton {
return;
}
if (!button || button === 1)
if (button === 1)
this._minimizeOrActivateWindow(this.metaWindow);
else
this._openMenu(this._contextMenu);
@@ -453,9 +417,13 @@ class WindowButton extends BaseButton {
_onDestroy() {
super._onDestroy();
this.metaWindow.disconnect(this._skipTaskbarId);
this.metaWindow.disconnect(this._workspaceChangedId);
global.display.disconnect(this._notifyFocusId);
this._contextMenu.destroy();
}
}
});
class AppContextMenu extends PopupMenu.PopupMenu {
constructor(source) {
@@ -515,18 +483,15 @@ class AppContextMenu extends PopupMenu.PopupMenu {
}
}
const AppButton = GObject.registerClass(
class AppButton extends BaseButton {
static {
GObject.registerClass(this);
}
constructor(app, perMonitor, monitorIndex) {
super(perMonitor, monitorIndex);
_init(app, perMonitor, monitorIndex) {
super._init(perMonitor, monitorIndex);
this.app = app;
this._updateVisibility();
let stack = new St.Widget({layout_manager: new Clutter.BinLayout()});
let stack = new St.Widget({ layout_manager: new Clutter.BinLayout() });
this.set_child(stack);
this._singleWindowTitle = new St.Bin({
@@ -569,17 +534,18 @@ class AppButton extends BaseButton {
Main.uiGroup.add_actor(this._appContextMenu.actor);
this._textureCache = St.TextureCache.get_default();
this._textureCache.connectObject('icon-theme-changed', () => {
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
}, this);
this._iconThemeChangedId =
this._textureCache.connect('icon-theme-changed', () => {
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
});
this.app.connectObject('windows-changed',
() => this._windowsChanged(), this);
this._windowsChangedId = this.app.connect(
'windows-changed', this._windowsChanged.bind(this));
this._windowsChanged();
this._windowTracker = Shell.WindowTracker.get_default();
this._windowTracker.connectObject('notify::focus-app',
() => this._updateStyle(), this);
this._notifyFocusId = this._windowTracker.connect(
'notify::focus-app', this._updateStyle.bind(this));
this._updateStyle();
}
@@ -661,7 +627,7 @@ class AppButton extends BaseButton {
if (contextMenuWasOpen)
this._contextMenu.close();
if (!button || button === 1) {
if (button === 1) {
if (menuWasOpen)
return;
@@ -699,17 +665,21 @@ class AppButton extends BaseButton {
_onDestroy() {
super._onDestroy();
this._textureCache.disconnect(this._iconThemeChangedId);
this._windowTracker.disconnect(this._notifyFocusId);
this.app.disconnect(this._windowsChangedId);
this._menu.destroy();
}
}
});
const WindowList = GObject.registerClass(
class WindowList extends St.Widget {
static {
GObject.registerClass(this);
}
_init(perMonitor, monitor) {
this._perMonitor = perMonitor;
this._monitor = monitor;
constructor(perMonitor, monitor, settings) {
super({
super._init({
name: 'panel',
style_class: 'bottom-panel solid',
reactive: true,
@@ -718,10 +688,7 @@ class WindowList extends St.Widget {
});
this.connect('destroy', this._onDestroy.bind(this));
this._perMonitor = perMonitor;
this._monitor = monitor;
let box = new St.BoxLayout({x_expand: true, y_expand: true});
let box = new St.BoxLayout({ x_expand: true, y_expand: true });
this.add_actor(box);
let toggle = new WindowPickerToggle();
@@ -730,7 +697,7 @@ class WindowList extends St.Widget {
toggle.connect('notify::checked',
this._updateWindowListVisibility.bind(this));
let layout = new Clutter.BoxLayout({homogeneous: true});
let layout = new Clutter.BoxLayout({ homogeneous: true });
this._windowList = new St.Widget({
style_class: 'window-list',
reactive: true,
@@ -748,19 +715,19 @@ class WindowList extends St.Widget {
});
this._windowList.connect('scroll-event', this._onScrollEvent.bind(this));
let indicatorsBox = new St.BoxLayout({x_align: Clutter.ActorAlign.END});
let indicatorsBox = new St.BoxLayout({ x_align: Clutter.ActorAlign.END });
box.add(indicatorsBox);
this._workspaceIndicator = new WorkspaceIndicator();
indicatorsBox.add_child(this._workspaceIndicator.container);
this._mutterSettings = new Gio.Settings({schema_id: 'org.gnome.mutter'});
this._mutterSettings.connectObject(
this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
this._workspacesOnlyOnPrimaryChangedId = this._mutterSettings.connect(
'changed::workspaces-only-on-primary',
() => this._updateWorkspaceIndicatorVisibility(),
this._updateWorkspaceIndicatorVisibility.bind(this));
this._dynamicWorkspacesChangedId = this._mutterSettings.connect(
'changed::dynamic-workspaces',
() => this._updateWorkspaceIndicatorVisibility(),
this);
this._updateWorkspaceIndicatorVisibility.bind(this));
this._updateWorkspaceIndicatorVisibility();
this._menuManager = new PopupMenu.PopupMenuManager(this);
@@ -778,58 +745,56 @@ class WindowList extends St.Widget {
this._updatePosition();
this._appSystem = Shell.AppSystem.get_default();
this._appSystem.connectObject('app-state-changed',
this._onAppStateChanged.bind(this), this);
this._appStateChangedId = this._appSystem.connect(
'app-state-changed', this._onAppStateChanged.bind(this));
// Hack: OSK gesture is tied to visibility, piggy-back on that
Main.keyboard._bottomDragAction.connectObject('notify::enabled',
action => {
const visible = !action.enabled;
if (visible) {
Main.uiGroup.set_child_above_sibling(
this, Main.layoutManager.keyboardBox);
} else {
Main.uiGroup.set_child_above_sibling(
this, Main.layoutManager.panelBox);
}
this._updateKeyboardAnchor();
}, this);
this._keyboardVisiblechangedId =
Main.keyboard._bottomDragAction.connect('notify::enabled',
action => {
const visible = !action.enabled;
if (visible) {
Main.uiGroup.set_child_above_sibling(
this, Main.layoutManager.keyboardBox);
} else {
Main.uiGroup.set_child_above_sibling(
this, Main.layoutManager.panelBox);
}
this._updateKeyboardAnchor();
});
let workspaceManager = global.workspace_manager;
workspaceManager.connectObject('notify::n-workspaces',
() => this._updateWorkspaceIndicatorVisibility(), this);
this._updateWorkspaceIndicatorVisibility();
this._workspaceSignals = new Map();
this._nWorkspacesChangedId = workspaceManager.connect(
'notify::n-workspaces', this._onWorkspacesChanged.bind(this));
this._onWorkspacesChanged();
global.window_manager.connectObject('switch-workspace',
() => this._checkGrouping(), this);
this._switchWorkspaceId = global.window_manager.connect(
'switch-workspace', this._checkGrouping.bind(this));
Main.overview.connectObject(
'showing', () => {
this.hide();
this._updateKeyboardAnchor();
},
'hidden', () => {
this.visible = !this._monitor.inFullscreen;
this._updateKeyboardAnchor();
}, this);
global.display.connectObject('in-fullscreen-changed', () => {
// Work-around for initial change from unknown to !fullscreen
if (Main.overview.visible)
this.hide();
this._overviewShowingId = Main.overview.connect('showing', () => {
this.hide();
this._updateKeyboardAnchor();
}, this);
});
this._windowSignals = new Map();
this._windowCreatedId = global.display.connect(
'window-created', (dsp, win) => this._addWindow(win));
this._overviewHidingId = Main.overview.connect('hidden', () => {
this.visible = !Main.layoutManager.primaryMonitor.inFullscreen;
this._updateKeyboardAnchor();
});
Main.xdndHandler.connectObject(
'drag-begin', () => this._monitorDrag(),
'drag-end', () => this._stopMonitoringDrag(),
this);
this._fullscreenChangedId =
global.display.connect('in-fullscreen-changed', () => {
// Work-around for initial change from unknown to !fullscreen
if (Main.overview.visible)
this.hide();
this._updateKeyboardAnchor();
});
this._dragBeginId = Main.xdndHandler.connect('drag-begin',
this._monitorDrag.bind(this));
this._dragEndId = Main.xdndHandler.connect('drag-end',
this._stopMonitoringDrag.bind(this));
this._dragMonitor = {
dragMotion: this._onDragMotion.bind(this),
};
@@ -837,9 +802,9 @@ class WindowList extends St.Widget {
this._dndTimeoutId = 0;
this._dndWindow = null;
this._settings = settings;
this._settings.connect('changed::grouping-mode',
() => this._groupingModeChanged());
this._settings = ExtensionUtils.getSettings();
this._groupingModeChangedId = this._settings.connect(
'changed::grouping-mode', this._groupingModeChanged.bind(this));
this._grouped = undefined;
this._groupingModeChanged();
}
@@ -878,8 +843,7 @@ class WindowList extends St.Widget {
}
_updateWindowListVisibility() {
const {windowPicker} = Extension.lookupByURL(import.meta.url);
const visible = !windowPicker.visible;
let visible = !Main.windowPicker.visible;
this._windowList.ease({
opacity: visible ? 255 : 0,
@@ -897,7 +861,7 @@ class WindowList extends St.Widget {
let children = this._windowList.get_children();
let [, childWidth] = children[0].get_preferred_width(-1);
let {spacing} = this._windowList.layout_manager;
let { spacing } = this._windowList.layout_manager;
let workspace = global.workspace_manager.get_active_workspace();
let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
@@ -949,7 +913,7 @@ class WindowList extends St.Widget {
w2.metaWindow.get_stable_sequence();
});
for (let i = 0; i < windows.length; i++)
this._addWindow(windows[i].metaWindow);
this._onWindowAdded(null, windows[i].metaWindow);
} else {
let apps = this._appSystem.get_running().sort((a1, a2) => {
return _getAppStableSequence(a1) -
@@ -989,7 +953,7 @@ class WindowList extends St.Widget {
child.destroy();
}
_addWindow(win) {
_onWindowAdded(ws, win) {
if (!this._grouped)
this._checkGrouping();
@@ -1000,26 +964,21 @@ class WindowList extends St.Widget {
if (children.find(c => c.metaWindow === win))
return;
this._windowSignals.set(
win, win.connect('unmanaged', () => this._removeWindow(win)));
let button = new WindowButton(win, this._perMonitor, this._monitor.index);
this._settings.bind('display-all-workspaces',
button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
this._windowList.add_child(button);
}
_removeWindow(win) {
_onWindowRemoved(ws, win) {
if (this._grouped)
this._checkGrouping();
if (this._grouped)
return;
const id = this._windowSignals.get(win);
if (id)
win.disconnect(id);
this._windowSignals.delete(win);
if (win.get_compositor_private())
return; // not actually removed, just moved to another workspace
let children = this._windowList.get_children();
let child = children.find(c => c.metaWindow === win);
@@ -1027,6 +986,39 @@ class WindowList extends St.Widget {
child.destroy();
}
_onWorkspacesChanged() {
let workspaceManager = global.workspace_manager;
let numWorkspaces = workspaceManager.n_workspaces;
for (let i = 0; i < numWorkspaces; i++) {
let workspace = workspaceManager.get_workspace_by_index(i);
if (this._workspaceSignals.has(workspace))
continue;
let signals = { windowAddedId: 0, windowRemovedId: 0 };
signals._windowAddedId = workspace.connect_after(
'window-added', this._onWindowAdded.bind(this));
signals._windowRemovedId = workspace.connect(
'window-removed', this._onWindowRemoved.bind(this));
this._workspaceSignals.set(workspace, signals);
}
this._updateWorkspaceIndicatorVisibility();
}
_disconnectWorkspaceSignals() {
let workspaceManager = global.workspace_manager;
let numWorkspaces = workspaceManager.n_workspaces;
for (let i = 0; i < numWorkspaces; i++) {
let workspace = workspaceManager.get_workspace_by_index(i);
let signals = this._workspaceSignals.get(workspace);
this._workspaceSignals.delete(workspace);
workspace.disconnect(signals._windowAddedId);
workspace.disconnect(signals._windowRemovedId);
}
}
_monitorDrag() {
DND.addDragMonitor(this._dragMonitor);
}
@@ -1077,26 +1069,47 @@ class WindowList extends St.Widget {
}
_onDestroy() {
this._mutterSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
this._mutterSettings.disconnect(this._dynamicWorkspacesChangedId);
this._workspaceIndicator.destroy();
Main.ctrlAltTabManager.removeGroup(this);
this._windowSignals.forEach((id, win) => win.disconnect(id));
this._windowSignals.clear();
this._appSystem.disconnect(this._appStateChangedId);
this._appStateChangedId = 0;
Main.keyboard._bottomDragAction.disconnect(this._keyboardVisiblechangedId);
this._keyboardVisiblechangedId = 0;
this._disconnectWorkspaceSignals();
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
this._nWorkspacesChangedId = 0;
global.window_manager.disconnect(this._switchWorkspaceId);
this._switchWorkspaceId = 0;
Main.overview.disconnect(this._overviewShowingId);
Main.overview.disconnect(this._overviewHidingId);
global.display.disconnect(this._fullscreenChangedId);
this._stopMonitoringDrag();
Main.xdndHandler.disconnect(this._dragBeginId);
Main.xdndHandler.disconnect(this._dragEndId);
this._settings.run_dispose();
this._settings.disconnect(this._groupingModeChangedId);
let windows = global.get_window_actors();
for (let i = 0; i < windows.length; i++)
windows[i].metaWindow.set_icon_geometry(null);
}
}
});
export default class WindowListExtension extends Extension {
constructor(metadata) {
super(metadata);
class Extension {
constructor() {
ExtensionUtils.initTranslations();
this._windowLists = null;
this._hideOverviewOrig = Main.overview.hide;
@@ -1105,17 +1118,17 @@ export default class WindowListExtension extends Extension {
enable() {
this._windowLists = [];
this._settings = this.getSettings();
this._settings.connectObject('changed::show-on-all-monitors',
() => this._buildWindowLists(), this);
this._settings = ExtensionUtils.getSettings();
this._showOnAllMonitorsChangedId = this._settings.connect(
'changed::show-on-all-monitors', this._buildWindowLists.bind(this));
Main.layoutManager.connectObject('monitors-changed',
() => this._buildWindowLists(), this);
this._monitorsChangedId = Main.layoutManager.connect(
'monitors-changed', this._buildWindowLists.bind(this));
this.windowPicker = new WindowPicker();
Main.windowPicker = new WindowPicker();
Main.overview.hide = () => {
this.windowPicker.close();
Main.windowPicker.close();
this._hideOverviewOrig.call(Main.overview);
};
@@ -1130,7 +1143,7 @@ export default class WindowListExtension extends Extension {
Main.layoutManager.monitors.forEach(monitor => {
if (showOnAllMonitors || monitor === Main.layoutManager.primaryMonitor)
this._windowLists.push(new WindowList(showOnAllMonitors, monitor, this.getSettings()));
this._windowLists.push(new WindowList(showOnAllMonitors, monitor));
});
}
@@ -1138,8 +1151,11 @@ export default class WindowListExtension extends Extension {
if (!this._windowLists)
return;
this._settings.disconnectObject(this);
Main.layoutManager.disconnectObject(this);
this._settings.disconnect(this._showOnAllMonitorsChangedId);
this._showOnAllMonitorsChangedId = 0;
Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0;
this._windowLists.forEach(windowList => {
windowList.hide();
@@ -1147,8 +1163,8 @@ export default class WindowListExtension extends Extension {
});
this._windowLists = null;
this.windowPicker.destroy();
delete this.windowPicker;
Main.windowPicker.destroy();
delete Main.windowPicker;
Main.overview.hide = this._hideOverviewOrig;
}
@@ -1158,66 +1174,9 @@ export default class WindowListExtension extends Extension {
}
}
class Tooltip extends St.Label {
static {
GObject.registerClass(this);
}
constructor(widget, params) {
super(params);
this._widget = widget;
this._widget.connect('notify::hover', () => {
if (this._widget.hover)
this.open();
else
this.close();
});
}
open() {
const buttonTitleWidget = this._widget.label_actor;
const [, , preferredTitleWidth] = buttonTitleWidget.get_preferred_size();
const maxTitleWidth = buttonTitleWidget.allocation.get_width();
const isTitleFullyShown = preferredTitleWidth <= maxTitleWidth;
if (isTitleFullyShown)
return;
this.set({
text: this._widget.label_actor.get_text(),
visible: true,
opacity: 0,
});
const [stageX, stageY] = this._widget.get_transformed_position();
const thumbWidth = this._widget.allocation.get_width();
const tipWidth = this.width;
const tipHeight = this.height;
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
const monitor = Main.layoutManager.findMonitorForActor(this);
const x = Math.clamp(
stageX + xOffset,
monitor.x,
monitor.x + monitor.width - tipWidth);
const y = stageY - tipHeight - TOOLTIP_OFFSET;
this.set_position(x, y);
this.ease({
opacity: 255,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this.visible = this._widget.hover),
});
}
close() {
this.ease({
opacity: 0,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this.visible = this._widget.hover),
});
}
/**
* @returns {Extension} - the extension's state object
*/
function init() {
return new Extension();
}

View File

@@ -3,10 +3,10 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files(
'stylesheet-dark.css',
'stylesheet-light.css'
)
extension_sources += files('prefs.js', 'windowPicker.js', 'workspaceIndicator.js')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
if classic_mode_enabled
extension_data += files('classic.css')
endif

View File

@@ -1,24 +1,34 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
/* exported init buildPrefsWidget */
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const { Gio, GLib, GObject, Gtk } = imports.gi;
class WindowListPrefsWidget extends Adw.PreferencesPage {
static {
GObject.registerClass(this);
}
const ExtensionUtils = imports.misc.extensionUtils;
constructor(settings) {
super();
const _ = ExtensionUtils.gettext;
/** */
function init() {
ExtensionUtils.initTranslations();
}
const WindowListPrefsWidget = GObject.registerClass(
class WindowListPrefsWidget extends Gtk.Box {
_init() {
super._init({
orientation: Gtk.Orientation.VERTICAL,
spacing: 6,
margin_top: 36,
margin_bottom: 36,
margin_start: 36,
margin_end: 36,
halign: Gtk.Align.CENTER,
});
this._actionGroup = new Gio.SimpleActionGroup();
this.insert_action_group('window-list', this._actionGroup);
this._settings = settings;
this._settings = ExtensionUtils.getSettings();
this._actionGroup.add_action(
this._settings.create_action('grouping-mode'));
this._actionGroup.add_action(
@@ -26,61 +36,62 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
this._actionGroup.add_action(
this._settings.create_action('display-all-workspaces'));
const groupingGroup = new Adw.PreferencesGroup({
title: _('Window Grouping'),
let groupingLabel = '<b>%s</b>'.format(_('Window Grouping'));
this.append(new Gtk.Label({
label: groupingLabel, use_markup: true,
halign: Gtk.Align.START,
}));
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
spacing: 12,
margin_bottom: 12,
});
this.add(groupingGroup);
this.append(box);
const context = box.get_style_context();
const cssProvider = new Gtk.CssProvider();
cssProvider.load_from_data(
'box { padding: 12px; }');
context.add_provider(cssProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
context.add_class('frame');
context.add_class('view');
const modes = [
{mode: 'never', title: _('Never group windows')},
{mode: 'auto', title: _('Group windows when space is limited')},
{mode: 'always', title: _('Always group windows')},
{ mode: 'never', label: _('Never group windows') },
{ mode: 'auto', label: _('Group windows when space is limited') },
{ mode: 'always', label: _('Always group windows') },
];
for (const {mode, title} of modes) {
let group = null;
for (const { mode, label } of modes) {
const check = new Gtk.CheckButton({
action_name: 'window-list.grouping-mode',
action_target: new GLib.Variant('s', mode),
label,
group,
margin_end: 12,
});
const row = new Adw.ActionRow({
activatable_widget: check,
title,
});
row.add_prefix(check);
groupingGroup.add(row);
group = check;
box.append(check);
}
const miscGroup = new Adw.PreferencesGroup();
this.add(miscGroup);
let toggle = new Gtk.Switch({
this.append(new Gtk.CheckButton({
label: _('Show on all monitors'),
action_name: 'window-list.show-on-all-monitors',
valign: Gtk.Align.CENTER,
});
let row = new Adw.ActionRow({
title: _('Show on all monitors'),
activatable_widget: toggle,
});
row.add_suffix(toggle);
miscGroup.add(row);
}));
toggle = new Gtk.Switch({
this.append(new Gtk.CheckButton({
label: _('Show windows from all workspaces'),
action_name: 'window-list.display-all-workspaces',
valign: Gtk.Align.CENTER,
});
this._settings.bind('display-all-workspaces',
toggle, 'active', Gio.SettingsBindFlags.DEFAULT);
row = new Adw.ActionRow({
title: _('Show windows from all workspaces'),
activatable_widget: toggle,
});
row.add_suffix(toggle);
miscGroup.add(row);
}));
}
}
});
export default class WindowListPrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new WindowListPrefsWidget(this.getSettings());
}
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() {
return new WindowListPrefsWidget();
}

View File

@@ -1,113 +0,0 @@
.window-list {
spacing: 2px;
font-size: 10pt;
}
.bottom-panel {
background-color: #000000;
border-top-width: 0px;
padding: 2px;
}
.window-button {
padding: 2px, 1px;
}
.window-button:first-child:ltr {
padding-left: 2px;
}
.window-button:last-child:rtl {
padding-right: 2px;
}
.window-button-box {
spacing: 4px;
}
.window-button > StWidget,
.window-picker-toggle > StWidget {
color: #bbb;
background-color: #1d1d1d;
border-radius: 4px;
padding: 3px 6px 1px;
transition: 100ms ease;
}
.window-button > StWidget {
-st-natural-width: 18.75em;
max-width: 18.75em;
}
.window-button:hover > StWidget,
.window-picker-toggle:hover > StWidget {
color: #fff;
background-color: #303030;
}
.window-button:active > StWidget,
.window-button:focus > StWidget {
color: #fff;
background-color: #3f3f3f;
}
.window-button.focused > StWidget,
.window-picker-toggle:checked > StWidget {
color: #fff;
background-color: #3f3f3f;
}
.window-button.focused:active > StWidget,
.window-picker-toggle:checked:active > StWidget {
color: #fff;
background-color: #3f3f3f;
}
.window-button.minimized > StWidget {
color: #666;
background-color: #161616;
}
.window-button.minimized:active > StWidget {
color: #666;
background-color: #161616;
}
.window-button-icon {
width: 24px;
height: 24px;
}
.window-list-workspace-indicator .status-label-bin {
background-color: rgba(200, 200, 200, 0.3);
padding: 0 3px;
margin: 3px;
}
.window-list-workspace-indicator .workspaces-box {
spacing: 3px;
padding: 3px;
}
.window-list-workspace-indicator .workspace {
width: 52px;
border-radius: 4px;
background-color: #1e1e1e;
}
.window-list-workspace-indicator .workspace.active {
background-color: #3f3f3f;
}
.window-list-window-preview {
background-color: #bebebe;
border-radius: 1px;
}
.window-list-window-preview.active {
background-color: #d4d4d4;
}
.notification {
font-weight: normal;
}

View File

@@ -0,0 +1,115 @@
.window-list {
spacing: 2px;
font-size: 10pt;
}
.window-button {
padding: 1px;
}
.window-button:first-child:ltr {
padding-left: 2px;
}
.window-button:last-child:rtl {
padding-right: 2px;
}
.window-button-box {
spacing: 4px;
}
.window-button > StWidget,
.window-picker-toggle > StWidget {
color: #bbb;
background-color: black;
border-radius: 2px;
padding: 3px 6px 1px;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.5);
text-shadow: 1px 1px 4px rgba(0,0,0,0.8);
}
.window-picker-toggle {
padding: 3px;
}
.window-picker-toggle > StWidet {
border: 1px solid rgba(255,255,255,0.3);
}
.window-button > StWidget {
-st-natural-width: 18.75em;
max-width: 18.75em;
}
.window-button:hover > StWidget,
.window-picker-toggle:hover > StWidget {
color: white;
background-color: #1f1f1f;
}
.window-button:active > StWidget,
.window-button:focus > StWidget {
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.5);
}
.window-button.focused > StWidget,
.window-picker-toggle:checked > StWidget {
color: white;
box-shadow: inset 1px 1px 4px rgba(255,255,255,0.7);
}
.window-button.focused:active > StWidget,
.window-picker-toggle:checked:active > StWidget {
box-shadow: inset 2px 2px 4px rgba(255,255,255,0.7);
}
.window-button.minimized > StWidget {
color: #666;
box-shadow: inset -1px -1px 4px rgba(255,255,255,0.5);
}
.window-button.minimized:active > StWidget {
box-shadow: inset -2px -2px 4px rgba(255,255,255,0.5);
}
.window-button-icon {
width: 24px;
height: 24px;
}
.window-list-workspace-indicator .status-label-bin {
background-color: rgba(200, 200, 200, .3);
border: 1px solid #cccccc;
padding: 0 3px;
margin: 3px;
}
.window-list-workspace-indicator .workspaces-box {
spacing: 3px;
padding: 3px;
}
.window-list-workspace-indicator .workspace {
border: 2px solid #000;
width: 52px;
border-radius: 4px;
background-color: #595959;
}
.window-list-workspace-indicator .workspace.active {
border-color: #fff;
}
.window-list-window-preview {
background-color: #bebebe;
border: 1px solid #828282;
}
.window-list-window-preview.active {
background-color: #d4d4d4;
}
.notification {
font-weight: normal;
}

View File

@@ -1,30 +1,25 @@
import Clutter from 'gi://Clutter';
import GObject from 'gi://GObject';
import Shell from 'gi://Shell';
import St from 'gi://St';
/* exported WindowPicker, WindowPickerToggle */
const { Clutter, GObject, Shell, St } = imports.gi;
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
import * as Layout from 'resource:///org/gnome/shell/ui/layout.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import {WorkspacesDisplay} from 'resource:///org/gnome/shell/ui/workspacesView.js';
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const { WorkspacesDisplay } = imports.ui.workspacesView;
const Workspace = imports.ui.workspace;
import {VIGNETTE_BRIGHTNESS} from 'resource:///org/gnome/shell/ui/lightbox.js';
import {
const { VIGNETTE_BRIGHTNESS } = imports.ui.lightbox;
const {
SIDE_CONTROLS_ANIMATION_TIME,
OverviewAdjustment,
ControlsState
} from 'resource:///org/gnome/shell/ui/overviewControls.js';
ControlsState,
} = imports.ui.overviewControls;
let MyWorkspacesDisplay = GObject.registerClass(
class MyWorkspacesDisplay extends WorkspacesDisplay {
static {
GObject.registerClass(this);
}
constructor(controls, overviewAdjustment) {
_init(controls, overviewAdjustment) {
let workspaceManager = global.workspace_manager;
const workspaceAdjustment = new St.Adjustment({
this._overviewAdjustment = overviewAdjustment;
this._workspaceAdjustment = new St.Adjustment({
value: workspaceManager.get_active_workspace_index(),
lower: 0,
page_increment: 1,
@@ -33,16 +28,14 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
upper: workspaceManager.n_workspaces,
});
super(controls, workspaceAdjustment, overviewAdjustment);
this._nWorkspacesChangedId =
workspaceManager.connect('notify::n-workspaces',
this._updateAdjustment.bind(this));
this._windowPicker = controls;
super._init(controls, this._workspaceAdjustment, this._overviewAdjustment);
this._workspaceAdjustment = workspaceAdjustment;
this._workspaceAdjustment.actor = this;
workspaceManager.connectObject('notify::n-workspaces',
() => this._updateAdjustment(), this);
this.add_constraint(
new Layout.MonitorConstraint({
primary: true,
@@ -52,7 +45,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
prepareToEnterOverview(...args) {
if (!this._scrollEventId) {
this._scrollEventId = this._windowPicker.connect('scroll-event',
this._scrollEventId = Main.windowPicker.connect('scroll-event',
this._onScrollEvent.bind(this));
}
@@ -61,7 +54,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
vfunc_hide(...args) {
if (this._scrollEventId > 0)
this._windowPicker.disconnect(this._scrollEventId);
Main.windowPicker.disconnect(this._scrollEventId);
this._scrollEventId = 0;
super.vfunc_hide(...args);
@@ -74,28 +67,95 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
value: workspaceManager.get_active_workspace_index(),
});
}
}
export class WindowPicker extends Clutter.Actor {
static [GObject.signals] = {
'open-state-changed': {param_types: [GObject.TYPE_BOOLEAN]},
};
_onDestroy() {
if (this._nWorkspacesChangedId)
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
this._nWorkspacesChangedId = 0;
static {
GObject.registerClass(this);
super._onDestroy();
}
});
const MyWorkspace = GObject.registerClass(
class MyWorkspace extends Workspace.Workspace {
_init(...args) {
super._init(...args);
this._adjChangedId =
this._overviewAdjustment.connect('notify::value', () => {
const { value: progress } = this._overviewAdjustment;
const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress;
for (const bg of this._background?._backgroundGroup ?? []) {
bg.content.set({
vignette: true,
brightness,
});
}
});
}
constructor() {
super({reactive: true});
_onDestroy() {
super._onDestroy();
if (this._adjChangedId)
this._overviewAdjustment.disconnect(this._adjChangedId);
this._adjChangedId = 0;
}
});
const MyWorkspaceBackground = GObject.registerClass(
class MyWorkspaceBackground extends Workspace.WorkspaceBackground {
_updateBorderRadius() {
}
vfunc_allocate(box) {
this.set_allocation(box);
const themeNode = this.get_theme_node();
const contentBox = themeNode.get_content_box(box);
this._bin.allocate(contentBox);
const [contentWidth, contentHeight] = contentBox.get_size();
const monitor = Main.layoutManager.monitors[this._monitorIndex];
const xRatio = contentWidth / this._workarea.width;
const yRatio = contentHeight / this._workarea.height;
const right = area => area.x + area.width;
const bottom = area => area.y + area.height;
const offsets = {
left: xRatio * (this._workarea.x - monitor.x),
right: xRatio * (right(monitor) - right(this._workarea)),
top: yRatio * (this._workarea.y - monitor.y),
bottom: yRatio * (bottom(monitor) - bottom(this._workarea)),
};
contentBox.set_origin(-offsets.left, -offsets.top);
contentBox.set_size(
offsets.left + contentWidth + offsets.right,
offsets.top + contentHeight + offsets.bottom);
this._backgroundGroup.allocate(contentBox);
}
});
var WindowPicker = GObject.registerClass({
Signals: {
'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] },
},
}, class extends Clutter.Actor {
_init() {
this._visible = false;
this._modal = false;
this._overlayKeyId = 0;
this._stageKeyPressId = 0;
super._init({ reactive: true });
this._adjustment = new OverviewAdjustment(this);
this._injectionManager = new InjectionManager();
this.connect('destroy', this._onDestroy.bind(this));
global.bind_property('screen-width',
@@ -113,78 +173,21 @@ export class WindowPicker extends Clutter.Actor {
if (!Main.sessionMode.hasOverview) {
this._injectBackgroundShade();
global.display.connectObject('overlay-key', () => {
this._overlayKeyId = global.display.connect('overlay-key', () => {
if (!this._visible)
this.open();
else
this.close();
}, this);
});
}
}
_injectBackgroundShade() {
const backgroundProto = Workspace.WorkspaceBackground.prototype;
this._injectionManager.overrideMethod(backgroundProto, '_updateBorderRadius',
() => {
return function () {};
});
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_allocate',
() => {
/* eslint-disable no-invalid-this */
return function (box) {
this.set_allocation(box);
this._origWorkspace = Workspace.Workspace;
this._origWorkspaceBackground = Workspace.WorkspaceBackground;
const themeNode = this.get_theme_node();
const contentBox = themeNode.get_content_box(box);
this._bin.allocate(contentBox);
const [contentWidth, contentHeight] = contentBox.get_size();
const monitor = Main.layoutManager.monitors[this._monitorIndex];
const xRatio = contentWidth / this._workarea.width;
const yRatio = contentHeight / this._workarea.height;
const right = area => area.x + area.width;
const bottom = area => area.y + area.height;
const offsets = {
left: xRatio * (this._workarea.x - monitor.x),
right: xRatio * (right(monitor) - right(this._workarea)),
top: yRatio * (this._workarea.y - monitor.y),
bottom: yRatio * (bottom(monitor) - bottom(this._workarea)),
};
contentBox.set_origin(-offsets.left, -offsets.top);
contentBox.set_size(
offsets.left + contentWidth + offsets.right,
offsets.top + contentHeight + offsets.bottom);
this._backgroundGroup.allocate(contentBox);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_parent_set',
() => {
/* eslint-disable no-invalid-this */
return function () {
setTimeout(() => {
const parent = this.get_parent();
if (!parent)
return;
parent._overviewAdjustment.connectObject('notify::value', () => {
const {value: progress} = parent._overviewAdjustment;
const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress;
for (const bg of this._backgroundGroup ?? []) {
bg.content.set({
vignette: true,
brightness,
});
}
}, this);
});
};
/* eslint-enable */
});
Workspace.Workspace = MyWorkspace;
Workspace.WorkspaceBackground = MyWorkspaceBackground;
}
get visible() {
@@ -270,40 +273,45 @@ export class WindowPicker extends Clutter.Actor {
if (this._modal)
return true;
const grab = Main.pushModal(global.stage, {
this._modal = Main.pushModal(this, {
actionMode: Shell.ActionMode.OVERVIEW,
});
if (grab.get_seat_state() !== Clutter.GrabState.NONE) {
this._grab = grab;
this._modal = true;
} else {
Main.popModal(grab);
if (!this._modal) {
this.hide();
return false;
}
} else if (this._modal) {
Main.popModal(this._grab);
Main.popModal(this);
this._modal = false;
this._grab = null;
}
return true;
}
_onDestroy() {
this._injectionManager.clear();
if (this._origWorkspace)
Workspace.Workspace = this._origWorkspace;
if (this._origWorkspaceBackground)
Workspace.WorkspaceBackground = this._origWorkspaceBackground;
if (this._monitorsChangedId)
Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0;
if (this._overlayKeyId)
global.display.disconnect(this._overlayKeyId);
this._overlayKeyId = 0;
if (this._stageKeyPressId)
global.stage.disconnect(this._stageKeyPressId);
this._stageKeyPressId = 0;
}
}
});
export class WindowPickerToggle extends St.Button {
static {
GObject.registerClass(this);
}
constructor() {
var WindowPickerToggle = GObject.registerClass(
class WindowPickerToggle extends St.Button {
_init() {
let iconBin = new St.Widget({
layout_manager: new Clutter.BinLayout(),
});
@@ -315,23 +323,22 @@ export class WindowPickerToggle extends St.Button {
x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER,
}));
super({
super._init({
style_class: 'window-picker-toggle',
child: iconBin,
visible: !Main.sessionMode.hasOverview,
toggle_mode: true,
});
const {windowPicker} = Extension.lookupByURL(import.meta.url);
this.connect('notify::checked', () => {
if (this.checked)
windowPicker.open();
Main.windowPicker.open();
else
windowPicker.close();
Main.windowPicker.close();
});
windowPicker.connect('open-state-changed', () => {
this.checked = windowPicker.visible;
Main.windowPicker.connect('open-state-changed', () => {
this.checked = Main.windowPicker.visible;
});
}
}
});

View File

@@ -1,47 +1,45 @@
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
import St from 'gi://St';
/* exported WorkspaceIndicator */
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const _ = ExtensionUtils.gettext;
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button {
static {
GObject.registerClass(this);
}
constructor(window) {
super({
_init(window) {
super._init({
style_class: 'window-list-window-preview',
});
this._delegate = this;
DND.makeDraggable(this, {restoreOnSuccess: true});
DND.makeDraggable(this, { restoreOnSuccess: true });
this._window = window;
this._window.connectObject(
'size-changed', () => this.queue_relayout(),
'position-changed', () => {
this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed',
() => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed',
() => {
this._updateVisible();
this.queue_relayout();
},
'notify::minimized', this._updateVisible.bind(this),
this);
});
this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
global.display.connectObject('notify::focus-window',
this._onFocusChanged.bind(this), this);
this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this));
this._onFocusChanged();
}
@@ -50,6 +48,13 @@ class WindowPreview extends St.Button {
return this._window;
}
_onDestroy() {
this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._focusChangedId);
}
_onFocusChanged() {
if (global.display.focus_window === this._window)
this.add_style_class_name('active');
@@ -64,13 +69,10 @@ class WindowPreview extends St.Button {
this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace();
}
}
});
let WorkspaceLayout = GObject.registerClass(
class WorkspaceLayout extends Clutter.LayoutManager {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_width() {
return [0, 0];
}
@@ -97,15 +99,12 @@ class WorkspaceLayout extends Clutter.LayoutManager {
child.allocate(childBox);
}
}
}
});
let WorkspaceThumbnail = GObject.registerClass(
class WorkspaceThumbnail extends St.Button {
static {
GObject.registerClass(this);
}
constructor(index) {
super({
_init(index) {
super._init({
style_class: 'workspace',
child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(),
@@ -130,13 +129,16 @@ class WorkspaceThumbnail extends St.Button {
let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index);
this._workspace.connectObject(
'window-added', (ws, window) => this._addWindow(window),
'window-removed', (ws, window) => this._removeWindow(window),
this);
global.display.connectObject('restacked',
this._onRestacked.bind(this), this);
this._windowAddedId = this._workspace.connect('window-added',
(ws, window) => {
this._addWindow(window);
});
this._windowRemovedId = this._workspace.connect('window-removed',
(ws, window) => {
this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked();
@@ -234,16 +236,17 @@ class WorkspaceThumbnail extends St.Button {
_onDestroy() {
this._tooltip.destroy();
}
}
export class WorkspaceIndicator extends PanelMenu.Button {
static {
GObject.registerClass(this);
this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId);
}
});
constructor() {
super(0.5, _('Workspace Indicator'), true);
var WorkspaceIndicator = GObject.registerClass(
class WorkspaceIndicator extends PanelMenu.Button {
_init() {
super._init(0.0, _('Workspace Indicator'), true);
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
this.add_style_class_name('window-list-workspace-indicator');
this.remove_style_class_name('panel-button');
@@ -259,7 +262,7 @@ export class WorkspaceIndicator extends PanelMenu.Button {
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._statusLabel = new St.Label({text: this._getStatusText()});
this._statusLabel = new St.Label({ text: this._getStatusText() });
this._statusBin = new St.Bin({
style_class: 'status-label-bin',
@@ -280,24 +283,39 @@ export class WorkspaceIndicator extends PanelMenu.Button {
this._workspacesItems = [];
workspaceManager.connectObject(
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
this);
this._workspaceManagerSignals = [
workspaceManager.connect('notify::n-workspaces',
this._nWorkspacesChanged.bind(this)),
workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._updateThumbnailVisibility.bind(this)),
];
this.connect('scroll-event', this._onScrollEvent.bind(this));
this._updateMenu();
this._updateThumbnails();
this._updateThumbnailVisibility();
this._settings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
this._settings.connectObject('changed::workspace-names',
() => this._updateMenuLabels(), this);
this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' });
this._settingsChangedId = this._settings.connect(
'changed::workspace-names', this._updateMenuLabels.bind(this));
}
_onDestroy() {
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
this._settingsChangedId = 0;
}
super._onDestroy();
}
_updateThumbnailVisibility() {
const {workspaceManager} = global;
const { workspaceManager } = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
@@ -417,4 +435,5 @@ export class WorkspaceIndicator extends PanelMenu.Button {
let newIndex = this._currentWorkspace + diff;
this._activate(newIndex);
}
}
});

View File

@@ -1,290 +1,270 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Clutter from 'gi://Clutter';
import Graphene from 'gi://Graphene';
import St from 'gi://St';
/* exported init */
const { Clutter, Graphene, GObject, St } = imports.gi;
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as OverviewControls from 'resource:///org/gnome/shell/ui/overviewControls.js';
import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js';
import {Workspace} from 'resource:///org/gnome/shell/ui/workspace.js';
import {WorkspacesView} from 'resource:///org/gnome/shell/ui/workspacesView.js';
const Main = imports.ui.main;
const OverviewControls = imports.ui.overviewControls;
const Workspace = imports.ui.workspace;
const WorkspacesView = imports.ui.workspacesView;
const WINDOW_SLOT = 4;
export default class Extension {
var MyWorkspace = GObject.registerClass(
class MyWorkspace extends Workspace.Workspace {
_init(...args) {
super._init(...args);
if (this.metaWorkspace && this.metaWorkspace.index() < 9) {
this._tip = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this.add_actor(this._tip);
this.connect('notify::scale-x', () => {
this._tip.set_scale(1 / this.scale_x, 1 / this.scale_x);
});
} else {
this._tip = null;
}
}
vfunc_allocate(box) {
super.vfunc_allocate(box);
if (this._tip)
this._tip.allocate_preferred_size(0, 0);
}
showTooltip() {
if (!this._tip)
return;
this._tip.text = (this.metaWorkspace.index() + 1).toString();
this._tip.show();
this.set_child_below_sibling(this._tip, null);
}
hideTooltip() {
if (this._tip)
this._tip.hide();
}
getWindowWithTooltip(id) {
const { layoutManager } = this._container;
const slot = layoutManager._windowSlots[id - 1];
return slot ? slot[WINDOW_SLOT].metaWindow : null;
}
showWindowsTooltips() {
const { layoutManager } = this._container;
for (let i = 0; i < layoutManager._windowSlots.length; i++) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
}
}
hideWindowsTooltips() {
const { layoutManager } = this._container;
for (let i in layoutManager._windowSlots) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip();
}
}
// overriding _addWindowClone to apply the tooltip patch on the cloned
// windowPreview
_addWindowClone(metaWindow) {
const clone = super._addWindowClone(metaWindow);
// appling the tooltip patch
(function patchPreview() {
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this._text.add_constraint(new Clutter.BindConstraint({
source: this.windowContainer,
coordinate: Clutter.BindCoordinate.POSITION,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.X_AXIS,
pivot_point: new Graphene.Point({ x: 0.5, y: -1 }),
factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.Y_AXIS,
pivot_point: new Graphene.Point({ x: -1, y: 0.5 }),
factor: 0,
}));
this.add_child(this._text);
}).call(clone);
clone.showTooltip = function (text) {
this._text.set({ text });
this._text.show();
};
clone.hideTooltip = function () {
if (this._text && this._text.visible)
this._text.hide();
};
return clone;
}
});
var MyWorkspacesView = GObject.registerClass(
class MyWorkspacesView extends WorkspacesView.WorkspacesView {
_init(...args) {
super._init(...args);
this._pickWorkspace = false;
this._pickWindow = false;
this._keyPressEventId =
global.stage.connect('key-press-event', this._onKeyPress.bind(this));
this._keyReleaseEventId =
global.stage.connect('key-release-event', this._onKeyRelease.bind(this));
}
_onDestroy() {
super._onDestroy();
global.stage.disconnect(this._keyPressEventId);
global.stage.disconnect(this._keyReleaseEventId);
}
_hideTooltips() {
if (global.stage.get_key_focus() === global.stage)
global.stage.set_key_focus(this._prevFocusActor);
this._pickWindow = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideWindowsTooltips();
}
_hideWorkspacesTooltips() {
global.stage.set_key_focus(this._prevFocusActor);
this._pickWorkspace = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideTooltip();
}
_onKeyRelease(s, o) {
if (this._pickWindow &&
(o.get_key_symbol() === Clutter.KEY_Alt_L ||
o.get_key_symbol() === Clutter.KEY_Alt_R))
this._hideTooltips();
if (this._pickWorkspace &&
(o.get_key_symbol() === Clutter.KEY_Control_L ||
o.get_key_symbol() === Clutter.KEY_Control_R))
this._hideWorkspacesTooltips();
}
_onKeyPress(s, o) {
const { ControlsState } = OverviewControls;
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
return false;
let workspaceManager = global.workspace_manager;
if ((o.get_key_symbol() === Clutter.KEY_Alt_L ||
o.get_key_symbol() === Clutter.KEY_Alt_R) &&
!this._pickWorkspace) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._active = workspaceManager.get_active_workspace_index();
this._pickWindow = true;
this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
return true;
}
if ((o.get_key_symbol() === Clutter.KEY_Control_L ||
o.get_key_symbol() === Clutter.KEY_Control_R) &&
!this._pickWindow) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._pickWorkspace = true;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].showTooltip();
return true;
}
if (global.stage.get_key_focus() !== global.stage)
return false;
// ignore shift presses, they're required to get numerals in azerty keyboards
if ((this._pickWindow || this._pickWorkspace) &&
(o.get_key_symbol() === Clutter.KEY_Shift_L ||
o.get_key_symbol() === Clutter.KEY_Shift_R))
return true;
if (this._pickWindow) {
if (this._active !== workspaceManager.get_active_workspace_index()) {
this._hideTooltips();
return false;
}
let c = o.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = o.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideTooltips();
global.log(c);
return false;
}
}
let win = this._workspaces[this._active].getWindowWithTooltip(c);
this._hideTooltips();
if (win)
Main.activateWindow(win, global.get_current_time());
return true;
}
if (this._pickWorkspace) {
let c = o.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = o.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideWorkspacesTooltips();
return false;
}
}
let workspace = this._workspaces[c - 1];
if (workspace !== undefined)
workspace.metaWorkspace.activate(global.get_current_time());
this._hideWorkspacesTooltips();
return true;
}
return false;
}
});
class Extension {
constructor() {
this._injectionManager = new InjectionManager();
this._origWorkspace = Workspace.Workspace;
this._origWorkspacesView = WorkspacesView.WorkspacesView;
}
enable() {
const previewProto = WindowPreview.prototype;
this._injectionManager.overrideMethod(previewProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
this._text = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this._text.add_constraint(new Clutter.BindConstraint({
source: this.windowContainer,
coordinate: Clutter.BindCoordinate.POSITION,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.X_AXIS,
pivot_point: new Graphene.Point({x: 0.5, y: -1}),
factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.Y_AXIS,
pivot_point: new Graphene.Point({x: -1, y: 0.5}),
factor: 0,
}));
this.add_child(this._text);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(previewProto, 'showTooltip', () => {
/* eslint-disable no-invalid-this */
return function (text) {
this._text.set({text});
this._text.show();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(previewProto, 'hideTooltip', () => {
/* eslint-disable no-invalid-this */
return function () {
this._text?.hide();
};
/* eslint-enable */
});
const workspaceProto = Workspace.prototype;
this._injectionManager.overrideMethod(workspaceProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
if (this.metaWorkspace && this.metaWorkspace.index() < 9) {
this._tip = new St.Label({
style_class: 'extension-windowsNavigator-window-tooltip',
visible: false,
});
this.add_actor(this._tip);
this.connect('notify::scale-x', () => {
this._tip.set_scale(1 / this.scale_x, 1 / this.scale_x);
});
} else {
this._tip = null;
}
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'vfunc_allocate', originalMethod => {
/* eslint-disable no-invalid-this */
return function (box) {
originalMethod.call(this, box);
this._tip?.allocate_preferred_size(0, 0);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'showTooltip', () => {
/* eslint-disable no-invalid-this */
return function () {
if (!this._tip)
return;
this._tip.text = (this.metaWorkspace.index() + 1).toString();
this._tip.show();
this.set_child_below_sibling(this._tip, null);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'hideTooltip', () => {
/* eslint-disable no-invalid-this */
return function () {
this._tip?.hide();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'getWindowWithTooltip', () => {
/* eslint-disable no-invalid-this */
return function (id) {
const {layoutManager} = this._container;
const slot = layoutManager._windowSlots[id - 1];
return slot ? slot[WINDOW_SLOT].metaWindow : null;
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'showWindowsTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
const {layoutManager} = this._container;
for (let i = 0; i < layoutManager._windowSlots.length; i++) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
}
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(workspaceProto, 'hideWindowsTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
const {layoutManager} = this._container;
for (let i in layoutManager._windowSlots) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip();
}
};
/* eslint-enable */
});
const viewProto = WorkspacesView.prototype;
this._injectionManager.overrideMethod(viewProto, '_init', originalMethod => {
/* eslint-disable no-invalid-this */
return function (...args) {
originalMethod.call(this, ...args);
this._pickWorkspace = false;
this._pickWindow = false;
global.stage.connectObject(
'key-press-event', this._onKeyPress.bind(this),
'key-release-event', this._onKeyRelease.bind(this),
this);
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_hideTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
if (global.stage.get_key_focus() === global.stage)
global.stage.set_key_focus(this._prevFocusActor);
this._pickWindow = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideWindowsTooltips();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_hideWorkspacesTooltips', () => {
/* eslint-disable no-invalid-this */
return function () {
global.stage.set_key_focus(this._prevFocusActor);
this._pickWorkspace = false;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].hideTooltip();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_onKeyRelease', () => {
/* eslint-disable no-invalid-this */
return function (actor, event) {
if (this._pickWindow &&
(event.get_key_symbol() === Clutter.KEY_Alt_L ||
event.get_key_symbol() === Clutter.KEY_Alt_R))
this._hideTooltips();
if (this._pickWorkspace &&
(event.get_key_symbol() === Clutter.KEY_Control_L ||
event.get_key_symbol() === Clutter.KEY_Control_R))
this._hideWorkspacesTooltips();
};
/* eslint-enable */
});
this._injectionManager.overrideMethod(viewProto, '_onKeyPress', () => {
/* eslint-disable no-invalid-this */
return function (actor, event) {
const {ControlsState} = OverviewControls;
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
return false;
let workspaceManager = global.workspace_manager;
if ((event.get_key_symbol() === Clutter.KEY_Alt_L ||
event.get_key_symbol() === Clutter.KEY_Alt_R) &&
!this._pickWorkspace) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._active = workspaceManager.get_active_workspace_index();
this._pickWindow = true;
this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
return true;
}
if ((event.get_key_symbol() === Clutter.KEY_Control_L ||
event.get_key_symbol() === Clutter.KEY_Control_R) &&
!this._pickWindow) {
this._prevFocusActor = global.stage.get_key_focus();
global.stage.set_key_focus(null);
this._pickWorkspace = true;
for (let i = 0; i < this._workspaces.length; i++)
this._workspaces[i].showTooltip();
return true;
}
if (global.stage.get_key_focus() !== global.stage)
return false;
// ignore shift presses, they're required to get numerals in azerty keyboards
if ((this._pickWindow || this._pickWorkspace) &&
(event.get_key_symbol() === Clutter.KEY_Shift_L ||
event.get_key_symbol() === Clutter.KEY_Shift_R))
return true;
if (this._pickWindow) {
if (this._active !== workspaceManager.get_active_workspace_index()) {
this._hideTooltips();
return false;
}
let c = event.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = event.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideTooltips();
log(c);
return false;
}
}
let win = this._workspaces[this._active].getWindowWithTooltip(c);
this._hideTooltips();
if (win)
Main.activateWindow(win, global.get_current_time());
return true;
}
if (this._pickWorkspace) {
let c = event.get_key_symbol() - Clutter.KEY_KP_0;
if (c > 9 || c <= 0) {
c = event.get_key_symbol() - Clutter.KEY_0;
if (c > 9 || c <= 0) {
this._hideWorkspacesTooltips();
return false;
}
}
let workspace = this._workspaces[c - 1];
if (workspace !== undefined)
workspace.metaWorkspace.activate(global.get_current_time());
this._hideWorkspacesTooltips();
return true;
}
return false;
};
/* eslint-enable */
});
Workspace.Workspace = MyWorkspace;
WorkspacesView.WorkspacesView = MyWorkspacesView;
}
disable() {
this._injectionManager.clear();
Workspace.Workspace = this._origWorkspace;
WorkspacesView.WorkspacesView = this._origWorkspacesView;
}
}
/**
* @returns {Extension} - the extension's state object
*/
function init() {
return new Extension();
}

View File

@@ -3,4 +3,3 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')

View File

@@ -1,16 +1,15 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
import St from 'gi://St';
/* exported init enable disable */
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const _ = ExtensionUtils.gettext;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
@@ -20,32 +19,32 @@ const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button {
static {
GObject.registerClass(this);
}
constructor(window) {
super({
_init(window) {
super._init({
style_class: 'workspace-indicator-window-preview',
});
this._delegate = this;
DND.makeDraggable(this, {restoreOnSuccess: true});
DND.makeDraggable(this, { restoreOnSuccess: true });
this._window = window;
this._window.connectObject(
'size-changed', () => this.queue_relayout(),
'position-changed', () => {
this.connect('destroy', this._onDestroy.bind(this));
this._sizeChangedId = this._window.connect('size-changed',
() => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed',
() => {
this._updateVisible();
this.queue_relayout();
},
'notify::minimized', this._updateVisible.bind(this),
this);
});
this._minimizedChangedId = this._window.connect('notify::minimized',
this._updateVisible.bind(this));
global.display.connectObject('notify::focus-window',
this._onFocusChanged.bind(this), this);
this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this));
this._onFocusChanged();
}
@@ -54,6 +53,13 @@ class WindowPreview extends St.Button {
return this._window;
}
_onDestroy() {
this._window.disconnect(this._sizeChangedId);
this._window.disconnect(this._positionChangedId);
this._window.disconnect(this._minimizedChangedId);
global.display.disconnect(this._focusChangedId);
}
_onFocusChanged() {
if (global.display.focus_window === this._window)
this.add_style_class_name('active');
@@ -68,13 +74,10 @@ class WindowPreview extends St.Button {
this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace();
}
}
});
let WorkspaceLayout = GObject.registerClass(
class WorkspaceLayout extends Clutter.LayoutManager {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_width() {
return [0, 0];
}
@@ -101,15 +104,12 @@ class WorkspaceLayout extends Clutter.LayoutManager {
child.allocate(childBox);
}
}
}
});
let WorkspaceThumbnail = GObject.registerClass(
class WorkspaceThumbnail extends St.Button {
static {
GObject.registerClass(this);
}
constructor(index) {
super({
_init(index) {
super._init({
style_class: 'workspace',
child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(),
@@ -134,13 +134,16 @@ class WorkspaceThumbnail extends St.Button {
let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index);
this._workspace.connectObject(
'window-added', (ws, window) => this._addWindow(window),
'window-removed', (ws, window) => this._removeWindow(window),
this);
global.display.connectObject('restacked',
this._onRestacked.bind(this), this);
this._windowAddedId = this._workspace.connect('window-added',
(ws, window) => {
this._addWindow(window);
});
this._windowRemovedId = this._workspace.connect('window-removed',
(ws, window) => {
this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked();
@@ -238,16 +241,17 @@ class WorkspaceThumbnail extends St.Button {
_onDestroy() {
this._tooltip.destroy();
}
}
this._workspace.disconnect(this._windowAddedId);
this._workspace.disconnect(this._windowRemovedId);
global.display.disconnect(this._restackedId);
}
});
let WorkspaceIndicator = GObject.registerClass(
class WorkspaceIndicator extends PanelMenu.Button {
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Workspace Indicator'));
_init() {
super._init(0.0, _('Workspace Indicator'));
let container = new St.Widget({
layout_manager: new Clutter.BinLayout(),
@@ -279,11 +283,14 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._workspaceSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._workspaceSection);
workspaceManager.connectObject(
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
this);
this._workspaceManagerSignals = [
workspaceManager.connect_after('notify::n-workspaces',
this._nWorkspacesChanged.bind(this)),
workspaceManager.connect_after('workspace-switched',
this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._updateThumbnailVisibility.bind(this)),
];
this.connect('scroll-event', this._onScrollEvent.bind(this));
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
@@ -291,19 +298,28 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._updateThumbnails();
this._updateThumbnailVisibility();
this._settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
this._settings.connectObject(`changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this), this);
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
this._settingsChangedId = this._settings.connect(
`changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this));
}
_onDestroy() {
for (let i = 0; i < this._workspaceManagerSignals.length; i++)
global.workspace_manager.disconnect(this._workspaceManagerSignals[i]);
if (this._settingsChangedId) {
this._settings.disconnect(this._settingsChangedId);
this._settingsChangedId = 0;
}
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
super._onDestroy();
}
_updateThumbnailVisibility() {
const {workspaceManager} = global;
const { workspaceManager } = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
@@ -424,16 +440,22 @@ class WorkspaceIndicator extends PanelMenu.Button {
let newIndex = global.workspace_manager.get_active_workspace_index() + diff;
this._activate(newIndex);
}
});
/** */
function init() {
ExtensionUtils.initTranslations();
}
export default class WorkspaceIndicatorExtension extends Extension {
enable() {
this._indicator = new WorkspaceIndicator();
Main.panel.addToStatusArea('workspace-indicator', this._indicator);
}
let _indicator;
disable() {
this._indicator.destroy();
delete this._indicator;
}
/** */
function enable() {
_indicator = new WorkspaceIndicator();
Main.panel.addToStatusArea('workspace-indicator', _indicator);
}
/** */
function disable() {
_indicator.destroy();
}

View File

@@ -3,6 +3,5 @@ extension_data += configure_file(
output: metadata_name,
configuration: metadata_conf
)
extension_data += files('stylesheet.css')
extension_sources += files('prefs.js')

View File

@@ -1,165 +1,131 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Adw from 'gi://Adw';
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
import Pango from 'gi://Pango';
/* exported init buildPrefsWidget */
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const _ = ExtensionUtils.gettext;
const N_ = e => e;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
class NewItem extends GObject.Object {}
GObject.registerClass(NewItem);
class NewItemModel extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#item = new NewItem();
vfunc_get_item_type() {
return NewItem;
}
vfunc_get_n_items() {
return 1;
}
vfunc_get_item(_pos) {
return this.#item;
}
}
class WorkspacesList extends GObject.Object {
static [GObject.interfaces] = [Gio.ListModel];
static {
GObject.registerClass(this);
}
#settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
#names = this.#settings.get_strv(WORKSPACE_KEY);
#items = Gtk.StringList.new(this.#names);
#changedId;
constructor() {
super();
this.#changedId =
this.#settings.connect(`changed::${WORKSPACE_KEY}`, () => {
const removed = this.#names.length;
this.#names = this.#settings.get_strv(WORKSPACE_KEY);
this.#items.splice(0, removed, this.#names);
this.items_changed(0, removed, this.#names.length);
});
}
append() {
const name = _('Workspace %d').format(this.#names.length + 1);
this.#names.push(name);
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
this.#settings.unblock_signal_handler(this.#changedId);
const pos = this.#items.get_n_items();
this.#items.append(name);
this.items_changed(pos, 0, 1);
}
remove(name) {
const pos = this.#names.indexOf(name);
if (pos < 0)
return;
this.#names.splice(pos, 1);
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
this.#settings.unblock_signal_handler(this.#changedId);
this.#items.remove(pos);
this.items_changed(pos, 1, 0);
}
rename(oldName, newName) {
const pos = this.#names.indexOf(oldName);
if (pos < 0)
return;
this.#names.splice(pos, 1, newName);
this.#items.splice(pos, 1, [newName]);
this.#settings.block_signal_handler(this.#changedId);
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
this.#settings.unblock_signal_handler(this.#changedId);
}
vfunc_get_item_type() {
return Gtk.StringObject;
}
vfunc_get_n_items() {
return this.#items.get_n_items();
}
vfunc_get_item(pos) {
return this.#items.get_item(pos);
}
}
class WorkspaceSettingsWidget extends Adw.PreferencesGroup {
static {
GObject.registerClass(this);
this.install_action('workspaces.add', null,
self => self._workspaces.append());
this.install_action('workspaces.remove', 's',
(self, name, param) => self._workspaces.remove(param.unpack()));
this.install_action('workspaces.rename', '(ss)',
(self, name, param) => self._workspaces.rename(...param.deepUnpack()));
}
constructor() {
super({
title: _('Workspace Names'),
const WorkspaceSettingsWidget = GObject.registerClass(
class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
_init() {
super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
});
this._workspaces = new WorkspacesList();
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.set_child(box);
const store = new Gio.ListStore({item_type: Gio.ListModel});
const listModel = new Gtk.FlattenListModel({model: store});
store.append(this._workspaces);
store.append(new NewItemModel());
box.append(new Gtk.Label({
label: '<b>%s</b>'.format(_('Workspace Names')),
use_markup: true,
halign: Gtk.Align.START,
}));
this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE,
css_classes: ['boxed-list'],
valign: Gtk.Align.START,
show_separators: true,
});
this._list.connect('row-activated', (l, row) => row.edit());
this.add(this._list);
box.append(this._list);
this._list.bind_model(listModel, item => {
return item instanceof NewItem
? new NewWorkspaceRow()
: new WorkspaceRow(item.string);
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.append(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();
}
_getWorkspaceRows() {
return [...this._list].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 => this._list.remove(rows.find(r => r.name === n)));
added.forEach(n => {
this._list.insert(new WorkspaceRow(n), newNames.indexOf(n));
});
}
}
});
class WorkspaceRow extends Adw.PreferencesRow {
static {
GObject.registerClass(this);
}
const WorkspaceRow = GObject.registerClass(
class WorkspaceRow extends Gtk.ListBoxRow {
_init(name) {
super._init({ name });
constructor(name) {
super({name});
const controller = new Gtk.ShortcutController();
controller.add_shortcut(new Gtk.Shortcut({
trigger: Gtk.ShortcutTrigger.parse_string('Escape'),
action: Gtk.CallbackAction.new(this._stopEdit.bind(this)),
}));
this.add_controller(controller);
const box = new Gtk.Box({
spacing: 12,
@@ -181,39 +147,21 @@ class WorkspaceRow extends Adw.PreferencesRow {
const button = new Gtk.Button({
action_name: 'workspaces.remove',
action_target: new GLib.Variant('s', name),
icon_name: 'edit-delete-symbolic',
has_frame: false,
});
box.append(button);
this.bind_property_full('name',
button, 'action-target',
GObject.BindingFlags.SYNC_CREATE,
(bind, target) => [true, new GLib.Variant('s', target)],
null);
this._entry = new Gtk.Entry({
max_width_chars: 25,
});
const controller = new Gtk.ShortcutController();
controller.add_shortcut(new Gtk.Shortcut({
trigger: Gtk.ShortcutTrigger.parse_string('Escape'),
action: Gtk.CallbackAction.new(() => {
this._stopEdit();
return true;
}),
}));
this._entry.add_controller(controller);
this._stack = new Gtk.Stack();
this._stack.add_named(box, 'display');
this._stack.add_named(this._entry, 'edit');
this.child = this._stack;
this._entry.connect('activate', () => {
this.activate_action('workspaces.rename',
new GLib.Variant('(ss)', [this.name, this._entry.text]));
this.name = this._entry.text;
this._stopEdit();
});
@@ -222,6 +170,11 @@ class WorkspaceRow extends Adw.PreferencesRow {
return;
this._stopEdit();
});
this.connect('notify::name', () => {
button.action_target = new GLib.Variant('s', this.name);
this.activate_action('workspaces.update', null);
});
}
edit() {
@@ -234,15 +187,12 @@ class WorkspaceRow extends Adw.PreferencesRow {
this.grab_focus();
this._stack.visible_child_name = 'display';
}
}
});
class NewWorkspaceRow extends Adw.PreferencesRow {
static {
GObject.registerClass(this);
}
constructor() {
super({
const NewWorkspaceRow = GObject.registerClass(
class NewWorkspaceRow extends Gtk.ListBoxRow {
_init() {
super._init({
action_name: 'workspaces.add',
child: new Gtk.Image({
icon_name: 'list-add-symbolic',
@@ -256,10 +206,16 @@ class NewWorkspaceRow extends Adw.PreferencesRow {
this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Workspace')]);
}
});
/** */
function init() {
ExtensionUtils.initTranslations();
}
export default class WorkspaceIndicatorPrefs extends ExtensionPreferences {
getPreferencesWidget() {
return new WorkspaceSettingsWidget();
}
/**
* @returns {Gtk.Widget} - the prefs widget
*/
function buildPrefsWidget() {
return new WorkspaceSettingsWidget();
}

View File

@@ -2,7 +2,8 @@
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
# SPDX-FileCopyrightText: 2018 Claudio André <claudioandre.br@gmail.com>
env:
es2021: true
es6: true
es2020: true
extends: 'eslint:recommended'
plugins:
- jsdoc
@@ -68,10 +69,7 @@ rules:
jsdoc/check-tag-names: error
jsdoc/check-types: error
jsdoc/implements-on-classes: error
jsdoc/tag-lines:
- error
- any
- startLines: 1
jsdoc/newline-after-description: error
jsdoc/require-jsdoc: error
jsdoc/require-param: error
jsdoc/require-param-description: error
@@ -88,10 +86,7 @@ rules:
linebreak-style:
- error
- unix
lines-between-class-members:
- error
- always
- exceptAfterSingleLine: true
lines-between-class-members: error
max-nested-callbacks: error
max-statements-per-line: error
new-parens: error
@@ -264,10 +259,5 @@ globals:
window: readonly
TextEncoder: readonly
TextDecoder: readonly
console: readonly
setTimeout: readonly
setInterval: readonly
clearTimeout: readonly
clearInterval: readonly
parserOptions:
ecmaVersion: 2022
ecmaVersion: 2020

View File

@@ -3,12 +3,9 @@ rules:
- error
- properties: never
allow: [^vfunc_, ^on_]
consistent-return: error
eqeqeq:
object-curly-spacing:
- error
- smart
- always
prefer-arrow-callback: error
globals:
global: readonly
parserOptions:
sourceType: module

View File

@@ -1,6 +1,6 @@
project('gnome-shell-extensions',
version: '45.beta',
meson_version: '>= 0.58.0',
version: '41.1',
meson_version: '>= 0.53.0',
license: 'GPL2+'
)
@@ -15,11 +15,11 @@ datadir = get_option('datadir')
shelldir = join_paths(datadir, 'gnome-shell')
extensiondir = join_paths(shelldir, 'extensions')
modedir = join_paths(shelldir, 'modes')
themedir = join_paths(shelldir, 'theme')
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
xsessiondir = join_paths(datadir, 'xsessions')
wlsessiondir = join_paths(datadir, 'wayland-sessions')
ver_arr = meson.project_version().split('.')
shell_version = ver_arr[0]
@@ -36,7 +36,6 @@ classic_extensions = [
default_extensions = classic_extensions
default_extensions += [
'drive-menu',
'light-style',
'screenshot-window-sizer',
'windowsNavigator',
'workspace-indicator'
@@ -84,32 +83,12 @@ endforeach
if classic_mode_enabled
subdir('data')
meson.add_install_script(
'meson/session-post-install.py',
join_paths(get_option('prefix'), datadir)
)
endif
subdir('extensions')
subdir('po')
gnome.post_install(
glib_compile_schemas: true,
)
meson.add_dist_script('meson/generate-stylesheets.py')
meson.add_dist_script('meson/check-version.py',
meson.project_version(),
'NEWS')
summary_options = {
'extensions': enabled_extensions,
'classic_mode': get_option('classic_mode'),
}
summary_dirs = {
'prefix': get_option('prefix'),
'datadir': get_option('datadir'),
}
summary(summary_dirs, section: 'Directories')
summary(summary_options, section: 'Build Options')

View File

@@ -0,0 +1,13 @@
#!/usr/bin/env python3
import os
from pathlib import PurePath
import subprocess
sourceroot = os.environ.get('MESON_SOURCE_ROOT')
distroot = os.environ.get('MESON_DIST_ROOT')
stylesheet_path = PurePath('data/gnome-classic.css')
src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss'))
dst = PurePath(distroot, stylesheet_path)
subprocess.run(['sassc', '-a', src, dst], check=True)

View File

@@ -1,20 +0,0 @@
#!/usr/bin/env python3
import os
import shutil
import sys
if os.environ.get('DESTDIR'):
install_root = os.environ.get('DESTDIR') + os.path.abspath(sys.argv[1])
else:
install_root = sys.argv[1]
# FIXME: Meson is unable to copy a generated target file:
# https://groups.google.com/forum/#!topic/mesonbuild/3iIoYPrN4P0
dst_dir = os.path.join(install_root, 'wayland-sessions')
if not os.path.exists(dst_dir):
os.makedirs(dst_dir)
src = os.path.join(install_root, 'xsessions', 'gnome-classic.desktop')
dst = os.path.join(dst_dir, 'gnome-classic.desktop')
shutil.copyfile(src, dst)

View File

@@ -1,4 +1,3 @@
ab
af
an
ar
@@ -33,7 +32,6 @@ id
is
it
ja
ka
kab
kk
km

View File

@@ -1,6 +1,4 @@
data/gnome-classic.desktop.in
data/gnome-classic-wayland.desktop.in
data/gnome-classic-xorg.desktop.in
extensions/apps-menu/extension.js
extensions/auto-move-windows/extension.js
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml

268
po/ab.po
View File

@@ -1,268 +0,0 @@
# Abkhazian translation for gnome-shell-extensions.
# Copyright (C) 2022 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Нанба Наала <naala-nanba@rambler.ru>, 2022.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions main\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-02-12 02:08+0000\n"
"Last-Translator: Нанба Наала <naala-nanba@rambler.ru>, 2022\n"
"Language-Team: Abkhazian <ab@li.org>\n"
"Language: ab\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Аклассикатә GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Ари асеанс аклассикатә усуратә еишәа GNOME хархәагас иамоуп "
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Аклассикатә GNOME Wayland аҟны"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Аклассикатә GNOME Xorg аҟны"
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Иалкаау"
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "Аԥшьқәа"
#: 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:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Ацәаҳәақәа рыхьӡынҵа аиԥшрагәаҭага аԥшьы (desktop-фаил ахьӡ )змоу, зашьҭахь "
"ҩ-кәаԥки аусуратә ҭыԥ аномери гылоу "
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Аусуратә ҵакыра аԥҟаррақәа"
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Аԥҟара ацҵара"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Адиск «%s» аҭыгара залымшахеит:"
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Иаҿыҵуа аиҿартәырақәа"
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Афаил аартра"
#: 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: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. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Шәхы иашәырхәа изыцҵоу аекран аҵакыра аминиатиура атыԥаркразыаекран аганқәа "
"реизышәара ԥсахуа аҭыԥыркра шәыржәпала, анаҩс адаԥа ҳәаақәызҵо ашәагаа "
"архәыҷразыари ахышәара ахархәара аиуоит аминиатиура «natural» аҭыԥыркра "
"алгоритм ахархәараан"
#: 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: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 "
"restarting the shell to have any effect."
msgstr ""
"Иалхзар, ахқәа аминиатиура хыхьтәи ахәҭаҟны аҭыԥ ааныркылалоит(ишыҟоу еиԥш "
"ахқәа ҵаҟатәи аҭыԥ ааныркылоит).Ари ахышәара аԥсахраан,уи аус аура "
"иалагарцазы, иаҭахуп Shell аиҭарура."
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Аҭыԥқәа"
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr " «%s» аус арура залшом"
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Иамоуӡит атом аибыҭара «%s» азы"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
msgid "Computer"
msgstr "Акомпиутер"
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "Аҩнытәи аҭаӡ"
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "Аҳа алаԥшхагара"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "Аекран аҭыхымҭа ашәагаақәа рыԥсахра"
#: 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: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:72
msgid "Close"
msgstr "Аркра"
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "Архынҳәра"
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "Аиҟәырҳәра"
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "Аиҭашьақәыргылара"
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "Аиҵыхра"
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "Зегьы реиҟәырҳәра"
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "Зегьы рырхынҳәра"
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "Зегьы реиҵыхра"
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "Зегьы реиҭашьақәыргылара"
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "Зегьы рыркра"
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "Аԥенџьырқәа рыхьӡынҵа"
#: 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:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Иҳәаақәнаҵоит, ианаҭаху ԥшьык иаҵанакуа аԥенџьырқәа реидыргәыԥлара, "
"аԥенџьырқәа рыхьӡынҵаҟны Иҟалар зылшо аҵакқәа : «never» — ахаан; «auto» — "
"автоматла; «always» — есқьынгьы"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:79
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:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Аԥенџьырқәа рыхьӡынҵа иаҿаку амониторқәа зегьы рыҟноума иахьаарԥшлатәу , "
"мамзар ихадоу аҟны акәу."
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Аԥенџьырқәа реидыргәыԥлара"
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Ахаангьы аԥенџьырқәа реидмыргәыԥлара"
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Аҭыԥ маҷхазар, аԥенџьырқәа еидшәыргәыԥла"
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Еснагь аԥенџьырқәа реидыргәыԥлара"
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Амониторқәа зегьы рҟны рырбара"
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Аусуратә ҵакыра аиндикатор"
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Аусуратә ҵакыра %d"
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Аусуратә ҵакырақәа рыхьӡқәа"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Аусуратә ҵакыра ацҵара"

101
po/be.po
View File

@@ -8,8 +8,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: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-10-19 15:20+0300\n"
"POT-Creation-Date: 2021-01-20 23:03+0000\n"
"PO-Revision-Date: 2021-01-24 15:33+0300\n"
"Last-Translator: Launchpad translators\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n"
@@ -18,30 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 2.4.2\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Класічны GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Гэты сеанс выкарыстоўвае класічны GNOME"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Класічны GNOME на Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Класічны GNOME на Xorg"
#: extensions/apps-menu/extension.js:118
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Абраныя"
#: extensions/apps-menu/extension.js:379
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Праграмы"
@@ -57,41 +48,43 @@ msgstr ""
"Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *."
"desktop), затым двукроп'е і нумар працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:152
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Правілы для працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:306
#: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule"
msgstr "Дадаць правіла"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#: 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:145
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Здымныя прылады"
#: extensions/drive-menu/extension.js:167
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Адкрыць файлы"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
#, fuzzy
msgid "Use more screen for windows"
msgstr "Выкарыстоўваць большую плошчу экрана для вокнаў"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
#, fuzzy
msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз "
"змяненне суадносін бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
"змяненне суадносінаў бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
"абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным "
"размяшчэннем мініяцюр."
@@ -109,31 +102,31 @@ msgstr ""
"перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць "
"абалонку."
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Месцы"
#: extensions/places-menu/placeDisplay.js:49
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Не ўдалося запусціць «%s»"
#: extensions/places-menu/placeDisplay.js:64
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не ўдалося прымацаваць том для «%s»."
#: extensions/places-menu/placeDisplay.js:125
#: 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:359
msgid "Home"
msgstr "Хатняя папка"
#: extensions/places-menu/placeDisplay.js:381
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "Агляд сеткі"
@@ -153,47 +146,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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Закрыць"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Скасаваць згортванне"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Згарнуць"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Скасаваць разгортванне"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Разгарнуць"
#: extensions/window-list/extension.js:483
#: extensions/window-list/extension.js:432
msgid "Minimize all"
msgstr "Згарнуць усе"
#: extensions/window-list/extension.js:489
#: extensions/window-list/extension.js:438
msgid "Unminimize all"
msgstr "Скасаваць згортванне для ўсіх"
#: extensions/window-list/extension.js:495
#: extensions/window-list/extension.js:444
msgid "Maximize all"
msgstr "Разгарнуць усе"
#: extensions/window-list/extension.js:503
#: extensions/window-list/extension.js:452
msgid "Unmaximize all"
msgstr "Скасаваць разгортванне для ўсіх"
#: extensions/window-list/extension.js:511
#: extensions/window-list/extension.js:460
msgid "Close all"
msgstr "Закрыць усе"
#: extensions/window-list/extension.js:795
#: extensions/window-list/extension.js:737
msgid "Window List"
msgstr "Спіс вокнаў"
@@ -210,7 +203,7 @@ msgstr ""
"значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:79
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Паказваць вокны з усіх працоўных прастор"
@@ -229,41 +222,41 @@ msgid ""
msgstr ""
"Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным."
#: extensions/window-list/prefs.js:35
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Групаванне вокнаў"
#: extensions/window-list/prefs.js:40
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Ніколі не групаваць вокны"
#: extensions/window-list/prefs.js:41
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Групаваць вокны калі не хапае месца"
#: extensions/window-list/prefs.js:42
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Заўсёды групаваць вокны"
#: extensions/window-list/prefs.js:66
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Паказваць на ўсіх маніторах"
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
#: extensions/window-list/workspaceIndicator.js:247
#: extensions/workspace-indicator/extension.js:253
msgid "Workspace Indicator"
msgstr "Індыкатар працоўнай прасторы"
#: extensions/workspace-indicator/prefs.js:62
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Назвы працоўных прастор"
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Працоўная прастора %d"
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Назвы працоўных прастор"
#: extensions/workspace-indicator/prefs.js:255
#: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace"
msgstr "Дадаць працоўную прастору"

View File

@@ -1,17 +1,17 @@
# Bulgarian translation for gnome-shell-extensions po-file.
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc.
# Copyright (C) 2021, 2022 Alexander Shopov <ash@kambanaria.org>.
# Copyright (C) 2021 Alexander Shopov <ash@kambanaria.org>.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014.
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021, 2022.
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021.
# Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
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: 2022-02-12 20:25+0000\n"
"PO-Revision-Date: 2022-02-13 11:40+0100\n"
"POT-Creation-Date: 2021-07-05 17:13+0000\n"
"PO-Revision-Date: 2021-07-11 10:19+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n"
@@ -24,24 +24,15 @@ msgstr ""
msgid "GNOME Classic"
msgstr "Класически GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Работната среда изглежда като класическия GNOME (2.x)"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Класически GNOME в Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Класически GNOME в Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Любими"
#: extensions/apps-menu/extension.js:370
#: extensions/apps-menu/extension.js:367
msgid "Applications"
msgstr "Програми"
@@ -57,26 +48,26 @@ msgstr ""
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
"desktop“), следван от знака „:“ и номер на работен плот"
#: extensions/auto-move-windows/prefs.js:19
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Правила за работните плотове"
#: extensions/auto-move-windows/prefs.js:245
#: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule"
msgstr "Добавяне на правило"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:123
#: extensions/places-menu/placeDisplay.js:210
#: extensions/drive-menu/extension.js:132
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Неуспешно изваждане на устройство „%s“:"
#: extensions/drive-menu/extension.js:139
#: extensions/drive-menu/extension.js:148
msgid "Removable devices"
msgstr "Преносими медии"
#: extensions/drive-menu/extension.js:161
#: extensions/drive-menu/extension.js:172
msgid "Open Files"
msgstr "Отваряне на файлове"
@@ -109,31 +100,31 @@ msgstr ""
"им, а не както е стандартно — отдолу. За прилагане на промяната на "
"настройката трябва да рестартирате обвивката на GNOME."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:92
msgid "Places"
msgstr "Места"
#: extensions/places-menu/placeDisplay.js:49
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Неуспешно стартиране на „%s“"
#: extensions/places-menu/placeDisplay.js:64
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Неуспешно монтиране на тома „%s“"
#: extensions/places-menu/placeDisplay.js:125
#: 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:359
msgid "Home"
msgstr "Домашна папка"
#: extensions/places-menu/placeDisplay.js:381
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "Мрежа"
@@ -154,47 +145,47 @@ msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Затваряне"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Деминимизиране"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Минимизиране"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Демаксимизиране"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Максимизиране"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:432
msgid "Minimize all"
msgstr "Минимизиране на всички"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:438
msgid "Unminimize all"
msgstr "Деминимизиране на всички"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:444
msgid "Maximize all"
msgstr "Максимизиране на всички"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:452
msgid "Unmaximize all"
msgstr "Демаксимизиране на всички"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:460
msgid "Close all"
msgstr "Затваряне на всички"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:737
msgid "Window List"
msgstr "Списък на прозорците"
@@ -212,7 +203,7 @@ msgstr ""
"„always“ (винаги)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:76
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Да се показват прозорците от всички работни плотове"
@@ -233,40 +224,40 @@ msgstr ""
"Дали списъкът с прозорци да се извежда на всички монитори или само на "
"основния"
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Групиране на прозорци"
#: extensions/window-list/prefs.js:37
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Никога да не се групират"
#: extensions/window-list/prefs.js:38
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Групиране при ограничено място"
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Винаги да се групират"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "На всички монитори"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator"
msgstr "Индикатор на работните плотове"
#: extensions/workspace-indicator/prefs.js:18
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Имена на работните плотове"
#: extensions/workspace-indicator/prefs.js:39
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Работен плот %d"
#: extensions/workspace-indicator/prefs.js:184
#: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace"
msgstr "Добавяне на работен плот"

View File

@@ -9,7 +9,7 @@ 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: 2021-11-06 14:08+0000\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2017-07-08 13:29+0100\n"
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -19,28 +19,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME clàssic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Aquesta sessió us permet utilitzar el GNOME clàssic"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME clàssic amb Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME clàssic amb Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Preferides"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplicacions"
@@ -57,26 +48,26 @@ msgstr ""
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
"número de l'espai de treball"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Regles dels espais de treball"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Afegeix una regla"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Ha fallat l'expulsió de la unitat «%s»:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Dispositius extraïbles"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Obre els fitxers"
@@ -90,10 +81,10 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures "
"de les finestres adaptant-les a la ràtio d'aspecte de la pantalla, "
"consolidant-les més per a reduir la caixa que les envolta. Aquest paràmetre "
"de configuració només s'aplica a l'estratègia de posicionament de finestres "
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de "
"les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-"
"les més per a reduir la caixa que les envolta. Aquest paràmetre de "
"configuració només s'aplica a l'estratègia de posicionament de finestres "
"natural."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
@@ -111,8 +102,8 @@ msgstr ""
"posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui "
"efecte."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Llocs"
@@ -155,47 +146,47 @@ msgstr "Nom del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Tanca"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Desminimitza"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimitza"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Desmaximitza"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximitza"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimitza-ho tot"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Desminimitza-ho tot"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maximitza-ho tot"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Desmaximitza-ho tot"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Tanca-ho tot"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Llista de finestres"
@@ -213,7 +204,7 @@ msgstr ""
"«auto» (automàticament) i «always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Mostra les finestres de tots els espais de treball"
@@ -235,40 +226,41 @@ msgstr ""
"Si es mostra la llista de finestres en tots els monitors connectats o només "
"al primari."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Agrupació de finestres"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Mai agrupis les finestres"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Agrupa les finestres quan l'espai estigui limitat"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Agrupa les finestres sempre"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Mostra a tots els monitors"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicador de l'espai de treball"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Noms dels espais de treball"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Espai de treball %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Afegeix un espai de treball"

View File

@@ -2,15 +2,15 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Petr Kovar <pknbe@volny.cz>, 2013.
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-16 09:58+0100\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-28 22:18+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n"
@@ -20,28 +20,19 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Gtranslator 2.91.6\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME klasik"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Toto sezení vás přihlásí do GNOME klasik"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME klasik na Waylandu"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME klasik na Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Oblíbené"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplikace"
@@ -57,26 +48,26 @@ msgstr ""
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Pravidla pracovních ploch"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Přidat pravidlo"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Vysunutí disku „%s“ selhalo:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Výměnná zařízení"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Otevřít soubory"
@@ -108,8 +99,8 @@ msgstr ""
"přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
"nastavení vyžaduje restart shellu, aby se projevila."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Místa"
@@ -152,47 +143,47 @@ msgstr "Název motivu"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Zavřít"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Zrušit minimalizaci"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimalizovat"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Zrušit maximalizaci"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximalizovat"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimalizovat všechna"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Zrušit minimalizaci všech"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maximalizovat všechna"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Zrušit maximalizaci všech"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Zavřít všechna"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Seznam oken"
@@ -209,7 +200,7 @@ msgstr ""
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Zobrazovat okna ze všech pracovních ploch"
@@ -229,40 +220,40 @@ msgstr ""
"Zda zobrazovat seznam oken na všech připojených monitorech nebo jen na "
"hlavním."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Seskupování oken"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Nikdy neseskupovat okna"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Seskupovat okna při nedostatku místa"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Vždy seskupovat okna"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Zobrazovat na všech monitorech"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Ukazatel pracovní plochy"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Názvy pracovních ploch"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Pracovní plocha %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Přidat pracovní plochu"

View File

@@ -11,8 +11,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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-27 13:21+0100\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-07 18:36+0200\n"
"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n"
@@ -22,28 +22,19 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Denne session logger dig ind i GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic på Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic på Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritter"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Programmer"
@@ -59,26 +50,26 @@ msgstr ""
"En liste over strenge, som hver indeholder et program-id "
"(skrivebordsfilnavn), efterfulgt af et kolon og arbejdsområdets nummer"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Regler for arbejdsområde"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Tilføj regel"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Udskubning af drevet “%s” mislykkedes:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Flytbare enheder"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Åbn filer"
@@ -112,8 +103,8 @@ msgstr ""
"Ændring af denne indstilling kræver at shell'en genstartes for at træde i "
"kraft."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Steder"
@@ -156,47 +147,47 @@ msgstr "Temanavn"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Luk"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Afminimér"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimér"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Afmaksimér"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maksimér"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimér"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Afminimér alle"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maksimér alle"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Afmaksimér alle"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Luk alle"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Vinduesliste"
@@ -213,7 +204,7 @@ msgstr ""
"Mulige værdier er “never” (aldrig), “auto” (automatisk) og “always” (altid)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Vis vinduer fra alle arbejdsområder"
@@ -234,41 +225,41 @@ msgstr ""
"Om vindueslisten skal vise på alle tilsluttede skærme, eller kun på den "
"primære."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Vinduesgruppering"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Gruppér aldrig vinduer"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Gruppér vinduer når pladsen er begrænset"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Gruppér altid vinduer"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Vis på alle skærme"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Arbejdsområdeindikator"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Navne på arbejdsområder"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Arbejdsområde %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Tilføj arbejdsområde"

104
po/de.po
View File

@@ -2,51 +2,41 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2011-2013, 2017.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2011, 2012, 2022.
# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2011, 2012.
# Benjamin Steinwender <b@stbe.at>, 2013.
# Wolfgang Stöggl <c72578@yahoo.de>, 2014.
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2017.
# Tim Sabsch <tim@sabsch.com>, 2019-2020.
# Philipp Kiemle <philipp.kiemle@gmail.com>, 2022.
#
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: 2022-03-07 15:35+0000\n"
"PO-Revision-Date: 2022-03-10 22:26+0100\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-08 20:20+0200\n"
"Last-Translator: Tim Sabsch <tim@sabsch.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
"X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Diese Sitzung meldet Sie in GNOME Classic an"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic unter Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic unter Xorg"
#: extensions/apps-menu/extension.js:118
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoriten"
#: extensions/apps-menu/extension.js:379
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Anwendungen"
@@ -63,26 +53,26 @@ msgstr ""
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der "
"Arbeitsfläche"
#: extensions/auto-move-windows/prefs.js:152
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Arbeitsfläche-Regeln"
#: extensions/auto-move-windows/prefs.js:306
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Regel hinzufügen"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Auswerfen von Laufwerk »%s« schlug fehl:"
#: extensions/drive-menu/extension.js:145
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Wechseldatenträger"
#: extensions/drive-menu/extension.js:167
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Dateien öffnen"
@@ -116,31 +106,31 @@ msgstr ""
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Orte"
#: extensions/places-menu/placeDisplay.js:49
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Starten von »%s« fehlgeschlagen"
#: extensions/places-menu/placeDisplay.js:64
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Datenträger für »%s« konnte nicht eingebunden werden"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Rechner"
#: extensions/places-menu/placeDisplay.js:336
#: extensions/places-menu/placeDisplay.js:359
msgid "Home"
msgstr "Persönlicher Ordner"
#: extensions/places-menu/placeDisplay.js:381
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "Netzwerk durchsuchen"
@@ -162,47 +152,47 @@ msgstr ""
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
"soll"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Schließen"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Minimieren rückgängig"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimieren"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Maximieren rückgängig"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximieren"
#: extensions/window-list/extension.js:441
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Alle minimieren"
#: extensions/window-list/extension.js:447
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Alle minimieren rückgängig"
#: extensions/window-list/extension.js:453
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Alle maximieren"
#: extensions/window-list/extension.js:461
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Alle maximieren rückgängig"
#: extensions/window-list/extension.js:469
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Alle schließen"
#: extensions/window-list/extension.js:753
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Fensterliste"
@@ -220,7 +210,7 @@ msgstr ""
"»always« (immer)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:79
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Fenster von allen Arbeitsflächen anzeigen"
@@ -242,41 +232,41 @@ msgstr ""
"Legt fest, ob die Fensterliste auf allen angeschlossenen Bildschirmen "
"angezeigt wird oder nur auf dem Primären."
#: extensions/window-list/prefs.js:35
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Fenstergruppierung"
#: extensions/window-list/prefs.js:40
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Fenster niemals gruppieren"
#: extensions/window-list/prefs.js:41
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Fenster bei Platzmangel gruppieren"
#: extensions/window-list/prefs.js:42
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Fenster immer gruppieren"
#: extensions/window-list/prefs.js:66
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Auf allen Bildschirmen anzeigen"
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Arbeitsflächenindikator"
#: extensions/workspace-indicator/prefs.js:62
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Namen der Arbeitsflächen"
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Arbeitsfläche %d"
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Namen der Arbeitsflächen"
#: extensions/workspace-indicator/prefs.js:255
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Arbeitsfläche hinzufügen"

101
po/el.po
View File

@@ -12,8 +12,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: 2023-02-18 15:10+0000\n"
"PO-Revision-Date: 2023-08-01 23:41+0300\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-07-14 00:40+0300\n"
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
"Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n"
"Language: el\n"
@@ -21,31 +21,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.3.2\n"
"X-Generator: Poedit 1.8.7.1\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic σε Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic σε Xorg"
#: extensions/apps-menu/extension.js:118
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Αγαπημένα"
#: extensions/apps-menu/extension.js:380
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Εφαρμογές"
@@ -62,26 +53,26 @@ msgstr ""
"(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και "
"τον αριθμό του χώρου εργασίας"
#: extensions/auto-move-windows/prefs.js:152
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Κανόνες χώρων εργασίας"
#: extensions/auto-move-windows/prefs.js:306
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Προσθήκη κανόνα"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:212
#: 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:145
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Αφαιρούμενες συσκευές"
#: extensions/drive-menu/extension.js:167
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Άνοιγμα αρχείων"
@@ -115,31 +106,31 @@ msgstr ""
"στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί επανεκκίνηση του "
"κελύφους για να υπάρξει κάποιο αποτέλεσμα."
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Τοποθεσίες"
#: extensions/places-menu/placeDisplay.js:52
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Αποτυχία εκκίνησης «%s»"
#: extensions/places-menu/placeDisplay.js:67
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Αποτυχία προσάρτησης τόμου για «%s»"
#: extensions/places-menu/placeDisplay.js:127
#: extensions/places-menu/placeDisplay.js:150
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Υπολογιστής"
#: extensions/places-menu/placeDisplay.js:340
#: extensions/places-menu/placeDisplay.js:359
msgid "Home"
msgstr "Προσωπικός φάκελος"
#: extensions/places-menu/placeDisplay.js:385
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "Περιήγηση δικτύου"
@@ -160,47 +151,47 @@ msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr ""
"Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Κλείσιμο"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Αποελαχιστοποίηση"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Ελαχιστοποίηση"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Απομεγιστοποίηση"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Μεγιστοποίηση"
#: extensions/window-list/extension.js:483
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Ελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:489
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Αποελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:495
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Μεγιστοποίηση όλων"
#: extensions/window-list/extension.js:503
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Απομεγιστοποίηση όλων"
#: extensions/window-list/extension.js:511
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Κλείσιμο όλων"
#: extensions/window-list/extension.js:795
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Λίστα παραθύρου"
@@ -218,7 +209,7 @@ msgstr ""
"«always» (πάντα)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:79
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας"
@@ -239,41 +230,41 @@ msgstr ""
"Αν θα εμφανίζεται ο κατάλογος παραθύρων όλων των συνδεμένων οθονών ή μόνο "
"της κύριας οθόνης."
#: extensions/window-list/prefs.js:35
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Ομαδοποίηση παραθύρου"
#: extensions/window-list/prefs.js:40
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Να μη γίνεται ποτέ ομαδοποίηση παραθύρων"
#: extensions/window-list/prefs.js:41
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Ομαδοποίηση παραθύρων όταν ο χώρος είναι περιορισμένος"
#: extensions/window-list/prefs.js:42
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων"
#: extensions/window-list/prefs.js:66
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Να εμφανίζεται σε όλες τις οθόνες"
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Δείκτης χώρου εργασίας"
#: extensions/workspace-indicator/prefs.js:62
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Ονόματα χώρων εργασίας:"
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Χώρος εργασίας %d"
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Ονόματα χώρων εργασίας"
#: extensions/workspace-indicator/prefs.js:255
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Προσθήκη χώρου εργασίας"

View File

@@ -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-2021.
# 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-26 17:58+0100\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n"
"PO-Revision-Date: 2020-05-04 14:06+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,32 +20,21 @@ 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 41.0\n"
"X-Generator: Gtranslator 3.36.0\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME clásico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión inicia GNOME clásico"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "GNOME clásico en Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "GNOME clásicoen Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritos"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplicaciones"
@@ -61,26 +50,27 @@ 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:34
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
msgid "Workspace Rules"
msgstr "Reglas de las áreas de trabajo"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Añadir regla"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: 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:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Dispositivos extraíbles"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Abrir archivos"
@@ -113,8 +103,8 @@ msgstr ""
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
"para que tenga efecto."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Lugares"
@@ -157,47 +147,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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Cerrar"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Desminimizar"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizar"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Desmaximizar"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:429
msgid "Minimize all"
msgstr "Minimizar todo"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:435
msgid "Unminimize all"
msgstr "Desminimizar todo"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:441
msgid "Maximize all"
msgstr "Maximizar todo"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:449
msgid "Unmaximize all"
msgstr "Desmaximizar todo"
#: extensions/window-list/extension.js:462
#: 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"
@@ -214,7 +204,7 @@ 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:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Mostrar ventanas de todas las áreas de trabajo"
@@ -236,41 +226,41 @@ msgstr ""
"Indica si se debe mostrar la lista de ventanas en todas las pantallas "
"conectadas o sólo en la primaria."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Agrupación de ventanas"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Nunca agrupar las ventanas"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Agrupar las ventanas cuando el espacio esté limitado"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Siempre agrupar las ventanas"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Mostrar en todas las pantallas"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: 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:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nombres de los áreas de trabajo"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Área de trabajo %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Añadir área de trabajo"

View File

@@ -5,13 +5,13 @@
# assar <asiersar@yahoo.com>, 2011.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2013, 2015, 2017.
# Edurne Labaka <elabaka@uzei.com>, 2015.
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021.
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-12-25 00:42+0200\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-10 00:42+0200\n"
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
"Language-Team: Basque <librezale@librezale.eus>\n"
"Language: eu\n"
@@ -20,29 +20,21 @@ msgstr "Project-Id-Version: gnome-shell-extensions master\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Project-Style: gnome\n"
"X-Generator: Poedit 2.2.3\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Klasikoa"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Saio honek GNOME Klasikoa hasten du"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME klasikoa Wayland gainean"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME klasikoa Xorg gainean"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Gogokoak"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplikazioak"
@@ -56,26 +48,26 @@ msgid ""
"followed by a colon and the workspace number"
msgstr "Kateen zerrenda bat, bakoitzak aplikazio-ID bat duena (mahaigainaren fitxategi-izena) eta jarraian bi puntu eta laneko arearen zenbakia dituena"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Laneko areen arauak"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Gehitu araua"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Huts egin du “%s“ unitatea egoztean:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Gailu aldagarriak"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Ireki fitxategiak"
@@ -101,8 +93,8 @@ msgid ""
"restarting the shell to have any effect."
msgstr "TRUE (egia) bada, leihoen epigrafeak dagokien koadro txikien gainean jarriko ditu, Shell-aren lehenespena (behean jartzearena) gainidatziz. Ezarpen hau aldatzeko eta aplikatzeko Shell berrabiarazi behar da."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Lekuak"
@@ -145,47 +137,47 @@ msgstr "Gaiaren izena"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Itxi"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Leheneratu"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizatu"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Desmaximizatu"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximizatu"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimizatu denak"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Leheneratu denak"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maximizatu denak"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Desmaximizatu denak"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Itxi denak"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Leiho-zerrenda"
@@ -200,7 +192,7 @@ msgid ""
msgstr "Aplikazio bereko leihoak leihoen zerrendan noiz elkartuko diren erabakitzen du. Balio erabilgarriak: “never“ (inoiz ere ez), “auto“ (automatikoa) eta “always“ (beti)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Erakutsi laneko area guztietako leihoak"
@@ -218,41 +210,41 @@ msgid ""
"primary one."
msgstr "Leihoen zerrenda konektatutako pantaila guztietan edo soilik pantaila nagusian erakutsiko den."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Leiho-elkartzea"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Leihoak inoiz ez elkartu"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Elkartu leihoak lekua mugatuta dagoenean"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Elkartu beti leihoak"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Erakutsi pantaila guztietan"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Lan arearen adierazlea"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Laneko areen izenak"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "%d. laneko area"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Gehitu laneko area"

View File

@@ -9,40 +9,31 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-10 16:24+0330\n"
"Last-Translator: MohammadSaleh Kamyab <mskf1383@protonmail.com>\n"
"POT-Creation-Date: 2020-05-03 17:53+0000\n"
"PO-Revision-Date: 2020-05-12 14:25+0000\n"
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n"
"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.4.2\n"
"X-Generator: Poedit 2.3\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "گنوم کلاسیک"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "این نشست شما را به گنوم کلاسیک وارد می‌کند"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "گنوم کلاسیک روی وی‌لند"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "گنوم کلاسیک روی زورگ"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "برگزیده‌ها"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "برنامه‌ها"
@@ -58,26 +49,26 @@ msgstr ""
"فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک "
"ویرگول و شماره‌ی فضای کاری"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "قواعد فضای کاری"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "افزودن قاعده"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: 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:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "دستگاه‌های جداشدنی"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "گشودن پرونده‌ها"
@@ -109,7 +100,7 @@ msgstr ""
"شل در پایین را تغییر می‌دهد. تغییر این گزینه، نیاز به راه‌اندازی مجدد شل دارد تا "
"تاثیر بگذارد."
#: extensions/places-menu/extension.js:88 extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89 extensions/places-menu/extension.js:93
msgid "Places"
msgstr "مکان‌ها"
@@ -152,47 +143,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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "خروج"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "ناکمینه"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "کمینه"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "نابیشینه"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "بیشنه"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:429
msgid "Minimize all"
msgstr "کمینهٔ همه"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:435
msgid "Unminimize all"
msgstr "ناکمینهٔ همه"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:441
msgid "Maximize all"
msgstr "بیشینهٔ همه"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:449
msgid "Unmaximize all"
msgstr "نابیشینهٔ همه"
#: extensions/window-list/extension.js:462
#: 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 "فهرست پنجره"
@@ -209,7 +200,7 @@ msgstr ""
"ممکن عبارتند از «never»، «auto» و «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "نمایش پنجره‌ها از تمام فضاهای کاری"
@@ -229,41 +220,41 @@ msgstr ""
"اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر "
"اصلی."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "گروه‌سازی پنجره‌ها"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "هیچ‌گاه پنجره‌ها گروه نشوند"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "پنجره‌ها زمانی که فضا محدود است گروه شوند"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "همیشه پنجره‌ها گروه شوند"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "نمایش در تمام نمایشگرها"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:209
#: extensions/workspace-indicator/extension.js:215
msgid "Workspace Indicator"
msgstr "نشانگر فضای‌کاری"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "نام‌های فضای کاری"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "فضای کاری %Id"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "افزودن فضای‌کاری"

View File

@@ -12,8 +12,8 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-27 18:54+0200\n"
"POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2021-03-15 21:32+0200\n"
"Last-Translator: JR-Fi <starman@starman.fi>\n"
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
"Language: fi\n"
@@ -21,7 +21,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: Poedit 3.0.1\n"
"X-Generator: Poedit 2.0.6\n"
"X-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
@@ -29,24 +29,15 @@ msgstr ""
msgid "GNOME Classic"
msgstr "Perinteinen Gnome"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Tämä istunto kirjaa sinut perinteiseen Gnomeen"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Perinteinen Gnome Waylandia käyttäen"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Perinteinen Gnome Xorgia käyttäen"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Suosikit"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Sovellukset"
@@ -62,26 +53,26 @@ msgstr ""
"Lista merkkijonoja, jossa jokainen on ohjelman tunnus (työpöydän "
"tiedostonimi), jota seuraa kaksoispiste ja työtilan numero"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Työtilojen säännöt"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Lisää sääntö"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Aseman “%s” irrottaminen epäonnistui:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Erilliset tallennusvälineet"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Avaa tiedostonhallinta"
@@ -113,8 +104,8 @@ msgstr ""
"Tämä syrjäyttää oletusasetuksen, eli otsikkotekstin asettamisen pienoiskuvan "
"alle. Tämän asetuksen muutos vaatii Gnomen uudelleenkäynnistyksen."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Sijainnit"
@@ -158,47 +149,47 @@ msgstr "Teeman nimi"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Teeman nimi, ladataan sijainnista ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Sulje"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Palauta pienennys"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Pienennä"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Palauta suurennus"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Suurenna"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:432
msgid "Minimize all"
msgstr "Pienennä kaikki"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:438
msgid "Unminimize all"
msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:444
msgid "Maximize all"
msgstr "Suurenna kaikki"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:452
msgid "Unmaximize all"
msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:460
msgid "Close all"
msgstr "Sulje kaikki"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:738
msgid "Window List"
msgstr "Ikkunaluettelo"
@@ -215,7 +206,7 @@ msgstr ""
"Mahdolliset arvot ovat “never”, “auto” ja “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Näytä ikkunat kaikista työtiloista"
@@ -237,41 +228,41 @@ msgstr ""
"Näytetäänkö ikkunaluettelo kaikilla liitetyillä näytöillä vai ainoastaan "
"ensisijaisella näytöllä."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Ikkunoiden ryhmitys"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Älä ryhmitä ikkunoita koskaan"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Ryhmitä ikkunat tilan ollessa rajallinen"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Ryhmitä ikkunat aina"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Näytä kaikilla näytöillä"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Työtilan ilmaisin"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Työtilojen nimet"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Työtila %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Lisää työtila"

View File

@@ -3,48 +3,36 @@
# This file is distributed under the same license as the gnome-shell-extensions package.
# Claude Paroz <claude@2xlibre.net>, 2011.
# Alain Lojewski <allomervan@gmail.com>, 2012-2013.
# Charles Monzat <charles.monzat@free.fr>, 2018-2022.
# Charles Monzat <charles.monzat@numericable.fr>, 2018.
#
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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-01 21:04+0100\n"
"Last-Translator: Charles Monzat <charles.monzat@free.fr>\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-10 12:50+0200\n"
"Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Gtranslator 40.0\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classique"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Cette session vous connecte à GNOME Classique"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classique sur Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classique sur Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoris"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Applications"
@@ -61,26 +49,26 @@ msgstr ""
"dapplication (nom de fichier desktop), suivi par un deux-points et le "
"numéro de lespace de travail"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Règles des espaces de travail"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Ajouter une règle"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Léjection du disque « %s » a échoué :"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Périphériques amovibles"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Ouvrir Fichiers"
@@ -114,8 +102,8 @@ msgstr ""
"dessous. Pour que ce paramètre soit pris en compte, il faut redémarrer le "
"Shell."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Emplacements"
@@ -158,47 +146,47 @@ msgstr "Nom du thème"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Le nom du thème, à charger à partir de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Fermer"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Restaurer"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Réduire"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Restaurer"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximiser"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Tout réduire"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Tout restaurer"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Tout maximiser"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Tout restaurer"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Tout fermer"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Liste de fenêtres"
@@ -216,7 +204,7 @@ msgstr ""
 always » (toujours)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Afficher les fenêtres de tous les espaces de travail"
@@ -238,41 +226,41 @@ msgstr ""
"Indique sil faut afficher la liste des fenêtres sur tous les écrans "
"connectés ou seulement lécran principal."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Regroupement de fenêtres"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Ne jamais regrouper les fenêtres"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Regrouper les fenêtres quand lespace est limité"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Toujours regrouper les fenêtres"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Afficher sur tous les écrans"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicateur despace de travail"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Noms des espaces de travail"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Espace de travail %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Ajouter un espace de travail"

View File

@@ -8,38 +8,29 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-07 17:51+0100\n"
"POT-Creation-Date: 2020-10-08 21:24+0000\n"
"PO-Revision-Date: 2020-10-17 22:14+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Cheste session ti fâs jentrâ in GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic su Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic su Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Preferîts"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplicazions"
@@ -55,26 +46,26 @@ msgstr ""
"Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ."
"desktop), cun daûr doi ponts e il numar dal spazi di lavôr"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Regulis dai spazis di lavôr"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Zonte regule"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "No si è rivâts a parâ fûr la unitât “%s”»:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Dispositîfs estraibii"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Vierç i files"
@@ -107,8 +98,8 @@ msgstr ""
"sorpassant il compuartament predefinît de shell, che lis place in bas. "
"Cambiant cheste impostazion si scugne tornâ a inviâ la shell."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Puescj"
@@ -151,47 +142,47 @@ msgstr "Non dal teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Il non dal teme, che si cjame da ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Siere"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Gjave minimizazion"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimize"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Gjave massimizazion"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Massimize"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimize ducj"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Gjave a ducj la minimizazion"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Massimize ducj"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Gjave a ducj la massimizazion"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Siere ducj"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Liste barcons"
@@ -208,7 +199,7 @@ msgstr ""
"barcons. I valôrs pussibii a son “never”, “auto” e “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Mostre i barcons di ducj i spazis di lavôr"
@@ -229,41 +220,41 @@ msgstr ""
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
"chel principâl."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Intropament di barcons"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "No sta meti mai in grup i barcons"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Met dongje i barcons cuant che il spazi al è limitât"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Met simpri in grup i barcons"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Mostre su ducj i visôrs"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicadôr spazi di lavôr"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nons dai spazis di lavôr"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Spazi di lavôr %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Zonte spazi di lavôr"

100
po/gl.po
View File

@@ -3,54 +3,37 @@
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Fran Diéguez <frandieguez@gnome.org>, 2011.
# Fran Dieguez <fran.dieguez@gnome.org>, 2011-2021.
#
# Fran Dieguez <frandieguez@gnome.org>, 2011-2020, 2021.
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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-19 22:50+0100\n"
"Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2021-02-24 20:41+0100\n"
"Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Proxecto Trasno <proxecto@trasno.gal>\n"
"Language: gl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 40.0\n"
"X-Generator: Gtranslator 3.38.0\n"
"X-Project-Style: gnome\n"
"X-DL-Team: gl\n"
"X-DL-Module: gnome-shell-extensions\n"
"X-DL-Branch: main\n"
"X-DL-Domain: po\n"
"X-DL-State: Translating\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME clásico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión iniciarao en GNOME clásico"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "GNOME clásico en Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "GNOME clásico en Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritos"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplicacións"
@@ -66,26 +49,26 @@ msgstr ""
"Unha lista de cadeas, cada unha das cales contén un id de aplicación (nome "
"de ficheiro desktop), seguido por unha coma e o número do espazo de traballo"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Regras da área de traballo"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Engadir regra"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Fallo ao extraer a unidade «%s»:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Dispositivos extraíbeis"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Abrir ficheiros"
@@ -99,7 +82,8 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Tente usar mais pantalla para dispor as miniaturas das xanelas adaptándose"
"Tente usar mais pantalla para dispor as miniaturas das xanelas adaptándose"
" á "
"taxa de aspecto da pantalla e consolidalas para reducir a caixa envolvente. "
"Esta configuración aplícase só para a estratexia de disposición natural."
@@ -117,8 +101,8 @@ msgstr ""
"respectiva, omitindo a disposición inferior por omisión do shell. Se cambia "
"esta configuración deberá reiniciar o shell para que se apliquen os cambios."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Lugares"
@@ -161,47 +145,47 @@ msgstr "Nome do tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nome do tema, a cargar desde ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Pechar"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Restabelecer"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizar"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Restaurar"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:432
msgid "Minimize all"
msgstr "Minimizar todo"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:438
msgid "Unminimize all"
msgstr "Restaurar todo"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:444
msgid "Maximize all"
msgstr "Maximizar todo"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:452
msgid "Unmaximize all"
msgstr "Restaurar todo"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:460
msgid "Close all"
msgstr "Pechar todo"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:738
msgid "Window List"
msgstr "Lista de xanelas"
@@ -219,7 +203,7 @@ msgstr ""
"«always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Mostrar as xanelas de todos os espazos de traballo"
@@ -240,41 +224,41 @@ msgstr ""
"Indica se mostrar a lista de xanelas en todos os monitores conectados ou só "
"no primario."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Agrupación de xanelas"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Non agrupar nunca as xanelas"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Agrupar as xanelas cando o espazo é limitado"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Agrupar sempre as xanelas"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Mostrar en todos os monitores"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicador de espazo de traballo"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nomes dos espazos de traballo"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Espazos de traballo %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Engadir área de traballo"

View File

@@ -9,40 +9,31 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-12 00:53+0200\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-28 22:04+0300\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\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: Poedit 3.0\n"
"X-Generator: Gtranslator 3.36.0\n"
#: data/gnome-classic.desktop.in:3
#: 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:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "הפעלה זו מכניסה אותך למצב הקלסי של GNOME"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME קלסי על גבי Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME קלסי על גבי Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "מועדפים"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "יישומים"
@@ -58,26 +49,27 @@ 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:34
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
msgid "Workspace Rules"
msgstr "כללי מרחב העבודה"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "הוספת כלל"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: 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:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "התקנים נתיקים"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "פתיחת קבצים"
@@ -109,8 +101,8 @@ 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:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "מיקומים"
@@ -153,47 +145,47 @@ msgstr "Theme name"
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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "סגירה"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "ביטול המזעור"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "מזעור"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "ביטול ההגדלה"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "הגדלה"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "מזעור הכל"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "ביטול מזעור הכל"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "הגדלת הכל"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "ביטול הגדלת הכל"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "סגירת הכל"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "רשימת חלונות"
@@ -210,7 +202,7 @@ msgstr ""
"Possible values are “never”, “auto” and “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "הצגת חלונות מכל מרחבי העבודה"
@@ -230,41 +222,42 @@ msgstr ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "קיבוץ חלונות"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "לעולם לא לקבץ חלונות"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "קיבוץ חלונות כאשר המקום מוגבל"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "תמיד לקבץ חלונות"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "הצגה בכל הצגים"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "מחוון מרחבי עבודה"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "שם מרחב העבודה"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "מרחב עבודה %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace"
msgstr "הוספת מרחב עבודה"

View File

@@ -8,9 +8,9 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-12 12:24+0100\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n"
"POT-Creation-Date: 2021-07-19 15:59+0000\n"
"PO-Revision-Date: 2021-09-23 16:37+0200\n"
"Last-Translator: gogo <linux.hr@protonmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n"
"MIME-Version: 1.0\n"
@@ -18,30 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 3.0\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME klasičan"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Ova sesija vas prijavljuje u klasičan GNOME"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME klasičan na Waylandu"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME klasičan na Xorgu"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Omiljeni"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:367
msgid "Applications"
msgstr "Aplikacije"
@@ -57,26 +48,26 @@ msgstr ""
"Popis nizova, svaki sadrži aplikaciju (naziv datoteke prečaca), slijedeći "
"stupac i broj radnog prostora"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Pravila radnog prostora"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule"
msgstr "Dodaj pravilo"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:134
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Izbacivanje uređaja “%s” neuspjelo:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:150
msgid "Removable devices"
msgstr "Prijenosni uređaji"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:172
msgid "Open Files"
msgstr "Otvori datoteku"
@@ -109,8 +100,8 @@ msgstr ""
"zaobilazeći zadano smještanje ljuske na dnu. Promjena ove postavke zahtijeva "
"ponovno pokretanje ljuske kako bi se primijenila."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:92
msgid "Places"
msgstr "Lokacije"
@@ -153,47 +144,47 @@ msgstr "Naziv teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Naziv teme, mora se učitati iz ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Zatvori"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Vrati"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Smanji"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Prikaži u prozoru"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Uvećaj"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:432
msgid "Minimize all"
msgstr "Smanji sve"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:438
msgid "Unminimize all"
msgstr "Vrati sve"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:444
msgid "Maximize all"
msgstr "Uvećaj sve"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:452
msgid "Unmaximize all"
msgstr "Prikaži u prozoru sve"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:460
msgid "Close all"
msgstr "Zatvori sve"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:737
msgid "Window List"
msgstr "Popis prozora"
@@ -210,7 +201,7 @@ msgstr ""
"vrijednosti su: “never”, “auto” i “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Prikaži prozore sa svih radnih prostora"
@@ -231,41 +222,41 @@ msgstr ""
"Treba li prikazati popis prozora na svim povezanim zaslonima ili smo na "
"glavnom."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Grupiranje prozora"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Ne grupiraj prozore"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Grupiraj prozore kada je prostor ograničen"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Uvijek grupiraj prozore"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Prikaži na svim zaslonima"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator"
msgstr "Indikator radnog prostora"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nazivi radnih prostora"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Radni prostor %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace"
msgstr "Dodaj radni prostor"

105
po/hu.po
View File

@@ -1,50 +1,39 @@
# Hungarian translation for gnome-shell-extensions.
# Copyright (C) 2011, 2012, 2013, 2014, 2017, 2019, 2022 Free Software Foundation, Inc.
# Copyright (C) 2011, 2012, 2013, 2014, 2017, 2019 Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Biró Balázs <arch.scar at gmail dot com>, 2011.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2011, 2012, 2013.
# Balázs Úr <ur.balazs at fsf dot hu>, 2013, 2014, 2017, 2019, 2022.
# Balázs Úr <ur.balazs at fsf dot hu>, 2013, 2014, 2017, 2019.
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-11 01:38+0100\n"
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-05 18:08+0200\n"
"Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
"Language: hu\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 19.12.3\n"
"X-Generator: Poedit 2.4.1\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasszikus GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Bejelentkezés a klasszikus GNOME környezetbe"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Klasszikus GNOME Waylanden"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Klasszikus GNOME Xorgon"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Kedvencek"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Alkalmazások"
@@ -60,26 +49,26 @@ msgstr ""
"Alkalmazásazonosítókat (.desktop fájl neve), majd kettősponttal elválasztva "
"a munkaterület számát tartalmazó karakterláncok sorozata"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Munkaterület szabályok"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Szabály hozzáadása"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "A(z) „%s” meghajtó kiadása nem sikerült:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Cserélhető eszközök"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Fájlok megnyitása"
@@ -112,8 +101,8 @@ msgstr ""
"tetejére helyezi el, az alapértelmezett alja helyett. Ezen beállítás "
"módosítása a Shell újraindítását igényli."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Helyek"
@@ -156,47 +145,47 @@ msgstr "Témanév"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "A ~/.themes/név/gnome-shell alól betöltendő téma neve"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Bezárás"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Minimalizálás megszüntetése"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimalizálás"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Maximalizálás megszüntetése"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximalizálás"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minden minimalizálása"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Minden minimalizálásának megszüntetése"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Minden maximalizálása"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Minden maximalizálásának megszüntetése"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Minden bezárása"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Ablaklista"
@@ -214,7 +203,7 @@ msgstr ""
"„always” (mindig)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Ablakok megjelenítése az összes munkaterületről"
@@ -236,40 +225,52 @@ msgstr ""
"Megjelenjen-e az ablaklista minden csatlakoztatott monitoron vagy csak az "
"elsődlegesen."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Ablakcsoportosítás"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Soha ne csoportosítsa az ablakokat"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Ablakok csoportosítása, ha kevés a hely"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Mindig csoportosítsa az ablakokat"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Megjelenítés minden monitoron"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Munkaterület indikátor"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Munkaterületnevek"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "%d. munkaterület"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Munkaterület hozzáadása"
#~ msgid "Application"
#~ msgstr "Alkalmazás"
#~ msgid "Create new matching rule"
#~ msgstr "Új illesztési szabály létrehozása"
#~ msgid "Add"
#~ msgstr "Hozzáadás"
#~ msgid "Name"
#~ msgstr "Név"

View File

@@ -4,14 +4,14 @@
#
# Andika Triwidada <andika@gmail.com>, 2012, 2013.
# Dirgita <dirgitadevina@yahoo.co.id>, 2012.
# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017, 2019, 2020, 2022.
# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017, 2019, 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-01-05 10:23+0700\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-06-06 19:02+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome@i15n.org>\n"
"Language: id\n"
@@ -20,30 +20,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 2.3.1\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Klasik"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Sesi ini memasukkan Anda ke GNOME Klasik"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Klasik di Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Klasik di Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favorit"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplikasi"
@@ -59,26 +50,26 @@ msgstr ""
"Daftar string, masing-masing memuat id aplikasi (nama berkas desktop), "
"diikuti oleh titik dua dan nomor ruang kerja"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Aturan Ruang Kerja"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Tambah Aturan"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Saat mengeluarkan drive \"%s\" gagal:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Perangkat yang dapat dilepas"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Buka Berkas"
@@ -111,8 +102,8 @@ msgstr ""
"masing, menimpa bawaan shell yang menempatkannya di bagian bawah. Mengubah "
"ini memerlukan memulai ulang shell agar berdampak."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Tempat"
@@ -155,47 +146,47 @@ msgstr "Nama tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Nama tema, untuk dimuat dari ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Tutup"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Tak minimalkan"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimalkan"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Tak maksimalkan"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maksimalkan"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimalkan semua"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Tak minimalkan semua"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maksimalkan semua"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Tak maksimalkan semua"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Tutup semua"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Daftar Jendela"
@@ -213,7 +204,7 @@ msgstr ""
"\" (otomatis), atau \"always\" (selalu)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Menampilkan jendela dari semua area kerja"
@@ -234,41 +225,41 @@ msgstr ""
"Apakah menampilkan daftar jendela pada semua monitor yang tersambung atau "
"hanya pada yang utama."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Pengelompokan Jendela"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Jangan pernah kelompokkan jendela"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Kelompokkan jendela ketika ruang terbatas"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Selalu kelompokkan jendela"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Tampilkan pada semua monitor"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indikator Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nama Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Ruang Kerja %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Tambah Ruang Kerja"

View File

@@ -7,10 +7,10 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-12-13 09:07+0000\n"
"POT-Creation-Date: 2021-07-19 15:59+0000\n"
"PO-Revision-Date: 2021-09-29 07:48+0000\n"
"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\n"
"Language-Team: Icelandic <translation-team-is@lists.sourceforge.org>\n"
"Language-Team: Icelandic <translation-team-is@lists.sourceforge.net>\n"
"Language: is\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -20,28 +20,17 @@ msgstr ""
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "Hefðbundið GNOME"
msgstr "GNOME Klassík"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Þessi seta skráir þig inn í klassískt GNOME"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Hefðbundið GNOME á Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Hefðbundið GNOME á Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Eftirlæti"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:367
msgid "Applications"
msgstr "Forrit"
@@ -57,26 +46,27 @@ msgstr ""
"Listi yfir textastrengi, þar sem hver þeirra inniheldur forritsauðkenni "
"(heiti skjáborðsskrár) að viðbættum tvípunkti og svo númeri vinnusvæðis"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
msgid "Workspace Rules"
msgstr "Vinnusvæðareglur"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule"
msgstr "Bæta við reglu"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:134
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Útspýting drifsins '%s' mistókst:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:150
msgid "Removable devices"
msgstr "Útskiptanleg tæki"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:172
msgid "Open Files"
msgstr "Opna skrár"
@@ -109,8 +99,8 @@ msgstr ""
"öfugt við það sem sjálfgefið er í skelinni sem setur þær neðst. Breytingar á "
"þessum stillingum krefjast þess að skelin sé endurræst svo að þær taki gildi."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:92
msgid "Places"
msgstr "Staðir"
@@ -153,47 +143,47 @@ msgstr "Heiti þema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Heiti á þema, hlaðið inn frá ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Loka"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Endurheimta"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Lágmarka"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Minnka glugga"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Hámarka"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:432
msgid "Minimize all"
msgstr "Lágmarka allt"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:438
msgid "Unminimize all"
msgstr "Endurheimta allt"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:444
msgid "Maximize all"
msgstr "Hámarka allt"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:452
msgid "Unmaximize all"
msgstr "Minnka allt"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:460
msgid "Close all"
msgstr "Loka öllu"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:737
msgid "Window List"
msgstr "Gluggalisti"
@@ -210,11 +200,15 @@ msgstr ""
"Möguleg gildi eru „aldrei‟, „sjálfvirkt‟ og „alltaf‟."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
#| msgid "Show only windows in the current workspace"
msgid "Show windows from all workspaces"
msgstr "Birta glugga frá öllum vinnusvæðum"
#: 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 ""
"Hvort birta eigi glugga frá öllum vinnusvæðum eða einungis því sem er virkt."
@@ -230,41 +224,42 @@ msgid ""
msgstr ""
"Hvort birta eigi gluggalistann á öllum tengdum skjám eða einungis á aðalskjá."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Hópun glugga"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Aldrei hópa glugga"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Hópa glugga þegar pláss er takmarkað"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Alltaf hópa glugga"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Birta á öllum skjám"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator"
msgstr "Vinnusvæðavísir"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Vinnusvæðaheiti"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Vinnusvæði %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:208
#| msgid "Workspace"
msgid "Add Workspace"
msgstr "Bæta við vinnusvæði"

View File

@@ -1,9 +1,9 @@
# Italian translations for GNOME Shell extensions
# Copyright (C) 2011 Giovanni Campagna et al.
# Copyright (C) 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022 The Free Software Foundation, Inc.
# Copyright (C) 2012, 2013, 2014, 2015, 2017, 2019, 2020 The Free Software Foundation, Inc.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Giovanni Campagna <scampa.giovanni@gmail.com>, 2011
# Milo Casagrande <milo@milo.name>, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
# Milo Casagrande <milo@milo.name>, 2013, 2014, 2015, 2017, 2019, 2020.
# Gianvito Cavasoli <gianvito@gmx.it>, 2017.
#
msgid ""
@@ -11,8 +11,8 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-14 09:56+0100\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-02 09:58+0200\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italiano <gnome-it-list@gnome.org>\n"
"Language: it\n"
@@ -20,30 +20,21 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
"X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME classico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Questa sessione si avvia con GNOME classico"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME classico su Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME classico su Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Preferiti"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Applicazioni"
@@ -59,28 +50,28 @@ msgstr ""
"Un elenco di stringhe, ognuna contenente l'ID di un'applicazione (nome del "
"file .desktop) seguito da due punti e il numero dello spazio di lavoro"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Regole degli spazi di lavoro"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Aggiungi regola"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Espulsione dell'unità «%s» non riuscita:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Dispositivi rimovibili"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Apri File"
msgstr "Apri file"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"
@@ -111,8 +102,8 @@ msgstr ""
"miniature, aggirando il comportamento normale della shell, che li colloca in "
"basso. Modificare questa impostazione richiede di riavviare la shell."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Posizioni"
@@ -155,47 +146,47 @@ msgstr "Nome del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Il nome del tema, da caricare da ~/.themes/nome/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Chiudi"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Deminimizza"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizza"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Demassimizza"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Massimizza"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimizza tutto"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Deminimizza tutto"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Massimizza tutto"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Demassimizza tutto"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Chiudi tutto"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Elenco finestre"
@@ -212,7 +203,7 @@ msgstr ""
"delle finestre. I possibili valori sono \"never\", \"auto\" e \"always\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Mostra le finestre di tutti gli spazi di lavoro"
@@ -234,40 +225,40 @@ msgstr ""
"Indica se mostrare l'elenco delle finestre su tutti i monitor collegato o "
"solo su quello primario."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Raggruppamento finestre"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Non raggruppare le finestre"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Raggruppare le finestre quando c'è poco spazio"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Raggruppare sempre le finestre"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Mostrare su tutti i monitor"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicatore spazi di lavoro"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nomi degli spazi di lavoro"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Spazio di lavoro %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Aggiungi spazio di lavoro"

View File

@@ -1,12 +1,12 @@
# gnome-shell-extensions ja.po
# Copyright (C) 2011, 2013-2015, 2019-2020, 2022 gnome-shell-extensions's COPYRIGHT HOLDER
# Copyright (C) 2011-2015, 2019-2020 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Takeshi AIHANA <takeshi.aihana@gmail.com>, 2011.
# Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2011, 2013, 2015
# Nishio Futoshi <fut_nis@d3.dion.ne.jp>, 2013.
# Ikuya Awashiro <ikuya@fruitsbasket.info>, 2014.
# Hajime Taira <htaira@redhat.com>, 2014, 2015.
# sicklylife <translation@sicklylife.jp>, 2019-2020, 2022.
# sicklylife <translation@sicklylife.jp>, 2019-2020.
#
msgid ""
msgstr ""
@@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2022-03-12 19:00+0900\n"
"PO-Revision-Date: 2020-06-10 18:45+0900\n"
"Last-Translator: sicklylife <translation@sicklylife.jp>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"Language: ja\n"
@@ -31,14 +31,6 @@ msgstr "GNOME クラシック"
msgid "This session logs you into GNOME Classic"
msgstr "GNOME クラシックモードでログインします"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME クラシック on Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME クラシック on Xorg"
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "お気に入り"

266
po/ka.po
View File

@@ -1,266 +0,0 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2022-02-13 10:42+0000\n"
"PO-Revision-Date: 2022-09-14 16:37+0200\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: \n"
"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.1.1\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "ეს სესია შეგიყვანთ GNOME Classic-ში"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME CLassic Wayland-ზე"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic Xorg"
#: extensions/apps-menu/extension.js:112
msgid "Favorites"
msgstr "რჩეულები"
#: extensions/apps-menu/extension.js:370
msgid "Applications"
msgstr "აპლიკაციები"
#: 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:7
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"სტრიქონების სია, რომლებიც შეიცავენ აპლიკაციის ID-ს(სამუშაო მაგიდის ფაილის "
"სახელს), რომელსაც მოჰყვება მძიმე და სამუშაო სივრცის ნომერი"
#: extensions/auto-move-windows/prefs.js:19
msgid "Workspace Rules"
msgstr "სამუშაო მაგიდის წესები"
#: extensions/auto-move-windows/prefs.js:245
msgid "Add Rule"
msgstr "წესის დამატება"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:123
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "დისკ %s-ის გამოგდების შეცდომა:"
#: extensions/drive-menu/extension.js:139
msgid "Removable devices"
msgstr "გამოძრობადი მოწყობილობები"
#: extensions/drive-menu/extension.js:161
msgid "Open Files"
msgstr "ღია ფაილები"
#: 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: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. "
"This setting applies only with the natural placement strategy."
msgstr ""
"შეეცადეთ გამოიყენოთ ეკრანის მეტი ადგილი ფანჯრის ესკიზების დასაყენებლად, "
"ეკრანის ასპექტის თანაფარდობის ადაპტაციით და მათი შემდგომი კონსოლიდაციით, "
"რათა შემცირდეს შემოსაზღვრული ველი. ეს პარამეტრი გამოიყენება მხოლოდ "
"ბუნებრივი განთავსების სტრატეგიით."
#: 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: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 "
"restarting the shell to have any effect."
msgstr ""
"თუ ჩართულია, ფანჯრის სათაური შესაბამისი მინიატურის თავზე გამოჩნდება, რითიც "
"გადაფარავს გარსის ნაგულისხმებ მნიშვნელობას, რომ ის ძირზე იყოს. ამ "
"პარამეტრის ძალაში შესასვლელად საჭიროა გარსის გადატვირთვა."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
msgid "Places"
msgstr "ადგილები"
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "%s-ის გაშვების შეცდომა"
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "%s-თვის დისკის მიმაგრების შეცდომა"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
msgid "Computer"
msgstr "კომპიუტერი"
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "საწყისი"
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "ქსელის დათვალიერება"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "ეკრანის ანაბეჭდების ზომებს შორის გადართვა"
#: 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: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:72
msgid "Close"
msgstr "დახურვა"
#: extensions/window-list/extension.js:92
msgid "Unminimize"
msgstr "ამოკეცვა"
#: extensions/window-list/extension.js:92
msgid "Minimize"
msgstr "ჩაკეცვა"
#: extensions/window-list/extension.js:99
msgid "Unmaximize"
msgstr "საწყის ზომაზე დაბრუნება"
#: extensions/window-list/extension.js:99
msgid "Maximize"
msgstr "მთელ ეკრანზე გაშლა"
#: extensions/window-list/extension.js:434
msgid "Minimize all"
msgstr "ყველას ჩაკეცვა"
#: extensions/window-list/extension.js:440
msgid "Unminimize all"
msgstr "ყველას ამოკეცვა"
#: extensions/window-list/extension.js:446
msgid "Maximize all"
msgstr "ყველას მთელ ეკრანზე გაშლა"
#: extensions/window-list/extension.js:454
msgid "Unmaximize all"
msgstr "ყველას საწყის ზომაზე დაბრუნება"
#: extensions/window-list/extension.js:462
msgid "Close all"
msgstr "ყველას დახურვა"
#: extensions/window-list/extension.js:741
msgid "Window List"
msgstr "ფანჯრების სია"
#: 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:13
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"არჩევს, როდის შეაჯგუფოს ერთიდაიგივე აპლიკაციის ფანჯრების სია. შესაძლო "
"ვარიანტებია \"არასოდეს\", \"ავტომატურად\" და \"ყოველთვის\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:76
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:28
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr "ფანჯრების სიის მხოლოდ მთავარ თუ ყველა მონიტორზე ჩვენება."
#: extensions/window-list/prefs.js:32
msgid "Window Grouping"
msgstr "ფანჯრების შეჯგუფება"
#: extensions/window-list/prefs.js:37
msgid "Never group windows"
msgstr "არასოდეს შეაჯგუფო ფანჯრები"
#: extensions/window-list/prefs.js:38
msgid "Group windows when space is limited"
msgstr "შეაჯგუფე მხოლოდ მაშინ, როცა ადგილი არაა"
#: extensions/window-list/prefs.js:39
msgid "Always group windows"
msgstr "ყოველთვის შეაჯგუფე ფანჯრები"
#: extensions/window-list/prefs.js:63
msgid "Show on all monitors"
msgstr "ყველა ეკრანზე ჩვენება"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
msgid "Workspace Indicator"
msgstr "სამუშაო სივრცის ინდიკატორი"
#: extensions/workspace-indicator/prefs.js:18
msgid "Workspace Names"
msgstr "სამუშაო სივრცის სახელები"
#: extensions/workspace-indicator/prefs.js:39
#, javascript-format
msgid "Workspace %d"
msgstr "სამუშაო სივრცე %d"
#: extensions/workspace-indicator/prefs.js:184
msgid "Add Workspace"
msgstr "სამუშაო სივრცის დამატება"

View File

@@ -8,38 +8,29 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-12 22:56+0500\n"
"POT-Creation-Date: 2020-06-25 05:19+0000\n"
"PO-Revision-Date: 2020-07-02 11:39+0500\n"
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
"Language-Team: Kazakh <kk@li.org>\n"
"Language: kk\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 3.0.1\n"
"X-Generator: Poedit 2.3.1\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Классикалық GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Бұл сессия арқылы классикалық GNOME ішіне кіресіз"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Wayland негізіндегі классикалық GNOME"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Xorg негізіндегі классикалық GNOME"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Таңдамалылар"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Қолданбалар"
@@ -55,26 +46,26 @@ msgstr ""
"Жолдар тізімі, әрқайсысы қолданба анықтағышын сақтайды (desktop файлының "
"аты), соңында үтір және жұмыс орнының нөмірі тұрады"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Жұмыс орын ережелері"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Ережені қосу"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: 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:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Алынатын құрылғылар"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Файлдарды ашу"
@@ -107,8 +98,8 @@ msgstr ""
"үнсіз келісім бойынша астына орналастырудың орнына. Бұл баптау іске асыру "
"үшін қоршамды қайта іске қосу керек."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Орындар"
@@ -151,47 +142,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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Жабу"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Қайырылған емес қылу"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Қайыру"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Жазық емес қылу"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Жазық қылу"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Барлығын қайыру"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Барлығын қайырылған емес қылу"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Барлығын жазық қылу"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Барлығын жазық емес қылу"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Барлығын жабу"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Терезелер тізімі"
@@ -208,7 +199,7 @@ msgstr ""
"сипаттайды. Мүмкін мәндері: \"never\", \"auto\" және \"always\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Барлық жұмыс орнындарынан терезелерді көрсету"
@@ -230,41 +221,41 @@ msgstr ""
"Терезелер тізімін барлық жалғанған мониторларда, немесе тек біріншілік "
"мониторда көрсету керек пе."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Терезелерді топтау"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Терезелерді ешқашан топтамау"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Терезелерді орын шектелген кезде топтау"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Терезелерді әрқашан топтау"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Барлық мониторларда көрсету"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Жұмыс орын индикаторы"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Жұмыс орын атаулары"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Жұмыс орны %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Жұмыс орнын қосу"

View File

@@ -1,17 +1,17 @@
# Korean translation for gnome-shell-extensions.
# Copyright (C) 2012-2022 gnome-shell-extensions's COPYRIGHT HOLDER
# Copyright (C) 2012 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Seong-ho Cho <darkcircle.0426@gmail.com>, 2012.
# Changwoo Ryu <cwryu@debian.org>, 2013-2015, 2017, 2019-2020, 2022.
# Changwoo Ryu <cwryu@debian.org>, 2013-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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-03 00:15+0900\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-28 22:25+0900\n"
"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
"Language-Team: Korean <gnome-kr@googlegroups.com>\n"
"Language: ko\n"
@@ -20,28 +20,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "그놈 클래식"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "이 세션을 사용하면 그놈 클래식에 로그인합니다"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "그놈 클래식 (웨일랜드)"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "그놈 클래식 (Xorg)"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "즐겨찾기"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "프로그램"
@@ -57,26 +48,26 @@ msgstr ""
"문자열 목록, 각각은 프로그램 ID(데스크톱 파일 이름) 다음에 콜론 뒤에 작업 공"
"간 번호."
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "작업 공간 규칙"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "규칙 추가"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: 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:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "이동식 장치"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "파일 열기"
@@ -108,8 +99,8 @@ msgstr ""
"참이면, 창의 이름을 각 섬네일 위에 표시합니다. 셸의 기본값은 아래에 창 이름"
"을 표시합니다. 이 설정을 바꾸면 셸을 다시 시작해야 적용됩니다."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "위치"
@@ -152,47 +143,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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "닫기"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "최소화 취소"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "최소화"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "최대화 취소"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "최대화"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "모두 최소화"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "모두 최소화 취소"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "모두 최대화"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "모두 최대화 취소"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "모두 닫기"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "창 목록"
@@ -209,7 +200,7 @@ msgstr ""
"“never”, “auto”, “always”입니다."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "모든 작업 공간의 창을 표시합니다"
@@ -229,41 +220,41 @@ msgstr ""
"연결된 모든 모니터에 있는 창 목록을 표시할지, 아니면 주 모니터에 있는 창 목록"
"만 표시할지."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "창 모으기"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "창을 모으지 않기"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "공간이 부족할 때 창 모으기"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "항상 창 모으기"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "모든 모니터 보이기"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "작업 공간 표시"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "작업 공간 이름"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "작업 공간 %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "작업 공간 추가"

View File

@@ -2,15 +2,15 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Algimantas Margevičius <margevicius.algimantas@gmail.com>, 2011.
# Aurimas Černius <aurisc4@gmail.com>, 2013-2021.
# Aurimas Černius <aurisc4@gmail.com>, 2013-2020.
#
msgid ""
msgstr ""
"Project-Id-Version: lt\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-12-14 13:49+0200\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-26 22:34+0300\n"
"Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
"Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
"Language: lt\n"
@@ -19,32 +19,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
"%100<10 || n%100>=20) ? 1 : 2)\n"
"X-Generator: Gtranslator 40.0\n"
"X-Generator: Gtranslator 3.36.0\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasikinis GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Šis seansas prijungs jus prie klasikinio GNOME"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Klasikinis GNOME Wayland aplinkoje"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Klasikinis GNOME Xorg aplinkoje"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Mėgiamiausi"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Programos"
@@ -60,26 +49,27 @@ msgstr ""
"Eilučių sąrašas, kur kiekviena eilutė turi programos id (darbalaukio failo "
"vardą), po jo dvitaškis ir darbo srities numeris"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
msgid "Workspace Rules"
msgstr "Darbo sričių taisyklės"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Pridėti taisyklę"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Laikmenos „%s“ išstūmimas nepavyko:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Išimami įrenginiai"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Atverti failai"
@@ -111,8 +101,8 @@ msgstr ""
"nepaisant numatyto talpinimo apačioje. Pakeitus šiuos nustatymus, reikės "
"paleisti apvalkalą iš naujo."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Vietos"
@@ -155,47 +145,47 @@ msgstr "Temos pavadinimas"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Temos pavadinimas, kuri bus įkrauta iš ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Užverti"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Grąžinti iš sumažinimo"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Sumažinti"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Grąžinti iš išdidinimo"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Išdidinti"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Sumažinti visus"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Grąžinti visus iš sumažinimo"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Išdidinti visus"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Grąžinti visus iš išdidinimo"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Užverti visus"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Langų sąrašas"
@@ -212,7 +202,7 @@ msgstr ""
"vertės yra „never“, „auto“ ir „always“."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Rodyti visų darbo sričių langus"
@@ -232,41 +222,42 @@ msgstr ""
"Ar rodyti langų sąrašą visuose prijungtuose monitoriuose, ar tik "
"pagrindiniame."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Langų grupavimas"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Niekada negrupuoti langų"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Grupuoti langus, kai yra ribotai vietos"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Visada grupuoti langus"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Rodyti visuose monitoriuose"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Darbo srities indikatorius"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Darbo sričių pavadinimai"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Darbo sritis %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace"
msgstr "Pridėti darbo sritį"

View File

@@ -3,48 +3,37 @@
#
#
# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011, 2012.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
# Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>, 2012, 2013, 2014, 2015, 2017, 2019, 2020.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-24 22:15+0200\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-12 12:05+0300\n"
"Last-Translator: Rūdolfs Mazurs <rudolfs.mazurs@gmail.com>\n"
"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
"Language: lv\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Lokalize 21.08.1\n"
"X-Generator: Lokalize 19.12.3\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 :"
" 2);\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasiskais GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Šī sesija ieraksta jūs klasiskajā GNOME vidē"
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Klasiskais GNOME ar Wayland"
#: data/gnome-classic-xorg.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Xorg"
msgstr "Klasiskais GNOME ar Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Izlase"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Lietotnes"
@@ -60,26 +49,27 @@ msgstr ""
"Saraksts ar virknēm, kas katra satur lietotnes id (darbvirsmas datnes "
"nosaukums), kam seko kols un darbvietas numurs"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
msgid "Workspace Rules"
msgstr "Darbvietu kārtulas"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Pievienot kārtulu"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Neizdevās izgrūst dzini “%s”:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Izņemamās ierīces"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Atvērt datnes"
@@ -112,8 +102,8 @@ msgstr ""
"noklusēto novietojumu (apakšā). Lai šī iestatījuma izmaiņas stātos spēkā, "
"jāpārstartē čaula."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Vietas"
@@ -156,47 +146,47 @@ msgstr "Motīva nosaukums"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Motīva nosaukums, ko ielādēt no ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Aizvērt"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Atminimizēt"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizēt"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Atjaunot"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maksimizēt"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimizēt visus"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Atminimizēt visus"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maksimizēt visus"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Atmaksimizēt visus"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Aizvērt visu"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Logu saraksts"
@@ -213,7 +203,7 @@ msgstr ""
"vērtības ir “never”, “auto” un “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Rādīt logus no visām darba vietām"
@@ -233,41 +223,42 @@ msgstr ""
"Vai logu sarakstu rādītu uz visiem pievienotajiem monitoriem, vai tikai uz "
"primārā."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Logu grupēšana"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Nekad negrupēt logus"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Grupēt logus, kad vieta ir ierobežota"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Vienmēr grupēt logus"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Rādīt uz visiem monitoriem"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Darbvietu indikators"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Darbvietu nosaukumi"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Darbvieta %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace"
msgstr "Pievienot darbvietu"

147
po/ne.po
View File

@@ -6,41 +6,33 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extension gnome 3.14\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-09-08 02:59+0545\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2021-05-01 11:32+0545\n"
"Last-Translator: Pawan Chitrakar <chautari@gmail.com>\n"
"Language-Team: Nepali Translation Team <chautari@gmail.com>\n"
"Language: ne\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
"X-Poedit-SourceCharset: UTF-8\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "जिनोम क्लासिक"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "यो सेसन जिनोम क्लासिकमा लगईन हुन्छ"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "वेल्याण्डमा जिनोम क्लासिक"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Xorg मा जिनोम क्लासिक"
#: extensions/apps-menu/extension.js:118
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "मनपर्ने"
#: extensions/apps-menu/extension.js:379
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "अनुप्रयोग"
@@ -50,31 +42,32 @@ msgstr "अनुप्रयोग र कार्यस्थल सूची
#: 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"
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"स्ट्रिङहरूको सूची, प्रत्येकमा अनुप्रयोग आईडी (डेस्कटप फाइल नाम) समाविष्ट छ, त्यसपछि विराम र कार्यस्थान "
"नम्बरद्वारा अनुगमन गरियो"
"स्ट्रिङहरूको सूची, प्रत्येकमा अनुप्रयोग आईडी (डेस्कटप फाइल नाम) समाविष्ट छ, त्यसपछि "
"विराम र कार्यस्थान नम्बरद्वारा अनुगमन गरियो"
#: extensions/auto-move-windows/prefs.js:152
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "कार्यस्थान नियम"
#: extensions/auto-move-windows/prefs.js:306
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "नियम थप्नुहोस्"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126 extensions/places-menu/placeDisplay.js:210
#: 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:145
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "छुट्याउन मिल्ने यन्त्र"
#: extensions/drive-menu/extension.js:167
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "खुला फाइल"
@@ -84,12 +77,13 @@ msgstr "सञ्झ्यालका लागि बढी पर्दा
#: 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. This setting applies only with the "
"natural placement strategy."
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"सञ्झ्याल थम्बनेलहरू पर्दा आकार अनुपातमा अनुकूल गरेर राख्नका लागि धेरै पर्दा प्रयोग गर्न प्रयास गर्नुहोस्, र "
"तिनीहरूलाई बाउन्डिङ बाकस घटाउन अझ संगठित गर्नुहोस् । यो तरिका प्राकृतिक प्लेसमेन्ट रणनीतिमा मात्र लागू हुन्छ।"
"सञ्झ्याल थम्बनेलहरू पर्दा आकार अनुपातमा अनुकूल गरेर राख्नका लागि धेरै पर्दा प्रयोग गर्न "
"प्रयास गर्नुहोस्, र तिनीहरूलाई बाउन्डिङ बाकस घटाउन अझ संगठित गर्नुहोस् । यो तरिका "
"प्राकृतिक प्लेसमेन्ट रणनीतिमा मात्र लागू हुन्छ।"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
@@ -97,36 +91,39 @@ msgstr "सञ्झ्याल क्याप्सन माथि राख
#: 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 restarting the shell to have any "
"effect."
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"ठीक भएमा, सम्बन्धित थम्बनेलको माथि सञ्झ्याल क्याप्सन राख्नुहोस्, यसलाई तल राख्ने पूर्वनिर्धारित शेल अधिलेखन "
"गर्नुहोस् । यो सेटिङ परिवर्तन गर्न कुनै प्रभाव पार्न शेल पुन: सुरुआत गर्नु आवश्यक हुन्छ ।"
"ठीक भएमा, सम्बन्धित थम्बनेलको माथि सञ्झ्याल क्याप्सन राख्नुहोस्, यसलाई तल राख्ने "
"पूर्वनिर्धारित शेल अधिलेखन गर्नुहोस् । यो सेटिङ परिवर्तन गर्न कुनै प्रभाव पार्न शेल पुन: "
"सुरुआत गर्नु आवश्यक हुन्छ ।"
#: extensions/places-menu/extension.js:94 extensions/places-menu/extension.js:97
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "ठाउँहरू"
#: extensions/places-menu/placeDisplay.js:49
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "%s सुरु गर्न असफल"
#: extensions/places-menu/placeDisplay.js:64
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "\"%s\" का लागि भोल्युम माउन्ट गर्न असफल"
#: extensions/places-menu/placeDisplay.js:125 extensions/places-menu/placeDisplay.js:148
#: 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:359
msgid "Home"
msgstr "गृह"
#: extensions/places-menu/placeDisplay.js:381
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "सञ्जाल ब्राउज गर्नुहोस्"
@@ -146,47 +143,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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "बन्द"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "न्यूनतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "सानो बनाउनुहोस्"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "अघिकतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "ठूलो बनाउनुहोस्"
#: extensions/window-list/extension.js:483
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "सबै सानो बनाउनुहोस्"
#: extensions/window-list/extension.js:489
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "सबै न्यूनतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:495
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "सबै ठूलो बनाउनुहोस्"
#: extensions/window-list/extension.js:503
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "सबैलाई अघिकतम नबनाउनुहोस्"
#: extensions/window-list/extension.js:511
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "सबै बन्द गर्नुहोस्"
#: extensions/window-list/extension.js:795
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "सञ्झ्याल सूची"
@@ -196,14 +193,14 @@ msgstr "कहिले सञ्झ्याल समुहबध्द गर
#: 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”."
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"सञ्झ्याल सूचीमा उस्तै अनुप्रयोगबाट कहिले समूह बनाउने निर्णय गर्दछ । सम्भावित मान \"कहिले पनि\", \"स्वचालित\" र "
"\"सधैँ\" हुन् ।"
"सञ्झ्याल सूचीमा उस्तै अनुप्रयोगबाट कहिले समूह बनाउने निर्णय गर्दछ । सम्भावित मान \"कहिले "
"पनि\", \"स्वचालित\" र \"सधैँ\" हुन् ।"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:79
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "सबै कार्यस्थानबाट सन्झ्याल देखाउनुहोस्"
@@ -216,44 +213,48 @@ msgid "Show the window list on all monitors"
msgstr "सबै मोनिटरमा सञ्झ्याल सूची देखाउनुहोस्"
#: 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 "सबै जडान गरिएको मोनिटरमा वा प्राथमिक मोनिटरमा मात्र सञ्झ्याल सूची देखाउने या नदेखाउने ।"
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"सबै जडान गरिएको मोनिटरमा वा प्राथमिक मोनिटरमा मात्र सञ्झ्याल सूची देखाउने या नदेखाउने "
"।"
#: extensions/window-list/prefs.js:35
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "समूहबद्ध सञ्झ्याल"
#: extensions/window-list/prefs.js:40
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "सञ्झ्याल समुहबध्द नगर्ने"
#: extensions/window-list/prefs.js:41
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "खाली स्थान सिमित भएको बेलामा सञ्झ्यालहरू समूह गर्नुहोस्"
#: extensions/window-list/prefs.js:42
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "सञ्झ्याल सधैँ समुहबध्द गर्ने"
#: extensions/window-list/prefs.js:66
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "सबै मोनिटरमा देखाउनुहोस्"
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "कार्यस्थान सूचक"
#: extensions/workspace-indicator/prefs.js:62
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "कार्यस्थल नाम"
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "कार्यस्थल %d"
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "कार्यस्थल नाम"
#: extensions/workspace-indicator/prefs.js:255
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "कार्यस्थल थप्नुहोस्"

View File

@@ -2,47 +2,38 @@
# Copyright (C) 2013 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Reinout van Schouwen <reinouts@gnome.org>, 2013, 2014.
# Nathan Follens <nfollens@gnome.org>, 2015-2017, 2019-2020, 2022.
# Nathan Follens <nthn@unseen.is>, 2015-2017, 2019-2020.
# Hannie Dumoleyn <hannie@ubuntu-nl.org>, 2015.
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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-03-25 12:43+0100\n"
"Last-Translator: Nathan Follens <nfollens@gnome.org>\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-25 17:37+0200\n"
"Last-Translator: Nathan Follens <nthn@unseen.is>\n"
"Language-Team: Dutch <gnome-nl-list@gnome.org>\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
"X-Generator: Poedit 2.4.1\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Gnome klassiek"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Deze sessie meldt u aan bij Gnome klassiek"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Gnome klassiek op Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Gnome klassiek op Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favorieten"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Toepassingen"
@@ -58,26 +49,26 @@ msgstr ""
"Een lijst van tekenreeksen, elk bestaande uit een toepassings-id (desktop-"
"bestandsnaam), gevolgd door een dubbele punt en het werkbladnummer"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Werkbladregels"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Regel toevoegen"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Uitwerpen van station %s mislukt:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Verwijderbare apparaten"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Bestanden openen"
@@ -111,8 +102,8 @@ msgstr ""
"wordt. Het wijzigen van deze instelling vereist het herstarten van de shell "
"om effect te sorteren."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Locaties"
@@ -155,47 +146,47 @@ msgstr "Themanaam"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "De naam van het thema, te laden vanuit ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Sluiten"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Zichtbaar maken"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimaliseren"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Herstellen"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximaliseren"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Alles minimaliseren"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Alles zichtbaar maken"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Alles maximaliseren"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Alles herstellen"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Alles sluiten"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Vensterlijst"
@@ -213,7 +204,7 @@ msgstr ""
"always (altijd)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Vensters van alle werkbladen tonen"
@@ -235,41 +226,41 @@ msgstr ""
"Bepaalt of de vensterlijst op alle verbonden beeldschermen of enkel op het "
"primaire beeldscherm wordt weergegeven."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Venstergroepering"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Vensters nooit groeperen"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Vensters groeperen wanneer de ruimte beperkt is"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Vensters altijd groeperen"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Tonen op alle beeldschermen"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Werkbladindicator"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Werkbladnamen"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Werkblad %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Werkblad toevoegen"

View File

@@ -8,8 +8,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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-07 20:53+0100\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2021-05-10 22:04+0200\n"
"Last-Translator: Quentin PAGÈS\n"
"Language-Team: Tot En Òc\n"
"Language: oc\n"
@@ -17,31 +17,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 2.4.3\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Aquesta session vos connècta a GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Classic sus Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic sus Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favorits"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplicacions"
@@ -58,26 +49,26 @@ msgstr ""
"d'aplicacion (nom de fichièr desktop), seguit per un dos-punts e lo numèro "
"de l'espaci de trabalh"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Règlas dels espacis de trabalh"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Apondre una règla"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "L'ejeccion del disc « %s » a fracassat :"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Periferics amovibles"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Dobrir Fichièrs"
@@ -110,8 +101,8 @@ msgstr ""
"correspondenta, aquò remplaça lo comportament per defaut que los plaça en "
"dejós. Per qu'aqueste paramètre siá pres en compte, cal reaviar lo Shell."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Emplaçaments"
@@ -154,47 +145,47 @@ msgstr "Nom del tèma"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Lo nom del tèma, de cargar a partir de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Tampar"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Restablir"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Reduire"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Restablir"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Reduire tot"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Restablir tot"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maximizar tot"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Restablir tot"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Tampar tot"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Lista de fenèstras"
@@ -212,7 +203,7 @@ msgstr ""
"« always » (totjorn)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Afichar las fenèstras de totes los espacis de trabalh"
@@ -234,41 +225,41 @@ msgstr ""
"Indica se cal afichar la lista de las fenèstras sus totes los ecrans "
"connectats o solament l'ecran principal."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Regropament de fenèstras"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Regropar pas jamai las fenèstras"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Regropar las fenèstras quand l'espaci es limitat"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Regropar totjorn las fenèstras"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Afichar sus totes los ecrans"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicator d'espaci de trabalh"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Noms dels espacis de trabalh"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Espaci de trabalh %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Apondre un espaci de trabalh"

View File

@@ -1,16 +1,16 @@
# Polish translation for gnome-shell-extensions.
# Copyright © 2011-2022 the gnome-shell-extensions authors.
# Copyright © 2011-2020 the gnome-shell-extensions authors.
# This file is distributed under the same license as the gnome-shell-extensions package.
# Piotr Drąg <piotrdrag@gmail.com>, 2011-2022.
# Aviary.pl <community-poland@mozilla.org>, 2011-2022.
# Piotr Drąg <piotrdrag@gmail.com>, 2011-2020.
# Aviary.pl <community-poland@mozilla.org>, 2011-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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-26 15:15+0100\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-15 11:39+0200\n"
"Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
"Language-Team: Polish <community-poland@mozilla.org>\n"
"Language: pl\n"
@@ -20,28 +20,19 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasyczne GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Ta sesja loguje do klasycznego środowiska GNOME"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Klasyczne GNOME (Wayland)"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Klasyczne GNOME (Xorg)"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Ulubione"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Programy"
@@ -57,26 +48,26 @@ msgstr ""
"Lista ciągów, każdy zawierający identyfikator programu (nazwę pliku ."
"desktop) z przecinkiem i numerem obszaru roboczego"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Reguły obszarów roboczych"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Dodaj regułę"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Wysunięcie napędu „%s” się nie powiodło:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Urządzenia wymienne"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Otwórz menedżer plików"
@@ -109,8 +100,8 @@ msgstr ""
"powłokę. Zmiana tego ustawienia wymaga ponownego uruchomienia powłoki, aby "
"uwzględnić zmiany."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Miejsca"
@@ -153,47 +144,47 @@ msgstr "Nazwa motywu"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Nazwa motywu do wczytania z katalogu ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Zamknij"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Cofnij minimalizację"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Zminimalizuj"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Cofnij maksymalizację"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Zmaksymalizuj"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Zminimalizuj wszystkie"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Cofnij minimalizację wszystkich"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Zmaksymalizuj wszystkie"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Cofnij maksymalizację wszystkich"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Zamknij wszystkie"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Lista okien"
@@ -210,7 +201,7 @@ msgstr ""
"wartości to „never” (nigdy), „auto” (automatycznie) i „always” (zawsze)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Wyświetlanie okien ze wszystkich obszarów roboczych"
@@ -231,40 +222,40 @@ msgstr ""
"Czy wyświetlać listę okien na wszystkich podłączonych monitorach, czy tylko "
"na głównym."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Grupowanie okien"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Bez grupowania okien"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Grupowanie okien, kiedy miejsce jest ograniczone"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Stałe grupowanie okien"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Wyświetlanie na wszystkich monitorach"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Wskaźnik obszaru roboczego"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nazwy obszarów roboczych"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "%d. obszar roboczy"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Dodaj obszar roboczy"

View File

@@ -15,16 +15,16 @@ msgstr ""
"Project-Id-Version: 3.14\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-11-07 22:32+0000\n"
"Last-Translator: Hugo Carvalho <hugokarvalho@hotmail.com>\n"
"Language-Team: Portuguese (https://l10n.gnome.org/teams/pt/)\n"
"POT-Creation-Date: 2021-06-02 16:10+0000\n"
"PO-Revision-Date: 2021-06-07 07:21-0300\n"
"Last-Translator: Juliano de Souza Camargo <julianosc@protonmail.com>\n"
"Language-Team: Portuguese < >\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 40.0\n"
"X-Project-Style: gnome\n"
"X-DL-Team: pt\n"
"X-DL-Module: gnome-shell-extensions\n"
@@ -36,24 +36,15 @@ msgstr ""
msgid "GNOME Classic"
msgstr "GNOME clássico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Esta sessão vai usar o GNOME clássico"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME clássico em Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME clássico em Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritos"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:367
msgid "Applications"
msgstr "Aplicações"
@@ -69,26 +60,26 @@ msgstr ""
"Uma lista de cadeias, cada uma contendo uma id de aplicação (nome do "
"ficheiro desktop), seguido de dois pontos e o número da área de trabalho"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Regras das áreas de trabalho"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule"
msgstr "Adicionar regra"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Falha ao ejetar a unidade '%s':"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Dispositivos removíveis"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:152
msgid "Open Files"
msgstr "Abrir ficheiros"
@@ -121,8 +112,8 @@ msgstr ""
"substituindo a predefinição, que as coloca no fundo. Alterar esta "
"configuração requer reinicializar a interface para ter efeito."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:92
msgid "Places"
msgstr "Locais"
@@ -165,47 +156,47 @@ msgstr "Nome do tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nome do tema, a ser carregado de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Fechar"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Desminimizar"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizar"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Desmaximizar"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:432
msgid "Minimize all"
msgstr "Minimizar todas"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:438
msgid "Unminimize all"
msgstr "Desminimizar todas"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:444
msgid "Maximize all"
msgstr "Maximizar todas"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:452
msgid "Unmaximize all"
msgstr "Desmaximizar todas"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:460
msgid "Close all"
msgstr "Fechar todas"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:737
msgid "Window List"
msgstr "Lista de janelas"
@@ -222,7 +213,7 @@ msgstr ""
"valores válidos são \"nunca\", \"auto\" e \"sempre\"."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Mostrar janelas de todas as área de trabalho"
@@ -243,41 +234,41 @@ msgstr ""
"Se deve mostrar a lista de janelas em todos os monitores ligados ou só no "
"principal."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Agrupar janelas"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Nunca agrupar janelas"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Agrupar janelas quando o espaço é limitado"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Agrupar sempre as janelas"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Mostrar em todos os monitores"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator"
msgstr "Indicador de área de trabalho"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nomes das áreas de trabalho"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Área de trabalho %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace"
msgstr "Adicionar área de trabalho"

View File

@@ -1,5 +1,5 @@
# Brazilian Portuguese translation for gnome-shell-extensions.
# Copyright (C) 2022 gnome-shell-extensions's COPYRIGHT HOLDER
# Copyright (C) 2020 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
# Felipe Borges <felipe10borges@gmail.com>, 2011.
# Rodrigo Padula <contato@rodrigopadula.com>, 2011.
@@ -8,47 +8,38 @@
# Gabriel Speckhahn <gabspeck@gmail.com>, 2012.
# Og Maciel <ogmaciel@gnome.org>, 2012.
# Enrico Nicoletto <liverig@gmail.com>, 2013, 2014.
# Rafael Fontenelle <rafaelff@gnome.org>, 2013-2022.
# Rafael Fontenelle <rafaelff@gnome.org>, 2013-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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-01-07 19:57-0300\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-08-16 07:27-0300\n"
"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
"Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Poedit 3.0.1\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Gtranslator 3.36.0\n"
"X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "GNOME Clássico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Essa sessão se inicia como GNOME Clássico"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "GNOME Clássico no Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME Clássico no Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Favoritos"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplicativos"
@@ -64,26 +55,27 @@ msgstr ""
"Uma lista de strings, cada uma contendo um id de aplicativo (nome de arquivo "
"desktop), seguido por dois pontos e o número do espaço de trabalho"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
#| msgid "Workspace Names"
msgid "Workspace Rules"
msgstr "Regras de espaços de trabalho"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Adicionar regra"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Falha ao ejetar a unidade “%s”:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Dispositivos removíveis"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Abrir arquivos"
@@ -116,8 +108,8 @@ msgstr ""
"sobrescrevendo o padrão do shell de colocá-lo na parte inferior. A alteração "
"dessa configuração requer o reinício do shell para ter algum efeito."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Locais"
@@ -160,47 +152,47 @@ msgstr "Nome do tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "O nome do tema, para ser carregado de ~/.themes/nome/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Fechar"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Desfazer janelas minimizadas"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimizar"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Desfazer janelas maximizadas"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximizar"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimizar todas"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Desfazer todas as janelas minimizadas"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maximizar todas"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Desfazer todas as janelas maximizadas"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Fechar todas"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Lista de janelas"
@@ -217,7 +209,7 @@ msgstr ""
"Valores possíveis são “nunca”, “auto” e “sempre”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Mostrar janelas de todos espaços de trabalho"
@@ -239,41 +231,42 @@ msgstr ""
"Se deve ser exibida a lista de janelas em todos os monitores ou somente no "
"monitor principal."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Agrupamento de janelas"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Nunca agrupar janelas"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Agrupar janelas quando o espaço estiver limitado"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Sempre agrupar janelas"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Mostrar em todos os monitores"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indicador de espaços de trabalho"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Nomes de espaços de trabalho"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Espaço de trabalho %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace"
msgstr "Adicionar espaço de trabalho"

217
po/ru.po
View File

@@ -6,49 +6,40 @@
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions\n"
"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: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-09-14 13:09+0300\n"
"Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-21 16:55+0300\n"
"Last-Translator: Alexey Rubtsov <rushills@gmail.com>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\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: Poedit 3.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: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Классический GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Данный сеанс использует классический GNOME"
msgstr "Данный сеанс использует классический рабочий стол GNOME"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Классический GNOME на Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Классический GNOME на Xorg"
#: extensions/apps-menu/extension.js:118
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Избранное"
#: extensions/apps-menu/extension.js:379
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Приложения"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Приложение и список рабочих столов"
msgstr "Приложение и список рабочих областей"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
@@ -56,28 +47,28 @@ msgid ""
"followed by a colon and the workspace number"
msgstr ""
"Список строк, содержащих идентификатор приложения (имя desktop-файла), за "
"которым следует двоеточие и номер рабочего стола"
"которым следует двоеточие и номер рабочего места"
#: extensions/auto-move-windows/prefs.js:152
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Правила для рабочих столов"
msgstr "Правила для рабочей области"
#: extensions/auto-move-windows/prefs.js:306
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Добавить правило"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#: 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:145
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Съёмные устройства"
#: extensions/drive-menu/extension.js:167
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Открыть файлы"
@@ -110,31 +101,31 @@ msgstr ""
"умолчанию заголовки располагаются снизу). При изменении этого параметра, "
"чтобы оно вступило в силу, необходимо перезапустить Shell."
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Места"
#: extensions/places-menu/placeDisplay.js:49
#: extensions/places-menu/placeDisplay.js:46
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Не удалось запустить «%s»"
#: extensions/places-menu/placeDisplay.js:64
#: extensions/places-menu/placeDisplay.js:61
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не удалось смонтировать том для «%s»"
#: extensions/places-menu/placeDisplay.js:125
#: 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:359
msgid "Home"
msgstr "Домашняя папка"
#: extensions/places-menu/placeDisplay.js:381
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
msgstr "Обзор сети"
@@ -154,49 +145,49 @@ 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:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Закрыть"
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Вернуть"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Свернуть"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Восстановить"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Развернуть"
#: extensions/window-list/extension.js:483
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Свернуть все"
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
#: extensions/window-list/extension.js:489
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Вернуть все"
#: extensions/window-list/extension.js:495
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Развернуть все"
#: extensions/window-list/extension.js:503
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Восстановить все"
#: extensions/window-list/extension.js:511
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Закрыть все"
#: extensions/window-list/extension.js:795
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Список окон"
@@ -214,14 +205,14 @@ msgstr ""
"«always» — всегда."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:79
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Отображать окна со всех рабочих столов"
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"
@@ -235,40 +226,132 @@ msgstr ""
"Показывать ли список окон на всех подключенных мониторах или только на "
"основном."
#: extensions/window-list/prefs.js:35
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Группировка окон"
#: extensions/window-list/prefs.js:40
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Никогда не группировать окна"
#: extensions/window-list/prefs.js:41
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Группировать окна, если место ограничено"
#: extensions/window-list/prefs.js:42
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Всегда группировать окна"
#: extensions/window-list/prefs.js:66
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Показывать на всех мониторах"
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Индикатор рабочих столов"
msgstr "Индикатор рабочей области"
#: extensions/workspace-indicator/prefs.js:62
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Названия рабочих областей"
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Рабочий стол %d"
msgstr "Рабочая область %d"
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Названия рабочих столов"
#: extensions/workspace-indicator/prefs.js:255
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Добавить рабочий стол"
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 Shell."
#~ 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 "Application"
#~ msgstr "Приложение"
#~ msgid "Create new matching rule"
#~ msgstr "Создать новое правило соответствия"
#~ msgid "Add"
#~ 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 its possible to customize the greeting message."
#~ msgstr ""
#~ "Цель расширения Example — показать, как создавать расширения для Shell, "
#~ "само по себе оно имеет малую функциональность.\n"
#~ "Тем не менее, можно настроить приветственное сообщение."
#~ msgid "Name"
#~ msgstr "Название"
#~ msgid "CPU"
#~ msgstr "ЦП"
#~ msgid "Memory"
#~ msgstr "Память"
#~ msgid "GNOME Shell Classic"
#~ msgstr "Классический GNOME Shell"
#~ msgid "Window management and application launching"
#~ msgstr "Управление окнами и запуск приложений"

View File

@@ -9,8 +9,8 @@ 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: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2022-02-25 08:14+0100\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-09-02 14:02+0200\n"
"Last-Translator: Dušan Kazik <prescott66@gmail.com>\n"
"Language-Team: Slovak <gnome-sk-list@gnome.org>\n"
"Language: sk\n"
@@ -18,31 +18,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 1 : (n>=2 && n<=4) ? 2 : 0;\n"
"X-Generator: Poedit 3.0\n"
"X-Generator: Poedit 2.4.1\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasické prostredie GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Táto relácia vás prihlási do klasického prostredia GNOME"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
msgstr "Klasické prostredie GNOME so systémom Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Klasické prostredie GNOME so systémom Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Obľúbené"
# TreeViewColumn
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Aplikácie"
@@ -61,30 +52,30 @@ msgstr ""
"súboru .desktop), nasledovaný čiarkou a číslom pracovného priestoru"
# Label
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Pravidlá pracovného priestoru"
# ToolButton label
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Pridať pravidlo"
# https://bugzilla.gnome.org/show_bug.cgi?id=687590
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Zlyhalo vysúvanie jednotky „%s“:"
#  Menu
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Vymeniteľné zariadenia"
# Menu Action
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Otvoriť aplikáciu Súbory"
@@ -121,8 +112,8 @@ msgstr ""
"nadol. Aby sa prejavila zmena, je potrebné reštartovať shell."
#  menu item
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Miesta"
@@ -169,56 +160,56 @@ msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Názov témy, ktorá sa načíta z ~/.themes/nazov/gnome-shell"
# PopupMenuItem
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Zavrieť"
# label
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Odminimalizovať"
# label
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Minimalizovať"
# label
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Odmaximalizovať"
# label
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Maximalizovať"
# PopupMenuItem
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Minimalizovať všetko"
# PopupMenuItem
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Odminimalizovať všetko"
# PopupMenuItem
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Maximalizovať všetko"
# PopupMenuItem
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Odmaximalizovať všetko"
# PopupMenuItem
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Zavrieť všetko"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Zoznam okien"
@@ -236,7 +227,7 @@ msgstr ""
# CheckButton
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Zobraziť okná zo všetkých pracovných priestorov"
@@ -258,45 +249,45 @@ msgstr ""
"Určuje, či sa má zobraziť zoznam okien na všetkých pripojených monitoroch, "
"alebo iba na hlavnom."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Zoskupenie okien"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Nikdy nezoskupovať okná"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Zoskupovať okna ak je obmedzený priestor"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Vždy zoskupovať okná"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Zobraziť na všetkých monitoroch"
# Label
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Indikátor pracovného priestoru"
# Label
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Názvy pracovných priestorov"
# store label
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Pracovný priestor č. %d"
# TreeViewColumn; Label
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Pridať pracovný priestor"

224
po/sl.po
View File

@@ -1,48 +1,39 @@
# Slovenian translation for gnome-shell-extensions.
# Slovenian translation for gnome-shell-extension-openweather.
# Copyright (C) YEAR Jens Lody
# This file is distributed under the same license as the gnome-shell-extensions package.
# This file is distributed under the same license as the gnome-shell-extension-openweather package.
#
# Matej Urbančič <mateju@svn.gnome.org>, 20182022.
# Matej Urbančič <mateju@svn.gnome.org>, 20182020.
#
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: 2022-01-26 12:35+0000\n"
"PO-Revision-Date: 2022-01-26 21:55+0100\n"
"Last-Translator: Matej Urbančič <mateju@src.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl_SI\n"
"Project-Id-Version: gnome-shell-extension-openweather 1.1\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2020-06-01 15:34+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: sl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
"X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 3.0\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100>=3 && n"
"%100<=4 ? 2 : 3);\n"
"X-Generator: Poedit 2.3\n"
#: data/gnome-classic.desktop.in:3
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic"
msgstr "Klasično namizje GNOME"
msgstr "Običajno namizje GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
#: data/gnome-classic.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Seja omogoča prijavo v klasično namizje GNOME."
msgstr "Seja omogoča prijavo v običajno namizje GNOME."
#: data/gnome-classic-wayland.desktop.in:3
#| msgid "GNOME Classic"
msgid "GNOME Classic on Wayland"
msgstr "Klasično namizje GNOME na sistemu Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "Klasično namizje GNOME na sistemu Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:113
msgid "Favorites"
msgstr "Priljubljeno"
msgstr "Priljubljeni stiki"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:369
msgid "Applications"
msgstr "Programi"
@@ -52,30 +43,32 @@ msgstr "Seznam programov in delovnih površin"
#: 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"
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr ""
"Seznam nizov z določilom ID programa (ime programa), ki mu sledi dvopičje in nato številka delovne površine."
"Seznam nizov z določilom ID programa (ime programa), ki mu sledi dvopičje in "
"nato številka delovne površine."
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules"
msgstr "Pravila delovnih površin"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule"
msgstr "Dodaj pravilo"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 extensions/places-menu/placeDisplay.js:233
#: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Izmetavanje pogona »%s« je spodletelo:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:128
msgid "Removable devices"
msgstr "Odstranljive naprave"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:155
msgid "Open Files"
msgstr "Odpri datoteke"
@@ -85,11 +78,13 @@ msgstr "Uporabi več zaslona za okna"
#: 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. This setting applies only with the natural placement strategy."
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr ""
"Poskusi uporabiti več zaslona za postavitev sličic oken s prilagajanjem razmerja velikosti zaslona in "
"prilagajanjem postavitve okvirja. Nastavitev je mogoče uporabiti le z naravnim načinom postavitve."
"Poskusi uporabiti več zaslona za postavitev sličic oken s prilagajanjem "
"razmerja velikosti zaslona in prilagajanjem postavitve okvirja. Nastavitev "
"je mogoče uporabiti le z naravnim načinom postavitve."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
@@ -97,13 +92,16 @@ msgstr "Postavi nazive oken na vrh "
#: 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 restarting the shell to have any effect."
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"Izbrana možnost določi postavitev nazivov oken na vrh posamezne sličice in s tem prepiše privzeti izpis pod "
"sličico. Za uveljavitev sprememb je treba lupino ponovno zagnati."
"Izbrana možnost določi postavitev nazivov oken na vrh posamezne sličice in s "
"tem prepiše privzeti izpis pod sličico. Za uveljavitev sprememb je treba "
"lupino ponovno zagnati."
#: extensions/places-menu/extension.js:88 extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:93
msgid "Places"
msgstr "Mesta"
@@ -117,13 +115,14 @@ msgstr "Zaganjanje »%s« je spodletelo."
msgid "Failed to mount volume for “%s”"
msgstr "Priklapljanje nosilca za »%s« je spodletelo"
#: extensions/places-menu/placeDisplay.js:148 extensions/places-menu/placeDisplay.js:171
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Računalnik"
#: extensions/places-menu/placeDisplay.js:359
msgid "Home"
msgstr "Osebna mapa"
msgstr "Home"
#: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network"
@@ -131,11 +130,11 @@ msgstr "Prebrskaj omrežje"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
msgid "Cycle Screenshot Sizes"
msgstr "Preklapljaj velikosti zaslonske slike"
msgstr "Preklapljaj velikost zaslonske slike"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
msgid "Cycle Screenshot Sizes Backward"
msgstr "Preklapljaj velikosti zaslonske slike vzvratno"
msgstr "Preklapljaj velikost zaslonske slike"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
msgid "Theme name"
@@ -145,47 +144,47 @@ msgstr "Ime teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Ime teme, ki bo naložena iz ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72
#: extensions/window-list/extension.js:98
msgid "Close"
msgstr "Zapri"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Unminimize"
msgstr "Povečaj"
#: extensions/window-list/extension.js:92
#: extensions/window-list/extension.js:118
msgid "Minimize"
msgstr "Skrči"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Unmaximize"
msgstr "Pomanjšaj"
#: extensions/window-list/extension.js:99
#: extensions/window-list/extension.js:125
msgid "Maximize"
msgstr "Razpni"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:428
msgid "Minimize all"
msgstr "Skrči vse"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:434
msgid "Unminimize all"
msgstr "Pomanjšaj vse"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:440
msgid "Maximize all"
msgstr "Razpni vse"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:448
msgid "Unmaximize all"
msgstr "Pomanjšaj vse"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:456
msgid "Close all"
msgstr "Zapri vse"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:734
msgid "Window List"
msgstr "Seznam oken"
@@ -195,63 +194,68 @@ msgstr "Kdaj naj se okna združujejo skupine?"
#: 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”."
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr ""
"Določi, kdaj se okna istega programa v seznamu programov združujejo. Veljavne vrednosti so »nikoli«, "
"»samodejno« in »vedno«."
"Določi, kdaj se okna istega programa v seznamu programov združujejo. "
"Veljavne vrednosti so »nikoli«, »samodejno« in »vedno«."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:100
msgid "Show windows from all workspaces"
msgstr "Pokaži okna vseh delovnih površin"
#: 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 "Ali naj bo okno prikazano na vseh delovnih površinah ali le na trenutni."
msgstr ""
"Ali naj bo okno prikazano na vseh delovnih površinah ali le na trenutni."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
msgstr "Pokaži seznam okna na vseh zaslonih"
#: 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 "Ali naj bo prikazan seznam oken na vseh povezanih zasloni ali le na osnovnem."
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Ali naj bo prikazan seznam oken na vseh povezanih zasloni ali le na osnovnem."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:29
msgid "Window Grouping"
msgstr "Združevanje oken"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:58
msgid "Never group windows"
msgstr "Nikoli ne združuj oken"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited"
msgstr "Združi okna, ko je prostor omejen"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:60
msgid "Always group windows"
msgstr "Okna vedno združuj"
msgstr "Okna vedno združi"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:94
msgid "Show on all monitors"
msgstr "Pokaži na vseh zaslonih"
#: extensions/window-list/workspaceIndicator.js:249 extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator"
msgstr "Kazalnik delovnih površin"
#: extensions/workspace-indicator/prefs.js:33
#: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names"
msgstr "Imena delovnih površin"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:67
#, javascript-format
msgid "Workspace %d"
msgstr "Delovna površina %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace"
msgstr "Dodaj delovno površino"
@@ -272,20 +276,23 @@ msgstr "Dodaj delovno površino"
#~ msgid ""
#~ "Openweathermap.org does not work without an api-key.\n"
#~ "Either set the switch to use the extensions default key in the preferences dialog to on or register at "
#~ "https://openweathermap.org/appid and paste your personal key into the preferences dialog."
#~ "Either set the switch to use the extensions default key in the "
#~ "preferences dialog to on or register at https://openweathermap.org/appid "
#~ "and paste your personal key into the preferences dialog."
#~ msgstr ""
#~ "Povezava s spletiščem Openweathermap.org brez ključa API ne deluje.\n"
#~ "Med nastavitvami lahko uporabite privzet ključ razširitve ali pa osebnega, ki ga ustvarite na povezavi "
#~ "https://openweathermap.org/appid in ga nato kopirate v ustrezno polje nastavitev."
#~ "Med nastavitvami lahko uporabite privzet ključ razširitve ali pa "
#~ "osebnega, ki ga ustvarite na povezavi https://openweathermap.org/appid in "
#~ "ga nato kopirate v ustrezno polje nastavitev."
#~ msgid ""
#~ "Dark Sky does not work without an api-key.\n"
#~ "Please register at https://darksky.net/dev/register and paste your personal key into the preferences "
#~ "dialog."
#~ "Please register at https://darksky.net/dev/register and paste your "
#~ "personal key into the preferences dialog."
#~ msgstr ""
#~ "Prikaz nočnega neba brez ključa API ne deluje.\n"
#~ "Ustvarite osebni ključ na https://darksky.net/dev/register in ga prilepite v ustrezno polje nastavitev."
#~ "Ustvarite osebni ključ na https://darksky.net/dev/register in ga "
#~ "prilepite v ustrezno polje nastavitev."
#~ msgid "Can not connect to %s"
#~ msgstr "Povezava z %s ni mogoča."
@@ -731,17 +738,21 @@ msgstr "Dodaj delovno površino"
#~ msgstr "Osvežitev napovedi vremena [min]"
#~ msgid ""
#~ "Note: the forecast-timout is not used for Dark Sky, because they do not provide seperate downloads for "
#~ "current weather and forecasts."
#~ "Note: the forecast-timout is not used for Dark Sky, because they do not "
#~ "provide seperate downloads for current weather and forecasts."
#~ msgstr ""
#~ "Opomba: časovni zamik napovedi pri uporabi podatkov Dark Sky ni na voljo, saj sistem ne ponuja ločenih "
#~ "podatkov za trenutno vreme in napoved."
#~ "Opomba: časovni zamik napovedi pri uporabi podatkov Dark Sky ni na voljo, "
#~ "saj sistem ne ponuja ločenih podatkov za trenutno vreme in napoved."
#~ msgid "Use extensions api-key for openweathermap.org"
#~ msgstr "Uporabi ključ API za razširitev openweathermap.org"
#~ msgid "Switch off, if you have your own api-key for openweathermap.org and put it into the text-box below."
#~ msgstr "Možnost je izklopljena, če je v spodnjem polju vpisan osebni ključ API za openweathermap.org."
#~ msgid ""
#~ "Switch off, if you have your own api-key for openweathermap.org and put "
#~ "it into the text-box below."
#~ msgstr ""
#~ "Možnost je izklopljena, če je v spodnjem polju vpisan osebni ključ API za "
#~ "openweathermap.org."
#~ msgid "Weather provider"
#~ msgstr "Vremenski podatki"
@@ -825,13 +836,14 @@ msgstr "Dodaj delovno površino"
#~ msgstr "neznano (krajevna izgradnja ?"
#~ msgid ""
#~ "<span>Weather extension to display weather information from <a href=\"https://openweathermap.org/"
#~ "\">Openweathermap</a> or <a href=\"https://darksky.net\">Dark Sky</a> for almost all locations in the "
#~ "world.</span>"
#~ "<span>Weather extension to display weather information from <a href="
#~ "\"https://openweathermap.org/\">Openweathermap</a> or <a href=\"https://"
#~ "darksky.net\">Dark Sky</a> for almost all locations in the world.</span>"
#~ msgstr ""
#~ "<span>Razširitev Vreme omogoča prikaz podatkov o vremenu s spletišča \n"
#~ "<a href=\"https://openweathermap.org/\">Openweathermap</a> oziroma <a href=\"https://darksky.net\">Dark "
#~ "Sky</a> za skoraj vse kraje na svetu.</span>"
#~ "<a href=\"https://openweathermap.org/\">Openweathermap</a> oziroma <a "
#~ "href=\"https://darksky.net\">Dark Sky</a> za skoraj vse kraje na svetu.</"
#~ "span>"
#~ msgid "Maintained by"
#~ msgstr "Razširitev vzdržuje"
@@ -841,12 +853,13 @@ msgstr "Dodaj delovno površino"
#~ msgid ""
#~ "<span size=\"small\">This program comes with ABSOLUTELY NO WARRANTY.\n"
#~ "See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html\">GNU General Public License, "
#~ "version 2 or later</a> for details.</span>"
#~ "See the <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html"
#~ "\">GNU General Public License, version 2 or later</a> for details.</span>"
#~ msgstr ""
#~ "<span size=\"small\">Program je objavljen brez VSAKRŠNE GARANCIJE.\n"
#~ "Za več podrobnosti si oglejte <a href=\"https://www.gnu.org/licenses/old-licenses/gpl-2.0.html\">Splošno "
#~ "Javno Dovoljenje GNU GPL, različice 2 ali kasnejše</a>.</span>"
#~ "Za več podrobnosti si oglejte <a href=\"https://www.gnu.org/licenses/old-"
#~ "licenses/gpl-2.0.html\">Splošno Javno Dovoljenje GNU GPL, različice 2 ali "
#~ "kasnejše</a>.</span>"
#~ msgid "About"
#~ msgstr "O programu"
@@ -861,10 +874,11 @@ msgstr "Dodaj delovno površino"
#~ msgstr "Enota hitrosti vetra"
#~ msgid ""
#~ "Choose the units used for wind speed. Allowed values are 'kph', 'mph', 'm/s', 'knots', 'ft/s' or "
#~ "'Beaufort'."
#~ "Choose the units used for wind speed. Allowed values are 'kph', 'mph', 'm/"
#~ "s', 'knots', 'ft/s' or 'Beaufort'."
#~ msgstr ""
#~ "Prikaz enote hitrosti vetra, ki je lahko »kph«, »mph«, »m/s«, »vozli«, »čevlji/s« oziroma »Beaufort«."
#~ "Prikaz enote hitrosti vetra, ki je lahko »kph«, »mph«, »m/s«, »vozli«, "
#~ "»čevlji/s« oziroma »Beaufort«."
#~ msgid "Choose whether to display wind direction through arrows or letters."
#~ msgstr "Prikaz smeri vetra s puščicami ali s črkovnimi oznakami smeri neba."

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