Compare commits
308 Commits
debian/46.
...
50.alpha
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6cadcd0674 | ||
|
|
1b2bf601e1 | ||
|
|
2466e352a5 | ||
|
|
7c455cb548 | ||
|
|
8f3baad61e | ||
|
|
59bb24ce2d | ||
|
|
fe11a0d8b9 | ||
|
|
467487c0cf | ||
|
|
43198efbc2 | ||
|
|
69c52fc031 | ||
|
|
2df8fc4fb2 | ||
|
|
bfa3e52c6e | ||
|
|
377467876d | ||
|
|
d80ae21740 | ||
|
|
30347ea701 | ||
|
|
14e847102f | ||
|
|
c0df345bea | ||
|
|
9ae6d55e0d | ||
|
|
a8b5705274 | ||
|
|
93eac46b1d | ||
|
|
57b7f526df | ||
|
|
ef285ea96b | ||
|
|
f6ed0ef74b | ||
|
|
40068b2359 | ||
|
|
4f7b9de4a2 | ||
|
|
9ce153437c | ||
|
|
0bfbd6738e | ||
|
|
437c61ac13 | ||
|
|
027e8c1674 | ||
|
|
d03a2a49f1 | ||
|
|
595a73e171 | ||
|
|
229d39701a | ||
|
|
e9153db954 | ||
|
|
6d45688dc7 | ||
|
|
327bcbae42 | ||
|
|
a3dce37094 | ||
|
|
ecc0932ba4 | ||
|
|
82f99d904d | ||
|
|
b02872eca0 | ||
|
|
8e74914d33 | ||
|
|
497a1546ee | ||
|
|
1143b893e2 | ||
|
|
d426ff10f8 | ||
|
|
77d6867141 | ||
|
|
eeb86824f0 | ||
|
|
b433b00344 | ||
|
|
96031ee1e7 | ||
|
|
f4bf96cbbc | ||
|
|
7d41858bab | ||
|
|
f1e0058e67 | ||
|
|
c03a76bb77 | ||
|
|
ed3db834b3 | ||
|
|
b8baead85b | ||
|
|
9fd7f7a939 | ||
|
|
7466de0f20 | ||
|
|
6f7dabe3f0 | ||
|
|
0f4121ee71 | ||
|
|
8797f13694 | ||
|
|
9e11ec9940 | ||
|
|
3a76b9eec4 | ||
|
|
5a84fe0051 | ||
|
|
01f7a6e32c | ||
|
|
a3d27dd674 | ||
|
|
0081bd0d99 | ||
|
|
c59d6cdad8 | ||
|
|
7d48bcc845 | ||
|
|
76514e8b23 | ||
|
|
1899d502a9 | ||
|
|
762903618d | ||
|
|
b5ac041c1a | ||
|
|
83d7ae031b | ||
|
|
17b37ff577 | ||
|
|
ee2c76de1d | ||
|
|
01d8d4871e | ||
|
|
1186b2a7a0 | ||
|
|
2840a6b364 | ||
|
|
990e340366 | ||
|
|
c9678e89d2 | ||
|
|
53ba3ce620 | ||
|
|
301017904b | ||
|
|
0ad959de1e | ||
|
|
a3ff3c79b2 | ||
|
|
8819ed01c8 | ||
|
|
59e6aefd5e | ||
|
|
7c6c4f0ef9 | ||
|
|
2552c92fe1 | ||
|
|
d6b605e801 | ||
|
|
b0b0f527be | ||
|
|
30f4beb3e1 | ||
|
|
b05eb4eb6d | ||
|
|
e06b1e8236 | ||
|
|
76e4dbae3f | ||
|
|
1d2155b446 | ||
|
|
f68d61eeca | ||
|
|
63e6fec602 | ||
|
|
27d463f572 | ||
|
|
f4e044b4fe | ||
|
|
3b4e241b26 | ||
|
|
019c935647 | ||
|
|
29d11e5879 | ||
|
|
662fe8e144 | ||
|
|
8bf1132bec | ||
|
|
c989fa165c | ||
|
|
881d5aae59 | ||
|
|
d9ff138f9e | ||
|
|
fcf8892bf7 | ||
|
|
082b585ae6 | ||
|
|
898f7b0d6f | ||
|
|
fecd26851f | ||
|
|
8a7d2fd86d | ||
|
|
f1f05b58b9 | ||
|
|
c9838125a1 | ||
|
|
af35772b72 | ||
|
|
61b5bdb4e9 | ||
|
|
aa5df48c45 | ||
|
|
3929dd86bc | ||
|
|
b1b16bcfe1 | ||
|
|
e2b1503acd | ||
|
|
01f7df1e8a | ||
|
|
b7de680805 | ||
|
|
4e50e9f8dc | ||
|
|
459d654b23 | ||
|
|
5a3812e5d6 | ||
|
|
83c41bad30 | ||
|
|
2a45d8c145 | ||
|
|
0f69d7663b | ||
|
|
5d8d3601b4 | ||
|
|
ea77b557e5 | ||
|
|
9f48149346 | ||
|
|
0d1b279a64 | ||
|
|
b30871d105 | ||
|
|
77a11fd9cd | ||
|
|
981e8e42e2 | ||
|
|
4a841dfd49 | ||
|
|
8957f488dc | ||
|
|
e0b68a319e | ||
|
|
3f1aa9f221 | ||
|
|
d9ee5fdf55 | ||
|
|
568826e489 | ||
|
|
fde934fed7 | ||
|
|
2cbab10188 | ||
|
|
a8168d47fa | ||
|
|
ad707e643d | ||
|
|
1218aee87f | ||
|
|
e31d7828e9 | ||
|
|
265935e14b | ||
|
|
b903618050 | ||
|
|
720933b08e | ||
|
|
85ee8829bf | ||
|
|
6df4905286 | ||
|
|
253ddb8642 | ||
|
|
0ca156a2b6 | ||
|
|
7fc2bbb896 | ||
|
|
eb4a17c2c8 | ||
|
|
15ffbf147f | ||
|
|
3201a1f8ac | ||
|
|
3f631c7398 | ||
|
|
84fc1b671f | ||
|
|
e41da8fcae | ||
|
|
6cfdd9db38 | ||
|
|
f12badc7aa | ||
|
|
6e5cef8761 | ||
|
|
0cb409f1c2 | ||
|
|
2c922a6d3a | ||
|
|
1088435120 | ||
|
|
de6b9bf473 | ||
|
|
62e95e4b28 | ||
|
|
c8b54bdf25 | ||
|
|
46a4fa0976 | ||
|
|
97d64614af | ||
|
|
8f75ccae34 | ||
|
|
a81f4f4885 | ||
|
|
8a62e491a8 | ||
|
|
8da874355c | ||
|
|
f0e7358de4 | ||
|
|
c4e344f1d7 | ||
|
|
411da924a7 | ||
|
|
60f30c5bbe | ||
|
|
1506a730c5 | ||
|
|
527ce99851 | ||
|
|
51ce4981c8 | ||
|
|
63ea38a16d | ||
|
|
3bc06bb78f | ||
|
|
832cf0fc84 | ||
|
|
fc265fbe59 | ||
|
|
1459e3d6f9 | ||
|
|
e6bc9fc2fc | ||
|
|
2b4db8095e | ||
|
|
fa3f9bcaee | ||
|
|
3f660ee973 | ||
|
|
f87a25e913 | ||
|
|
228811b873 | ||
|
|
9b34ac1eea | ||
|
|
a725361fc9 | ||
|
|
3461a0523c | ||
|
|
911387bc49 | ||
|
|
93a75dccd7 | ||
|
|
763d66b827 | ||
|
|
3c325c1562 | ||
|
|
dba3de2a8e | ||
|
|
f1671bc206 | ||
|
|
824c2a5cee | ||
|
|
548d7659e1 | ||
|
|
0162644041 | ||
|
|
062a3d21ab | ||
|
|
a5a92026ac | ||
|
|
28fd210f28 | ||
|
|
b14f040386 | ||
|
|
81aade6659 | ||
|
|
9d7d52c1de | ||
|
|
3830985fa9 | ||
|
|
d43abe0869 | ||
|
|
860c56f83e | ||
|
|
2716cb0b98 | ||
|
|
6048971663 | ||
|
|
04cab9954b | ||
|
|
cbb622a099 | ||
|
|
f3b505867f | ||
|
|
7bee509ecd | ||
|
|
b6ac158139 | ||
|
|
9af1a79434 | ||
|
|
fa9e2dc71c | ||
|
|
e94f10ac16 | ||
|
|
0319c6e8cb | ||
|
|
fe1ae49dbe | ||
|
|
353598e6d8 | ||
|
|
36266e5a5a | ||
|
|
f7a371c0bf | ||
|
|
018815d9e9 | ||
|
|
82fd82b30c | ||
|
|
26f5e23faa | ||
|
|
0989cb3836 | ||
|
|
c55df7c239 | ||
|
|
9a840c437c | ||
|
|
f33a833f7c | ||
|
|
7c284b6bdc | ||
|
|
6af5cbe4e0 | ||
|
|
5d6c2a3008 | ||
|
|
7ffe7b9aec | ||
|
|
2e912861f1 | ||
|
|
f8ac973802 | ||
|
|
5bb15ae1cf | ||
|
|
34f379f6c7 | ||
|
|
14d6920dd3 | ||
|
|
3d1c253369 | ||
|
|
b5dd68d6f2 | ||
|
|
93c2c408be | ||
|
|
c2c57c8e29 | ||
|
|
9432ae260b | ||
|
|
69f3132f4c | ||
|
|
4ccffbb27d | ||
|
|
8a9aa6a818 | ||
|
|
017c6470b9 | ||
|
|
1e25fc1b5a | ||
|
|
e28215f38f | ||
|
|
8d06bc8b64 | ||
|
|
9e475cb279 | ||
|
|
cbbb2d2869 | ||
|
|
c72b8b2122 | ||
|
|
c302db7545 | ||
|
|
0554a8e97d | ||
|
|
039c66e7b7 | ||
|
|
7eb00e350e | ||
|
|
f76f9e8220 | ||
|
|
17c963b63f | ||
|
|
5d45a697ce | ||
|
|
ef729f2d66 | ||
|
|
1394e82bd0 | ||
|
|
9e61aaf08c | ||
|
|
6ac76140a5 | ||
|
|
8c014a6b1d | ||
|
|
2fe844f412 | ||
|
|
8185b43d54 | ||
|
|
59ab3f834d | ||
|
|
8b6835c3d6 | ||
|
|
bb5bb70ac5 | ||
|
|
da90d365ec | ||
|
|
02ff72b2f0 | ||
|
|
9c7a086870 | ||
|
|
24ba03fe96 | ||
|
|
69d8d1a335 | ||
|
|
d495a2eed8 | ||
|
|
6b3990457e | ||
|
|
099cff0b95 | ||
|
|
fac7fedfd3 | ||
|
|
6ed1b56526 | ||
|
|
a2ffb1238f | ||
|
|
b55e7a4dc8 | ||
|
|
0c42f162d3 | ||
|
|
01a37c8f26 | ||
|
|
5e88c7d891 | ||
|
|
af23a8491c | ||
|
|
32a454f917 | ||
|
|
63ff5b2ac1 | ||
|
|
a9fff9861b | ||
|
|
89a3daf9fe | ||
|
|
078a5a01ae | ||
|
|
9c8c3495b6 | ||
|
|
25e854dde8 | ||
|
|
64060ef4c5 | ||
|
|
9c97f01bc2 | ||
|
|
8693a8a74c | ||
|
|
47c12c6279 | ||
|
|
e96015b9ea | ||
|
|
d3debab713 | ||
|
|
00045b7396 | ||
|
|
19877302a6 | ||
|
|
56a74abb8a |
17
.editorconfig
Normal file
17
.editorconfig
Normal file
@@ -0,0 +1,17 @@
|
||||
# SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
|
||||
indent_style = space
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.js]
|
||||
indent_size = 4
|
||||
|
||||
[meson.build]
|
||||
indent_size = 2
|
||||
@@ -1,7 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
#
|
||||
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
|
||||
|
||||
extends:
|
||||
- ./lint/eslintrc-gjs.yml
|
||||
- ./lint/eslintrc-shell.yml
|
||||
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
# SPDX-FileCopyrightText: No rights reserved
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
package-lock.json -diff
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -9,4 +9,6 @@ zip-files/
|
||||
*.patch
|
||||
*.sw?
|
||||
.buildconfig
|
||||
.eslintcache
|
||||
.vscode
|
||||
node_modules
|
||||
|
||||
155
.gitlab-ci.yml
155
.gitlab-ci.yml
@@ -3,44 +3,34 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
include:
|
||||
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
|
||||
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
|
||||
- project: 'Infrastructure/openshift-images/gnome-release-service'
|
||||
file: '/ci-templates/release-module.yml'
|
||||
- project: Infrastructure/freedesktop-ci-templates
|
||||
file: templates/fedora.yml
|
||||
- project: Infrastructure/freedesktop-ci-templates
|
||||
file: templates/ci-fairy.yml
|
||||
- project: GNOME/citemplates
|
||||
file: templates/default-rules.yml
|
||||
- component: gitlab.gnome.org/GNOME/citemplates/release-service@master
|
||||
inputs:
|
||||
job-stage: deploy
|
||||
dist-job-name: fedora-dist-tarball
|
||||
tarball-artifact-path: "$TARBALL_ARTIFACT_PATH"
|
||||
|
||||
stages:
|
||||
- pre_review
|
||||
- pre-review
|
||||
- prepare
|
||||
- review
|
||||
- build
|
||||
- deploy
|
||||
|
||||
default:
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/40:2024-02-23.0
|
||||
# Cancel jobs if newer commits are pushed to the branch
|
||||
interruptible: true
|
||||
# Auto-retry jobs in case of infra failures
|
||||
retry:
|
||||
max: 1
|
||||
when:
|
||||
- 'runner_system_failure'
|
||||
- 'stuck_or_timeout_failure'
|
||||
- 'scheduler_failure'
|
||||
- 'api_failure'
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/43:2025-09-10.1
|
||||
|
||||
variables:
|
||||
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
|
||||
LINT_LOG: "eslint-report.xml"
|
||||
MESON_BUILD_DIR: build
|
||||
TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS && $CI_PIPELINE_SOURCE == "push"'
|
||||
when: never
|
||||
- if: '$CI_MERGE_REQUEST_IID'
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
- if: '$CI_COMMIT_BRANCH'
|
||||
|
||||
.pipeline_guard: &pipeline_guard
|
||||
.pipeline-guard:
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
@@ -48,15 +38,14 @@ workflow:
|
||||
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
||||
- when: 'manual'
|
||||
|
||||
.prereview_req: &prereview_req
|
||||
.prereview-req:
|
||||
needs:
|
||||
- check_commit_log
|
||||
- check-merge-request
|
||||
- check-commit-log
|
||||
|
||||
check_commit_log:
|
||||
check-commit-log:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: pre_review
|
||||
stage: pre-review
|
||||
script:
|
||||
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
||||
then
|
||||
@@ -64,7 +53,8 @@ check_commit_log:
|
||||
else
|
||||
echo "Not a merge request" ;
|
||||
fi
|
||||
<<: *pipeline_guard
|
||||
rules:
|
||||
- !reference [.pipeline-guard, rules]
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
@@ -72,54 +62,37 @@ check_commit_log:
|
||||
reports:
|
||||
junit: commit-message-junit-report.xml
|
||||
|
||||
check-merge-request:
|
||||
extends:
|
||||
- .fdo.ci-fairy
|
||||
stage: pre_review
|
||||
script:
|
||||
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
||||
then
|
||||
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
|
||||
else
|
||||
echo "Not a merge request" ;
|
||||
fi
|
||||
<<: *pipeline_guard
|
||||
artifacts:
|
||||
expire_in: 1 week
|
||||
paths:
|
||||
- check-merge-request-report.xml
|
||||
reports:
|
||||
junit: check-merge-request-report.xml
|
||||
|
||||
check-reuse:
|
||||
stage: pre_review
|
||||
stage: pre-review
|
||||
image:
|
||||
name: fsfe/reuse:latest
|
||||
entrypoint: [""]
|
||||
script:
|
||||
- reuse lint
|
||||
|
||||
js_check:
|
||||
js-check:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
needs:
|
||||
- !reference [.prereview-req, needs]
|
||||
script:
|
||||
- gjs-check-syntax
|
||||
|
||||
eslint:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
needs:
|
||||
- !reference [.prereview-req, needs]
|
||||
variables:
|
||||
LINT_LOG: "eslint-report.xml"
|
||||
script:
|
||||
- export NODE_PATH=$(npm root -g)
|
||||
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout
|
||||
- ./tools/run-eslint.sh --output-file "$LINT_LOG" --format junit --stdout
|
||||
artifacts:
|
||||
paths:
|
||||
- ${LINT_LOG}
|
||||
reports:
|
||||
junit: ${LINT_LOG}
|
||||
junit: "$LINT_LOG"
|
||||
|
||||
potfile_js_check:
|
||||
potfile-js-check:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
needs:
|
||||
- !reference [.prereview-req, needs]
|
||||
script:
|
||||
- gjs-check-potfiles
|
||||
artifacts:
|
||||
@@ -128,7 +101,8 @@ potfile_js_check:
|
||||
|
||||
build-bundles:
|
||||
stage: build
|
||||
<<: *prereview_req
|
||||
needs:
|
||||
- !reference [.prereview-req, needs]
|
||||
script:
|
||||
- ./export-zips.sh
|
||||
artifacts:
|
||||
@@ -137,33 +111,28 @@ build-bundles:
|
||||
paths:
|
||||
- zip-files/
|
||||
|
||||
fedora-build:
|
||||
stage: build
|
||||
<<: *prereview_req
|
||||
script:
|
||||
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true
|
||||
- meson compile -C build
|
||||
- meson test -C build
|
||||
- meson install -C build
|
||||
artifacts:
|
||||
paths:
|
||||
- build
|
||||
|
||||
fedora-distinfo:
|
||||
dist-bundles:
|
||||
stage: deploy
|
||||
needs:
|
||||
- fedora-build
|
||||
- build-bundles
|
||||
script:
|
||||
- .gitlab-ci/export-artifact-path build > dist.env
|
||||
artifacts:
|
||||
reports:
|
||||
dotenv: dist.env
|
||||
paths:
|
||||
- build
|
||||
- dist.env
|
||||
- gnome-extensions upload --accept-tos --user "$EGO_USER" --password "$EGO_PASSWORD" zip-files/*.zip
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
fedora-build:
|
||||
stage: build
|
||||
needs:
|
||||
- !reference [.prereview-req, needs]
|
||||
script:
|
||||
- meson setup "$MESON_BUILD_DIR" --werror -Dextension_set=all -Dclassic_mode=true
|
||||
- meson compile -C "$MESON_BUILD_DIR"
|
||||
- meson test -C "$MESON_BUILD_DIR"
|
||||
- meson install -C "$MESON_BUILD_DIR"
|
||||
artifacts:
|
||||
paths:
|
||||
- "$MESON_BUILD_DIR"
|
||||
|
||||
fedora-dist:
|
||||
stage: deploy
|
||||
needs:
|
||||
@@ -171,7 +140,7 @@ fedora-dist:
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: normal
|
||||
script:
|
||||
- meson dist -C build
|
||||
- meson dist -C "$MESON_BUILD_DIR"
|
||||
rules:
|
||||
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||
changes:
|
||||
@@ -180,21 +149,11 @@ fedora-dist:
|
||||
|
||||
fedora-dist-tarball:
|
||||
extends: fedora-dist
|
||||
needs:
|
||||
- fedora-distinfo
|
||||
artifacts:
|
||||
expose_as: 'Get tarball here'
|
||||
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||
when: always
|
||||
paths:
|
||||
- $TARBALL_ARTIFACT_PATH
|
||||
reports:
|
||||
dotenv: dist.env
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
release-module:
|
||||
stage: deploy
|
||||
needs:
|
||||
- fedora-dist-tarball
|
||||
extends: .release-module
|
||||
- "$TARBALL_ARTIFACT_PATH"
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/gjs -m
|
||||
// SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Gio from 'gi://Gio';
|
||||
import {programArgs, programInvocationName, exit} from 'system';
|
||||
|
||||
const [buildDir] = programArgs;
|
||||
if (!buildDir) {
|
||||
printerr(`usage: ${programInvocationName} <build-dir>`);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
const subprocess = Gio.Subprocess.new(
|
||||
['meson', 'introspect', '--projectinfo', buildDir],
|
||||
Gio.SubprocessFlags.STDOUT_PIPE);
|
||||
const [, out] = subprocess.communicate_utf8(null, null);
|
||||
|
||||
const {descriptive_name, version} = JSON.parse(out);
|
||||
print(`TARBALL_ARTIFACT_PATH=${buildDir}/meson-dist/${descriptive_name}-${version}.tar.xz`);
|
||||
@@ -1,58 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
// SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
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);
|
||||
});
|
||||
72
.gitlab/issue_templates/Default.md
Normal file
72
.gitlab/issue_templates/Default.md
Normal file
@@ -0,0 +1,72 @@
|
||||
<!--
|
||||
Please read https://handbook.gnome.org/issues/reporting.html
|
||||
first to ensure that you create a clear and specific issue.
|
||||
-->
|
||||
|
||||
### Which extension
|
||||
|
||||
<!--
|
||||
Which extension is the issue about?
|
||||
|
||||
See the project README for a complete list of extensions:
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell-extensions#extensions
|
||||
|
||||
Do not report issues for any other extensions here.
|
||||
|
||||
Report general issues about gnome-shell's extension support to
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell.
|
||||
|
||||
Report issues with the extensions.gnome.org website to
|
||||
https://gitlab.gnome.org/Infrastructure/extensions-web/
|
||||
-->
|
||||
|
||||
### Affected version
|
||||
|
||||
<!--
|
||||
Provide at least the following information:
|
||||
* Your OS and version
|
||||
* Extension version
|
||||
* Affected GNOME Shell version
|
||||
-->
|
||||
|
||||
### Bug summary
|
||||
|
||||
<!--
|
||||
Provide a short summary of the bug you encountered.
|
||||
-->
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
<!--
|
||||
1. Step one
|
||||
2. Step two
|
||||
3. ...
|
||||
-->
|
||||
|
||||
### What happened
|
||||
|
||||
<!--
|
||||
What did the extension do that was unexpected?
|
||||
-->
|
||||
|
||||
### What did you expect to happen
|
||||
|
||||
<!--
|
||||
What did you expect the extension to do?
|
||||
-->
|
||||
|
||||
### Relevant logs, screenshots, screencasts etc.
|
||||
|
||||
<!--
|
||||
If you have further information, such as technical documentation, logs,
|
||||
screenshots or screencasts related, please provide them here.
|
||||
|
||||
If the bug is a crash, please obtain a stack trace with installed debug
|
||||
symbols (at least for GNOME Shell and Mutter) and attach it to
|
||||
this issue following the instructions on
|
||||
https://handbook.gnome.org/issues/stack-traces.html.
|
||||
-->
|
||||
|
||||
|
||||
<!-- Do not remove the following line. -->
|
||||
/label ~"1. Bug"
|
||||
2
.gitlab/issue_templates/Default.md.license
Normal file
2
.gitlab/issue_templates/Default.md.license
Normal file
@@ -0,0 +1,2 @@
|
||||
SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
47
.gitlab/issue_templates/Feature.md
Normal file
47
.gitlab/issue_templates/Feature.md
Normal file
@@ -0,0 +1,47 @@
|
||||
<!--
|
||||
Please read https://handbook.gnome.org/issues/reporting.html
|
||||
first to ensure that you create a clear and specific issue.
|
||||
-->
|
||||
|
||||
### Which extension
|
||||
|
||||
<!--
|
||||
Which extension is the issue about?
|
||||
|
||||
See the project README for a complete list of extensions:
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell-extensions#extensions
|
||||
|
||||
Do not report issues for any other extensions here.
|
||||
|
||||
Report general issues about gnome-shell's extension support to
|
||||
https://gitlab.gnome.org/GNOME/gnome-shell.
|
||||
|
||||
Report issues with the extensions.gnome.org website to
|
||||
https://gitlab.gnome.org/Infrastructure/extensions-web/
|
||||
-->
|
||||
|
||||
### Feature summary
|
||||
|
||||
<!--
|
||||
Describe what you would like to be able to do with the extension
|
||||
that you currently cannot do.
|
||||
-->
|
||||
|
||||
### How would you like it to work
|
||||
|
||||
<!--
|
||||
If you can think of a way the extension might be able to do this,
|
||||
let us know here.
|
||||
-->
|
||||
|
||||
### Relevant links, screenshots, screencasts etc.
|
||||
|
||||
<!--
|
||||
If you have further information, such as technical documentation,
|
||||
code, mockups or a similar feature in another desktop environments,
|
||||
please provide them here.
|
||||
-->
|
||||
|
||||
|
||||
<!-- Do not remove the following line. -->
|
||||
/label ~"1. Feature"
|
||||
3
.gitlab/issue_templates/Feature.md.license
Normal file
3
.gitlab/issue_templates/Feature.md.license
Normal file
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
|
||||
22
.reuse/dep5
22
.reuse/dep5
@@ -1,22 +0,0 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: gnome-shell-extensions
|
||||
Upstream-Contact: Florian Müllner <fmuellner@gnome.org>
|
||||
Source: https://gitlab.gnome.org/GNOME/gnome-shell-extensions
|
||||
|
||||
Files: NEWS README.md HACKING.md data/HACKING
|
||||
Copyright: No rights reserved
|
||||
License: CC0-1.0
|
||||
|
||||
Files: *.json.in *.desktop.in *.gschema.override
|
||||
Copyright: Florian Müllner <fmuellner@gnome.org>
|
||||
License: GPL-2.0-or-later
|
||||
|
||||
# managed by translation teams
|
||||
Files: po/*.po
|
||||
Copyright: GNOME Translation Teams <i18n@gnome.org>
|
||||
License: GPL-2.0-or-later
|
||||
|
||||
# managed by translation teams
|
||||
Files: po/LINGUAS po/POTFILES.in
|
||||
Copyright: No rights reserved
|
||||
License: CC0-1.0
|
||||
@@ -1,3 +1,9 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
|
||||
SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>"""
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
-->
|
||||
|
||||
## Creating a New Extension
|
||||
|
||||
To create a new extension, add a subdirectory in extensions. Then create
|
||||
@@ -20,9 +26,6 @@ need in gnome-shell.
|
||||
Generally, we follow [GJS coding style][coding-style], which in short is:
|
||||
indent 4 spaces, no tabs, space after comma, no space after function call.
|
||||
|
||||
The Emacs mode line for this
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
|
||||
Imports should be at the top, in two groups, one for standard
|
||||
imports (like imports.lang or imports.dbus) and introspection,
|
||||
the other for Shell API. Within the same group, put everything
|
||||
|
||||
170
LICENSES/CC-BY-SA-4.0.txt
Normal file
170
LICENSES/CC-BY-SA-4.0.txt
Normal file
@@ -0,0 +1,170 @@
|
||||
Creative Commons Attribution-ShareAlike 4.0 International
|
||||
|
||||
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client or other relationship. Creative Commons makes its licenses and related information available on an “as-is” basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms and conditions, or any related information. Creative Commons disclaims all liability for damages resulting from their use to the fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and conditions that creators and other rights holders may use to share original works of authorship and other material subject to copyright and certain other rights specified in the public license below. The following considerations are for informational purposes only, are not exhaustive, and do not form part of our licenses.
|
||||
|
||||
Considerations for licensors: Our public licenses are intended for use by those authorized to give the public permission to use material in ways otherwise restricted by copyright and certain other rights. Our licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they choose before applying it. Licensors should also secure all rights necessary before applying our licenses so that the public can reuse the material as expected. Licensors should clearly mark any material not subject to the license. This includes other CC-licensed material, or material used under an exception or limitation to copyright. More considerations for licensors.
|
||||
|
||||
Considerations for the public: By using one of our public licenses, a licensor grants the public permission to use the licensed material under specified terms and conditions. If the licensor’s permission is not necessary for any reason–for example, because of any applicable exception or limitation to copyright–then that use is not regulated by the license. Our licenses grant only permissions under copyright and certain other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for other reasons, including because others have copyright or other rights in the material. A licensor may make special requests, such as asking that all changes be marked or described.
|
||||
|
||||
Although not required by our licenses, you are encouraged to respect those requests where reasonable. More considerations for the public.
|
||||
|
||||
Creative Commons Attribution-ShareAlike 4.0 International Public License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
|
||||
|
||||
Section 1 – Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
|
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
|
||||
|
||||
d. Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
|
||||
|
||||
e. Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
|
||||
|
||||
f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
|
||||
|
||||
g. License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution and ShareAlike.
|
||||
|
||||
h. Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
|
||||
|
||||
i. Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
j. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
|
||||
|
||||
k. Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
|
||||
|
||||
l. Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
|
||||
|
||||
m. You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
|
||||
|
||||
Section 2 – Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
A. reproduce and Share the Licensed Material, in whole or in part; and
|
||||
|
||||
B. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section 6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
|
||||
|
||||
B. Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply.
|
||||
|
||||
C. No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties.
|
||||
|
||||
Section 3 – License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material (including in modified form), You must:
|
||||
|
||||
A. retain the following if it is supplied by the Licensor with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
||||
|
||||
B. indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
|
||||
|
||||
C. indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
|
||||
|
||||
b. ShareAlike.In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.
|
||||
|
||||
1. The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-SA Compatible License.
|
||||
|
||||
2. You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
|
||||
|
||||
3. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
|
||||
|
||||
Section 4 – Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and
|
||||
|
||||
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
|
||||
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
|
||||
|
||||
Section 5 – Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
|
||||
|
||||
b. To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
|
||||
|
||||
Section 6 – Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
c. For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
|
||||
|
||||
d. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
|
||||
|
||||
e. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
|
||||
|
||||
Section 7 – Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
|
||||
|
||||
Section 8 – Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
|
||||
|
||||
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to apply one of its public licenses to material it publishes and in those instances will be considered the “Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons public license or as otherwise permitted by the Creative Commons policies published at creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative Commons” or any other trademark or logo of Creative Commons without its prior written consent including, without limitation, in connection with any unauthorized modifications to any of its public licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For the avoidance of doubt, this paragraph does not form part of the public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
||||
186
NEWS
186
NEWS
@@ -1,15 +1,189 @@
|
||||
46.2
|
||||
50.alpha
|
||||
========
|
||||
* classic: Drop xorg sessions [Jordan; !283]
|
||||
* classic: Deifne a gnome-session session [Adrian; !3960]
|
||||
* Misc. bug fixes and cleanups [Florian, Jordan; !425, !429, !430, !432, !431,
|
||||
!433, !434, !435, !439]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner, Jordan Petridis, Adrian Vovk
|
||||
|
||||
Translators:
|
||||
BoF ButterflyOfFire [kab], Giannis Antypas [el],
|
||||
Asier Saratsua Garmendia [eu], Hugo Carvalho [pt], twlvnn kraftwerk [bg],
|
||||
Baurzhan Muftakhidinov [kk], Ibai Oihanguren Sala [eu]
|
||||
|
||||
49.0
|
||||
====
|
||||
* apps-menu: Fix a11y of category labels [Florian; !319]
|
||||
* window-list: Fix long-press support [Florian; !320]
|
||||
* Misc. bug fixes and cleanups [Florian; !324]
|
||||
* window-list: Adjust to gnome-shell changes [Florian; !421]
|
||||
* system-monitor: Unbreak on BSD [Antoine; !356]
|
||||
* Misc. bug fixes and cleanups [Florian; !422, !423]
|
||||
|
||||
Contributors:
|
||||
Antoine Jacoutot, Florian Müllner
|
||||
|
||||
Translators:
|
||||
Jiri Grönroos [fi], Aurimas Aurimas Černius [lt]
|
||||
|
||||
49.rc
|
||||
=====
|
||||
|
||||
Translators:
|
||||
Emilio Sepúlveda [ia], Dušan Kazik [sk], Daniel Rusek [cs],
|
||||
Nathan Follens [nl], Piotr Drąg [pl], Balázs Úr [hu], Yosef Or Boczko [he]
|
||||
|
||||
49.beta
|
||||
=======
|
||||
* Misc. bug fixes and cleanups [Florian; !408]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Hugo Carvalho [pt], Jose Riha [sk], Jordi Mas i Hernandez [ca],
|
||||
Scrambled 777 [hi]
|
||||
Anders Jonsson [sv], Makoto Sakaguchi [ja], Danial Behzadi [fa],
|
||||
Jordi Mas i Hernandez [ca]
|
||||
|
||||
49.alpha.1
|
||||
==========
|
||||
* workspaces-indicator, window-list: Better expose workspace names
|
||||
[Florian; !405]
|
||||
* window-list: Animate transition to/from overview [Florian; !412]
|
||||
* Misc. bug fixes and cleanups [Florian; !409, !411, !413]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Martin [sl], Emin Tufan Çetin [tr], Yuri Chornoivan [uk], Luming Zh [zh_CN],
|
||||
Yago Raña [gl], Ekaterine Papava [ka], Vasil Pupkin [be],
|
||||
Álvaro Burns [pt_BR], Sergej A. [ru]
|
||||
|
||||
49.alpha.0
|
||||
==========
|
||||
* windowsNavigator: Fix handling keyboard shortcuts [Daniel; !395]
|
||||
* build: Allow disabling the X11 session [Neal; !396, !400]
|
||||
* Disable X11 session by default [Jordan; !399]
|
||||
* Misc. bug fixes and cleanups [Florian; !398, !406]
|
||||
|
||||
Contributors:
|
||||
Daniel Buch Hansen, Neal Gompa, Florian Müllner, Jordan Petridis
|
||||
|
||||
Translators:
|
||||
Emilio Sepúlveda [ia]
|
||||
|
||||
48.1
|
||||
====
|
||||
|
||||
Translators:
|
||||
Hugo Carvalho [pt], Danial Behzadi [fa]
|
||||
|
||||
48.0
|
||||
====
|
||||
* apps-menu: Fix scrolling items into view on keynav [Victor; !391]
|
||||
* Misc. bug fixes and cleanups [Florian, Stuart; !390, !392]
|
||||
|
||||
Contributors:
|
||||
Stuart Hayhurst, Victor Kareh, Florian Müllner
|
||||
|
||||
48.rc
|
||||
=====
|
||||
* Misc. bug fixes and cleanups [Florian; !385, !388]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Emilio Sepúlveda [ia], Mathews M [ml], Daniel Rusek [cs], Piotr Drąg [pl],
|
||||
Anders Jonsson [sv], Ekaterine Papava [ka], Yuri Chornoivan [uk],
|
||||
Aurimas Černius [lt], Luming Zh [zh_CN], Jiri Grönroos [fi]
|
||||
|
||||
48.beta
|
||||
=======
|
||||
* window-list: Fix regression in chrome tracking [Florian; !379]
|
||||
* Misc. bug fixes and cleanups [Florian; !380]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner, Emilio Sepúlveda
|
||||
|
||||
Translators:
|
||||
Rafael Fontenelle [pt_BR], Emilio Sepúlveda [ia]
|
||||
|
||||
48.alpha
|
||||
========
|
||||
* classic: Add missing top-bar indicators [Florian; !339]
|
||||
* window-list: Fix window state styling [Florian; !342]
|
||||
* window-list: Fix "ignore-workspace" setting getting reset [Florian; !341]
|
||||
* window-list: Allow rearranging window buttons [Florian, Jakub; !338]
|
||||
* window-list: Add workspaces page to preference dialog [Florian; !344]
|
||||
* places-menu: Sync list of places with nautilus [Florian; !340]
|
||||
* places-menu: Fix a11y labelling [Florian; #542]
|
||||
* places-menu: Fix opening drives with mount operations [Florian; !361]
|
||||
* window-list: Fix hiding when entering overview with gestures [Florian; !364]
|
||||
* workspace-indicator: Only show previews of regular windows [Florian; !363]
|
||||
* window-list: Add attention indicator [Florian; !366]
|
||||
* Misc. bug fixes and cleanups [Florian, Bartłomiej; !337, !343, !345, !347,
|
||||
!348, !349, !351, !352, !353, !354, !358, !362, !365, !367, !368, !370, !375]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner, Bartłomiej Piotrowski, Jakub Steiner
|
||||
|
||||
Translators:
|
||||
Fabio Tomat [fur], Martin [sl], Jordi Mas i Hernandez [ca], Vasil Pupkin [be],
|
||||
Nathan Follens [nl], Artur S0 [ru], Марко Костић [sr],
|
||||
Yaron Shahrabani [he], Sabri Ünal [tr], Yi-Jyun Pan [zh_TW]
|
||||
|
||||
47.0
|
||||
====
|
||||
|
||||
Translators:
|
||||
twlvnn kraftwerk [bg], Alexander Shopov [bg], Fran Dieguez [gl],
|
||||
Aurimas Černius [lt], Daniel [es], Andika Triwidada [id],
|
||||
Andi Chandler [en_GB], Ask Hjorth Larsen [da], Aefgh Threenine [th],
|
||||
Dušan Kazik [sk], Rūdolfs Mazurs [lv], Irénée THIRION [fr]
|
||||
|
||||
47.rc
|
||||
=====
|
||||
* Misc. bug fixes and cleanups [Sophie; !333]
|
||||
|
||||
Contributors:
|
||||
Sophie Herold
|
||||
|
||||
Translators:
|
||||
Daniel Șerbănescu [ro], Giannis Antypas [el], Ekaterine Papava [ka],
|
||||
Jordi Mas i Hernandez [ca], Yuri Chornoivan [uk], Jiri Grönroos [fi],
|
||||
Daniel Rusek [cs], Vasil Pupkin [be], Luming Zh [zh_CN], Brage Fuglseth [nb],
|
||||
Asier Sarasua Garmendia [eu], Danial Behzadi [fa], Rafael Fontenelle [pt_BR],
|
||||
Quentin PAGÈS [oc], Anders Jonsson [sv], Jürgen Benvenuti [de],
|
||||
Changwoo Ryu [ko], Hugo Carvalho [pt], Piotr Drąg [pl], Sabri Ünal [tr]
|
||||
|
||||
47.beta
|
||||
=======
|
||||
* window-list: Modernize styling [Jakub; !330]
|
||||
* Include "status-icons" extension [Florian; !194]
|
||||
* Misc. bug fixes and cleanups [Florian; !328, !331, !327]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner, Jakub Steiner
|
||||
|
||||
Translators:
|
||||
Sabri Ünal [tr], Chao-Hsiung Liao [zh_TW]
|
||||
|
||||
47.alpha
|
||||
========
|
||||
* Improve workspace previews in window-list and workspace-indicator
|
||||
[Florian; !307, !316]
|
||||
* apps-menu: Fix a11y of category labels [Florian; !319]
|
||||
* window-list: Fix long-press support [Florian; !320]
|
||||
* window-list: Animate transitions [Florian; !325]
|
||||
* Misc. bug fixes and cleanups [Florian; !315, !321, !324]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Jordi Mas i Hernandez [ca], Martin [sl], Hugo Carvalho [pt], Jose Riha [sk],
|
||||
Scrambled 777 [hi], Artur S0 [ru], Милош Поповић [sr], Yosef Or Boczko [he],
|
||||
Balázs Úr [hu]
|
||||
|
||||
46.1
|
||||
====
|
||||
|
||||
108
README.md
108
README.md
@@ -1,25 +1,34 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
|
||||
SPDX-FileCopyrightText: 2011 Adam Dingle <adam@yorba.org>
|
||||
SPDX-FileCopyrightText: 2011 Vamsi Krishna Brahmajosyula <vamsikrishna.brahmajosyula@gmail.com>
|
||||
SPDX-FileCopyrightText: 2014 Michael Catanzaro <mcatanzaro@gnome.org>
|
||||
SPDX-FileCopyrightText: 2015 Florian Müllner <fmuellner@gnome.org>
|
||||
SPDX-FileCopyrightText: 2019 Fabian P. Schmidt <kerel-fs@gmx.de>
|
||||
SPDX-FileCopyrightText: 2024 Aral Balkan <aral@aralbalkan.com>"""
|
||||
SPDX-License-Identifier: CC-BY-SA-4.0
|
||||
-->
|
||||
|
||||
# GNOME Shell Extensions
|
||||
|
||||
GNOME Shell Extensions is a collection of extensions providing additional
|
||||
and optional functionality to GNOME Shell.
|
||||
|
||||
Since GNOME Shell is not API stable, extensions work only against a very
|
||||
specific version of the shell, usually the same as this package (see
|
||||
"configure --version"). The extensions in this package are supported by GNOME
|
||||
and will be updated to reflect future API changes in GNOME Shell.
|
||||
The extensions in this package are supported by GNOME and will be updated
|
||||
to reflect future API changes in GNOME Shell.
|
||||
|
||||
The GNOME wiki has more information about [GNOME Shell Extensions][project-page],
|
||||
as well as some general information about [GNOME Shell][shell-page].
|
||||
Both the most recent stable release and the previous stable release of
|
||||
GNOME Shell are actively supported, as well as the current development
|
||||
branch.
|
||||
|
||||
Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
||||
Please refer to the [schedule] to see when a new version will be released.
|
||||
|
||||
[schedule]: https://release.gnome.org/calendar
|
||||
|
||||
## Extensions
|
||||
|
||||
* alternate-tab (**OBSOLETE**)
|
||||
|
||||
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
|
||||
This extension is obsolete since GNOME 3.30, see [this blogpost][alternatetab-post]
|
||||
for further details.
|
||||
The following is a complete list of extensions that are provided by this
|
||||
project.
|
||||
|
||||
* apps-menu
|
||||
|
||||
@@ -28,8 +37,7 @@ Bugs should be reported to the GNOME [bug tracking system][bug-tracker].
|
||||
* auto-move-windows
|
||||
|
||||
Lets you manage your workspaces more easily, assigning a specific workspace to
|
||||
each application as soon as it creates a window, in a manner configurable with a
|
||||
GSettings key.
|
||||
each application as soon as it creates a window.
|
||||
|
||||
* drive-menu
|
||||
|
||||
@@ -40,6 +48,11 @@ GSettings key.
|
||||
|
||||
Changes application icons to always launch a new instance when activated.
|
||||
|
||||
* light-style
|
||||
|
||||
Changes the default shell style to "light", while still following the
|
||||
system-wide "dark" preference.
|
||||
|
||||
* native-window-placement
|
||||
|
||||
An alternative algorithm for layouting the thumbnails in the windows overview, that
|
||||
@@ -53,9 +66,17 @@ GSettings key.
|
||||
|
||||
Adds a shortcut for resizing the focus window to a size that is suitable for GNOME Software screenshots. Ctrl + Alt + s cycles forwards through the available sizes and Ctrl + Alt + Shift + s cycles backwards.
|
||||
|
||||
* status-icons
|
||||
|
||||
Show (XEmbed) status icons in the top bar.
|
||||
|
||||
* system-monitor
|
||||
|
||||
Shows system usage information in the top bar.
|
||||
|
||||
* user-theme
|
||||
|
||||
Loads a shell theme from ~/.themes/<name>/gnome-shell.
|
||||
Loads a shell theme from `$XDG_DATA_HOME/themes/<name>/gnome-shell`.
|
||||
|
||||
* window-list
|
||||
|
||||
@@ -69,18 +90,49 @@ GSettings key.
|
||||
|
||||
Adds a simple workspace switcher to the top bar.
|
||||
|
||||
## Default branch
|
||||
### Ex-Extensions
|
||||
|
||||
The default development branch is `main`. If you still have a local
|
||||
checkout under the old name, use:
|
||||
```sh
|
||||
git checkout master
|
||||
git branch -m master main
|
||||
git fetch
|
||||
git branch --unset-upstream
|
||||
git branch -u origin/master
|
||||
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main
|
||||
```
|
||||
Occasionally over the years, some extensions were removed.
|
||||
|
||||
The following list is not complete, but limited to cases that
|
||||
are notable for some reason; either the removal happened
|
||||
relatively recently, or the extension used to be particularly
|
||||
popular in the past.
|
||||
|
||||
* alternate-tab
|
||||
|
||||
Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell.
|
||||
This extension is obsolete since GNOME 3.30, see [this blogpost][alternatetab-post]
|
||||
for further details.
|
||||
|
||||
[alternatetab-post]: https://blogs.gnome.org/fmuellner/2018/10/11/the-future-of-alternatetab-and-why-you-need-not-worry/
|
||||
|
||||
## Reporting bugs
|
||||
|
||||
Bugs should be reported to the [issue tracking system][bug-tracker].
|
||||
|
||||
The [GNOME handbook][bug-handbook] has useful information for creating
|
||||
effective issue reports.
|
||||
|
||||
Please note that the issue tracker is meant to be used for
|
||||
actionable issues only.
|
||||
|
||||
For support questions, feedback on changes or general discussions,
|
||||
you can use:
|
||||
|
||||
- the [#gnome-shell matrix room][matrix-room]
|
||||
- the `Desktop` category or `extensions` and `shell` tags on [GNOME Discourse][discourse]
|
||||
|
||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues
|
||||
[bug-handbook]: https://handbook.gnome.org/issues/reporting.html
|
||||
[matrix-room]: https://matrix.to/#/#gnome-shell:gnome.org
|
||||
[discourse]: https://discourse.gnome.org
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
All interactions with the project should follow the [Code of Conduct][conduct].
|
||||
|
||||
[conduct]: https://conduct.gnome.org/
|
||||
|
||||
## License
|
||||
|
||||
@@ -89,8 +141,4 @@ Public License, version 2 or later. See the [COPYING file][license] for details.
|
||||
Individual extensions may be licensed under different terms, see each source
|
||||
file for details.
|
||||
|
||||
[project-page]: https://wiki.gnome.org/Projects/GnomeShell/Extensions
|
||||
[shell-page]: https://wiki.gnome.org/Projects/GnomeShell
|
||||
[bug-tracker]: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues
|
||||
[license]: COPYING
|
||||
[alternatetab-post]: https://blogs.gnome.org/fmuellner/2018/10/11/the-future-of-alternatetab-and-why-you-need-not-worry/
|
||||
|
||||
48
REUSE.toml
Normal file
48
REUSE.toml
Normal file
@@ -0,0 +1,48 @@
|
||||
# SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
# SPDX-License-Identifier: CC0-1.0
|
||||
|
||||
version = 1
|
||||
SPDX-PackageName = "gnome-shell-extensions"
|
||||
SPDX-PackageSupplier = "Florian Müllner <fmuellner@gnome.org>"
|
||||
SPDX-PackageDownloadLocation = "https://gitlab.gnome.org/GNOME/gnome-shell-extensions"
|
||||
|
||||
[[annotations]]
|
||||
path = "NEWS"
|
||||
SPDX-FileCopyrightText = [
|
||||
"2011 Giovanni Campagna <gcampagna@src.gnome.org>",
|
||||
"2013 Florian Müllner <fmuellner@gnome.org>"
|
||||
]
|
||||
SPDX-License-Identifier = "CC-BY-SA-4.0"
|
||||
|
||||
[[annotations]]
|
||||
path = [
|
||||
"**.json.in",
|
||||
"**.desktop.in",
|
||||
"**.gschema.override",
|
||||
"**.session",
|
||||
"**.session.conf",
|
||||
]
|
||||
SPDX-FileCopyrightText = "Florian Müllner <fmuellner@gnome.org>"
|
||||
SPDX-License-Identifier = "GPL-2.0-or-later"
|
||||
|
||||
[[annotations]]
|
||||
# managed by translation teams
|
||||
path = "po/**.po"
|
||||
SPDX-FileCopyrightText = "GNOME Translation Teams <i18n@gnome.org>"
|
||||
SPDX-License-Identifier = "GPL-2.0-or-later"
|
||||
|
||||
[[annotations]]
|
||||
# managed by translation teams
|
||||
path = ["po/LINGUAS", "po/POTFILES.in"]
|
||||
SPDX-FileCopyrightText = "No rights reserved"
|
||||
SPDX-License-Identifier = "CC0-1.0"
|
||||
|
||||
[[annotations]]
|
||||
path = "tools/package.json"
|
||||
SPDX-FileCopyrightText = "2025 Florian Müllner <fmuellner@gnome.org>"
|
||||
SPDX-License-Identifier = "MIT OR LGPL-2.0-or-later"
|
||||
|
||||
[[annotations]]
|
||||
path = "**package-lock.json"
|
||||
SPDX-FileCopyrightText = "No rights reserved"
|
||||
SPDX-License-Identifier = "CC0-1.0"
|
||||
@@ -6,7 +6,8 @@
|
||||
|
||||
import os, sys
|
||||
from pathlib import Path
|
||||
import argparse, subprocess
|
||||
from xml.etree.ElementTree import ElementTree
|
||||
import argparse
|
||||
|
||||
def check_version(version, file, type='news'):
|
||||
if type == 'news':
|
||||
@@ -16,8 +17,11 @@ def check_version(version, file, type='news'):
|
||||
if not ok:
|
||||
raise Exception("{} does not start with {}".format(file, version))
|
||||
elif type == 'metainfo':
|
||||
subprocess.run(['appstream-util', 'validate-version', file, version],
|
||||
check=True)
|
||||
query = './releases/release[@version="{}"]'.format(version)
|
||||
ok = ElementTree(file=file).find(query) is not None
|
||||
print("{}: {}".format(file, "OK" if ok else "FAILED"))
|
||||
if not ok:
|
||||
raise Exception("{} does not contain release {}".format(file, version))
|
||||
else:
|
||||
raise Exception('Not implemented')
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
To update the gnome-shell-sass submodule to latest upstream commit:
|
||||
git submodule update --rebase
|
||||
@@ -5,6 +5,6 @@
|
||||
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
|
||||
"panel": { "left": ["activities"],
|
||||
"center": [],
|
||||
"right": ["a11y", "keyboard", "dateMenu", "quickSettings"]
|
||||
"right": ["screenRecording", "screenSharing", "dwellClick", "a11y", "keyboard", "dateMenu", "quickSettings"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +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
|
||||
X-GDM-CanRunHeadless=true
|
||||
@@ -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
|
||||
@@ -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 --session gnome-classic
|
||||
TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Classic;GNOME;
|
||||
|
||||
2
data/gnome-classic.session
Normal file
2
data/gnome-classic.session
Normal file
@@ -0,0 +1,2 @@
|
||||
[GNOME Session]
|
||||
Name=GNOME Classic
|
||||
3
data/gnome-classic.session.conf
Normal file
3
data/gnome-classic.session.conf
Normal file
@@ -0,0 +1,3 @@
|
||||
[Unit]
|
||||
Requires=gnome-session-services.target
|
||||
Requires=org.gnome.Shell@classic.service
|
||||
@@ -2,41 +2,20 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
session_desktop_base = 'gnome-classic'
|
||||
session_desktop = 'gnome-classic.desktop'
|
||||
|
||||
session_desktops = [
|
||||
session_desktop_base,
|
||||
session_desktop_base + '-xorg',
|
||||
session_desktop_base + '-wayland',
|
||||
]
|
||||
|
||||
foreach name: session_desktops
|
||||
session_desktop = name + '.desktop'
|
||||
if name.endswith('-xorg')
|
||||
session_instdir = xsessiondir
|
||||
elif name.endswith('-wayland')
|
||||
session_instdir = wlsessiondir
|
||||
else
|
||||
# FIXME: The same target can not be copied into two directories.
|
||||
# There is a workaround in meson/session-post-install.py until proper
|
||||
# solution arises:
|
||||
# https://github.com/mesonbuild/meson/issues/2416
|
||||
session_instdir = xsessiondir
|
||||
#session_instdir = [ xesssiondir, wlsessiondir ]
|
||||
endif
|
||||
i18n.merge_file(
|
||||
input: session_desktop + '.in',
|
||||
output: session_desktop,
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
install_dir: session_instdir,
|
||||
type: 'desktop'
|
||||
)
|
||||
endforeach
|
||||
i18n.merge_file(
|
||||
input: session_desktop + '.in',
|
||||
output: session_desktop,
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
install_dir: wlsessiondir,
|
||||
type: 'desktop',
|
||||
)
|
||||
|
||||
classic_uuids = []
|
||||
foreach e : classic_extensions
|
||||
classic_uuids += e + uuid_suffix
|
||||
classic_uuids += e + uuid_suffix
|
||||
endforeach
|
||||
|
||||
mode_conf = configuration_data()
|
||||
@@ -47,8 +26,18 @@ configure_file(
|
||||
input: mode_file + '.in',
|
||||
output: mode_file,
|
||||
configuration: mode_conf,
|
||||
install_dir: modedir
|
||||
install_dir: modedir,
|
||||
)
|
||||
|
||||
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
|
||||
install_data(classic_override, install_dir: schemadir)
|
||||
|
||||
install_data(
|
||||
'gnome-classic.session',
|
||||
install_dir: sessiondir,
|
||||
)
|
||||
|
||||
install_data(
|
||||
'gnome-classic.session.conf',
|
||||
install_dir: systemd_userunitdir / 'gnome-session@gnome-classic.target.d',
|
||||
)
|
||||
980
debian/changelog
vendored
980
debian/changelog
vendored
@@ -1,980 +0,0 @@
|
||||
gnome-shell-extensions (46.2-3) unstable; urgency=high
|
||||
|
||||
* Add Breaks/Replaces gnome-shell-extension-system-monitor
|
||||
because gnome-shell-extensions now provides this extension
|
||||
and the gsettings schema (Closes: #1077748)
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Thu, 01 Aug 2024 08:56:53 -0400
|
||||
|
||||
gnome-shell-extensions (46.2-2) unstable; urgency=medium
|
||||
|
||||
* Release to unstable
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Fri, 12 Jul 2024 18:33:46 -0400
|
||||
|
||||
gnome-shell-extensions (46.2-1) experimental; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Tue, 28 May 2024 16:19:34 -0400
|
||||
|
||||
gnome-shell-extensions (46.1-2) experimental; urgency=medium
|
||||
|
||||
* Add Depends: gir1.2-gtop-2.0 for system monitor extension (LP: #2063267)
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Tue, 23 Apr 2024 17:34:00 -0400
|
||||
|
||||
gnome-shell-extensions (46.1-1) experimental; urgency=medium
|
||||
|
||||
* New upstream release (LP: #2063054)
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Sun, 21 Apr 2024 16:46:11 -0400
|
||||
|
||||
gnome-shell-extensions (46.0-1) experimental; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Mon, 18 Mar 2024 15:30:21 -0400
|
||||
|
||||
gnome-shell-extensions (45.2-2) experimental; urgency=medium
|
||||
|
||||
* Restore required dh-sequence-gnome build dependency
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Tue, 05 Dec 2023 12:07:50 -0500
|
||||
|
||||
gnome-shell-extensions (45.2-1) experimental; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
* Stop using debian/control.in and dh-sequence-gnome
|
||||
* Update standards version to 4.6.2, no changes needed
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Tue, 05 Dec 2023 10:05:26 -0500
|
||||
|
||||
gnome-shell-extensions (45.1-1) experimental; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Sat, 04 Nov 2023 12:31:26 +0200
|
||||
|
||||
gnome-shell-extensions (45.0-1) experimental; urgency=medium
|
||||
|
||||
* New upstream release
|
||||
|
||||
-- Jeremy Bícha <jbicha@ubuntu.com> Mon, 18 Sep 2023 08:50:25 -0400
|
||||
|
||||
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, it’s 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
|
||||
49
debian/control
vendored
49
debian/control
vendored
@@ -1,49 +0,0 @@
|
||||
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>, Jeremy Bícha <jbicha@ubuntu.com>, Laurent Bigonville <bigon@debian.org>, Marco Trevisan (Treviño) <marco@ubuntu.com>
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
dh-sequence-gnome,
|
||||
libglib2.0-bin,
|
||||
meson (>= 0.58.0),
|
||||
sassc
|
||||
Rules-Requires-Root: no
|
||||
Standards-Version: 4.6.2
|
||||
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-gtop-2.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),
|
||||
gnome-shell-extension-system-monitor (<< 40-7~)
|
||||
Breaks: gnome-shell-common (<< 3.18),
|
||||
gnome-shell-extension-system-monitor (<< 40-7~)
|
||||
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
debian/copyright
vendored
30
debian/copyright
vendored
@@ -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".
|
||||
2
debian/docs
vendored
2
debian/docs
vendored
@@ -1,2 +0,0 @@
|
||||
NEWS
|
||||
README.md
|
||||
17
debian/gbp.conf
vendored
17
debian/gbp.conf
vendored
@@ -1,17 +0,0 @@
|
||||
[DEFAULT]
|
||||
pristine-tar = True
|
||||
debian-branch = debian/latest
|
||||
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
debian/install
vendored
1
debian/install
vendored
@@ -1 +0,0 @@
|
||||
debian/local/gnome-session-classic usr/bin
|
||||
2
debian/local/gnome-session-classic
vendored
2
debian/local/gnome-session-classic
vendored
@@ -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
debian/patches/series
vendored
1
debian/patches/series
vendored
@@ -1 +0,0 @@
|
||||
gnome-session-classic-wrapper-script.patch
|
||||
11
debian/rules
vendored
11
debian/rules
vendored
@@ -1,11 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- \
|
||||
-Dextension_set=all \
|
||||
-Dclassic_mode=true
|
||||
|
||||
override_dh_gnome_clean:
|
||||
1
debian/source/format
vendored
1
debian/source/format
vendored
@@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
||||
5
debian/upstream/metadata
vendored
5
debian/upstream/metadata
vendored
@@ -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
debian/watch
vendored
4
debian/watch
vendored
@@ -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.]+\.?(?:beta|rc)?[\d.]*)@ARCHIVE_EXT@
|
||||
1
eslint.config.js
Symbolic link
1
eslint.config.js
Symbolic link
@@ -0,0 +1 @@
|
||||
tools/eslint.config.js
|
||||
@@ -8,16 +8,16 @@ srcdir=`dirname $0`
|
||||
srcdir=`(cd $srcdir && pwd)`
|
||||
|
||||
builddir=`mktemp -p $srcdir -d _build.XXXXXX` || exit 1
|
||||
installdir=`mktemp -p $srcdir -d _install.XXXXXX` || exit 1
|
||||
destdir=`mktemp -p $srcdir -d _dest.XXXXXX` || exit 1
|
||||
|
||||
meson setup --prefix=$installdir -Dextension_set=all $srcdir $builddir
|
||||
meson install -C $builddir
|
||||
meson setup --prefix=/usr -Dextension_set=all $srcdir $builddir
|
||||
meson install --destdir $destdir -C $builddir
|
||||
|
||||
rm -rf $srcdir/zip-files
|
||||
mkdir $srcdir/zip-files
|
||||
|
||||
extensiondir=$installdir/share/gnome-shell/extensions
|
||||
schemadir=$installdir/share/glib-2.0/schemas
|
||||
extensiondir=$destdir/usr/share/gnome-shell/extensions
|
||||
schemadir=$destdir/usr/share/glib-2.0/schemas
|
||||
|
||||
for f in $extensiondir/*; do
|
||||
name=`basename ${f%%@*}`
|
||||
@@ -39,7 +39,7 @@ for f in $extensiondir/*; do
|
||||
fi
|
||||
|
||||
cp $srcdir/NEWS $srcdir/COPYING $f
|
||||
sources=(NEWS COPYING $(cd $f; ls *.js))
|
||||
sources=(NEWS COPYING $(cd $f; ls *.js *.css 2>/dev/null))
|
||||
|
||||
[ -d $f/icons ] && sources+=(icons)
|
||||
|
||||
@@ -50,4 +50,4 @@ for f in $extensiondir/*; do
|
||||
done
|
||||
|
||||
rm -rf $builddir
|
||||
rm -rf $installdir
|
||||
rm -rf $destdir
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
import Atk from 'gi://Atk';
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
@@ -45,10 +44,11 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
this._app = app;
|
||||
this._button = button;
|
||||
|
||||
this._iconBin = new St.Bin();
|
||||
this.add_child(this._iconBin);
|
||||
this._icon = this.getDragActor();
|
||||
this._icon.style_class = 'icon-dropshadow';
|
||||
this.add_child(this._icon);
|
||||
|
||||
let appLabel = new St.Label({
|
||||
const appLabel = new St.Label({
|
||||
text: app.get_name(),
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
@@ -56,20 +56,17 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
this.add_child(appLabel);
|
||||
this.label_actor = appLabel;
|
||||
|
||||
let textureCache = St.TextureCache.get_default();
|
||||
textureCache.connectObject('icon-theme-changed',
|
||||
() => this._updateIcon(), this);
|
||||
this._updateIcon();
|
||||
|
||||
this._delegate = this;
|
||||
let draggable = DND.makeDraggable(this);
|
||||
const draggable = DND.makeDraggable(this);
|
||||
|
||||
let maybeStartDrag = draggable._maybeStartDrag;
|
||||
const maybeStartDrag = draggable._maybeStartDrag;
|
||||
draggable._maybeStartDrag = event => {
|
||||
if (this._dragEnabled)
|
||||
return maybeStartDrag.call(draggable, event);
|
||||
return false;
|
||||
};
|
||||
|
||||
this.connect('notify::active', this._onActiveChanged.bind(this));
|
||||
}
|
||||
|
||||
activate(event) {
|
||||
@@ -81,10 +78,11 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
Main.overview.hide();
|
||||
}
|
||||
|
||||
setActive(active, params) {
|
||||
if (active)
|
||||
this._button.scrollToButton(this);
|
||||
super.setActive(active, params);
|
||||
_onActiveChanged() {
|
||||
if (!this.active)
|
||||
return;
|
||||
|
||||
this._button.scrollToButton(this);
|
||||
}
|
||||
|
||||
setDragEnabled(enabled) {
|
||||
@@ -96,13 +94,7 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
}
|
||||
|
||||
getDragActorSource() {
|
||||
return this._iconBin;
|
||||
}
|
||||
|
||||
_updateIcon() {
|
||||
let icon = this.getDragActor();
|
||||
icon.style_class = 'icon-dropshadow';
|
||||
this._iconBin.set_child(icon);
|
||||
return this._icon;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +132,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
}
|
||||
|
||||
_isNavigatingSubmenu([x, y]) {
|
||||
let [posX, posY] = this.get_transformed_position();
|
||||
const [posX, posY] = this.get_transformed_position();
|
||||
|
||||
if (this._oldX === -1) {
|
||||
this._oldX = x;
|
||||
@@ -148,8 +140,8 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
return true;
|
||||
}
|
||||
|
||||
let deltaX = Math.abs(x - this._oldX);
|
||||
let deltaY = Math.abs(y - this._oldY);
|
||||
const deltaX = Math.abs(x - this._oldX);
|
||||
const deltaY = Math.abs(y - this._oldY);
|
||||
|
||||
this._oldX = x;
|
||||
this._oldY = y;
|
||||
@@ -179,7 +171,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
// Ensure that the point P always lies below line AC so that we can
|
||||
// only check for triangle ABC.
|
||||
if (posY > y) {
|
||||
let offset = posY - y;
|
||||
const offset = posY - y;
|
||||
y = posY + this.height + offset;
|
||||
}
|
||||
|
||||
@@ -209,7 +201,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
this.hover = true;
|
||||
|
||||
if (this._isNavigatingSubmenu(event.get_coords()))
|
||||
return true;
|
||||
return Clutter.EVENT_STOP;
|
||||
|
||||
this._oldX = -1;
|
||||
this._oldY = -1;
|
||||
@@ -221,7 +213,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
if (targetActor instanceof St.Widget)
|
||||
targetActor.sync_hover();
|
||||
|
||||
return false;
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
|
||||
_onActiveChanged() {
|
||||
@@ -302,15 +294,15 @@ class DesktopTarget extends EventEmitter {
|
||||
}
|
||||
|
||||
async _markTrusted(file) {
|
||||
let modeAttr = Gio.FILE_ATTRIBUTE_UNIX_MODE;
|
||||
let trustedAttr = 'metadata::trusted';
|
||||
let queryFlags = Gio.FileQueryInfoFlags.NONE;
|
||||
let ioPriority = GLib.PRIORITY_DEFAULT;
|
||||
const modeAttr = Gio.FILE_ATTRIBUTE_UNIX_MODE;
|
||||
const trustedAttr = 'metadata::trusted';
|
||||
const queryFlags = Gio.FileQueryInfoFlags.NONE;
|
||||
const ioPriority = GLib.PRIORITY_DEFAULT;
|
||||
|
||||
try {
|
||||
let info = await file.query_info_async(modeAttr, queryFlags, ioPriority, null);
|
||||
|
||||
let mode = info.get_attribute_uint32(modeAttr) | 0o100;
|
||||
const mode = info.get_attribute_uint32(modeAttr) | 0o100;
|
||||
info.set_attribute_uint32(modeAttr, mode);
|
||||
info.set_attribute_string(trustedAttr, 'yes');
|
||||
await file.set_attributes_async(info, queryFlags, ioPriority, null);
|
||||
@@ -335,7 +327,7 @@ class DesktopTarget extends EventEmitter {
|
||||
}
|
||||
|
||||
handleDragOver(source, _actor, _x, _y, _time) {
|
||||
let appInfo = this._getSourceAppInfo(source);
|
||||
const appInfo = this._getSourceAppInfo(source);
|
||||
if (!appInfo)
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
|
||||
@@ -343,16 +335,16 @@ class DesktopTarget extends EventEmitter {
|
||||
}
|
||||
|
||||
acceptDrop(source, _actor, _x, _y, _time) {
|
||||
let appInfo = this._getSourceAppInfo(source);
|
||||
const appInfo = this._getSourceAppInfo(source);
|
||||
if (!appInfo)
|
||||
return false;
|
||||
|
||||
this.emit('app-dropped');
|
||||
|
||||
let desktop = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP);
|
||||
const desktop = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP);
|
||||
|
||||
let src = Gio.File.new_for_path(appInfo.get_filename());
|
||||
let dst = Gio.File.new_for_path(GLib.build_filenamev([desktop, src.get_basename()]));
|
||||
const src = Gio.File.new_for_path(appInfo.get_filename());
|
||||
const dst = Gio.File.new_for_path(GLib.build_filenamev([desktop, src.get_basename()]));
|
||||
|
||||
try {
|
||||
// copy_async() isn't introspectable :-(
|
||||
@@ -460,12 +452,12 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
_onMenuKeyPress(actor, event) {
|
||||
let symbol = event.get_key_symbol();
|
||||
const symbol = event.get_key_symbol();
|
||||
if (symbol === Clutter.KEY_Left || symbol === Clutter.KEY_Right) {
|
||||
let direction = symbol === Clutter.KEY_Left
|
||||
const direction = symbol === Clutter.KEY_Left
|
||||
? Gtk.DirectionType.LEFT : Gtk.DirectionType.RIGHT;
|
||||
if (this.menu.actor.navigate_focus(global.stage.key_focus, direction, false))
|
||||
return true;
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return super._onMenuKeyPress(actor, event);
|
||||
}
|
||||
@@ -488,15 +480,15 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
_loadCategory(categoryId, dir) {
|
||||
let iter = dir.iter();
|
||||
const iter = dir.iter();
|
||||
let nextType;
|
||||
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
|
||||
if (nextType === GMenu.TreeItemType.ENTRY) {
|
||||
let entry = iter.get_entry();
|
||||
const entry = iter.get_entry();
|
||||
let id;
|
||||
try {
|
||||
id = entry.get_desktop_file_id(); // catch non-UTF8 filenames
|
||||
} catch (e) {
|
||||
} catch {
|
||||
continue;
|
||||
}
|
||||
let app = appSys.lookup_app(id);
|
||||
@@ -507,7 +499,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
} else if (nextType === GMenu.TreeItemType.SEPARATOR) {
|
||||
this.applicationsByCategory[categoryId].push('separator');
|
||||
} else if (nextType === GMenu.TreeItemType.DIRECTORY) {
|
||||
let subdir = iter.get_directory();
|
||||
const subdir = iter.get_directory();
|
||||
if (!subdir.get_is_nodisplay())
|
||||
this._loadCategory(categoryId, subdir);
|
||||
}
|
||||
@@ -515,11 +507,11 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
scrollToButton(button) {
|
||||
let appsScrollBoxAdj = this.applicationsScrollBox.get_vadjustment();
|
||||
let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
|
||||
let currentScrollValue = appsScrollBoxAdj.get_value();
|
||||
let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
|
||||
let buttonAlloc = button.get_allocation_box();
|
||||
const appsScrollBoxAdj = this.applicationsScrollBox.get_vadjustment();
|
||||
const appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
|
||||
const currentScrollValue = appsScrollBoxAdj.get_value();
|
||||
const boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
|
||||
const buttonAlloc = button.get_allocation_box();
|
||||
let newScrollValue = currentScrollValue;
|
||||
if (currentScrollValue > buttonAlloc.y1 - 10)
|
||||
newScrollValue = buttonAlloc.y1 - 10;
|
||||
@@ -530,11 +522,11 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
scrollToCatButton(button) {
|
||||
let catsScrollBoxAdj = this.categoriesScrollBox.get_vadjustment();
|
||||
let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
|
||||
let currentScrollValue = catsScrollBoxAdj.get_value();
|
||||
let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
|
||||
let buttonAlloc = button.get_allocation_box();
|
||||
const catsScrollBoxAdj = this.categoriesScrollBox.get_vadjustment();
|
||||
const catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
|
||||
const currentScrollValue = catsScrollBoxAdj.get_value();
|
||||
const boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
|
||||
const buttonAlloc = button.get_allocation_box();
|
||||
let newScrollValue = currentScrollValue;
|
||||
if (currentScrollValue > buttonAlloc.y1 - 10)
|
||||
newScrollValue = buttonAlloc.y1 - 10;
|
||||
@@ -545,10 +537,12 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
_createLayout() {
|
||||
let section = new PopupMenu.PopupMenuSection();
|
||||
const section = new PopupMenu.PopupMenuSection();
|
||||
this.menu.addMenuItem(section);
|
||||
this.mainBox = new St.BoxLayout({layoutManager: new MainLayout()});
|
||||
this.leftBox = new St.BoxLayout({vertical: true});
|
||||
this.leftBox = new St.BoxLayout({
|
||||
orientation: Clutter.Orientation.VERTICAL,
|
||||
});
|
||||
this.applicationsScrollBox = new St.ScrollView({
|
||||
style_class: 'apps-menu vfade',
|
||||
x_expand: true,
|
||||
@@ -558,9 +552,13 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
});
|
||||
this.leftBox.add_child(this.categoriesScrollBox);
|
||||
|
||||
this.applicationsBox = new St.BoxLayout({vertical: true});
|
||||
this.applicationsBox = new St.BoxLayout({
|
||||
orientation: Clutter.Orientation.VERTICAL,
|
||||
});
|
||||
this.applicationsScrollBox.set_child(this.applicationsBox);
|
||||
this.categoriesBox = new St.BoxLayout({vertical: true});
|
||||
this.categoriesBox = new St.BoxLayout({
|
||||
orientation: Clutter.Orientation.VERTICAL,
|
||||
});
|
||||
this.categoriesScrollBox.set_child(this.categoriesBox);
|
||||
|
||||
this.mainBox.add_child(this.leftBox);
|
||||
@@ -575,20 +573,20 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
// Load categories
|
||||
this.applicationsByCategory = {};
|
||||
this._tree.load_sync();
|
||||
let root = this._tree.get_root_directory();
|
||||
const root = this._tree.get_root_directory();
|
||||
let categoryMenuItem = new CategoryMenuItem(this, null);
|
||||
this.categoriesBox.add_child(categoryMenuItem);
|
||||
let iter = root.iter();
|
||||
const iter = root.iter();
|
||||
let nextType;
|
||||
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
|
||||
if (nextType !== GMenu.TreeItemType.DIRECTORY)
|
||||
continue;
|
||||
|
||||
let dir = iter.get_directory();
|
||||
const dir = iter.get_directory();
|
||||
if (dir.get_is_nodisplay())
|
||||
continue;
|
||||
|
||||
let categoryId = dir.get_menu_id();
|
||||
const categoryId = dir.get_menu_id();
|
||||
this.applicationsByCategory[categoryId] = [];
|
||||
this._loadCategory(categoryId, dir);
|
||||
if (this.applicationsByCategory[categoryId].length > 0) {
|
||||
@@ -617,7 +615,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
|
||||
_displayButtons(apps) {
|
||||
for (let i = 0; i < apps.length; i++) {
|
||||
let app = apps[i];
|
||||
const app = apps[i];
|
||||
let item;
|
||||
if (app instanceof Shell.App)
|
||||
item = this._applicationsButtons.get(app);
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
// Start apps on custom workspaces
|
||||
|
||||
import Shell from 'gi://Shell';
|
||||
|
||||
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
@@ -31,7 +28,7 @@ class WindowMover {
|
||||
this._appConfigs.clear();
|
||||
|
||||
this._settings.get_strv('application-list').forEach(v => {
|
||||
let [appId, num] = v.split(':');
|
||||
const [appId, num] = v.split(':');
|
||||
this._appConfigs.set(appId, parseInt(num) - 1);
|
||||
});
|
||||
|
||||
@@ -39,15 +36,15 @@ class WindowMover {
|
||||
}
|
||||
|
||||
_updateAppData() {
|
||||
let ids = [...this._appConfigs.keys()];
|
||||
let removedApps = [...this._appData.keys()]
|
||||
const ids = [...this._appConfigs.keys()];
|
||||
const removedApps = [...this._appData.keys()]
|
||||
.filter(a => !ids.includes(a.id));
|
||||
removedApps.forEach(app => {
|
||||
app.disconnectObject(this);
|
||||
this._appData.delete(app);
|
||||
});
|
||||
|
||||
let addedApps = ids
|
||||
const addedApps = ids
|
||||
.map(id => this._appSystem.lookup_app(id))
|
||||
.filter(app => app && !this._appData.has(app));
|
||||
addedApps.forEach(app => {
|
||||
@@ -71,7 +68,7 @@ class WindowMover {
|
||||
return;
|
||||
|
||||
// ensure we have the required number of workspaces
|
||||
let workspaceManager = global.workspace_manager;
|
||||
const workspaceManager = global.workspace_manager;
|
||||
for (let i = workspaceManager.n_workspaces; i <= workspaceNum; i++) {
|
||||
window.change_workspace_by_index(i - 1, false);
|
||||
workspaceManager.append_new_workspace(false, 0);
|
||||
@@ -81,8 +78,8 @@ class WindowMover {
|
||||
}
|
||||
|
||||
_appWindowsChanged(app) {
|
||||
let data = this._appData.get(app);
|
||||
let windows = app.get_windows();
|
||||
const data = this._appData.get(app);
|
||||
const windows = app.get_windows();
|
||||
|
||||
// If get_compositor_private() returns non-NULL on a removed windows,
|
||||
// the window still exists and is just moved to a different workspace
|
||||
@@ -92,7 +89,7 @@ class WindowMover {
|
||||
return !windows.includes(w) && w.get_compositor_private() !== null;
|
||||
}));
|
||||
|
||||
let workspaceNum = this._appConfigs.get(app.id);
|
||||
const workspaceNum = this._appConfigs.get(app.id);
|
||||
windows.filter(w => !data.windows.includes(w)).forEach(window => {
|
||||
this._moveWindow(window, workspaceNum);
|
||||
});
|
||||
|
||||
@@ -3,11 +3,9 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
// Start apps on custom workspaces
|
||||
|
||||
import Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GioUnix from 'gi://GioUnix';
|
||||
import GLib from 'gi://GLib';
|
||||
import GObject from 'gi://GObject';
|
||||
import Gtk from 'gi://Gtk';
|
||||
@@ -45,11 +43,11 @@ class NewItemModel extends GObject.Object {
|
||||
class Rule extends GObject.Object {
|
||||
static [GObject.properties] = {
|
||||
'app-info': GObject.ParamSpec.object(
|
||||
'app-info', 'app-info', 'app-info',
|
||||
'app-info', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
Gio.DesktopAppInfo),
|
||||
GioUnix.DesktopAppInfo),
|
||||
'workspace': GObject.ParamSpec.uint(
|
||||
'workspace', 'workspace', 'workspace',
|
||||
'workspace', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
1, WORKSPACE_MAX, 1),
|
||||
};
|
||||
@@ -121,7 +119,7 @@ class RulesList extends GObject.Object {
|
||||
this.#rules = [];
|
||||
for (const stringRule of this.#settings.get_strv(SETTINGS_KEY)) {
|
||||
const [id, workspace] = stringRule.split(':');
|
||||
const appInfo = Gio.DesktopAppInfo.new(id);
|
||||
const appInfo = GioUnix.DesktopAppInfo.new(id);
|
||||
if (appInfo)
|
||||
this.#rules.push(new Rule({appInfo, workspace}));
|
||||
else
|
||||
@@ -196,7 +194,7 @@ class AutoMoveSettingsWidget extends Adw.PreferencesGroup {
|
||||
class WorkspaceSelector extends Gtk.Widget {
|
||||
static [GObject.properties] = {
|
||||
'number': GObject.ParamSpec.uint(
|
||||
'number', 'number', 'number',
|
||||
'number', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
1, WORKSPACE_MAX, 1),
|
||||
};
|
||||
|
||||
@@ -39,11 +39,11 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
|
||||
this.mount = mount;
|
||||
|
||||
let ejectIcon = new St.Icon({
|
||||
const ejectIcon = new St.Icon({
|
||||
icon_name: 'media-eject-symbolic',
|
||||
style_class: 'popup-menu-icon',
|
||||
});
|
||||
let ejectButton = new St.Button({
|
||||
const ejectButton = new St.Button({
|
||||
child: ejectIcon,
|
||||
style_class: 'button',
|
||||
});
|
||||
@@ -63,7 +63,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
if (this.mount.is_shadowed())
|
||||
return false;
|
||||
|
||||
let volume = this.mount.get_volume();
|
||||
const volume = this.mount.get_volume();
|
||||
|
||||
if (volume)
|
||||
return volume.get_identifier('class') !== 'network';
|
||||
@@ -87,7 +87,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
}
|
||||
|
||||
_eject() {
|
||||
let unmountArgs = [
|
||||
const unmountArgs = [
|
||||
Gio.MountUnmountFlags.NONE,
|
||||
new ShellMountOperation.ShellMountOperation(this.mount).mountOp,
|
||||
null, // Gio.Cancellable
|
||||
@@ -120,13 +120,13 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
|
||||
_reportFailure(exception) {
|
||||
// TRANSLATORS: %s is the filesystem name
|
||||
let msg = _('Ejecting drive “%s” failed:').format(this.mount.get_name());
|
||||
const msg = _('Ejecting drive “%s” failed:').format(this.mount.get_name());
|
||||
Main.notifyError(msg, exception.message);
|
||||
}
|
||||
|
||||
activate(event) {
|
||||
let uri = this.mount.get_root().get_uri();
|
||||
let context = global.create_app_launch_context(event.get_time(), -1);
|
||||
const uri = this.mount.get_root().get_uri();
|
||||
const context = global.create_app_launch_context(event.get_time(), -1);
|
||||
Gio.AppInfo.launch_default_for_uri(uri, context);
|
||||
|
||||
super.activate(event);
|
||||
@@ -141,7 +141,7 @@ class DriveMenu extends PanelMenu.Button {
|
||||
constructor() {
|
||||
super(0.5, _('Removable devices'));
|
||||
|
||||
let icon = new St.Icon({
|
||||
const icon = new St.Icon({
|
||||
icon_name: 'media-eject-symbolic',
|
||||
style_class: 'system-status-icon',
|
||||
});
|
||||
@@ -162,8 +162,8 @@ class DriveMenu extends PanelMenu.Button {
|
||||
|
||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
this.menu.addAction(_('Open Files'), event => {
|
||||
let appSystem = Shell.AppSystem.get_default();
|
||||
let app = appSystem.lookup_app('org.gnome.Nautilus.desktop');
|
||||
const appSystem = Shell.AppSystem.get_default();
|
||||
const app = appSystem.lookup_app('org.gnome.Nautilus.desktop');
|
||||
app.activate_full(-1, event.get_time());
|
||||
});
|
||||
|
||||
@@ -178,7 +178,7 @@ class DriveMenu extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
_addMount(mount) {
|
||||
let item = new MountMenuItem(mount);
|
||||
const item = new MountMenuItem(mount);
|
||||
this._mounts.unshift(item);
|
||||
this.menu.addMenuItem(item, 0);
|
||||
|
||||
@@ -187,7 +187,7 @@ class DriveMenu extends PanelMenu.Button {
|
||||
|
||||
_removeMount(mount) {
|
||||
for (let i = 0; i < this._mounts.length; i++) {
|
||||
let item = this._mounts[i];
|
||||
const item = this._mounts[i];
|
||||
if (item.mount === mount) {
|
||||
item.destroy();
|
||||
this._mounts.splice(i, 1);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Launch new instance",
|
||||
"name": "Launch New Instance",
|
||||
"description": "Always launch a new instance when clicking in the dash or the application view.\nThis extension is part of Classic Mode and is officially supported by GNOME. Please do not report bugs using the form below, use GNOME's GitLab instance instead.",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
|
||||
@@ -16,18 +16,20 @@ foreach e : enabled_extensions
|
||||
metadata_conf.set('gschemaname', 'org.gnome.shell.extensions.' + e)
|
||||
metadata_conf.set('gettext_domain', gettext_domain)
|
||||
metadata_conf.set('shell_current', shell_version)
|
||||
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_data = []
|
||||
|
||||
subdir(e)
|
||||
|
||||
install_data (extension_sources + extension_data,
|
||||
install_dir: join_paths(extensiondir, uuid)
|
||||
install_data(
|
||||
extension_sources + extension_data,
|
||||
install_dir: join_paths(extensiondir, uuid),
|
||||
)
|
||||
endforeach
|
||||
|
||||
install_data (extension_schemas,
|
||||
install_dir: schemadir
|
||||
)
|
||||
install_data(extension_schemas, install_dir: schemadir)
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Clutter from 'gi://Clutter';
|
||||
|
||||
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
@@ -30,7 +29,7 @@ class Rect {
|
||||
}
|
||||
|
||||
union(rect2) {
|
||||
let dest = this.copy();
|
||||
const dest = this.copy();
|
||||
if (rect2.x < dest.x) {
|
||||
dest.width += dest.x - rect2.x;
|
||||
dest.x = rect2.x;
|
||||
@@ -48,7 +47,7 @@ class Rect {
|
||||
}
|
||||
|
||||
adjusted(dx, dy, dx2, dy2) {
|
||||
let dest = this.copy();
|
||||
const dest = this.copy();
|
||||
dest.x += dx;
|
||||
dest.y += dy;
|
||||
dest.width += -dx + dx2;
|
||||
@@ -95,16 +94,16 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
|
||||
// As we are using pseudo-random movement (See "slot") we need to make sure the list
|
||||
// is always sorted the same way no matter which window is currently active.
|
||||
|
||||
let areaRect = new Rect(area.x, area.y, area.width, area.height);
|
||||
const areaRect = new Rect(area.x, area.y, area.width, area.height);
|
||||
let bounds = areaRect.copy();
|
||||
let clones = layout.windows;
|
||||
const clones = layout.windows;
|
||||
|
||||
let direction = 0;
|
||||
let directions = [];
|
||||
let rects = [];
|
||||
const directions = [];
|
||||
const rects = [];
|
||||
for (let i = 0; i < clones.length; i++) {
|
||||
// save rectangles into 4-dimensional arrays representing two corners of the rectangular: [left_x, top_y, right_x, bottom_y]
|
||||
let rect = clones[i].boundingBox;
|
||||
const rect = clones[i].boundingBox;
|
||||
rects[i] = new Rect(rect.x, rect.y, rect.width, rect.height);
|
||||
bounds = bounds.union(rects[i]);
|
||||
|
||||
@@ -121,10 +120,10 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
|
||||
overlap = false;
|
||||
for (let i = 0; i < rects.length; i++) {
|
||||
for (let j = 0; j < rects.length; j++) {
|
||||
let adjustments = [-1, -1, 1, 1]
|
||||
const adjustments = [-1, -1, 1, 1]
|
||||
.map(v => (v *= WINDOW_PLACEMENT_NATURAL_GAPS));
|
||||
let iAdjusted = rects[i].adjusted(...adjustments);
|
||||
let jAdjusted = rects[j].adjusted(...adjustments);
|
||||
const iAdjusted = rects[i].adjusted(...adjustments);
|
||||
const jAdjusted = rects[j].adjusted(...adjustments);
|
||||
if (i !== j && iAdjusted.overlap(jAdjusted)) {
|
||||
loopCounter++;
|
||||
overlap = true;
|
||||
@@ -133,8 +132,8 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
|
||||
|
||||
// Determine pushing direction
|
||||
let iCenter = rects[i].center();
|
||||
let jCenter = rects[j].center();
|
||||
let diff = [jCenter[0] - iCenter[0], jCenter[1] - iCenter[1]];
|
||||
const jCenter = rects[j].center();
|
||||
const diff = [jCenter[0] - iCenter[0], jCenter[1] - iCenter[1]];
|
||||
|
||||
// Prevent dividing by zero and non-movement
|
||||
if (diff[0] === 0 && diff[1] === 0)
|
||||
@@ -211,8 +210,7 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
|
||||
} while (overlap && loopCounter < WINDOW_PLACEMENT_NATURAL_MAX_TRANSLATIONS);
|
||||
|
||||
// Work out scaling by getting the most top-left and most bottom-right window coords.
|
||||
let scale;
|
||||
scale = Math.min(
|
||||
const scale = Math.min(
|
||||
areaRect.width / bounds.width,
|
||||
areaRect.height / bounds.height,
|
||||
1.0);
|
||||
@@ -229,7 +227,7 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
|
||||
|
||||
|
||||
// rescale to workspace
|
||||
let slots = [];
|
||||
const slots = [];
|
||||
for (let i = 0; i < rects.length; i++) {
|
||||
rects[i].x = rects[i].x * scale + areaRect.x;
|
||||
rects[i].y = rects[i].y * scale + areaRect.y;
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
import Clutter from 'gi://Clutter';
|
||||
import GObject from 'gi://GObject';
|
||||
import St from 'gi://St';
|
||||
@@ -20,32 +19,17 @@ import {PlacesManager} from './placeDisplay.js';
|
||||
|
||||
const N_ = x => x;
|
||||
|
||||
const PLACE_ICON_SIZE = 16;
|
||||
|
||||
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
class PlaceMenuItem extends PopupMenu.PopupImageMenuItem {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(info) {
|
||||
super({
|
||||
super(info.name, info.icon, {
|
||||
style_class: 'place-menu-item',
|
||||
});
|
||||
this._info = info;
|
||||
|
||||
this._icon = new St.Icon({
|
||||
gicon: info.icon,
|
||||
icon_size: PLACE_ICON_SIZE,
|
||||
});
|
||||
this.add_child(this._icon);
|
||||
|
||||
this._label = new St.Label({
|
||||
text: info.name,
|
||||
x_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_child(this._label);
|
||||
|
||||
if (info.isRemovable()) {
|
||||
this._ejectIcon = new St.Icon({
|
||||
icon_name: 'media-eject-symbolic',
|
||||
@@ -70,8 +54,8 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
}
|
||||
|
||||
_propertiesChanged(info) {
|
||||
this._icon.gicon = info.icon;
|
||||
this._label.text = info.name;
|
||||
this.setIcon(info.icon);
|
||||
this.label.text = info.name;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,7 +74,7 @@ class PlacesMenu extends PanelMenu.Button {
|
||||
constructor() {
|
||||
super(0.5, _('Places'));
|
||||
|
||||
let label = new St.Label({
|
||||
const label = new St.Label({
|
||||
text: _('Places'),
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
@@ -102,7 +86,7 @@ class PlacesMenu extends PanelMenu.Button {
|
||||
this._sections = { };
|
||||
|
||||
for (let i = 0; i < SECTIONS.length; i++) {
|
||||
let id = SECTIONS[i];
|
||||
const id = SECTIONS[i];
|
||||
this._sections[id] = new PopupMenu.PopupMenuSection();
|
||||
this.placesManager.connect(`${id}-updated`, () => {
|
||||
this._redisplay(id);
|
||||
@@ -126,7 +110,7 @@ class PlacesMenu extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
_create(id) {
|
||||
let places = this.placesManager.get(id);
|
||||
const places = this.placesManager.get(id);
|
||||
|
||||
for (let i = 0; i < places.length; i++)
|
||||
this._sections[id].addMenuItem(new PlaceMenuItem(places[i]));
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- 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';
|
||||
@@ -24,13 +23,6 @@ Gio._promisify(Gio.File.prototype, 'mount_enclosing_volume');
|
||||
|
||||
const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
|
||||
|
||||
const Hostname1Iface = '<node> \
|
||||
<interface name="org.freedesktop.hostname1"> \
|
||||
<property name="PrettyHostname" type="s" access="read" /> \
|
||||
</interface> \
|
||||
</node>';
|
||||
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
|
||||
|
||||
class PlaceInfo extends EventEmitter {
|
||||
constructor(...params) {
|
||||
super();
|
||||
@@ -61,15 +53,15 @@ class PlaceInfo extends EventEmitter {
|
||||
return;
|
||||
}
|
||||
|
||||
let source = {
|
||||
get_icon: () => this.icon,
|
||||
const source = {
|
||||
get_drive: () => null,
|
||||
};
|
||||
let op = new ShellMountOperation.ShellMountOperation(source);
|
||||
const op = new ShellMountOperation.ShellMountOperation(source);
|
||||
try {
|
||||
await this.file.mount_enclosing_volume(0, op.mountOp, null);
|
||||
|
||||
if (tryMount)
|
||||
this._ensureMountAndLaunch(context, false);
|
||||
this._ensureMountAndLaunch(context, false).catch(logError);
|
||||
} catch (e) {
|
||||
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
|
||||
Main.notifyError(_('Failed to mount volume for “%s”').format(this.name), e.message);
|
||||
@@ -80,8 +72,8 @@ class PlaceInfo extends EventEmitter {
|
||||
}
|
||||
|
||||
launch(timestamp) {
|
||||
let launchContext = global.create_app_launch_context(timestamp, -1);
|
||||
this._ensureMountAndLaunch(launchContext, true);
|
||||
const launchContext = global.create_app_launch_context(timestamp, -1);
|
||||
this._ensureMountAndLaunch(launchContext, true).catch(logError);
|
||||
}
|
||||
|
||||
getIcon() {
|
||||
@@ -91,7 +83,7 @@ class PlaceInfo extends EventEmitter {
|
||||
null,
|
||||
(file, result) => {
|
||||
try {
|
||||
let info = file.query_info_finish(result);
|
||||
const info = file.query_info_finish(result);
|
||||
this.icon = info.get_symbolic_icon();
|
||||
this.emit('changed');
|
||||
} catch (e) {
|
||||
@@ -120,7 +112,7 @@ class PlaceInfo extends EventEmitter {
|
||||
|
||||
_getFileName() {
|
||||
try {
|
||||
let info = this.file.query_info('standard::display-name', 0, null);
|
||||
const info = this.file.query_info('standard::display-name', 0, null);
|
||||
return info.get_display_name();
|
||||
} catch (e) {
|
||||
if (e instanceof Gio.IOErrorEnum)
|
||||
@@ -130,44 +122,20 @@ class PlaceInfo extends EventEmitter {
|
||||
}
|
||||
}
|
||||
|
||||
class RootInfo extends PlaceInfo {
|
||||
_init() {
|
||||
super._init('devices', Gio.File.new_for_path('/'), _('Computer'));
|
||||
class NautilusSpecialInfo extends PlaceInfo {
|
||||
constructor(file, name, icon) {
|
||||
super('special', file, name, icon);
|
||||
|
||||
let busName = 'org.freedesktop.hostname1';
|
||||
let objPath = '/org/freedesktop/hostname1';
|
||||
new Hostname1(Gio.DBus.system, busName, objPath, (obj, error) => {
|
||||
if (error)
|
||||
return;
|
||||
|
||||
this._proxy = obj;
|
||||
this._proxy.connectObject('g-properties-changed',
|
||||
this._propertiesChanged.bind(this), this);
|
||||
this._propertiesChanged(obj);
|
||||
});
|
||||
const appSystem = Shell.AppSystem.get_default();
|
||||
this._app = appSystem.lookup_app('org.gnome.Nautilus.desktop');
|
||||
}
|
||||
|
||||
getIcon() {
|
||||
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'});
|
||||
}
|
||||
|
||||
_propertiesChanged(proxy) {
|
||||
// GDBusProxy will emit a g-properties-changed when hostname1 goes down
|
||||
// ignore it
|
||||
if (proxy.g_name_owner) {
|
||||
this.name = proxy.PrettyHostname || _('Computer');
|
||||
this.emit('changed');
|
||||
}
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this._proxy?.disconnectObject(this);
|
||||
this._proxy = null;
|
||||
super.destroy();
|
||||
launch(timestamp) {
|
||||
const launchContext = global.create_app_launch_context(timestamp, -1);
|
||||
this._app.appInfo.launch([this.file], launchContext);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class PlaceDeviceInfo extends PlaceInfo {
|
||||
_init(kind, mount) {
|
||||
this._mount = mount;
|
||||
@@ -183,7 +151,7 @@ class PlaceDeviceInfo extends PlaceInfo {
|
||||
}
|
||||
|
||||
eject() {
|
||||
let unmountArgs = [
|
||||
const unmountArgs = [
|
||||
Gio.MountUnmountFlags.NONE,
|
||||
new ShellMountOperation.ShellMountOperation(this._mount).mountOp,
|
||||
null, // Gio.Cancellable
|
||||
@@ -215,7 +183,7 @@ class PlaceDeviceInfo extends PlaceInfo {
|
||||
}
|
||||
|
||||
_reportFailure(exception) {
|
||||
let msg = _('Ejecting drive “%s” failed:').format(this._mount.get_name());
|
||||
const msg = _('Ejecting drive “%s” failed:').format(this._mount.get_name());
|
||||
Main.notifyError(msg, exception.message);
|
||||
}
|
||||
}
|
||||
@@ -235,7 +203,7 @@ class PlaceVolumeInfo extends PlaceInfo {
|
||||
this._volume.mount(0, null, null, (volume, result) => {
|
||||
volume.mount_finish(result);
|
||||
|
||||
let mount = volume.get_mount();
|
||||
const mount = volume.get_mount();
|
||||
this.file = mount.get_root();
|
||||
super.launch(timestamp);
|
||||
});
|
||||
@@ -246,14 +214,6 @@ class PlaceVolumeInfo extends PlaceInfo {
|
||||
}
|
||||
}
|
||||
|
||||
const DEFAULT_DIRECTORIES = [
|
||||
GLib.UserDirectory.DIRECTORY_DOCUMENTS,
|
||||
GLib.UserDirectory.DIRECTORY_PICTURES,
|
||||
GLib.UserDirectory.DIRECTORY_MUSIC,
|
||||
GLib.UserDirectory.DIRECTORY_DOWNLOAD,
|
||||
GLib.UserDirectory.DIRECTORY_VIDEOS,
|
||||
];
|
||||
|
||||
export class PlacesManager extends EventEmitter {
|
||||
constructor() {
|
||||
super();
|
||||
@@ -268,6 +228,12 @@ export class PlacesManager extends EventEmitter {
|
||||
this._settings = new Gio.Settings({schema_id: BACKGROUND_SCHEMA});
|
||||
this._settings.connectObject('changed::show-desktop-icons',
|
||||
() => this._updateSpecials(), this);
|
||||
|
||||
this._privacySettings = new Gio.Settings({
|
||||
schema_id: 'org.gnome.desktop.privacy',
|
||||
});
|
||||
this._privacySettings.connectObject('changed::remember-recent-files',
|
||||
() => this._updateSpecials(), this);
|
||||
this._updateSpecials();
|
||||
|
||||
/*
|
||||
@@ -301,7 +267,7 @@ export class PlacesManager extends EventEmitter {
|
||||
GLib.PRIORITY_DEFAULT, 100, () => {
|
||||
this._bookmarkTimeoutId = 0;
|
||||
this._reloadBookmarks();
|
||||
return false;
|
||||
return GLib.SOURCE_REMOVE;
|
||||
});
|
||||
});
|
||||
|
||||
@@ -313,6 +279,9 @@ export class PlacesManager extends EventEmitter {
|
||||
this._settings?.disconnectObject(this);
|
||||
this._settings = null;
|
||||
|
||||
this._privacySettings.disconnectObject(this);
|
||||
this._privacySettings = null;
|
||||
|
||||
this._volumeMonitor.disconnectObject(this);
|
||||
|
||||
if (this._monitor)
|
||||
@@ -321,74 +290,92 @@ export class PlacesManager extends EventEmitter {
|
||||
GLib.source_remove(this._bookmarkTimeoutId);
|
||||
}
|
||||
|
||||
_shouldShowRecent() {
|
||||
const vfs = Gio.Vfs.get_default();
|
||||
const schemes = vfs.get_supported_uri_schemes();
|
||||
return this._privacySettings.get_boolean('remember-recent-files') &&
|
||||
schemes.includes('recent');
|
||||
}
|
||||
|
||||
_updateSpecials() {
|
||||
this._places.special.forEach(p => p.destroy());
|
||||
this._places.special = [];
|
||||
|
||||
let homePath = GLib.get_home_dir();
|
||||
const appSystem = Shell.AppSystem.get_default();
|
||||
const nautilusApp = appSystem.lookup_app('org.gnome.Nautilus.desktop');
|
||||
const defaultFm = Gio.AppInfo.get_default_for_type('inode/directory', true);
|
||||
const showNautilusSpecials =
|
||||
nautilusApp && defaultFm && nautilusApp.appInfo.equal(defaultFm);
|
||||
|
||||
const homeFile = Gio.File.new_for_path(GLib.get_home_dir());
|
||||
|
||||
this._places.special.push(new PlaceInfo(
|
||||
'special',
|
||||
Gio.File.new_for_path(homePath),
|
||||
homeFile,
|
||||
_('Home')));
|
||||
|
||||
let specials = [];
|
||||
let dirs = DEFAULT_DIRECTORIES.slice();
|
||||
|
||||
if (this._settings.get_boolean('show-desktop-icons'))
|
||||
dirs.push(GLib.UserDirectory.DIRECTORY_DESKTOP);
|
||||
|
||||
for (let i = 0; i < dirs.length; i++) {
|
||||
let specialPath = GLib.get_user_special_dir(dirs[i]);
|
||||
if (!specialPath || specialPath === homePath)
|
||||
continue;
|
||||
|
||||
let file = Gio.File.new_for_path(specialPath), info;
|
||||
try {
|
||||
info = new PlaceInfo('special', file);
|
||||
} catch (e) {
|
||||
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||
continue;
|
||||
throw e;
|
||||
}
|
||||
|
||||
specials.push(info);
|
||||
if (this._shouldShowRecent()) {
|
||||
this._places.special.push(new PlaceInfo(
|
||||
'special',
|
||||
Gio.File.new_for_uri('recent:///'),
|
||||
_('Recent')));
|
||||
}
|
||||
|
||||
specials.sort((a, b) => GLib.utf8_collate(a.name, b.name));
|
||||
this._places.special = this._places.special.concat(specials);
|
||||
if (showNautilusSpecials) {
|
||||
this._places.special.push(new NautilusSpecialInfo(
|
||||
Gio.File.new_for_uri('starred:///'),
|
||||
_('Starred'),
|
||||
'starred-symbolic'));
|
||||
}
|
||||
|
||||
if (this._settings.get_boolean('show-desktop-icons')) {
|
||||
const desktopPath = GLib.get_user_special_dir(
|
||||
GLib.UserDirectory.DIRECTORY_DESKTOP);
|
||||
const desktopFile = desktopPath
|
||||
? Gio.File.new_for_path(desktopPath)
|
||||
: null;
|
||||
|
||||
if (desktopFile && !desktopFile.equal(homeFile)) {
|
||||
this._places.special.push(
|
||||
new PlaceInfo('special', desktopFile));
|
||||
}
|
||||
}
|
||||
|
||||
if (showNautilusSpecials) {
|
||||
this._places.special.push(new NautilusSpecialInfo(
|
||||
Gio.File.new_for_uri('x-network-view:///'),
|
||||
_('Network'),
|
||||
'network-workgroup-symbolic'));
|
||||
}
|
||||
|
||||
this._places.special.push(new PlaceInfo(
|
||||
'special',
|
||||
Gio.File.new_for_uri('trash:///'),
|
||||
_('Trash')));
|
||||
|
||||
this.emit('special-updated');
|
||||
}
|
||||
|
||||
_updateMounts() {
|
||||
let networkMounts = [];
|
||||
let networkVolumes = [];
|
||||
const networkMounts = [];
|
||||
const networkVolumes = [];
|
||||
|
||||
this._places.devices.forEach(p => p.destroy());
|
||||
this._places.devices = [];
|
||||
this._places.network.forEach(p => p.destroy());
|
||||
this._places.network = [];
|
||||
|
||||
/* Add standard places */
|
||||
this._places.devices.push(new RootInfo());
|
||||
this._places.network.push(new PlaceInfo(
|
||||
'network',
|
||||
Gio.File.new_for_uri('network:///'),
|
||||
_('Browse Network'),
|
||||
'network-workgroup-symbolic'));
|
||||
|
||||
/* first go through all connected drives */
|
||||
let drives = this._volumeMonitor.get_connected_drives();
|
||||
const drives = this._volumeMonitor.get_connected_drives();
|
||||
for (let i = 0; i < drives.length; i++) {
|
||||
let volumes = drives[i].get_volumes();
|
||||
const volumes = drives[i].get_volumes();
|
||||
|
||||
for (let j = 0; j < volumes.length; j++) {
|
||||
let identifier = volumes[j].get_identifier('class');
|
||||
const identifier = volumes[j].get_identifier('class');
|
||||
if (identifier && identifier.includes('network')) {
|
||||
networkVolumes.push(volumes[j]);
|
||||
} else {
|
||||
let mount = volumes[j].get_mount();
|
||||
const mount = volumes[j].get_mount();
|
||||
if (mount)
|
||||
this._addMount('devices', mount);
|
||||
}
|
||||
@@ -396,23 +383,23 @@ export class PlacesManager extends EventEmitter {
|
||||
}
|
||||
|
||||
/* add all volumes that is not associated with a drive */
|
||||
let volumes = this._volumeMonitor.get_volumes();
|
||||
const volumes = this._volumeMonitor.get_volumes();
|
||||
for (let i = 0; i < volumes.length; i++) {
|
||||
if (volumes[i].get_drive())
|
||||
continue;
|
||||
|
||||
let identifier = volumes[i].get_identifier('class');
|
||||
const identifier = volumes[i].get_identifier('class');
|
||||
if (identifier && identifier.includes('network')) {
|
||||
networkVolumes.push(volumes[i]);
|
||||
} else {
|
||||
let mount = volumes[i].get_mount();
|
||||
const mount = volumes[i].get_mount();
|
||||
if (mount)
|
||||
this._addMount('devices', mount);
|
||||
}
|
||||
}
|
||||
|
||||
/* add mounts that have no volume (/etc/mtab mounts, ftp, sftp,...) */
|
||||
let mounts = this._volumeMonitor.get_mounts();
|
||||
const mounts = this._volumeMonitor.get_mounts();
|
||||
for (let i = 0; i < mounts.length; i++) {
|
||||
if (mounts[i].is_shadowed())
|
||||
continue;
|
||||
@@ -420,7 +407,7 @@ export class PlacesManager extends EventEmitter {
|
||||
if (mounts[i].get_volume())
|
||||
continue;
|
||||
|
||||
let root = mounts[i].get_default_location();
|
||||
const root = mounts[i].get_default_location();
|
||||
if (!root.is_native()) {
|
||||
networkMounts.push(mounts[i]);
|
||||
continue;
|
||||
@@ -429,7 +416,7 @@ export class PlacesManager extends EventEmitter {
|
||||
}
|
||||
|
||||
for (let i = 0; i < networkVolumes.length; i++) {
|
||||
let mount = networkVolumes[i].get_mount();
|
||||
const mount = networkVolumes[i].get_mount();
|
||||
if (mount) {
|
||||
networkMounts.push(mount);
|
||||
continue;
|
||||
@@ -446,7 +433,7 @@ export class PlacesManager extends EventEmitter {
|
||||
}
|
||||
|
||||
_findBookmarksFile() {
|
||||
let paths = [
|
||||
const paths = [
|
||||
GLib.build_filenamev([GLib.get_user_config_dir(), 'gtk-3.0', 'bookmarks']),
|
||||
GLib.build_filenamev([GLib.get_home_dir(), '.gtk-bookmarks']),
|
||||
];
|
||||
@@ -462,19 +449,19 @@ export class PlacesManager extends EventEmitter {
|
||||
_reloadBookmarks() {
|
||||
this._bookmarks = [];
|
||||
|
||||
let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
|
||||
let lines = content.split('\n');
|
||||
const content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
|
||||
const lines = content.split('\n');
|
||||
|
||||
let bookmarks = [];
|
||||
const bookmarks = [];
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
let line = lines[i];
|
||||
let components = line.split(' ');
|
||||
let [bookmark] = components;
|
||||
const line = lines[i];
|
||||
const components = line.split(' ');
|
||||
const [bookmark] = components;
|
||||
|
||||
if (!bookmark)
|
||||
continue;
|
||||
|
||||
let file = Gio.File.new_for_uri(bookmark);
|
||||
const file = Gio.File.new_for_uri(bookmark);
|
||||
if (file.is_native() && !file.query_exists(null))
|
||||
continue;
|
||||
|
||||
@@ -509,30 +496,12 @@ export class PlacesManager extends EventEmitter {
|
||||
}
|
||||
|
||||
_addMount(kind, mount) {
|
||||
let devItem;
|
||||
|
||||
try {
|
||||
devItem = new PlaceDeviceInfo(kind, mount);
|
||||
} catch (e) {
|
||||
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||
return;
|
||||
throw e;
|
||||
}
|
||||
|
||||
const devItem = new PlaceDeviceInfo(kind, mount);
|
||||
this._places[kind].push(devItem);
|
||||
}
|
||||
|
||||
_addVolume(kind, volume) {
|
||||
let volItem;
|
||||
|
||||
try {
|
||||
volItem = new PlaceVolumeInfo(kind, volume);
|
||||
} catch (e) {
|
||||
if (e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND))
|
||||
return;
|
||||
throw e;
|
||||
}
|
||||
|
||||
const volItem = new PlaceVolumeInfo(kind, volume);
|
||||
this._places[kind].push(volItem);
|
||||
}
|
||||
|
||||
|
||||
@@ -63,21 +63,22 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
/**
|
||||
* @param {Meta.Display} display - the display
|
||||
* @param {Meta.Window=} window - for per-window bindings, the window
|
||||
* @param {Clutter.Event} event - the triggering event
|
||||
* @param {Meta.KeyBinding} binding - the key binding
|
||||
*/
|
||||
_cycleScreenshotSizes(display, window, binding) {
|
||||
_cycleScreenshotSizes(display, window, event, binding) {
|
||||
const backwards = binding.is_reversed();
|
||||
|
||||
// Unmaximize first
|
||||
if (window.get_maximized() !== 0)
|
||||
window.unmaximize(Meta.MaximizeFlags.BOTH);
|
||||
if (window.is_maximized())
|
||||
window.unmaximize();
|
||||
|
||||
let workArea = window.get_work_area_current_monitor();
|
||||
let outerRect = window.get_frame_rect();
|
||||
const workArea = window.get_work_area_current_monitor();
|
||||
const outerRect = window.get_frame_rect();
|
||||
|
||||
// Double both axes if on a hidpi display
|
||||
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
let scaledSizes = this.SIZES.map(size => size.map(wh => wh * scaleFactor))
|
||||
const scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
const scaledSizes = this.SIZES.map(size => size.map(wh => wh * scaleFactor))
|
||||
.filter(([w, h]) => w <= workArea.width && h <= workArea.height);
|
||||
|
||||
// Find the nearest 16:9 size for the current window size
|
||||
@@ -85,10 +86,10 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
let nearestError;
|
||||
|
||||
for (let i = 0; i < scaledSizes.length; i++) {
|
||||
let [width, height] = scaledSizes[i];
|
||||
const [width, height] = scaledSizes[i];
|
||||
|
||||
// get the best initial window size
|
||||
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
|
||||
const error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
|
||||
if (nearestIndex === undefined || error < nearestError) {
|
||||
nearestIndex = i;
|
||||
nearestError = error;
|
||||
@@ -96,8 +97,8 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
}
|
||||
|
||||
// get the next size up or down from ideal
|
||||
let newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length;
|
||||
let [newWidth, newHeight] = scaledSizes.at(newIndex);
|
||||
const newIndex = (nearestIndex + (backwards ? -1 : 1)) % scaledSizes.length;
|
||||
const [newWidth, newHeight] = scaledSizes.at(newIndex);
|
||||
|
||||
// Push the window onscreen if it would be resized offscreen
|
||||
let newX = outerRect.x;
|
||||
@@ -119,7 +120,7 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
*/
|
||||
_notifySizeChange(window) {
|
||||
const {scaleFactor} = St.ThemeContext.get_for_stage(global.stage);
|
||||
let newOuterRect = window.get_frame_rect();
|
||||
const newOuterRect = window.get_frame_rect();
|
||||
let message = '%d×%d'.format(
|
||||
newOuterRect.width / scaleFactor,
|
||||
newOuterRect.height / scaleFactor);
|
||||
@@ -127,7 +128,7 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
// The new size might have been constrained by geometry hints (e.g. for
|
||||
// a terminal) - in that case, include the actual ratio to the message
|
||||
// we flash
|
||||
let actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
|
||||
const actualNumerator = 9 * newOuterRect.width / newOuterRect.height;
|
||||
if (Math.abs(actualNumerator - 16) > 0.01)
|
||||
message += ' (%.2f:9)'.format(actualNumerator);
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Screenshot Window Sizer",
|
||||
"description": "Resize windows for GNOME Software screenshots",
|
||||
"description": "Resize windows for GNOME Software screenshots with Ctrl+Alt+s shortcut",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
91
extensions/status-icons/extension.js
Normal file
91
extensions/status-icons/extension.js
Normal file
@@ -0,0 +1,91 @@
|
||||
// SPDX-FileCopyrightText: 2018 Adel Gadllah <adel.gadllah@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2018 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Shell from 'gi://Shell';
|
||||
import St from 'gi://St';
|
||||
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import {Button as PanelButton} from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
|
||||
const PANEL_ICON_SIZE = 16;
|
||||
|
||||
const STANDARD_TRAY_ICON_IMPLEMENTATIONS = [
|
||||
'bluetooth-applet',
|
||||
'gnome-sound-applet',
|
||||
'nm-applet',
|
||||
'gnome-power-manager',
|
||||
'keyboard',
|
||||
'a11y-keyboard',
|
||||
'kbd-scrolllock',
|
||||
'kbd-numlock',
|
||||
'kbd-capslock',
|
||||
'ibus-ui-gtk',
|
||||
];
|
||||
|
||||
export default class SysTray {
|
||||
constructor() {
|
||||
this._icons = new Map();
|
||||
this._tray = null;
|
||||
}
|
||||
|
||||
_onTrayIconAdded(o, icon) {
|
||||
const wmClass = icon.wm_class ? icon.wm_class.toLowerCase() : '';
|
||||
if (STANDARD_TRAY_ICON_IMPLEMENTATIONS.includes(wmClass))
|
||||
return;
|
||||
|
||||
const button = new PanelButton(0.5, null, true);
|
||||
|
||||
const scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
const iconSize = PANEL_ICON_SIZE * scaleFactor;
|
||||
|
||||
icon.set({
|
||||
width: iconSize,
|
||||
height: iconSize,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
|
||||
const iconBin = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
style_class: 'system-status-icon',
|
||||
});
|
||||
iconBin.add_child(icon);
|
||||
button.add_child(iconBin);
|
||||
|
||||
this._icons.set(icon, button);
|
||||
|
||||
button.connect('button-release-event',
|
||||
(actor, event) => icon.click(event));
|
||||
button.connect('key-press-event',
|
||||
(actor, event) => icon.click(event));
|
||||
|
||||
const role = `${icon}`;
|
||||
Main.panel.addToStatusArea(role, button);
|
||||
}
|
||||
|
||||
_onTrayIconRemoved(o, icon) {
|
||||
const button = this._icons.get(icon);
|
||||
button?.destroy();
|
||||
this._icons.delete(icon);
|
||||
}
|
||||
|
||||
enable() {
|
||||
this._tray = new Shell.TrayManager();
|
||||
this._tray.connect('tray-icon-added',
|
||||
this._onTrayIconAdded.bind(this));
|
||||
this._tray.connect('tray-icon-removed',
|
||||
this._onTrayIconRemoved.bind(this));
|
||||
this._tray.manage_screen(Main.panel);
|
||||
}
|
||||
|
||||
disable() {
|
||||
this._icons.forEach(button => button.destroy());
|
||||
this._icons.clear();
|
||||
|
||||
this._tray.unmanage_screen();
|
||||
this._tray = null;
|
||||
}
|
||||
}
|
||||
9
extensions/status-icons/meson.build
Normal file
9
extensions/status-icons/meson.build
Normal file
@@ -0,0 +1,9 @@
|
||||
# SPDX-FileCopyrightText: 2018 Florian Müllner <fmuellner@gnome.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
extension_data += configure_file(
|
||||
input: metadata_name + '.in',
|
||||
output: metadata_name,
|
||||
configuration: metadata_conf
|
||||
)
|
||||
10
extensions/status-icons/metadata.json.in
Normal file
10
extensions/status-icons/metadata.json.in
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Status Icons",
|
||||
"description": "Show status icons in the top bar",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -361,6 +361,7 @@ class Indicator extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
constructor(settings) {
|
||||
GTop.glibtop_init();
|
||||
super(0.5, _('System stats'));
|
||||
|
||||
this._settings = settings;
|
||||
|
||||
@@ -5,9 +5,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
// Load shell theme from ~/.local/share/themes/name/gnome-shell
|
||||
|
||||
import Gio from 'gi://Gio';
|
||||
|
||||
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
@@ -36,7 +33,7 @@ export default class ThemeManager extends Extension {
|
||||
|
||||
_changeTheme() {
|
||||
let stylesheet = null;
|
||||
let themeName = this._settings.get_string(SETTINGS_KEY);
|
||||
const themeName = this._settings.get_string(SETTINGS_KEY);
|
||||
|
||||
if (themeName) {
|
||||
const stylesheetPaths = getThemeDirs()
|
||||
@@ -46,7 +43,7 @@ export default class ThemeManager extends Extension {
|
||||
.map(dir => `${dir}/${themeName}.css`));
|
||||
|
||||
stylesheet = stylesheetPaths.find(path => {
|
||||
let file = Gio.file_new_for_path(path);
|
||||
const file = Gio.file_new_for_path(path);
|
||||
return file.query_exists(null);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
|
||||
// we use async/await here to not block the mainloop, not to parallelize
|
||||
/* eslint-disable no-await-in-loop */
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,5 +12,33 @@ extension_data += files(
|
||||
'stylesheet-light.css'
|
||||
)
|
||||
|
||||
extension_sources += files('prefs.js', 'workspaceIndicator.js')
|
||||
transform_stylesheet = [
|
||||
'sed', '-E',
|
||||
'-e', 's:^\.(workspace-indicator):.window-list-\\1:',
|
||||
'-e', '/^@import/d',
|
||||
'@INPUT@',
|
||||
]
|
||||
|
||||
workspaceIndicatorSources = [
|
||||
configure_file(
|
||||
input: '../workspace-indicator/workspaceIndicator.js',
|
||||
output: '@PLAINNAME@',
|
||||
copy: true,
|
||||
),
|
||||
configure_file(
|
||||
input: '../workspace-indicator/stylesheet-dark.css',
|
||||
output: 'stylesheet-workspace-switcher-dark.css',
|
||||
command: transform_stylesheet,
|
||||
capture: true,
|
||||
),
|
||||
configure_file(
|
||||
input: '../workspace-indicator/stylesheet-light.css',
|
||||
output: 'stylesheet-workspace-switcher-light.css',
|
||||
command: transform_stylesheet,
|
||||
capture: true,
|
||||
),
|
||||
files('../workspace-indicator/workspacePrefs.js'),
|
||||
]
|
||||
|
||||
extension_sources += files('prefs.js') + workspaceIndicatorSources
|
||||
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
|
||||
@@ -36,5 +36,9 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||
only on the primary one.
|
||||
</description>
|
||||
</key>
|
||||
<key name="embed-previews" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show workspace previews in window list</summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
@@ -12,13 +11,18 @@ import Gtk from 'gi://Gtk';
|
||||
|
||||
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
|
||||
|
||||
class WindowListPrefsWidget extends Adw.PreferencesPage {
|
||||
import {WorkspacesPage} from './workspacePrefs.js';
|
||||
|
||||
class WindowListPage extends Adw.PreferencesPage {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(settings) {
|
||||
super();
|
||||
super({
|
||||
title: _('Window List'),
|
||||
icon_name: 'focus-windows-symbolic',
|
||||
});
|
||||
|
||||
this._actionGroup = new Gio.SimpleActionGroup();
|
||||
this.insert_action_group('window-list', this._actionGroup);
|
||||
@@ -30,6 +34,8 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
|
||||
this._settings.create_action('show-on-all-monitors'));
|
||||
this._actionGroup.add_action(
|
||||
this._settings.create_action('display-all-workspaces'));
|
||||
this._actionGroup.add_action(
|
||||
this._settings.create_action('embed-previews'));
|
||||
|
||||
const groupingGroup = new Adw.PreferencesGroup({
|
||||
title: _('Window Grouping'),
|
||||
@@ -58,34 +64,24 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
|
||||
const miscGroup = new Adw.PreferencesGroup();
|
||||
this.add(miscGroup);
|
||||
|
||||
let toggle = new Gtk.Switch({
|
||||
action_name: 'window-list.show-on-all-monitors',
|
||||
valign: Gtk.Align.CENTER,
|
||||
});
|
||||
let row = new Adw.ActionRow({
|
||||
let row = new Adw.SwitchRow({
|
||||
title: _('Show on all monitors'),
|
||||
activatable_widget: toggle,
|
||||
action_name: 'window-list.show-on-all-monitors',
|
||||
});
|
||||
row.add_suffix(toggle);
|
||||
miscGroup.add(row);
|
||||
|
||||
toggle = new Gtk.Switch({
|
||||
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({
|
||||
row = new Adw.SwitchRow({
|
||||
title: _('Show windows from all workspaces'),
|
||||
activatable_widget: toggle,
|
||||
action_name: 'window-list.display-all-workspaces',
|
||||
});
|
||||
row.add_suffix(toggle);
|
||||
miscGroup.add(row);
|
||||
}
|
||||
}
|
||||
|
||||
export default class WindowListPrefs extends ExtensionPreferences {
|
||||
getPreferencesWidget() {
|
||||
return new WindowListPrefsWidget(this.getSettings());
|
||||
fillPreferencesWindow(window) {
|
||||
const settings = this.getSettings();
|
||||
window.add(new WindowListPage(settings));
|
||||
window.add(new WorkspacesPage(settings));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
@import url("stylesheet-workspace-switcher-dark.css");
|
||||
|
||||
.window-list-workspace-indicator.previews {
|
||||
-natural-hpadding: 0 !important;
|
||||
-minimum-hpadding: 0 !important;
|
||||
}
|
||||
|
||||
.window-list {
|
||||
spacing: 2px;
|
||||
@@ -16,10 +22,19 @@
|
||||
height: 2.45em;
|
||||
}
|
||||
|
||||
.window-button {
|
||||
.window-button,
|
||||
.window-button-drag-actor {
|
||||
padding: 4px, 3px;
|
||||
}
|
||||
|
||||
.window-button-drag-actor {
|
||||
background-color: #444;
|
||||
border-radius: 7px;
|
||||
border-width: 2px;
|
||||
border-color: #fff;
|
||||
box-shadow: 0 1px 2px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.window-button:first-child:ltr {
|
||||
padding-left: 2px;
|
||||
}
|
||||
@@ -33,38 +48,45 @@
|
||||
}
|
||||
|
||||
.window-button > StWidget {
|
||||
color: #bbb;
|
||||
background-color: #1d1d1d;
|
||||
color: #fff;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
padding: 3px 6px 1px;
|
||||
transition: 100ms ease;
|
||||
}
|
||||
|
||||
.window-button > StWidget {
|
||||
.window-button > StWidget,
|
||||
.window-list .placeholder {
|
||||
-st-natural-width: 18.75em;
|
||||
max-width: 18.75em;
|
||||
}
|
||||
|
||||
.window-list .placeholder {
|
||||
border: 1px solid rgba(255,255,255,0.4);
|
||||
border-radius: 7px;
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.window-button:hover > StWidget {
|
||||
color: #fff;
|
||||
background-color: #303030;
|
||||
}
|
||||
|
||||
.window-button:active > StWidget,
|
||||
.window-button:focus > StWidget {
|
||||
color: #fff;
|
||||
background-color: #3f3f3f;
|
||||
background-color: st-lighten(#303030, 5%);
|
||||
}
|
||||
|
||||
.window-button.focused > StWidget {
|
||||
color: #fff;
|
||||
background-color: #3f3f3f;
|
||||
background-color: #5b5b5b;
|
||||
}
|
||||
|
||||
.window-button.focused:active > StWidget {
|
||||
color: #fff;
|
||||
background-color: #3f3f3f;
|
||||
}
|
||||
.window-button.focused:hover > StWidget {
|
||||
background-color: st-lighten(#5b5b5b, 5%);
|
||||
}
|
||||
|
||||
.window-button.focused:active > StWidget {
|
||||
background-color: st-lighten(#5b5b5b, 10%);
|
||||
}
|
||||
|
||||
.window-button.minimized > StWidget {
|
||||
color: #666;
|
||||
@@ -81,36 +103,17 @@
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .status-label-bin {
|
||||
background-color: rgba(200, 200, 200, 0.3);
|
||||
padding: 5px;
|
||||
margin: 3px;
|
||||
.window-button-abstract-label {
|
||||
background-color: #888;
|
||||
border-radius: 99px;
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .workspaces-box {
|
||||
spacing: 3px;
|
||||
padding: 5px;
|
||||
.window-button-attention-indicator {
|
||||
background-color: -st-accent-color;
|
||||
height: 2px;
|
||||
}
|
||||
|
||||
.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;
|
||||
.window-button.minimized .window-button-attention-indicator {
|
||||
background-color: st-transparentize(-st-accent-color, 0.4);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
@import url("stylesheet-dark.css");
|
||||
@import url("stylesheet-workspace-switcher-light.css");
|
||||
|
||||
#panel.bottom-panel {
|
||||
border-top-width: 1px;
|
||||
@@ -14,58 +15,52 @@
|
||||
}
|
||||
|
||||
.bottom-panel .window-button > StWidget {
|
||||
color: #2e3436;
|
||||
background-color: #eee;
|
||||
border-radius: 3px;
|
||||
padding: 3px 6px 1px;
|
||||
box-shadow: none;
|
||||
text-shadow: none;
|
||||
border: 1px solid rgba(0,0,0,0.2);
|
||||
}
|
||||
|
||||
.bottom-panel .window-button > StWidget {
|
||||
-st-natural-width: 18.7em;
|
||||
max-width: 18.75em;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button:hover > StWidget {
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button:active > StWidget,
|
||||
.bottom-panel .window-button:focus > StWidget {
|
||||
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.bottom-panel .window-button.focused > StWidget {
|
||||
background-color: #ccc;
|
||||
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.bottom-panel .window-button.focused:hover > StWidget {
|
||||
background-color: #e9e9e9;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button.minimized > StWidget {
|
||||
color: #888;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/* workspace switcher */
|
||||
.window-list-workspace-indicator .workspace {
|
||||
border: 2px solid #f6f5f4;
|
||||
background-color: #ccc;
|
||||
.window-button > StWidget {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .workspace.active {
|
||||
border-color: #888;
|
||||
.window-button:hover > StWidget {
|
||||
background-color: st-darken(#eee,5%);
|
||||
}
|
||||
|
||||
.window-list-window-preview {
|
||||
background-color: #ededed;
|
||||
border: 1px solid #ccc;
|
||||
.window-button:active > StWidget,
|
||||
.window-button:focus > StWidget {
|
||||
background-color: st-darken(#eee, 10%);
|
||||
}
|
||||
|
||||
.window-list-window-preview.active {
|
||||
background-color: #f6f5f4;
|
||||
.window-button.focused > StWidget {
|
||||
background-color: st-darken(#eee,15%);
|
||||
}
|
||||
|
||||
.window-button.focused:hover > StWidget {
|
||||
background-color: st-darken(#eee, 20%);
|
||||
}
|
||||
|
||||
.window-button.focused:active > StWidget {
|
||||
background-color: st-darken(#eee, 25%);
|
||||
}
|
||||
|
||||
.window-button.minimized > StWidget {
|
||||
color: #aaa;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.window-button.minimized:active > StWidget {
|
||||
color: #aaa;
|
||||
background-color: #f9f9f9;
|
||||
}
|
||||
|
||||
.window-button-drag-actor {
|
||||
background-color: #ddd;
|
||||
border-color: #888;
|
||||
}
|
||||
|
||||
.window-list .placeholder {
|
||||
border-color: rgba(0,0,0,0.5);
|
||||
}
|
||||
|
||||
@@ -1,430 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
import GObject from 'gi://GObject';
|
||||
import Meta from 'gi://Meta';
|
||||
import St from 'gi://St';
|
||||
|
||||
import {gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
|
||||
const TOOLTIP_OFFSET = 6;
|
||||
const TOOLTIP_ANIMATION_TIME = 150;
|
||||
|
||||
const MAX_THUMBNAILS = 6;
|
||||
|
||||
class WindowPreview extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(window) {
|
||||
super({
|
||||
style_class: 'window-list-window-preview',
|
||||
});
|
||||
|
||||
this._delegate = this;
|
||||
DND.makeDraggable(this, {restoreOnSuccess: true});
|
||||
|
||||
this._window = window;
|
||||
|
||||
this._window.connectObject(
|
||||
'size-changed', () => this._checkRelayout(),
|
||||
'position-changed', () => this._checkRelayout(),
|
||||
'notify::minimized', this._updateVisible.bind(this),
|
||||
'notify::window-type', this._updateVisible.bind(this),
|
||||
this);
|
||||
this._updateVisible();
|
||||
|
||||
global.display.connectObject('notify::focus-window',
|
||||
this._onFocusChanged.bind(this), this);
|
||||
this._onFocusChanged();
|
||||
}
|
||||
|
||||
// needed for DND
|
||||
get metaWindow() {
|
||||
return this._window;
|
||||
}
|
||||
|
||||
_onFocusChanged() {
|
||||
if (global.display.focus_window === this._window)
|
||||
this.add_style_class_name('active');
|
||||
else
|
||||
this.remove_style_class_name('active');
|
||||
}
|
||||
|
||||
_checkRelayout() {
|
||||
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
if (this._window.get_frame_rect().overlap(workArea))
|
||||
this.queue_relayout();
|
||||
}
|
||||
|
||||
_updateVisible() {
|
||||
this.visible = this._window.window_type !== Meta.WindowType.DESKTOP &&
|
||||
this._window.showing_on_its_workspace();
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceLayout extends Clutter.LayoutManager {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
vfunc_get_preferred_width() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_get_preferred_height() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_allocate(container, box) {
|
||||
const monitor = Main.layoutManager.findIndexForActor(container);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
const hscale = box.get_width() / workArea.width;
|
||||
const vscale = box.get_height() / workArea.height;
|
||||
|
||||
for (const child of container) {
|
||||
const childBox = new Clutter.ActorBox();
|
||||
const frameRect = child.metaWindow.get_frame_rect();
|
||||
childBox.set_size(
|
||||
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
||||
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
||||
childBox.set_origin(
|
||||
Math.round((frameRect.x - workArea.x) * hscale),
|
||||
Math.round((frameRect.y - workArea.y) * vscale));
|
||||
child.allocate(childBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceThumbnail extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(index) {
|
||||
super({
|
||||
style_class: 'workspace',
|
||||
child: new Clutter.Actor({
|
||||
layout_manager: new WorkspaceLayout(),
|
||||
clip_to_allocation: true,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
}),
|
||||
});
|
||||
|
||||
this._tooltip = new St.Label({
|
||||
style_class: 'dash-label',
|
||||
visible: false,
|
||||
});
|
||||
Main.uiGroup.add_child(this._tooltip);
|
||||
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
this.connect('notify::hover', this._syncTooltip.bind(this));
|
||||
|
||||
this._index = index;
|
||||
this._delegate = this; // needed for DND
|
||||
|
||||
this._windowPreviews = new Map();
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._workspace = workspaceManager.get_workspace_by_index(index);
|
||||
|
||||
this._workspace.connectObject(
|
||||
'window-added', (ws, window) => this._addWindow(window),
|
||||
'window-removed', (ws, window) => this._removeWindow(window),
|
||||
this);
|
||||
|
||||
global.display.connectObject('restacked',
|
||||
this._onRestacked.bind(this), this);
|
||||
|
||||
this._workspace.list_windows().forEach(w => this._addWindow(w));
|
||||
this._onRestacked();
|
||||
}
|
||||
|
||||
acceptDrop(source) {
|
||||
if (!source.metaWindow)
|
||||
return false;
|
||||
|
||||
this._moveWindow(source.metaWindow);
|
||||
return true;
|
||||
}
|
||||
|
||||
handleDragOver(source) {
|
||||
if (source.metaWindow)
|
||||
return DND.DragMotionResult.MOVE_DROP;
|
||||
else
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
}
|
||||
|
||||
_addWindow(window) {
|
||||
if (this._windowPreviews.has(window))
|
||||
return;
|
||||
|
||||
let preview = new WindowPreview(window);
|
||||
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
|
||||
this._windowPreviews.set(window, preview);
|
||||
this.child.add_child(preview);
|
||||
}
|
||||
|
||||
_removeWindow(window) {
|
||||
let preview = this._windowPreviews.get(window);
|
||||
if (!preview)
|
||||
return;
|
||||
|
||||
this._windowPreviews.delete(window);
|
||||
preview.destroy();
|
||||
}
|
||||
|
||||
_onRestacked() {
|
||||
let lastPreview = null;
|
||||
let windows = global.get_window_actors().map(a => a.meta_window);
|
||||
for (let i = 0; i < windows.length; i++) {
|
||||
let preview = this._windowPreviews.get(windows[i]);
|
||||
if (!preview)
|
||||
continue;
|
||||
|
||||
this.child.set_child_above_sibling(preview, lastPreview);
|
||||
lastPreview = preview;
|
||||
}
|
||||
}
|
||||
|
||||
_moveWindow(window) {
|
||||
let monitorIndex = Main.layoutManager.findIndexForActor(this);
|
||||
if (monitorIndex !== window.get_monitor())
|
||||
window.move_to_monitor(monitorIndex);
|
||||
window.change_workspace_by_index(this._index, false);
|
||||
}
|
||||
|
||||
on_clicked() {
|
||||
let ws = global.workspace_manager.get_workspace_by_index(this._index);
|
||||
if (ws)
|
||||
ws.activate(global.get_current_time());
|
||||
}
|
||||
|
||||
_syncTooltip() {
|
||||
if (this.hover) {
|
||||
this._tooltip.set({
|
||||
text: Meta.prefs_get_workspace_name(this._index),
|
||||
visible: true,
|
||||
opacity: 0,
|
||||
});
|
||||
|
||||
const [stageX, stageY] = this.get_transformed_position();
|
||||
const thumbWidth = this.allocation.get_width();
|
||||
const tipWidth = this._tooltip.width;
|
||||
const tipHeight = this._tooltip.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._tooltip.set_position(x, y);
|
||||
}
|
||||
|
||||
this._tooltip.ease({
|
||||
opacity: this.hover ? 255 : 0,
|
||||
duration: TOOLTIP_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (this._tooltip.visible = this.hover),
|
||||
});
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
this._tooltip.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
export class WorkspaceIndicator extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super(0.5, _('Workspace Indicator'), true);
|
||||
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
|
||||
this.add_style_class_name('window-list-workspace-indicator');
|
||||
this.remove_style_class_name('panel-button');
|
||||
this.menu.actor.remove_style_class_name('panel-menu');
|
||||
|
||||
let container = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
});
|
||||
this.add_child(container);
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
this._statusLabel = new St.Label({text: this._getStatusText()});
|
||||
|
||||
this._statusBin = new St.Bin({
|
||||
style_class: 'status-label-bin',
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
child: this._statusLabel,
|
||||
});
|
||||
container.add_child(this._statusBin);
|
||||
|
||||
this._thumbnailsBox = new St.BoxLayout({
|
||||
style_class: 'workspaces-box',
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
});
|
||||
this._thumbnailsBox.connect('scroll-event',
|
||||
this._onScrollEvent.bind(this));
|
||||
container.add_child(this._thumbnailsBox);
|
||||
|
||||
this._workspacesItems = [];
|
||||
|
||||
workspaceManager.connectObject(
|
||||
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
|
||||
this);
|
||||
|
||||
this.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||
this._updateMenu();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
|
||||
this._settings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
|
||||
this._settings.connectObject('changed::workspace-names',
|
||||
() => this._updateMenuLabels(), this);
|
||||
}
|
||||
|
||||
_updateThumbnailVisibility() {
|
||||
const {workspaceManager} = global;
|
||||
const vertical = workspaceManager.layout_rows === -1;
|
||||
const useMenu =
|
||||
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
|
||||
this.reactive = useMenu;
|
||||
|
||||
this._statusBin.visible = useMenu;
|
||||
this._thumbnailsBox.visible = !useMenu;
|
||||
}
|
||||
|
||||
_onWorkspaceSwitched() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
|
||||
this._updateMenuOrnament();
|
||||
this._updateActiveThumbnail();
|
||||
|
||||
this._statusLabel.set_text(this._getStatusText());
|
||||
}
|
||||
|
||||
_nWorkspacesChanged() {
|
||||
this._updateMenu();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
}
|
||||
|
||||
_updateMenuOrnament() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++) {
|
||||
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
|
||||
? PopupMenu.Ornament.DOT
|
||||
: PopupMenu.Ornament.NO_DOT);
|
||||
}
|
||||
}
|
||||
|
||||
_updateActiveThumbnail() {
|
||||
let thumbs = this._thumbnailsBox.get_children();
|
||||
for (let i = 0; i < thumbs.length; i++) {
|
||||
if (i === this._currentWorkspace)
|
||||
thumbs[i].add_style_class_name('active');
|
||||
else
|
||||
thumbs[i].remove_style_class_name('active');
|
||||
}
|
||||
}
|
||||
|
||||
_getStatusText() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
let current = workspaceManager.get_active_workspace_index();
|
||||
let total = workspaceManager.n_workspaces;
|
||||
|
||||
return '%d / %d'.format(current + 1, total);
|
||||
}
|
||||
|
||||
_updateMenuLabels() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++) {
|
||||
let item = this._workspacesItems[i];
|
||||
let name = Meta.prefs_get_workspace_name(i);
|
||||
item.label.text = name;
|
||||
}
|
||||
}
|
||||
|
||||
_updateMenu() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this.menu.removeAll();
|
||||
this._workspacesItems = [];
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
|
||||
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
|
||||
let name = Meta.prefs_get_workspace_name(i);
|
||||
let item = new PopupMenu.PopupMenuItem(name);
|
||||
item.workspaceId = i;
|
||||
|
||||
item.connect('activate', () => {
|
||||
this._activate(item.workspaceId);
|
||||
});
|
||||
|
||||
item.setOrnament(i === this._currentWorkspace
|
||||
? PopupMenu.Ornament.DOT
|
||||
: PopupMenu.Ornament.NO_DOT);
|
||||
|
||||
this.menu.addMenuItem(item);
|
||||
this._workspacesItems[i] = item;
|
||||
}
|
||||
|
||||
this._statusLabel.set_text(this._getStatusText());
|
||||
}
|
||||
|
||||
_updateThumbnails() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._thumbnailsBox.destroy_all_children();
|
||||
|
||||
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
|
||||
let thumb = new WorkspaceThumbnail(i);
|
||||
this._thumbnailsBox.add_child(thumb);
|
||||
}
|
||||
this._updateActiveThumbnail();
|
||||
}
|
||||
|
||||
_activate(index) {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
if (index >= 0 && index < workspaceManager.n_workspaces) {
|
||||
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
|
||||
metaWorkspace.activate(global.get_current_time());
|
||||
}
|
||||
}
|
||||
|
||||
_onScrollEvent(actor, event) {
|
||||
let direction = event.get_scroll_direction();
|
||||
let diff = 0;
|
||||
if (direction === Clutter.ScrollDirection.DOWN)
|
||||
diff = 1;
|
||||
else if (direction === Clutter.ScrollDirection.UP)
|
||||
diff = -1;
|
||||
else
|
||||
return;
|
||||
|
||||
let newIndex = this._currentWorkspace + diff;
|
||||
this._activate(newIndex);
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,6 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Graphene from 'gi://Graphene';
|
||||
import St from 'gi://St';
|
||||
@@ -148,7 +147,7 @@ export default class Extension {
|
||||
/* eslint-disable no-invalid-this */
|
||||
return function () {
|
||||
const {layoutManager} = this._container;
|
||||
for (let i in layoutManager._windowSlots) {
|
||||
for (const i in layoutManager._windowSlots) {
|
||||
if (layoutManager._windowSlots[i])
|
||||
layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip();
|
||||
}
|
||||
@@ -174,7 +173,7 @@ export default class Extension {
|
||||
this._injectionManager.overrideMethod(viewProto, '_hideTooltips', () => {
|
||||
/* eslint-disable no-invalid-this */
|
||||
return function () {
|
||||
if (global.stage.get_key_focus() === global.stage)
|
||||
if (global.stage.get_key_focus() === null)
|
||||
global.stage.set_key_focus(this._prevFocusActor);
|
||||
this._pickWindow = false;
|
||||
for (let i = 0; i < this._workspaces.length; i++)
|
||||
@@ -211,9 +210,9 @@ export default class Extension {
|
||||
return function (actor, event) {
|
||||
const {ControlsState} = OverviewControls;
|
||||
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
|
||||
return false;
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
const workspaceManager = global.workspace_manager;
|
||||
|
||||
if ((event.get_key_symbol() === Clutter.KEY_Alt_L ||
|
||||
event.get_key_symbol() === Clutter.KEY_Alt_R) &&
|
||||
@@ -223,7 +222,7 @@ export default class Extension {
|
||||
this._active = workspaceManager.get_active_workspace_index();
|
||||
this._pickWindow = true;
|
||||
this._workspaces[workspaceManager.get_active_workspace_index()].showWindowsTooltips();
|
||||
return true;
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
if ((event.get_key_symbol() === Clutter.KEY_Control_L ||
|
||||
event.get_key_symbol() === Clutter.KEY_Control_R) &&
|
||||
@@ -233,22 +232,22 @@ export default class Extension {
|
||||
this._pickWorkspace = true;
|
||||
for (let i = 0; i < this._workspaces.length; i++)
|
||||
this._workspaces[i].showTooltip();
|
||||
return true;
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
|
||||
if (global.stage.get_key_focus() !== global.stage)
|
||||
return false;
|
||||
if (global.stage.get_key_focus() !== null)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
// 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;
|
||||
return Clutter.EVENT_STOP;
|
||||
|
||||
if (this._pickWindow) {
|
||||
if (this._active !== workspaceManager.get_active_workspace_index()) {
|
||||
this._hideTooltips();
|
||||
return false;
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
|
||||
let c = event.get_key_symbol() - Clutter.KEY_KP_0;
|
||||
@@ -257,17 +256,17 @@ export default class Extension {
|
||||
if (c > 9 || c <= 0) {
|
||||
this._hideTooltips();
|
||||
log(c);
|
||||
return false;
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
}
|
||||
|
||||
let win = this._workspaces[this._active].getWindowWithTooltip(c);
|
||||
const win = this._workspaces[this._active].getWindowWithTooltip(c);
|
||||
this._hideTooltips();
|
||||
|
||||
if (win)
|
||||
Main.activateWindow(win, global.get_current_time());
|
||||
|
||||
return true;
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
if (this._pickWorkspace) {
|
||||
let c = event.get_key_symbol() - Clutter.KEY_KP_0;
|
||||
@@ -275,18 +274,18 @@ export default class Extension {
|
||||
c = event.get_key_symbol() - Clutter.KEY_0;
|
||||
if (c > 9 || c <= 0) {
|
||||
this._hideWorkspacesTooltips();
|
||||
return false;
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
}
|
||||
}
|
||||
|
||||
let workspace = this._workspaces[c - 1];
|
||||
const workspace = this._workspaces[c - 1];
|
||||
if (workspace !== undefined)
|
||||
workspace.metaWorkspace.activate(global.get_current_time());
|
||||
|
||||
this._hideWorkspacesTooltips();
|
||||
return true;
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return false;
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
};
|
||||
/* eslint-enable */
|
||||
});
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"original-author": "zaspire@rambler.ru",
|
||||
"name": "windowNavigator",
|
||||
"name": "Window Navigator",
|
||||
"description": "Allow keyboard selection of windows and workspaces in overlay mode. <Ctrl>number selects a workspace, and <Alt>number selects a window.",
|
||||
"url": "@url@"
|
||||
}
|
||||
|
||||
@@ -4,443 +4,17 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
import GObject from 'gi://GObject';
|
||||
import Meta from 'gi://Meta';
|
||||
import St from 'gi://St';
|
||||
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
|
||||
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
|
||||
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const WORKSPACE_KEY = 'workspace-names';
|
||||
|
||||
const TOOLTIP_OFFSET = 6;
|
||||
const TOOLTIP_ANIMATION_TIME = 150;
|
||||
|
||||
const MAX_THUMBNAILS = 6;
|
||||
|
||||
class WindowPreview extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(window) {
|
||||
super({
|
||||
style_class: 'workspace-indicator-window-preview',
|
||||
});
|
||||
|
||||
this._delegate = this;
|
||||
DND.makeDraggable(this, {restoreOnSuccess: true});
|
||||
|
||||
this._window = window;
|
||||
|
||||
this._window.connectObject(
|
||||
'size-changed', () => this._checkRelayout(),
|
||||
'position-changed', () => this._checkRelayout(),
|
||||
'notify::minimized', this._updateVisible.bind(this),
|
||||
'notify::window-type', this._updateVisible.bind(this),
|
||||
this);
|
||||
this._updateVisible();
|
||||
|
||||
global.display.connectObject('notify::focus-window',
|
||||
this._onFocusChanged.bind(this), this);
|
||||
this._onFocusChanged();
|
||||
}
|
||||
|
||||
// needed for DND
|
||||
get metaWindow() {
|
||||
return this._window;
|
||||
}
|
||||
|
||||
_onFocusChanged() {
|
||||
if (global.display.focus_window === this._window)
|
||||
this.add_style_class_name('active');
|
||||
else
|
||||
this.remove_style_class_name('active');
|
||||
}
|
||||
|
||||
_checkRelayout() {
|
||||
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
if (this._window.get_frame_rect().overlap(workArea))
|
||||
this.queue_relayout();
|
||||
}
|
||||
|
||||
_updateVisible() {
|
||||
this.visible = this._window.window_type !== Meta.WindowType.DESKTOP &&
|
||||
this._window.showing_on_its_workspace();
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceLayout extends Clutter.LayoutManager {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
vfunc_get_preferred_width() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_get_preferred_height() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_allocate(container, box) {
|
||||
const monitor = Main.layoutManager.findIndexForActor(container);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
const hscale = box.get_width() / workArea.width;
|
||||
const vscale = box.get_height() / workArea.height;
|
||||
|
||||
for (const child of container) {
|
||||
const childBox = new Clutter.ActorBox();
|
||||
const frameRect = child.metaWindow.get_frame_rect();
|
||||
childBox.set_size(
|
||||
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
||||
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
||||
childBox.set_origin(
|
||||
Math.round((frameRect.x - workArea.x) * hscale),
|
||||
Math.round((frameRect.y - workArea.y) * vscale));
|
||||
child.allocate(childBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceThumbnail extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(index) {
|
||||
super({
|
||||
style_class: 'workspace',
|
||||
child: new Clutter.Actor({
|
||||
layout_manager: new WorkspaceLayout(),
|
||||
clip_to_allocation: true,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
}),
|
||||
});
|
||||
|
||||
this._tooltip = new St.Label({
|
||||
style_class: 'dash-label',
|
||||
visible: false,
|
||||
});
|
||||
Main.uiGroup.add_child(this._tooltip);
|
||||
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
this.connect('notify::hover', this._syncTooltip.bind(this));
|
||||
|
||||
this._index = index;
|
||||
this._delegate = this; // needed for DND
|
||||
|
||||
this._windowPreviews = new Map();
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._workspace = workspaceManager.get_workspace_by_index(index);
|
||||
|
||||
this._workspace.connectObject(
|
||||
'window-added', (ws, window) => this._addWindow(window),
|
||||
'window-removed', (ws, window) => this._removeWindow(window),
|
||||
this);
|
||||
|
||||
global.display.connectObject('restacked',
|
||||
this._onRestacked.bind(this), this);
|
||||
|
||||
this._workspace.list_windows().forEach(w => this._addWindow(w));
|
||||
this._onRestacked();
|
||||
}
|
||||
|
||||
acceptDrop(source) {
|
||||
if (!source.metaWindow)
|
||||
return false;
|
||||
|
||||
this._moveWindow(source.metaWindow);
|
||||
return true;
|
||||
}
|
||||
|
||||
handleDragOver(source) {
|
||||
if (source.metaWindow)
|
||||
return DND.DragMotionResult.MOVE_DROP;
|
||||
else
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
}
|
||||
|
||||
_addWindow(window) {
|
||||
if (this._windowPreviews.has(window))
|
||||
return;
|
||||
|
||||
let preview = new WindowPreview(window);
|
||||
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
|
||||
this._windowPreviews.set(window, preview);
|
||||
this.child.add_child(preview);
|
||||
}
|
||||
|
||||
_removeWindow(window) {
|
||||
let preview = this._windowPreviews.get(window);
|
||||
if (!preview)
|
||||
return;
|
||||
|
||||
this._windowPreviews.delete(window);
|
||||
preview.destroy();
|
||||
}
|
||||
|
||||
_onRestacked() {
|
||||
let lastPreview = null;
|
||||
let windows = global.get_window_actors().map(a => a.meta_window);
|
||||
for (let i = 0; i < windows.length; i++) {
|
||||
let preview = this._windowPreviews.get(windows[i]);
|
||||
if (!preview)
|
||||
continue;
|
||||
|
||||
this.child.set_child_above_sibling(preview, lastPreview);
|
||||
lastPreview = preview;
|
||||
}
|
||||
}
|
||||
|
||||
_moveWindow(window) {
|
||||
let monitorIndex = Main.layoutManager.findIndexForActor(this);
|
||||
if (monitorIndex !== window.get_monitor())
|
||||
window.move_to_monitor(monitorIndex);
|
||||
window.change_workspace_by_index(this._index, false);
|
||||
}
|
||||
|
||||
on_clicked() {
|
||||
let ws = global.workspace_manager.get_workspace_by_index(this._index);
|
||||
if (ws)
|
||||
ws.activate(global.get_current_time());
|
||||
}
|
||||
|
||||
_syncTooltip() {
|
||||
if (this.hover) {
|
||||
this._tooltip.set({
|
||||
text: Meta.prefs_get_workspace_name(this._index),
|
||||
visible: true,
|
||||
opacity: 0,
|
||||
});
|
||||
|
||||
const [stageX, stageY] = this.get_transformed_position();
|
||||
const thumbWidth = this.allocation.get_width();
|
||||
const thumbHeight = this.allocation.get_height();
|
||||
const tipWidth = this._tooltip.width;
|
||||
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 + thumbHeight + TOOLTIP_OFFSET;
|
||||
this._tooltip.set_position(x, y);
|
||||
}
|
||||
|
||||
this._tooltip.ease({
|
||||
opacity: this.hover ? 255 : 0,
|
||||
duration: TOOLTIP_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (this._tooltip.visible = this.hover),
|
||||
});
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
this._tooltip.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceIndicator extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super(0.5, _('Workspace Indicator'));
|
||||
|
||||
let container = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
});
|
||||
this.add_child(container);
|
||||
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
this._statusLabel = new St.Label({
|
||||
style_class: 'panel-workspace-indicator',
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
text: this._labelText(),
|
||||
});
|
||||
|
||||
container.add_child(this._statusLabel);
|
||||
|
||||
this._thumbnailsBox = new St.BoxLayout({
|
||||
style_class: 'panel-workspace-indicator-box',
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
});
|
||||
|
||||
container.add_child(this._thumbnailsBox);
|
||||
|
||||
this._workspacesItems = [];
|
||||
this._workspaceSection = new PopupMenu.PopupMenuSection();
|
||||
this.menu.addMenuItem(this._workspaceSection);
|
||||
|
||||
workspaceManager.connectObject(
|
||||
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
|
||||
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
|
||||
this);
|
||||
|
||||
this.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
|
||||
this._createWorkspacesSection();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
|
||||
this._settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
|
||||
this._settings.connectObject(`changed::${WORKSPACE_KEY}`,
|
||||
this._updateMenuLabels.bind(this), this);
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||||
|
||||
super._onDestroy();
|
||||
}
|
||||
|
||||
_updateThumbnailVisibility() {
|
||||
const {workspaceManager} = global;
|
||||
const vertical = workspaceManager.layout_rows === -1;
|
||||
const useMenu =
|
||||
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
|
||||
this.reactive = useMenu;
|
||||
|
||||
this._statusLabel.visible = useMenu;
|
||||
this._thumbnailsBox.visible = !useMenu;
|
||||
|
||||
// Disable offscreen-redirect when showing the workspace switcher
|
||||
// so that clip-to-allocation works
|
||||
Main.panel.set_offscreen_redirect(useMenu
|
||||
? Clutter.OffscreenRedirect.ALWAYS
|
||||
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
|
||||
}
|
||||
|
||||
_onWorkspaceSwitched() {
|
||||
this._currentWorkspace = global.workspace_manager.get_active_workspace_index();
|
||||
|
||||
this._updateMenuOrnament();
|
||||
this._updateActiveThumbnail();
|
||||
|
||||
this._statusLabel.set_text(this._labelText());
|
||||
}
|
||||
|
||||
_nWorkspacesChanged() {
|
||||
this._createWorkspacesSection();
|
||||
this._updateThumbnails();
|
||||
this._updateThumbnailVisibility();
|
||||
}
|
||||
|
||||
_updateMenuOrnament() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++) {
|
||||
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
|
||||
? PopupMenu.Ornament.DOT
|
||||
: PopupMenu.Ornament.NO_DOT);
|
||||
}
|
||||
}
|
||||
|
||||
_updateActiveThumbnail() {
|
||||
let thumbs = this._thumbnailsBox.get_children();
|
||||
for (let i = 0; i < thumbs.length; i++) {
|
||||
if (i === this._currentWorkspace)
|
||||
thumbs[i].add_style_class_name('active');
|
||||
else
|
||||
thumbs[i].remove_style_class_name('active');
|
||||
}
|
||||
}
|
||||
|
||||
_labelText(workspaceIndex) {
|
||||
if (workspaceIndex === undefined) {
|
||||
workspaceIndex = this._currentWorkspace;
|
||||
return (workspaceIndex + 1).toString();
|
||||
}
|
||||
return Meta.prefs_get_workspace_name(workspaceIndex);
|
||||
}
|
||||
|
||||
_updateMenuLabels() {
|
||||
for (let i = 0; i < this._workspacesItems.length; i++)
|
||||
this._workspacesItems[i].label.text = this._labelText(i);
|
||||
}
|
||||
|
||||
_createWorkspacesSection() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._workspaceSection.removeAll();
|
||||
this._workspacesItems = [];
|
||||
this._currentWorkspace = workspaceManager.get_active_workspace_index();
|
||||
|
||||
let i = 0;
|
||||
for (; i < workspaceManager.n_workspaces; i++) {
|
||||
this._workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
|
||||
this._workspaceSection.addMenuItem(this._workspacesItems[i]);
|
||||
this._workspacesItems[i].workspaceId = i;
|
||||
this._workspacesItems[i].label_actor = this._statusLabel;
|
||||
this._workspacesItems[i].connect('activate', (actor, _event) => {
|
||||
this._activate(actor.workspaceId);
|
||||
});
|
||||
|
||||
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
|
||||
? PopupMenu.Ornament.DOT
|
||||
: PopupMenu.Ornament.NO_DOT);
|
||||
}
|
||||
|
||||
this._statusLabel.set_text(this._labelText());
|
||||
}
|
||||
|
||||
_updateThumbnails() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
this._thumbnailsBox.destroy_all_children();
|
||||
|
||||
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
|
||||
let thumb = new WorkspaceThumbnail(i);
|
||||
this._thumbnailsBox.add_child(thumb);
|
||||
}
|
||||
this._updateActiveThumbnail();
|
||||
}
|
||||
|
||||
_activate(index) {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
if (index >= 0 && index < workspaceManager.n_workspaces) {
|
||||
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
|
||||
metaWorkspace.activate(global.get_current_time());
|
||||
}
|
||||
}
|
||||
|
||||
_onScrollEvent(actor, event) {
|
||||
let direction = event.get_scroll_direction();
|
||||
let diff = 0;
|
||||
if (direction === Clutter.ScrollDirection.DOWN)
|
||||
diff = 1;
|
||||
else if (direction === Clutter.ScrollDirection.UP)
|
||||
diff = -1;
|
||||
else
|
||||
return;
|
||||
|
||||
|
||||
let newIndex = global.workspace_manager.get_active_workspace_index() + diff;
|
||||
this._activate(newIndex);
|
||||
}
|
||||
}
|
||||
import {WorkspaceIndicator} from './workspaceIndicator.js';
|
||||
|
||||
export default class WorkspaceIndicatorExtension extends Extension {
|
||||
enable() {
|
||||
this._indicator = new WorkspaceIndicator();
|
||||
this._indicator = new WorkspaceIndicator({
|
||||
settings: this.getSettings(),
|
||||
});
|
||||
Main.panel.addToStatusArea('workspace-indicator', this._indicator);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,10 @@ extension_data += configure_file(
|
||||
output: metadata_name,
|
||||
configuration: metadata_conf
|
||||
)
|
||||
extension_data += files('stylesheet.css')
|
||||
extension_data += files(
|
||||
'stylesheet-dark.css',
|
||||
'stylesheet-light.css',
|
||||
)
|
||||
extension_schemas += files('schemas/' + metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
|
||||
extension_sources += files('prefs.js')
|
||||
extension_sources += files('prefs.js', 'workspaceIndicator.js', 'workspacePrefs.js')
|
||||
|
||||
@@ -3,268 +3,12 @@
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
|
||||
import Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
import GObject from 'gi://GObject';
|
||||
import Gtk from 'gi://Gtk';
|
||||
import Pango from 'gi://Pango';
|
||||
import {ExtensionPreferences} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
|
||||
|
||||
import {ExtensionPreferences, gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
|
||||
|
||||
const N_ = e => e;
|
||||
|
||||
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
|
||||
const WORKSPACE_KEY = 'workspace-names';
|
||||
|
||||
class NewItem extends GObject.Object {}
|
||||
GObject.registerClass(NewItem);
|
||||
|
||||
class NewItemModel extends GObject.Object {
|
||||
static [GObject.interfaces] = [Gio.ListModel];
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#item = new NewItem();
|
||||
|
||||
vfunc_get_item_type() {
|
||||
return NewItem;
|
||||
}
|
||||
|
||||
vfunc_get_n_items() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
vfunc_get_item(_pos) {
|
||||
return this.#item;
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspacesList extends GObject.Object {
|
||||
static [GObject.interfaces] = [Gio.ListModel];
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
|
||||
#names = this.#settings.get_strv(WORKSPACE_KEY);
|
||||
#items = Gtk.StringList.new(this.#names);
|
||||
#changedId;
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
|
||||
this.#changedId =
|
||||
this.#settings.connect(`changed::${WORKSPACE_KEY}`, () => {
|
||||
const removed = this.#names.length;
|
||||
this.#names = this.#settings.get_strv(WORKSPACE_KEY);
|
||||
this.#items.splice(0, removed, this.#names);
|
||||
this.items_changed(0, removed, this.#names.length);
|
||||
});
|
||||
}
|
||||
|
||||
append() {
|
||||
const name = _('Workspace %d').format(this.#names.length + 1);
|
||||
|
||||
this.#names.push(name);
|
||||
this.#settings.block_signal_handler(this.#changedId);
|
||||
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
|
||||
this.#settings.unblock_signal_handler(this.#changedId);
|
||||
|
||||
const pos = this.#items.get_n_items();
|
||||
this.#items.append(name);
|
||||
this.items_changed(pos, 0, 1);
|
||||
}
|
||||
|
||||
remove(name) {
|
||||
const pos = this.#names.indexOf(name);
|
||||
if (pos < 0)
|
||||
return;
|
||||
|
||||
this.#names.splice(pos, 1);
|
||||
|
||||
this.#settings.block_signal_handler(this.#changedId);
|
||||
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
|
||||
this.#settings.unblock_signal_handler(this.#changedId);
|
||||
|
||||
this.#items.remove(pos);
|
||||
this.items_changed(pos, 1, 0);
|
||||
}
|
||||
|
||||
rename(oldName, newName) {
|
||||
const pos = this.#names.indexOf(oldName);
|
||||
if (pos < 0)
|
||||
return;
|
||||
|
||||
this.#names.splice(pos, 1, newName);
|
||||
this.#items.splice(pos, 1, [newName]);
|
||||
|
||||
this.#settings.block_signal_handler(this.#changedId);
|
||||
this.#settings.set_strv(WORKSPACE_KEY, this.#names);
|
||||
this.#settings.unblock_signal_handler(this.#changedId);
|
||||
}
|
||||
|
||||
vfunc_get_item_type() {
|
||||
return Gtk.StringObject;
|
||||
}
|
||||
|
||||
vfunc_get_n_items() {
|
||||
return this.#items.get_n_items();
|
||||
}
|
||||
|
||||
vfunc_get_item(pos) {
|
||||
return this.#items.get_item(pos);
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceSettingsWidget extends Adw.PreferencesGroup {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
|
||||
this.install_action('workspaces.add', null,
|
||||
self => self._workspaces.append());
|
||||
this.install_action('workspaces.remove', 's',
|
||||
(self, name, param) => self._workspaces.remove(param.unpack()));
|
||||
this.install_action('workspaces.rename', '(ss)',
|
||||
(self, name, param) => self._workspaces.rename(...param.deepUnpack()));
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super({
|
||||
title: _('Workspace Names'),
|
||||
});
|
||||
|
||||
this._workspaces = new WorkspacesList();
|
||||
|
||||
const store = new Gio.ListStore({item_type: Gio.ListModel});
|
||||
const listModel = new Gtk.FlattenListModel({model: store});
|
||||
store.append(this._workspaces);
|
||||
store.append(new NewItemModel());
|
||||
|
||||
this._list = new Gtk.ListBox({
|
||||
selection_mode: Gtk.SelectionMode.NONE,
|
||||
css_classes: ['boxed-list'],
|
||||
});
|
||||
this._list.connect('row-activated', (l, row) => row.edit());
|
||||
this.add(this._list);
|
||||
|
||||
this._list.bind_model(listModel, item => {
|
||||
return item instanceof NewItem
|
||||
? new NewWorkspaceRow()
|
||||
: new WorkspaceRow(item.string);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceRow extends Adw.PreferencesRow {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(name) {
|
||||
super({name});
|
||||
|
||||
const box = new Gtk.Box({
|
||||
spacing: 12,
|
||||
margin_top: 6,
|
||||
margin_bottom: 6,
|
||||
margin_start: 6,
|
||||
margin_end: 6,
|
||||
});
|
||||
|
||||
const label = new Gtk.Label({
|
||||
hexpand: true,
|
||||
xalign: 0,
|
||||
max_width_chars: 25,
|
||||
ellipsize: Pango.EllipsizeMode.END,
|
||||
});
|
||||
this.bind_property('name', label, 'label',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
box.append(label);
|
||||
|
||||
const button = new Gtk.Button({
|
||||
action_name: 'workspaces.remove',
|
||||
icon_name: 'edit-delete-symbolic',
|
||||
has_frame: false,
|
||||
});
|
||||
box.append(button);
|
||||
|
||||
this.bind_property_full('name',
|
||||
button, 'action-target',
|
||||
GObject.BindingFlags.SYNC_CREATE,
|
||||
(bind, target) => [true, new GLib.Variant('s', target)],
|
||||
null);
|
||||
|
||||
this._entry = new Gtk.Entry({
|
||||
max_width_chars: 25,
|
||||
});
|
||||
|
||||
const controller = new Gtk.ShortcutController();
|
||||
controller.add_shortcut(new Gtk.Shortcut({
|
||||
trigger: Gtk.ShortcutTrigger.parse_string('Escape'),
|
||||
action: Gtk.CallbackAction.new(() => {
|
||||
this._stopEdit();
|
||||
return true;
|
||||
}),
|
||||
}));
|
||||
this._entry.add_controller(controller);
|
||||
|
||||
this._stack = new Gtk.Stack();
|
||||
this._stack.add_named(box, 'display');
|
||||
this._stack.add_named(this._entry, 'edit');
|
||||
this.child = this._stack;
|
||||
|
||||
this._entry.connect('activate', () => {
|
||||
this.activate_action('workspaces.rename',
|
||||
new GLib.Variant('(ss)', [this.name, this._entry.text]));
|
||||
this.name = this._entry.text;
|
||||
this._stopEdit();
|
||||
});
|
||||
this._entry.connect('notify::has-focus', () => {
|
||||
if (this._entry.has_focus)
|
||||
return;
|
||||
this._stopEdit();
|
||||
});
|
||||
}
|
||||
|
||||
edit() {
|
||||
this._entry.text = this.name;
|
||||
this._entry.grab_focus();
|
||||
this._stack.visible_child_name = 'edit';
|
||||
}
|
||||
|
||||
_stopEdit() {
|
||||
this.grab_focus();
|
||||
this._stack.visible_child_name = 'display';
|
||||
}
|
||||
}
|
||||
|
||||
class NewWorkspaceRow extends Adw.PreferencesRow {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super({
|
||||
action_name: 'workspaces.add',
|
||||
child: new Gtk.Image({
|
||||
icon_name: 'list-add-symbolic',
|
||||
pixel_size: 16,
|
||||
margin_top: 12,
|
||||
margin_bottom: 12,
|
||||
margin_start: 12,
|
||||
margin_end: 12,
|
||||
}),
|
||||
});
|
||||
this.update_property(
|
||||
[Gtk.AccessibleProperty.LABEL], [_('Add Workspace')]);
|
||||
}
|
||||
}
|
||||
import {WorkspacesPage} from './workspacePrefs.js';
|
||||
|
||||
export default class WorkspaceIndicatorPrefs extends ExtensionPreferences {
|
||||
getPreferencesWidget() {
|
||||
return new WorkspaceSettingsWidget();
|
||||
return new WorkspacesPage(this.getSettings());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
|
||||
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
-->
|
||||
|
||||
<schemalist gettext-domain="gnome-shell-extensions">
|
||||
<schema id="org.gnome.shell.extensions.workspace-indicator"
|
||||
path="/org/gnome/shell/extensions/workspace-indicator/">
|
||||
<key name="embed-previews" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show workspace previews in top bar</summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
130
extensions/workspace-indicator/stylesheet-dark.css
Normal file
130
extensions/workspace-indicator/stylesheet-dark.css
Normal file
@@ -0,0 +1,130 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2011 Erick Pérez Castellanos <erick.red@gmail.com>
|
||||
* SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
.workspace-indicator.previews:active {
|
||||
background-color: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.workspace-indicator.name-label {
|
||||
box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.17) !important;
|
||||
}
|
||||
.workspace-indicator.name-label:hover,
|
||||
.workspace-indicator.name-label:focus {
|
||||
box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.28) !important;
|
||||
}
|
||||
.workspace-indicator.name-label:active {
|
||||
box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.32) !important;
|
||||
}
|
||||
.workspace-indicator.name-label:active:hover {
|
||||
box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.36) !important;
|
||||
}
|
||||
|
||||
.workspace-indicator .status-label {
|
||||
width: 8em;
|
||||
padding: 0 8px;
|
||||
}
|
||||
.workspace-indicator .status-label:ltr { padding-right: 4px; }
|
||||
.workspace-indicator .status-label:rtl { padding-left: 4px; }
|
||||
|
||||
.workspace-indicator .system-status-icon {
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspaces-view.hfade {
|
||||
-st-hfade-offset: 20px;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspaces-box {
|
||||
spacing: 3px;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace-box {
|
||||
padding-top: 5px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
.workspace-indicator StButton:first-child:ltr > .workspace-box,
|
||||
.workspace-indicator StButton:last-child:rtl > .workspace-box {
|
||||
padding-left: 5px;
|
||||
}
|
||||
.workspace-indicator StButton:last-child:ltr > .workspace-box,
|
||||
.workspace-indicator StButton:first-child:rtl > .workspace-box {
|
||||
padding-right: 5px;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 4px;
|
||||
background-color: #3f3f3f;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace {
|
||||
width: 52px;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace.active {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview {
|
||||
background-color: #bebebe;
|
||||
border: 1px solid #828282;
|
||||
border-radius: 1px;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview.active {
|
||||
background-color: #d4d4d4;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu {
|
||||
min-width: 17em;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item.popup-menu-item {
|
||||
padding: 3px 12px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:hover {
|
||||
background-color: st-transparentize(white, 90%);
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:active {
|
||||
background-color: st-transparentize(white, 85%);
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:checked {
|
||||
color: -st-accent-fg-color;
|
||||
background-color: -st-accent-color;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:checked:hover {
|
||||
background-color: st-lighten(-st-accent-color, 10%);
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:checked:active {
|
||||
background-color: st-lighten(-st-accent-color, 15%);
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item StLabel {
|
||||
padding: 0 11px;
|
||||
width: 6.5em;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item StEntry {
|
||||
padding: 9px 9px;
|
||||
width: 6.5em;
|
||||
}
|
||||
55
extensions/workspace-indicator/stylesheet-light.css
Normal file
55
extensions/workspace-indicator/stylesheet-light.css
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2013 Florian Müllner <fmuellner@gnome.org>
|
||||
* SPDX-FileCopyrightText: 2015 Jakub Steiner <jimmac@gmail.com>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
@import url("stylesheet-dark.css");
|
||||
|
||||
.workspace-indicator.name-label {
|
||||
box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.17) !important;
|
||||
}
|
||||
.workspace-indicator.name-label:hover,
|
||||
.workspace-indicator.name-label:focus {
|
||||
box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.28) !important;
|
||||
}
|
||||
.workspace-indicator.name-label:active {
|
||||
box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.32) !important;
|
||||
}
|
||||
.workspace-indicator.name-label:active:hover {
|
||||
box-shadow: inset 0 0 0 100px rgba(34, 34, 38, 0.36) !important;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace {
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.workspace-indicator .workspace.active {
|
||||
border-color: #888;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview {
|
||||
background-color: #ededed;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview.active {
|
||||
background-color: #f6f5f4;
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:hover {
|
||||
background-color: st-transparentize(black, 90%);
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:active {
|
||||
background-color: st-transparentize(black, 85%);
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:checked:hover {
|
||||
background-color: st-darken(-st-accent-color, 10%);
|
||||
}
|
||||
|
||||
.workspace-indicator-menu .editable-menu-item .icon-button.flat:checked:active {
|
||||
background-color: st-darken(-st-accent-color, 15%);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2011 Erick Pérez Castellanos <erick.red@gmail.com>
|
||||
* SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
.panel-workspace-indicator {
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.panel-workspace-indicator-box {
|
||||
padding: 4px 0;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
.panel-workspace-indicator-box .workspace {
|
||||
width: 40px;
|
||||
border: 2px solid #000;
|
||||
border-radius: 2px;
|
||||
background-color: #595959;
|
||||
}
|
||||
|
||||
.panel-workspace-indicator-box .workspace.active {
|
||||
border-color: #fff;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview {
|
||||
background-color: #bebebe;
|
||||
border: 1px solid #828282;
|
||||
}
|
||||
|
||||
.workspace-indicator-window-preview.active {
|
||||
background-color: #d4d4d4;
|
||||
}
|
||||
701
extensions/workspace-indicator/workspaceIndicator.js
Normal file
701
extensions/workspace-indicator/workspaceIndicator.js
Normal file
@@ -0,0 +1,701 @@
|
||||
// SPDX-FileCopyrightText: 2011 Erick Pérez Castellanos <erick.red@gmail.com>
|
||||
// SPDX-FileCopyrightText: 2011 Giovanni Campagna <gcampagna@src.gnome.org>
|
||||
// SPDX-FileCopyrightText: 2017 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Clutter from 'gi://Clutter';
|
||||
import Gio from 'gi://Gio';
|
||||
import GObject from 'gi://GObject';
|
||||
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';
|
||||
|
||||
import * as DND from 'resource:///org/gnome/shell/ui/dnd.js';
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
|
||||
const TOOLTIP_OFFSET = 6;
|
||||
const TOOLTIP_ANIMATION_TIME = 150;
|
||||
|
||||
const SCROLL_TIME = 100;
|
||||
|
||||
let baseStyleClassName = '';
|
||||
|
||||
class WindowPreview extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(window) {
|
||||
super({
|
||||
style_class: `${baseStyleClassName}-window-preview`,
|
||||
});
|
||||
|
||||
this._delegate = this;
|
||||
DND.makeDraggable(this, {restoreOnSuccess: true});
|
||||
|
||||
this._window = window;
|
||||
|
||||
this._window.connectObject(
|
||||
'size-changed', () => this._checkRelayout(),
|
||||
'position-changed', () => this._checkRelayout(),
|
||||
'notify::minimized', this._updateVisible.bind(this),
|
||||
'notify::skip-taskbar', this._updateVisible.bind(this),
|
||||
this);
|
||||
this._updateVisible();
|
||||
|
||||
global.display.connectObject('notify::focus-window',
|
||||
this._onFocusChanged.bind(this), this);
|
||||
this._onFocusChanged();
|
||||
}
|
||||
|
||||
// needed for DND
|
||||
get metaWindow() {
|
||||
return this._window;
|
||||
}
|
||||
|
||||
_onFocusChanged() {
|
||||
if (global.display.focus_window === this._window)
|
||||
this.add_style_class_name('active');
|
||||
else
|
||||
this.remove_style_class_name('active');
|
||||
}
|
||||
|
||||
_checkRelayout() {
|
||||
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
if (this._window.get_frame_rect().overlap(workArea))
|
||||
this.queue_relayout();
|
||||
}
|
||||
|
||||
_updateVisible() {
|
||||
this.visible = !this._window.skip_taskbar &&
|
||||
this._window.showing_on_its_workspace();
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceLayout extends Clutter.LayoutManager {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
vfunc_get_preferred_width() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_get_preferred_height() {
|
||||
return [0, 0];
|
||||
}
|
||||
|
||||
vfunc_allocate(container, box) {
|
||||
const monitor = Main.layoutManager.findIndexForActor(container);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
const hscale = box.get_width() / workArea.width;
|
||||
const vscale = box.get_height() / workArea.height;
|
||||
|
||||
for (const child of container) {
|
||||
const childBox = new Clutter.ActorBox();
|
||||
const frameRect = child.metaWindow.get_frame_rect();
|
||||
childBox.set_size(
|
||||
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
||||
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
||||
childBox.set_origin(
|
||||
Math.round((frameRect.x - workArea.x) * hscale),
|
||||
Math.round((frameRect.y - workArea.y) * vscale));
|
||||
child.allocate(childBox);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspaceThumbnail extends St.Button {
|
||||
static [GObject.properties] = {
|
||||
'active': GObject.ParamSpec.boolean(
|
||||
'active', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
false),
|
||||
};
|
||||
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(index) {
|
||||
super();
|
||||
|
||||
const box = new St.BoxLayout({
|
||||
style_class: 'workspace-box',
|
||||
y_expand: true,
|
||||
orientation: Clutter.Orientation.VERTICAL,
|
||||
});
|
||||
this.set_child(box);
|
||||
|
||||
this._preview = new St.Bin({
|
||||
style_class: 'workspace',
|
||||
child: new Clutter.Actor({
|
||||
layout_manager: new WorkspaceLayout(),
|
||||
clip_to_allocation: true,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
}),
|
||||
y_expand: true,
|
||||
});
|
||||
box.add_child(this._preview);
|
||||
|
||||
this._tooltip = new St.Label({
|
||||
style_class: 'dash-label',
|
||||
visible: false,
|
||||
});
|
||||
Main.uiGroup.add_child(this._tooltip);
|
||||
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
this.connect('notify::hover', this._syncTooltip.bind(this));
|
||||
|
||||
this._index = index;
|
||||
this._delegate = this; // needed for DND
|
||||
|
||||
this._windowPreviews = new Map();
|
||||
|
||||
const workspaceManager = global.workspace_manager;
|
||||
this._workspace = workspaceManager.get_workspace_by_index(index);
|
||||
|
||||
this._workspace.bind_property('active',
|
||||
this, 'active',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
|
||||
this._workspace.connectObject(
|
||||
'window-added', (ws, window) => this._addWindow(window),
|
||||
'window-removed', (ws, window) => this._removeWindow(window),
|
||||
this);
|
||||
|
||||
global.display.connectObject('restacked',
|
||||
this._onRestacked.bind(this), this);
|
||||
|
||||
this._workspace.list_windows().forEach(w => this._addWindow(w));
|
||||
this._onRestacked();
|
||||
}
|
||||
|
||||
get active() {
|
||||
return this._preview.has_style_class_name('active');
|
||||
}
|
||||
|
||||
set active(active) {
|
||||
if (active)
|
||||
this._preview.add_style_class_name('active');
|
||||
else
|
||||
this._preview.remove_style_class_name('active');
|
||||
this.notify('active');
|
||||
}
|
||||
|
||||
acceptDrop(source) {
|
||||
if (!source.metaWindow)
|
||||
return false;
|
||||
|
||||
this._moveWindow(source.metaWindow);
|
||||
return true;
|
||||
}
|
||||
|
||||
handleDragOver(source) {
|
||||
if (source.metaWindow)
|
||||
return DND.DragMotionResult.MOVE_DROP;
|
||||
else
|
||||
return DND.DragMotionResult.CONTINUE;
|
||||
}
|
||||
|
||||
_addWindow(window) {
|
||||
if (this._windowPreviews.has(window))
|
||||
return;
|
||||
|
||||
const preview = new WindowPreview(window);
|
||||
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
|
||||
this._windowPreviews.set(window, preview);
|
||||
this._preview.child.add_child(preview);
|
||||
}
|
||||
|
||||
_removeWindow(window) {
|
||||
const preview = this._windowPreviews.get(window);
|
||||
if (!preview)
|
||||
return;
|
||||
|
||||
this._windowPreviews.delete(window);
|
||||
preview.destroy();
|
||||
}
|
||||
|
||||
_onRestacked() {
|
||||
let lastPreview = null;
|
||||
const windows = global.get_window_actors().map(a => a.meta_window);
|
||||
for (let i = 0; i < windows.length; i++) {
|
||||
const preview = this._windowPreviews.get(windows[i]);
|
||||
if (!preview)
|
||||
continue;
|
||||
|
||||
this._preview.child.set_child_above_sibling(preview, lastPreview);
|
||||
lastPreview = preview;
|
||||
}
|
||||
}
|
||||
|
||||
_moveWindow(window) {
|
||||
const monitorIndex = Main.layoutManager.findIndexForActor(this);
|
||||
if (monitorIndex !== window.get_monitor())
|
||||
window.move_to_monitor(monitorIndex);
|
||||
window.change_workspace_by_index(this._index, false);
|
||||
}
|
||||
|
||||
on_clicked() {
|
||||
const ws = global.workspace_manager.get_workspace_by_index(this._index);
|
||||
if (ws)
|
||||
ws.activate(global.get_current_time());
|
||||
}
|
||||
|
||||
_syncTooltip() {
|
||||
if (this.hover) {
|
||||
this._tooltip.set({
|
||||
text: Meta.prefs_get_workspace_name(this._index),
|
||||
visible: true,
|
||||
opacity: 0,
|
||||
});
|
||||
|
||||
const [stageX, stageY] = this.get_transformed_position();
|
||||
const [thumbWidth, thumbHeight] = this.allocation.get_size();
|
||||
const [tipWidth, tipHeight] = this._tooltip.get_size();
|
||||
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 - monitor.y > thumbHeight + TOOLTIP_OFFSET
|
||||
? stageY - tipHeight - TOOLTIP_OFFSET // show above
|
||||
: stageY + thumbHeight + TOOLTIP_OFFSET; // show below
|
||||
this._tooltip.set_position(x, y);
|
||||
}
|
||||
|
||||
this._tooltip.ease({
|
||||
opacity: this.hover ? 255 : 0,
|
||||
duration: TOOLTIP_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (this._tooltip.visible = this.hover),
|
||||
});
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
this._tooltip.destroy();
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspacePreviews extends Clutter.Actor {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(params) {
|
||||
super({
|
||||
...params,
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
reactive: true,
|
||||
y_expand: true,
|
||||
});
|
||||
|
||||
this.connect('scroll-event',
|
||||
(a, event) => Main.wm.handleWorkspaceScroll(event));
|
||||
|
||||
const {workspaceManager} = global;
|
||||
|
||||
workspaceManager.connectObject(
|
||||
'notify::n-workspaces', () => this._updateThumbnails(), GObject.ConnectFlags.AFTER,
|
||||
'workspace-switched', () => this._updateScrollPosition(),
|
||||
this);
|
||||
|
||||
this.connect('notify::mapped', () => {
|
||||
if (this.mapped)
|
||||
this._updateScrollPosition();
|
||||
});
|
||||
|
||||
this._thumbnailsBox = new St.BoxLayout({
|
||||
style_class: 'workspaces-box',
|
||||
y_expand: true,
|
||||
});
|
||||
|
||||
this._scrollView = new St.ScrollView({
|
||||
style_class: 'workspaces-view hfade',
|
||||
enable_mouse_scrolling: false,
|
||||
hscrollbar_policy: St.PolicyType.EXTERNAL,
|
||||
vscrollbar_policy: St.PolicyType.NEVER,
|
||||
y_expand: true,
|
||||
child: this._thumbnailsBox,
|
||||
});
|
||||
|
||||
this.add_child(this._scrollView);
|
||||
|
||||
this._updateThumbnails();
|
||||
}
|
||||
|
||||
_updateThumbnails() {
|
||||
const {nWorkspaces} = global.workspace_manager;
|
||||
|
||||
this._thumbnailsBox.destroy_all_children();
|
||||
|
||||
for (let i = 0; i < nWorkspaces; i++)
|
||||
this._thumbnailsBox.add_child(new WorkspaceThumbnail(i));
|
||||
|
||||
if (this.mapped)
|
||||
this._updateScrollPosition();
|
||||
}
|
||||
|
||||
_updateScrollPosition() {
|
||||
const adjustment = this._scrollView.hadjustment;
|
||||
const {upper, pageSize} = adjustment;
|
||||
let {value} = adjustment;
|
||||
|
||||
const activeWorkspace =
|
||||
[...this._thumbnailsBox].find(a => a.active);
|
||||
|
||||
if (!activeWorkspace)
|
||||
return;
|
||||
|
||||
let offset = 0;
|
||||
const hfade = this._scrollView.get_effect('fade');
|
||||
if (hfade)
|
||||
offset = hfade.fade_margins.left;
|
||||
|
||||
let {x1, x2} = activeWorkspace.get_allocation_box();
|
||||
let parent = activeWorkspace.get_parent();
|
||||
while (parent !== this._scrollView) {
|
||||
if (!parent)
|
||||
throw new Error('actor not in scroll view');
|
||||
|
||||
const box = parent.get_allocation_box();
|
||||
x1 += box.x1;
|
||||
x2 += box.x1;
|
||||
parent = parent.get_parent();
|
||||
}
|
||||
|
||||
if (x1 < value + offset)
|
||||
value = Math.max(0, x1 - offset);
|
||||
else if (x2 > value + pageSize - offset)
|
||||
value = Math.min(upper, x2 + offset - pageSize);
|
||||
else
|
||||
return;
|
||||
|
||||
adjustment.ease(value, {
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
duration: SCROLL_TIME,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
class EditableMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
static [GObject.signals] = {
|
||||
'edited': {},
|
||||
};
|
||||
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super({
|
||||
style_class: 'editable-menu-item',
|
||||
});
|
||||
this.get_accessible()?.set_description(
|
||||
_('Press %s to edit').format('e'));
|
||||
|
||||
const stack = new Shell.Stack({
|
||||
x_expand: true,
|
||||
x_align: Clutter.ActorAlign.START,
|
||||
});
|
||||
this.add_child(stack);
|
||||
|
||||
this.label = new St.Label({
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
stack.add_child(this.label);
|
||||
this.label_actor = this.label;
|
||||
|
||||
this._entry = new St.Entry({
|
||||
opacity: 0,
|
||||
visible: false,
|
||||
});
|
||||
stack.add_child(this._entry);
|
||||
|
||||
this.label.bind_property('text',
|
||||
this._entry, 'text',
|
||||
GObject.BindingFlags.DEFAULT);
|
||||
|
||||
this._entry.clutter_text.connect('activate',
|
||||
() => this._stopEditing());
|
||||
|
||||
this._editButton = new St.Button({
|
||||
style_class: 'icon-button flat',
|
||||
icon_name: 'document-edit-symbolic',
|
||||
button_mask: St.ButtonMask.ONE,
|
||||
toggle_mode: true,
|
||||
x_align: Clutter.ActorAlign.END,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_child(this._editButton);
|
||||
|
||||
this._editButton.connect('notify::checked', () => {
|
||||
if (this._editButton.checked) {
|
||||
this._editButton.icon_name = 'ornament-check-symbolic';
|
||||
this._startEditing();
|
||||
} else {
|
||||
this._editButton.icon_name = 'document-edit-symbolic';
|
||||
this._stopEditing();
|
||||
}
|
||||
});
|
||||
this.connect('key-release-event', (o, event) => {
|
||||
if (event.get_key_symbol() !== Clutter.KEY_e)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
if (this._editButton.checked)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
this._editButton.checked = true;
|
||||
return Clutter.EVENT_STOP;
|
||||
});
|
||||
|
||||
global.stage.connectObject('notify::key-focus', () => {
|
||||
const {keyFocus} = global.stage;
|
||||
if (!keyFocus || !this.contains(keyFocus))
|
||||
this._stopEditing();
|
||||
}, this);
|
||||
}
|
||||
|
||||
_switchActor(from, to) {
|
||||
to.visible = from.visible = true;
|
||||
to.ease({
|
||||
opacity: 255,
|
||||
duration: 300,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
});
|
||||
|
||||
from.ease({
|
||||
opacity: 0,
|
||||
duration: 300,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => {
|
||||
from.visible = false;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
_startEditing() {
|
||||
this._switchActor(this.label, this._entry);
|
||||
|
||||
this._entry.clutter_text.set_selection(0, -1);
|
||||
this._entry.clutter_text.grab_key_focus();
|
||||
}
|
||||
|
||||
_stopEditing() {
|
||||
if (this.label.text !== this._entry.text) {
|
||||
this.label.text = this._entry.text;
|
||||
this.emit('edited');
|
||||
}
|
||||
|
||||
if (this._editButton.checked)
|
||||
this._editButton.checked = false;
|
||||
|
||||
this._switchActor(this._entry, this.label);
|
||||
this.navigate_focus(this, St.DirectionType.TAB_FORWARD, false);
|
||||
}
|
||||
}
|
||||
|
||||
class WorkspacesMenu extends PopupMenu.PopupMenu {
|
||||
constructor(sourceActor) {
|
||||
super(sourceActor, 0.5, St.Side.TOP);
|
||||
|
||||
this.actor.add_style_class_name(`${baseStyleClassName}-menu`);
|
||||
|
||||
this._workspacesSection = new PopupMenu.PopupMenuSection();
|
||||
this.addMenuItem(this._workspacesSection);
|
||||
|
||||
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
|
||||
this.addAction(_('Settings'), () => {
|
||||
const extension = Extension.lookupByURL(import.meta.url);
|
||||
extension.openPreferences();
|
||||
});
|
||||
|
||||
this._desktopSettings =
|
||||
new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
|
||||
this._desktopSettings.connectObject('changed::workspace-names', () => {
|
||||
this._updateWorkspaceLabels();
|
||||
this.emit('active-name-changed');
|
||||
}, this);
|
||||
|
||||
const {workspaceManager} = global;
|
||||
workspaceManager.connectObject(
|
||||
'notify::n-workspaces', () => this._updateWorkspaceItems(),
|
||||
'workspace-switched', () => this._updateActiveIndicator(),
|
||||
this.actor);
|
||||
this._updateWorkspaceItems();
|
||||
}
|
||||
|
||||
get activeName() {
|
||||
const {workspaceManager} = global;
|
||||
const active = workspaceManager.get_active_workspace_index();
|
||||
return Meta.prefs_get_workspace_name(active);
|
||||
}
|
||||
|
||||
_updateWorkspaceItems() {
|
||||
const {workspaceManager} = global;
|
||||
const {nWorkspaces} = workspaceManager;
|
||||
|
||||
const section = this._workspacesSection.actor;
|
||||
while (section.get_n_children() < nWorkspaces) {
|
||||
const item = new EditableMenuItem();
|
||||
item.connect('activate', (o, event) => {
|
||||
const index = [...section].indexOf(item);
|
||||
const workspace = workspaceManager.get_workspace_by_index(index);
|
||||
workspace?.activate(event.get_time());
|
||||
});
|
||||
item.connect('edited', () => {
|
||||
const nLabels = section.get_n_children();
|
||||
const oldNames = this._desktopSettings.get_strv('workspace-names');
|
||||
const newNames = [...section].map(c => c.label.text);
|
||||
this._desktopSettings.set_strv('workspace-names',
|
||||
[...newNames, ...oldNames.slice(nLabels)]);
|
||||
});
|
||||
this._workspacesSection.addMenuItem(item);
|
||||
}
|
||||
|
||||
[...section].splice(nWorkspaces).forEach(item => item.destroy());
|
||||
|
||||
this._updateWorkspaceLabels();
|
||||
this._updateActiveIndicator();
|
||||
}
|
||||
|
||||
_updateWorkspaceLabels() {
|
||||
const items = [...this._workspacesSection.actor];
|
||||
items.forEach(
|
||||
(item, i) => (item.label.text = Meta.prefs_get_workspace_name(i)));
|
||||
}
|
||||
|
||||
_updateActiveIndicator() {
|
||||
const {workspaceManager} = global;
|
||||
const active = workspaceManager.get_active_workspace_index();
|
||||
|
||||
const items = [...this._workspacesSection.actor];
|
||||
items.forEach((item, i) => {
|
||||
item.setOrnament(i === active
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
});
|
||||
this.emit('active-name-changed');
|
||||
}
|
||||
}
|
||||
|
||||
export class WorkspaceIndicator extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(params = {}) {
|
||||
super(0.5, _('Workspace Indicator'), true);
|
||||
|
||||
const {
|
||||
baseStyleClass = 'workspace-indicator',
|
||||
settings,
|
||||
} = params;
|
||||
|
||||
this._settings = settings;
|
||||
|
||||
baseStyleClassName = baseStyleClass;
|
||||
this.add_style_class_name(baseStyleClassName);
|
||||
|
||||
this.setMenu(new WorkspacesMenu(this));
|
||||
|
||||
const container = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
});
|
||||
this.add_child(container);
|
||||
|
||||
this._statusBox = new St.BoxLayout();
|
||||
container.add_child(this._statusBox);
|
||||
|
||||
this._statusLabel = new St.Label({
|
||||
style_class: 'status-label',
|
||||
x_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
text: this.menu.activeName,
|
||||
});
|
||||
this._statusBox.add_child(this._statusLabel);
|
||||
this._statusBox.add_child(new St.Icon({
|
||||
icon_name: 'pan-down-symbolic',
|
||||
style_class: 'system-status-icon',
|
||||
}));
|
||||
|
||||
this.menu.connect('active-name-changed',
|
||||
() => this._statusLabel.set_text(this.menu.activeName));
|
||||
|
||||
this._thumbnails = new WorkspacePreviews();
|
||||
container.add_child(this._thumbnails);
|
||||
|
||||
this._thumbnails.connect('button-press-event', (a, event) => {
|
||||
if (event.get_button() !== Clutter.BUTTON_SECONDARY)
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
|
||||
this.menu.toggle();
|
||||
return Clutter.EVENT_STOP;
|
||||
});
|
||||
|
||||
this.connect('scroll-event',
|
||||
(a, event) => Main.wm.handleWorkspaceScroll(event));
|
||||
|
||||
this._inTopBar = false;
|
||||
this.connect('notify::realized', () => {
|
||||
if (!this.realized)
|
||||
return;
|
||||
|
||||
this._inTopBar = Main.panel.contains(this);
|
||||
this._updateTopBarRedirect();
|
||||
});
|
||||
|
||||
this._settings.connect('changed::embed-previews',
|
||||
() => this._updateThumbnailVisibility());
|
||||
this._updateThumbnailVisibility();
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
if (this._inTopBar)
|
||||
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
|
||||
this._inTopBar = false;
|
||||
|
||||
super._onDestroy();
|
||||
}
|
||||
|
||||
_updateThumbnailVisibility() {
|
||||
const usePreviews = this._settings.get_boolean('embed-previews');
|
||||
this.reactive = !usePreviews;
|
||||
|
||||
this._thumbnails.visible = usePreviews;
|
||||
this._statusBox.visible = !usePreviews;
|
||||
|
||||
if (usePreviews) {
|
||||
this.add_style_class_name('previews');
|
||||
this.remove_style_class_name('name-label');
|
||||
} else {
|
||||
this.remove_style_class_name('previews');
|
||||
this.add_style_class_name('name-label');
|
||||
}
|
||||
|
||||
this._updateTopBarRedirect();
|
||||
}
|
||||
|
||||
_updateTopBarRedirect() {
|
||||
if (!this._inTopBar)
|
||||
return;
|
||||
|
||||
// Disable offscreen-redirect when showing the workspace switcher
|
||||
// so that clip-to-allocation works
|
||||
Main.panel.set_offscreen_redirect(this._thumbnails.visible
|
||||
? Clutter.OffscreenRedirect.ALWAYS
|
||||
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
|
||||
}
|
||||
}
|
||||
135
extensions/workspace-indicator/workspacePrefs.js
Normal file
135
extensions/workspace-indicator/workspacePrefs.js
Normal file
@@ -0,0 +1,135 @@
|
||||
// SPDX-FileCopyrightText: 2012 Giovanni Campagna <gcampagna@src.gnome.org>
|
||||
// SPDX-FileCopyrightText: 2014 Florian Müllner <fmuellner@gnome.org>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GObject from 'gi://GObject';
|
||||
import Gtk from 'gi://Gtk';
|
||||
|
||||
import {gettext as _} from 'resource:///org/gnome/Shell/Extensions/js/extensions/prefs.js';
|
||||
|
||||
class GeneralGroup extends Adw.PreferencesGroup {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(settings) {
|
||||
super({
|
||||
title: _('Indicator'),
|
||||
});
|
||||
|
||||
const previewCheck = new Gtk.CheckButton();
|
||||
const previewRow = new Adw.ActionRow({
|
||||
title: _('Previews'),
|
||||
activatable_widget: previewCheck,
|
||||
});
|
||||
previewRow.add_prefix(previewCheck);
|
||||
this.add(previewRow);
|
||||
|
||||
const nameCheck = new Gtk.CheckButton({
|
||||
group: previewCheck,
|
||||
});
|
||||
const nameRow = new Adw.ActionRow({
|
||||
title: _('Workspace Name'),
|
||||
activatable_widget: nameCheck,
|
||||
});
|
||||
nameRow.add_prefix(nameCheck);
|
||||
this.add(nameRow);
|
||||
|
||||
if (settings.get_boolean('embed-previews'))
|
||||
previewCheck.active = true;
|
||||
else
|
||||
nameCheck.active = true;
|
||||
|
||||
settings.bind('embed-previews',
|
||||
previewCheck, 'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
class BehaviorGroup extends Adw.PreferencesGroup {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super({
|
||||
title: _('Behavior'),
|
||||
});
|
||||
|
||||
const dynamicCheck = new Gtk.CheckButton();
|
||||
const dynamicRow = new Adw.ActionRow({
|
||||
title: _('Dynamic'),
|
||||
subtitle: _('Automatically removes empty workspaces.'),
|
||||
activatable_widget: dynamicCheck,
|
||||
});
|
||||
dynamicRow.add_prefix(dynamicCheck);
|
||||
this.add(dynamicRow);
|
||||
|
||||
const fixedCheck = new Gtk.CheckButton({
|
||||
group: dynamicCheck,
|
||||
});
|
||||
const fixedRow = new Adw.ActionRow({
|
||||
title: _('Fixed Number'),
|
||||
subtitle: _('Specify a number of permanent workspaces.'),
|
||||
activatable_widget: fixedCheck,
|
||||
});
|
||||
fixedRow.add_prefix(fixedCheck);
|
||||
this.add(fixedRow);
|
||||
|
||||
const adjustment = new Gtk.Adjustment({
|
||||
lower: 1,
|
||||
step_increment: 1,
|
||||
value: 4,
|
||||
upper: 36, // hard limit in mutter
|
||||
});
|
||||
const numRow = new Adw.SpinRow({
|
||||
title: _('Number of Workspaces'),
|
||||
adjustment,
|
||||
});
|
||||
this.add(numRow);
|
||||
|
||||
const mutterSettings = new Gio.Settings({
|
||||
schema_id: 'org.gnome.mutter',
|
||||
});
|
||||
|
||||
if (mutterSettings.get_boolean('dynamic-workspaces'))
|
||||
dynamicCheck.active = true;
|
||||
else
|
||||
fixedCheck.active = true;
|
||||
|
||||
mutterSettings.bind('dynamic-workspaces',
|
||||
dynamicCheck, 'active',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
|
||||
const desktopSettings = new Gio.Settings({
|
||||
schema_id: 'org.gnome.desktop.wm.preferences',
|
||||
});
|
||||
|
||||
desktopSettings.bind('num-workspaces',
|
||||
numRow, 'value',
|
||||
Gio.SettingsBindFlags.DEFAULT);
|
||||
|
||||
fixedCheck.bind_property('active',
|
||||
numRow, 'sensitive',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
}
|
||||
}
|
||||
|
||||
export class WorkspacesPage extends Adw.PreferencesPage {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(settings) {
|
||||
super({
|
||||
title: _('Workspaces'),
|
||||
icon_name: 'view-grid-symbolic',
|
||||
});
|
||||
|
||||
this.add(new GeneralGroup(settings));
|
||||
this.add(new BehaviorGroup());
|
||||
}
|
||||
}
|
||||
@@ -32,10 +32,4 @@ and will be picked automatically at next login.
|
||||
<gnome:userid>fmuellner</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
<maintainer>
|
||||
<foaf:Person>
|
||||
<foaf:name>Marge Bot</foaf:name>
|
||||
<gnome:userid>marge-bot</gnome:userid>
|
||||
</foaf:Person>
|
||||
</maintainer>
|
||||
</Project>
|
||||
|
||||
@@ -1,273 +0,0 @@
|
||||
---
|
||||
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
|
||||
# SPDX-FileCopyrightText: 2018 Claudio André <claudioandre.br@gmail.com>
|
||||
env:
|
||||
es2021: true
|
||||
extends: 'eslint:recommended'
|
||||
plugins:
|
||||
- jsdoc
|
||||
rules:
|
||||
array-bracket-newline:
|
||||
- error
|
||||
- consistent
|
||||
array-bracket-spacing:
|
||||
- error
|
||||
- never
|
||||
array-callback-return: error
|
||||
arrow-parens:
|
||||
- error
|
||||
- as-needed
|
||||
arrow-spacing: error
|
||||
block-scoped-var: error
|
||||
block-spacing: error
|
||||
brace-style: error
|
||||
# Waiting for this to have matured a bit in eslint
|
||||
# camelcase:
|
||||
# - error
|
||||
# - properties: never
|
||||
# allow: [^vfunc_, ^on_, _instance_init]
|
||||
comma-dangle:
|
||||
- error
|
||||
- arrays: always-multiline
|
||||
objects: always-multiline
|
||||
functions: never
|
||||
comma-spacing:
|
||||
- error
|
||||
- before: false
|
||||
after: true
|
||||
comma-style:
|
||||
- error
|
||||
- last
|
||||
computed-property-spacing: error
|
||||
curly:
|
||||
- error
|
||||
- multi-or-nest
|
||||
- consistent
|
||||
dot-location:
|
||||
- error
|
||||
- property
|
||||
eol-last: error
|
||||
eqeqeq: error
|
||||
func-call-spacing: error
|
||||
func-name-matching: error
|
||||
func-style:
|
||||
- error
|
||||
- declaration
|
||||
- allowArrowFunctions: true
|
||||
indent:
|
||||
- error
|
||||
- 4
|
||||
- ignoredNodes:
|
||||
# Allow not indenting the body of GObject.registerClass, since in the
|
||||
# future it's intended to be a decorator
|
||||
- 'CallExpression[callee.object.name=GObject][callee.property.name=registerClass] > ClassExpression:first-child'
|
||||
# Allow dedenting chained member expressions
|
||||
MemberExpression: 'off'
|
||||
jsdoc/check-alignment: error
|
||||
jsdoc/check-param-names: error
|
||||
jsdoc/check-tag-names: error
|
||||
jsdoc/check-types: error
|
||||
jsdoc/implements-on-classes: error
|
||||
jsdoc/tag-lines:
|
||||
- error
|
||||
- any
|
||||
- startLines: 1
|
||||
jsdoc/require-jsdoc: error
|
||||
jsdoc/require-param: error
|
||||
jsdoc/require-param-description: error
|
||||
jsdoc/require-param-name: error
|
||||
jsdoc/require-param-type: error
|
||||
key-spacing:
|
||||
- error
|
||||
- beforeColon: false
|
||||
afterColon: true
|
||||
keyword-spacing:
|
||||
- error
|
||||
- before: true
|
||||
after: true
|
||||
linebreak-style:
|
||||
- error
|
||||
- unix
|
||||
lines-between-class-members:
|
||||
- error
|
||||
- always
|
||||
- exceptAfterSingleLine: true
|
||||
max-nested-callbacks: error
|
||||
max-statements-per-line: error
|
||||
new-parens: error
|
||||
no-array-constructor: error
|
||||
no-await-in-loop: error
|
||||
no-caller: error
|
||||
no-constant-condition:
|
||||
- error
|
||||
- checkLoops: false
|
||||
no-div-regex: error
|
||||
no-empty:
|
||||
- error
|
||||
- allowEmptyCatch: true
|
||||
no-extra-bind: error
|
||||
no-extra-parens:
|
||||
- error
|
||||
- all
|
||||
- conditionalAssign: false
|
||||
nestedBinaryExpressions: false
|
||||
returnAssign: false
|
||||
no-implicit-coercion:
|
||||
- error
|
||||
- allow:
|
||||
- '!!'
|
||||
no-invalid-this: error
|
||||
no-iterator: error
|
||||
no-label-var: error
|
||||
no-lonely-if: error
|
||||
no-loop-func: error
|
||||
no-nested-ternary: error
|
||||
no-new-object: error
|
||||
no-new-wrappers: error
|
||||
no-octal-escape: error
|
||||
no-proto: error
|
||||
no-prototype-builtins: 'off'
|
||||
no-restricted-globals: [error, window]
|
||||
no-restricted-properties:
|
||||
- error
|
||||
- object: imports
|
||||
property: format
|
||||
message: Use template strings
|
||||
- object: pkg
|
||||
property: initFormat
|
||||
message: Use template strings
|
||||
- object: Lang
|
||||
property: copyProperties
|
||||
message: Use Object.assign()
|
||||
- object: Lang
|
||||
property: bind
|
||||
message: Use arrow notation or Function.prototype.bind()
|
||||
- object: Lang
|
||||
property: Class
|
||||
message: Use ES6 classes
|
||||
no-restricted-syntax:
|
||||
- error
|
||||
- selector: >-
|
||||
MethodDefinition[key.name="_init"] >
|
||||
FunctionExpression[params.length=1] >
|
||||
BlockStatement[body.length=1]
|
||||
CallExpression[arguments.length=1][callee.object.type="Super"][callee.property.name="_init"] >
|
||||
Identifier:first-child
|
||||
message: _init() that only calls super._init() is unnecessary
|
||||
- selector: >-
|
||||
MethodDefinition[key.name="_init"] >
|
||||
FunctionExpression[params.length=0] >
|
||||
BlockStatement[body.length=1]
|
||||
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
|
||||
message: _init() that only calls super._init() is unnecessary
|
||||
- selector: BinaryExpression[operator="instanceof"][right.name="Array"]
|
||||
message: Use Array.isArray()
|
||||
no-return-assign: error
|
||||
no-return-await: error
|
||||
no-self-compare: error
|
||||
no-shadow: error
|
||||
no-shadow-restricted-names: error
|
||||
no-spaced-func: error
|
||||
no-tabs: error
|
||||
no-template-curly-in-string: error
|
||||
no-throw-literal: error
|
||||
no-trailing-spaces: error
|
||||
no-undef-init: error
|
||||
no-unneeded-ternary: error
|
||||
no-unused-expressions: error
|
||||
no-unused-vars:
|
||||
- error
|
||||
# Vars use a suffix _ instead of a prefix because of file-scope private vars
|
||||
- varsIgnorePattern: (^unused|_$)
|
||||
argsIgnorePattern: ^(unused|_)
|
||||
no-useless-call: error
|
||||
no-useless-computed-key: error
|
||||
no-useless-concat: error
|
||||
no-useless-constructor: error
|
||||
no-useless-rename: error
|
||||
no-useless-return: error
|
||||
no-whitespace-before-property: error
|
||||
no-with: error
|
||||
nonblock-statement-body-position:
|
||||
- error
|
||||
- below
|
||||
object-curly-newline:
|
||||
- error
|
||||
- consistent: true
|
||||
multiline: true
|
||||
object-curly-spacing: error
|
||||
object-shorthand: error
|
||||
operator-assignment: error
|
||||
operator-linebreak: error
|
||||
padded-blocks:
|
||||
- error
|
||||
- never
|
||||
# These may be a bit controversial, we can try them out and enable them later
|
||||
# prefer-const: error
|
||||
# prefer-destructuring: error
|
||||
prefer-numeric-literals: error
|
||||
prefer-promise-reject-errors: error
|
||||
prefer-rest-params: error
|
||||
prefer-spread: error
|
||||
prefer-template: error
|
||||
quotes:
|
||||
- error
|
||||
- single
|
||||
- avoidEscape: true
|
||||
require-await: error
|
||||
rest-spread-spacing: error
|
||||
semi:
|
||||
- error
|
||||
- always
|
||||
semi-spacing:
|
||||
- error
|
||||
- before: false
|
||||
after: true
|
||||
semi-style: error
|
||||
space-before-blocks: error
|
||||
space-before-function-paren:
|
||||
- error
|
||||
- named: never
|
||||
# for `function ()` and `async () =>`, preserve space around keywords
|
||||
anonymous: always
|
||||
asyncArrow: always
|
||||
space-in-parens: error
|
||||
space-infix-ops:
|
||||
- error
|
||||
- int32Hint: false
|
||||
space-unary-ops: error
|
||||
spaced-comment: error
|
||||
switch-colon-spacing: error
|
||||
symbol-description: error
|
||||
template-curly-spacing: error
|
||||
template-tag-spacing: error
|
||||
unicode-bom: error
|
||||
wrap-iife:
|
||||
- error
|
||||
- inside
|
||||
yield-star-spacing: error
|
||||
yoda: error
|
||||
settings:
|
||||
jsdoc:
|
||||
mode: typescript
|
||||
globals:
|
||||
ARGV: readonly
|
||||
Debugger: readonly
|
||||
GIRepositoryGType: readonly
|
||||
globalThis: readonly
|
||||
imports: readonly
|
||||
Intl: readonly
|
||||
log: readonly
|
||||
logError: readonly
|
||||
print: readonly
|
||||
printerr: readonly
|
||||
window: readonly
|
||||
TextEncoder: readonly
|
||||
TextDecoder: readonly
|
||||
console: readonly
|
||||
setTimeout: readonly
|
||||
setInterval: readonly
|
||||
clearTimeout: readonly
|
||||
clearInterval: readonly
|
||||
parserOptions:
|
||||
ecmaVersion: 2022
|
||||
@@ -1,24 +0,0 @@
|
||||
# SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
#
|
||||
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
|
||||
|
||||
rules:
|
||||
camelcase:
|
||||
- error
|
||||
- properties: never
|
||||
allow: [^vfunc_, ^on_]
|
||||
consistent-return: error
|
||||
eqeqeq:
|
||||
- error
|
||||
- smart
|
||||
prefer-arrow-callback: error
|
||||
jsdoc/require-param-description: off
|
||||
jsdoc/require-jsdoc:
|
||||
- error
|
||||
- exemptEmptyFunctions: true
|
||||
publicOnly:
|
||||
esm: true
|
||||
globals:
|
||||
global: readonly
|
||||
parserOptions:
|
||||
sourceType: module
|
||||
51
meson.build
51
meson.build
@@ -2,10 +2,11 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
project('gnome-shell-extensions',
|
||||
version: '46.2',
|
||||
meson_version: '>= 0.58.0',
|
||||
license: 'GPL2+'
|
||||
project(
|
||||
'gnome-shell-extensions',
|
||||
version: '50.alpha',
|
||||
meson_version: '>= 1.1.0',
|
||||
license: 'GPL-2.0-or-later',
|
||||
)
|
||||
|
||||
gettext_domain = meson.project_name()
|
||||
@@ -22,9 +23,15 @@ modedir = join_paths(shelldir, 'modes')
|
||||
|
||||
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
|
||||
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
|
||||
xsessiondir = join_paths(datadir, 'xsessions')
|
||||
wlsessiondir = join_paths(datadir, 'wayland-sessions')
|
||||
|
||||
systemd_dep = dependency('systemd', required: false)
|
||||
systemd_userunitdir = systemd_dep.get_variable(
|
||||
pkgconfig: 'systemduserunitdir',
|
||||
pkgconfig_define: ['prefix', get_option('prefix')],
|
||||
default_value: get_option('prefix') / 'lib' / 'systemd' / 'user',
|
||||
)
|
||||
|
||||
ver_arr = meson.project_version().split('.')
|
||||
shell_version = ver_arr[0]
|
||||
|
||||
@@ -34,7 +41,7 @@ classic_extensions = [
|
||||
'apps-menu',
|
||||
'places-menu',
|
||||
'launch-new-instance',
|
||||
'window-list'
|
||||
'window-list',
|
||||
]
|
||||
|
||||
default_extensions = classic_extensions
|
||||
@@ -42,17 +49,14 @@ default_extensions += [
|
||||
'drive-menu',
|
||||
'light-style',
|
||||
'screenshot-window-sizer',
|
||||
'status-icons',
|
||||
'system-monitor',
|
||||
'windowsNavigator',
|
||||
'workspace-indicator'
|
||||
'workspace-indicator',
|
||||
]
|
||||
|
||||
all_extensions = default_extensions
|
||||
all_extensions += [
|
||||
'auto-move-windows',
|
||||
'native-window-placement',
|
||||
'user-theme'
|
||||
]
|
||||
all_extensions += ['auto-move-windows', 'native-window-placement', 'user-theme']
|
||||
|
||||
enabled_extensions = get_option('enable_extensions')
|
||||
|
||||
@@ -71,11 +75,10 @@ endif
|
||||
classic_mode_enabled = get_option('classic_mode')
|
||||
|
||||
if classic_mode_enabled
|
||||
# Sanity check: Make sure all classic extensions are enabled
|
||||
# Sanity check: Make sure all classic extensions are enabled
|
||||
foreach e : classic_extensions
|
||||
if not enabled_extensions.contains(e)
|
||||
error('Classic mode is enabled, ' +
|
||||
'but the required extension @0@ is not.'.format(e))
|
||||
error(f'Classic mode is enabled, but the required extension @e@ is not')
|
||||
endif
|
||||
endforeach
|
||||
endif
|
||||
@@ -83,32 +86,24 @@ endif
|
||||
# Sanity check: Make sure enabled extensions are valid
|
||||
foreach e : enabled_extensions
|
||||
if not all_extensions.contains(e)
|
||||
error('Invalid extension @0@.'.format(e))
|
||||
error(f'Invalid extension @e@.')
|
||||
endif
|
||||
endforeach
|
||||
|
||||
if classic_mode_enabled
|
||||
subdir('data')
|
||||
meson.add_install_script(
|
||||
'meson/session-post-install.py',
|
||||
join_paths(get_option('prefix'), datadir)
|
||||
)
|
||||
endif
|
||||
|
||||
subdir('extensions')
|
||||
subdir('po')
|
||||
|
||||
gnome.post_install(
|
||||
glib_compile_schemas: true,
|
||||
)
|
||||
gnome.post_install(glib_compile_schemas: true)
|
||||
|
||||
meson.add_dist_script('meson/check-version.py',
|
||||
meson.project_version(),
|
||||
'NEWS')
|
||||
meson.add_dist_script('build-aux/check-version.py', meson.project_version(), 'NEWS')
|
||||
|
||||
summary_options = {
|
||||
'extensions': enabled_extensions,
|
||||
'classic_mode': get_option('classic_mode'),
|
||||
'extensions': enabled_extensions,
|
||||
'classic_mode': get_option('classic_mode'),
|
||||
}
|
||||
|
||||
summary_dirs = {
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
# SPDX-FileCopyrightText: 2021 Neal Gompa <ngompa@fedoraproject.org>
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
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)
|
||||
@@ -29,6 +29,7 @@ he
|
||||
hi
|
||||
hr
|
||||
hu
|
||||
ia
|
||||
id
|
||||
is
|
||||
it
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
data/gnome-classic.desktop.in
|
||||
data/gnome-classic-wayland.desktop.in
|
||||
data/gnome-classic-xorg.desktop.in
|
||||
extensions/apps-menu/extension.js
|
||||
extensions/auto-move-windows/extension.js
|
||||
extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml
|
||||
@@ -17,7 +15,7 @@ extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml
|
||||
extensions/window-list/extension.js
|
||||
extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml
|
||||
extensions/window-list/prefs.js
|
||||
extensions/window-list/workspaceIndicator.js
|
||||
extensions/windowsNavigator/extension.js
|
||||
extensions/workspace-indicator/extension.js
|
||||
extensions/workspace-indicator/prefs.js
|
||||
extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml
|
||||
extensions/workspace-indicator/workspaceIndicator.js
|
||||
extensions/workspace-indicator/workspacePrefs.js
|
||||
|
||||
192
po/be.po
192
po/be.po
@@ -8,8 +8,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-15 08:27+0300\n"
|
||||
"POT-Creation-Date: 2025-06-18 23:32+0000\n"
|
||||
"PO-Revision-Date: 2025-06-21 15:51+0300\n"
|
||||
"Last-Translator: Yuras Shumovich <shumovichy@gmail.com>\n"
|
||||
"Language-Team: Belarusian <i18n-bel-gnome@googlegroups.com>\n"
|
||||
"Language: be\n"
|
||||
@@ -18,7 +18,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
||||
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Generator: Poedit 3.5\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -37,11 +37,11 @@ msgstr "Класічны GNOME на Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "Класічны GNOME на Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Абраныя"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Праграмы"
|
||||
|
||||
@@ -57,17 +57,17 @@ msgstr ""
|
||||
"Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *."
|
||||
"desktop), затым двукроп'е і нумар працоўнай прасторы"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Правілы для працоўнай прасторы"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "Дадаць правіла"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Не ўдалося выняць дыск «%s»:"
|
||||
@@ -91,7 +91,7 @@ msgid ""
|
||||
"This setting applies only with the natural placement strategy."
|
||||
msgstr ""
|
||||
"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз "
|
||||
"змяненне суадносін бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры "
|
||||
"змяненне суадносін бакоў экрана, ушчыльняючы іх, каб зменшыць памеры "
|
||||
"абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным "
|
||||
"размяшчэннем мініяцюр."
|
||||
|
||||
@@ -105,37 +105,44 @@ msgid ""
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
"restarting the shell to have any effect."
|
||||
msgstr ""
|
||||
"Калі выбрана, подпіс акна будзе над мініяцюрай, а не пад ей (як "
|
||||
"Калі выбрана, подпіс акна будзе над мініяцюрай, а не пад ёй (як "
|
||||
"перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць "
|
||||
"абалонку."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Месцы"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Не ўдалося запусціць «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Не ўдалося прымацаваць том для «%s»."
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Камп'ютар"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Хатняя папка"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Агляд сеткі"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Нядаўнія"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "Абраныя"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "Сетка"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "Сметніца"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -157,49 +164,49 @@ msgstr "Статыстыка выкарыстання памяці"
|
||||
msgid "Swap stats"
|
||||
msgstr "Статыстыка выкарыстання своп"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Статыстыка адпраўлення даных"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Статыстыка атрымання даных"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Статыстыка сістэмы"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Паказваць"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "Працэсар"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Памяць"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Своп"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Атрыманне"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Адпраўленне"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Адкрыць сістэмны манітор"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Паказваць выкарыстанне працэссара"
|
||||
msgstr "Паказваць выкарыстанне працэсара"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
@@ -225,47 +232,47 @@ msgstr "Назва тэмы"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Закрыць"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "Скасаваць згортванне"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "Згарнуць"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "Скасаваць разгортванне"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "Разгарнуць"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Згарнуць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Скасаваць згортванне для ўсіх"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Разгарнуць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Скасаваць разгортванне для ўсіх"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Закрыць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Спіс вокнаў"
|
||||
|
||||
@@ -282,7 +289,7 @@ msgstr ""
|
||||
"значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Паказваць вокны з усіх працоўных прастор"
|
||||
|
||||
@@ -301,43 +308,102 @@ msgid ""
|
||||
msgstr ""
|
||||
"Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Паказваць папярэдні прагляд працоўных прастор у спісе акон"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "Групаванне вокнаў"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Ніколі не групаваць вокны"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Групаваць вокны калі не хапае месца"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Заўсёды групаваць вокны"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Паказваць на ўсіх маніторах"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Паказваць папярэдні прагляд працоўных прастор у верхняй панэлі"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Press %s to edit"
|
||||
msgstr "Націсніце %s, каб змяніць"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:512
|
||||
msgid "Settings"
|
||||
msgstr "Налады"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:592
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Індыкатар працоўнай прасторы"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "Індыкатар"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "Перадпрагляд"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "Назва працоўнай прасторы"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "Паводзіны"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "Дынамічная"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "Пустыя працоўныя прасторы выдаляюцца аўтаматычна."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "Фіксаваная колькасць'"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "Вызначыце колькасць пастаянных працоўных прастор."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "Колькасць працоўных прастор"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "Працоўныя прасторы"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Працоўная прастора %d"
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "Працоўная прастора %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "Назвы працоўных прастор"
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "Дадаць працоўную прастору"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "Дадаць працоўную прастору"
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "Выдаліць"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Камп'ютар"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Паказваць папярэдні прагляд працоўных прастор"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Праграмы"
|
||||
@@ -403,7 +469,7 @@ msgstr "Дадаць працоўную прастору"
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr ""
|
||||
#~ "Калі не пуста, ўтрымлівае тэкст, які будзе паказвацца пры націсканні на "
|
||||
#~ "Калі не пуста, змяшчае тэкст, які будзе паказвацца пры націсканні на "
|
||||
#~ "панэль."
|
||||
|
||||
#~ msgid "Message"
|
||||
|
||||
356
po/bg.po
356
po/bg.po
@@ -1,272 +1,410 @@
|
||||
# Bulgarian translation for gnome-shell-extensions po-file.
|
||||
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc.
|
||||
# Copyright (C) 2021, 2022 Alexander Shopov <ash@kambanaria.org>.
|
||||
# Copyright (C) 2024 twlvnn kraftwerk <kraft_werk@tutanota.com>.
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014.
|
||||
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021, 2022.
|
||||
# Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
|
||||
# twlvnn kraftwerk <kraft_werk@tutanota.com>, 2024.
|
||||
# @pacu23, 2025
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"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-02-12 20:25+0000\n"
|
||||
"PO-Revision-Date: 2022-02-13 11:40+0100\n"
|
||||
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
|
||||
"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
|
||||
"POT-Creation-Date: 2025-11-05 13:44+0000\n"
|
||||
"PO-Revision-Date: 2026-01-01 18:41+0200\n"
|
||||
"Last-Translator: @pacu23\n"
|
||||
"Language-Team: Bulgarian <dict@ludost.net>\n"
|
||||
"Language: bg\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.8\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
#: data/gnome-classic.desktop.in:2
|
||||
msgid "GNOME Classic"
|
||||
msgstr "Класически GNOME"
|
||||
|
||||
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
|
||||
#: data/gnome-classic-xorg.desktop.in:4
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Работната среда изглежда като класическия GNOME (2.x)"
|
||||
msgstr "Тази сесия влизa в Класически GNOME"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-wayland.desktop.in:2
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "Класически GNOME в Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:2
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "Класически GNOME в Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Любими"
|
||||
|
||||
#: extensions/apps-menu/extension.js:370
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Програми"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Списък с програмите и работните плотове"
|
||||
msgstr "Списък с програмите и работните пространства"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
msgstr ""
|
||||
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
|
||||
"desktop“), следван от знака „:“ и номер на работен плот"
|
||||
"Списък от низове, всеки съдържащ идентификатор на програма (име на desktop "
|
||||
"файла), последван от двоеточие и номер на работното пространство"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:19
|
||||
#: extensions/auto-move-windows/prefs.js:157
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Правила за работните плотове"
|
||||
msgstr "Правила за работните пространства"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:245
|
||||
#: extensions/auto-move-windows/prefs.js:312
|
||||
msgid "Add Rule"
|
||||
msgstr "Добавяне на правило"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:210
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Неуспешно изваждане на устройство „%s“:"
|
||||
msgstr "Неуспешно изваждане на устройството „%s\":"
|
||||
|
||||
#: extensions/drive-menu/extension.js:139
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Преносими медии"
|
||||
msgstr "Преносими устройства"
|
||||
|
||||
#: extensions/drive-menu/extension.js:161
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
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:11
|
||||
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:12
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
"This setting applies only with the natural placement strategy."
|
||||
msgstr ""
|
||||
"Използване на по-голяма част от екрана за поставянето на мини изображения "
|
||||
"чрез промяна на съотношението на страните и допълнително обединяване за "
|
||||
"смаляване на обхващащия ги правоъгълник. Тази настройка се прилага само при "
|
||||
"естествената стратегия за поставяне на прозорците."
|
||||
"Опитва се да използва повече от екрана за разполагането на миниатюри на "
|
||||
"прозорци, като се адаптира към съотношението на страните на екрана и "
|
||||
"уплътнява подредбата, за да намали ограничителната рамка. Тази настройка се "
|
||||
"прилага само за метода на естествено разполагане."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Заглавия на прозорците отгоре"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
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 ""
|
||||
"Ако е истина, заглавията на прозорците се поставят над мини изображенията "
|
||||
"им, а не както е стандартно — отдолу. За прилагане на промяната на "
|
||||
"настройката трябва да рестартирате обвивката на GNOME."
|
||||
"Ако е включено, заглавията на прозорците ще се поставят над съответната "
|
||||
"миниатюра, вместо по подразбиране в долната ѝ част. За да влезе в сила, тази "
|
||||
"промяна изисква рестартиране на обвивката на GNOME."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Места"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:49
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Неуспешно стартиране на „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:64
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, 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
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Домашна папка"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:381
|
||||
msgid "Browse Network"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Скорошни"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "Отбелязани"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "Мрежа"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "Кошче"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Смяна на размерите на снимката на екрана"
|
||||
msgstr "Превключване между размерите на екранната снимка"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Смяна на размерите на снимката на екрана наобратно"
|
||||
msgstr "Обратно превключване на размерите на екранната снимка"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Статистика на процесора"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Статистика на паметта"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Статистика на виртуалната памет"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Статистика за качването"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Статистика за изтеглянето"
|
||||
|
||||
#: extensions/system-monitor/extension.js:365
|
||||
msgid "System stats"
|
||||
msgstr "Системна статистика"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
msgid "Show"
|
||||
msgstr "Показване"
|
||||
|
||||
#: extensions/system-monitor/extension.js:415
|
||||
msgid "CPU"
|
||||
msgstr "Процесор"
|
||||
|
||||
#: extensions/system-monitor/extension.js:417
|
||||
msgid "Memory"
|
||||
msgstr "Памет"
|
||||
|
||||
#: extensions/system-monitor/extension.js:419
|
||||
msgid "Swap"
|
||||
msgstr "Виртуалната памет"
|
||||
|
||||
#: extensions/system-monitor/extension.js:421
|
||||
msgid "Upload"
|
||||
msgstr "Качване"
|
||||
|
||||
#: extensions/system-monitor/extension.js:423
|
||||
msgid "Download"
|
||||
msgstr "Изтегляне"
|
||||
|
||||
#: extensions/system-monitor/extension.js:428
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Отваряне на „Наблюдение на системата“"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Показване на използването на процесора"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Показване на използването на паметта"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Показване на използването на виртуалната памет"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Показване на качването"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Показване на изтеглянето"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Име на темата"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
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"
|
||||
msgstr "Затваряне"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "Деминимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "Минимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "Демаксимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "Максимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Минимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Деминимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Максимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Демаксимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Затваряне на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Списък на прозорците"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Кога прозорците да се групират"
|
||||
msgstr "Кога да се групират прозорците"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
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:76
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:74
|
||||
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 ""
|
||||
"Дали да се показват прозорците от всички работни плотове или само от текущия."
|
||||
msgstr "Показване на прозорците от всички работни пространства"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Извеждане на списъка с прозорци на всички монитори"
|
||||
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:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Показване на списъка с прозорци на всички монитори"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
msgstr ""
|
||||
"Дали списъкът с прозорци да се извежда на всички монитори или само на "
|
||||
"основния"
|
||||
"Дали да се показва списъкът с прозорци на всички свързани монитори или само "
|
||||
"на основния."
|
||||
|
||||
#: extensions/window-list/prefs.js:32
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Показване на прегледа на работните пространства"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "Групиране на прозорци"
|
||||
|
||||
#: extensions/window-list/prefs.js:37
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Никога да не се групират"
|
||||
|
||||
#: extensions/window-list/prefs.js:38
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Групиране при ограничено място"
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Винаги да се групират"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "На всички монитори"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Индикатор на работните плотове"
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Визуализиране на работните пространства в горната лента"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:18
|
||||
msgid "Workspace Names"
|
||||
msgstr "Имена на работните плотове"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:39
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Работен плот %d"
|
||||
msgid "Press %s to edit"
|
||||
msgstr "Натиснете %s за редактирате"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:184
|
||||
msgid "Add Workspace"
|
||||
msgstr "Добавяне на работен плот"
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:518
|
||||
msgid "Settings"
|
||||
msgstr "Настройки"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:598
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Индикатор на работните пространства"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "Индикатор"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "Прегледи"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "Име на работното пространство"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "Поведение"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "Динамично"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "Автоматично премахва празните работни пространства."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "Фиксиран брой"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "Посочете брой постоянни работни пространства."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "Брой работни пространства"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "Работни пространства"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Компютър"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Визуализиране на работните пространства"
|
||||
|
||||
#~ msgid "Show Previews In Top Bar"
|
||||
#~ msgstr "Визуализиране в горната лента"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Програми"
|
||||
|
||||
211
po/ca.po
211
po/ca.po
@@ -1,22 +1,25 @@
|
||||
# Catalan translation for gnome-shell-extensions.
|
||||
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Jordi Mas i Hernàndez <jmas@softcatala.org>, 2011, 2024
|
||||
# Jordi Mas i Hernandez <jmas@softcatala.org>, 2011.
|
||||
# Gil Forcada <gilforcada@guifi.net>, 2012, 2013, 2014.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
|
||||
"POT-Creation-Date: 2024-05-23 16:39+0000\n"
|
||||
"PO-Revision-Date: 2024-05-23 13:29+0100\n"
|
||||
"Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2025-06-18 23:32+0000\n"
|
||||
"PO-Revision-Date: 2025-06-29 09:56+0200\n"
|
||||
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
|
||||
"Language-Team: Catalan <tradgnome@softcatala.org>\n"
|
||||
"Language: ca\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
"X-Generator: Poedit 3.2.2\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -35,11 +38,11 @@ msgstr "GNOME clàssic amb Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME clàssic amb Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Preferides"
|
||||
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Aplicacions"
|
||||
|
||||
@@ -56,17 +59,17 @@ msgstr ""
|
||||
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
|
||||
"número de l'espai de treball"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regles dels espais de treball"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "Afegeix una regla"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Ha fallat l'expulsió de la unitat «%s»:"
|
||||
@@ -106,37 +109,44 @@ msgid ""
|
||||
"restarting the shell to have any effect."
|
||||
msgstr ""
|
||||
"Si és «true» (cert), posiciona el títol de la finestra damunt de la "
|
||||
"miniatura corresponent, substituint el comportament per defecte del Shell de"
|
||||
" posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi "
|
||||
"tingui efecte."
|
||||
"miniatura corresponent, substituint el comportament per defecte del Shell de "
|
||||
"posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui "
|
||||
"efecte."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Llocs"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "No s'ha pogut iniciar «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "No s'ha pogut muntar el volum «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Ordinador"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Inici"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Navega per la xarxa"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Recent"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "Destacat"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "Xarxa"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "Paperera"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -148,7 +158,7 @@ msgstr "Mostra cíclicament cap enrere mides de captura de pantalla"
|
||||
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Estadístiques de la CPU"
|
||||
msgstr "Estadístiques de processador"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
@@ -156,7 +166,7 @@ msgstr "Estadístiques de memòria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Estadístiques de l'intercanvi"
|
||||
msgstr "Estadístiques del «swap»"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
@@ -164,7 +174,7 @@ msgstr "Estadístiques de pujada"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Estadístiques de baixada"
|
||||
msgstr "Estadístiques de descàrrega"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
@@ -176,7 +186,7 @@ msgstr "Mostra"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
msgstr "Processador"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
@@ -184,39 +194,39 @@ msgstr "Memòria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Intercanvi"
|
||||
msgstr "Espai d'intercanvi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Pujada"
|
||||
msgstr "Pujades"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Baixada"
|
||||
msgstr "Descàrregues"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Obre el monitor del sistema"
|
||||
msgstr "Obre el Monitor del sistema"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Mostra l'ús de la CPU"
|
||||
msgstr "Mostra l'ús de CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Mostra l'ús de la memòria"
|
||||
msgstr "Mostra l'ús de memòria"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Mostra l'ús d'intercanvi"
|
||||
msgstr "Mostra l'ús de l'espai d'intercanvi"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Mostra la pujada"
|
||||
msgstr "Mostra les pujades"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Mostra la baixada"
|
||||
msgstr "Mostra les descàrregues"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
@@ -226,47 +236,47 @@ msgstr "Nom del tema"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Tanca"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "Desminimitza"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "Minimitza"
|
||||
|
||||
#: extensions/window-list/extension.js:106
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximitza"
|
||||
|
||||
#: extensions/window-list/extension.js:106
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "Maximitza"
|
||||
|
||||
#: extensions/window-list/extension.js:471
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:477
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Desminimitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:483
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:491
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:499
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Tanca-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:773
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Llista de finestres"
|
||||
|
||||
@@ -280,11 +290,11 @@ msgid ""
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
msgstr ""
|
||||
"Decideix quan s'han d'agrupar les finestres de la mateixa aplicació a la "
|
||||
"llista de finestres. Els valors possibles són: «never» (mai), «auto» "
|
||||
"(automàticament) i «always» (sempre)."
|
||||
"llista de finestres. Els valors possibles són: «never» (mai), "
|
||||
"«auto» (automàticament) i «always» (sempre)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostra les finestres de tots els espais de treball"
|
||||
|
||||
@@ -306,41 +316,104 @@ msgstr ""
|
||||
"Si es mostra la llista de finestres en tots els monitors connectats o només "
|
||||
"al primari."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr ""
|
||||
"Mostra les previsualitzacions dels espais de treball a la llista de finestres"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "Agrupació de finestres"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Mai agrupis les finestres"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Agrupa les finestres quan l'espai estigui limitat"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Agrupa les finestres sempre"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostra a tots els monitors"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:255
|
||||
#: extensions/workspace-indicator/extension.js:261
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr ""
|
||||
"Mostra les previsualitzacions dels espais de treball a la barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Press %s to edit"
|
||||
msgstr "Premeu %s per editar"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:512
|
||||
msgid "Settings"
|
||||
msgstr "Paràmetres"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:592
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de l'espai de treball"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "Indicador"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "Previsualitzacions"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "Nom de l'espai de treball"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "Comportament"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "Dinàmica"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "Suprimeix automàticament els espais de treball buits."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "Nombre fix"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "Especifiqueu un nombre d'espais de treball permanents."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "Nombre d'espais de treball"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "Espais de treball"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espai de treball %d"
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "Espai de treball %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "Noms dels espais de treball"
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "Afegeix un espai de treball"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "Afegeix un espai de treball"
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "Suprimeix"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Ordinador"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Mostra les previsualitzacions dels espais de treball"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplicacions"
|
||||
|
||||
195
po/cs.po
195
po/cs.po
@@ -3,14 +3,15 @@
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Petr Kovar <pknbe@volny.cz>, 2013.
|
||||
# Marek Černocký <marek@manet.cz>, 2011, 2012, 2013, 2014, 2015, 2017, 2019, 2020, 2022.
|
||||
# Vojtěch Perník <translations@pervoj.cz>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-07 15:08+0100\n"
|
||||
"POT-Creation-Date: 2025-08-14 10:26+0000\n"
|
||||
"PO-Revision-Date: 2025-08-18 23:54+0200\n"
|
||||
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
|
||||
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\n"
|
||||
@@ -18,30 +19,30 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Generator: Poedit 3.6\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
#: data/gnome-classic.desktop.in:2
|
||||
msgid "GNOME Classic"
|
||||
msgstr "GNOME klasik"
|
||||
|
||||
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
|
||||
#: data/gnome-classic-xorg.desktop.in:4
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Toto sezení vás přihlásí do GNOME klasik"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-wayland.desktop.in:2
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME klasik na Waylandu"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:2
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME klasik na Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Oblíbené"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Aplikace"
|
||||
|
||||
@@ -57,17 +58,17 @@ msgstr ""
|
||||
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
|
||||
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Pravidla pracovních ploch"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "Přidat pravidlo"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Vysunutí disku „%s“ selhalo:"
|
||||
@@ -108,33 +109,40 @@ msgstr ""
|
||||
"přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
|
||||
"nastavení vyžaduje restart shellu, aby se projevila."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Místa"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Selhalo spuštění „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Selhalo připojení svazku pro „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Počítač"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Domů"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Procházet síť"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Nedávné"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "Oblíbené"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "Síť"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "Koš"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -156,43 +164,43 @@ msgstr "Statistiky paměti"
|
||||
msgid "Swap stats"
|
||||
msgstr "Statistiky odkládacího prostoru"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Statistiky nahrávání"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Statistiky stahování"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Statistiky systému"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Zobrazit"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Paměť"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Odkládací prostor"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Nahrávání"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Stahování"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Otevřít Sledování systému"
|
||||
|
||||
@@ -224,47 +232,47 @@ msgstr "Název motivu"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Zavřít"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "Zrušit minimalizaci"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "Minimalizovat"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "Zrušit maximalizaci"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizovat"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimalizovat všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Zrušit minimalizaci všech"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximalizovat všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Zrušit maximalizaci všech"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Zavřít všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Seznam oken"
|
||||
|
||||
@@ -281,7 +289,7 @@ msgstr ""
|
||||
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Zobrazovat okna ze všech pracovních ploch"
|
||||
|
||||
@@ -301,43 +309,102 @@ msgstr ""
|
||||
"Zda zobrazovat seznam oken na všech připojených monitorech nebo jen na "
|
||||
"hlavním."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Zobrazit náhledy pracovních ploch v seznamu oken"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "Seskupování oken"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Nikdy neseskupovat okna"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Seskupovat okna při nedostatku místa"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Vždy seskupovat okna"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Zobrazovat na všech monitorech"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Zobrazit náhledy pracovních ploch v horním panelu"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Press %s to edit"
|
||||
msgstr "Stiskněte %s pro úpravu"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:512
|
||||
msgid "Settings"
|
||||
msgstr "Nastavení"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:592
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Ukazatel pracovní plochy"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "Ukazatel"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "Náhledy"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "Název pracovní plochy"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "Chování"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "Dynamické"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "Bude automaticky odebírat prázdné pracovní plochy."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "Neměnný počet"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "Určit počet trvalých pracovních ploch."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "Počet pracovních ploch"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "Pracovní plochy"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Pracovní plocha %d"
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "Pracovní plocha %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "Názvy pracovních ploch"
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "Přidat pracovní plochu"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "Přidat pracovní plochu"
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "Odstranit"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Počítač"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Zobrazit náhledy pracovních ploch"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplikace"
|
||||
|
||||
80
po/da.po
80
po/da.po
@@ -9,9 +9,10 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-03-12 19:56+0100\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-09-07 23:22+0200\n"
|
||||
"Last-Translator: Ask Hjorth Larsen <asklarsen@gmail.com>\n"
|
||||
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
|
||||
"Language: da\n"
|
||||
@@ -42,7 +43,7 @@ msgstr "GNOME Classic på Xorg"
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritter"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Programmer"
|
||||
|
||||
@@ -159,43 +160,43 @@ msgstr "Hukommelsesstatistik"
|
||||
msgid "Swap stats"
|
||||
msgstr "Swapstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Uploadstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Downloadstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Systemstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Vis"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Hukommelse"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Åbn Systemovervågning"
|
||||
|
||||
@@ -227,47 +228,47 @@ msgstr "Temanavn"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:72
|
||||
msgid "Close"
|
||||
msgstr "Luk"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Afminimér"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimér"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Afmaksimér"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimér"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimér"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Afminimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maksimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Afmaksimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Luk alle"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Vinduesliste"
|
||||
|
||||
@@ -305,6 +306,10 @@ msgstr ""
|
||||
"Om vindueslisten skal vise på alle tilsluttede skærme, eller kun på den "
|
||||
"primære."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Forhåndsvis arbejdsområder i vinduesliste"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Vinduesgruppering"
|
||||
@@ -325,24 +330,35 @@ msgstr "Gruppér altid vinduer"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Vis på alle skærme"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbejdsområdeindikator"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Forhåndsvis arbejdsområder"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Inkludér forhåndsvisninger i topbjælken"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbejdsområde %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Navne på arbejdsområder"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Tilføj arbejdsområde"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Inkludér forhåndsvisninger af arbejdsområder i topbjælken"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbejdsområdeindikator"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Programmer"
|
||||
|
||||
|
||||
82
po/de.po
82
po/de.po
@@ -9,22 +9,23 @@
|
||||
# Tim Sabsch <tim@sabsch.com>, 2019-2020.
|
||||
# Philipp Kiemle <philipp.kiemle@gmail.com>, 2022.
|
||||
# Gabriel Brand <gabr.brand@gmail.com>, 2024.
|
||||
# Jürgen Benvenuti <gastornis@posteo.org>, 2024.
|
||||
#
|
||||
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: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-07 20:42+0100\n"
|
||||
"Last-Translator: Gabriel Brand <gabr.brand@gmail.com>\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-08-29 10:01+0200\n"
|
||||
"Last-Translator: Jürgen Benvenuti <gastornis@posteo.org>\n"
|
||||
"Language-Team: Deutsch <gnome-de@gnome.org>\n"
|
||||
"Language: de\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -47,7 +48,7 @@ msgstr "GNOME Classic unter Xorg"
|
||||
msgid "Favorites"
|
||||
msgstr "Favoriten"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Anwendungen"
|
||||
|
||||
@@ -165,43 +166,43 @@ msgstr "Speicherstatistiken"
|
||||
msgid "Swap stats"
|
||||
msgstr "Auslagerungsspeicherstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Upload-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Download-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Systemstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Anzeigen"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Speicher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Auslagerungsspeicher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Systemüberwachung öffnen"
|
||||
|
||||
@@ -235,47 +236,47 @@ msgstr ""
|
||||
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
|
||||
"soll"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:72
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Minimieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimieren"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Maximieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximieren"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Alle minimieren"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Alle minimieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Alle maximieren"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Alle maximieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Alle schließen"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Fensterliste"
|
||||
|
||||
@@ -315,6 +316,10 @@ msgstr ""
|
||||
"Legt fest, ob die Fensterliste auf allen angeschlossenen Bildschirmen "
|
||||
"angezeigt wird oder nur auf dem Primären."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Arbeitsflächenvorschauen in der Fensterliste anzeigen"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Fenstergruppierung"
|
||||
@@ -335,23 +340,34 @@ msgstr "Fenster immer gruppieren"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Auf allen Bildschirmen anzeigen"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbeitsflächenindikator"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Arbeitsflächenvorschauen anzeigen"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Vorschauen in der oberen Leiste anzeigen"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbeitsfläche %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Namen der Arbeitsflächen"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Arbeitsfläche hinzufügen"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Arbeitsflächenvorschauen in der oberen Leiste anzeigen"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbeitsflächenindikator"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Anwendungen"
|
||||
|
||||
249
po/el.po
249
po/el.po
@@ -12,16 +12,16 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2023-02-18 15:10+0000\n"
|
||||
"PO-Revision-Date: 2023-08-01 23:41+0300\n"
|
||||
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
|
||||
"POT-Creation-Date: 2024-10-16 14:41+0000\n"
|
||||
"PO-Revision-Date: 2024-08-12 23:29+0300\n"
|
||||
"Last-Translator: Giannis Antypas <gianni.antypas@gmail.com>\n"
|
||||
"Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n"
|
||||
"Language: el\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.3.2\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
@@ -31,7 +31,7 @@ msgstr "GNOME Classic"
|
||||
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
|
||||
#: data/gnome-classic-xorg.desktop.in:4
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic"
|
||||
msgstr "Αυτή η συνεδρία σάς συνδέει στο GNOME Classic"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
msgid "GNOME Classic on Wayland"
|
||||
@@ -41,19 +41,19 @@ msgstr "GNOME Classic σε Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic σε Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Αγαπημένα"
|
||||
|
||||
#: extensions/apps-menu/extension.js:380
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Εφαρμογές"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:12
|
||||
msgid "Application and workspace list"
|
||||
msgstr "Λίστα εφαρμογών και χώρου εργασίας"
|
||||
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
@@ -62,34 +62,34 @@ msgstr ""
|
||||
"(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και "
|
||||
"τον αριθμό του χώρου εργασίας"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:152
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Κανόνες χώρων εργασίας"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Προσθήκη κανόνα"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:126
|
||||
#: extensions/places-menu/placeDisplay.js:212
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:187
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Αποτυχία εξαγωγής του δίσκου «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Αφαιρούμενες συσκευές"
|
||||
|
||||
#: extensions/drive-menu/extension.js:167
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
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:11
|
||||
msgid "Use more screen for windows"
|
||||
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:12
|
||||
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. "
|
||||
@@ -100,11 +100,11 @@ msgstr ""
|
||||
"εδραιώνοντας τους περαιτέρω για να μειώσετε το πλαίσιο οριοθέτησης. Αυτή η "
|
||||
"ρύθμιση ισχύει μόνο με την στρατηγική φυσικής τοποθέτησης."
|
||||
|
||||
#: 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:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Τοποθέτηση τίτλων παράθυρου στην κορυφή"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:18
|
||||
msgid ""
|
||||
"If true, place window captions on top the respective thumbnail, overriding "
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
@@ -115,100 +115,179 @@ msgstr ""
|
||||
"στο κάτω μέρος. Η αλλαγή αυτής της ρύθμισης απαιτεί επανεκκίνηση του "
|
||||
"κελύφους για να υπάρξει κάποιο αποτέλεσμα."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:97
|
||||
msgid "Places"
|
||||
msgstr "Τοποθεσίες"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#: extensions/places-menu/placeDisplay.js:53
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Αποτυχία εκκίνησης «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#: extensions/places-menu/placeDisplay.js:68
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Αποτυχία προσάρτησης τόμου για «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:127
|
||||
#: extensions/places-menu/placeDisplay.js:150
|
||||
msgid "Computer"
|
||||
msgstr "Υπολογιστής"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:340
|
||||
#: extensions/places-menu/placeDisplay.js:316
|
||||
msgid "Home"
|
||||
msgstr "Προσωπικός φάκελος"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:385
|
||||
msgid "Browse Network"
|
||||
msgstr "Περιήγηση δικτύου"
|
||||
#: extensions/places-menu/placeDisplay.js:322
|
||||
msgid "Recent"
|
||||
msgstr "Πρόσφατα"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/places-menu/placeDisplay.js:328
|
||||
msgid "Starred"
|
||||
msgstr "Επισημάνθηκαν"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:348
|
||||
msgid "Network"
|
||||
msgstr "Δίκτυο"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:355
|
||||
msgid "Trash"
|
||||
msgstr "Απορρίμματα"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Περιδιάβαση τα μεγέθη των στιγμιοτύπων"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
|
||||
msgid "Cycle Screenshot Sizes Backward"
|
||||
msgstr "Μεγέθη κυκλικών στιγμιοτύπων προς τα πίσω"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Στατιστικά CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Στατιστικά μνήμης"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Στατιστικά swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Στατιστικά μεταφόρτωσης"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Στατιστικά λήψης"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Στατιστικά συστήματος"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Εμφάνιση"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Μνήμη"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Μεταφόρτωση"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Λήψη"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Άνοιγμα επόπτη συστήματος"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Εμφάνιση χρήσης CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Εμφάνιση χρήσης μνήμης"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Εμφάνιση χρήσης swap"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Εμφάνιση μεταφόρτωσης"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Εμφάνιση λήψης"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Όνομα θέματος"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:12
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr ""
|
||||
"Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:92
|
||||
msgid "Close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Unminimize"
|
||||
msgstr "Αποελαχιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Minimize"
|
||||
msgstr "Ελαχιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Unmaximize"
|
||||
msgstr "Απομεγιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Maximize"
|
||||
msgstr "Μεγιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:483
|
||||
#: extensions/window-list/extension.js:641
|
||||
msgid "Minimize all"
|
||||
msgstr "Ελαχιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:489
|
||||
#: extensions/window-list/extension.js:647
|
||||
msgid "Unminimize all"
|
||||
msgstr "Αποελαχιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:495
|
||||
#: extensions/window-list/extension.js:653
|
||||
msgid "Maximize all"
|
||||
msgstr "Μεγιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:503
|
||||
#: extensions/window-list/extension.js:661
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Απομεγιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:511
|
||||
#: extensions/window-list/extension.js:669
|
||||
msgid "Close all"
|
||||
msgstr "Κλείσιμο όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:795
|
||||
#: extensions/window-list/extension.js:911 extensions/window-list/prefs.js:24
|
||||
msgid "Window List"
|
||||
msgstr "Λίστα παραθύρου"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:18
|
||||
msgid "When to group windows"
|
||||
msgstr "Πότε θα ομαδοποιούνται τα παράθυρα"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
@@ -217,21 +296,21 @@ msgstr ""
|
||||
"παραθύρου. Δυνατές τιμές είναι «never» (ποτέ), «auto» (αυτόματα) και "
|
||||
"«always» (πάντα)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:75
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
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
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
msgstr "Να εμφανίζεται ο κατάλογος παραθύρων σε όλες τις οθόνες"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:34
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
@@ -239,44 +318,73 @@ msgstr ""
|
||||
"Αν θα εμφανίζεται ο κατάλογος παραθύρων όλων των συνδεμένων οθονών ή μόνο "
|
||||
"της κύριας οθόνης."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Εμφάνιση προεπισκοπήσεων χώρου εργασίας στη λίστα παραθύρου"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Window Grouping"
|
||||
msgstr "Ομαδοποίηση παραθύρου"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Never group windows"
|
||||
msgstr "Να μη γίνεται ποτέ ομαδοποίηση παραθύρων"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Ομαδοποίηση παραθύρων όταν ο χώρος είναι περιορισμένος"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:49
|
||||
msgid "Always group windows"
|
||||
msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:69
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Να εμφανίζεται σε όλες τις οθόνες"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Εμφάνιση προεπισκοπήσεων χώρου εργασίας στην επάνω μπάρα"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Δείκτης χώρου εργασίας"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:62
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:29
|
||||
msgid "Show Previews"
|
||||
msgstr "Εμφάνιση προεπισκοπήσεων"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:87
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Χώρος εργασίας %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:154
|
||||
msgid "Workspace Names"
|
||||
msgstr "Ονόματα χώρων εργασίας"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:171
|
||||
msgid "Add Workspace"
|
||||
msgstr "Προσθήκη χώρου εργασίας"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:196
|
||||
msgid "Remove"
|
||||
msgstr "Αφαίρεση"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:226
|
||||
#| msgid "Workspace %d"
|
||||
msgid "Workspaces"
|
||||
msgstr "Χώροι εργασίας"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Υπολογιστής"
|
||||
|
||||
#~ msgid "Browse Network"
|
||||
#~ msgstr "Περιήγηση δικτύου"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Εφαρμογές"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Εφαρμογή"
|
||||
|
||||
@@ -362,12 +470,6 @@ msgstr "Προσθήκη χώρου εργασίας"
|
||||
#~ "λειτουργικότητα από μόνο του.\n"
|
||||
#~ "Παρ' όλα αυτά είναι δυνατό να προσαρμόσετε το μήνυμα χαιρετισμού."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Μνήμη"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell Classic"
|
||||
|
||||
@@ -418,8 +520,8 @@ msgstr "Προσθήκη χώρου εργασίας"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Configures how the windows are shown in the switcher. Valid possibilities "
|
||||
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-"
|
||||
#~ "only' (shows only the application icon) or 'both'."
|
||||
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' "
|
||||
#~ "(shows only the application icon) or 'both'."
|
||||
#~ msgstr ""
|
||||
#~ "Διαμορφώνει πως τα παράθυρα θα εμφανίζονται στν εναλλαγή των παραθύρων. "
|
||||
#~ "Έγκυρες ρυθμίσεις είναι 'thumbnail-only' (εμφανίζει μια μικρογραφία του "
|
||||
@@ -501,9 +603,6 @@ msgstr "Προσθήκη χώρου εργασίας"
|
||||
#~ msgid "Bookmarks"
|
||||
#~ msgstr "Σελιδοδείκτες"
|
||||
|
||||
#~ msgid "Network"
|
||||
#~ msgstr "Δίκτυο"
|
||||
|
||||
#~ msgid "File System"
|
||||
#~ msgstr "Σύστημα αρχείων"
|
||||
|
||||
|
||||
57
po/en_GB.po
57
po/en_GB.po
@@ -12,8 +12,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-23 09:28+0000\n"
|
||||
"PO-Revision-Date: 2024-02-23 11:58+0000\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-08-13 20:40+0100\n"
|
||||
"Last-Translator: Andi Chandler <andi@gowling.com>\n"
|
||||
"Language-Team: English - United Kingdom <en_GB@li.org>\n"
|
||||
"Language: en_GB\n"
|
||||
@@ -45,7 +45,7 @@ msgstr "GNOME Classic on Xorg"
|
||||
msgid "Favorites"
|
||||
msgstr "Favourites"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
@@ -160,43 +160,43 @@ msgstr "Memory stats"
|
||||
msgid "Swap stats"
|
||||
msgstr "Swap stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Upload stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Download stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "System stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Show"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memory"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Open System Monitor"
|
||||
|
||||
@@ -268,7 +268,7 @@ msgstr "Unmaximise all"
|
||||
msgid "Close all"
|
||||
msgstr "Close all"
|
||||
|
||||
#: extensions/window-list/extension.js:773
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Window List"
|
||||
|
||||
@@ -305,6 +305,10 @@ msgstr ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Show workspace previews in window list"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Window Grouping"
|
||||
@@ -325,24 +329,35 @@ msgstr "Always group windows"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Show on all monitors"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:255
|
||||
#: extensions/workspace-indicator/extension.js:261
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Workspace Indicator"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Show workspace previews"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Show Previews In Top Bar"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Workspace %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Workspace Names"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Add Workspace"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Show workspace previews in top bar"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Workspace Indicator"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Applications"
|
||||
|
||||
|
||||
82
po/es.po
82
po/es.po
@@ -5,22 +5,23 @@
|
||||
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
|
||||
#
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2024.
|
||||
# Daniel Mustieles García <daniel.mustieles@gmail.com>, 2024.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-26 14:05+0100\n"
|
||||
"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-09-03 11:21+0200\n"
|
||||
"Last-Translator: Daniel Mustieles García <daniel.mustieles@gmail.com>\n"
|
||||
"Language-Team: Spanish - Spain <gnome-es-list@gnome.org>\n"
|
||||
"Language: es_ES\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 45.3\n"
|
||||
"X-Generator: Gtranslator 46.1\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -43,7 +44,7 @@ msgstr "GNOME clásicoen Xorg"
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplicaciones"
|
||||
|
||||
@@ -159,43 +160,43 @@ msgstr "Estadísticas de la memoria"
|
||||
msgid "Swap stats"
|
||||
msgstr "Estadísticas del área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Actualizar estadísticas"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Descargar estadísticas"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Estadísticas del sistema"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Subir"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Abrir el monitor del sistema"
|
||||
|
||||
@@ -227,47 +228,47 @@ msgstr "Nombre del tema"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:72
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Desminimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Desminimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Cerrar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Lista de ventanas"
|
||||
|
||||
@@ -306,6 +307,10 @@ msgstr ""
|
||||
"Indica si se debe mostrar la lista de ventanas en todas las pantallas "
|
||||
"conectadas o sólo en la primaria."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Mostrar vistas previas de las áreas de trabajo en la lista de ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Agrupación de ventanas"
|
||||
@@ -326,24 +331,35 @@ msgstr "Siempre agrupar las ventanas"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostrar en todas las pantallas"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de área de trabajo"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Mostrar vistas previas de las áreas de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Mostrar vistas previas en la barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Área de trabajo %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nombres de los áreas de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Añadir área de trabajo"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Mostrar áreas de trabajo en la barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de área de trabajo"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplicaciones"
|
||||
|
||||
|
||||
248
po/eu.po
248
po/eu.po
@@ -6,43 +6,53 @@
|
||||
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2013, 2015, 2017.
|
||||
# Edurne Labaka <elabaka@uzei.com>, 2015.
|
||||
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021, 2024.
|
||||
# Ibai Oihanguren Sala <ibaios@disroot.org>, 2026.
|
||||
#
|
||||
msgid ""
|
||||
msgstr "Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-15 00:42+0200\n"
|
||||
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
|
||||
"Language-Team: Basque <librezale@librezale.eus>\n"
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2025-11-05 13:44+0000\n"
|
||||
"PO-Revision-Date: 2026-01-11 20:54+0100\n"
|
||||
"Last-Translator: Ibai Oihanguren Sala <ibaios@disroot.org>\n"
|
||||
"Language-Team: Basque\n"
|
||||
"Language: eu\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-DL-VCS-Web: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/\n"
|
||||
"X-DL-Lang: eu\n"
|
||||
"X-DL-Module: gnome-shell-extensions\n"
|
||||
"X-DL-Branch: main\n"
|
||||
"X-DL-Domain: po\n"
|
||||
"X-DL-State: None\n"
|
||||
"X-Generator: Gtranslator 49.0\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
#: data/gnome-classic.desktop.in:2
|
||||
msgid "GNOME Classic"
|
||||
msgstr "GNOME Klasikoa"
|
||||
|
||||
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
|
||||
#: data/gnome-classic-xorg.desktop.in:4
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Saio honek GNOME Klasikoa hasten du"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-wayland.desktop.in:2
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME klasikoa Wayland gainean"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:2
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME klasikoa Xorg gainean"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Gogokoak"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Aplikazioak"
|
||||
|
||||
@@ -54,19 +64,21 @@ msgstr "Aplikazioen eta laneko areen zerrenda"
|
||||
msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"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:159
|
||||
#: extensions/auto-move-windows/prefs.js:157
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Laneko areen arauak"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:312
|
||||
msgid "Add Rule"
|
||||
msgstr "Gehitu araua"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Huts egin du “%s“ unitatea egoztean:"
|
||||
@@ -88,7 +100,11 @@ 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 "Saiatu pantaila gehiago erabiltzen leihoen koadro txikiak kokatzeko pantailaren aspektu-erlaziora egokituz, eta haiek taldekatu muga-koadroa txikiagotzeko. Ezarpen hau kokapen naturalaren estrategiarekin soilik aplikatzen da."
|
||||
msgstr ""
|
||||
"Saiatu pantaila gehiago erabiltzen leihoen koadro txikiak kokatzeko "
|
||||
"pantailaren aspektu-erlaziora egokituz, eta haiek taldekatu muga-koadroa "
|
||||
"txikiagotzeko. Ezarpen hau kokapen naturalaren estrategiarekin soilik "
|
||||
"aplikatzen da."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
@@ -99,35 +115,45 @@ 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 "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:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Lekuak"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Huts egin du '%s' abiaraztean"
|
||||
msgstr "Huts egin du '%s' abiarazteak"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Huts egin du “%s“(r)en bolumena muntatzean"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Ordenagailua"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Karpeta nagusia"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Arakatu sarea"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Azken aldikoa"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "Izardunak"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "Sarea"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "Zakarrontzia"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -149,43 +175,43 @@ msgstr "Memoriaren estatistikak"
|
||||
msgid "Swap stats"
|
||||
msgstr "Trukatze-espazioaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Kargaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Deskargaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:365
|
||||
msgid "System stats"
|
||||
msgstr "Sistemaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
msgid "Show"
|
||||
msgstr "Erakutsi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:415
|
||||
msgid "CPU"
|
||||
msgstr "PUZ"
|
||||
msgstr "PUZa"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:417
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:419
|
||||
msgid "Swap"
|
||||
msgstr "Trukatu"
|
||||
msgstr "Trukatze-espazioa"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:421
|
||||
msgid "Upload"
|
||||
msgstr "Kargatu"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:423
|
||||
msgid "Download"
|
||||
msgstr "Deskargatu"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:428
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Ireki sistema-monitorea"
|
||||
|
||||
@@ -217,47 +243,47 @@ msgstr "Gaiaren izena"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Itxi"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "Leheneratu"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizatu"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximizatu"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizatu"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizatu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Leheneratu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizatu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximizatu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Itxi denak"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Leiho-zerrenda"
|
||||
|
||||
@@ -269,16 +295,20 @@ msgstr "Noiz elkartu leihoak"
|
||||
msgid ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
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:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Erakutsi laneko area guztietako leihoak"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||
msgid "Whether to show windows from all workspaces or only the current one."
|
||||
msgstr "Laneko area guztietako leihoak edo uneko areakoak soilik erakutsiko diren."
|
||||
msgstr ""
|
||||
"Laneko area guztietako leihoak edo uneko areakoak soilik erakutsiko diren."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
|
||||
msgid "Show the window list on all monitors"
|
||||
@@ -288,45 +318,99 @@ msgstr "Erakutsi leihoen zerrenda pantaila guztietan"
|
||||
msgid ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"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:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Leiho-elkartzea"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Leihoak inoiz ez elkartu"
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Erakutsi laneko areen aurrebistak leihoen zerrendan"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "Leihoak elkartzea"
|
||||
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Ez elkartu leihoak inoiz"
|
||||
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Elkartu leihoak lekua mugatuta dagoenean"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Elkartu beti leihoak"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Erakutsi pantaila guztietan"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Lan arearen adierazlea"
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Erakutsi laneko areen aurrebistak goiko barran"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "%d. laneko area"
|
||||
msgid "Press %s to edit"
|
||||
msgstr "Sakatu %s editatzeko"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "Laneko areen izenak"
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:518
|
||||
msgid "Settings"
|
||||
msgstr "Ezarpenak"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "Gehitu laneko area"
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:598
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Laneko arearen adierazlea"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "Adierazlea"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "Aurrebistak"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "Laneko arearen izena"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "Portaera"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "Dinamikoa"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "Automatikoki kentzen ditu laneko area hutsak."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "Kopuru finkoa"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "Zehaztu laneko area iraunkorren kopurua."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "Laneko area kopurua"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "Laneko areak"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Ordenagailua"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Erakutsi laneko areen aurrebistak"
|
||||
|
||||
#~ msgid "Show Previews In Top Bar"
|
||||
#~ msgstr "Erakutsi aurrebistak goiko barran"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplikazioak"
|
||||
|
||||
187
po/fa.po
187
po/fa.po
@@ -2,15 +2,15 @@
|
||||
# Copyright (C) 2011 Iranian Free Software Users Group (IFSUG.org) translation team.
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
# Arash Mousavi <mousavi.arash@gmail.com>, 2011-2017.
|
||||
# Danial Behzadi <dani.behzi@ubuntu.com>, 2018-2024.
|
||||
# Danial Behzadi <dani.behzi@ubuntu.com>, 2018-2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-12 16:49+0000\n"
|
||||
"PO-Revision-Date: 2024-02-12 20:28+0330\n"
|
||||
"POT-Creation-Date: 2025-07-01 22:52+0000\n"
|
||||
"PO-Revision-Date: 2025-07-29 14:01+0330\n"
|
||||
"Last-Translator: Danial Behzadi <dani.behzi@ubuntu.com>\n"
|
||||
"Language-Team: Persian <>\n"
|
||||
"Language: fa\n"
|
||||
@@ -18,8 +18,8 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 3.6\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
@@ -39,11 +39,11 @@ msgstr "گنوم کلاسیک روی ویلند"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "گنوم کلاسیک روی زورگ"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "برگزیدهها"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "کارهها"
|
||||
|
||||
@@ -59,17 +59,17 @@ msgstr ""
|
||||
"فهرستی از رشتهها، هرکدام حاوی شناسهی یک برنامه (نام پرونده رومیزی)، در ادامهی یک "
|
||||
"ویرگول و شمارهی فضای کاری"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "قواعد فضای کاری"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "افزودن قاعده"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "بیرون دادن دیسکگردان «%s» شکست خورد:"
|
||||
@@ -110,32 +110,39 @@ msgstr ""
|
||||
"شل در پایین را تغییر میدهد. تغییر این گزینه، نیاز به راهاندازی مجدد شل دارد تا "
|
||||
"تاثیر بگذارد."
|
||||
|
||||
#: extensions/places-menu/extension.js:91 extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75 extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "مکانها"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "شکست در اجرای «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "شکست در سوار کردن حجم برای «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "رایانه"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "خانه"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "مرور شبکه"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "اخیر"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "ستاره دار"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "شبکه"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "زبالهدان"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -157,43 +164,43 @@ msgstr "آمار حافظه"
|
||||
msgid "Swap stats"
|
||||
msgstr "آمار مبادله"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "آمار بارگذاری"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "آمار بارگیری"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "آمار سامانه"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "نمایش"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "سیپییو"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "حافظه"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "مبادله"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "بارگذاری"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "بارگیری"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "گشودن پایشگر سامانه"
|
||||
|
||||
@@ -225,47 +232,47 @@ msgstr "نام تم"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "نام تم، جهت بارگیری از شاخه themes/name/gnome-shell./~"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "خروج"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "ناکمینه"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "کمینه"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "نابیشینه"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "بیشنه"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "کمینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "ناکمینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "بیشینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "نابیشینهٔ همه"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "بستن همه"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "فهرست پنجره"
|
||||
|
||||
@@ -282,7 +289,7 @@ msgstr ""
|
||||
"ممکن عبارتند از «never»، «auto» و «always»."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "نمایش پنجرهها از تمام فضاهای کاری"
|
||||
|
||||
@@ -302,43 +309,102 @@ msgstr ""
|
||||
"اینکه آیا فهرست پنجرهها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر "
|
||||
"اصلی."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "پیشنمایش فضاهای کاری در سیاههٔ پنجرهها"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "گروهسازی پنجرهها"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "هیچگاه پنجرهها گروه نشوند"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "پنجرهها زمانی که فضا محدود است گروه شوند"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "همیشه پنجرهها گروه شوند"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "نمایش در تمام نمایشگرها"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "پیشنمایش فضاهای کاری در نوار بالایی"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Press %s to edit"
|
||||
msgstr "زدن %s برای ویرایش"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:512
|
||||
msgid "Settings"
|
||||
msgstr "تنظیمات"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:592
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "نشانگر فضایکاری"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "نشانگر"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "پیشنمایشها"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "نام فضای کاری"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "رفتار"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "پویا"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "برداشتن خودکار فضاهای کاری خالی."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "تعداد ثابت"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "تعیین تعدادی فضای کاری ثابت."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "شمار فضاهای کاری"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "فضاهای کاری"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "فضای کاری %Id"
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "فضای کاری %Id"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "نامهای فضای کاری"
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "افزودن فضایکاری"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "افزودن فضایکاری"
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "برداشتن"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "رایانه"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "پیشنمایش فضاهای کاری"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "برنامهها"
|
||||
@@ -346,9 +412,6 @@ msgstr "افزودن فضایکاری"
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "برنامه"
|
||||
|
||||
#~ msgid "Workspace"
|
||||
#~ msgstr "فضایکاری"
|
||||
|
||||
#~ msgid "Create new matching rule"
|
||||
#~ msgstr "افزودن یک قاعدهی منطبق جدید"
|
||||
|
||||
|
||||
205
po/fi.po
205
po/fi.po
@@ -12,41 +12,41 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-03-02 17:31+0200\n"
|
||||
"Last-Translator: JR-Fi <starman@starman.fi>\n"
|
||||
"POT-Creation-Date: 2025-09-11 02:26+0000\n"
|
||||
"PO-Revision-Date: 2025-09-11 19:54+0300\n"
|
||||
"Last-Translator: Jiri Grönroos <jiri.gronroos+l10n@iki.fi>\n"
|
||||
"Language-Team: suomi <lokalisointi-lista@googlegroups.com>\n"
|
||||
"Language: fi\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Generator: Poedit 3.7\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
#: data/gnome-classic.desktop.in:2
|
||||
msgid "GNOME Classic"
|
||||
msgstr "Perinteinen Gnome"
|
||||
|
||||
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
|
||||
#: data/gnome-classic-xorg.desktop.in:4
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Tämä istunto kirjaa sinut perinteiseen Gnomeen"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-wayland.desktop.in:2
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "Perinteinen Gnome Waylandia käyttäen"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:2
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "Perinteinen Gnome Xorgia käyttäen"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Suosikit"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Sovellukset"
|
||||
|
||||
@@ -62,17 +62,17 @@ msgstr ""
|
||||
"Lista merkkijonoja, jossa jokainen on ohjelman tunnus (työpöydän "
|
||||
"tiedostonimi), jota seuraa kaksoispiste ja työtilan numero"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Työtilojen säännöt"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "Lisää sääntö"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Aseman “%s” irrottaminen epäonnistui:"
|
||||
@@ -113,33 +113,40 @@ msgstr ""
|
||||
"Tämä syrjäyttää oletusasetuksen, eli otsikkotekstin asettamisen pienoiskuvan "
|
||||
"alle. Tämän asetuksen muutos vaatii Gnomen uudelleenkäynnistyksen."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Sijainnit"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Kohteen “%s” käynnistys epäonnistui"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Taltion “%s” liittäminen epäonnistui"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Tietokone"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Koti"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Selaa verkkoa"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Viimeisimmät"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "Tähdelliset"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "Verkko"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "Roskakori"
|
||||
|
||||
# Konteksti muutui hieman, kun tälle ilmaantui pari, jossa suunta on taaksepäin
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
@@ -162,43 +169,43 @@ msgstr "Muistin tilastot"
|
||||
msgid "Swap stats"
|
||||
msgstr "Swap-tilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Lähetystilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Lataustilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Järjestelmän tilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Näytä"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "Suoritin"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Muisti"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Lähetys"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Lataus"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Avaa järjestelmän valvonta"
|
||||
|
||||
@@ -230,47 +237,47 @@ msgstr "Teeman nimi"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Teeman nimi, ladataan sijainnista ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Sulje"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "Palauta pienennys"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "Pienennä"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "Palauta suurennus"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "Suurenna"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Pienennä kaikki"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Palauta kaikkien koko"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Suurenna kaikki"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Palauta kaikkien koko"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Sulje kaikki"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Ikkunaluettelo"
|
||||
|
||||
@@ -287,7 +294,7 @@ msgstr ""
|
||||
"Mahdolliset arvot ovat “never”, “auto” ja “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Näytä ikkunat kaikista työtiloista"
|
||||
|
||||
@@ -309,43 +316,105 @@ msgstr ""
|
||||
"Näytetäänkö ikkunaluettelo kaikilla liitetyillä näytöillä vai ainoastaan "
|
||||
"ensisijaisella näytöllä."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Näytä työtilojen esikatselu ikkunaluettelossa"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "Ikkunoiden ryhmitys"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Älä ryhmitä ikkunoita koskaan"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Ryhmitä ikkunat tilan ollessa rajallinen"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Ryhmitä ikkunat aina"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Näytä kaikilla näytöillä"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Näytä työtilojen esikatselut yläpalkissa"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Press %s to edit"
|
||||
msgstr "Paina %s muokataksesi"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:518
|
||||
msgid "Settings"
|
||||
msgstr "Asetukset"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:598
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Työtilan ilmaisin"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "Ilmaisin"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "Esikatselut"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "Työtilan nimi"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "Toiminta"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "Muuttuva"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "Poista automaattisesti tyhjät työtilat."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "Muuttumaton määrä"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "Määritä pysyvien työtilojen määrä."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "Työtilojen määrä"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "Työtilat"
|
||||
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Työtila %d"
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "Työtila %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "Työtilojen nimet"
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "Lisää työtila"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "Lisää työtila"
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "Poista"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Tietokone"
|
||||
|
||||
#~ msgid "Browse Network"
|
||||
#~ msgstr "Selaa verkkoa"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Näytä työtilojen esikatselut"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Sovellukset"
|
||||
@@ -435,9 +504,6 @@ msgstr "Lisää työtila"
|
||||
#~ msgid "Display"
|
||||
#~ msgstr "Näyttö"
|
||||
|
||||
#~ msgid "Display Settings"
|
||||
#~ msgstr "Näytön asetukset"
|
||||
|
||||
#~ msgid "Drag here to add favorites"
|
||||
#~ msgstr "Raahaa tähän lisätäksesi suosikkeihin"
|
||||
|
||||
@@ -495,9 +561,6 @@ msgstr "Lisää työtila"
|
||||
#~ msgid "Bookmarks"
|
||||
#~ msgstr "Kirjanmerkit"
|
||||
|
||||
#~ msgid "Network"
|
||||
#~ msgstr "Verkko"
|
||||
|
||||
#~ msgid "File System"
|
||||
#~ msgstr "Tiedostojärjestelmä"
|
||||
|
||||
|
||||
81
po/fr.po
81
po/fr.po
@@ -10,16 +10,16 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-24 21:13+0100\n"
|
||||
"Last-Translator: Guillaume Bernard <associations@guillaume-bernard.fr>\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-08-29 17:42+0200\n"
|
||||
"Last-Translator: Irénée Thirion <irenee.thirion@e.email>\n"
|
||||
"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -42,7 +42,7 @@ msgstr "GNOME Classique sur Xorg"
|
||||
msgid "Favorites"
|
||||
msgstr "Favoris"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Applications"
|
||||
|
||||
@@ -160,43 +160,43 @@ msgstr "Statistiques de la mémoire"
|
||||
msgid "Swap stats"
|
||||
msgstr "Statistiques de l’espace d’échange"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Statistiques de téléversement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Statistiques de téléchargement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Statistiques du système"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Afficher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Mémoire"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Espace d’échange"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Téléversement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Téléchargement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Ouvrir Moniteur système"
|
||||
|
||||
@@ -228,47 +228,47 @@ msgstr "Nom du thème"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Le nom du thème, à charger à partir de ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:72
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Réduire"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximiser"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Tout réduire"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Tout restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Tout maximiser"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Tout restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Tout fermer"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Liste de fenêtres"
|
||||
|
||||
@@ -308,6 +308,10 @@ msgstr ""
|
||||
"Indique s’il faut afficher la liste des fenêtres sur tous les écrans "
|
||||
"connectés ou seulement l’écran principal."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Afficher les aperçus des espaces de travail dans la liste des fenêtres"
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Regroupement de fenêtres"
|
||||
@@ -328,24 +332,35 @@ msgstr "Toujours regrouper les fenêtres"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Afficher sur tous les écrans"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicateur d’espace de travail"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Afficher les aperçus des espaces de travail"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Afficher les aperçus dans la barre supérieure"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espace de travail %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Noms des espaces de travail"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Ajouter un espace de travail"
|
||||
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Afficher les aperçus des espaces de travail dans la barre supérieure"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicateur d’espace de travail"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Applications"
|
||||
|
||||
|
||||
166
po/fur.po
166
po/fur.po
@@ -6,16 +6,16 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-04-16 21:02+0200\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
|
||||
"POT-Creation-Date: 2024-10-19 02:53+0000\n"
|
||||
"PO-Revision-Date: 2024-10-20 20:04+0000\n"
|
||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
||||
"Language-Team: Friulian <fur@li.org>\n"
|
||||
"Language-Team: Friulian <f.t.public@gmail.com>\n"
|
||||
"Language: fur\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Editor: HaiPO 2.1 beta\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
@@ -39,7 +39,7 @@ msgstr "GNOME Classic su Xorg"
|
||||
msgid "Favorites"
|
||||
msgstr "Preferîts"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplicazions"
|
||||
|
||||
@@ -52,8 +52,8 @@ msgid ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
msgstr ""
|
||||
"Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ."
|
||||
"desktop), cun daûr doi ponts e il numar dal spazi di lavôr"
|
||||
"Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file "
|
||||
".desktop), cun daûr doi ponts e il numar dal spazi di lavôr"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
@@ -65,7 +65,7 @@ msgstr "Zonte regule"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:187
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "No si è rivâts a parâ fûr la unitât “%s”»:"
|
||||
@@ -89,8 +89,8 @@ msgid ""
|
||||
"This setting applies only with the natural placement strategy."
|
||||
msgstr ""
|
||||
"Cîr di doprâ plui schermi par plaçâ lis miniaturis dai barcons, adatant il "
|
||||
"rapuart di aspiet dal visôr e consolidant ancjemo di plui lis miniaturis par "
|
||||
"ridusi il spazi complessîf. Cheste impostazion si apliche dome se "
|
||||
"rapuart di aspiet dal visôr e consolidant ancjemo di plui lis miniaturis par"
|
||||
" ridusi il spazi complessîf. Cheste impostazion si apliche dome se "
|
||||
"l'algoritmi di plaçament al è naturâl."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
@@ -112,28 +112,35 @@ msgstr ""
|
||||
msgid "Places"
|
||||
msgstr "Puescj"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:53
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "No si è rivâts a inviâ “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:68
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "No si è rivâts a montâ il volum par “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Computer"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:316
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Esplore rêt"
|
||||
#: extensions/places-menu/placeDisplay.js:322
|
||||
msgid "Recent"
|
||||
msgstr "Resint"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:328
|
||||
msgid "Starred"
|
||||
msgstr "Preferît"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:348
|
||||
msgid "Network"
|
||||
msgstr "Rêt"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:355
|
||||
msgid "Trash"
|
||||
msgstr "Scovacere"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -155,43 +162,43 @@ msgstr "Statistichis memorie"
|
||||
msgid "Swap stats"
|
||||
msgstr "Statistichis memorie di scambi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Statistichis cjariament in rêt"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Statistichis discjariaments"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Statistichis di sisteme"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostre"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memorie"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Memorie di scambi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Cjariaments in rêt"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Discjariaments"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Vierç monitor di sisteme"
|
||||
|
||||
@@ -223,47 +230,47 @@ msgstr "Non dal teme"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "Il non dal teme, che si cjame da ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:92
|
||||
msgid "Close"
|
||||
msgstr "Siere"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Unminimize"
|
||||
msgstr "Gjave minimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Minimize"
|
||||
msgstr "Minimize"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Unmaximize"
|
||||
msgstr "Gjave massimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Maximize"
|
||||
msgstr "Massimize"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:641
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimize ducj"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:647
|
||||
msgid "Unminimize all"
|
||||
msgstr "Gjave a ducj la minimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:653
|
||||
msgid "Maximize all"
|
||||
msgstr "Massimize ducj"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:661
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Gjave a ducj la massimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:669
|
||||
msgid "Close all"
|
||||
msgstr "Siere ducj"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:911 extensions/window-list/prefs.js:24
|
||||
msgid "Window List"
|
||||
msgstr "Liste barcons"
|
||||
|
||||
@@ -280,7 +287,7 @@ msgstr ""
|
||||
"barcons. I valôrs pussibii a son “never”, “auto” e “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:75
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostre i barcons di ducj i spazis di lavôr"
|
||||
|
||||
@@ -301,44 +308,69 @@ msgstr ""
|
||||
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
|
||||
"chel principâl."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Mostre lis anteprimis dai spazis di lavôr te liste dai barcons"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Window Grouping"
|
||||
msgstr "Intropament di barcons"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Never group windows"
|
||||
msgstr "No sta meti mai in grup i barcons"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Met dongje i barcons cuant che il spazi al è limitât"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:49
|
||||
msgid "Always group windows"
|
||||
msgstr "Met simpri in grup i barcons"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:69
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostre su ducj i visôrs"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Mostre anteprimis dai spazis di lavôr te sbare superiôr"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicadôr spazi di lavôr"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:29
|
||||
msgid "Show Previews"
|
||||
msgstr "Mostre anteprimis"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:87
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Spazi di lavôr %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:154
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nons dai spazis di lavôr"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:171
|
||||
msgid "Add Workspace"
|
||||
msgstr "Zonte spazi di lavôr"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:196
|
||||
msgid "Remove"
|
||||
msgstr "Gjave"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:226
|
||||
msgid "Workspaces"
|
||||
msgstr "Spazis di lavôr"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Computer"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Mostre anteprimis dai spazis di lavôr"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplicazions"
|
||||
|
||||
@@ -367,24 +399,24 @@ msgstr "Zonte spazi di lavôr"
|
||||
#~ msgstr "Disposizion dai botons te sbare dal titul"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||
#~ "running GNOME Shell."
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
||||
#~ "GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "Cheste clâf a sorplante chê in org.gnome.desktop.wm.preferences cuant che "
|
||||
#~ "al è in esecuzion GNOME Shell."
|
||||
#~ "Cheste clâf a sorplante chê in org.gnome.desktop.wm.preferences cuant che al"
|
||||
#~ " è in esecuzion GNOME Shell."
|
||||
|
||||
#~ msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
#~ msgstr ""
|
||||
#~ "Abilite la tasseladure sul ôr cuant che i balcons a vegnin molâts sul ôr "
|
||||
#~ "dal visôr"
|
||||
#~ "Abilite la tasseladure sul ôr cuant che i balcons a vegnin molâts sul ôr dal"
|
||||
#~ " visôr"
|
||||
|
||||
#~ msgid "Workspaces only on primary monitor"
|
||||
#~ msgstr "Spazis di lavôr dome sul visôr principâl"
|
||||
|
||||
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
#~ msgstr ""
|
||||
#~ "Tarde la mude dal focus te modalitât mouse fintremai che il pontadôr no "
|
||||
#~ "si ferme"
|
||||
#~ "Tarde la mude dal focus te modalitât mouse fintremai che il pontadôr no si "
|
||||
#~ "ferme"
|
||||
|
||||
#~ msgid "Thumbnail only"
|
||||
#~ msgstr "Dome miniaturis"
|
||||
@@ -408,8 +440,8 @@ msgstr "Zonte spazi di lavôr"
|
||||
#~ msgstr "Test di benvignût alternatîf"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on the "
|
||||
#~ "panel."
|
||||
#~ msgstr ""
|
||||
#~ "Se no vueit, al ten il test che al vegnarà mostrât scliçant sul panel."
|
||||
|
||||
@@ -417,12 +449,10 @@ msgstr "Zonte spazi di lavôr"
|
||||
#~ msgstr "Messaç"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Example aims to show how to build well behaved extensions for the Shell "
|
||||
#~ "and as such it has little functionality on its own.\n"
|
||||
#~ "Example aims to show how to build well behaved extensions for the Shell and as such it has little functionality on its own.\n"
|
||||
#~ "Nevertheless it’s possible to customize the greeting message."
|
||||
#~ msgstr ""
|
||||
#~ "Example al ponte a mostrâ cemût imbastî estensions de Shell che si "
|
||||
#~ "compuartedin ben e par chest no 'ndi à tantis funzions.\n"
|
||||
#~ "Example al ponte a mostrâ cemût imbastî estensions de Shell che si compuartedin ben e par chest no 'ndi à tantis funzions.\n"
|
||||
#~ "Ad ogni mût al è pussibil personalizâ il messaç di benvignût."
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
|
||||
148
po/gl.po
148
po/gl.po
@@ -10,8 +10,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-23 00:04+0100\n"
|
||||
"POT-Creation-Date: 2025-04-11 01:52+0000\n"
|
||||
"PO-Revision-Date: 2025-04-15 21:11+0200\n"
|
||||
"Last-Translator: Fran Dieguez <fran.dieguez@gnome.org>\n"
|
||||
"Language-Team: Galician <proxecto@trasno.gal>\n"
|
||||
"Language: gl\n"
|
||||
@@ -19,13 +19,13 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.4.2\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-Module: gnome-shell-extensions\n"
|
||||
"X-DL-State: Translating\n"
|
||||
"X-DL-Team: gl\n"
|
||||
"X-Generator: Poedit 3.5\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -44,11 +44,11 @@ msgstr "GNOME clásico en Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME clásico en Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Aplicacións"
|
||||
|
||||
@@ -64,17 +64,17 @@ msgstr ""
|
||||
"Unha lista de cadeas, cada unha das cales contén un id de aplicación (nome "
|
||||
"de ficheiro desktop), seguido por unha coma e o número do espazo de traballo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regras da área de traballo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "Engadir regra"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Fallo ao extraer a unidade «%s»:"
|
||||
@@ -115,33 +115,40 @@ msgstr ""
|
||||
"respectiva, omitindo a disposición inferior por omisión do shell. Se cambia "
|
||||
"esta configuración deberá reiniciar o shell para que se apliquen os cambios."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Lugares"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Produciuse un fallo ao iniciar «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Produciuse un fallo ao montar o volume para «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Computador"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Cartafol persoal"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Explorar a rede"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Recente"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr ""
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "Rede"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "Lixo"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -163,43 +170,43 @@ msgstr "Estatísticas de memoria"
|
||||
msgid "Swap stats"
|
||||
msgstr "Estatísticas da área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Estatísticas de subida"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Estatísticas de descarga"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Estatísticas do sistema"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Subida"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Descarga"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Abrir Monitor do sistema"
|
||||
|
||||
@@ -231,47 +238,47 @@ msgstr "Nome do tema"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "O nome do tema, a cargar desde ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:95
|
||||
msgid "Close"
|
||||
msgstr "Pechar"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Unminimize"
|
||||
msgstr "Restabelecer"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Unmaximize"
|
||||
msgstr "Restaurar"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:721
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:727
|
||||
msgid "Unminimize all"
|
||||
msgstr "Restaurar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:733
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:741
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Restaurar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:749
|
||||
msgid "Close all"
|
||||
msgstr "Pechar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:992 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Lista de xanelas"
|
||||
|
||||
@@ -285,11 +292,11 @@ msgid ""
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
msgstr ""
|
||||
"Decide cando agrupar as xanelas da mesma aplicación na lista de xanelas. Os "
|
||||
"valores posíbeis son «never» (nunca), «auto» (automático) e "
|
||||
"«always» (sempre)."
|
||||
"valores posíbeis son «never» (nunca), «auto» (automático) e «always» "
|
||||
"(sempre)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostrar as xanelas de todos os espazos de traballo"
|
||||
|
||||
@@ -310,44 +317,69 @@ msgstr ""
|
||||
"Indica se mostrar a lista de xanelas en todos os monitores conectados ou só "
|
||||
"no primario."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "Mostras as vistas previas do espazo de traballo na lista de xanelas"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "Agrupación de xanelas"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Non agrupar nunca as xanelas"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Agrupar as xanelas cando o espazo é limitado"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Agrupar sempre as xanelas"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostrar en todos os monitores"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "Mostrar as vistas previas do espazo de traballo na barra superior"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Indicador de espazo de traballo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:28
|
||||
msgid "Show Previews"
|
||||
msgstr "Mostrar vistas previas"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:86
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espazos de traballo %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:153
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nomes dos espazos de traballo"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:170
|
||||
msgid "Add Workspace"
|
||||
msgstr "Engadir área de traballo"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:195
|
||||
msgid "Remove"
|
||||
msgstr "Eliminar"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:225
|
||||
msgid "Workspaces"
|
||||
msgstr "Espazos de traballo"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Computador"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Mostrar a vista previa dos espazo de traballo"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplicacións"
|
||||
|
||||
|
||||
203
po/he.po
203
po/he.po
@@ -2,47 +2,47 @@
|
||||
# Copyright (C) 2011 THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# Yaron Shahrabani <sh.yaron@gmail.com>, 2011.
|
||||
# Yosef Or Boczko <yoseforb@gmail.com>, 2013-2024.
|
||||
# Yosef Or Boczko <yoseforb@gmail.com>, 2013-2025.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2024-02-06 18:43+0000\n"
|
||||
"PO-Revision-Date: 2024-02-17 00:11+0200\n"
|
||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
||||
"POT-Creation-Date: 2025-08-27 21:10+0000\n"
|
||||
"PO-Revision-Date: 2025-08-30 23:36+0300\n"
|
||||
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
|
||||
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
|
||||
"Language: he\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2;\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 3.4.1\n"
|
||||
"X-Generator: Gtranslator 48.0\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
#: data/gnome-classic.desktop.in:2
|
||||
msgid "GNOME Classic"
|
||||
msgstr "GNOME קלסי"
|
||||
|
||||
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
|
||||
#: data/gnome-classic-xorg.desktop.in:4
|
||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
msgid "This session logs you into GNOME Classic"
|
||||
msgstr "הפעלה זו מכניסה אותך למצב הקלסי של GNOME"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#: data/gnome-classic-wayland.desktop.in:2
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME קלסי על גבי Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#: data/gnome-classic-xorg.desktop.in:2
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME קלסי על גבי Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "מועדפים"
|
||||
|
||||
#: extensions/apps-menu/extension.js:397
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "יישומים"
|
||||
|
||||
@@ -58,17 +58,17 @@ msgstr ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "כללי מרחב העבודה"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "הוספת כלל"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "שליפת הכונן „%s” נכשלה:"
|
||||
@@ -109,33 +109,40 @@ msgstr ""
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
"restarting the shell to have any effect."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "מקומות"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "הרצת „%s” נכשלה"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "עיגון הכרך „%s” נכשל"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "מחשב"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "בית"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "עיון ברשת"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "אחרונים"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:327
|
||||
msgid "Starred"
|
||||
msgstr "מסומנים בכוכב"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:347
|
||||
msgid "Network"
|
||||
msgstr "רשת"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:354
|
||||
msgid "Trash"
|
||||
msgstr "אשפה"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
@@ -157,43 +164,43 @@ msgstr "סטטיסטיקת זיכרון"
|
||||
msgid "Swap stats"
|
||||
msgstr "סטטיסטיקת תחלופה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:327
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "סטטיסטיקת העלאה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:341
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "סטטיסטיקת הורדה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:355
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "סטטיסטיקת מערכת"
|
||||
|
||||
#: extensions/system-monitor/extension.js:403
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "הצגה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:405
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "מעבד"
|
||||
|
||||
#: extensions/system-monitor/extension.js:407
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "זיכרון"
|
||||
|
||||
#: extensions/system-monitor/extension.js:409
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "תחלופה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:411
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "העלאה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:413
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "הורדה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "פתיחת צג המערכת"
|
||||
|
||||
@@ -225,47 +232,47 @@ msgstr "Theme name"
|
||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:71
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "סגירה"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "ביטול המזעור"
|
||||
|
||||
#: extensions/window-list/extension.js:98
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "מזעור"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "ביטול ההגדלה"
|
||||
|
||||
#: extensions/window-list/extension.js:105
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "הגדלה"
|
||||
|
||||
#: extensions/window-list/extension.js:470
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "מזעור הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:476
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "ביטול מזעור הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:482
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "הגדלת הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:490
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "ביטול הגדלת הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:498
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "סגירת הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:772
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "רשימת חלונות"
|
||||
|
||||
@@ -282,7 +289,7 @@ msgstr ""
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "הצגת חלונות מכל מרחבי העבודה"
|
||||
|
||||
@@ -302,43 +309,102 @@ msgstr ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
|
||||
#: extensions/window-list/prefs.js:35
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
|
||||
msgid "Show workspace previews in window list"
|
||||
msgstr "הצגת תצוגה מקדימה של מרחבי העבודה ברשימת החלונות"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Window Grouping"
|
||||
msgstr "קיבוץ חלונות"
|
||||
|
||||
#: extensions/window-list/prefs.js:40
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "לעולם לא לקבץ חלונות"
|
||||
|
||||
#: extensions/window-list/prefs.js:41
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "קיבוץ חלונות כאשר המקום מוגבל"
|
||||
|
||||
#: extensions/window-list/prefs.js:42
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "תמיד לקבץ חלונות"
|
||||
|
||||
#: extensions/window-list/prefs.js:66
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "הצגה בכל הצגים"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:253
|
||||
#: extensions/workspace-indicator/extension.js:259
|
||||
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
|
||||
msgid "Show workspace previews in top bar"
|
||||
msgstr "הצגת תצוגה מקדימה של מרחבי העבודה בלוח העליון"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:404
|
||||
#, javascript-format
|
||||
msgid "Press %s to edit"
|
||||
msgstr "יש ללחוץ על %s לעריכה"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:512
|
||||
msgid "Settings"
|
||||
msgstr "הגדרות"
|
||||
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:592
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "מחוון מרחבי עבודה"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "מרחב עבודה %d"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:20
|
||||
msgid "Indicator"
|
||||
msgstr "מכוון"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:25
|
||||
msgid "Previews"
|
||||
msgstr "תצוגות מקדימות"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:35
|
||||
msgid "Workspace Name"
|
||||
msgstr "שם מרחב העבודה"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "הוספת מרחב עבודה"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:59
|
||||
msgid "Behavior"
|
||||
msgstr "התנהגות"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:64
|
||||
msgid "Dynamic"
|
||||
msgstr "מרחבי עבודה גמישים"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:65
|
||||
msgid "Automatically removes empty workspaces."
|
||||
msgstr "מסיר מרחבי עבודה ריקים אוטומטית."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:75
|
||||
msgid "Fixed Number"
|
||||
msgstr "מספר קבוע של מרחבי עבודה"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:76
|
||||
msgid "Specify a number of permanent workspaces."
|
||||
msgstr "נא לציין מספר של מרחבי עבודה קבועים."
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:89
|
||||
msgid "Number of Workspaces"
|
||||
msgstr "מספר מרחבי עבודה"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:128
|
||||
msgid "Workspaces"
|
||||
msgstr "מרחבי עבודה"
|
||||
|
||||
#, javascript-format
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "מרחב עבודה %d"
|
||||
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "הוספת מרחב עבודה"
|
||||
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "הסרה"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "מחשב"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "הצגת תצוגה מקדימה של מרחבי העבודה"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "יישומים"
|
||||
@@ -443,9 +509,6 @@ msgstr "הוספת מרחב עבודה"
|
||||
#~ msgid "Display"
|
||||
#~ msgstr "תצוגה"
|
||||
|
||||
#~ msgid "Display Settings"
|
||||
#~ msgstr "הגדרות תצוגה"
|
||||
|
||||
#~ msgid "Available"
|
||||
#~ msgstr "פנוי"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user