Compare commits

..

2 Commits

Author SHA1 Message Date
Florian Müllner 1a3b4e154c Bump version to 41.2
Update NEWS.
2022-02-15 20:54:18 +01:00
Florian Müllner e6fdccf65d window-list: Track window-created/unmanaged
Shell's WindowTracker switched to those signals instead of tracking
windows through MetaWorkspace's window-added/removed signals.

As ::window-created is only emitted after a window has been added to
its workspace, looking up its app on ::window-added now fails because
the window isn't tracked yet.

Address this by switching to the same signals for window tracking
(which is simpler anyway).

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/372
2022-01-21 02:37:38 +01:00
121 changed files with 8381 additions and 6071 deletions
+29
View File
@@ -0,0 +1,29 @@
ABOUT-NLS
Makefile
Makefile.in
Makefile.in.in
aclocal.m4
autom4te.cache/
config/
configure
config.log
config.status
data/*.json
m4/
po/*.header
po/*.sed
po/*.sin
po/Makevars.template
po/POTFILES
po/Rules-quot
po/gnome-shell-extensions.pot
po/stamp-it
staging/
zip-files/
*~
*.gmo
metadata.json
*.desktop
*.gschema.valid
*.session
+14 -6
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/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.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: stages:
- pre_review - pre_review
- prepare - prepare
@@ -10,7 +12,6 @@ stages:
- deploy - deploy
default: 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 # Cancel jobs if newer commits are pushed to the branch
interruptible: true interruptible: true
# Auto-retry jobs in case of infra failures # Auto-retry jobs in case of infra failures
@@ -25,6 +26,7 @@ default:
variables: variables:
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
LINT_LOG: "eslint-report.xml" LINT_LOG: "eslint-report.xml"
JS_LOG: "js-report.txt"
workflow: workflow:
rules: rules:
@@ -101,14 +103,18 @@ js_check:
stage: review stage: review
<<: *prereview_req <<: *prereview_req
script: 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: eslint:
stage: review stage: review
<<: *prereview_req <<: *prereview_req
script: script:
- export NODE_PATH=$(npm root -g) - eslint -o $LINT_LOG -f junit --resolve-plugins-relative-to $(npm root -g) extensions
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout
artifacts: artifacts:
paths: paths:
- ${LINT_LOG} - ${LINT_LOG}
@@ -133,6 +139,8 @@ fedora-build:
stage: build stage: build
needs: needs:
- build-fedora-container - build-fedora-container
before_script:
- git submodule update --init
script: script:
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true - meson setup build --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C build - meson compile -C build
@@ -149,8 +157,8 @@ fedora-dist:
stage: deploy stage: deploy
needs: needs:
- fedora-build - fedora-build
variables: before_script:
GIT_SUBMODULE_STRATEGY: normal - git submodule update --init
script: script:
- meson dist -C build - meson dist -C build
rules: rules:
-54
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
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
+7 -155
View File
@@ -1,169 +1,21 @@
45.beta 41.2
=======
* 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
==== ====
* Bump version * window-list: Update window tracking to avoid missing icons [Florian; #372]
44.rc
=====
* Bump version
44.beta
=======
* Tweak menu alignment [robxnano; !246]
Contributors: Contributors:
Florian Müllner, robxnano Florian Müllner
Translators: 41.1
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] * native-window-placement: Fix distorted layout in app grid [Sebastian; !189]
* window-list: Fix on-screen keyboard [Florian; !199] * window-list: Fix on-screen keyboard [Florian; !199]
* Misc. bug fixes and cleanups [Neal; Just; !195, !197] * Misc. bug fixes [Neal; !195]
Contributors: Contributors:
Piotr Drąg, Neal Gompa, Sebastian Keller, Florian Müllner, Just Perfection Neal Gompa, Sebastian Keller, Florian Müllner
Translators: Translators:
Goran Vidović [hr], Sveinn í Felli [is], Yuri Chornoivan [uk], Goran Vidović [hr], Sveinn í Felli [is]
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]
41.0 41.0
==== ====
+178
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

+262
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

+222
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

+175
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

+209
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

+3 -3
View File
@@ -1,11 +1,11 @@
{ {
"parentMode": "user", "parentMode": "user",
"colorScheme": "force-light", "stylesheetName": "gnome-classic.css",
"hasOverview": false, "hasOverview": false,
"showWelcomeDialog": false, "showWelcomeDialog": false,
"enabledExtensions": [@CLASSIC_EXTENSIONS@], "enabledExtensions": [@CLASSIC_EXTENSIONS@],
"panel": { "left": [], "panel": { "left": ["appMenu"],
"center": [], "center": [],
"right": ["a11y", "keyboard", "dateMenu", "quickSettings"] "right": ["a11y", "keyboard", "dateMenu", "aggregateMenu"]
} }
} }
+5
View File
@@ -0,0 +1,5 @@
@import url("gnome-classic.css");
stage {
-st-icon-style: symbolic;
}
-8
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
-8
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
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");
}
+78 -31
View File
@@ -1,34 +1,12 @@
session_desktop_base = 'gnome-classic' session_desktop = 'gnome-classic.desktop'
i18n.merge_file('',
session_desktops = [ input: session_desktop + '.in',
session_desktop_base, output: session_desktop,
session_desktop_base + '-xorg', po_dir: '../po',
session_desktop_base + '-wayland', install: true,
] install_dir: xsessiondir,
type: 'desktop'
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
classic_uuids = [] classic_uuids = []
foreach e : classic_extensions foreach e : classic_extensions
@@ -46,5 +24,74 @@ configure_file(
install_dir: modedir 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' classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
install_data(classic_override, install_dir: schemadir) install_data(classic_override, install_dir: schemadir)
-916
View File
@@ -1,916 +0,0 @@
gnome-shell-extensions (45~beta-1) experimental; urgency=medium
* New upstream release
-- Jeremy Bícha <jbicha@ubuntu.com> Mon, 21 Aug 2023 10:17:23 -0400
gnome-shell-extensions (44.0-2) unstable; urgency=medium
* Team upload
* Upload to unstable (part of transition: #1043144)
-- Simon McVittie <smcv@debian.org> Sun, 20 Aug 2023 23:04:08 +0100
gnome-shell-extensions (44.0-1) experimental; urgency=medium
* New upstream release
* debian/control.in: Bump minimum meson to 0.58.0
* debian/control.in: Build-Depend on libglib2.0-bin
-- Jeremy Bicha <jbicha@ubuntu.com> Mon, 27 Mar 2023 08:50:32 -0400
gnome-shell-extensions (44~rc-1) experimental; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@ubuntu.com> Tue, 07 Mar 2023 12:20:00 -0500
gnome-shell-extensions (44~beta-1) experimental; urgency=medium
[ Jeremy Bicha ]
* New upstream release
[ Debian Janitor ]
* Remove constraints unnecessary since buster (oldstable)
-- Jeremy Bicha <jbicha@ubuntu.com> Wed, 15 Feb 2023 11:01:26 -0500
gnome-shell-extensions (43.1-1) unstable; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@ubuntu.com> Tue, 22 Nov 2022 14:14:48 -0500
gnome-shell-extensions (43.0-2) unstable; urgency=medium
* Release to unstable
-- Jeremy Bicha <jbicha@ubuntu.com> Tue, 27 Sep 2022 19:13:41 -0400
gnome-shell-extensions (43.0-1) experimental; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@ubuntu.com> Mon, 19 Sep 2022 10:57:41 -0400
gnome-shell-extensions (43~rc-1) experimental; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@ubuntu.com> Tue, 06 Sep 2022 14:39:00 -0400
gnome-shell-extensions (43~beta-1) experimental; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@ubuntu.com> Sun, 21 Aug 2022 10:59:20 -0400
gnome-shell-extensions (42.3-1) unstable; urgency=medium
* New upstream release (LP: #1981606)
-- Jeremy Bicha <jbicha@ubuntu.com> Wed, 13 Jul 2022 17:49:05 +0200
gnome-shell-extensions (42.2-1) unstable; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@ubuntu.com> Fri, 03 Jun 2022 09:23:28 -0400
gnome-shell-extensions (42.1-1) unstable; urgency=medium
* New upstream release (LP: #1972365)
-- Jeremy Bicha <jbicha@ubuntu.com> Mon, 09 May 2022 08:09:32 -0400
gnome-shell-extensions (42.0-2) unstable; urgency=medium
* Release to unstable
-- Jeremy Bicha <jbicha@ubuntu.com> Mon, 28 Mar 2022 11:18:12 -0400
gnome-shell-extensions (42.0-1) experimental; urgency=medium
* New upstream release
-- Jeremy Bicha <jeremy.bicha@canonical.com> Mon, 14 Mar 2022 11:30:18 -0400
gnome-shell-extensions (42~rc-1) experimental; urgency=medium
* New upstream release
-- Jeremy Bicha <jeremy.bicha@canonical.com> Tue, 08 Mar 2022 17:54:41 -0500
gnome-shell-extensions (42~beta-1) experimental; urgency=medium
* New upstream release:
- Use libadwaita for preferences
- window-list: Fix on-screen keyboard
- native-window-placement: Fix distorted layout in app grid
* debian/control: Depend on libadwaita and gtk-4 (instead of gtk-3)
* debian/patches: Drop applied upstream
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Wed, 23 Feb 2022 07:35:20 +0100
gnome-shell-extensions (41.1-2) unstable; urgency=medium
* Team upload
* d/p/meson-Drop-unused-argument-for-i18n.merge_file.patch:
Backport patch from upstream to fix FBTFS with Meson 0.61
(Closes: #1005534)
-- Simon McVittie <smcv@debian.org> Tue, 15 Feb 2022 11:18:30 +0000
gnome-shell-extensions (41.1-1) unstable; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@debian.org> Sun, 12 Dec 2021 20:30:17 -0500
gnome-shell-extensions (41.0-2) unstable; urgency=medium
* Team upload
* Upload to unstable
-- Simon McVittie <smcv@debian.org> Sat, 16 Oct 2021 20:06:04 +0100
gnome-shell-extensions (41.0-1) experimental; urgency=medium
* New upstream release
* debian/control.in: Bump minimum meson to 0.53.0
* Bump Standards-Version to 4.6.0
-- Jeremy Bicha <jbicha@debian.org> Sun, 10 Oct 2021 17:04:15 -0400
gnome-shell-extensions (40.4-3) unstable; urgency=medium
* Team upload
* Release to unstable (transition: #992870)
-- Simon McVittie <smcv@debian.org> Sat, 11 Sep 2021 21:52:59 +0100
gnome-shell-extensions (40.4-2) experimental; urgency=medium
[ Jeremy Bicha ]
* New upstream release
* debian/copyright: Add gnome-classic.css to Files-Excluded
* Revert "debian/control: Don't build depend on sassc"
* This ensures we compile the CSS file from source.
[ Marco Trevisan (Treviño) ]
* debian/control: Support pre-release versions of gnome-shell
-- Jeremy Bicha <jbicha@debian.org> Sun, 29 Aug 2021 09:16:04 -0400
gnome-shell-extensions (40.1-1) experimental; urgency=medium
* New upstream release
* debian/control:
- Update runtime dependencies to match code.
Found grepping code via:
grep "imports\.gi" --include "*.js" -rh -B2 . \
| grep -o "\b[A-Z][A-Za-z]\+\b" | sed "s/,\?\s*$//g" | sort -u
- Don't build depend on sassc.
Since we compile from tarball, this is not needed anymore given that
compiled css are provided already.
- Build-depend on dh-sequence-gnome 0.22.
It's the first version that supports new GNOME versioning schema.
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Sun, 30 May 2021 20:05:13 +0200
gnome-shell-extensions (3.38.2-1) unstable; urgency=medium
* Team upload
* New upstream release
* Standards-Version: 4.5.1 (no changes required)
* d/gbp.conf: Use upstream/3.38.x branch.
Version 40~alpha was already released upstream.
-- Simon McVittie <smcv@debian.org> Thu, 03 Dec 2020 10:17:58 +0000
gnome-shell-extensions (3.38.1-1) unstable; urgency=medium
* New upstream release
* Recommend gnome-shell-extension-prefs instead of gnome-tweaks
-- Jeremy Bicha <jbicha@debian.org> Tue, 06 Oct 2020 17:44:30 -0400
gnome-shell-extensions (3.38.0-2) unstable; urgency=medium
* Team upload
* Revert "debian/watch: Watch for unstable releases"
* Release to unstable
-- Simon McVittie <smcv@debian.org> Fri, 25 Sep 2020 23:00:58 +0100
gnome-shell-extensions (3.38.0-1) experimental; urgency=medium
* Team upload
* New upstream release
- Translation updates
* d/upstream/metadata: Add
* Update standards version to 4.5.0, no changes needed
* Fix gnome-classic regression in 3.37.91-1.
gnome-session no longer takes the `--session gnome-classic` argument
when running in classic mode.
-- Simon McVittie <smcv@debian.org> Tue, 22 Sep 2020 11:49:24 +0100
gnome-shell-extensions (3.37.91-1) experimental; urgency=medium
* New upstream release:
- drive-menu: Emphasize eject buttons
- user-theme: Add preference dialog
- window-list:
+ Fix inconsistent state in preference dialog
+ auto-move: Modernize preference dialogs
- workspace-indicator: Overhaul preference dialog
- user-theme: Support session mode styles
- Adjust to gnome-shell changes
* debian/patches: Refresh
* debian/control: B-D on debhelper 13
* debian/rules: Don't override dh_missing equal default behavior
* debian/control: Remove useless dependency on clutter gir
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Thu, 27 Aug 2020 17:39:42 +0200
gnome-shell-extensions (3.36.2-1) unstable; urgency=medium
* New upstream release
-- Laurent Bigonville <bigon@debian.org> Sun, 03 May 2020 10:02:18 +0200
gnome-shell-extensions (3.36.1-1) unstable; urgency=medium
* Team upload
* New upstream release
- Update Ukrainian translation
- Update Gnome Shell CSS
* Upload to unstable (part of transition: #954422)
-- Simon McVittie <smcv@debian.org> Fri, 10 Apr 2020 15:12:29 +0100
gnome-shell-extensions (3.36.0-1) experimental; urgency=medium
* New upstream translation release
-- Iain Lane <laney@debian.org> Mon, 16 Mar 2020 12:39:02 +0000
gnome-shell-extensions (3.35.91-1) experimental; urgency=medium
* New upstream release
- Fixes and adjustments to latest gnome-shell
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Mon, 24 Feb 2020 18:29:29 +0000
gnome-shell-extensions (3.34.2-1) unstable; urgency=medium
* New upstream release
* debian/control.in: Bump Standards-Version to 4.4.1 (no further changes)
-- Laurent Bigonville <bigon@debian.org> Mon, 30 Dec 2019 00:51:13 +0100
gnome-shell-extensions (3.34.1-2) unstable; urgency=high
* New upstream release
- Fix GNOME Classic session's compatibility with gnome-setting-daemon 3.34
-- Jeremy Bicha <jbicha@debian.org> Tue, 08 Oct 2019 22:49:14 -0400
gnome-shell-extensions (3.34.0-2) unstable; urgency=medium
* Team upload.
* Upload to unstable.
-- Andreas Henriksson <andreas@fatal.se> Mon, 30 Sep 2019 17:27:38 +0200
gnome-shell-extensions (3.34.0-1) experimental; urgency=medium
* New upstream translation release
-- Iain Lane <laney@debian.org> Tue, 10 Sep 2019 10:59:31 +0100
gnome-shell-extensions (3.33.92-1) experimental; urgency=medium
* New upstream bugfix / translation releases
-- Iain Lane <laney@debian.org> Thu, 05 Sep 2019 18:22:14 +0100
gnome-shell-extensions (3.33.90-1) experimental; urgency=medium
[ Marco Trevisan (Treviño) ]
* New upstream release
+ window-list: Support showing windows from all workspaces
+ Make GNOME Classic more classic:
- Disable GNOME 3 overview
- Add window picker button to window list
- Style improvements and fixes
- Support horizontal workspace layout in window list
- Add draggable previews to window list workspace switcher
- Arrange workspaces horizontally
+ workspace-indicator: Support horizontal workspace layout
+ workspace-indicator: Add draggable previews
+ Fix windowsNavigator extension after ES6 port
+ screenshot-window-sizer: Add phone screenshot sizes
[ Iain Lane ]
* rules: Build all extensions via the upstream build system. We don't need
to hardcode the list to build, as the build system provides a way to build
'all' extensions.
* rules: Build with --fail-missing
* compat, control, rules: Move to compat 12 and specifying via build-deps
-- Iain Lane <laney@debian.org> Tue, 13 Aug 2019 11:59:22 +0100
gnome-shell-extensions (3.32.0-1) experimental; urgency=medium
* New upstream release
-- Iain Lane <laney@debian.org> Tue, 12 Mar 2019 16:34:14 +0000
gnome-shell-extensions (3.31.92-1) experimental; urgency=medium
* New upstream release
-- Iain Lane <laney@debian.org> Wed, 06 Mar 2019 15:40:48 +0000
gnome-shell-extensions (3.31.90-1) experimental; urgency=medium
* New upstream release
+ Misc. bug fixes and cleanups
+ Remove obsolete alternate-tab extension
+ Adjust to gnome-shell changes
* debian/watch: Watch for unstable releases
* rules: alternate-tab is dropped; stop trying to enable it
-- Iain Lane <laney@debian.org> Thu, 21 Feb 2019 10:33:12 +0000
gnome-shell-extensions (3.30.1-1) unstable; urgency=medium
* Team upload
* New upstream release
* Bump Standards-Version to 4.2.1
* d/p/gnome-session-classic-wrapper-script.patch:
Re-word to avoid a Lintian warning
-- Simon McVittie <smcv@debian.org> Fri, 02 Nov 2018 09:26:47 +0000
gnome-shell-extensions (3.30.0-1) unstable; urgency=medium
* New upstream release
* Release to unstable
-- Jeremy Bicha <jbicha@debian.org> Wed, 05 Sep 2018 12:34:40 -0400
gnome-shell-extensions (3.29.91-1) experimental; urgency=medium
* Team upload
* New upstream development release
* Bump Standards-Version to 4.2.0
* Sort dependency lists (wrap-and-sort -a)
* d/copyright: Remove unnecessary sentence fragment
* d/p/series: Remove commented-out line
-- Simon McVittie <smcv@debian.org> Mon, 20 Aug 2018 20:27:57 +0100
gnome-shell-extensions (3.29.90-1) experimental; urgency=medium
* Team upload
* New upstream development release
-- Simon McVittie <smcv@debian.org> Thu, 02 Aug 2018 10:46:44 +0100
gnome-shell-extensions (3.29.3+really3.29.3-1) experimental; urgency=medium
* Team upload
* d/watch: Watch for development versions
* Re-upload to experimental with a higher version than
3.29.3+really3.28.1-1, which reverted the incorrect upload of the
previous version to unstable
-- Simon McVittie <smcv@debian.org> Fri, 27 Jul 2018 23:56:10 +0100
gnome-shell-extensions (3.29.3-1) unstable; urgency=medium
* Team upload
[ Arnaud Rebillout ]
* New upstream release
[ Simon McVittie ]
* Bump Standards-Version to 4.1.5
* Set Rules-Requires-Root to no
-- Simon McVittie <smcv@debian.org> Fri, 27 Jul 2018 09:37:34 +0100
gnome-shell-extensions (3.28.1-1) unstable; urgency=medium
* New upstream release
* Bump Standards-Version to 4.1.4
-- Jeremy Bicha <jbicha@debian.org> Mon, 14 May 2018 21:51:46 -0400
gnome-shell-extensions (3.28.0-2) unstable; urgency=medium
* Fix typo in configure flag that resulted in missing
auto-move-windows, native-window-placement, & user-theme extensions
-- Jeremy Bicha <jbicha@debian.org> Mon, 19 Mar 2018 18:20:53 -0400
gnome-shell-extensions (3.28.0-1) unstable; urgency=medium
* New upstream release
-- Jeremy Bicha <jbicha@debian.org> Sun, 18 Mar 2018 20:17:17 -0400
gnome-shell-extensions (3.27.92-2) unstable; urgency=medium
* Release to unstable
-- Jeremy Bicha <jbicha@debian.org> Sat, 10 Mar 2018 19:37:45 -0500
gnome-shell-extensions (3.27.92-1) experimental; urgency=medium
[ Jeremy Bicha ]
* New upstream release candidate
* Drop explicit dependency on mutter's gir. gnome-shell-extensions depends
on gnome-shell which depends on the gir. Dropping it will make transitions
easier.
[ Simon McVittie ]
* Recommend gnome-tweaks instead of transitional gnome-tweak-tool
-- Jeremy Bicha <jbicha@debian.org> Mon, 05 Mar 2018 21:02:01 -0500
gnome-shell-extensions (3.27.91-1) experimental; urgency=medium
* New upstream development release
* Build with meson
* Build-Depend on sassc
* Bump debhelper compat to 11
* Drop places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch &
dont-require-nautilus-classic.patch: Applied in new release
-- Jeremy Bicha <jbicha@debian.org> Fri, 23 Feb 2018 19:49:59 -0500
gnome-shell-extensions (3.26.2-3) unstable; urgency=medium
* Team upload
[ Jeremy Bicha ]
* Update Vcs fields for migration to https://salsa.debian.org/
[ Simon McVittie ]
* d/patches: Re-export with gbp pq export
* d/p/places-menu-Don-t-force-dispose-of-uninitialized-proxies.patch:
Take patch from upstream to avoid frequent tracebacks from the Places
menu with gjs >= 1.50.2-3 (Closes: #888608)
-- Simon McVittie <smcv@debian.org> Tue, 30 Jan 2018 09:15:54 +0000
gnome-shell-extensions (3.26.2-2) unstable; urgency=medium
* Update Vcs fields for conversion to git
* Add debian/gbp.conf
* Bump Standards-Version to 4.1.2
-- Jeremy Bicha <jbicha@debian.org> Fri, 15 Dec 2017 15:19:14 -0500
gnome-shell-extensions (3.26.2-1) unstable; urgency=medium
* New upstream release
-- Michael Biebl <biebl@debian.org> Sun, 05 Nov 2017 20:17:03 +0100
gnome-shell-extensions (3.26.1-2) unstable; urgency=medium
* Release to unstable
* Bump Standards-Version to 4.1.1
-- Jeremy Bicha <jbicha@debian.org> Fri, 13 Oct 2017 16:49:30 -0400
gnome-shell-extensions (3.26.1-1) experimental; urgency=medium
* Team upload
* New upstream stable release
-- Simon McVittie <smcv@debian.org> Fri, 06 Oct 2017 11:01:11 +0100
gnome-shell-extensions (3.26.0-1) experimental; urgency=medium
* Team upload
* New upstream stable release
-- Simon McVittie <smcv@debian.org> Wed, 13 Sep 2017 11:33:19 +0100
gnome-shell-extensions (3.25.91-1) experimental; urgency=medium
* Team upload
* New upstream release, for GNOME Shell 3.25.91
- d/p/adapt-to-gsd324.patch: Drop, applied upstream
- Switch dependency to gir1.2-mutter-1
-- Simon McVittie <smcv@debian.org> Tue, 05 Sep 2017 16:43:01 +0100
gnome-shell-extensions (3.22.2-2) unstable; urgency=medium
* Add adapt-to-gsd324.patch (Closes: #869948):
- Adjust gnome-session file for gnome-settings-daemon 3.24
* debian/control.in:
- Bump Standards-Version to 4.0.0
- Explicitly depend on gnome-settings-daemon >= 3.24
- Drop version from gnome-tweak-tool recommends
- Depend on gnome-session-bin instead of gnome-session (LP: #1702832)
-- Jeremy Bicha <jbicha@ubuntu.com> Sun, 06 Aug 2017 17:38:06 -0400
gnome-shell-extensions (3.22.2-1) unstable; urgency=medium
* New upstream release.
-- Michael Biebl <biebl@debian.org> Thu, 10 Nov 2016 19:36:44 +0100
gnome-shell-extensions (3.22.1-1) unstable; urgency=medium
* New upstream release.
-- Michael Biebl <biebl@debian.org> Tue, 11 Oct 2016 17:58:31 +0200
gnome-shell-extensions (3.22.0-1) unstable; urgency=medium
* New upstream release.
-- Michael Biebl <biebl@debian.org> Tue, 20 Sep 2016 01:59:50 +0200
gnome-shell-extensions (3.21.92-1) unstable; urgency=medium
* New upstream development release.
* Replace Build-Depends gnome-common with pkg-config and gettext.
-- Michael Biebl <biebl@debian.org> Tue, 13 Sep 2016 22:13:19 +0200
gnome-shell-extensions (3.21.91-1) unstable; urgency=medium
* New upstream beta release.
-- Andreas Henriksson <andreas@fatal.se> Tue, 30 Aug 2016 19:57:32 +0200
gnome-shell-extensions (3.21.90-1) experimental; urgency=medium
[ Andreas Henriksson ]
* New upstream beta release.
* Update build-dependencies according to configure.ac changes:
- drop intltool, now gettext is used instead.
[ Jeremy Bicha ]
* Convert from cdbs to dh
* Add debian/docs to install NEWS and README
* Bump dh compat to 10
* Update Vcs fields
* Refresh patches
-- Andreas Henriksson <andreas@fatal.se> Sun, 21 Aug 2016 05:36:17 +0200
gnome-shell-extensions (3.21.4-1) experimental; urgency=medium
* New upstream development release.
* Stop hard-coding Victor Seva in the Uploaders field
-- Andreas Henriksson <andreas@fatal.se> Fri, 12 Aug 2016 16:28:33 +0200
gnome-shell-extensions (3.20.1-1) unstable; urgency=medium
* New upstream release.
* Bump Standards-Version to 3.9.8.
-- Michael Biebl <biebl@debian.org> Wed, 11 May 2016 15:21:35 +0200
gnome-shell-extensions (3.20.0-2) unstable; urgency=medium
* Upload to unstable.
-- Michael Biebl <biebl@debian.org> Sun, 17 Apr 2016 00:25:25 +0200
gnome-shell-extensions (3.20.0-1) experimental; urgency=medium
* New upstream release.
-- Andreas Henriksson <andreas@fatal.se> Fri, 25 Mar 2016 10:48:00 +0100
gnome-shell-extensions (3.19.92-1) experimental; urgency=medium
* New upstream release.
* Update dont-require-nautilus-classic.patch to apply.
-- Andreas Henriksson <andreas@fatal.se> Thu, 17 Mar 2016 12:51:13 +0100
gnome-shell-extensions (3.18.4-1) unstable; urgency=medium
* New upstream release.
* Bump Standards-Version to 3.9.7.
-- Michael Biebl <biebl@debian.org> Sun, 06 Mar 2016 22:38:57 +0100
gnome-shell-extensions (3.18.3-2) unstable; urgency=medium
* Add Breaks/Replaces gnome-shell-common (<< 3.18) (Closes: #808906)
- Helps upgrades from Jessie by allowing overwriting
/usr/share/gnome-shell/theme/calendar-today.svg et.al.
which was previously shipped in gnome-shell-common.
-- Andreas Henriksson <andreas@fatal.se> Wed, 10 Feb 2016 01:24:42 +0100
gnome-shell-extensions (3.18.3-1) unstable; urgency=medium
* New upstream release.
-- Michael Biebl <biebl@debian.org> Thu, 14 Jan 2016 22:49:16 +0100
gnome-shell-extensions (3.18.2-1) unstable; urgency=medium
* New upstream release.
-- Michael Biebl <biebl@debian.org> Fri, 13 Nov 2015 00:04:09 +0100
gnome-shell-extensions (3.18.1-1) unstable; urgency=medium
* New upstream release.
-- Michael Biebl <biebl@debian.org> Fri, 16 Oct 2015 22:09:01 +0200
gnome-shell-extensions (3.18.0-1) unstable; urgency=medium
* New upstream release.
-- Laurent Bigonville <bigon@debian.org> Sun, 11 Oct 2015 16:29:18 +0200
gnome-shell-extensions (3.17.92-1) experimental; urgency=medium
* New upstream release candidate.
-- Andreas Henriksson <andreas@fatal.se> Fri, 18 Sep 2015 17:28:06 +0200
gnome-shell-extensions (3.16.2-1) unstable; urgency=medium
[ Emilio Pozuelo Monfort ]
* debian/gnome-shell-extensions.gsettings-override:
+ Dropped, no longer needed as the enabled extension no longer exists.
Thanks Artur Rona for noticing. (Closes: #782747)
[ Michael Biebl ]
* New upstream release.
* Update Homepage.
* Bump debhelper compatibility level to 9.
-- Michael Biebl <biebl@debian.org> Thu, 02 Jul 2015 19:13:32 +0200
gnome-shell-extensions (3.16.1-1) unstable; urgency=medium
* New upstream release.
* debian/control.in,
debian/rules:
+ The system monitor extension was removed. Drop the libgtop
build and runtime dependencies and stop enabling it.
* debian/patches/apps-center-labels.patch,
debian/patches/window-list-pointerInNotification.patch,
debian/patches/menu-arrows-icons.patch:
+ Dropped, merged upstream.
* debian/patches/dont-require-nautilus-classic.patch:
+ Updated for the new version.
-- Emilio Pozuelo Monfort <pochu@debian.org> Sun, 14 Jun 2015 15:23:59 +0200
gnome-shell-extensions (3.14.2-1) unstable; urgency=medium
* New upstream bugfix release.
* menu-arrows-icons: new patch. Make arrows consistent with the rest
of the shell.
* apps-center-labels.patch: patch from upstream git. Center labels
vertically in the applications menu.
* window-list-pointerInNotification.patch: patch from upstream git.
Update window-list extension for an older shell API change.
-- Josselin Mouette <joss@debian.org> Sun, 30 Nov 2014 16:06:59 +0100
gnome-shell-extensions (3.14.1-1) unstable; urgency=medium
* New upstream release.
* debian/control.in: Bump Standards-Version to 3.9.6 (no further changes)
* Add missing dependencies against gir packages, including gir1.2-gmenu-3.0,
this should fix the apps-menu extension for some people (Closes: #765460).
-- Laurent Bigonville <bigon@debian.org> Sun, 19 Oct 2014 21:17:58 +0200
gnome-shell-extensions (3.14.0-2) unstable; urgency=medium
* Drop xrandr from EXTENSIONS_DISABLED, this extension was removed
upstream.
* Add new screenshot-window-sizer extension to EXTENSIONS_ENABLED.
-- Michael Biebl <biebl@debian.org> Wed, 24 Sep 2014 01:15:32 +0200
gnome-shell-extensions (3.14.0-1) unstable; urgency=medium
* debian/watch: only scan for stable releases.
* New upstream release.
* Upload to unstable.
-- Andreas Henriksson <andreas@fatal.se> Tue, 23 Sep 2014 15:46:30 +0200
gnome-shell-extensions (3.13.91-1) experimental; urgency=medium
* New upstream development release.
-- Andreas Henriksson <andreas@fatal.se> Sat, 06 Sep 2014 11:16:39 -0700
gnome-shell-extensions (3.12.2-1) unstable; urgency=medium
* New upstream release.
* Bump Standards-Version to 3.9.5
* Upload to unstable.
-- Andreas Henriksson <andreas@fatal.se> Tue, 15 Jul 2014 00:06:09 +0200
gnome-shell-extensions (3.12.0-1) experimental; urgency=low
[ Jean Schurger ]
* New upstream release (3.10.1)
* debian/rules: remove one of the 'windowsNavigator' extension listed twice
and the 'alternative-system-menu' extension (does not exists anymore)
* debian/copyright: Update 'Format:' line
[ Andreas Henriksson ]
* New upstream release (3.12.0)
* debian/local/gnome-session-classic,
debian/patches/gnome-session-classic-wrapper-script.patch:
- update script to include new GNOME_SHELL_SESSION_MODE env variable
and update patch to apply again.
-- Andreas Henriksson <andreas@fatal.se> Fri, 04 Apr 2014 21:43:18 +0200
gnome-shell-extensions (3.8.4-2) unstable; urgency=low
* Upload to unstable.
-- Emilio Pozuelo Monfort <pochu@debian.org> Sun, 13 Oct 2013 18:11:33 +0200
gnome-shell-extensions (3.8.4-1) experimental; urgency=low
[ Jeremy Bicha ]
* New upstream release
* Dropped patches applied in new version:
- fix-hibernate.patch
- fix-applications-menu-resolution-change.patch
- look-in-data-home-for-themes.patch
[ Michael Biebl ]
* Add a wrapper script to start the GNOME Classic session as currently
Xsession doesn't allow to run gnome-session with custom arguments due to
#653327.
-- Michael Biebl <biebl@debian.org> Fri, 11 Oct 2013 18:55:23 +0200
gnome-shell-extensions (3.8.3.1-1) experimental; urgency=low
[ Jeremy Bicha ]
* New upstream release
- default-min-max and static-workspaces extensions have been dropped.
Use Classic Mode or tweak org.gnome.shell.overrides in dconf-editor
* debian/control.in:
- Depend on gnome-session 3.8, required for the new Classic mode.
- Update homepage
* debian/patches/dont-require-nautilus-classic.patch:
- Don't require nautilus-classic since it forces desktop icons
* debian/patches/fix-applications-menu-resolution-change.patch:
- Backport commit to not break applications menu when screen resolution
changes
* debian/patches/fix-hibernate.patch:
- Backport patch to fix checking whether hibernate is allowed
* debian/patches/look-in-data-home-for-themes.patch:
- Backport commit to also look in XDG_DATA_HOME (usually ~/.local/share/)
for user themes
* debian/rules:
- Run autoreconf
-- Andreas Henriksson <andreas@fatal.se> Fri, 16 Aug 2013 20:25:30 +0200
gnome-shell-extensions (3.8.2-1) experimental; urgency=low
* Team upload
[ Victor Seva ]
* Recommends gnome-tweak-tool
[ Jean Schurger ]
* New upstream release 3.7.92 (LP: #1017979, #1059152).
* Enabled new extensions.
* Dropped 'dock' and 'gajim'.
* Use ./configure instead of autoreconf.
* Bumped Standards-Version to 3.9.4.
* Updated Vcs-Svn.
* debian/control.in
- Added runtime dependency to 'gvfs' (>= 1.16.0).
The 'Places' extension rely on a 'gvfs' linked to 'udisks2'.
[ Simon McVittie ]
* New upstream release 3.8.2.
* Install the "classic mode"
* Enable windowNavigator extension (this means we have everything except
example and xrandr, the same as in the Ubuntu gnome3-team's PPA)
-- Simon McVittie <smcv@debian.org> Thu, 23 May 2013 09:07:23 +0100
gnome-shell-extensions (3.4.0-2) unstable; urgency=low
* Upload to unstable.
-- Michael Biebl <biebl@debian.org> Wed, 30 May 2012 13:22:54 +0200
gnome-shell-extensions (3.4.0-1) experimental; urgency=low
* New upstream release.
* Remove 01_status-menu_disable_accounts.patch: The alternative-status-menu
extension no longer recreates the complete user menu but reuses the one
from gnome-shell, so we can't easily get rid of the "Online Accounts" menu
entry. We will patch gnome-shell directly instead.
* Remove 02-Revert-all-remove-all-GSettings-usage.patch and
03-Revert-Remove-all-references-to-localedir-from-metad.patch, no longer
required.
* Bump Standards-Version to 3.9.3
-- Michael Biebl <biebl@debian.org> Mon, 21 May 2012 00:24:56 +0200
gnome-shell-extensions (3.2.3-1) unstable; urgency=low
[ Josselin Mouette ]
* gnome-shell-extensions.gsettings-override: enable the alternative
status menu by default. Closes: #648112.
* Use ${gnome:Version} to generate strict dependencies, its very
unlikely that extensions remain compatible after a major upgrade.
[ Michael Biebl ]
* Upload to unstable.
[ Josselin Mouette ]
* 01_status-menu_disable_accounts.patch: new patch. Drop the unusable
advertisement for Google. It is already available in the control
center anyway.
[ Michael Biebl ]
* New upstream release.
* Drop patches which have been merged upstream:
- debian/patches/upstream/*
- debian/patches/fix-*
* Refresh 01_status-menu_disable_accounts.patch.
* Add 02-Revert-all-remove-all-GSettings-usage.patch: Use GSettings since we
install the extensions system-wide.
* Use dh-autoreconf to generate the build system.
* Add 03-Revert-Remove-all-references-to-localedir-from-metad.patch: Use
locales from system-wide location.
-- Michael Biebl <biebl@debian.org> Sat, 11 Feb 2012 23:28:53 +0100
gnome-shell-extensions (3.2.0-1) experimental; urgency=low
[ Victor Seva ]
* Initial release (Closes: #627515)
Package based on the work by Bilal Akhtar <bilalakhtar@ubuntu.com>
* debian/copyright
- Added myself
- Fixed syntax-error-in-dep5-copyright syntax error
* debian/control.in
- Added myself as maintainer.
- Fix gnome-shell dependency.
- Fix gir1.2-gtop-2.0 dependency for systemMonitor ext.
* debian/rules
- Added uploaders.mk gnome-version.mk includes.
- Removed unused variables.
* debian/watch added.
* No more gnome-shell-extension-* packages.
* debian/patches/upstream
- patch_967aee7aad2accfb38d91ab56b6c5e91d86a2722.diff
popup menu fix
- patch_66242aa76a5d59fb4659551575c1fbb42e50b8fb.diff
dock fix.
- patch_4c5a36e4c0cbe38f2e26b6b3c8b02e88b4b939f7.diff
patch_2bba98d6214cffae2eb5cecb9d7c1f6b6d244052.diff
systemMonitor: Properly enable/disable
* debian/patches
- fix_dock_gnome-shell_version.diff
- fix_alternate-tab_661281.diff
- fix_alternate-tab_gnome-shell_version.diff
* debian/rules
- EXTENSIONS_ENABLED, EXTENSIONS_DISABLED variables
- disabled xrandr-indicator
[ Michael Biebl ]
* debian/watch: Track .xz tarballs.
* debian/control.in:
- Set pkg-gnome-maintainers@lists.alioth.debian.org as Maintainer and add
Victor Seva <linuxmaniac@torreviejawireless.org> to Uploaders.
- Wrap (Build-)Depends.
- Add Vcs-Svn and Vcs-Browser field.
* debian/rules:
- Include gnome-get-source.mk.
-- Michael Biebl <biebl@debian.org> Sat, 12 Nov 2011 18:32:22 +0100
-50
View File
@@ -1,50 +0,0 @@
# This file is autogenerated. DO NOT EDIT!
#
# Modifications should be made to debian/control.in instead.
# This file is regenerated automatically in the clean target.
Source: gnome-shell-extensions
Section: gnome
Priority: optional
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Uploaders: Iain Lane <laney@debian.org>, Laurent Bigonville <bigon@debian.org>, Marco Trevisan (Treviño) <marco@ubuntu.com>
Build-Depends: debhelper-compat (= 13),
dh-sequence-gnome (>= 0.22),
libglib2.0-bin,
meson (>= 0.58.0),
sassc
Rules-Requires-Root: no
Standards-Version: 4.6.0
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell-extensions
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell-extensions.git
Homepage: https://wiki.gnome.org/Projects/GnomeShell/Extensions
Package: gnome-shell-extensions
Architecture: all
Depends: gir1.2-adw-1,
gir1.2-atk-1.0,
gir1.2-glib-2.0,
gir1.2-gmenu-3.0,
gir1.2-graphene-1.0 (>= 1.10.2),
gir1.2-gtk-4.0,
gir1.2-pango-1.0,
gnome-session-bin (>= 3.8),
gnome-settings-daemon (>= 3.24),
gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gvfs (>= 1.16.0),
${misc:Depends}
Recommends: gnome-shell-extension-prefs
Replaces: gnome-shell-common (<< 3.18)
Breaks: gnome-shell-common (<< 3.18)
Description: Extensions to extend functionality of GNOME Shell
The GNOME Shell redefines user interactions with the GNOME desktop. In
particular, it offers new paradigms for launching applications,
accessing documents, and organizing open windows in GNOME. Later, it
will introduce a new applets eco-system and offer new solutions for
other desktop features, such as notifications and contacts management.
The GNOME Shell is intended to replace functions handled by the GNOME
Panel and by the window manager in previous versions of GNOME. The GNOME
Shell has rich visual effects enabled by new graphical technologies.
.
GNOME Shell is extensible using extensions. This package contains
official GNOME Shell extensions.
-46
View File
@@ -1,46 +0,0 @@
Source: gnome-shell-extensions
Section: gnome
Priority: optional
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Uploaders: @GNOME_TEAM@
Build-Depends: debhelper-compat (= 13),
dh-sequence-gnome (>= 0.22),
libglib2.0-bin,
meson (>= 0.58.0),
sassc
Rules-Requires-Root: no
Standards-Version: 4.6.0
Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell-extensions
Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell-extensions.git
Homepage: https://wiki.gnome.org/Projects/GnomeShell/Extensions
Package: gnome-shell-extensions
Architecture: all
Depends: gir1.2-adw-1,
gir1.2-atk-1.0,
gir1.2-glib-2.0,
gir1.2-gmenu-3.0,
gir1.2-graphene-1.0 (>= 1.10.2),
gir1.2-gtk-4.0,
gir1.2-pango-1.0,
gnome-session-bin (>= 3.8),
gnome-settings-daemon (>= 3.24),
gnome-shell (<< ${gnome:NextVersion}),
gnome-shell (>= ${gnome:Version}),
gvfs (>= 1.16.0),
${misc:Depends}
Recommends: gnome-shell-extension-prefs
Replaces: gnome-shell-common (<< 3.18)
Breaks: gnome-shell-common (<< 3.18)
Description: Extensions to extend functionality of GNOME Shell
The GNOME Shell redefines user interactions with the GNOME desktop. In
particular, it offers new paradigms for launching applications,
accessing documents, and organizing open windows in GNOME. Later, it
will introduce a new applets eco-system and offer new solutions for
other desktop features, such as notifications and contacts management.
The GNOME Shell is intended to replace functions handled by the GNOME
Panel and by the window manager in previous versions of GNOME. The GNOME
Shell has rich visual effects enabled by new graphical technologies.
.
GNOME Shell is extensible using extensions. This package contains
official GNOME Shell extensions.
-30
View File
@@ -1,30 +0,0 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: gnome-shell-extensions
Upstream-Contact: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
Source: https://download.gnome.org/sources/gnome-shell-extensions/
Files-Excluded: data/gnome-classic.css
Comment: Build that generated file from source
Files: *
Copyright: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
License: GPL-2+
Files: debian/*
Copyright:
2011 Victor Seva <linuxmaniac@torreviejawireless.org>
2011 Bilal Akhtar <bilalakhtar@ubuntu.com>
License: GPL-2+
License: GPL-2+
This package 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 package 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.
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
Vendored
-2
View File
@@ -1,2 +0,0 @@
NEWS
README.md
-17
View File
@@ -1,17 +0,0 @@
[DEFAULT]
pristine-tar = True
debian-branch = debian/master
upstream-branch = upstream/latest
[buildpackage]
sign-tags = True
[dch]
multimaint-merge = True
[import-orig]
postimport = dch -v%(version)s New upstream release; git add debian/changelog; debcommit
upstream-vcs-tag = %(version%~%.)s
[pq]
patch-numbers = False
-1
View File
@@ -1 +0,0 @@
debian/local/gnome-session-classic usr/bin
-2
View File
@@ -1,2 +0,0 @@
#! /bin/sh
env GNOME_SHELL_SESSION_MODE=classic gnome-session "$@"
@@ -1,30 +0,0 @@
From: Michael Biebl <biebl@debian.org>
Date: Tue, 30 Jan 2018 09:04:03 +0000
Subject: Use a wrapper script to start GNOME classic session
Xsession currently doesn't allow passing more then one argument, as it
otherwise fails with
Xsession: unable to launch "gnome-session --session classic" X session ---
"gnome-session --session classic" not found; falling back to default session.
This is due to [1]. Add a wrapper script to start the GNOME classic session
as a workaround. Once [1] is fixed, this should be removed again.
[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=653327.
---
data/gnome-classic.desktop.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/gnome-classic.desktop.in b/data/gnome-classic.desktop.in
index 13da2b5..d627655 100644
--- a/data/gnome-classic.desktop.in
+++ b/data/gnome-classic.desktop.in
@@ -1,7 +1,7 @@
[Desktop Entry]
Name=GNOME Classic
Comment=This session logs you into GNOME Classic
-Exec=env GNOME_SHELL_SESSION_MODE=classic gnome-session
+Exec=gnome-session-classic
TryExec=gnome-session
Type=Application
DesktopNames=GNOME-Classic;GNOME;
-1
View File
@@ -1 +0,0 @@
gnome-session-classic-wrapper-script.patch
-9
View File
@@ -1,9 +0,0 @@
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_configure:
dh_auto_configure -- \
-Dextension_set=all \
-Dclassic_mode=true
-1
View File
@@ -1 +0,0 @@
3.0 (quilt)
-5
View File
@@ -1,5 +0,0 @@
---
Bug-Database: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues
Bug-Submit: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues/new
Repository: https://gitlab.gnome.org/GNOME/gnome-shell-extensions.git
Repository-Browse: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
-4
View File
@@ -1,4 +0,0 @@
version=4
opts="searchmode=plain, uversionmangle=s/\.(alpha|beta|rc)/~$1/, downloadurlmangle=s|cache.json||" \
https://download.gnome.org/sources/@PACKAGE@/cache.json \
[\d.]+/@PACKAGE@-([\d.]+)@ARCHIVE_EXT@
+1 -1
View File
@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/sh
srcdir=`dirname $0` srcdir=`dirname $0`
srcdir=`(cd $srcdir && pwd)` srcdir=`(cd $srcdir && pwd)`
+84 -84
View File
@@ -1,22 +1,18 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Atk from 'gi://Atk'; /* exported init enable disable */
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';
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'; const DND = imports.ui.dnd;
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; const ExtensionUtils = imports.misc.extensionUtils;
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js'; const Main = imports.ui.main;
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js'; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const _ = ExtensionUtils.gettext;
const appSys = Shell.AppSystem.get_default(); 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, 'query_info_async', 'query_info_finish');
Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish'); Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish');
var ApplicationMenuItem = GObject.registerClass(
class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem { class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
static { _init(button, app) {
GObject.registerClass(this); super._init();
}
constructor(button, app) {
super();
this._app = app; this._app = app;
this._button = button; this._button = button;
@@ -50,8 +43,11 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
this.label_actor = appLabel; this.label_actor = appLabel;
let textureCache = St.TextureCache.get_default(); let textureCache = St.TextureCache.get_default();
textureCache.connectObject('icon-theme-changed', let iconThemeChangedId = textureCache.connect('icon-theme-changed',
() => this._updateIcon(), this); this._updateIcon.bind(this));
this.connect('destroy', () => {
textureCache.disconnect(iconThemeChangedId);
});
this._updateIcon(); this._updateIcon();
this._delegate = this; this._delegate = this;
@@ -97,15 +93,12 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
icon.style_class = 'icon-dropshadow'; icon.style_class = 'icon-dropshadow';
this._iconBin.set_child(icon); this._iconBin.set_child(icon);
} }
} });
var CategoryMenuItem = GObject.registerClass(
class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem { class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
static { _init(button, category) {
GObject.registerClass(this); super._init();
}
constructor(button, category) {
super();
this._category = category; this._category = category;
this._button = button; this._button = button;
@@ -118,7 +111,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
else else
name = _('Favorites'); 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('motion-event', this._onMotionEvent.bind(this));
this.connect('notify::active', this._onActiveChanged.bind(this)); this.connect('notify::active', this._onActiveChanged.bind(this));
} }
@@ -187,14 +180,11 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
} }
_onMotionEvent(actor, event) { _onMotionEvent(actor, event) {
if (!this._grab) { let device = event.get_device();
if (!device.get_grabbed_actor()) {
this._oldX = -1; this._oldX = -1;
this._oldY = -1; this._oldY = -1;
const grab = global.stage.grab(this); device.grab(this);
if (grab.get_seat_state() !== Clutter.GrabState.NONE)
this._grab = grab;
else
grab.dismiss();
} }
this.hover = true; this.hover = true;
@@ -204,8 +194,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
this._oldX = -1; this._oldX = -1;
this._oldY = -1; this._oldY = -1;
this.hover = false; this.hover = false;
this._grab?.dismiss(); device.ungrab();
delete this._grab;
let source = event.get_source(); let source = event.get_source();
if (source instanceof St.Widget) if (source instanceof St.Widget)
@@ -221,7 +210,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
this._button.selectCategory(this._category); this._button.selectCategory(this._category);
this._button.scrollToCatButton(this); this._button.scrollToCatButton(this);
} }
} });
class ApplicationsMenu extends PopupMenu.PopupMenu { class ApplicationsMenu extends PopupMenu.PopupMenu {
constructor(sourceActor, arrowAlignment, arrowSide, button) { constructor(sourceActor, arrowAlignment, arrowSide, button) {
@@ -240,10 +229,8 @@ class ApplicationsMenu extends PopupMenu.PopupMenu {
} }
} }
class DesktopTarget extends EventEmitter { class DesktopTarget {
constructor() { constructor() {
super();
this._desktop = null; this._desktop = null;
this._desktopDestroyedId = 0; this._desktopDestroyedId = 0;
@@ -270,7 +257,9 @@ class DesktopTarget extends EventEmitter {
_setDesktop(desktop) { _setDesktop(desktop) {
if (this._desktop) { if (this._desktop) {
this._desktop.disconnectObject(this); this._desktop.disconnect(this._desktopDestroyedId);
this._desktopDestroyedId = 0;
delete this._desktop._delegate; delete this._desktop._delegate;
} }
@@ -278,9 +267,9 @@ class DesktopTarget extends EventEmitter {
this.emit('desktop-changed'); this.emit('desktop-changed');
if (this._desktop) { if (this._desktop) {
this._desktop.connectObject('destroy', () => { this._desktopDestroyedId = this._desktop.connect('destroy', () => {
this._setDesktop(null); this._setDesktop(null);
}, this); });
this._desktop._delegate = this; this._desktop._delegate = this;
} }
} }
@@ -320,7 +309,10 @@ class DesktopTarget extends EventEmitter {
} }
destroy() { destroy() {
global.window_group.disconnectObject(this); if (this._windowAddedId)
global.window_group.disconnect(this._windowAddedId);
this._windowAddedId = 0;
this._setDesktop(null); this._setDesktop(null);
} }
@@ -355,14 +347,12 @@ class DesktopTarget extends EventEmitter {
return true; return true;
} }
} }
Signals.addSignalMethods(DesktopTarget.prototype);
let ApplicationsButton = GObject.registerClass(
class ApplicationsButton extends PanelMenu.Button { class ApplicationsButton extends PanelMenu.Button {
static { _init() {
GObject.registerClass(this); super._init(1.0, null, false);
}
constructor() {
super(1.0, null, false);
this.setMenu(new ApplicationsMenu(this, 1.0, St.Side.TOP, this)); this.setMenu(new ApplicationsMenu(this, 1.0, St.Side.TOP, this));
Main.panel.menuManager.addMenu(this.menu); Main.panel.menuManager.addMenu(this.menu);
@@ -382,14 +372,15 @@ class ApplicationsButton extends PanelMenu.Button {
this.name = 'panelApplications'; this.name = 'panelApplications';
this.label_actor = this._label; this.label_actor = this._label;
Main.overview.connectObject( this._showingId = Main.overview.connect('showing', () => {
'showing', () => this.add_accessible_state(Atk.StateType.CHECKED), this.add_accessible_state(Atk.StateType.CHECKED);
'hiding', () => this.remove_accessible_state(Atk.StateType.CHECKED), });
this); this._hidingId = Main.overview.connect('hiding', () => {
this.remove_accessible_state(Atk.StateType.CHECKED);
});
Main.wm.addKeybinding( Main.wm.addKeybinding(
'apps-menu-toggle-menu', 'apps-menu-toggle-menu',
Extension.lookupByURL(import.meta.url).getSettings(), ExtensionUtils.getSettings(),
Meta.KeyBindingFlags.IGNORE_AUTOREPEAT, Meta.KeyBindingFlags.IGNORE_AUTOREPEAT,
Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW, Shell.ActionMode.NORMAL | Shell.ActionMode.OVERVIEW,
() => this.menu.toggle()); () => this.menu.toggle());
@@ -404,16 +395,16 @@ class ApplicationsButton extends PanelMenu.Button {
}); });
}); });
this._tree = new GMenu.Tree({menu_basename: 'applications.menu'}); this._tree = new GMenu.Tree({ menu_basename: 'applications.menu' });
this._tree.connectObject('changed', this._treeChangedId = this._tree.connect('changed',
() => this._onTreeChanged(), this); this._onTreeChanged.bind(this));
this._applicationsButtons = new Map(); this._applicationsButtons = new Map();
this.reloadFlag = false; this.reloadFlag = false;
this._createLayout(); this._createLayout();
this._display(); this._display();
appSys.connectObject('installed-changed', this._installedChangedId = appSys.connect('installed-changed',
() => this._onTreeChanged(), this); this._onTreeChanged.bind(this));
} }
_onTreeChanged() { _onTreeChanged() {
@@ -437,7 +428,11 @@ class ApplicationsButton extends PanelMenu.Button {
_onDestroy() { _onDestroy() {
super._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'); Main.wm.removeKeybinding('apps-menu-toggle-menu');
@@ -501,7 +496,7 @@ class ApplicationsButton extends PanelMenu.Button {
} }
let app = appSys.lookup_app(id); let app = appSys.lookup_app(id);
if (!app) 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()) if (app.get_app_info().should_show())
this.applicationsByCategory[categoryId].push(app); this.applicationsByCategory[categoryId].push(app);
} else if (nextType === GMenu.TreeItemType.SEPARATOR) { } else if (nextType === GMenu.TreeItemType.SEPARATOR) {
@@ -547,8 +542,8 @@ class ApplicationsButton extends PanelMenu.Button {
_createLayout() { _createLayout() {
let section = new PopupMenu.PopupMenuSection(); let section = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(section); this.menu.addMenuItem(section);
this.mainBox = new St.BoxLayout({vertical: false}); this.mainBox = new St.BoxLayout({ vertical: false });
this.leftBox = new St.BoxLayout({vertical: true}); this.leftBox = new St.BoxLayout({ vertical: true });
this.applicationsScrollBox = new St.ScrollView({ this.applicationsScrollBox = new St.ScrollView({
style_class: 'apps-menu vfade', style_class: 'apps-menu vfade',
x_expand: true, x_expand: true,
@@ -570,9 +565,9 @@ class ApplicationsButton extends PanelMenu.Button {
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false)); vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
this.leftBox.add_child(this.categoriesScrollBox); 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.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.categoriesScrollBox.add_actor(this.categoriesBox);
this.mainBox.add(this.leftBox); this.mainBox.add(this.leftBox);
@@ -666,19 +661,24 @@ class ApplicationsButton extends PanelMenu.Button {
return applist; 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() { function disable() {
this._appsMenuButton = new ApplicationsButton(); Main.panel.menuManager.removeMenu(appsMenuButton.menu);
const index = Main.sessionMode.panel.left.indexOf('activities') + 1; appsMenuButton.destroy();
Main.panel.addToStatusArea( }
'apps-menu', this._appsMenuButton, index, 'left');
} /** */
function init() {
disable() { ExtensionUtils.initTranslations();
Main.panel.menuManager.removeMenu(this._appsMenuButton.menu);
this._appsMenuButton.destroy();
delete this._appsMenuButton;
}
} }
-1
View File
@@ -3,5 +3,4 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files('stylesheet.css')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml') extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
+63 -48
View File
@@ -1,20 +1,22 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces // 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'; const ExtensionUtils = imports.misc.extensionUtils;
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; const Main = imports.ui.main;
class WindowMover { class WindowMover {
constructor(settings) { constructor() {
this._settings = settings; this._settings = ExtensionUtils.getSettings();
this._appSystem = Shell.AppSystem.get_default(); this._appSystem = Shell.AppSystem.get_default();
this._appConfigs = new Map(); this._appConfigs = new Map();
this._appData = new Map(); this._appData = new Map();
this._appSystem.connectObject('installed-changed', this._appsChangedId =
() => this._updateAppData(), this); this._appSystem.connect('installed-changed',
this._updateAppData.bind(this));
this._settings.connect('changed', this._updateAppConfigs.bind(this)); this._settings.connect('changed', this._updateAppConfigs.bind(this));
this._updateAppConfigs(); this._updateAppConfigs();
@@ -36,7 +38,7 @@ class WindowMover {
let removedApps = [...this._appData.keys()] let removedApps = [...this._appData.keys()]
.filter(a => !ids.includes(a.id)); .filter(a => !ids.includes(a.id));
removedApps.forEach(app => { removedApps.forEach(app => {
app.disconnectObject(this); app.disconnect(this._appData.get(app).windowsChangedId);
this._appData.delete(app); this._appData.delete(app);
}); });
@@ -44,14 +46,21 @@ class WindowMover {
.map(id => this._appSystem.lookup_app(id)) .map(id => this._appSystem.lookup_app(id))
.filter(app => app && !this._appData.has(app)); .filter(app => app && !this._appData.has(app));
addedApps.forEach(app => { addedApps.forEach(app => {
app.connectObject('window-changed', let data = {
this._appWindowsChanged.bind(this), this); windowsChangedId: app.connect('windows-changed',
this._appData.set(app, {windows: app.get_windows()}); this._appWindowsChanged.bind(this)),
moveWindowsId: 0,
windows: app.get_windows(),
};
this._appData.set(app, data);
}); });
} }
destroy() { destroy() {
this._appSystem.disconnectObject(this); if (this._appsChangedId) {
this._appSystem.disconnect(this._appsChangedId);
this._appsChangedId = 0;
}
if (this._settings) { if (this._settings) {
this._settings.run_dispose(); this._settings.run_dispose();
@@ -96,41 +105,47 @@ class WindowMover {
} }
} }
export default class AutoMoveExtension extends Extension { let prevCheckWorkspaces;
enable() { let winMover;
this._prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces =
this._getCheckWorkspaceOverride(this._prevCheckWorkspaces);
this._windowMover = new WindowMover(this.getSettings());
}
disable() { /** */
Main.wm._workspaceTracker._checkWorkspaces = this._prevCheckWorkspaces; function init() {
this._windowMover.destroy(); ExtensionUtils.initTranslations();
delete this._windowMover; }
}
/**
_getCheckWorkspaceOverride(originalMethod) { * @returns {bool} - false (used as MetaLater handler)
/* eslint-disable no-invalid-this */ */
return function () { function myCheckWorkspaces() {
const keepAliveWorkspaces = []; let keepAliveWorkspaces = [];
let foundNonEmpty = false; let foundNonEmpty = false;
for (let i = this._workspaces.length - 1; i >= 0; i--) { for (let i = this._workspaces.length - 1; i >= 0; i--) {
if (!foundNonEmpty) { if (!foundNonEmpty) {
foundNonEmpty = this._workspaces[i].list_windows().some( foundNonEmpty = this._workspaces[i].list_windows().some(
w => !w.is_on_all_workspaces()); w => !w.is_on_all_workspaces());
} else if (!this._workspaces[i]._keepAliveId) { } else if (!this._workspaces[i]._keepAliveId) {
keepAliveWorkspaces.push(this._workspaces[i]); keepAliveWorkspaces.push(this._workspaces[i]);
} }
} }
// make sure the original method only removes empty workspaces at the end // make sure the original method only removes empty workspaces at the end
keepAliveWorkspaces.forEach(ws => (ws._keepAliveId = 1)); keepAliveWorkspaces.forEach(ws => (ws._keepAliveId = 1));
originalMethod.call(this); prevCheckWorkspaces.call(this);
keepAliveWorkspaces.forEach(ws => delete ws._keepAliveId); keepAliveWorkspaces.forEach(ws => delete ws._keepAliveId);
return false; return false;
}; }
/* eslint-enable no-invalid-this */
} /** */
function enable() {
prevCheckWorkspaces = Main.wm._workspaceTracker._checkWorkspaces;
Main.wm._workspaceTracker._checkWorkspaces = myCheckWorkspaces;
winMover = new WindowMover();
}
/** */
function disable() {
Main.wm._workspaceTracker._checkWorkspaces = prevCheckWorkspaces;
winMover.destroy();
} }
+190 -260
View File
@@ -1,300 +1,227 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Start apps on custom workspaces // Start apps on custom workspaces
/* exported init buildPrefsWidget */
import Adw from 'gi://Adw'; const { Gio, GLib, GObject, Gtk, Pango } = imports.gi;
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
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 SETTINGS_KEY = 'application-list';
const WORKSPACE_MAX = 36; // compiled in limit of mutter const WORKSPACE_MAX = 36; // compiled in limit of mutter
class NewItem extends GObject.Object {} const AutoMoveSettingsWidget = GObject.registerClass(
GObject.registerClass(NewItem); class AutoMoveSettingsWidget extends Gtk.ScrolledWindow {
_init() {
class NewItemModel extends GObject.Object { super._init({
static [GObject.interfaces] = [Gio.ListModel]; hscrollbar_policy: Gtk.PolicyType.NEVER,
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'),
}); });
this._settings = settings; const box = new Gtk.Box({
this._rules = new RulesList(this._settings); 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}); box.append(new Gtk.Label({
const listModel = new Gtk.FlattenListModel({model: store}); label: '<b>%s</b>'.format(_('Workspace Rules')),
store.append(this._rules); use_markup: true,
store.append(new NewItemModel()); halign: Gtk.Align.START,
}));
this._list = new Gtk.ListBox({ this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE, 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 => { const context = this._list.get_style_context();
return item instanceof NewItem const cssProvider = new Gtk.CssProvider();
? new NewRuleRow() cssProvider.load_from_data(
: new RuleRow(item); '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() { _onAddActivated() {
const dialog = new NewRuleDialog(this.get_root(), this._settings); const dialog = new NewRuleDialog(this.get_root());
dialog.connect('response', (dlg, id) => { dialog.connect('response', (dlg, id) => {
const appInfo = id === Gtk.ResponseType.OK const appInfo = id === Gtk.ResponseType.OK
? dialog.get_widget().get_app_info() : null; ? dialog.get_widget().get_app_info() : null;
if (appInfo) if (appInfo) {
this._rules.append(appInfo); this._settings.set_strv(SETTINGS_KEY, [
...this._settings.get_strv(SETTINGS_KEY),
`${appInfo.get_id()}:1`,
]);
}
dialog.destroy(); dialog.destroy();
}); });
dialog.show(); dialog.show();
} }
}
class WorkspaceSelector extends Gtk.Widget { _onRemoveActivated(action, param) {
static [GObject.properties] = { const removed = param.deepUnpack();
'number': GObject.ParamSpec.uint( this._settings.set_strv(SETTINGS_KEY,
'number', 'number', 'number', 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, GObject.ParamFlags.READWRITE,
1, WORKSPACE_MAX, 1), 1, WORKSPACE_MAX, 1),
}; },
}, class RuleRow extends Gtk.ListBoxRow {
static { _init(appInfo, value) {
GObject.registerClass(this); const box = new Gtk.Box({
spacing: 6,
this.set_layout_manager_type(Gtk.BoxLayout); margin_top: 6,
} margin_bottom: 6,
margin_start: 6,
constructor() {
super();
this.layout_manager.spacing = 6;
const label = new Gtk.Label({
xalign: 1,
margin_end: 6, margin_end: 6,
}); });
this.bind_property('number',
label, 'label',
GObject.BindingFlags.SYNC_CREATE);
label.set_parent(this);
const buttonProps = { super._init({
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({
activatable: false, activatable: false,
title: rule.appInfo.get_display_name(), value,
child: box,
}); });
this._appInfo = appInfo;
const icon = new Gtk.Image({ const icon = new Gtk.Image({
css_classes: ['icon-dropshadow'],
gicon: appInfo.get_icon(), gicon: appInfo.get_icon(),
pixel_size: 32, pixel_size: 32,
}); });
this.add_prefix(icon); icon.get_style_context().add_class('icon-dropshadow');
box.append(icon);
const wsButton = new WorkspaceSelector(); const label = new Gtk.Label({
rule.bind_property('workspace', label: appInfo.get_display_name(),
wsButton, 'number', halign: Gtk.Align.START,
GObject.BindingFlags.SYNC_CREATE); hexpand: true,
this.add_suffix(wsButton); max_width_chars: 20,
ellipsize: Pango.EllipsizeMode.END,
wsButton.connect('notify::number', () => {
this.activate_action('rules.change-workspace',
new GLib.Variant('(si)', [id, wsButton.number]));
}); });
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({ const button = new Gtk.Button({
action_name: 'rules.remove', action_name: 'rules.remove',
action_target: new GLib.Variant('s', id), action_target: new GLib.Variant('s', this.id),
icon_name: 'edit-delete-symbolic', 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 { class NewRuleRow extends Gtk.ListBoxRow {
static { _init() {
GObject.registerClass(this); super._init({
}
constructor() {
super({
action_name: 'rules.add', action_name: 'rules.add',
child: new Gtk.Image({ child: new Gtk.Image({
icon_name: 'list-add-symbolic', icon_name: 'list-add-symbolic',
@@ -308,20 +235,17 @@ class NewRuleRow extends Gtk.ListBoxRow {
this.update_property( this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Rule')]); [Gtk.AccessibleProperty.LABEL], [_('Add Rule')]);
} }
} });
const NewRuleDialog = GObject.registerClass(
class NewRuleDialog extends Gtk.AppChooserDialog { class NewRuleDialog extends Gtk.AppChooserDialog {
static { _init(parent) {
GObject.registerClass(this); super._init({
}
constructor(parent, settings) {
super({
transient_for: parent, transient_for: parent,
modal: true, modal: true,
}); });
this._settings = settings; this._settings = ExtensionUtils.getSettings();
this.get_widget().set({ this.get_widget().set({
show_all: true, show_all: true,
@@ -339,10 +263,16 @@ class NewRuleDialog extends Gtk.AppChooserDialog {
this.set_response_sensitive(Gtk.ResponseType.OK, this.set_response_sensitive(Gtk.ResponseType.OK,
appInfo && !rules.some(i => i.startsWith(appInfo.get_id()))); appInfo && !rules.some(i => i.startsWith(appInfo.get_id())));
} }
});
/** */
function init() {
ExtensionUtils.initTranslations();
} }
export default class AutoMovePrefs extends ExtensionPreferences { /**
getPreferencesWidget() { * @returns {Gtk.Widget} - the prefs widget
return new AutoMoveSettingsWidget(this.getSettings()); */
} function buildPrefsWidget() {
return new AutoMoveSettingsWidget();
} }
@@ -0,0 +1 @@
/* This extensions requires no special styling */
+72 -45
View File
@@ -1,26 +1,19 @@
/* exported init enable disable */
// Drive menu extension // Drive menu extension
import Clutter from 'gi://Clutter'; const { Clutter, Gio, GObject, Shell, St } = imports.gi;
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Shell from 'gi://Shell';
import St from 'gi://St';
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'; const _ = ExtensionUtils.gettext;
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');
var MountMenuItem = GObject.registerClass(
class MountMenuItem extends PopupMenu.PopupBaseMenuItem { class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
static { _init(mount) {
GObject.registerClass(this); super._init({
}
constructor(mount) {
super({
style_class: 'drive-menu-item', style_class: 'drive-menu-item',
}); });
@@ -49,11 +42,33 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
this.hide(); this.hide();
mount.connectObject('changed', this._changedId = mount.connect('changed', this._syncVisibility.bind(this));
() => this._syncVisibility(), this);
this._syncVisibility(); 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() { async _isInteresting() {
if (!this.mount.can_eject() && !this.mount.can_unmount()) if (!this.mount.can_eject() && !this.mount.can_unmount())
return false; return false;
@@ -68,9 +83,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
const root = this.mount.get_root(); const root = this.mount.get_root();
try { try {
const attr = Gio.FILE_ATTRIBUTE_FILESYSTEM_REMOTE; return await this._fsIsRemote(root);
const info = await root.query_filesystem_info_async(attr, null);
return !info.get_attribute_boolean(attr);
} catch (e) { } catch (e) {
log(`Failed to query filesystem: ${e.message}`); log(`Failed to query filesystem: ${e.message}`);
} }
@@ -128,15 +141,12 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
super.activate(event); super.activate(event);
} }
} });
let DriveMenu = GObject.registerClass(
class DriveMenu extends PanelMenu.Button { class DriveMenu extends PanelMenu.Button {
static { _init() {
GObject.registerClass(this); super._init(0.0, _('Removable devices'));
}
constructor() {
super(0.5, _('Removable devices'));
let icon = new St.Icon({ let icon = new St.Icon({
icon_name: 'media-eject-symbolic', icon_name: 'media-eject-symbolic',
@@ -146,12 +156,12 @@ class DriveMenu extends PanelMenu.Button {
this.add_child(icon); this.add_child(icon);
this._monitor = Gio.VolumeMonitor.get(); this._monitor = Gio.VolumeMonitor.get();
this._monitor.connectObject( this._addedId = this._monitor.connect('mount-added',
'mount-added', (monitor, mount) => this._addMount(mount), (monitor, mount) => this._addMount(mount));
'mount-removed', (monitor, mount) => { this._removedId = this._monitor.connect('mount-removed', (monitor, mount) => {
this._removeMount(mount); this._removeMount(mount);
this._updateMenuVisibility(); this._updateMenuVisibility();
}, this); });
this._mounts = []; this._mounts = [];
@@ -193,16 +203,33 @@ class DriveMenu extends PanelMenu.Button {
} }
log('Removing a mount that was never added to the menu'); 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 { let _indicator;
enable() {
this._indicator = new DriveMenu();
Main.panel.addToStatusArea('drive-menu', this._indicator);
}
disable() { /** */
this._indicator.destroy(); function enable() {
delete this._indicator; _indicator = new DriveMenu();
} Main.panel.addToStatusArea('drive-menu', _indicator);
}
/** */
function disable() {
_indicator.destroy();
} }
-1
View File
@@ -3,4 +3,3 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files('stylesheet.css')
+14 -19
View File
@@ -1,22 +1,17 @@
import {AppIcon} from 'resource:///org/gnome/shell/ui/appDisplay.js'; /* exported enable disable */
import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js'; const AppDisplay = imports.ui.appDisplay;
export default class Extension { let _activateOriginal = null;
constructor() {
this._injectionManager = new InjectionManager();
}
enable() { /** */
this._injectionManager.overrideMethod(AppIcon.prototype, 'activate', function enable() {
originalMethod => { _activateOriginal = AppDisplay.AppIcon.prototype.activate;
return function () { AppDisplay.AppIcon.prototype.activate = function () {
// eslint-disable-next-line no-invalid-this _activateOriginal.call(this, 2);
originalMethod.call(this, 2); };
}; }
});
} /** */
function disable() {
disable() { AppDisplay.AppIcon.prototype.activate = _activateOriginal;
this._injectionManager.clear();
}
} }
@@ -0,0 +1 @@
/* This extensions requires no special styling */
-36
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);
}
}
-5
View File
@@ -1,5 +0,0 @@
extension_data += configure_file(
input: metadata_name + '.in',
output: metadata_name,
configuration: metadata_conf
)
-10
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@"
}
+1 -1
View File
@@ -15,7 +15,7 @@ foreach e : enabled_extensions
metadata_conf.set('url', 'https://gitlab.gnome.org/GNOME/gnome-shell-extensions') metadata_conf.set('url', 'https://gitlab.gnome.org/GNOME/gnome-shell-extensions')
extension_sources = files(e + '/extension.js') extension_sources = files(e + '/extension.js')
extension_data = [] extension_data = files(e + '/stylesheet.css')
subdir(e) subdir(e)
-1
View File
@@ -4,6 +4,5 @@ extension_data += configure_file(
configuration: metadata_conf configuration: metadata_conf
) )
# extension_data += files('stylesheet.css')
# extension_sources += files('prefs.js') # extension_sources += files('prefs.js')
# extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml') # extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
+77 -66
View File
@@ -1,11 +1,11 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- 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'; const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; const { WindowPreview } = imports.ui.windowPreview;
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js'; const Workspace = imports.ui.workspace;
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
// testing settings for natural window placement strategy: // testing settings for natural window placement strategy:
const WINDOW_PLACEMENT_NATURAL_ACCURACY = 20; // accuracy of window translate moves (KDE-default: 20) 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 = []; let rects = [];
for (let i = 0; i < clones.length; i++) { 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] // 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); rects[i] = new Rect(rect.x, rect.y, rect.width, rect.height);
bounds = bounds.union(rects[i]); bounds = bounds.union(rects[i]);
@@ -236,64 +236,75 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
} }
} }
export default class NativeWindowPlacementExtension extends Extension { let winInjections, workspaceInjections;
constructor(metadata) {
super(metadata);
this._injectionManager = new InjectionManager(); /** */
} function resetState() {
winInjections = { };
enable() { workspaceInjections = { };
const settings = this.getSettings(); }
const layoutProto = Workspace.WorkspaceLayout.prototype; /** */
const previewProto = WindowPreview.prototype; function enable() {
resetState();
this._injectionManager.overrideMethod(layoutProto, '_createBestLayout', () => {
/* eslint-disable no-invalid-this */ let settings = ExtensionUtils.getSettings();
return function () {
this._layoutStrategy = new NaturalLayoutStrategy({ workspaceInjections['_createBestLayout'] = Workspace.WorkspaceLayout.prototype._createBestLayout;
monitor: Main.layoutManager.monitors[this._monitorIndex], Workspace.WorkspaceLayout.prototype._createBestLayout = function (_area) {
}, settings); this._layoutStrategy = new NaturalLayoutStrategy({
return this._layoutStrategy.computeLayout(this._sortedWindows); monitor: Main.layoutManager.monitors[this._monitorIndex],
}; }, settings);
/* eslint-enable no-invalid-this */ return this._layoutStrategy.computeLayout(this._sortedWindows);
}); };
// position window titles on top of windows in overlay // position window titles on top of windows in overlay
this._injectionManager.overrideMethod(previewProto, '_init', originalMethod => { winInjections['_init'] = WindowPreview.prototype._init;
/* eslint-disable no-invalid-this */ WindowPreview.prototype._init = function (...args) {
return function (...args) { winInjections['_init'].call(this, ...args);
originalMethod.call(this, ...args);
if (!settings.get_boolean('window-captions-on-top'))
if (!settings.get_boolean('window-captions-on-top')) return;
return;
const alignConstraint = this._title.get_constraints().find(
const alignConstraint = this._title.get_constraints().find( c => c.align_axis && c.align_axis === Clutter.AlignAxis.Y_AXIS);
c => c.align_axis && c.align_axis === Clutter.AlignAxis.Y_AXIS); alignConstraint.factor = 0;
alignConstraint.factor = 0;
const bindConstraint = this._title.get_constraints().find(
const bindConstraint = this._title.get_constraints().find( c => c.coordinate && c.coordinate === Clutter.BindCoordinate.Y);
c => c.coordinate && c.coordinate === Clutter.BindCoordinate.Y); bindConstraint.offset = 0;
bindConstraint.offset = 0; };
}; winInjections['_adjustOverlayOffsets'] =
/* eslint-enable no-invalid-this */ WindowPreview.prototype._adjustOverlayOffsets;
}); WindowPreview.prototype._adjustOverlayOffsets = function (...args) {
winInjections['_adjustOverlayOffsets'].call(this, ...args);
this._injectionManager.overrideMethod(previewProto, '_adjustOverlayOffsets', originalMethod => {
/* eslint-disable no-invalid-this */ if (settings.get_boolean('window-captions-on-top'))
return function (...args) { this._title.translation_y = -this._title.translation_y;
originalMethod.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
/* eslint-enable no-invalid-this */ * @param {Object} injection - the map of previous injections
}); * @param {string} name - the @injection key that should be removed
} */
function removeInjection(object, injection, name) {
disable() { if (injection[name] === undefined)
this._injectionManager.clear(); delete object[name];
global.stage.queue_relayout(); 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();
} }
@@ -0,0 +1 @@
/* This extensions requires no special styling */
+46 -36
View File
@@ -1,27 +1,25 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Clutter from 'gi://Clutter'; /* exported init enable disable */
import GObject from 'gi://GObject';
import St from 'gi://St';
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'; const ExtensionUtils = imports.misc.extensionUtils;
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js'; const Main = imports.ui.main;
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js'; 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 N_ = x => x;
const PLACE_ICON_SIZE = 16; const PLACE_ICON_SIZE = 16;
var PlaceMenuItem = GObject.registerClass(
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem { class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
static { _init(info) {
GObject.registerClass(this); super._init({
}
constructor(info) {
super({
style_class: 'place-menu-item', style_class: 'place-menu-item',
}); });
this._info = info; this._info = info;
@@ -52,8 +50,17 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
this.add_child(this._ejectButton); this.add_child(this._ejectButton);
} }
info.connectObject('changed', this._changedId = info.connect('changed',
this._propertiesChanged.bind(this), this); this._propertiesChanged.bind(this));
}
destroy() {
if (this._changedId) {
this._info.disconnect(this._changedId);
this._changedId = 0;
}
super.destroy();
} }
activate(event) { activate(event) {
@@ -66,7 +73,7 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
this._icon.gicon = info.icon; this._icon.gicon = info.icon;
this._label.text = info.name; this._label.text = info.name;
} }
} });
const SECTIONS = [ const SECTIONS = [
'special', 'special',
@@ -75,13 +82,10 @@ const SECTIONS = [
'network', 'network',
]; ];
let PlacesMenu = GObject.registerClass(
class PlacesMenu extends PanelMenu.Button { class PlacesMenu extends PanelMenu.Button {
static { _init() {
GObject.registerClass(this); super._init(0.0, _('Places'));
}
constructor() {
super(0.5, _('Places'));
let label = new St.Label({ let label = new St.Label({
text: _('Places'), text: _('Places'),
@@ -90,7 +94,7 @@ class PlacesMenu extends PanelMenu.Button {
}); });
this.add_actor(label); this.add_actor(label);
this.placesManager = new PlacesManager(); this.placesManager = new PlaceDisplay.PlacesManager();
this._sections = { }; this._sections = { };
@@ -126,20 +130,26 @@ class PlacesMenu extends PanelMenu.Button {
this._sections[id].actor.visible = places.length > 0; this._sections[id].actor.visible = places.length > 0;
} }
});
/** */
function init() {
ExtensionUtils.initTranslations();
} }
export default class PlacesMenuExtension extends Extension { let _indicator;
enable() {
this._indicator = new PlacesMenu();
let pos = Main.sessionMode.panel.left.length; /** */
if ('apps-menu' in Main.panel.statusArea) function enable() {
pos++; _indicator = new PlacesMenu();
Main.panel.addToStatusArea('places-menu', this._indicator, pos, 'left');
}
disable() { let pos = Main.sessionMode.panel.left.indexOf('appMenu');
this._indicator.destroy(); if ('apps-menu' in Main.panel.statusArea)
delete this._indicator; pos++;
} Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
}
/** */
function disable() {
_indicator.destroy();
} }
-1
View File
@@ -3,6 +3,5 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files('stylesheet.css')
extension_sources += files('placeDisplay.js') extension_sources += files('placeDisplay.js')
+74 -41
View File
@@ -1,19 +1,15 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- // -*- 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'; const ExtensionUtils = imports.misc.extensionUtils;
import * as ShellMountOperation from 'resource:///org/gnome/shell/ui/shellMountOperation.js'; const Main = imports.ui.main;
const ShellMountOperation = imports.ui.shellMountOperation;
const _ = ExtensionUtils.gettext;
const N_ = x => x; 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 BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
const Hostname1Iface = '<node> \ const Hostname1Iface = '<node> \
@@ -23,10 +19,8 @@ const Hostname1Iface = '<node> \
</node>'; </node>';
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface); const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
class PlaceInfo extends EventEmitter { class PlaceInfo {
constructor(...params) { constructor(...params) {
super();
this._init(...params); this._init(...params);
} }
@@ -34,7 +28,7 @@ class PlaceInfo extends EventEmitter {
this.kind = kind; this.kind = kind;
this.file = file; this.file = file;
this.name = name || this._getFileName(); 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() { destroy() {
@@ -46,7 +40,7 @@ class PlaceInfo extends EventEmitter {
async _ensureMountAndLaunch(context, tryMount) { async _ensureMountAndLaunch(context, tryMount) {
try { 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) { } catch (err) {
if (!err.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) { if (!err.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_MOUNTED)) {
Main.notifyError(_('Failed to launch “%s”').format(this.name), err.message); 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); let op = new ShellMountOperation.ShellMountOperation(source);
try { try {
await this.file.mount_enclosing_volume(0, op.mountOp, null); await this._mountEnclosingVolume(0, op.mountOp, null);
if (tryMount) if (tryMount)
this._ensureMountAndLaunch(context, false); this._ensureMountAndLaunch(context, false);
@@ -97,16 +91,16 @@ class PlaceInfo extends EventEmitter {
// icon from the query info above // icon from the query info above
switch (this.kind) { switch (this.kind) {
case 'network': case 'network':
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'}); return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
case 'devices': case 'devices':
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'}); return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
case 'special': case 'special':
case 'bookmarks': case 'bookmarks':
default: default:
if (!this.file.is_native()) if (!this.file.is_native())
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'}); return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
else 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; 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 { class RootInfo extends PlaceInfo {
_init() { _init() {
@@ -140,7 +161,7 @@ class RootInfo extends PlaceInfo {
} }
getIcon() { getIcon() {
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'}); return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
} }
_propertiesChanged(proxy) { _propertiesChanged(proxy) {
@@ -248,10 +269,8 @@ const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_VIDEOS, GLib.UserDirectory.DIRECTORY_VIDEOS,
]; ];
export class PlacesManager extends EventEmitter { var PlacesManager = class {
constructor() { constructor() {
super();
this._places = { this._places = {
special: [], special: [],
devices: [], devices: [],
@@ -259,26 +278,16 @@ export class PlacesManager extends EventEmitter {
network: [], network: [],
}; };
this._settings = new Gio.Settings({schema_id: BACKGROUND_SCHEMA}); this._settings = new Gio.Settings({ schema_id: BACKGROUND_SCHEMA });
this._settings.connectObject('changed::show-desktop-icons', this._showDesktopIconsChangedId = this._settings.connect(
() => this._updateSpecials(), this); 'changed::show-desktop-icons', this._updateSpecials.bind(this));
this._updateSpecials(); this._updateSpecials();
/* /*
* Show devices, code more or less ported from nautilus-places-sidebar.c * Show devices, code more or less ported from nautilus-places-sidebar.c
*/ */
this._volumeMonitor = Gio.VolumeMonitor.get(); this._volumeMonitor = Gio.VolumeMonitor.get();
this._volumeMonitor.connectObject( this._connectVolumeMonitorSignals();
'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._updateMounts(); this._updateMounts();
this._bookmarksFile = this._findBookmarksFile(); 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() { destroy() {
this._settings?.disconnectObject(this); if (this._settings)
this._settings.disconnect(this._showDesktopIconsChangedId);
this._settings = null; 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) if (this._monitor)
this._monitor.cancel(); this._monitor.cancel();
@@ -533,4 +565,5 @@ export class PlacesManager extends EventEmitter {
get(kind) { get(kind) {
return this._places[kind]; return this._places[kind];
} }
} };
Signals.addSignalMethods(PlacesManager.prototype);
+139 -142
View File
@@ -1,3 +1,4 @@
/* exported enable disable */
/* Screenshot Window Sizer for Gnome Shell /* Screenshot Window Sizer for Gnome Shell
* *
* Copyright (c) 2013 Owen Taylor <otaylor@redhat.com> * Copyright (c) 2013 Owen Taylor <otaylor@redhat.com>
@@ -18,151 +19,147 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
import Clutter from 'gi://Clutter'; const { Clutter, Meta, Shell, St } = imports.gi;
import Meta from 'gi://Meta';
import Shell from 'gi://Shell';
import St from 'gi://St';
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';
const MESSAGE_FADE_TIME = 2000; const MESSAGE_FADE_TIME = 2000;
export default class ScreenshotWindowSizerExtension extends Extension { let text;
SIZES = [
[624, 351],
[800, 450],
[1024, 576],
[1200, 675],
[1600, 900],
[360, 654], // Phone portrait maximized
[720, 360], // Phone landscape fullscreen
];
_flashMessage(message) { /** */
if (!this._text) { function hideMessage() {
this._text = new St.Label({style_class: 'screenshot-sizer-message'}); text.destroy();
Main.uiGroup.add_actor(this._text); text = null;
} }
this._text.remove_all_transitions(); /**
this._text.text = message; * @param {string} message - the message to flash
*/
this._text.opacity = 255; function flashMessage(message) {
if (!text) {
const monitor = Main.layoutManager.primaryMonitor; text = new St.Label({ style_class: 'screenshot-sizer-message' });
this._text.set_position( Main.uiGroup.add_actor(text);
monitor.x + Math.floor(monitor.width / 2 - this._text.width / 2), }
monitor.y + Math.floor(monitor.height / 2 - this._text.height / 2));
text.remove_all_transitions();
this._text.ease({ text.text = message;
opacity: 0,
duration: MESSAGE_FADE_TIME, text.opacity = 255;
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => this._hideMessage(), 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));
_hideMessage() {
this._text.destroy(); text.ease({
delete this._text; opacity: 0,
} duration: MESSAGE_FADE_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
/** onComplete: hideMessage,
* @param {Meta.Display} display - the display });
* @param {Meta.Window=} window - for per-window bindings, the window }
* @param {Meta.KeyBinding} binding - the key binding
*/ let SIZES = [
_cycleScreenshotSizes(display, window, binding) { [624, 351],
// Probably this isn't useful with 5 sizes, but you can decrease instead [800, 450],
// of increase by holding down shift. [1024, 576],
let modifiers = binding.get_modifiers(); [1200, 675],
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0; [1600, 900],
[360, 654], // Phone portrait maximized
// Unmaximize first [720, 360], // Phone landscape fullscreen
if (window.get_maximized() !== 0) ];
window.unmaximize(Meta.MaximizeFlags.BOTH);
/**
let workArea = window.get_work_area_current_monitor(); * @param {Meta.Display} display - the display
let outerRect = window.get_frame_rect(); * @param {Meta.Window=} window - for per-window bindings, the window
* @param {Meta.KeyBinding} binding - the key binding
// Double both axes if on a hidpi display */
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor; function cycleScreenshotSizes(display, window, binding) {
let scaledSizes = this.SIZES.map(size => size.map(wh => wh * scaleFactor)) // Probably this isn't useful with 5 sizes, but you can decrease instead
.filter(([w, h]) => w <= workArea.width && h <= workArea.height); // of increase by holding down shift.
let modifiers = binding.get_modifiers();
// Find the nearest 16:9 size for the current window size let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0;
let nearestIndex;
let nearestError; // Unmaximize first
if (window.get_maximized() !== 0)
for (let i = 0; i < scaledSizes.length; i++) { window.unmaximize(Meta.MaximizeFlags.BOTH);
let [width, height] = scaledSizes[i];
let workArea = window.get_work_area_current_monitor();
// get the best initial window size let outerRect = window.get_frame_rect();
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
if (nearestIndex === undefined || error < nearestError) { // Double both axes if on a hidpi display
nearestIndex = i; let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
nearestError = error; 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
// get the next size up or down from ideal let nearestIndex;
let newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length; let nearestError;
let [newWidth, newHeight] = scaledSizes[newIndex];
for (let i = 0; i < scaledSizes.length; i++) {
// Push the window onscreen if it would be resized offscreen let [width, height] = scaledSizes[i];
let newX = outerRect.x;
let newY = outerRect.y; // ignore sizes bigger than the workArea
if (newX + newWidth > workArea.x + workArea.width) if (width > workArea.width || height > workArea.height)
newX = Math.max(workArea.x + workArea.width - newWidth); continue;
if (newY + newHeight > workArea.y + workArea.height)
newY = Math.max(workArea.y + workArea.height - newHeight); // get the best initial window size
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
const id = window.connect('size-changed', () => { if (nearestIndex === undefined || error < nearestError) {
window.disconnect(id); nearestIndex = i;
this._notifySizeChange(window); nearestError = error;
}); }
window.move_resize_frame(true, newX, newY, newWidth, newHeight); }
}
// get the next size up or down from ideal
/** let newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length;
* @param {Meta.Window} window - the window whose size changed let [newWidth, newHeight] = scaledSizes[newIndex];
*/
_notifySizeChange(window) { // Push the window onscreen if it would be resized offscreen
const {scaleFactor} = St.ThemeContext.get_for_stage(global.stage); let newX = outerRect.x;
let newOuterRect = window.get_frame_rect(); let newY = outerRect.y;
let message = '%d×%d'.format( if (newX + newWidth > workArea.x + workArea.width)
newOuterRect.width / scaleFactor, newX = Math.max(workArea.x + workArea.width - newWidth);
newOuterRect.height / scaleFactor); if (newY + newHeight > workArea.y + workArea.height)
newY = Math.max(workArea.y + workArea.height - newHeight);
// 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 window.move_resize_frame(true, newX, newY, newWidth, newHeight);
// we flash
let actualNumerator = 9 * newOuterRect.width / newOuterRect.height; let newOuterRect = window.get_frame_rect();
if (Math.abs(actualNumerator - 16) > 0.01) let message = '%d×%d'.format(
message += ' (%.2f:9)'.format(actualNumerator); newOuterRect.width / scaleFactor,
newOuterRect.height / scaleFactor);
this._flashMessage(message);
} // 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
enable() { // we flash
Main.wm.addKeybinding( let actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
'cycle-screenshot-sizes', if (Math.abs(actualNumerator - 16) > 0.01)
this.getSettings(), message += ' (%.2f:9)'.format(actualNumerator);
Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL, flashMessage(message);
this._cycleScreenshotSizes.bind(this)); }
Main.wm.addKeybinding(
'cycle-screenshot-sizes-backward', /** */
this.getSettings(), function enable() {
Meta.KeyBindingFlags.PER_WINDOW | Meta.KeyBindingFlags.IS_REVERSED, Main.wm.addKeybinding(
Shell.ActionMode.NORMAL, 'cycle-screenshot-sizes',
this._cycleScreenshotSizes.bind(this)); ExtensionUtils.getSettings(),
} Meta.KeyBindingFlags.PER_WINDOW,
Shell.ActionMode.NORMAL,
disable() { cycleScreenshotSizes);
Main.wm.removeKeybinding('cycle-screenshot-sizes'); Main.wm.addKeybinding(
Main.wm.removeKeybinding('cycle-screenshot-sizes-backward'); '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');
} }
@@ -3,6 +3,5 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files('stylesheet.css')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml') extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
+27 -14
View File
@@ -1,26 +1,32 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
// Load shell theme from ~/.local/share/themes/name/gnome-shell // 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'; const Me = ExtensionUtils.getCurrentExtension();
const Util = Me.imports.util;
import {getThemeDirs, getModeThemeDirs} from './util.js';
const SETTINGS_KEY = 'name'; const SETTINGS_KEY = 'name';
export default class ThemeManager extends Extension { class ThemeManager {
constructor() {
this._settings = ExtensionUtils.getSettings();
}
enable() { enable() {
this._settings = this.getSettings(); this._changedId = this._settings.connect(`changed::${SETTINGS_KEY}`, this._changeTheme.bind(this));
this._settings.connect(`changed::${SETTINGS_KEY}`, this._changeTheme.bind(this));
this._changeTheme(); this._changeTheme();
} }
disable() { disable() {
this._settings?.run_dispose(); if (this._changedId) {
this._settings = null; this._settings.disconnect(this._changedId);
this._changedId = 0;
}
Main.setThemeStylesheet(null); Main.setThemeStylesheet(null);
Main.loadTheme(); Main.loadTheme();
@@ -31,10 +37,10 @@ export default class ThemeManager extends Extension {
let themeName = this._settings.get_string(SETTINGS_KEY); let themeName = this._settings.get_string(SETTINGS_KEY);
if (themeName) { if (themeName) {
const stylesheetPaths = getThemeDirs() const stylesheetPaths = Util.getThemeDirs()
.map(dir => `${dir}/${themeName}/gnome-shell/gnome-shell.css`); .map(dir => `${dir}/${themeName}/gnome-shell/gnome-shell.css`);
stylesheetPaths.push(...getModeThemeDirs() stylesheetPaths.push(...Util.getModeThemeDirs()
.map(dir => `${dir}/${themeName}.css`)); .map(dir => `${dir}/${themeName}.css`));
stylesheet = stylesheetPaths.find(path => { stylesheet = stylesheetPaths.find(path => {
@@ -44,10 +50,17 @@ export default class ThemeManager extends Extension {
} }
if (stylesheet) if (stylesheet)
log(`loading user theme: ${stylesheet}`); global.log(`loading user theme: ${stylesheet}`);
else else
log('loading default theme (Adwaita)'); global.log('loading default theme (Adwaita)');
Main.setThemeStylesheet(stylesheet); Main.setThemeStylesheet(stylesheet);
Main.loadTheme(); Main.loadTheme();
} }
} }
/**
* @returns {ThemeManager} - the extension state object
*/
function init() {
return new ThemeManager();
}
+89 -37
View File
@@ -1,34 +1,51 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- 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 // we use async/await here to not block the mainloop, not to parallelize
/* eslint-disable no-await-in-loop */ /* eslint-disable no-await-in-loop */
import Adw from 'gi://Adw'; const { Gio, GLib, GObject, Gtk } = imports.gi;
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
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._LocalFilePrototype,
Gio._promisify(Gio.File.prototype, 'query_info_async'); 'enumerate_children_async', 'enumerate_children_finish');
Gio._promisify(Gio.FileEnumerator.prototype, 'next_files_async'); 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 { const UserThemePrefsWidget = GObject.registerClass(
static { class UserThemePrefsWidget extends Gtk.ScrolledWindow {
GObject.registerClass(this); _init() {
} super._init({
hscrollbar_policy: Gtk.PolicyType.NEVER,
});
constructor(settings) { const box = new Gtk.Box();
super({title: 'Themes'}); 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._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._actionGroup.add_action(
this._settings.create_action('name')); this._settings.create_action('name'));
@@ -41,7 +58,7 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
} }
async _collectThemes() { async _collectThemes() {
for (const dirName of getThemeDirs()) { for (const dirName of Util.getThemeDirs()) {
const dir = Gio.File.new_for_path(dirName); const dir = Gio.File.new_for_path(dirName);
for (const name of await this._enumerateDir(dir)) { for (const name of await this._enumerateDir(dir)) {
if (this._rows.has(name)) 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); const dir = Gio.File.new_for_path(dirName);
for (const filename of await this._enumerateDir(dir)) { for (const filename of await this._enumerateDir(dir)) {
if (!filename.endsWith('.css')) if (!filename.endsWith('.css'))
@@ -76,10 +93,10 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
} }
_addTheme(name) { _addTheme(name) {
const row = new ThemeRow(name); const row = new ThemeRow(name, this._settings);
this._rows.set(name, row); this._rows.set(name, row);
this.add(row); this._list.append(row);
} }
async _enumerateDir(dir) { async _enumerateDir(dir) {
@@ -106,29 +123,64 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
return fileInfos.map(info => info.get_name()); return fileInfos.map(info => info.get_name());
} }
} });
class ThemeRow extends Adw.ActionRow { const ThemeRow = GObject.registerClass(
static { class ThemeRow extends Gtk.ListBoxRow {
GObject.registerClass(this); _init(name, settings) {
} this._name = name;
this._settings = settings;
constructor(name) { const box = new Gtk.Box({
const check = new Gtk.CheckButton({ spacing: 12,
margin_start: 12,
margin_end: 12,
margin_top: 12,
margin_bottom: 12,
});
super._init({
action_name: 'theme.name', action_name: 'theme.name',
action_target: new GLib.Variant('s', name), action_target: new GLib.Variant('s', name),
child: box,
}); });
super({ box.append(new Gtk.Label({
title: name || 'Default', label: name || 'Default',
activatable_widget: check, 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() { * @returns {Gtk.Widget} - the prefs widget
return new UserThemePrefsWidget(this.getSettings()); */
} function buildPrefsWidget() {
return new UserThemePrefsWidget();
} }
+1
View File
@@ -0,0 +1 @@
/* none used */
+4 -3
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); const fn = (...args) => GLib.build_filenamev(args);
/** /**
* @returns {string[]} - an ordered list of theme directories * @returns {string[]} - an ordered list of theme directories
*/ */
export function getThemeDirs() { function getThemeDirs() {
return [ return [
fn(GLib.get_home_dir(), '.themes'), fn(GLib.get_home_dir(), '.themes'),
fn(GLib.get_user_data_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 * @returns {string[]} - an ordered list of mode theme directories
*/ */
export function getModeThemeDirs() { function getModeThemeDirs() {
return GLib.get_system_data_dirs() return GLib.get_system_data_dirs()
.map(dir => fn(dir, 'gnome-shell', 'theme')); .map(dir => fn(dir, 'gnome-shell', 'theme'));
} }
@@ -1,4 +1,4 @@
@import url("stylesheet-dark.css"); @import url("stylesheet.css");
#panel.bottom-panel { #panel.bottom-panel {
border-top-width: 1px; border-top-width: 1px;
+233 -297
View File
@@ -1,28 +1,21 @@
import Clutter from 'gi://Clutter'; /* exported init */
import Gio from 'gi://Gio'; const { Clutter, Gio, GLib, GObject, Gtk, Meta, Shell, St } = imports.gi;
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';
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'; const Me = ExtensionUtils.getCurrentExtension();
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; const { WindowPicker, WindowPickerToggle } = Me.imports.windowPicker;
import * as Overview from 'resource:///org/gnome/shell/ui/overview.js'; const { WorkspaceIndicator } = Me.imports.workspaceIndicator;
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import {WindowPicker, WindowPickerToggle} from './windowPicker.js'; const _ = ExtensionUtils.gettext;
import {WorkspaceIndicator} from './workspaceIndicator.js';
const ICON_TEXTURE_SIZE = 24; const ICON_TEXTURE_SIZE = 24;
const DND_ACTIVATE_TIMEOUT = 500; const DND_ACTIVATE_TIMEOUT = 500;
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const GroupingMode = { const GroupingMode = {
NEVER: 0, NEVER: 0,
AUTO: 1, AUTO: 1,
@@ -55,6 +48,10 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
}); });
this.addMenuItem(this._minimizeItem); this.addMenuItem(this._minimizeItem);
this._notifyMinimizedId = this._metaWindow.connect(
'notify::minimized', this._updateMinimizeItem.bind(this));
this._updateMinimizeItem();
this._maximizeItem = new PopupMenu.PopupMenuItem(''); this._maximizeItem = new PopupMenu.PopupMenuItem('');
this._maximizeItem.connect('activate', () => { this._maximizeItem.connect('activate', () => {
if (this._metaWindow.get_maximized() === Meta.MaximizeFlags.BOTH) if (this._metaWindow.get_maximized() === Meta.MaximizeFlags.BOTH)
@@ -64,20 +61,21 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
}); });
this.addMenuItem(this._maximizeItem); 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 = new PopupMenu.PopupMenuItem(_('Close'));
this._closeItem.connect('activate', () => { this._closeItem.connect('activate', () => {
this._metaWindow.delete(global.get_current_time()); this._metaWindow.delete(global.get_current_time());
}); });
this.addMenuItem(this._closeItem); this.addMenuItem(this._closeItem);
this._metaWindow.connectObject( this.actor.connect('destroy', this._onDestroy.bind(this));
'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.connect('open-state-changed', () => { this.connect('open-state-changed', () => {
if (!this.isOpen) if (!this.isOpen)
@@ -100,42 +98,46 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
this._maximizeItem.label.text = maximized this._maximizeItem.label.text = maximized
? _('Unmaximize') : _('Maximize'); ? _('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 { class WindowTitle extends St.BoxLayout {
static { _init(metaWindow) {
GObject.registerClass(this); this._metaWindow = metaWindow;
}
constructor(metaWindow) { super._init({
super({
style_class: 'window-button-box', style_class: 'window-button-box',
x_expand: true, x_expand: true,
y_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.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.label_actor.clutter_text.single_line_mode = true;
this.add(this.label_actor); this.add(this.label_actor);
this._textureCache = St.TextureCache.get_default(); this._textureCache = St.TextureCache.get_default();
this._textureCache.connectObject('icon-theme-changed', this._iconThemeChangedId = this._textureCache.connect(
() => this._updateIcon(), this); 'icon-theme-changed', this._updateIcon.bind(this));
this._notifyWmClass = this._metaWindow.connect_after(
this._metaWindow.connectObject( 'notify::wm-class', this._updateIcon.bind(this));
'notify::wm-class', this._notifyAppId = this._metaWindow.connect_after(
() => this._updateIcon(), GObject.ConnectFlags.AFTER, 'notify::gtk-application-id', this._updateIcon.bind(this));
'notify::gtk-application-id',
() => this._updateIcon(), GObject.ConnectFlags.AFTER,
'notify::title', () => this._updateTitle(),
'notify::minimized', () => this._minimizedChanged(),
this);
this._updateIcon(); 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(); this._minimizedChanged();
} }
@@ -165,33 +167,38 @@ class WindowTitle extends St.BoxLayout {
}); });
} }
} }
}
class BaseButton extends St.Button { _onDestroy() {
static { this._textureCache.disconnect(this._iconThemeChangedId);
GObject.registerClass({ this._metaWindow.disconnect(this._notifyTitleId);
GTypeFlags: GObject.TypeFlags.ABSTRACT, this._metaWindow.disconnect(this._notifyMinimizedId);
Properties: { this._metaWindow.disconnect(this._notifyWmClass);
'ignore-workspace': GObject.ParamSpec.boolean( this._metaWindow.disconnect(this._notifyAppId);
'ignore-workspace', 'ignore-workspace', 'ignore-workspace',
GObject.ParamFlags.READWRITE,
false),
},
}, this);
} }
});
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', style_class: 'window-button',
can_focus: true, can_focus: true,
x_expand: true, x_expand: true,
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
}); });
this._perMonitor = perMonitor;
this._monitorIndex = monitorIndex;
this._ignoreWorkspace = false;
this.connect('notify::allocation', this.connect('notify::allocation',
this._updateIconGeometry.bind(this)); this._updateIconGeometry.bind(this));
this.connect('clicked', this._onClicked.bind(this)); this.connect('clicked', this._onClicked.bind(this));
@@ -200,23 +207,17 @@ class BaseButton extends St.Button {
this._contextMenuManager = new PopupMenu.PopupMenuManager(this); this._contextMenuManager = new PopupMenu.PopupMenuManager(this);
global.window_manager.connectObject('switch-workspace', this._switchWorkspaceId = global.window_manager.connect(
() => this._updateVisibility(), this); 'switch-workspace', this._updateVisibility.bind(this));
if (this._perMonitor) { if (this._perMonitor) {
global.display.connectObject( this._windowEnteredMonitorId = global.display.connect(
'window-entered-monitor', 'window-entered-monitor',
this._windowEnteredOrLeftMonitor.bind(this), this._windowEnteredOrLeftMonitor.bind(this));
this._windowLeftMonitorId = global.display.connect(
'window-left-monitor', 'window-left-monitor',
this._windowEnteredOrLeftMonitor.bind(this), this._windowEnteredOrLeftMonitor.bind(this));
this);
} }
this._tooltip = new Tooltip(this, {
style_class: 'dash-label',
visible: false,
});
Main.uiGroup.add_child(this._tooltip);
} }
get active() { get active() {
@@ -239,48 +240,6 @@ class BaseButton extends St.Button {
this._updateVisibility(); 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() { activate() {
if (this.active) if (this.active)
return; return;
@@ -318,11 +277,9 @@ class BaseButton extends St.Button {
if (isOpen) if (isOpen)
return; return;
const extension = Extension.lookupByURL(import.meta.url);
let [x, y] = global.get_pointer(); let [x, y] = global.get_pointer();
let actor = global.stage.get_actor_at_pos(Clutter.PickMode.REACTIVE, x, y); 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(); actor.sync_hover();
} }
@@ -377,24 +334,28 @@ class BaseButton extends St.Button {
} }
_onDestroy() { _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 { class WindowButton extends BaseButton {
static { _init(metaWindow, perMonitor, monitorIndex) {
GObject.registerClass(this); super._init(perMonitor, monitorIndex);
}
constructor(metaWindow, perMonitor, monitorIndex) {
super(perMonitor, monitorIndex);
this.metaWindow = metaWindow; this.metaWindow = metaWindow;
metaWindow.connectObject( this._skipTaskbarId = metaWindow.connect('notify::skip-taskbar', () => {
'notify::skip-taskbar', () => this._updateVisibility(), this._updateVisibility();
'workspace-changed', () => this._updateVisibility(), });
this);
this._updateVisibility(); this._updateVisibility();
this._windowTitle = new WindowTitle(this.metaWindow); this._windowTitle = new WindowTitle(this.metaWindow);
@@ -408,8 +369,11 @@ class WindowButton extends BaseButton {
this._contextMenuManager.addMenu(this._contextMenu); this._contextMenuManager.addMenu(this._contextMenu);
Main.uiGroup.add_actor(this._contextMenu.actor); Main.uiGroup.add_actor(this._contextMenu.actor);
global.display.connectObject('notify::focus-window', this._workspaceChangedId = this.metaWindow.connect(
() => this._updateStyle(), this); 'workspace-changed', this._updateVisibility.bind(this));
this._notifyFocusId = global.display.connect(
'notify::focus-window', this._updateStyle.bind(this));
this._updateStyle(); this._updateStyle();
} }
@@ -419,7 +383,7 @@ class WindowButton extends BaseButton {
return; return;
} }
if (!button || button === 1) if (button === 1)
this._minimizeOrActivateWindow(this.metaWindow); this._minimizeOrActivateWindow(this.metaWindow);
else else
this._openMenu(this._contextMenu); this._openMenu(this._contextMenu);
@@ -453,9 +417,13 @@ class WindowButton extends BaseButton {
_onDestroy() { _onDestroy() {
super._onDestroy(); super._onDestroy();
this.metaWindow.disconnect(this._skipTaskbarId);
this.metaWindow.disconnect(this._workspaceChangedId);
global.display.disconnect(this._notifyFocusId);
this._contextMenu.destroy(); this._contextMenu.destroy();
} }
} });
class AppContextMenu extends PopupMenu.PopupMenu { class AppContextMenu extends PopupMenu.PopupMenu {
constructor(source) { constructor(source) {
@@ -515,18 +483,15 @@ class AppContextMenu extends PopupMenu.PopupMenu {
} }
} }
const AppButton = GObject.registerClass(
class AppButton extends BaseButton { class AppButton extends BaseButton {
static { _init(app, perMonitor, monitorIndex) {
GObject.registerClass(this); super._init(perMonitor, monitorIndex);
}
constructor(app, perMonitor, monitorIndex) {
super(perMonitor, monitorIndex);
this.app = app; this.app = app;
this._updateVisibility(); 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.set_child(stack);
this._singleWindowTitle = new St.Bin({ this._singleWindowTitle = new St.Bin({
@@ -569,17 +534,18 @@ class AppButton extends BaseButton {
Main.uiGroup.add_actor(this._appContextMenu.actor); Main.uiGroup.add_actor(this._appContextMenu.actor);
this._textureCache = St.TextureCache.get_default(); this._textureCache = St.TextureCache.get_default();
this._textureCache.connectObject('icon-theme-changed', () => { this._iconThemeChangedId =
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE); this._textureCache.connect('icon-theme-changed', () => {
}, this); this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
});
this.app.connectObject('windows-changed', this._windowsChangedId = this.app.connect(
() => this._windowsChanged(), this); 'windows-changed', this._windowsChanged.bind(this));
this._windowsChanged(); this._windowsChanged();
this._windowTracker = Shell.WindowTracker.get_default(); this._windowTracker = Shell.WindowTracker.get_default();
this._windowTracker.connectObject('notify::focus-app', this._notifyFocusId = this._windowTracker.connect(
() => this._updateStyle(), this); 'notify::focus-app', this._updateStyle.bind(this));
this._updateStyle(); this._updateStyle();
} }
@@ -661,7 +627,7 @@ class AppButton extends BaseButton {
if (contextMenuWasOpen) if (contextMenuWasOpen)
this._contextMenu.close(); this._contextMenu.close();
if (!button || button === 1) { if (button === 1) {
if (menuWasOpen) if (menuWasOpen)
return; return;
@@ -699,17 +665,21 @@ class AppButton extends BaseButton {
_onDestroy() { _onDestroy() {
super._onDestroy(); super._onDestroy();
this._textureCache.disconnect(this._iconThemeChangedId);
this._windowTracker.disconnect(this._notifyFocusId);
this.app.disconnect(this._windowsChangedId);
this._menu.destroy(); this._menu.destroy();
} }
} });
const WindowList = GObject.registerClass(
class WindowList extends St.Widget { class WindowList extends St.Widget {
static { _init(perMonitor, monitor) {
GObject.registerClass(this); this._perMonitor = perMonitor;
} this._monitor = monitor;
constructor(perMonitor, monitor, settings) { super._init({
super({
name: 'panel', name: 'panel',
style_class: 'bottom-panel solid', style_class: 'bottom-panel solid',
reactive: true, reactive: true,
@@ -718,10 +688,7 @@ class WindowList extends St.Widget {
}); });
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this._perMonitor = perMonitor; let box = new St.BoxLayout({ x_expand: true, y_expand: true });
this._monitor = monitor;
let box = new St.BoxLayout({x_expand: true, y_expand: true});
this.add_actor(box); this.add_actor(box);
let toggle = new WindowPickerToggle(); let toggle = new WindowPickerToggle();
@@ -730,7 +697,7 @@ class WindowList extends St.Widget {
toggle.connect('notify::checked', toggle.connect('notify::checked',
this._updateWindowListVisibility.bind(this)); this._updateWindowListVisibility.bind(this));
let layout = new Clutter.BoxLayout({homogeneous: true}); let layout = new Clutter.BoxLayout({ homogeneous: true });
this._windowList = new St.Widget({ this._windowList = new St.Widget({
style_class: 'window-list', style_class: 'window-list',
reactive: true, reactive: true,
@@ -748,19 +715,19 @@ class WindowList extends St.Widget {
}); });
this._windowList.connect('scroll-event', this._onScrollEvent.bind(this)); 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); box.add(indicatorsBox);
this._workspaceIndicator = new WorkspaceIndicator(); this._workspaceIndicator = new WorkspaceIndicator();
indicatorsBox.add_child(this._workspaceIndicator.container); indicatorsBox.add_child(this._workspaceIndicator.container);
this._mutterSettings = new Gio.Settings({schema_id: 'org.gnome.mutter'}); this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
this._mutterSettings.connectObject( this._workspacesOnlyOnPrimaryChangedId = this._mutterSettings.connect(
'changed::workspaces-only-on-primary', 'changed::workspaces-only-on-primary',
() => this._updateWorkspaceIndicatorVisibility(), this._updateWorkspaceIndicatorVisibility.bind(this));
this._dynamicWorkspacesChangedId = this._mutterSettings.connect(
'changed::dynamic-workspaces', 'changed::dynamic-workspaces',
() => this._updateWorkspaceIndicatorVisibility(), this._updateWorkspaceIndicatorVisibility.bind(this));
this);
this._updateWorkspaceIndicatorVisibility(); this._updateWorkspaceIndicatorVisibility();
this._menuManager = new PopupMenu.PopupMenuManager(this); this._menuManager = new PopupMenu.PopupMenuManager(this);
@@ -778,58 +745,59 @@ class WindowList extends St.Widget {
this._updatePosition(); this._updatePosition();
this._appSystem = Shell.AppSystem.get_default(); this._appSystem = Shell.AppSystem.get_default();
this._appSystem.connectObject('app-state-changed', this._appStateChangedId = this._appSystem.connect(
this._onAppStateChanged.bind(this), this); 'app-state-changed', this._onAppStateChanged.bind(this));
// Hack: OSK gesture is tied to visibility, piggy-back on that // Hack: OSK gesture is tied to visibility, piggy-back on that
Main.keyboard._bottomDragAction.connectObject('notify::enabled', this._keyboardVisiblechangedId =
action => { Main.keyboard._bottomDragAction.connect('notify::enabled',
const visible = !action.enabled; action => {
if (visible) { const visible = !action.enabled;
Main.uiGroup.set_child_above_sibling( if (visible) {
this, Main.layoutManager.keyboardBox); Main.uiGroup.set_child_above_sibling(
} else { this, Main.layoutManager.keyboardBox);
Main.uiGroup.set_child_above_sibling( } else {
this, Main.layoutManager.panelBox); Main.uiGroup.set_child_above_sibling(
} this, Main.layoutManager.panelBox);
this._updateKeyboardAnchor(); }
}, this); this._updateKeyboardAnchor();
});
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
workspaceManager.connectObject('notify::n-workspaces', this._nWorkspacesChangedId = workspaceManager.connect(
() => this._updateWorkspaceIndicatorVisibility(), this); 'notify::n-workspaces', this._updateWorkspaceIndicatorVisibility.bind(this));
this._updateWorkspaceIndicatorVisibility(); this._updateWorkspaceIndicatorVisibility();
global.window_manager.connectObject('switch-workspace', this._switchWorkspaceId = global.window_manager.connect(
() => this._checkGrouping(), this); 'switch-workspace', this._checkGrouping.bind(this));
Main.overview.connectObject( this._overviewShowingId = Main.overview.connect('showing', () => {
'showing', () => { this.hide();
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._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}, this); });
this._overviewHidingId = Main.overview.connect('hidden', () => {
this.visible = !Main.layoutManager.primaryMonitor.inFullscreen;
this._updateKeyboardAnchor();
});
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._windowSignals = new Map(); this._windowSignals = new Map();
this._windowCreatedId = global.display.connect( this._windowCreatedId = global.display.connect(
'window-created', (dsp, win) => this._addWindow(win)); 'window-created', (dsp, win) => this._addWindow(win));
Main.xdndHandler.connectObject( this._dragBeginId = Main.xdndHandler.connect('drag-begin',
'drag-begin', () => this._monitorDrag(), this._monitorDrag.bind(this));
'drag-end', () => this._stopMonitoringDrag(), this._dragEndId = Main.xdndHandler.connect('drag-end',
this); this._stopMonitoringDrag.bind(this));
this._dragMonitor = { this._dragMonitor = {
dragMotion: this._onDragMotion.bind(this), dragMotion: this._onDragMotion.bind(this),
}; };
@@ -837,9 +805,9 @@ class WindowList extends St.Widget {
this._dndTimeoutId = 0; this._dndTimeoutId = 0;
this._dndWindow = null; this._dndWindow = null;
this._settings = settings; this._settings = ExtensionUtils.getSettings();
this._settings.connect('changed::grouping-mode', this._groupingModeChangedId = this._settings.connect(
() => this._groupingModeChanged()); 'changed::grouping-mode', this._groupingModeChanged.bind(this));
this._grouped = undefined; this._grouped = undefined;
this._groupingModeChanged(); this._groupingModeChanged();
} }
@@ -878,8 +846,7 @@ class WindowList extends St.Widget {
} }
_updateWindowListVisibility() { _updateWindowListVisibility() {
const {windowPicker} = Extension.lookupByURL(import.meta.url); let visible = !Main.windowPicker.visible;
const visible = !windowPicker.visible;
this._windowList.ease({ this._windowList.ease({
opacity: visible ? 255 : 0, opacity: visible ? 255 : 0,
@@ -897,7 +864,7 @@ class WindowList extends St.Widget {
let children = this._windowList.get_children(); let children = this._windowList.get_children();
let [, childWidth] = children[0].get_preferred_width(-1); 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 workspace = global.workspace_manager.get_active_workspace();
let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace); let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
@@ -1019,7 +986,7 @@ class WindowList extends St.Widget {
const id = this._windowSignals.get(win); const id = this._windowSignals.get(win);
if (id) if (id)
win.disconnect(id); win.disconnect(id);
this._windowSignals.delete(win); this._windowSignals.delete(id);
let children = this._windowList.get_children(); let children = this._windowList.get_children();
let child = children.find(c => c.metaWindow === win); let child = children.find(c => c.metaWindow === win);
@@ -1077,26 +1044,49 @@ class WindowList extends St.Widget {
} }
_onDestroy() { _onDestroy() {
this._mutterSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
this._mutterSettings.disconnect(this._dynamicWorkspacesChangedId);
this._workspaceIndicator.destroy(); this._workspaceIndicator.destroy();
Main.ctrlAltTabManager.removeGroup(this); Main.ctrlAltTabManager.removeGroup(this);
this._appSystem.disconnect(this._appStateChangedId);
this._appStateChangedId = 0;
Main.keyboard._bottomDragAction.disconnect(this._keyboardVisiblechangedId);
this._keyboardVisiblechangedId = 0;
global.workspace_manager.disconnect(this._nWorkspacesChangedId);
this._nWorkspacesChangedId = 0;
global.window_manager.disconnect(this._switchWorkspaceId);
this._switchWorkspaceId = 0;
this._windowSignals.forEach((id, win) => win.disconnect(id)); this._windowSignals.forEach((id, win) => win.disconnect(id));
this._windowSignals.clear(); this._windowSignals.clear();
this._stopMonitoringDrag(); Main.overview.disconnect(this._overviewShowingId);
Main.overview.disconnect(this._overviewHidingId);
this._settings.run_dispose(); global.display.disconnect(this._fullscreenChangedId);
global.display.disconnect(this._windowCreatedId);
this._stopMonitoringDrag();
Main.xdndHandler.disconnect(this._dragBeginId);
Main.xdndHandler.disconnect(this._dragEndId);
this._settings.disconnect(this._groupingModeChangedId);
let windows = global.get_window_actors(); let windows = global.get_window_actors();
for (let i = 0; i < windows.length; i++) for (let i = 0; i < windows.length; i++)
windows[i].metaWindow.set_icon_geometry(null); windows[i].metaWindow.set_icon_geometry(null);
} }
} });
export default class WindowListExtension extends Extension { class Extension {
constructor(metadata) { constructor() {
super(metadata); ExtensionUtils.initTranslations();
this._windowLists = null; this._windowLists = null;
this._hideOverviewOrig = Main.overview.hide; this._hideOverviewOrig = Main.overview.hide;
@@ -1105,17 +1095,17 @@ export default class WindowListExtension extends Extension {
enable() { enable() {
this._windowLists = []; this._windowLists = [];
this._settings = this.getSettings(); this._settings = ExtensionUtils.getSettings();
this._settings.connectObject('changed::show-on-all-monitors', this._showOnAllMonitorsChangedId = this._settings.connect(
() => this._buildWindowLists(), this); 'changed::show-on-all-monitors', this._buildWindowLists.bind(this));
Main.layoutManager.connectObject('monitors-changed', this._monitorsChangedId = Main.layoutManager.connect(
() => this._buildWindowLists(), this); 'monitors-changed', this._buildWindowLists.bind(this));
this.windowPicker = new WindowPicker(); Main.windowPicker = new WindowPicker();
Main.overview.hide = () => { Main.overview.hide = () => {
this.windowPicker.close(); Main.windowPicker.close();
this._hideOverviewOrig.call(Main.overview); this._hideOverviewOrig.call(Main.overview);
}; };
@@ -1130,7 +1120,7 @@ export default class WindowListExtension extends Extension {
Main.layoutManager.monitors.forEach(monitor => { Main.layoutManager.monitors.forEach(monitor => {
if (showOnAllMonitors || monitor === Main.layoutManager.primaryMonitor) if (showOnAllMonitors || monitor === Main.layoutManager.primaryMonitor)
this._windowLists.push(new WindowList(showOnAllMonitors, monitor, this.getSettings())); this._windowLists.push(new WindowList(showOnAllMonitors, monitor));
}); });
} }
@@ -1138,8 +1128,11 @@ export default class WindowListExtension extends Extension {
if (!this._windowLists) if (!this._windowLists)
return; return;
this._settings.disconnectObject(this); this._settings.disconnect(this._showOnAllMonitorsChangedId);
Main.layoutManager.disconnectObject(this); this._showOnAllMonitorsChangedId = 0;
Main.layoutManager.disconnect(this._monitorsChangedId);
this._monitorsChangedId = 0;
this._windowLists.forEach(windowList => { this._windowLists.forEach(windowList => {
windowList.hide(); windowList.hide();
@@ -1147,8 +1140,8 @@ export default class WindowListExtension extends Extension {
}); });
this._windowLists = null; this._windowLists = null;
this.windowPicker.destroy(); Main.windowPicker.destroy();
delete this.windowPicker; delete Main.windowPicker;
Main.overview.hide = this._hideOverviewOrig; Main.overview.hide = this._hideOverviewOrig;
} }
@@ -1158,66 +1151,9 @@ export default class WindowListExtension extends Extension {
} }
} }
class Tooltip extends St.Label { /**
static { * @returns {Extension} - the extension's state object
GObject.registerClass(this); */
} function init() {
return new Extension();
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),
});
}
} }
+4 -4
View File
@@ -3,10 +3,10 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files(
'stylesheet-dark.css',
'stylesheet-light.css'
)
extension_sources += files('prefs.js', 'windowPicker.js', 'workspaceIndicator.js') extension_sources += files('prefs.js', 'windowPicker.js', 'workspaceIndicator.js')
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml') extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
if classic_mode_enabled
extension_data += files('classic.css')
endif
+66 -55
View File
@@ -1,24 +1,34 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Adw from 'gi://Adw'; /* exported init buildPrefsWidget */
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import GObject from 'gi://GObject';
import Gtk from 'gi://Gtk';
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 { const ExtensionUtils = imports.misc.extensionUtils;
static {
GObject.registerClass(this);
}
constructor(settings) { const _ = ExtensionUtils.gettext;
super();
/** */
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._actionGroup = new Gio.SimpleActionGroup();
this.insert_action_group('window-list', this._actionGroup); this.insert_action_group('window-list', this._actionGroup);
this._settings = settings; this._settings = ExtensionUtils.getSettings();
this._actionGroup.add_action( this._actionGroup.add_action(
this._settings.create_action('grouping-mode')); this._settings.create_action('grouping-mode'));
this._actionGroup.add_action( this._actionGroup.add_action(
@@ -26,61 +36,62 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
this._actionGroup.add_action( this._actionGroup.add_action(
this._settings.create_action('display-all-workspaces')); this._settings.create_action('display-all-workspaces'));
const groupingGroup = new Adw.PreferencesGroup({ let groupingLabel = '<b>%s</b>'.format(_('Window Grouping'));
title: _('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 = [ const modes = [
{mode: 'never', title: _('Never group windows')}, { mode: 'never', label: _('Never group windows') },
{mode: 'auto', title: _('Group windows when space is limited')}, { mode: 'auto', label: _('Group windows when space is limited') },
{mode: 'always', title: _('Always group windows')}, { mode: 'always', label: _('Always group windows') },
]; ];
let group = null;
for (const {mode, title} of modes) { for (const { mode, label } of modes) {
const check = new Gtk.CheckButton({ const check = new Gtk.CheckButton({
action_name: 'window-list.grouping-mode', action_name: 'window-list.grouping-mode',
action_target: new GLib.Variant('s', mode), action_target: new GLib.Variant('s', mode),
label,
group,
margin_end: 12,
}); });
const row = new Adw.ActionRow({ group = check;
activatable_widget: check, box.append(check);
title,
});
row.add_prefix(check);
groupingGroup.add(row);
} }
const miscGroup = new Adw.PreferencesGroup(); this.append(new Gtk.CheckButton({
this.add(miscGroup); label: _('Show on all monitors'),
let toggle = new Gtk.Switch({
action_name: 'window-list.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', 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() { * @returns {Gtk.Widget} - the prefs widget
return new WindowListPrefsWidget(this.getSettings()); */
} function buildPrefsWidget() {
return new WindowListPrefsWidget();
} }
-113
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;
}
+115
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;
}
+130 -123
View File
@@ -1,30 +1,25 @@
import Clutter from 'gi://Clutter'; /* exported WindowPicker, WindowPickerToggle */
import GObject from 'gi://GObject'; const { Clutter, GObject, Shell, St } = imports.gi;
import Shell from 'gi://Shell';
import St from 'gi://St';
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js'; const Layout = imports.ui.layout;
import * as Layout from 'resource:///org/gnome/shell/ui/layout.js'; const Main = imports.ui.main;
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; const { WorkspacesDisplay } = imports.ui.workspacesView;
import {WorkspacesDisplay} from 'resource:///org/gnome/shell/ui/workspacesView.js'; const Workspace = imports.ui.workspace;
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
import {VIGNETTE_BRIGHTNESS} from 'resource:///org/gnome/shell/ui/lightbox.js'; const { VIGNETTE_BRIGHTNESS } = imports.ui.lightbox;
import { const {
SIDE_CONTROLS_ANIMATION_TIME, SIDE_CONTROLS_ANIMATION_TIME,
OverviewAdjustment, OverviewAdjustment,
ControlsState ControlsState,
} from 'resource:///org/gnome/shell/ui/overviewControls.js'; } = imports.ui.overviewControls;
let MyWorkspacesDisplay = GObject.registerClass(
class MyWorkspacesDisplay extends WorkspacesDisplay { class MyWorkspacesDisplay extends WorkspacesDisplay {
static { _init(controls, overviewAdjustment) {
GObject.registerClass(this);
}
constructor(controls, overviewAdjustment) {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
const workspaceAdjustment = new St.Adjustment({ this._overviewAdjustment = overviewAdjustment;
this._workspaceAdjustment = new St.Adjustment({
value: workspaceManager.get_active_workspace_index(), value: workspaceManager.get_active_workspace_index(),
lower: 0, lower: 0,
page_increment: 1, page_increment: 1,
@@ -33,16 +28,14 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
upper: workspaceManager.n_workspaces, 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; this._workspaceAdjustment.actor = this;
workspaceManager.connectObject('notify::n-workspaces',
() => this._updateAdjustment(), this);
this.add_constraint( this.add_constraint(
new Layout.MonitorConstraint({ new Layout.MonitorConstraint({
primary: true, primary: true,
@@ -52,7 +45,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
prepareToEnterOverview(...args) { prepareToEnterOverview(...args) {
if (!this._scrollEventId) { if (!this._scrollEventId) {
this._scrollEventId = this._windowPicker.connect('scroll-event', this._scrollEventId = Main.windowPicker.connect('scroll-event',
this._onScrollEvent.bind(this)); this._onScrollEvent.bind(this));
} }
@@ -61,7 +54,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
vfunc_hide(...args) { vfunc_hide(...args) {
if (this._scrollEventId > 0) if (this._scrollEventId > 0)
this._windowPicker.disconnect(this._scrollEventId); Main.windowPicker.disconnect(this._scrollEventId);
this._scrollEventId = 0; this._scrollEventId = 0;
super.vfunc_hide(...args); super.vfunc_hide(...args);
@@ -74,28 +67,95 @@ class MyWorkspacesDisplay extends WorkspacesDisplay {
value: workspaceManager.get_active_workspace_index(), value: workspaceManager.get_active_workspace_index(),
}); });
} }
}
export class WindowPicker extends Clutter.Actor { _onDestroy() {
static [GObject.signals] = { if (this._nWorkspacesChangedId)
'open-state-changed': {param_types: [GObject.TYPE_BOOLEAN]}, global.workspace_manager.disconnect(this._nWorkspacesChangedId);
}; this._nWorkspacesChangedId = 0;
static { super._onDestroy();
GObject.registerClass(this); }
});
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() { _onDestroy() {
super({reactive: true}); 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._visible = false;
this._modal = false; this._modal = false;
this._overlayKeyId = 0;
this._stageKeyPressId = 0; this._stageKeyPressId = 0;
super._init({ reactive: true });
this._adjustment = new OverviewAdjustment(this); this._adjustment = new OverviewAdjustment(this);
this._injectionManager = new InjectionManager();
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
global.bind_property('screen-width', global.bind_property('screen-width',
@@ -113,78 +173,21 @@ export class WindowPicker extends Clutter.Actor {
if (!Main.sessionMode.hasOverview) { if (!Main.sessionMode.hasOverview) {
this._injectBackgroundShade(); this._injectBackgroundShade();
global.display.connectObject('overlay-key', () => { this._overlayKeyId = global.display.connect('overlay-key', () => {
if (!this._visible) if (!this._visible)
this.open(); this.open();
else else
this.close(); this.close();
}, this); });
} }
} }
_injectBackgroundShade() { _injectBackgroundShade() {
const backgroundProto = Workspace.WorkspaceBackground.prototype; this._origWorkspace = Workspace.Workspace;
this._injectionManager.overrideMethod(backgroundProto, '_updateBorderRadius', this._origWorkspaceBackground = Workspace.WorkspaceBackground;
() => {
return function () {};
});
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_allocate',
() => {
/* eslint-disable no-invalid-this */
return function (box) {
this.set_allocation(box);
const themeNode = this.get_theme_node(); Workspace.Workspace = MyWorkspace;
const contentBox = themeNode.get_content_box(box); Workspace.WorkspaceBackground = MyWorkspaceBackground;
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 */
});
} }
get visible() { get visible() {
@@ -270,40 +273,45 @@ export class WindowPicker extends Clutter.Actor {
if (this._modal) if (this._modal)
return true; return true;
const grab = Main.pushModal(global.stage, { this._modal = Main.pushModal(this, {
actionMode: Shell.ActionMode.OVERVIEW, actionMode: Shell.ActionMode.OVERVIEW,
}); });
if (grab.get_seat_state() !== Clutter.GrabState.NONE) {
this._grab = grab; if (!this._modal) {
this._modal = true;
} else {
Main.popModal(grab);
this.hide(); this.hide();
return false; return false;
} }
} else if (this._modal) { } else if (this._modal) {
Main.popModal(this._grab); Main.popModal(this);
this._modal = false; this._modal = false;
this._grab = null;
} }
return true; return true;
} }
_onDestroy() { _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) if (this._stageKeyPressId)
global.stage.disconnect(this._stageKeyPressId); global.stage.disconnect(this._stageKeyPressId);
this._stageKeyPressId = 0; this._stageKeyPressId = 0;
} }
} });
export class WindowPickerToggle extends St.Button { var WindowPickerToggle = GObject.registerClass(
static { class WindowPickerToggle extends St.Button {
GObject.registerClass(this); _init() {
}
constructor() {
let iconBin = new St.Widget({ let iconBin = new St.Widget({
layout_manager: new Clutter.BinLayout(), layout_manager: new Clutter.BinLayout(),
}); });
@@ -315,23 +323,22 @@ export class WindowPickerToggle extends St.Button {
x_align: Clutter.ActorAlign.CENTER, x_align: Clutter.ActorAlign.CENTER,
y_align: Clutter.ActorAlign.CENTER, y_align: Clutter.ActorAlign.CENTER,
})); }));
super({ super._init({
style_class: 'window-picker-toggle', style_class: 'window-picker-toggle',
child: iconBin, child: iconBin,
visible: !Main.sessionMode.hasOverview, visible: !Main.sessionMode.hasOverview,
toggle_mode: true, toggle_mode: true,
}); });
const {windowPicker} = Extension.lookupByURL(import.meta.url);
this.connect('notify::checked', () => { this.connect('notify::checked', () => {
if (this.checked) if (this.checked)
windowPicker.open(); Main.windowPicker.open();
else else
windowPicker.close(); Main.windowPicker.close();
}); });
windowPicker.connect('open-state-changed', () => { Main.windowPicker.connect('open-state-changed', () => {
this.checked = windowPicker.visible; this.checked = Main.windowPicker.visible;
}); });
} }
} });
+81 -62
View File
@@ -1,47 +1,45 @@
import Clutter from 'gi://Clutter'; /* exported WorkspaceIndicator */
import Gio from 'gi://Gio'; const { Clutter, Gio, GObject, Meta, St } = imports.gi;
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
import St from 'gi://St';
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'; const _ = ExtensionUtils.gettext;
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 TOOLTIP_OFFSET = 6; const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150; const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6; const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button { class WindowPreview extends St.Button {
static { _init(window) {
GObject.registerClass(this); super._init({
}
constructor(window) {
super({
style_class: 'window-list-window-preview', style_class: 'window-list-window-preview',
}); });
this._delegate = this; this._delegate = this;
DND.makeDraggable(this, {restoreOnSuccess: true}); DND.makeDraggable(this, { restoreOnSuccess: true });
this._window = window; this._window = window;
this._window.connectObject( this.connect('destroy', this._onDestroy.bind(this));
'size-changed', () => this.queue_relayout(),
'position-changed', () => { this._sizeChangedId = this._window.connect('size-changed',
() => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed',
() => {
this._updateVisible(); this._updateVisible();
this.queue_relayout(); this.queue_relayout();
}, });
'notify::minimized', this._updateVisible.bind(this), this._minimizedChangedId = this._window.connect('notify::minimized',
this); this._updateVisible.bind(this));
global.display.connectObject('notify::focus-window', this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this), this); this._onFocusChanged.bind(this));
this._onFocusChanged(); this._onFocusChanged();
} }
@@ -50,6 +48,13 @@ class WindowPreview extends St.Button {
return this._window; 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() { _onFocusChanged() {
if (global.display.focus_window === this._window) if (global.display.focus_window === this._window)
this.add_style_class_name('active'); this.add_style_class_name('active');
@@ -64,13 +69,10 @@ class WindowPreview extends St.Button {
this._window.window_type !== Meta.WindowType.DESKTOP && this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace(); this._window.showing_on_its_workspace();
} }
} });
let WorkspaceLayout = GObject.registerClass(
class WorkspaceLayout extends Clutter.LayoutManager { class WorkspaceLayout extends Clutter.LayoutManager {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_width() { vfunc_get_preferred_width() {
return [0, 0]; return [0, 0];
} }
@@ -97,15 +99,12 @@ class WorkspaceLayout extends Clutter.LayoutManager {
child.allocate(childBox); child.allocate(childBox);
} }
} }
} });
let WorkspaceThumbnail = GObject.registerClass(
class WorkspaceThumbnail extends St.Button { class WorkspaceThumbnail extends St.Button {
static { _init(index) {
GObject.registerClass(this); super._init({
}
constructor(index) {
super({
style_class: 'workspace', style_class: 'workspace',
child: new Clutter.Actor({ child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(), layout_manager: new WorkspaceLayout(),
@@ -130,13 +129,16 @@ class WorkspaceThumbnail extends St.Button {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index); this._workspace = workspaceManager.get_workspace_by_index(index);
this._workspace.connectObject( this._windowAddedId = this._workspace.connect('window-added',
'window-added', (ws, window) => this._addWindow(window), (ws, window) => {
'window-removed', (ws, window) => this._removeWindow(window), this._addWindow(window);
this); });
this._windowRemovedId = this._workspace.connect('window-removed',
global.display.connectObject('restacked', (ws, window) => {
this._onRestacked.bind(this), this); this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.list_windows().forEach(w => this._addWindow(w)); this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked(); this._onRestacked();
@@ -234,16 +236,17 @@ class WorkspaceThumbnail extends St.Button {
_onDestroy() { _onDestroy() {
this._tooltip.destroy(); this._tooltip.destroy();
}
}
export class WorkspaceIndicator extends PanelMenu.Button { this._workspace.disconnect(this._windowAddedId);
static { this._workspace.disconnect(this._windowRemovedId);
GObject.registerClass(this); global.display.disconnect(this._restackedId);
} }
});
constructor() { var WorkspaceIndicator = GObject.registerClass(
super(0.5, _('Workspace Indicator'), true); 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.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
this.add_style_class_name('window-list-workspace-indicator'); this.add_style_class_name('window-list-workspace-indicator');
this.remove_style_class_name('panel-button'); this.remove_style_class_name('panel-button');
@@ -259,7 +262,7 @@ export class WorkspaceIndicator extends PanelMenu.Button {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index(); 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({ this._statusBin = new St.Bin({
style_class: 'status-label-bin', style_class: 'status-label-bin',
@@ -280,24 +283,39 @@ export class WorkspaceIndicator extends PanelMenu.Button {
this._workspacesItems = []; this._workspacesItems = [];
workspaceManager.connectObject( this._workspaceManagerSignals = [
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER, workspaceManager.connect('notify::n-workspaces',
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER, this._nWorkspacesChanged.bind(this)),
'notify::layout-rows', this._updateThumbnailVisibility.bind(this), workspaceManager.connect_after('workspace-switched',
this); this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._updateThumbnailVisibility.bind(this)),
];
this.connect('scroll-event', this._onScrollEvent.bind(this)); this.connect('scroll-event', this._onScrollEvent.bind(this));
this._updateMenu(); this._updateMenu();
this._updateThumbnails(); this._updateThumbnails();
this._updateThumbnailVisibility(); this._updateThumbnailVisibility();
this._settings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'}); this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' });
this._settings.connectObject('changed::workspace-names', this._settingsChangedId = this._settings.connect(
() => this._updateMenuLabels(), this); '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() { _updateThumbnailVisibility() {
const {workspaceManager} = global; const { workspaceManager } = global;
const vertical = workspaceManager.layout_rows === -1; const vertical = workspaceManager.layout_rows === -1;
const useMenu = const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS; vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
@@ -417,4 +435,5 @@ export class WorkspaceIndicator extends PanelMenu.Button {
let newIndex = this._currentWorkspace + diff; let newIndex = this._currentWorkspace + diff;
this._activate(newIndex); this._activate(newIndex);
} }
} });
+256 -276
View File
@@ -1,290 +1,270 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Clutter from 'gi://Clutter'; /* exported init */
import Graphene from 'gi://Graphene'; const { Clutter, Graphene, GObject, St } = imports.gi;
import St from 'gi://St';
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; const Main = imports.ui.main;
import * as OverviewControls from 'resource:///org/gnome/shell/ui/overviewControls.js'; const OverviewControls = imports.ui.overviewControls;
import {InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js'; const Workspace = imports.ui.workspace;
import {WindowPreview} from 'resource:///org/gnome/shell/ui/windowPreview.js'; const WorkspacesView = imports.ui.workspacesView;
import {Workspace} from 'resource:///org/gnome/shell/ui/workspace.js';
import {WorkspacesView} from 'resource:///org/gnome/shell/ui/workspacesView.js';
const WINDOW_SLOT = 4; 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() { constructor() {
this._injectionManager = new InjectionManager(); this._origWorkspace = Workspace.Workspace;
this._origWorkspacesView = WorkspacesView.WorkspacesView;
} }
enable() { enable() {
const previewProto = WindowPreview.prototype; Workspace.Workspace = MyWorkspace;
WorkspacesView.WorkspacesView = MyWorkspacesView;
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 */
});
} }
disable() { disable() {
this._injectionManager.clear(); Workspace.Workspace = this._origWorkspace;
WorkspacesView.WorkspacesView = this._origWorkspacesView;
} }
} }
/**
* @returns {Extension} - the extension's state object
*/
function init() {
return new Extension();
}
-1
View File
@@ -3,4 +3,3 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files('stylesheet.css')
+92 -70
View File
@@ -1,16 +1,15 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Clutter from 'gi://Clutter'; /* exported init enable disable */
import Gio from 'gi://Gio';
import GObject from 'gi://GObject';
import Meta from 'gi://Meta';
import St from 'gi://St';
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'; const DND = imports.ui.dnd;
import * as Main from 'resource:///org/gnome/shell/ui/main.js'; const ExtensionUtils = imports.misc.extensionUtils;
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js'; const Main = imports.ui.main;
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js'; const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const _ = ExtensionUtils.gettext;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences'; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names'; const WORKSPACE_KEY = 'workspace-names';
@@ -20,32 +19,32 @@ const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6; const MAX_THUMBNAILS = 6;
let WindowPreview = GObject.registerClass(
class WindowPreview extends St.Button { class WindowPreview extends St.Button {
static { _init(window) {
GObject.registerClass(this); super._init({
}
constructor(window) {
super({
style_class: 'workspace-indicator-window-preview', style_class: 'workspace-indicator-window-preview',
}); });
this._delegate = this; this._delegate = this;
DND.makeDraggable(this, {restoreOnSuccess: true}); DND.makeDraggable(this, { restoreOnSuccess: true });
this._window = window; this._window = window;
this._window.connectObject( this.connect('destroy', this._onDestroy.bind(this));
'size-changed', () => this.queue_relayout(),
'position-changed', () => { this._sizeChangedId = this._window.connect('size-changed',
() => this.queue_relayout());
this._positionChangedId = this._window.connect('position-changed',
() => {
this._updateVisible(); this._updateVisible();
this.queue_relayout(); this.queue_relayout();
}, });
'notify::minimized', this._updateVisible.bind(this), this._minimizedChangedId = this._window.connect('notify::minimized',
this); this._updateVisible.bind(this));
global.display.connectObject('notify::focus-window', this._focusChangedId = global.display.connect('notify::focus-window',
this._onFocusChanged.bind(this), this); this._onFocusChanged.bind(this));
this._onFocusChanged(); this._onFocusChanged();
} }
@@ -54,6 +53,13 @@ class WindowPreview extends St.Button {
return this._window; 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() { _onFocusChanged() {
if (global.display.focus_window === this._window) if (global.display.focus_window === this._window)
this.add_style_class_name('active'); this.add_style_class_name('active');
@@ -68,13 +74,10 @@ class WindowPreview extends St.Button {
this._window.window_type !== Meta.WindowType.DESKTOP && this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace(); this._window.showing_on_its_workspace();
} }
} });
let WorkspaceLayout = GObject.registerClass(
class WorkspaceLayout extends Clutter.LayoutManager { class WorkspaceLayout extends Clutter.LayoutManager {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_width() { vfunc_get_preferred_width() {
return [0, 0]; return [0, 0];
} }
@@ -101,15 +104,12 @@ class WorkspaceLayout extends Clutter.LayoutManager {
child.allocate(childBox); child.allocate(childBox);
} }
} }
} });
let WorkspaceThumbnail = GObject.registerClass(
class WorkspaceThumbnail extends St.Button { class WorkspaceThumbnail extends St.Button {
static { _init(index) {
GObject.registerClass(this); super._init({
}
constructor(index) {
super({
style_class: 'workspace', style_class: 'workspace',
child: new Clutter.Actor({ child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(), layout_manager: new WorkspaceLayout(),
@@ -134,13 +134,16 @@ class WorkspaceThumbnail extends St.Button {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index); this._workspace = workspaceManager.get_workspace_by_index(index);
this._workspace.connectObject( this._windowAddedId = this._workspace.connect('window-added',
'window-added', (ws, window) => this._addWindow(window), (ws, window) => {
'window-removed', (ws, window) => this._removeWindow(window), this._addWindow(window);
this); });
this._windowRemovedId = this._workspace.connect('window-removed',
global.display.connectObject('restacked', (ws, window) => {
this._onRestacked.bind(this), this); this._removeWindow(window);
});
this._restackedId = global.display.connect('restacked',
this._onRestacked.bind(this));
this._workspace.list_windows().forEach(w => this._addWindow(w)); this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked(); this._onRestacked();
@@ -238,16 +241,17 @@ class WorkspaceThumbnail extends St.Button {
_onDestroy() { _onDestroy() {
this._tooltip.destroy(); 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 { class WorkspaceIndicator extends PanelMenu.Button {
static { _init() {
GObject.registerClass(this); super._init(0.0, _('Workspace Indicator'));
}
constructor() {
super(0.5, _('Workspace Indicator'));
let container = new St.Widget({ let container = new St.Widget({
layout_manager: new Clutter.BinLayout(), layout_manager: new Clutter.BinLayout(),
@@ -279,11 +283,14 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._workspaceSection = new PopupMenu.PopupMenuSection(); this._workspaceSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._workspaceSection); this.menu.addMenuItem(this._workspaceSection);
workspaceManager.connectObject( this._workspaceManagerSignals = [
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER, workspaceManager.connect_after('notify::n-workspaces',
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER, this._nWorkspacesChanged.bind(this)),
'notify::layout-rows', this._updateThumbnailVisibility.bind(this), workspaceManager.connect_after('workspace-switched',
this); this._onWorkspaceSwitched.bind(this)),
workspaceManager.connect('notify::layout-rows',
this._updateThumbnailVisibility.bind(this)),
];
this.connect('scroll-event', this._onScrollEvent.bind(this)); this.connect('scroll-event', this._onScrollEvent.bind(this));
this._thumbnailsBox.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._updateThumbnails();
this._updateThumbnailVisibility(); this._updateThumbnailVisibility();
this._settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA}); this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
this._settings.connectObject(`changed::${WORKSPACE_KEY}`, this._settingsChangedId = this._settings.connect(
this._updateMenuLabels.bind(this), this); `changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this));
} }
_onDestroy() { _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); Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
super._onDestroy(); super._onDestroy();
} }
_updateThumbnailVisibility() { _updateThumbnailVisibility() {
const {workspaceManager} = global; const { workspaceManager } = global;
const vertical = workspaceManager.layout_rows === -1; const vertical = workspaceManager.layout_rows === -1;
const useMenu = const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS; 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; let newIndex = global.workspace_manager.get_active_workspace_index() + diff;
this._activate(newIndex); this._activate(newIndex);
} }
});
/** */
function init() {
ExtensionUtils.initTranslations();
} }
export default class WorkspaceIndicatorExtension extends Extension { let _indicator;
enable() {
this._indicator = new WorkspaceIndicator();
Main.panel.addToStatusArea('workspace-indicator', this._indicator);
}
disable() { /** */
this._indicator.destroy(); function enable() {
delete this._indicator; _indicator = new WorkspaceIndicator();
} Main.panel.addToStatusArea('workspace-indicator', _indicator);
}
/** */
function disable() {
_indicator.destroy();
} }
@@ -3,6 +3,5 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files('stylesheet.css')
extension_sources += files('prefs.js') extension_sources += files('prefs.js')
+128 -172
View File
@@ -1,165 +1,131 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Adw from 'gi://Adw'; /* exported init buildPrefsWidget */
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';
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 N_ = e => e;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences'; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names'; const WORKSPACE_KEY = 'workspace-names';
class NewItem extends GObject.Object {} const WorkspaceSettingsWidget = GObject.registerClass(
GObject.registerClass(NewItem); class WorkspaceSettingsWidget extends Gtk.ScrolledWindow {
_init() {
class NewItemModel extends GObject.Object { super._init({
static [GObject.interfaces] = [Gio.ListModel]; hscrollbar_policy: Gtk.PolicyType.NEVER,
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'),
}); });
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}); box.append(new Gtk.Label({
const listModel = new Gtk.FlattenListModel({model: store}); label: '<b>%s</b>'.format(_('Workspace Names')),
store.append(this._workspaces); use_markup: true,
store.append(new NewItemModel()); halign: Gtk.Align.START,
}));
this._list = new Gtk.ListBox({ this._list = new Gtk.ListBox({
selection_mode: Gtk.SelectionMode.NONE, 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._list.connect('row-activated', (l, row) => row.edit());
this.add(this._list); box.append(this._list);
this._list.bind_model(listModel, item => { const context = this._list.get_style_context();
return item instanceof NewItem const cssProvider = new Gtk.CssProvider();
? new NewWorkspaceRow() cssProvider.load_from_data(
: new WorkspaceRow(item.string); '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 { const WorkspaceRow = GObject.registerClass(
static { class WorkspaceRow extends Gtk.ListBoxRow {
GObject.registerClass(this); _init(name) {
} super._init({ name });
constructor(name) { const controller = new Gtk.ShortcutController();
super({name}); 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({ const box = new Gtk.Box({
spacing: 12, spacing: 12,
@@ -181,39 +147,21 @@ class WorkspaceRow extends Adw.PreferencesRow {
const button = new Gtk.Button({ const button = new Gtk.Button({
action_name: 'workspaces.remove', action_name: 'workspaces.remove',
action_target: new GLib.Variant('s', name),
icon_name: 'edit-delete-symbolic', icon_name: 'edit-delete-symbolic',
has_frame: false,
}); });
box.append(button); 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({ this._entry = new Gtk.Entry({
max_width_chars: 25, 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 = new Gtk.Stack();
this._stack.add_named(box, 'display'); this._stack.add_named(box, 'display');
this._stack.add_named(this._entry, 'edit'); this._stack.add_named(this._entry, 'edit');
this.child = this._stack; this.child = this._stack;
this._entry.connect('activate', () => { this._entry.connect('activate', () => {
this.activate_action('workspaces.rename',
new GLib.Variant('(ss)', [this.name, this._entry.text]));
this.name = this._entry.text; this.name = this._entry.text;
this._stopEdit(); this._stopEdit();
}); });
@@ -222,6 +170,11 @@ class WorkspaceRow extends Adw.PreferencesRow {
return; return;
this._stopEdit(); this._stopEdit();
}); });
this.connect('notify::name', () => {
button.action_target = new GLib.Variant('s', this.name);
this.activate_action('workspaces.update', null);
});
} }
edit() { edit() {
@@ -234,15 +187,12 @@ class WorkspaceRow extends Adw.PreferencesRow {
this.grab_focus(); this.grab_focus();
this._stack.visible_child_name = 'display'; this._stack.visible_child_name = 'display';
} }
} });
class NewWorkspaceRow extends Adw.PreferencesRow { const NewWorkspaceRow = GObject.registerClass(
static { class NewWorkspaceRow extends Gtk.ListBoxRow {
GObject.registerClass(this); _init() {
} super._init({
constructor() {
super({
action_name: 'workspaces.add', action_name: 'workspaces.add',
child: new Gtk.Image({ child: new Gtk.Image({
icon_name: 'list-add-symbolic', icon_name: 'list-add-symbolic',
@@ -256,10 +206,16 @@ class NewWorkspaceRow extends Adw.PreferencesRow {
this.update_property( this.update_property(
[Gtk.AccessibleProperty.LABEL], [_('Add Workspace')]); [Gtk.AccessibleProperty.LABEL], [_('Add Workspace')]);
} }
});
/** */
function init() {
ExtensionUtils.initTranslations();
} }
export default class WorkspaceIndicatorPrefs extends ExtensionPreferences { /**
getPreferencesWidget() { * @returns {Gtk.Widget} - the prefs widget
return new WorkspaceSettingsWidget(); */
} function buildPrefsWidget() {
return new WorkspaceSettingsWidget();
} }
+5 -15
View File
@@ -2,7 +2,8 @@
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later # SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
# SPDX-FileCopyrightText: 2018 Claudio André <claudioandre.br@gmail.com> # SPDX-FileCopyrightText: 2018 Claudio André <claudioandre.br@gmail.com>
env: env:
es2021: true es6: true
es2020: true
extends: 'eslint:recommended' extends: 'eslint:recommended'
plugins: plugins:
- jsdoc - jsdoc
@@ -68,10 +69,7 @@ rules:
jsdoc/check-tag-names: error jsdoc/check-tag-names: error
jsdoc/check-types: error jsdoc/check-types: error
jsdoc/implements-on-classes: error jsdoc/implements-on-classes: error
jsdoc/tag-lines: jsdoc/newline-after-description: error
- error
- any
- startLines: 1
jsdoc/require-jsdoc: error jsdoc/require-jsdoc: error
jsdoc/require-param: error jsdoc/require-param: error
jsdoc/require-param-description: error jsdoc/require-param-description: error
@@ -88,10 +86,7 @@ rules:
linebreak-style: linebreak-style:
- error - error
- unix - unix
lines-between-class-members: lines-between-class-members: error
- error
- always
- exceptAfterSingleLine: true
max-nested-callbacks: error max-nested-callbacks: error
max-statements-per-line: error max-statements-per-line: error
new-parens: error new-parens: error
@@ -264,10 +259,5 @@ globals:
window: readonly window: readonly
TextEncoder: readonly TextEncoder: readonly
TextDecoder: readonly TextDecoder: readonly
console: readonly
setTimeout: readonly
setInterval: readonly
clearTimeout: readonly
clearInterval: readonly
parserOptions: parserOptions:
ecmaVersion: 2022 ecmaVersion: 2020
+2 -5
View File
@@ -3,12 +3,9 @@ rules:
- error - error
- properties: never - properties: never
allow: [^vfunc_, ^on_] allow: [^vfunc_, ^on_]
consistent-return: error object-curly-spacing:
eqeqeq:
- error - error
- smart - always
prefer-arrow-callback: error prefer-arrow-callback: error
globals: globals:
global: readonly global: readonly
parserOptions:
sourceType: module
+4 -25
View File
@@ -1,6 +1,6 @@
project('gnome-shell-extensions', project('gnome-shell-extensions',
version: '45.beta', version: '41.2',
meson_version: '>= 0.58.0', meson_version: '>= 0.53.0',
license: 'GPL2+' license: 'GPL2+'
) )
@@ -15,11 +15,11 @@ datadir = get_option('datadir')
shelldir = join_paths(datadir, 'gnome-shell') shelldir = join_paths(datadir, 'gnome-shell')
extensiondir = join_paths(shelldir, 'extensions') extensiondir = join_paths(shelldir, 'extensions')
modedir = join_paths(shelldir, 'modes') modedir = join_paths(shelldir, 'modes')
themedir = join_paths(shelldir, 'theme')
schemadir = join_paths(datadir, 'glib-2.0', 'schemas') schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
sessiondir = join_paths(datadir, 'gnome-session', 'sessions') sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
xsessiondir = join_paths(datadir, 'xsessions') xsessiondir = join_paths(datadir, 'xsessions')
wlsessiondir = join_paths(datadir, 'wayland-sessions')
ver_arr = meson.project_version().split('.') ver_arr = meson.project_version().split('.')
shell_version = ver_arr[0] shell_version = ver_arr[0]
@@ -36,7 +36,6 @@ classic_extensions = [
default_extensions = classic_extensions default_extensions = classic_extensions
default_extensions += [ default_extensions += [
'drive-menu', 'drive-menu',
'light-style',
'screenshot-window-sizer', 'screenshot-window-sizer',
'windowsNavigator', 'windowsNavigator',
'workspace-indicator' 'workspace-indicator'
@@ -84,32 +83,12 @@ endforeach
if classic_mode_enabled if classic_mode_enabled
subdir('data') subdir('data')
meson.add_install_script(
'meson/session-post-install.py',
join_paths(get_option('prefix'), datadir)
)
endif endif
subdir('extensions') subdir('extensions')
subdir('po') subdir('po')
gnome.post_install( meson.add_dist_script('meson/generate-stylesheets.py')
glib_compile_schemas: true,
)
meson.add_dist_script('meson/check-version.py', meson.add_dist_script('meson/check-version.py',
meson.project_version(), meson.project_version(),
'NEWS') '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')
+13
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)
-20
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)
-2
View File
@@ -1,4 +1,3 @@
ab
af af
an an
ar ar
@@ -33,7 +32,6 @@ id
is is
it it
ja ja
ka
kab kab
kk kk
km km
-2
View File
@@ -1,6 +1,4 @@
data/gnome-classic.desktop.in data/gnome-classic.desktop.in
data/gnome-classic-wayland.desktop.in
data/gnome-classic-xorg.desktop.in
extensions/apps-menu/extension.js extensions/apps-menu/extension.js
extensions/auto-move-windows/extension.js extensions/auto-move-windows/extension.js
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml
-268
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 "Аусуратә ҵакыра ацҵара"
+47 -54
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n" "POT-Creation-Date: 2021-01-20 23:03+0000\n"
"PO-Revision-Date: 2022-10-19 15:20+0300\n" "PO-Revision-Date: 2021-01-24 15:33+0300\n"
"Last-Translator: Launchpad translators\n" "Last-Translator: Launchpad translators\n"
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n" "Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
"Language: be\n" "Language: be\n"
@@ -18,30 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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" "%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 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "Класічны GNOME" msgstr "Класічны GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Гэты сеанс выкарыстоўвае класічны GNOME" msgstr "Гэты сеанс выкарыстоўвае класічны GNOME"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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" msgid "Favorites"
msgstr "Абраныя" msgstr "Абраныя"
#: extensions/apps-menu/extension.js:379 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Праграмы" msgstr "Праграмы"
@@ -57,41 +48,43 @@ msgstr ""
"Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *." "Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *."
"desktop), затым двукроп'е і нумар працоўнай прасторы" "desktop), затым двукроп'е і нумар працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:152 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Правілы для працоўнай прасторы" msgstr "Правілы для працоўнай прасторы"
#: extensions/auto-move-windows/prefs.js:306 #: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule" msgid "Add Rule"
msgstr "Дадаць правіла" msgstr "Дадаць правіла"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:210 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Не ўдалося выняць дыск «%s»:" msgstr "Не ўдалося выняць дыск «%s»:"
#: extensions/drive-menu/extension.js:145 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Здымныя прылады" msgstr "Здымныя прылады"
#: extensions/drive-menu/extension.js:167 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Адкрыць файлы" msgstr "Адкрыць файлы"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
#, fuzzy
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Выкарыстоўваць большую плошчу экрана для вокнаў" msgstr "Выкарыстоўваць большую плошчу экрана для вокнаў"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
#, fuzzy
msgid "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз " "Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз "
"змяненне суадносін бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры " "змяненне суадносінаў бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
"абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным " "абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным "
"размяшчэннем мініяцюр." "размяшчэннем мініяцюр."
@@ -109,31 +102,31 @@ msgstr ""
"перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць " "перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць "
"абалонку." "абалонку."
#: extensions/places-menu/extension.js:94 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:97 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Месцы" msgstr "Месцы"
#: extensions/places-menu/placeDisplay.js:49 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Не ўдалося запусціць «%s»" msgstr "Не ўдалося запусціць «%s»"
#: extensions/places-menu/placeDisplay.js:64 #: extensions/places-menu/placeDisplay.js:61
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Не ўдалося прымацаваць том для «%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" msgid "Computer"
msgstr "Камп'ютар" msgstr "Камп'ютар"
#: extensions/places-menu/placeDisplay.js:336 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Хатняя папка" msgstr "Хатняя папка"
#: extensions/places-menu/placeDisplay.js:381 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Агляд сеткі" msgstr "Агляд сеткі"
@@ -153,47 +146,47 @@ msgstr "Назва тэмы"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome-shell" msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Закрыць" msgstr "Закрыць"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Скасаваць згортванне" msgstr "Скасаваць згортванне"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Згарнуць" msgstr "Згарнуць"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Скасаваць разгортванне" msgstr "Скасаваць разгортванне"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Разгарнуць" msgstr "Разгарнуць"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Згарнуць усе" msgstr "Згарнуць усе"
#: extensions/window-list/extension.js:489 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Скасаваць згортванне для ўсіх" msgstr "Скасаваць згортванне для ўсіх"
#: extensions/window-list/extension.js:495 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Разгарнуць усе" msgstr "Разгарнуць усе"
#: extensions/window-list/extension.js:503 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Скасаваць разгортванне для ўсіх" msgstr "Скасаваць разгортванне для ўсіх"
#: extensions/window-list/extension.js:511 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Закрыць усе" msgstr "Закрыць усе"
#: extensions/window-list/extension.js:795 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "Спіс вокнаў" msgstr "Спіс вокнаў"
@@ -210,7 +203,7 @@ msgstr ""
"значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)." "значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Паказваць вокны з усіх працоўных прастор" msgstr "Паказваць вокны з усіх працоўных прастор"
@@ -229,41 +222,41 @@ msgid ""
msgstr "" msgstr ""
"Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным." "Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным."
#: extensions/window-list/prefs.js:35 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Групаванне вокнаў" msgstr "Групаванне вокнаў"
#: extensions/window-list/prefs.js:40 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Ніколі не групаваць вокны" msgstr "Ніколі не групаваць вокны"
#: extensions/window-list/prefs.js:41 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Групаваць вокны калі не хапае месца" msgstr "Групаваць вокны калі не хапае месца"
#: extensions/window-list/prefs.js:42 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Заўсёды групаваць вокны" msgstr "Заўсёды групаваць вокны"
#: extensions/window-list/prefs.js:66 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Паказваць на ўсіх маніторах" msgstr "Паказваць на ўсіх маніторах"
#: extensions/window-list/workspaceIndicator.js:261 #: extensions/window-list/workspaceIndicator.js:247
#: extensions/workspace-indicator/extension.js:266 #: extensions/workspace-indicator/extension.js:253
msgid "Workspace Indicator" 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 #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Працоўная прастора %d" msgstr "Працоўная прастора %d"
#: extensions/workspace-indicator/prefs.js:129 #: extensions/workspace-indicator/prefs.js:208
msgid "Workspace Names"
msgstr "Назвы працоўных прастор"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Дадаць працоўную прастору" msgstr "Дадаць працоўную прастору"
+41 -50
View File
@@ -1,17 +1,17 @@
# Bulgarian translation for gnome-shell-extensions po-file. # Bulgarian translation for gnome-shell-extensions po-file.
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc. # 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. # This file is distributed under the same license as the gnome-shell-extensions package.
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014. # 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. # Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2022-02-12 20:25+0000\n" "POT-Creation-Date: 2021-07-05 17:13+0000\n"
"PO-Revision-Date: 2022-02-13 11:40+0100\n" "PO-Revision-Date: 2021-07-11 10:19+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
"Language: bg\n" "Language: bg\n"
@@ -24,24 +24,15 @@ msgstr ""
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "Класически GNOME" msgstr "Класически GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Работната среда изглежда като класическия GNOME (2.x)" msgstr "Работната среда изглежда като класическия GNOME (2.x)"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Любими" msgstr "Любими"
#: extensions/apps-menu/extension.js:370 #: extensions/apps-menu/extension.js:367
msgid "Applications" msgid "Applications"
msgstr "Програми" msgstr "Програми"
@@ -57,26 +48,26 @@ msgstr ""
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „." "Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
"desktop“), следван от знака „:“ и номер на работен плот" "desktop“), следван от знака „:“ и номер на работен плот"
#: extensions/auto-move-windows/prefs.js:19 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Правила за работните плотове" msgstr "Правила за работните плотове"
#: extensions/auto-move-windows/prefs.js:245 #: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule" msgid "Add Rule"
msgstr "Добавяне на правило" msgstr "Добавяне на правило"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:123 #: extensions/drive-menu/extension.js:132
#: extensions/places-menu/placeDisplay.js:210 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Неуспешно изваждане на устройство „%s“:" msgstr "Неуспешно изваждане на устройство „%s“:"
#: extensions/drive-menu/extension.js:139 #: extensions/drive-menu/extension.js:148
msgid "Removable devices" msgid "Removable devices"
msgstr "Преносими медии" msgstr "Преносими медии"
#: extensions/drive-menu/extension.js:161 #: extensions/drive-menu/extension.js:172
msgid "Open Files" msgid "Open Files"
msgstr "Отваряне на файлове" msgstr "Отваряне на файлове"
@@ -109,31 +100,31 @@ msgstr ""
"им, а не както е стандартно — отдолу. За прилагане на промяната на " "им, а не както е стандартно — отдолу. За прилагане на промяната на "
"настройката трябва да рестартирате обвивката на GNOME." "настройката трябва да рестартирате обвивката на GNOME."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:92
msgid "Places" msgid "Places"
msgstr "Места" msgstr "Места"
#: extensions/places-menu/placeDisplay.js:49 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Неуспешно стартиране на „%s“" msgstr "Неуспешно стартиране на „%s“"
#: extensions/places-menu/placeDisplay.js:64 #: extensions/places-menu/placeDisplay.js:61
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Неуспешно монтиране на тома „%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" msgid "Computer"
msgstr "Компютър" msgstr "Компютър"
#: extensions/places-menu/placeDisplay.js:336 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Домашна папка" msgstr "Домашна папка"
#: extensions/places-menu/placeDisplay.js:381 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Мрежа" msgstr "Мрежа"
@@ -154,47 +145,47 @@ msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "" msgstr ""
"Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“" "Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Затваряне" msgstr "Затваряне"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Деминимизиране" msgstr "Деминимизиране"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Минимизиране" msgstr "Минимизиране"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Демаксимизиране" msgstr "Демаксимизиране"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Максимизиране" msgstr "Максимизиране"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Минимизиране на всички" msgstr "Минимизиране на всички"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Деминимизиране на всички" msgstr "Деминимизиране на всички"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Максимизиране на всички" msgstr "Максимизиране на всички"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Демаксимизиране на всички" msgstr "Демаксимизиране на всички"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Затваряне на всички" msgstr "Затваряне на всички"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "Списък на прозорците" msgstr "Списък на прозорците"
@@ -212,7 +203,7 @@ msgstr ""
"„always“ (винаги)." "„always“ (винаги)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Да се показват прозорците от всички работни плотове" msgstr "Да се показват прозорците от всички работни плотове"
@@ -233,40 +224,40 @@ msgstr ""
"Дали списъкът с прозорци да се извежда на всички монитори или само на " "Дали списъкът с прозорци да се извежда на всички монитори или само на "
"основния" "основния"
#: extensions/window-list/prefs.js:32 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Групиране на прозорци" msgstr "Групиране на прозорци"
#: extensions/window-list/prefs.js:37 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Никога да не се групират" msgstr "Никога да не се групират"
#: extensions/window-list/prefs.js:38 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Групиране при ограничено място" msgstr "Групиране при ограничено място"
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Винаги да се групират" msgstr "Винаги да се групират"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "На всички монитори" msgstr "На всички монитори"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Индикатор на работните плотове" msgstr "Индикатор на работните плотове"
#: extensions/workspace-indicator/prefs.js:18 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Имена на работните плотове" msgstr "Имена на работните плотове"
#: extensions/workspace-indicator/prefs.js:39 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Работен плот %d" msgstr "Работен плот %d"
#: extensions/workspace-indicator/prefs.js:184 #: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Добавяне на работен плот" msgstr "Добавяне на работен плот"
+39 -47
View File
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "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" "PO-Revision-Date: 2017-07-08 13:29+0100\n"
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n" "Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n" "Language-Team: Catalan <tradgnome@softcatala.org>\n"
@@ -19,28 +19,19 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME clàssic" msgstr "GNOME clàssic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Aquesta sessió us permet utilitzar el GNOME clàssic" msgstr "Aquesta sessió us permet utilitzar el GNOME clàssic"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Preferides" msgstr "Preferides"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplicacions" msgstr "Aplicacions"
@@ -57,26 +48,26 @@ msgstr ""
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el " "d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
"número de l'espai de treball" "número de l'espai de treball"
#: extensions/auto-move-windows/prefs.js:34 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Regles dels espais de treball" msgstr "Regles dels espais de treball"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Afegeix una regla" msgstr "Afegeix una regla"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Ha fallat l'expulsió de la unitat «%s»:" msgstr "Ha fallat l'expulsió de la unitat «%s»:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispositius extraïbles" msgstr "Dispositius extraïbles"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Obre els fitxers" msgstr "Obre els fitxers"
@@ -90,10 +81,10 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" msgstr ""
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures " "Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de "
"de les finestres adaptant-les a la ràtio d'aspecte de la pantalla, " "les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-"
"consolidant-les més per a reduir la caixa que les envolta. Aquest paràmetre " "les més per a reduir la caixa que les envolta. Aquest paràmetre de "
"de configuració només s'aplica a l'estratègia de posicionament de finestres " "configuració només s'aplica a l'estratègia de posicionament de finestres "
"natural." "natural."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 #: 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 " "posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui "
"efecte." "efecte."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Llocs" msgstr "Llocs"
@@ -155,47 +146,47 @@ msgstr "Nom del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Tanca" msgstr "Tanca"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Desminimitza" msgstr "Desminimitza"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimitza" msgstr "Minimitza"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Desmaximitza" msgstr "Desmaximitza"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximitza" msgstr "Maximitza"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimitza-ho tot" msgstr "Minimitza-ho tot"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Desminimitza-ho tot" msgstr "Desminimitza-ho tot"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximitza-ho tot" msgstr "Maximitza-ho tot"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Desmaximitza-ho tot" msgstr "Desmaximitza-ho tot"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Tanca-ho tot" msgstr "Tanca-ho tot"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Llista de finestres" msgstr "Llista de finestres"
@@ -213,7 +204,7 @@ msgstr ""
"«auto» (automàticament) i «always» (sempre)." "«auto» (automàticament) i «always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Mostra les finestres de tots els espais de treball" 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 " "Si es mostra la llista de finestres en tots els monitors connectats o només "
"al primari." "al primari."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Agrupació de finestres" msgstr "Agrupació de finestres"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Mai agrupis les finestres" msgstr "Mai agrupis les finestres"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Agrupa les finestres quan l'espai estigui limitat" 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" msgid "Always group windows"
msgstr "Agrupa les finestres sempre" msgstr "Agrupa les finestres sempre"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostra a tots els monitors" msgstr "Mostra a tots els monitors"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicador de l'espai de treball" msgstr "Indicador de l'espai de treball"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Noms dels espais de treball" msgstr "Noms dels espais de treball"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espai de treball %d" msgstr "Espai de treball %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Afegeix un espai de treball" msgstr "Afegeix un espai de treball"
+36 -45
View File
@@ -2,15 +2,15 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# 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-extensions package.
# Petr Kovar <pknbe@volny.cz>, 2013. # 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 "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "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: 2022-02-16 09:58+0100\n" "PO-Revision-Date: 2020-08-28 22:18+0200\n"
"Last-Translator: Marek Černocký <marek@manet.cz>\n" "Last-Translator: Marek Černocký <marek@manet.cz>\n"
"Language-Team: Czech <gnome-cs-list@gnome.org>\n" "Language-Team: Czech <gnome-cs-list@gnome.org>\n"
"Language: cs\n" "Language: cs\n"
@@ -20,28 +20,19 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
"X-Generator: Gtranslator 2.91.6\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" msgid "GNOME Classic"
msgstr "GNOME klasik" msgstr "GNOME klasik"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Toto sezení vás přihlásí do GNOME klasik" msgstr "Toto sezení vás přihlásí do GNOME klasik"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Oblíbené" msgstr "Oblíbené"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplikace" msgstr "Aplikace"
@@ -57,26 +48,26 @@ msgstr ""
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní " "Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
"plochy), následovaný dvojtečkou a číslem pracovní plochy" "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" msgid "Workspace Rules"
msgstr "Pravidla pracovních ploch" msgstr "Pravidla pracovních ploch"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Přidat pravidlo" msgstr "Přidat pravidlo"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Vysunutí disku „%s“ selhalo:" msgstr "Vysunutí disku „%s“ selhalo:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Výměnná zařízení" msgstr "Výměnná zařízení"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Otevřít soubory" 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 " "přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
"nastavení vyžaduje restart shellu, aby se projevila." "nastavení vyžaduje restart shellu, aby se projevila."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Místa" 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" 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" 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" msgid "Close"
msgstr "Zavřít" msgstr "Zavřít"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Zrušit minimalizaci" msgstr "Zrušit minimalizaci"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimalizovat" msgstr "Minimalizovat"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Zrušit maximalizaci" msgstr "Zrušit maximalizaci"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizovat" msgstr "Maximalizovat"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimalizovat všechna" msgstr "Minimalizovat všechna"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Zrušit minimalizaci všech" msgstr "Zrušit minimalizaci všech"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximalizovat všechna" msgstr "Maximalizovat všechna"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Zrušit maximalizaci všech" msgstr "Zrušit maximalizaci všech"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Zavřít všechna" msgstr "Zavřít všechna"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Seznam oken" msgstr "Seznam oken"
@@ -209,7 +200,7 @@ msgstr ""
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)." "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/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" msgid "Show windows from all workspaces"
msgstr "Zobrazovat okna ze všech pracovních ploch" 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 " "Zda zobrazovat seznam oken na všech připojených monitorech nebo jen na "
"hlavním." "hlavním."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Seskupování oken" msgstr "Seskupování oken"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Nikdy neseskupovat okna" msgstr "Nikdy neseskupovat okna"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Seskupovat okna při nedostatku místa" msgstr "Seskupovat okna při nedostatku místa"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Vždy seskupovat okna" msgstr "Vždy seskupovat okna"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Zobrazovat na všech monitorech" msgstr "Zobrazovat na všech monitorech"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Ukazatel pracovní plochy" msgstr "Ukazatel pracovní plochy"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Názvy pracovních ploch" msgstr "Názvy pracovních ploch"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Pracovní plocha %d" msgstr "Pracovní plocha %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Přidat pracovní plochu" msgstr "Přidat pracovní plochu"
+35 -44
View File
@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "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: 2022-02-27 13:21+0100\n" "PO-Revision-Date: 2020-09-07 18:36+0200\n"
"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n" "Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"Language: da\n" "Language: da\n"
@@ -22,28 +22,19 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 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" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Denne session logger dig ind i GNOME Classic" msgstr "Denne session logger dig ind i GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Favoritter" msgstr "Favoritter"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Programmer" msgstr "Programmer"
@@ -59,26 +50,26 @@ msgstr ""
"En liste over strenge, som hver indeholder et program-id " "En liste over strenge, som hver indeholder et program-id "
"(skrivebordsfilnavn), efterfulgt af et kolon og arbejdsområdets nummer" "(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" msgid "Workspace Rules"
msgstr "Regler for arbejdsområde" msgstr "Regler for arbejdsområde"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Tilføj regel" msgstr "Tilføj regel"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Udskubning af drevet “%s” mislykkedes:" msgstr "Udskubning af drevet “%s” mislykkedes:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Flytbare enheder" msgstr "Flytbare enheder"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Åbn filer" msgstr "Åbn filer"
@@ -112,8 +103,8 @@ msgstr ""
"Ændring af denne indstilling kræver at shell'en genstartes for at træde i " "Ændring af denne indstilling kræver at shell'en genstartes for at træde i "
"kraft." "kraft."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Steder" msgstr "Steder"
@@ -156,47 +147,47 @@ msgstr "Temanavn"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Luk" msgstr "Luk"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Afminimér" msgstr "Afminimér"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimér" msgstr "Minimér"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Afmaksimér" msgstr "Afmaksimér"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maksimér" msgstr "Maksimér"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimér" msgstr "Minimér"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Afminimér alle" msgstr "Afminimér alle"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Maksimér alle" msgstr "Maksimér alle"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Afmaksimér alle" msgstr "Afmaksimér alle"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Luk alle" msgstr "Luk alle"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Vinduesliste" msgstr "Vinduesliste"
@@ -213,7 +204,7 @@ msgstr ""
"Mulige værdier er “never” (aldrig), “auto” (automatisk) og “always” (altid)." "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/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" msgid "Show windows from all workspaces"
msgstr "Vis vinduer fra alle arbejdsområder" 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 " "Om vindueslisten skal vise på alle tilsluttede skærme, eller kun på den "
"primære." "primære."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Vinduesgruppering" msgstr "Vinduesgruppering"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Gruppér aldrig vinduer" msgstr "Gruppér aldrig vinduer"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Gruppér vinduer når pladsen er begrænset" 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" msgid "Always group windows"
msgstr "Gruppér altid vinduer" msgstr "Gruppér altid vinduer"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Vis på alle skærme" msgstr "Vis på alle skærme"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Arbejdsområdeindikator" msgstr "Arbejdsområdeindikator"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Navne på arbejdsområder" msgstr "Navne på arbejdsområder"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbejdsområde %d" msgstr "Arbejdsområde %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Tilføj arbejdsområde" msgstr "Tilføj arbejdsområde"
+47 -57
View File
@@ -2,51 +2,41 @@
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# 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-extensions package.
# Mario Blättermann <mario.blaettermann@gmail.com>, 2011-2013, 2017. # 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. # Benjamin Steinwender <b@stbe.at>, 2013.
# Wolfgang Stöggl <c72578@yahoo.de>, 2014. # Wolfgang Stöggl <c72578@yahoo.de>, 2014.
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2017. # Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2017.
# Tim Sabsch <tim@sabsch.com>, 2019-2020. # Tim Sabsch <tim@sabsch.com>, 2019-2020.
# Philipp Kiemle <philipp.kiemle@gmail.com>, 2022.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2022-03-07 15:35+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2022-03-10 22:26+0100\n" "PO-Revision-Date: 2020-09-08 20:20+0200\n"
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n" "Last-Translator: Tim Sabsch <tim@sabsch.com>\n"
"Language-Team: Deutsch <gnome-de@gnome.org>\n" "Language-Team: Deutsch <gnome-de@gnome.org>\n"
"Language: de\n" "Language: de\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Diese Sitzung meldet Sie in GNOME Classic an" msgstr "Diese Sitzung meldet Sie in GNOME Classic an"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Favoriten" msgstr "Favoriten"
#: extensions/apps-menu/extension.js:379 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Anwendungen" msgstr "Anwendungen"
@@ -63,26 +53,26 @@ msgstr ""
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der " "Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der "
"Arbeitsfläche" "Arbeitsfläche"
#: extensions/auto-move-windows/prefs.js:152 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Arbeitsfläche-Regeln" msgstr "Arbeitsfläche-Regeln"
#: extensions/auto-move-windows/prefs.js:306 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Regel hinzufügen" msgstr "Regel hinzufügen"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:210 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Auswerfen von Laufwerk »%s« schlug fehl:" msgstr "Auswerfen von Laufwerk »%s« schlug fehl:"
#: extensions/drive-menu/extension.js:145 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Wechseldatenträger" msgstr "Wechseldatenträger"
#: extensions/drive-menu/extension.js:167 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Dateien öffnen" msgstr "Dateien öffnen"
@@ -116,31 +106,31 @@ msgstr ""
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. " "Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft." "Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
#: extensions/places-menu/extension.js:94 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:97 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Orte" msgstr "Orte"
#: extensions/places-menu/placeDisplay.js:49 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Starten von »%s« fehlgeschlagen" msgstr "Starten von »%s« fehlgeschlagen"
#: extensions/places-menu/placeDisplay.js:64 #: extensions/places-menu/placeDisplay.js:61
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Datenträger für »%s« konnte nicht eingebunden werden" 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:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer" msgid "Computer"
msgstr "Rechner" msgstr "Rechner"
#: extensions/places-menu/placeDisplay.js:336 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Persönlicher Ordner" msgstr "Persönlicher Ordner"
#: extensions/places-menu/placeDisplay.js:381 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Netzwerk durchsuchen" msgstr "Netzwerk durchsuchen"
@@ -162,47 +152,47 @@ msgstr ""
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden " "Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
"soll" "soll"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Schließen" msgstr "Schließen"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Minimieren rückgängig" msgstr "Minimieren rückgängig"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimieren" msgstr "Minimieren"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Maximieren rückgängig" msgstr "Maximieren rückgängig"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximieren" msgstr "Maximieren"
#: extensions/window-list/extension.js:441 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Alle minimieren" msgstr "Alle minimieren"
#: extensions/window-list/extension.js:447 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Alle minimieren rückgängig" msgstr "Alle minimieren rückgängig"
#: extensions/window-list/extension.js:453 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Alle maximieren" msgstr "Alle maximieren"
#: extensions/window-list/extension.js:461 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Alle maximieren rückgängig" msgstr "Alle maximieren rückgängig"
#: extensions/window-list/extension.js:469 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Alle schließen" msgstr "Alle schließen"
#: extensions/window-list/extension.js:753 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Fensterliste" msgstr "Fensterliste"
@@ -220,7 +210,7 @@ msgstr ""
"»always« (immer)." "»always« (immer)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Fenster von allen Arbeitsflächen anzeigen" msgstr "Fenster von allen Arbeitsflächen anzeigen"
@@ -242,41 +232,41 @@ msgstr ""
"Legt fest, ob die Fensterliste auf allen angeschlossenen Bildschirmen " "Legt fest, ob die Fensterliste auf allen angeschlossenen Bildschirmen "
"angezeigt wird oder nur auf dem Primären." "angezeigt wird oder nur auf dem Primären."
#: extensions/window-list/prefs.js:35 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Fenstergruppierung" msgstr "Fenstergruppierung"
#: extensions/window-list/prefs.js:40 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Fenster niemals gruppieren" msgstr "Fenster niemals gruppieren"
#: extensions/window-list/prefs.js:41 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Fenster bei Platzmangel gruppieren" msgstr "Fenster bei Platzmangel gruppieren"
#: extensions/window-list/prefs.js:42 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Fenster immer gruppieren" msgstr "Fenster immer gruppieren"
#: extensions/window-list/prefs.js:66 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Auf allen Bildschirmen anzeigen" msgstr "Auf allen Bildschirmen anzeigen"
#: extensions/window-list/workspaceIndicator.js:261 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:266 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Arbeitsflächenindikator" 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 #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Arbeitsfläche %d" msgstr "Arbeitsfläche %d"
#: extensions/workspace-indicator/prefs.js:129 #: extensions/workspace-indicator/prefs.js:218
msgid "Workspace Names"
msgstr "Namen der Arbeitsflächen"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Arbeitsfläche hinzufügen" msgstr "Arbeitsfläche hinzufügen"
+46 -55
View File
@@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2023-02-18 15:10+0000\n" "POT-Creation-Date: 2020-05-28 00:55+0000\n"
"PO-Revision-Date: 2023-08-01 23:41+0300\n" "PO-Revision-Date: 2020-07-14 00:40+0300\n"
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n" "Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
"Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n" "Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n"
"Language: el\n" "Language: el\n"
@@ -21,31 +21,22 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" "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" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic" msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Αγαπημένα" msgstr "Αγαπημένα"
#: extensions/apps-menu/extension.js:380 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Εφαρμογές" msgstr "Εφαρμογές"
@@ -62,26 +53,26 @@ msgstr ""
"(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και " "(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και "
"τον αριθμό του χώρου εργασίας" "τον αριθμό του χώρου εργασίας"
#: extensions/auto-move-windows/prefs.js:152 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Κανόνες χώρων εργασίας" msgstr "Κανόνες χώρων εργασίας"
#: extensions/auto-move-windows/prefs.js:306 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Προσθήκη κανόνα" msgstr "Προσθήκη κανόνα"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:212 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Αποτυχία εξαγωγής του δίσκου «%s»:" msgstr "Αποτυχία εξαγωγής του δίσκου «%s»:"
#: extensions/drive-menu/extension.js:145 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Αφαιρούμενες συσκευές" msgstr "Αφαιρούμενες συσκευές"
#: extensions/drive-menu/extension.js:167 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Άνοιγμα αρχείων" msgstr "Άνοιγμα αρχείων"
@@ -115,31 +106,31 @@ msgstr ""
"στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί επανεκκίνηση του " "στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί επανεκκίνηση του "
"κελύφους για να υπάρξει κάποιο αποτέλεσμα." "κελύφους για να υπάρξει κάποιο αποτέλεσμα."
#: extensions/places-menu/extension.js:94 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:97 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Τοποθεσίες" msgstr "Τοποθεσίες"
#: extensions/places-menu/placeDisplay.js:52 #: extensions/places-menu/placeDisplay.js:46
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Αποτυχία εκκίνησης «%s»" msgstr "Αποτυχία εκκίνησης «%s»"
#: extensions/places-menu/placeDisplay.js:67 #: extensions/places-menu/placeDisplay.js:61
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Αποτυχία προσάρτησης τόμου για «%s»" msgstr "Αποτυχία προσάρτησης τόμου για «%s»"
#: extensions/places-menu/placeDisplay.js:127 #: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:150 #: extensions/places-menu/placeDisplay.js:171
msgid "Computer" msgid "Computer"
msgstr "Υπολογιστής" msgstr "Υπολογιστής"
#: extensions/places-menu/placeDisplay.js:340 #: extensions/places-menu/placeDisplay.js:359
msgid "Home" msgid "Home"
msgstr "Προσωπικός φάκελος" msgstr "Προσωπικός φάκελος"
#: extensions/places-menu/placeDisplay.js:385 #: extensions/places-menu/placeDisplay.js:404
msgid "Browse Network" msgid "Browse Network"
msgstr "Περιήγηση δικτύου" msgstr "Περιήγηση δικτύου"
@@ -160,47 +151,47 @@ msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "" msgstr ""
"Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell" "Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Κλείσιμο" msgstr "Κλείσιμο"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Αποελαχιστοποίηση" msgstr "Αποελαχιστοποίηση"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Ελαχιστοποίηση" msgstr "Ελαχιστοποίηση"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Απομεγιστοποίηση" msgstr "Απομεγιστοποίηση"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Μεγιστοποίηση" msgstr "Μεγιστοποίηση"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Ελαχιστοποίηση όλων" msgstr "Ελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:489 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Αποελαχιστοποίηση όλων" msgstr "Αποελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:495 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Μεγιστοποίηση όλων" msgstr "Μεγιστοποίηση όλων"
#: extensions/window-list/extension.js:503 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Απομεγιστοποίηση όλων" msgstr "Απομεγιστοποίηση όλων"
#: extensions/window-list/extension.js:511 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Κλείσιμο όλων" msgstr "Κλείσιμο όλων"
#: extensions/window-list/extension.js:795 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Λίστα παραθύρου" msgstr "Λίστα παραθύρου"
@@ -218,7 +209,7 @@ msgstr ""
"«always» (πάντα)." "«always» (πάντα)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας" msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας"
@@ -239,41 +230,41 @@ msgstr ""
"Αν θα εμφανίζεται ο κατάλογος παραθύρων όλων των συνδεμένων οθονών ή μόνο " "Αν θα εμφανίζεται ο κατάλογος παραθύρων όλων των συνδεμένων οθονών ή μόνο "
"της κύριας οθόνης." "της κύριας οθόνης."
#: extensions/window-list/prefs.js:35 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Ομαδοποίηση παραθύρου" msgstr "Ομαδοποίηση παραθύρου"
#: extensions/window-list/prefs.js:40 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Να μη γίνεται ποτέ ομαδοποίηση παραθύρων" msgstr "Να μη γίνεται ποτέ ομαδοποίηση παραθύρων"
#: extensions/window-list/prefs.js:41 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Ομαδοποίηση παραθύρων όταν ο χώρος είναι περιορισμένος" msgstr "Ομαδοποίηση παραθύρων όταν ο χώρος είναι περιορισμένος"
#: extensions/window-list/prefs.js:42 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων" msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων"
#: extensions/window-list/prefs.js:66 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Να εμφανίζεται σε όλες τις οθόνες" msgstr "Να εμφανίζεται σε όλες τις οθόνες"
#: extensions/window-list/workspaceIndicator.js:261 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:266 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" 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 #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Χώρος εργασίας %d" msgstr "Χώρος εργασίας %d"
#: extensions/workspace-indicator/prefs.js:129 #: extensions/workspace-indicator/prefs.js:218
msgid "Workspace Names"
msgstr "Ονόματα χώρων εργασίας"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Προσθήκη χώρου εργασίας" msgstr "Προσθήκη χώρου εργασίας"
+38 -48
View File
@@ -4,15 +4,15 @@
# Jorge González <jorgegonz@svn.gnome.org>, 2011. # Jorge González <jorgegonz@svn.gnome.org>, 2011.
# Nicolás Satragno <nsatragno@gmail.com>, 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 "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n" "POT-Creation-Date: 2020-05-03 17:53+0000\n"
"PO-Revision-Date: 2021-11-26 17:58+0100\n" "PO-Revision-Date: 2020-05-04 14:06+0200\n"
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n" "Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n" "Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
"Language: es_ES\n" "Language: es_ES\n"
@@ -20,32 +20,21 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "GNOME Classic"
msgstr "GNOME clásico" msgstr "GNOME clásico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión inicia GNOME clásico" msgstr "Esta sesión inicia GNOME clásico"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
#| 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
msgid "Favorites" msgid "Favorites"
msgstr "Favoritos" msgstr "Favoritos"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplicaciones" msgstr "Aplicaciones"
@@ -61,26 +50,27 @@ msgstr ""
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de " "Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
"archivo de escritorio), seguido de dos puntos y el número del área de trabajo" "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" msgid "Workspace Rules"
msgstr "Reglas de las áreas de trabajo" msgstr "Reglas de las áreas de trabajo"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Añadir regla" msgstr "Añadir regla"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Falló al expulsar el dispositivo «%s»:" msgstr "Falló al expulsar el dispositivo «%s»:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispositivos extraíbles" msgstr "Dispositivos extraíbles"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Abrir archivos" msgstr "Abrir archivos"
@@ -113,8 +103,8 @@ msgstr ""
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell " "los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
"para que tenga efecto." "para que tenga efecto."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Lugares" msgstr "Lugares"
@@ -157,47 +147,47 @@ msgstr "Nombre del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Cerrar" msgstr "Cerrar"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Desminimizar" msgstr "Desminimizar"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimizar" msgstr "Minimizar"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Desmaximizar" msgstr "Desmaximizar"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:429
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizar todo" msgstr "Minimizar todo"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:435
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Desminimizar todo" msgstr "Desminimizar todo"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:441
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizar todo" msgstr "Maximizar todo"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:449
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Desmaximizar todo" msgstr "Desmaximizar todo"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:457
msgid "Close all" msgid "Close all"
msgstr "Cerrar todo" msgstr "Cerrar todo"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "Lista de ventanas" msgstr "Lista de ventanas"
@@ -214,7 +204,7 @@ msgstr ""
"ventanas. Los valores posibles son «never», «auto» y «always»." "ventanas. Los valores posibles son «never», «auto» y «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Mostrar ventanas de todas las áreas de trabajo" 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 " "Indica si se debe mostrar la lista de ventanas en todas las pantallas "
"conectadas o sólo en la primaria." "conectadas o sólo en la primaria."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Agrupación de ventanas" msgstr "Agrupación de ventanas"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Nunca agrupar las ventanas" msgstr "Nunca agrupar las ventanas"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Agrupar las ventanas cuando el espacio esté limitado" 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" msgid "Always group windows"
msgstr "Siempre agrupar las ventanas" msgstr "Siempre agrupar las ventanas"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostrar en todas las pantallas" msgstr "Mostrar en todas las pantallas"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:209
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:215
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicador de área de trabajo" msgstr "Indicador de área de trabajo"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Nombres de los áreas de trabajo" msgstr "Nombres de los áreas de trabajo"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Área de trabajo %d" msgstr "Área de trabajo %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Añadir área de trabajo" msgstr "Añadir área de trabajo"
+37 -45
View File
@@ -5,13 +5,13 @@
# assar <asiersar@yahoo.com>, 2011. # assar <asiersar@yahoo.com>, 2011.
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2013, 2015, 2017. # Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2013, 2015, 2017.
# Edurne Labaka <elabaka@uzei.com>, 2015. # Edurne Labaka <elabaka@uzei.com>, 2015.
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021. # Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020.
# #
msgid "" msgid ""
msgstr "Project-Id-Version: gnome-shell-extensions master\n" msgstr "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\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: 2021-12-25 00:42+0200\n" "PO-Revision-Date: 2020-08-10 00:42+0200\n"
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n" "Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
"Language-Team: Basque <librezale@librezale.eus>\n" "Language-Team: Basque <librezale@librezale.eus>\n"
"Language: eu\n" "Language: eu\n"
@@ -20,29 +20,21 @@ msgstr "Project-Id-Version: gnome-shell-extensions master\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Project-Style: gnome\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" msgid "GNOME Classic"
msgstr "GNOME Klasikoa" msgstr "GNOME Klasikoa"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Saio honek GNOME Klasikoa hasten du" msgstr "Saio honek GNOME Klasikoa hasten du"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Gogokoak" msgstr "Gogokoak"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplikazioak" msgstr "Aplikazioak"
@@ -56,26 +48,26 @@ msgid ""
"followed by a colon and the workspace number" "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" 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" msgid "Workspace Rules"
msgstr "Laneko areen arauak" msgstr "Laneko areen arauak"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Gehitu araua" msgstr "Gehitu araua"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Huts egin du “%s“ unitatea egoztean:" msgstr "Huts egin du “%s“ unitatea egoztean:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Gailu aldagarriak" msgstr "Gailu aldagarriak"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Ireki fitxategiak" msgstr "Ireki fitxategiak"
@@ -101,8 +93,8 @@ msgid ""
"restarting the shell to have any effect." "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." 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:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Lekuak" msgstr "Lekuak"
@@ -145,47 +137,47 @@ msgstr "Gaiaren izena"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko" msgstr "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "Itxi" msgstr "Itxi"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Leheneratu" msgstr "Leheneratu"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimizatu" msgstr "Minimizatu"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Desmaximizatu" msgstr "Desmaximizatu"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximizatu" msgstr "Maximizatu"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizatu denak" msgstr "Minimizatu denak"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Leheneratu denak" msgstr "Leheneratu denak"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizatu denak" msgstr "Maximizatu denak"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Desmaximizatu denak" msgstr "Desmaximizatu denak"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Itxi denak" msgstr "Itxi denak"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Leiho-zerrenda" 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)." 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/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" msgid "Show windows from all workspaces"
msgstr "Erakutsi laneko area guztietako leihoak" msgstr "Erakutsi laneko area guztietako leihoak"
@@ -218,41 +210,41 @@ msgid ""
"primary one." "primary one."
msgstr "Leihoen zerrenda konektatutako pantaila guztietan edo soilik pantaila nagusian erakutsiko den." 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" msgid "Window Grouping"
msgstr "Leiho-elkartzea" msgstr "Leiho-elkartzea"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Leihoak inoiz ez elkartu" msgstr "Leihoak inoiz ez elkartu"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Elkartu leihoak lekua mugatuta dagoenean" msgstr "Elkartu leihoak lekua mugatuta dagoenean"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Elkartu beti leihoak" msgstr "Elkartu beti leihoak"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Erakutsi pantaila guztietan" msgstr "Erakutsi pantaila guztietan"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Lan arearen adierazlea" msgstr "Lan arearen adierazlea"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Laneko areen izenak" msgstr "Laneko areen izenak"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. laneko area" msgstr "%d. laneko area"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Gehitu laneko area" msgstr "Gehitu laneko area"
+36 -45
View File
@@ -9,40 +9,31 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n" "Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n" "POT-Creation-Date: 2020-05-03 17:53+0000\n"
"PO-Revision-Date: 2021-11-10 16:24+0330\n" "PO-Revision-Date: 2020-05-12 14:25+0000\n"
"Last-Translator: MohammadSaleh Kamyab <mskf1383@protonmail.com>\n" "Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
"Language-Team: Persian <>\n" "Language-Team: Persian <>\n"
"Language: fa\n" "Language: fa\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Poedit-SourceCharset: utf-8\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" "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" msgid "GNOME Classic"
msgstr "گنوم کلاسیک" msgstr "گنوم کلاسیک"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "این نشست شما را به گنوم کلاسیک وارد می‌کند" msgstr "این نشست شما را به گنوم کلاسیک وارد می‌کند"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "برگزیده‌ها" msgstr "برگزیده‌ها"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "برنامه‌ها" msgstr "برنامه‌ها"
@@ -58,26 +49,26 @@ msgstr ""
"فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک " "فهرستی از رشته‌ها، هرکدام حاوی شناسه‌ی یک برنامه (نام پرونده رومیزی)، در ادامه‌ی یک "
"ویرگول و شماره‌ی فضای کاری" "ویرگول و شماره‌ی فضای کاری"
#: extensions/auto-move-windows/prefs.js:34 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "قواعد فضای کاری" msgstr "قواعد فضای کاری"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "افزودن قاعده" msgstr "افزودن قاعده"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "بیرون دادن دیسک‌گردان «%s» شکست خورد:" msgstr "بیرون دادن دیسک‌گردان «%s» شکست خورد:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "دستگاه‌های جداشدنی" msgstr "دستگاه‌های جداشدنی"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "گشودن پرونده‌ها" 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" msgid "Places"
msgstr "مکان‌ها" msgstr "مکان‌ها"
@@ -152,47 +143,47 @@ msgstr "نام تم"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~" msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:98
msgid "Close" msgid "Close"
msgstr "خروج" msgstr "خروج"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "ناکمینه" msgstr "ناکمینه"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "کمینه" msgstr "کمینه"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "نابیشینه" msgstr "نابیشینه"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "بیشنه" msgstr "بیشنه"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:429
msgid "Minimize all" msgid "Minimize all"
msgstr "کمینهٔ همه" msgstr "کمینهٔ همه"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:435
msgid "Unminimize all" msgid "Unminimize all"
msgstr "ناکمینهٔ همه" msgstr "ناکمینهٔ همه"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:441
msgid "Maximize all" msgid "Maximize all"
msgstr "بیشینهٔ همه" msgstr "بیشینهٔ همه"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:449
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "نابیشینهٔ همه" msgstr "نابیشینهٔ همه"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:457
msgid "Close all" msgid "Close all"
msgstr "بستن همه" msgstr "بستن همه"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "فهرست پنجره" msgstr "فهرست پنجره"
@@ -209,7 +200,7 @@ msgstr ""
"ممکن عبارتند از «never»، «auto» و «always»." "ممکن عبارتند از «never»، «auto» و «always»."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "نمایش پنجره‌ها از تمام فضاهای کاری" msgstr "نمایش پنجره‌ها از تمام فضاهای کاری"
@@ -229,41 +220,41 @@ msgstr ""
"اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر " "اینکه آیا فهرست پنجره‌ها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر "
"اصلی." "اصلی."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "گروه‌سازی پنجره‌ها" msgstr "گروه‌سازی پنجره‌ها"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "هیچ‌گاه پنجره‌ها گروه نشوند" msgstr "هیچ‌گاه پنجره‌ها گروه نشوند"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "پنجره‌ها زمانی که فضا محدود است گروه شوند" msgstr "پنجره‌ها زمانی که فضا محدود است گروه شوند"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "همیشه پنجره‌ها گروه شوند" msgstr "همیشه پنجره‌ها گروه شوند"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "نمایش در تمام نمایشگرها" msgstr "نمایش در تمام نمایشگرها"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:209
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:215
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "نشانگر فضای‌کاری" msgstr "نشانگر فضای‌کاری"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "نام‌های فضای کاری" msgstr "نام‌های فضای کاری"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "فضای کاری %Id" msgstr "فضای کاری %Id"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "افزودن فضای‌کاری" msgstr "افزودن فضای‌کاری"
+35 -44
View File
@@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n" "POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2022-02-27 18:54+0200\n" "PO-Revision-Date: 2021-03-15 21:32+0200\n"
"Last-Translator: JR-Fi <starman@starman.fi>\n" "Last-Translator: JR-Fi <starman@starman.fi>\n"
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n" "Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
"Language: fi\n" "Language: fi\n"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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-Project-Style: gnome\n"
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n" "X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
@@ -29,24 +29,15 @@ msgstr ""
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "Perinteinen Gnome" msgstr "Perinteinen Gnome"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Tämä istunto kirjaa sinut perinteiseen Gnomeen" msgstr "Tämä istunto kirjaa sinut perinteiseen Gnomeen"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Suosikit" msgstr "Suosikit"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Sovellukset" msgstr "Sovellukset"
@@ -62,26 +53,26 @@ msgstr ""
"Lista merkkijonoja, jossa jokainen on ohjelman tunnus (työpöydän " "Lista merkkijonoja, jossa jokainen on ohjelman tunnus (työpöydän "
"tiedostonimi), jota seuraa kaksoispiste ja työtilan numero" "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" msgid "Workspace Rules"
msgstr "Työtilojen säännöt" msgstr "Työtilojen säännöt"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Lisää sääntö" msgstr "Lisää sääntö"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Aseman “%s” irrottaminen epäonnistui:" msgstr "Aseman “%s” irrottaminen epäonnistui:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Erilliset tallennusvälineet" msgstr "Erilliset tallennusvälineet"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Avaa tiedostonhallinta" msgstr "Avaa tiedostonhallinta"
@@ -113,8 +104,8 @@ msgstr ""
"Tämä syrjäyttää oletusasetuksen, eli otsikkotekstin asettamisen pienoiskuvan " "Tämä syrjäyttää oletusasetuksen, eli otsikkotekstin asettamisen pienoiskuvan "
"alle. Tämän asetuksen muutos vaatii Gnomen uudelleenkäynnistyksen." "alle. Tämän asetuksen muutos vaatii Gnomen uudelleenkäynnistyksen."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Sijainnit" msgstr "Sijainnit"
@@ -158,47 +149,47 @@ msgstr "Teeman nimi"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Teeman nimi, ladataan sijainnista ~/.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" msgid "Close"
msgstr "Sulje" msgstr "Sulje"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Palauta pienennys" msgstr "Palauta pienennys"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Pienennä" msgstr "Pienennä"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Palauta suurennus" msgstr "Palauta suurennus"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Suurenna" msgstr "Suurenna"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Pienennä kaikki" msgstr "Pienennä kaikki"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Palauta kaikkien koko" msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Suurenna kaikki" msgstr "Suurenna kaikki"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Palauta kaikkien koko" msgstr "Palauta kaikkien koko"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Sulje kaikki" msgstr "Sulje kaikki"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:738
msgid "Window List" msgid "Window List"
msgstr "Ikkunaluettelo" msgstr "Ikkunaluettelo"
@@ -215,7 +206,7 @@ msgstr ""
"Mahdolliset arvot ovat “never”, “auto” ja “always”." "Mahdolliset arvot ovat “never”, “auto” ja “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Näytä ikkunat kaikista työtiloista" msgstr "Näytä ikkunat kaikista työtiloista"
@@ -237,41 +228,41 @@ msgstr ""
"Näytetäänkö ikkunaluettelo kaikilla liitetyillä näytöillä vai ainoastaan " "Näytetäänkö ikkunaluettelo kaikilla liitetyillä näytöillä vai ainoastaan "
"ensisijaisella näytöllä." "ensisijaisella näytöllä."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Ikkunoiden ryhmitys" msgstr "Ikkunoiden ryhmitys"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Älä ryhmitä ikkunoita koskaan" msgstr "Älä ryhmitä ikkunoita koskaan"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Ryhmitä ikkunat tilan ollessa rajallinen" msgstr "Ryhmitä ikkunat tilan ollessa rajallinen"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Ryhmitä ikkunat aina" msgstr "Ryhmitä ikkunat aina"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Näytä kaikilla näytöillä" msgstr "Näytä kaikilla näytöillä"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Työtilan ilmaisin" msgstr "Työtilan ilmaisin"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Työtilojen nimet" msgstr "Työtilojen nimet"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Työtila %d" msgstr "Työtila %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Lisää työtila" msgstr "Lisää työtila"
+37 -49
View File
@@ -3,48 +3,36 @@
# 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-extensions package.
# Claude Paroz <claude@2xlibre.net>, 2011. # Claude Paroz <claude@2xlibre.net>, 2011.
# Alain Lojewski <allomervan@gmail.com>, 2012-2013. # Alain Lojewski <allomervan@gmail.com>, 2012-2013.
# Charles Monzat <charles.monzat@free.fr>, 2018-2022. # Charles Monzat <charles.monzat@numericable.fr>, 2018.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "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: 2022-03-01 21:04+0100\n" "PO-Revision-Date: 2020-08-10 12:50+0200\n"
"Last-Translator: Charles Monzat <charles.monzat@free.fr>\n" "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n" "Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\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" msgid "GNOME Classic"
msgstr "GNOME Classique" msgstr "GNOME Classique"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Cette session vous connecte à GNOME Classique" msgstr "Cette session vous connecte à GNOME Classique"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
#| 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
msgid "Favorites" msgid "Favorites"
msgstr "Favoris" msgstr "Favoris"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Applications" msgstr "Applications"
@@ -61,26 +49,26 @@ msgstr ""
"dapplication (nom de fichier desktop), suivi par un deux-points et le " "dapplication (nom de fichier desktop), suivi par un deux-points et le "
"numéro de lespace de travail" "numéro de lespace de travail"
#: extensions/auto-move-windows/prefs.js:34 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Règles des espaces de travail" msgstr "Règles des espaces de travail"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Ajouter une règle" msgstr "Ajouter une règle"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "L’éjection du disque « %s » a échoué :" msgstr "L’éjection du disque « %s » a échoué :"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Périphériques amovibles" msgstr "Périphériques amovibles"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Ouvrir Fichiers" msgstr "Ouvrir Fichiers"
@@ -114,8 +102,8 @@ msgstr ""
"dessous. Pour que ce paramètre soit pris en compte, il faut redémarrer le " "dessous. Pour que ce paramètre soit pris en compte, il faut redémarrer le "
"Shell." "Shell."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Emplacements" 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" 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" 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" msgid "Close"
msgstr "Fermer" msgstr "Fermer"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Restaurer" msgstr "Restaurer"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Réduire" msgstr "Réduire"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Restaurer" msgstr "Restaurer"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximiser" msgstr "Maximiser"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Tout réduire" msgstr "Tout réduire"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Tout restaurer" msgstr "Tout restaurer"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Tout maximiser" msgstr "Tout maximiser"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Tout restaurer" msgstr "Tout restaurer"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Tout fermer" msgstr "Tout fermer"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Liste de fenêtres" msgstr "Liste de fenêtres"
@@ -216,7 +204,7 @@ msgstr ""
"« always » (toujours)." "« always » (toujours)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Afficher les fenêtres de tous les espaces de travail" 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 " "Indique sil faut afficher la liste des fenêtres sur tous les écrans "
"connectés ou seulement l’écran principal." "connectés ou seulement l’écran principal."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Regroupement de fenêtres" msgstr "Regroupement de fenêtres"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Ne jamais regrouper les fenêtres" 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" msgid "Group windows when space is limited"
msgstr "Regrouper les fenêtres quand lespace est limité" 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" msgid "Always group windows"
msgstr "Toujours regrouper les fenêtres" msgstr "Toujours regrouper les fenêtres"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Afficher sur tous les écrans" msgstr "Afficher sur tous les écrans"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicateur despace de travail" msgstr "Indicateur despace de travail"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Noms des espaces de travail" msgstr "Noms des espaces de travail"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espace de travail %d" msgstr "Espace de travail %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Ajouter un espace de travail" msgstr "Ajouter un espace de travail"
+35 -44
View File
@@ -8,38 +8,29 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n" "POT-Creation-Date: 2020-10-08 21:24+0000\n"
"PO-Revision-Date: 2021-11-07 17:51+0100\n" "PO-Revision-Date: 2020-10-17 22:14+0200\n"
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n" "Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
"Language-Team: Friulian <fur@li.org>\n" "Language-Team: Friulian <fur@li.org>\n"
"Language: fur\n" "Language: fur\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME Classic" msgstr "GNOME Classic"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Cheste session ti fâs jentrâ in GNOME Classic" msgstr "Cheste session ti fâs jentrâ in GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Preferîts" msgstr "Preferîts"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplicazions" msgstr "Aplicazions"
@@ -55,26 +46,26 @@ msgstr ""
"Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ." "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" "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" msgid "Workspace Rules"
msgstr "Regulis dai spazis di lavôr" msgstr "Regulis dai spazis di lavôr"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Zonte regule" msgstr "Zonte regule"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "No si è rivâts a parâ fûr la unitât “%s”»:" 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" msgid "Removable devices"
msgstr "Dispositîfs estraibii" msgstr "Dispositîfs estraibii"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Vierç i files" msgstr "Vierç i files"
@@ -107,8 +98,8 @@ msgstr ""
"sorpassant il compuartament predefinît de shell, che lis place in bas. " "sorpassant il compuartament predefinît de shell, che lis place in bas. "
"Cambiant cheste impostazion si scugne tornâ a inviâ la shell." "Cambiant cheste impostazion si scugne tornâ a inviâ la shell."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Puescj" msgstr "Puescj"
@@ -151,47 +142,47 @@ msgstr "Non dal teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Siere" msgstr "Siere"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Gjave minimizazion" msgstr "Gjave minimizazion"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimize" msgstr "Minimize"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Gjave massimizazion" msgstr "Gjave massimizazion"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Massimize" msgstr "Massimize"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimize ducj" msgstr "Minimize ducj"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Gjave a ducj la minimizazion" msgstr "Gjave a ducj la minimizazion"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Massimize ducj" msgstr "Massimize ducj"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Gjave a ducj la massimizazion" msgstr "Gjave a ducj la massimizazion"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Siere ducj" msgstr "Siere ducj"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Liste barcons" msgstr "Liste barcons"
@@ -208,7 +199,7 @@ msgstr ""
"barcons. I valôrs pussibii a son “never”, “auto” e “always”." "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/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" msgid "Show windows from all workspaces"
msgstr "Mostre i barcons di ducj i spazis di lavôr" 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 " "Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
"chel principâl." "chel principâl."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Intropament di barcons" msgstr "Intropament di barcons"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "No sta meti mai in grup i barcons" 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" msgid "Group windows when space is limited"
msgstr "Met dongje i barcons cuant che il spazi al è limitât" 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" msgid "Always group windows"
msgstr "Met simpri in grup i barcons" msgstr "Met simpri in grup i barcons"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostre su ducj i visôrs" msgstr "Mostre su ducj i visôrs"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicadôr spazi di lavôr" msgstr "Indicadôr spazi di lavôr"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Nons dai spazis di lavôr" msgstr "Nons dai spazis di lavôr"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Spazi di lavôr %d" msgstr "Spazi di lavôr %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Zonte spazi di lavôr" msgstr "Zonte spazi di lavôr"
+42 -58
View File
@@ -3,54 +3,37 @@
# 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-extensions package.
# #
# Fran Diéguez <frandieguez@gnome.org>, 2011. # Fran Diéguez <frandieguez@gnome.org>, 2011.
# Fran Dieguez <fran.dieguez@gnome.org>, 2011-2021. # Fran Dieguez <frandieguez@gnome.org>, 2011-2020, 2021.
#
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"issues\n" "sues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n" "POT-Creation-Date: 2020-10-17 20:14+0000\n"
"PO-Revision-Date: 2021-11-19 22:50+0100\n" "PO-Revision-Date: 2021-02-24 20:41+0100\n"
"Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n" "Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
"Language-Team: Galician <proxecto@trasno.gal>\n" "Language-Team: Proxecto Trasno <proxecto@trasno.gal>\n"
"Language: gl\n" "Language: gl\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\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-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 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME clásico" msgstr "GNOME clásico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Esta sesión iniciarao en GNOME clásico" msgstr "Esta sesión iniciarao en GNOME clásico"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
#| 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
msgid "Favorites" msgid "Favorites"
msgstr "Favoritos" msgstr "Favoritos"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplicacións" msgstr "Aplicacións"
@@ -66,26 +49,26 @@ msgstr ""
"Unha lista de cadeas, cada unha das cales contén un id de aplicación (nome " "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" "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" msgid "Workspace Rules"
msgstr "Regras da área de traballo" msgstr "Regras da área de traballo"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Engadir regra" msgstr "Engadir regra"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Fallo ao extraer a unidade «%s»:" msgstr "Fallo ao extraer a unidade «%s»:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispositivos extraíbeis" msgstr "Dispositivos extraíbeis"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Abrir ficheiros" msgstr "Abrir ficheiros"
@@ -99,7 +82,8 @@ msgid ""
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy." "This setting applies only with the natural placement strategy."
msgstr "" 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. " "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." "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 " "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." "esta configuración deberá reiniciar o shell para que se apliquen os cambios."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Lugares" msgstr "Lugares"
@@ -161,47 +145,47 @@ msgstr "Nome do tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Pechar" msgstr "Pechar"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Restabelecer" msgstr "Restabelecer"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimizar" msgstr "Minimizar"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Restaurar" msgstr "Restaurar"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximizar" msgstr "Maximizar"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizar todo" msgstr "Minimizar todo"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Restaurar todo" msgstr "Restaurar todo"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizar todo" msgstr "Maximizar todo"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Restaurar todo" msgstr "Restaurar todo"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Pechar todo" msgstr "Pechar todo"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:738
msgid "Window List" msgid "Window List"
msgstr "Lista de xanelas" msgstr "Lista de xanelas"
@@ -219,7 +203,7 @@ msgstr ""
"«always» (sempre)." "«always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Mostrar as xanelas de todos os espazos de traballo" 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ó " "Indica se mostrar a lista de xanelas en todos os monitores conectados ou só "
"no primario." "no primario."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Agrupación de xanelas" msgstr "Agrupación de xanelas"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Non agrupar nunca as xanelas" 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" msgid "Group windows when space is limited"
msgstr "Agrupar as xanelas cando o espazo é limitado" msgstr "Agrupar as xanelas cando o espazo é limitado"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Agrupar sempre as xanelas" msgstr "Agrupar sempre as xanelas"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostrar en todos os monitores" msgstr "Mostrar en todos os monitores"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicador de espazo de traballo" msgstr "Indicador de espazo de traballo"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Nomes dos espazos de traballo" msgstr "Nomes dos espazos de traballo"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Espazos de traballo %d" msgstr "Espazos de traballo %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Engadir área de traballo" msgstr "Engadir área de traballo"
+41 -48
View File
@@ -9,40 +9,31 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "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: 2021-11-12 00:53+0200\n" "PO-Revision-Date: 2020-09-28 22:04+0300\n"
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n" "Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
"Language-Team: Hebrew <yoseforb@gmail.com>\n" "Language-Team: Hebrew <yoseforb@gmail.com>\n"
"Language: he\n" "Language: he\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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-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" msgid "GNOME Classic"
msgstr "GNOME קלסי" msgstr "0GNOME קלסי"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "הפעלה זו מכניסה אותך למצב הקלסי של GNOME" msgstr "הפעלה זו מכניסה אותך למצב הקלסי של GNOME"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "מועדפים" msgstr "מועדפים"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "יישומים" msgstr "יישומים"
@@ -58,26 +49,27 @@ msgstr ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "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" msgid "Workspace Rules"
msgstr "כללי מרחב העבודה" msgstr "כללי מרחב העבודה"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "הוספת כלל" msgstr "הוספת כלל"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "שליפת הכונן „%s” נכשלה:" msgstr "שליפת הכונן „%s” נכשלה:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "התקנים נתיקים" msgstr "התקנים נתיקים"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "פתיחת קבצים" msgstr "פתיחת קבצים"
@@ -109,8 +101,8 @@ msgstr ""
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect." "restarting the shell to have any effect."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "מיקומים" msgstr "מיקומים"
@@ -153,47 +145,47 @@ msgstr "Theme name"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "סגירה" msgstr "סגירה"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "ביטול המזעור" msgstr "ביטול המזעור"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "מזעור" msgstr "מזעור"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "ביטול ההגדלה" msgstr "ביטול ההגדלה"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "הגדלה" msgstr "הגדלה"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "מזעור הכל" msgstr "מזעור הכל"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "ביטול מזעור הכל" msgstr "ביטול מזעור הכל"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "הגדלת הכל" msgstr "הגדלת הכל"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "ביטול הגדלת הכל" msgstr "ביטול הגדלת הכל"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "סגירת הכל" msgstr "סגירת הכל"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "רשימת חלונות" msgstr "רשימת חלונות"
@@ -210,7 +202,7 @@ msgstr ""
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "הצגת חלונות מכל מרחבי העבודה" msgstr "הצגת חלונות מכל מרחבי העבודה"
@@ -230,41 +222,42 @@ msgstr ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "קיבוץ חלונות" msgstr "קיבוץ חלונות"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "לעולם לא לקבץ חלונות" msgstr "לעולם לא לקבץ חלונות"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "קיבוץ חלונות כאשר המקום מוגבל" msgstr "קיבוץ חלונות כאשר המקום מוגבל"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "תמיד לקבץ חלונות" msgstr "תמיד לקבץ חלונות"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "הצגה בכל הצגים" msgstr "הצגה בכל הצגים"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "מחוון מרחבי עבודה" msgstr "מחוון מרחבי עבודה"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "שם מרחב העבודה" msgstr "שם מרחב העבודה"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "מרחב עבודה %d" msgstr "מרחב עבודה %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
#| msgid "Workspace"
msgid "Add Workspace" msgid "Add Workspace"
msgstr "הוספת מרחב עבודה" msgstr "הוספת מרחב עבודה"
+35 -44
View File
@@ -8,9 +8,9 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n" "POT-Creation-Date: 2021-07-19 15:59+0000\n"
"PO-Revision-Date: 2021-11-12 12:24+0100\n" "PO-Revision-Date: 2021-09-23 16:37+0200\n"
"Last-Translator: gogo <trebelnik2@gmail.com>\n" "Last-Translator: gogo <linux.hr@protonmail.com>\n"
"Language-Team: Croatian <hr@li.org>\n" "Language-Team: Croatian <hr@li.org>\n"
"Language: hr\n" "Language: hr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -18,30 +18,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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" "%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 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
msgstr "GNOME klasičan" msgstr "GNOME klasičan"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Ova sesija vas prijavljuje u klasičan GNOME" msgstr "Ova sesija vas prijavljuje u klasičan GNOME"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Omiljeni" msgstr "Omiljeni"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:367
msgid "Applications" msgid "Applications"
msgstr "Aplikacije" msgstr "Aplikacije"
@@ -57,26 +48,26 @@ msgstr ""
"Popis nizova, svaki sadrži aplikaciju (naziv datoteke prečaca), slijedeći " "Popis nizova, svaki sadrži aplikaciju (naziv datoteke prečaca), slijedeći "
"stupac i broj radnog prostora" "stupac i broj radnog prostora"
#: extensions/auto-move-windows/prefs.js:34 #: extensions/auto-move-windows/prefs.js:35
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Pravila radnog prostora" msgstr "Pravila radnog prostora"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule" msgid "Add Rule"
msgstr "Dodaj pravilo" msgstr "Dodaj pravilo"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:134
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Izbacivanje uređaja “%s” neuspjelo:" msgstr "Izbacivanje uređaja “%s” neuspjelo:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:150
msgid "Removable devices" msgid "Removable devices"
msgstr "Prijenosni uređaji" msgstr "Prijenosni uređaji"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:172
msgid "Open Files" msgid "Open Files"
msgstr "Otvori datoteku" msgstr "Otvori datoteku"
@@ -109,8 +100,8 @@ msgstr ""
"zaobilazeći zadano smještanje ljuske na dnu. Promjena ove postavke zahtijeva " "zaobilazeći zadano smještanje ljuske na dnu. Promjena ove postavke zahtijeva "
"ponovno pokretanje ljuske kako bi se primijenila." "ponovno pokretanje ljuske kako bi se primijenila."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:92
msgid "Places" msgid "Places"
msgstr "Lokacije" msgstr "Lokacije"
@@ -153,47 +144,47 @@ msgstr "Naziv teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Zatvori" msgstr "Zatvori"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Vrati" msgstr "Vrati"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Smanji" msgstr "Smanji"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Prikaži u prozoru" msgstr "Prikaži u prozoru"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Uvećaj" msgstr "Uvećaj"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Smanji sve" msgstr "Smanji sve"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Vrati sve" msgstr "Vrati sve"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Uvećaj sve" msgstr "Uvećaj sve"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Prikaži u prozoru sve" msgstr "Prikaži u prozoru sve"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Zatvori sve" msgstr "Zatvori sve"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "Popis prozora" msgstr "Popis prozora"
@@ -210,7 +201,7 @@ msgstr ""
"vrijednosti su: “never”, “auto” i “always”." "vrijednosti su: “never”, “auto” i “always”."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Prikaži prozore sa svih radnih prostora" 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 " "Treba li prikazati popis prozora na svim povezanim zaslonima ili smo na "
"glavnom." "glavnom."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Grupiranje prozora" msgstr "Grupiranje prozora"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Ne grupiraj prozore" msgstr "Ne grupiraj prozore"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Grupiraj prozore kada je prostor ograničen" msgstr "Grupiraj prozore kada je prostor ograničen"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Uvijek grupiraj prozore" msgstr "Uvijek grupiraj prozore"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Prikaži na svim zaslonima" msgstr "Prikaži na svim zaslonima"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indikator radnog prostora" msgstr "Indikator radnog prostora"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Nazivi radnih prostora" msgstr "Nazivi radnih prostora"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Radni prostor %d" msgstr "Radni prostor %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:208
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Dodaj radni prostor" msgstr "Dodaj radni prostor"
+53 -52
View File
@@ -1,50 +1,39 @@
# Hungarian translation for gnome-shell-extensions. # 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. # This file is distributed under the same license as the gnome-shell-extensions package.
# #
# Biró Balázs <arch.scar at gmail dot com>, 2011. # Biró Balázs <arch.scar at gmail dot com>, 2011.
# Gabor Kelemen <kelemeng at gnome dot hu>, 2011, 2012, 2013. # 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 "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"sues\n" "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: 2022-03-11 01:38+0100\n" "PO-Revision-Date: 2020-09-05 18:08+0200\n"
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n" "Last-Translator: Meskó Balázs <mesko.balazs@fsf.hu>\n"
"Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n" "Language-Team: Hungarian <gnome-hu-list at gnome dot org>\n"
"Language: hu\n" "Language: hu\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\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" "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" msgid "GNOME Classic"
msgstr "Klasszikus GNOME" msgstr "Klasszikus GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Bejelentkezés a klasszikus GNOME környezetbe" msgstr "Bejelentkezés a klasszikus GNOME környezetbe"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
#| 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
msgid "Favorites" msgid "Favorites"
msgstr "Kedvencek" msgstr "Kedvencek"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Alkalmazások" msgstr "Alkalmazások"
@@ -60,26 +49,26 @@ msgstr ""
"Alkalmazásazonosítókat (.desktop fájl neve), majd kettősponttal elválasztva " "Alkalmazásazonosítókat (.desktop fájl neve), majd kettősponttal elválasztva "
"a munkaterület számát tartalmazó karakterláncok sorozata" "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" msgid "Workspace Rules"
msgstr "Munkaterület szabályok" msgstr "Munkaterület szabályok"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Szabály hozzáadása" msgstr "Szabály hozzáadása"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "A(z) „%s” meghajtó kiadása nem sikerült:" 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" msgid "Removable devices"
msgstr "Cserélhető eszközök" msgstr "Cserélhető eszközök"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Fájlok megnyitása" msgstr "Fájlok megnyitása"
@@ -112,8 +101,8 @@ msgstr ""
"tetejére helyezi el, az alapértelmezett alja helyett. Ezen beállítás " "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." "módosítása a Shell újraindítását igényli."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Helyek" msgstr "Helyek"
@@ -156,47 +145,47 @@ msgstr "Témanév"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Bezárás" msgstr "Bezárás"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Minimalizálás megszüntetése" msgstr "Minimalizálás megszüntetése"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimalizálás" msgstr "Minimalizálás"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Maximalizálás megszüntetése" msgstr "Maximalizálás megszüntetése"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizálás" msgstr "Maximalizálás"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minden minimalizálása" msgstr "Minden minimalizálása"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Minden minimalizálásának megszüntetése" msgstr "Minden minimalizálásának megszüntetése"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Minden maximalizálása" msgstr "Minden maximalizálása"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Minden maximalizálásának megszüntetése" msgstr "Minden maximalizálásának megszüntetése"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Minden bezárása" msgstr "Minden bezárása"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Ablaklista" msgstr "Ablaklista"
@@ -214,7 +203,7 @@ msgstr ""
"„always” (mindig)." "„always” (mindig)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Ablakok megjelenítése az összes munkaterületről" 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 " "Megjelenjen-e az ablaklista minden csatlakoztatott monitoron vagy csak az "
"elsődlegesen." "elsődlegesen."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Ablakcsoportosítás" msgstr "Ablakcsoportosítás"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Soha ne csoportosítsa az ablakokat" 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" msgid "Group windows when space is limited"
msgstr "Ablakok csoportosítása, ha kevés a hely" 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" msgid "Always group windows"
msgstr "Mindig csoportosítsa az ablakokat" msgstr "Mindig csoportosítsa az ablakokat"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Megjelenítés minden monitoron" msgstr "Megjelenítés minden monitoron"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Munkaterület indikátor" msgstr "Munkaterület indikátor"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Munkaterületnevek" msgstr "Munkaterületnevek"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. munkaterület" msgstr "%d. munkaterület"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Munkaterület hozzáadása" 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"
+37 -46
View File
@@ -4,14 +4,14 @@
# #
# Andika Triwidada <andika@gmail.com>, 2012, 2013. # Andika Triwidada <andika@gmail.com>, 2012, 2013.
# Dirgita <dirgitadevina@yahoo.co.id>, 2012. # Dirgita <dirgitadevina@yahoo.co.id>, 2012.
# Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017, 2019, 2020, 2022. # Kukuh Syafaat <kukuhsyafaat@gnome.org>, 2017, 2019, 2020.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "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: 2022-01-05 10:23+0700\n" "PO-Revision-Date: 2020-06-06 19:02+0700\n"
"Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n" "Last-Translator: Kukuh Syafaat <kukuhsyafaat@gnome.org>\n"
"Language-Team: Indonesian <gnome@i15n.org>\n" "Language-Team: Indonesian <gnome@i15n.org>\n"
"Language: id\n" "Language: id\n"
@@ -20,30 +20,21 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Poedit-SourceCharset: UTF-8\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" msgid "GNOME Classic"
msgstr "GNOME Klasik" msgstr "GNOME Klasik"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Sesi ini memasukkan Anda ke GNOME Klasik" msgstr "Sesi ini memasukkan Anda ke GNOME Klasik"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Favorit" msgstr "Favorit"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Aplikasi" msgstr "Aplikasi"
@@ -59,26 +50,26 @@ msgstr ""
"Daftar string, masing-masing memuat id aplikasi (nama berkas desktop), " "Daftar string, masing-masing memuat id aplikasi (nama berkas desktop), "
"diikuti oleh titik dua dan nomor ruang kerja" "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" msgid "Workspace Rules"
msgstr "Aturan Ruang Kerja" msgstr "Aturan Ruang Kerja"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Tambah Aturan" msgstr "Tambah Aturan"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Saat mengeluarkan drive \"%s\" gagal:" msgstr "Saat mengeluarkan drive \"%s\" gagal:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Perangkat yang dapat dilepas" msgstr "Perangkat yang dapat dilepas"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Buka Berkas" msgstr "Buka Berkas"
@@ -111,8 +102,8 @@ msgstr ""
"masing, menimpa bawaan shell yang menempatkannya di bagian bawah. Mengubah " "masing, menimpa bawaan shell yang menempatkannya di bagian bawah. Mengubah "
"ini memerlukan memulai ulang shell agar berdampak." "ini memerlukan memulai ulang shell agar berdampak."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Tempat" msgstr "Tempat"
@@ -155,47 +146,47 @@ msgstr "Nama tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Nama tema, untuk dimuat dari ~/.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" msgid "Close"
msgstr "Tutup" msgstr "Tutup"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Tak minimalkan" msgstr "Tak minimalkan"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimalkan" msgstr "Minimalkan"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Tak maksimalkan" msgstr "Tak maksimalkan"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Maksimalkan" msgstr "Maksimalkan"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimalkan semua" msgstr "Minimalkan semua"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Tak minimalkan semua" msgstr "Tak minimalkan semua"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Maksimalkan semua" msgstr "Maksimalkan semua"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Tak maksimalkan semua" msgstr "Tak maksimalkan semua"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Tutup semua" msgstr "Tutup semua"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Daftar Jendela" msgstr "Daftar Jendela"
@@ -213,7 +204,7 @@ msgstr ""
"\" (otomatis), atau \"always\" (selalu)." "\" (otomatis), atau \"always\" (selalu)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Menampilkan jendela dari semua area kerja" msgstr "Menampilkan jendela dari semua area kerja"
@@ -234,41 +225,41 @@ msgstr ""
"Apakah menampilkan daftar jendela pada semua monitor yang tersambung atau " "Apakah menampilkan daftar jendela pada semua monitor yang tersambung atau "
"hanya pada yang utama." "hanya pada yang utama."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Pengelompokan Jendela" msgstr "Pengelompokan Jendela"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Jangan pernah kelompokkan jendela" msgstr "Jangan pernah kelompokkan jendela"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Kelompokkan jendela ketika ruang terbatas" msgstr "Kelompokkan jendela ketika ruang terbatas"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Selalu kelompokkan jendela" msgstr "Selalu kelompokkan jendela"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Tampilkan pada semua monitor" msgstr "Tampilkan pada semua monitor"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indikator Ruang Kerja" msgstr "Indikator Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Nama Ruang Kerja" msgstr "Nama Ruang Kerja"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Ruang Kerja %d" msgstr "Ruang Kerja %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Tambah Ruang Kerja" msgstr "Tambah Ruang Kerja"
+41 -46
View File
@@ -7,10 +7,10 @@ msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n" "sues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n" "POT-Creation-Date: 2021-07-19 15:59+0000\n"
"PO-Revision-Date: 2021-12-13 09:07+0000\n" "PO-Revision-Date: 2021-09-29 07:48+0000\n"
"Last-Translator: Sveinn í Felli <sv1@fellsnet.is>\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" "Language: is\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,28 +20,17 @@ msgstr ""
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" 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.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Þessi seta skráir þig inn í klassískt GNOME" msgstr "Þessi seta skráir þig inn í klassískt GNOME"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
#| 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
msgid "Favorites" msgid "Favorites"
msgstr "Eftirlæti" msgstr "Eftirlæti"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:367
msgid "Applications" msgid "Applications"
msgstr "Forrit" msgstr "Forrit"
@@ -57,26 +46,27 @@ msgstr ""
"Listi yfir textastrengi, þar sem hver þeirra inniheldur forritsauðkenni " "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" "(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" msgid "Workspace Rules"
msgstr "Vinnusvæðareglur" msgstr "Vinnusvæðareglur"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:237
msgid "Add Rule" msgid "Add Rule"
msgstr "Bæta við reglu" msgstr "Bæta við reglu"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:134
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Útspýting drifsins '%s' mistókst:" msgstr "Útspýting drifsins '%s' mistókst:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:150
msgid "Removable devices" msgid "Removable devices"
msgstr "Útskiptanleg tæki" msgstr "Útskiptanleg tæki"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:172
msgid "Open Files" msgid "Open Files"
msgstr "Opna skrár" msgstr "Opna skrár"
@@ -109,8 +99,8 @@ msgstr ""
"öfugt við það sem sjálfgefið er í skelinni sem setur þær neðst. Breytingar á " "ö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." "þ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:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:92
msgid "Places" msgid "Places"
msgstr "Staðir" msgstr "Staðir"
@@ -153,47 +143,47 @@ msgstr "Heiti þema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Loka" msgstr "Loka"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Endurheimta" msgstr "Endurheimta"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Lágmarka" msgstr "Lágmarka"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Minnka glugga" msgstr "Minnka glugga"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Hámarka" msgstr "Hámarka"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:432
msgid "Minimize all" msgid "Minimize all"
msgstr "Lágmarka allt" msgstr "Lágmarka allt"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:438
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Endurheimta allt" msgstr "Endurheimta allt"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:444
msgid "Maximize all" msgid "Maximize all"
msgstr "Hámarka allt" msgstr "Hámarka allt"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:452
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Minnka allt" msgstr "Minnka allt"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:460
msgid "Close all" msgid "Close all"
msgstr "Loka öllu" msgstr "Loka öllu"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:737
msgid "Window List" msgid "Window List"
msgstr "Gluggalisti" msgstr "Gluggalisti"
@@ -210,11 +200,15 @@ msgstr ""
"Möguleg gildi eru „aldrei‟, „sjálfvirkt‟ og „alltaf‟." "Möguleg gildi eru „aldrei‟, „sjálfvirkt‟ og „alltaf‟."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: 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" msgid "Show windows from all workspaces"
msgstr "Birta glugga frá öllum vinnusvæðum" msgstr "Birta glugga frá öllum vinnusvæðum"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 #: 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." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "" msgstr ""
"Hvort birta eigi glugga frá öllum vinnusvæðum eða einungis því sem er virkt." "Hvort birta eigi glugga frá öllum vinnusvæðum eða einungis því sem er virkt."
@@ -230,41 +224,42 @@ msgid ""
msgstr "" msgstr ""
"Hvort birta eigi gluggalistann á öllum tengdum skjám eða einungis á aðalskjá." "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" msgid "Window Grouping"
msgstr "Hópun glugga" msgstr "Hópun glugga"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Aldrei hópa glugga" msgstr "Aldrei hópa glugga"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Hópa glugga þegar pláss er takmarkað" 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" msgid "Always group windows"
msgstr "Alltaf hópa glugga" msgstr "Alltaf hópa glugga"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Birta á öllum skjám" msgstr "Birta á öllum skjám"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:255
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Vinnusvæðavísir" msgstr "Vinnusvæðavísir"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Vinnusvæðaheiti" msgstr "Vinnusvæðaheiti"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Vinnusvæði %d" msgstr "Vinnusvæði %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:208
#| msgid "Workspace"
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Bæta við vinnusvæði" msgstr "Bæta við vinnusvæði"
+39 -48
View File
@@ -1,9 +1,9 @@
# Italian translations for GNOME Shell extensions # Italian translations for GNOME Shell extensions
# Copyright (C) 2011 Giovanni Campagna et al. # 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. # This file is distributed under the same license as the gnome-shell-extensions package.
# Giovanni Campagna <scampa.giovanni@gmail.com>, 2011 # 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. # Gianvito Cavasoli <gianvito@gmx.it>, 2017.
# #
msgid "" msgid ""
@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "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: 2022-03-14 09:56+0100\n" "PO-Revision-Date: 2020-09-02 09:58+0200\n"
"Last-Translator: Milo Casagrande <milo@milo.name>\n" "Last-Translator: Milo Casagrande <milo@milo.name>\n"
"Language-Team: Italiano <gnome-it-list@gnome.org>\n" "Language-Team: Italiano <gnome-it-list@gnome.org>\n"
"Language: it\n" "Language: it\n"
@@ -20,30 +20,21 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\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" msgid "GNOME Classic"
msgstr "GNOME classico" msgstr "GNOME classico"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4 #: data/gnome-classic.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Questa sessione si avvia con GNOME classico" msgstr "Questa sessione si avvia con GNOME classico"
#: data/gnome-classic-wayland.desktop.in:3 #: extensions/apps-menu/extension.js:113
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
msgid "Favorites" msgid "Favorites"
msgstr "Preferiti" msgstr "Preferiti"
#: extensions/apps-menu/extension.js:366 #: extensions/apps-menu/extension.js:369
msgid "Applications" msgid "Applications"
msgstr "Applicazioni" msgstr "Applicazioni"
@@ -59,28 +50,28 @@ msgstr ""
"Un elenco di stringhe, ognuna contenente l'ID di un'applicazione (nome del " "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" "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" msgid "Workspace Rules"
msgstr "Regole degli spazi di lavoro" msgstr "Regole degli spazi di lavoro"
#: extensions/auto-move-windows/prefs.js:236 #: extensions/auto-move-windows/prefs.js:243
msgid "Add Rule" msgid "Add Rule"
msgstr "Aggiungi regola" msgstr "Aggiungi regola"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133 #: extensions/drive-menu/extension.js:112
#: extensions/places-menu/placeDisplay.js:233 #: extensions/places-menu/placeDisplay.js:233
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Espulsione dell'unità «%s» non riuscita:" msgstr "Espulsione dell'unità «%s» non riuscita:"
#: extensions/drive-menu/extension.js:149 #: extensions/drive-menu/extension.js:128
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispositivi rimovibili" msgstr "Dispositivi rimovibili"
#: extensions/drive-menu/extension.js:171 #: extensions/drive-menu/extension.js:155
msgid "Open Files" msgid "Open Files"
msgstr "Apri File" msgstr "Apri file"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows" msgid "Use more screen for windows"
@@ -111,8 +102,8 @@ msgstr ""
"miniature, aggirando il comportamento normale della shell, che li colloca in " "miniature, aggirando il comportamento normale della shell, che li colloca in "
"basso. Modificare questa impostazione richiede di riavviare la shell." "basso. Modificare questa impostazione richiede di riavviare la shell."
#: extensions/places-menu/extension.js:88 #: extensions/places-menu/extension.js:89
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:93
msgid "Places" msgid "Places"
msgstr "Posizioni" msgstr "Posizioni"
@@ -155,47 +146,47 @@ msgstr "Nome del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" 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" 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" msgid "Close"
msgstr "Chiudi" msgstr "Chiudi"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Unminimize" msgid "Unminimize"
msgstr "Deminimizza" msgstr "Deminimizza"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:118
msgid "Minimize" msgid "Minimize"
msgstr "Minimizza" msgstr "Minimizza"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Demassimizza" msgstr "Demassimizza"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:125
msgid "Maximize" msgid "Maximize"
msgstr "Massimizza" msgstr "Massimizza"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:428
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizza tutto" msgstr "Minimizza tutto"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:434
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Deminimizza tutto" msgstr "Deminimizza tutto"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:440
msgid "Maximize all" msgid "Maximize all"
msgstr "Massimizza tutto" msgstr "Massimizza tutto"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:448
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Demassimizza tutto" msgstr "Demassimizza tutto"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:456
msgid "Close all" msgid "Close all"
msgstr "Chiudi tutto" msgstr "Chiudi tutto"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:734
msgid "Window List" msgid "Window List"
msgstr "Elenco finestre" msgstr "Elenco finestre"
@@ -212,7 +203,7 @@ msgstr ""
"delle finestre. I possibili valori sono \"never\", \"auto\" e \"always\"." "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/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" msgid "Show windows from all workspaces"
msgstr "Mostra le finestre di tutti gli spazi di lavoro" 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 " "Indica se mostrare l'elenco delle finestre su tutti i monitor collegato o "
"solo su quello primario." "solo su quello primario."
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:29
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Raggruppamento finestre" msgstr "Raggruppamento finestre"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:58
msgid "Never group windows" msgid "Never group windows"
msgstr "Non raggruppare le finestre" msgstr "Non raggruppare le finestre"
#: extensions/window-list/prefs.js:64 #: extensions/window-list/prefs.js:59
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Raggruppare le finestre quando c'è poco spazio" msgstr "Raggruppare le finestre quando c'è poco spazio"
#: extensions/window-list/prefs.js:65 #: extensions/window-list/prefs.js:60
msgid "Always group windows" msgid "Always group windows"
msgstr "Raggruppare sempre le finestre" msgstr "Raggruppare sempre le finestre"
#: extensions/window-list/prefs.js:81 #: extensions/window-list/prefs.js:94
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostrare su tutti i monitor" msgstr "Mostrare su tutti i monitor"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:207
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:213
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicatore spazi di lavoro" msgstr "Indicatore spazi di lavoro"
#: extensions/workspace-indicator/prefs.js:33 #: extensions/workspace-indicator/prefs.js:34
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Nomi degli spazi di lavoro" msgstr "Nomi degli spazi di lavoro"
#: extensions/workspace-indicator/prefs.js:66 #: extensions/workspace-indicator/prefs.js:67
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Spazio di lavoro %d" msgstr "Spazio di lavoro %d"
#: extensions/workspace-indicator/prefs.js:207 #: extensions/workspace-indicator/prefs.js:218
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Aggiungi spazio di lavoro" msgstr "Aggiungi spazio di lavoro"
+3 -11
View File
@@ -1,12 +1,12 @@
# gnome-shell-extensions ja.po # 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. # This file is distributed under the same license as the gnome-shell-extensions package.
# Takeshi AIHANA <takeshi.aihana@gmail.com>, 2011. # Takeshi AIHANA <takeshi.aihana@gmail.com>, 2011.
# Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2011, 2013, 2015 # Jiro Matsuzawa <jmatsuzawa@gnome.org>, 2011, 2013, 2015
# Nishio Futoshi <fut_nis@d3.dion.ne.jp>, 2013. # Nishio Futoshi <fut_nis@d3.dion.ne.jp>, 2013.
# Ikuya Awashiro <ikuya@fruitsbasket.info>, 2014. # Ikuya Awashiro <ikuya@fruitsbasket.info>, 2014.
# Hajime Taira <htaira@redhat.com>, 2014, 2015. # Hajime Taira <htaira@redhat.com>, 2014, 2015.
# sicklylife <translation@sicklylife.jp>, 2019-2020, 2022. # sicklylife <translation@sicklylife.jp>, 2019-2020.
# #
msgid "" msgid ""
msgstr "" msgstr ""
@@ -14,7 +14,7 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2020-05-28 00:55+0000\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" "Last-Translator: sicklylife <translation@sicklylife.jp>\n"
"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n" "Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
"Language: ja\n" "Language: ja\n"
@@ -31,14 +31,6 @@ msgstr "GNOME クラシック"
msgid "This session logs you into GNOME Classic" 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 クラシック on Wayland"
#: data/gnome-classic-xorg.desktop.in:3
msgid "GNOME Classic on Xorg"
msgstr "GNOME クラシック on Xorg"
#: extensions/apps-menu/extension.js:113 #: extensions/apps-menu/extension.js:113
msgid "Favorites" msgid "Favorites"
msgstr "お気に入り" msgstr "お気に入り"

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