Compare commits
356 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
78c3957f64 | ||
|
|
38e267ae64 | ||
|
|
59899a211d | ||
|
|
d3348761c3 | ||
|
|
79a01c62bc | ||
|
|
e65c561e6f | ||
|
|
6d36da1ce6 | ||
|
|
cd9341adf1 | ||
|
|
13842a012b | ||
|
|
f4f7d2dffb | ||
|
|
87a5fc42b8 | ||
|
|
f1456002d4 | ||
|
|
30266011bf | ||
|
|
5a76dedb50 | ||
|
|
dc8ab6cf77 | ||
|
|
b97efdb584 | ||
|
|
a91e6aad87 | ||
|
|
6f03ca0434 | ||
|
|
7a01e3e103 | ||
|
|
e539a65709 | ||
|
|
2402c1bef5 | ||
|
|
1fd238b31d | ||
|
|
21a65c1558 | ||
|
|
f42d1f7ca9 | ||
|
|
b77ecb2380 | ||
|
|
4fc80e0ef3 | ||
|
|
df61f9aadf | ||
|
|
7862bfd2aa | ||
|
|
f6c74e93b7 | ||
|
|
81880982b2 | ||
|
|
f53984670c | ||
|
|
537530707e | ||
|
|
e069f391c7 | ||
|
|
b00f5c4604 | ||
|
|
a326fa737e | ||
|
|
fcd5618321 | ||
|
|
55e085894a | ||
|
|
801ba69f54 | ||
|
|
abdd839073 | ||
|
|
24a5c5fd4e | ||
|
|
6d49de36a8 | ||
|
|
ef3c74db8a | ||
|
|
419b7fad10 | ||
|
|
ad43f16a9a | ||
|
|
db8b779859 | ||
|
|
67a91f9a1d | ||
|
|
ec95dcd330 | ||
|
|
b71ddd1b00 | ||
|
|
d6ffd7859e | ||
|
|
ded50f8b01 | ||
|
|
06066be0a8 | ||
|
|
fb52f89cc5 | ||
|
|
86761952c3 | ||
|
|
edc916533a | ||
|
|
6a7e99eb81 | ||
|
|
8ca1d5f3ee | ||
|
|
a3068dc145 | ||
|
|
3e9d648078 | ||
|
|
3e398b9a2f | ||
|
|
3fb756687b | ||
|
|
93fb1a6496 | ||
|
|
dfa328a769 | ||
|
|
90b59b6753 | ||
|
|
121c9d891b | ||
|
|
e6a8046d33 | ||
|
|
3cd964e60d | ||
|
|
fa8866d627 | ||
|
|
bf3cb76766 | ||
|
|
25d02d17d2 | ||
|
|
ffcbf03c9c | ||
|
|
1d7f37f420 | ||
|
|
30a15387b5 | ||
|
|
b5b841dd38 | ||
|
|
5f2b199627 | ||
|
|
071584621e | ||
|
|
5c57f44838 | ||
|
|
93741e9e1c | ||
|
|
836f81f2e2 | ||
|
|
574638328e | ||
|
|
e0750db1bd | ||
|
|
5652182fb3 | ||
|
|
c3cbef19ac | ||
|
|
8c8f990a28 | ||
|
|
f6a6bdda99 | ||
|
|
0d5d06fdd7 | ||
|
|
d10b98c4fc | ||
|
|
8b7cfff558 | ||
|
|
25a75e1b0e | ||
|
|
91a1b8245b | ||
|
|
4abde90e82 | ||
|
|
dd8ee2931a | ||
|
|
f530acbf9e |
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
|
||||
|
||||
@@ -3,8 +3,17 @@
|
||||
# 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/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
|
||||
@@ -14,27 +23,12 @@ stages:
|
||||
- deploy
|
||||
|
||||
default:
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/35:2022-02-18.0
|
||||
# Cancel jobs if newer commits are pushed to the branch
|
||||
interruptible: true
|
||||
# Auto-retry jobs in case of infra failures
|
||||
retry:
|
||||
max: 1
|
||||
when:
|
||||
- 'runner_system_failure'
|
||||
- 'stuck_or_timeout_failure'
|
||||
- 'scheduler_failure'
|
||||
- 'api_failure'
|
||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/41:2024-10-18.0
|
||||
|
||||
variables:
|
||||
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
|
||||
LINT_LOG: "eslint-report.xml"
|
||||
|
||||
workflow:
|
||||
rules:
|
||||
- if: '$CI_MERGE_REQUEST_IID'
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
- if: '$CI_COMMIT_BRANCH'
|
||||
MESON_BUILD_DIR: build
|
||||
TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
|
||||
|
||||
.pipeline_guard: &pipeline_guard
|
||||
rules:
|
||||
@@ -44,13 +38,6 @@ workflow:
|
||||
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
||||
- when: 'manual'
|
||||
|
||||
.gnome-shell-extensions.fedora:34:
|
||||
variables:
|
||||
FDO_DISTRIBUTION_VERSION: 34
|
||||
FDO_DISTRIBUTION_TAG: '2021-08-31.0'
|
||||
FDO_DISTRIBUTION_PACKAGES: >
|
||||
meson git gettext sassc
|
||||
|
||||
.prereview_req: &prereview_req
|
||||
needs:
|
||||
- check_commit_log
|
||||
@@ -102,13 +89,6 @@ check-reuse:
|
||||
script:
|
||||
- reuse lint
|
||||
|
||||
build-fedora-container:
|
||||
extends:
|
||||
- .fdo.container-build@fedora@x86_64
|
||||
- .gnome-shell-extensions.fedora:34
|
||||
stage: prepare
|
||||
<<: *prereview_req
|
||||
|
||||
js_check:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
@@ -118,14 +98,22 @@ js_check:
|
||||
eslint:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
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:
|
||||
stage: review
|
||||
<<: *prereview_req
|
||||
script:
|
||||
- gjs-check-potfiles
|
||||
artifacts:
|
||||
reports:
|
||||
junit: gjs-check-potfiles.junit.xml
|
||||
|
||||
build-bundles:
|
||||
stage: build
|
||||
@@ -139,32 +127,25 @@ build-bundles:
|
||||
- zip-files/
|
||||
|
||||
fedora-build:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell-extensions.fedora:34
|
||||
stage: build
|
||||
needs:
|
||||
- build-fedora-container
|
||||
<<: *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
|
||||
- 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:
|
||||
- build
|
||||
- "$MESON_BUILD_DIR"
|
||||
|
||||
fedora-dist:
|
||||
extends:
|
||||
- .fdo.distribution-image@fedora
|
||||
- .gnome-shell-extensions.fedora:34
|
||||
stage: deploy
|
||||
needs:
|
||||
- fedora-build
|
||||
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:
|
||||
@@ -175,7 +156,9 @@ fedora-dist-tarball:
|
||||
extends: fedora-dist
|
||||
artifacts:
|
||||
expose_as: 'Get tarball here'
|
||||
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
|
||||
when: always
|
||||
paths:
|
||||
- build/meson-dist/$CI_PROJECT_NAME-$CI_COMMIT_TAG.tar.xz
|
||||
- "$TARBALL_ARTIFACT_PATH"
|
||||
rules:
|
||||
- if: '$CI_COMMIT_TAG'
|
||||
|
||||
@@ -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.
|
||||
225
NEWS
225
NEWS
@@ -1,3 +1,228 @@
|
||||
49.beta
|
||||
=======
|
||||
* Misc. bug fixes and cleanups [Florian; !408]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
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
|
||||
====
|
||||
* screenshot-window-sizer: Add flathub-recommended size [Florian; !317]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Rachida SACI [kab], Matheus Polkorny [pt_BR], Fabio Tomat [fur]
|
||||
|
||||
46.0
|
||||
====
|
||||
* system-monitor: Fix net speed [Florian; !313]
|
||||
* Misc. bug fixes and cleanups [Aral; !311]
|
||||
|
||||
Contributors:
|
||||
Aral Balkan, Florian Müllner
|
||||
|
||||
Translators:
|
||||
Anders Jonsson [sv], Piotr Drąg [pl], Balázs Úr [hu], Milo Casagrande [it],
|
||||
Quentin PAGÈS [oc], Athmane MOKRAOUI [kab], Changwoo Ryu [ko],
|
||||
Ask Hjorth Larsen [da]
|
||||
|
||||
46.rc
|
||||
=====
|
||||
* Fix window previews in workspace indicator [Florian; !304]
|
||||
* Fix menu ornament in workspace indicator [Florian; !305]
|
||||
* Misc. bug fixes and cleanups [Florian; !306, !309]
|
||||
|
||||
Contributors:
|
||||
Florian Müllner
|
||||
|
||||
Translators:
|
||||
Danial Behzadi [fa], Ekaterine Papava [ka], Sabri Ünal [tr], Artur S0 [ru],
|
||||
Yuri Chornoivan [uk], Vasil Pupkin [be], Asier Sarasua Garmendia [eu],
|
||||
Yaron Shahrabani [he], Brage Fuglseth [nb], Nathan Follens [nl],
|
||||
Aurimas Černius [lt], Matej Urbančič [sl], Boyuan Yang [zh_CN],
|
||||
Kukuh Syafaat [id], Fran Dieguez [gl], Andi Chandler [en_GB],
|
||||
Baurzhan Muftakhidinov [kk], Rūdolfs Mazurs [lv], Guillaume Bernard [fr],
|
||||
Daniel Mustieles [es], Jiri Grönroos [fi]
|
||||
|
||||
46.beta
|
||||
=======
|
||||
* apps-menu: Rename Applications to Apps [Allan; !299]
|
||||
* Misc. bug fixes and cleanups [Florian; !296, !297, !300, !301, !302]
|
||||
|
||||
Contributors:
|
||||
Allan Day, Florian Müllner
|
||||
|
||||
Translators:
|
||||
Gabriel Brand [de], Daniel Rusek [cs], Fran Dieguez [gl],
|
||||
Aefgh Threenine [th], Vasil Pupkin [be], Artur S0 [ru], Yosef Or Boczko [he],
|
||||
Sabri Ünal [tr]
|
||||
|
||||
46.alpha
|
||||
========
|
||||
* workspace-indicator: Fix initial preview visibility [Florian; !280, !292]
|
||||
* screenshot-window-sizer: Fix cycling between sizes backwards [Florian; !284]
|
||||
* Add back overview in Classic session [Florian; !287]
|
||||
* Allow running Classic session headless [Jonas; !289]
|
||||
* window-list: Fix buttons not being clickable at the screen edge
|
||||
[Florian; !291]
|
||||
* Add system-monitor extension [Florian; !277]
|
||||
* Fixed crash [Florian; !290]
|
||||
* Misc. bug fixes and cleanups [Florian; !276, !275, !278, !281, !286, !288]
|
||||
|
||||
Contributors:
|
||||
Jonas Ådahl, Florian Müllner
|
||||
|
||||
Translators:
|
||||
Kristjan SCHMIDT [eo], Brage Fuglseth [nb]
|
||||
|
||||
45.0
|
||||
====
|
||||
|
||||
|
||||
110
README.md
110
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
|
||||
@@ -51,11 +64,19 @@ GSettings key.
|
||||
|
||||
* screenshot-window-sizer
|
||||
|
||||
Adds a shortcut for resizing the focus window to a size that is suitable for GNOME Software screenshots
|
||||
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/
|
||||
|
||||
41
REUSE.toml
Normal file
41
REUSE.toml
Normal file
@@ -0,0 +1,41 @@
|
||||
# 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"]
|
||||
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')
|
||||
|
||||
@@ -15,10 +15,10 @@ else:
|
||||
|
||||
# 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')
|
||||
dst_dir = os.path.join(install_root, 'xsessions')
|
||||
if not os.path.exists(dst_dir):
|
||||
os.makedirs(dst_dir)
|
||||
|
||||
src = os.path.join(install_root, 'xsessions', 'gnome-classic.desktop')
|
||||
src = os.path.join(install_root, 'wayland-sessions', 'gnome-classic.desktop')
|
||||
dst = os.path.join(dst_dir, 'gnome-classic.desktop')
|
||||
shutil.copyfile(src, dst)
|
||||
@@ -1,2 +0,0 @@
|
||||
To update the gnome-shell-sass submodule to latest upstream commit:
|
||||
git submodule update --rebase
|
||||
@@ -1,11 +1,10 @@
|
||||
{
|
||||
"parentMode": "user",
|
||||
"colorScheme": "force-light",
|
||||
"hasOverview": false,
|
||||
"showWelcomeDialog": false,
|
||||
"enabledExtensions": [@CLASSIC_EXTENSIONS@],
|
||||
"panel": { "left": [],
|
||||
"panel": { "left": ["activities"],
|
||||
"center": [],
|
||||
"right": ["a11y", "keyboard", "dateMenu", "quickSettings"]
|
||||
"right": ["screenRecording", "screenSharing", "dwellClick", "a11y", "keyboard", "dateMenu", "quickSettings"]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,3 +6,4 @@ TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Classic;GNOME;
|
||||
X-GDM-SessionRegisters=true
|
||||
X-GDM-CanRunHeadless=true
|
||||
|
||||
@@ -6,3 +6,4 @@ TryExec=gnome-session
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Classic;GNOME;
|
||||
X-GDM-SessionRegisters=true
|
||||
X-GDM-CanRunHeadless=true
|
||||
|
||||
@@ -2,41 +2,46 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
have_x11 = get_option('x11')
|
||||
|
||||
session_desktop_base = 'gnome-classic'
|
||||
|
||||
session_desktops = [
|
||||
session_desktop_base,
|
||||
session_desktop_base + '-xorg',
|
||||
session_desktop_base + '-wayland',
|
||||
]
|
||||
|
||||
foreach name: session_desktops
|
||||
session_desktop = name + '.desktop'
|
||||
if name.endswith('-xorg')
|
||||
session_instdir = xsessiondir
|
||||
elif name.endswith('-wayland')
|
||||
session_instdir = wlsessiondir
|
||||
else
|
||||
# FIXME: The same target can not be copied into two directories.
|
||||
# There is a workaround in meson/session-post-install.py until proper
|
||||
# solution arises:
|
||||
# https://github.com/mesonbuild/meson/issues/2416
|
||||
session_instdir = xsessiondir
|
||||
#session_instdir = [ xesssiondir, wlsessiondir ]
|
||||
endif
|
||||
i18n.merge_file(
|
||||
input: session_desktop + '.in',
|
||||
output: session_desktop,
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
install_dir: session_instdir,
|
||||
type: 'desktop'
|
||||
)
|
||||
if have_x11
|
||||
session_desktops += [session_desktop_base + '-xorg']
|
||||
endif
|
||||
|
||||
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 build-aux/session-post-install.py until proper
|
||||
# solution arises:
|
||||
# https://github.com/mesonbuild/meson/issues/2416
|
||||
session_instdir = wlsessiondir
|
||||
#session_instdir = [ xesssiondir, wlsessiondir ]
|
||||
endif
|
||||
i18n.merge_file(
|
||||
input: session_desktop + '.in',
|
||||
output: session_desktop,
|
||||
po_dir: '../po',
|
||||
install: true,
|
||||
install_dir: session_instdir,
|
||||
type: 'desktop',
|
||||
)
|
||||
endforeach
|
||||
|
||||
classic_uuids = []
|
||||
foreach e : classic_extensions
|
||||
classic_uuids += e + uuid_suffix
|
||||
classic_uuids += e + uuid_suffix
|
||||
endforeach
|
||||
|
||||
mode_conf = configuration_data()
|
||||
@@ -47,7 +52,7 @@ 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'
|
||||
|
||||
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,9 @@ 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)
|
||||
|
||||
[ -f $schema ] || unset schema
|
||||
|
||||
@@ -48,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,8 +44,9 @@ 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({
|
||||
text: app.get_name(),
|
||||
@@ -56,11 +56,6 @@ 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);
|
||||
|
||||
@@ -70,6 +65,8 @@ class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,7 +117,10 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
else
|
||||
name = _('Favorites');
|
||||
|
||||
this.add_child(new St.Label({text: name}));
|
||||
const label = new St.Label({text: name});
|
||||
this.add_child(label);
|
||||
this.actor.label_actor = label;
|
||||
|
||||
this.connect('motion-event', this._onMotionEvent.bind(this));
|
||||
this.connect('notify::active', this._onActiveChanged.bind(this));
|
||||
}
|
||||
@@ -214,9 +209,9 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
this._grab?.dismiss();
|
||||
delete this._grab;
|
||||
|
||||
let source = event.get_source();
|
||||
if (source instanceof St.Widget)
|
||||
source.sync_hover();
|
||||
const targetActor = global.stage.get_event_actor(event);
|
||||
if (targetActor instanceof St.Widget)
|
||||
targetActor.sync_hover();
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -255,7 +250,7 @@ class DesktopTarget extends EventEmitter {
|
||||
this._desktopDestroyedId = 0;
|
||||
|
||||
this._windowAddedId =
|
||||
global.window_group.connect('actor-added',
|
||||
global.window_group.connect('child-added',
|
||||
this._onWindowAdded.bind(this));
|
||||
|
||||
global.get_window_actors().forEach(a => {
|
||||
@@ -363,6 +358,20 @@ class DesktopTarget extends EventEmitter {
|
||||
}
|
||||
}
|
||||
|
||||
class MainLayout extends Clutter.BoxLayout {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
vfunc_get_preferred_height(container, forWidth) {
|
||||
const [mainChild] = container;
|
||||
const [minHeight, natHeight] =
|
||||
mainChild.get_preferred_height(forWidth);
|
||||
|
||||
return [minHeight, natHeight + MENU_HEIGHT_OFFSET];
|
||||
}
|
||||
}
|
||||
|
||||
class ApplicationsButton extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
@@ -380,12 +389,12 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this.accessible_role = Atk.Role.LABEL;
|
||||
|
||||
this._label = new St.Label({
|
||||
text: _('Applications'),
|
||||
text: _('Apps'),
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
|
||||
this.add_actor(this._label);
|
||||
this.add_child(this._label);
|
||||
this.name = 'panelApplications';
|
||||
this.label_actor = this._label;
|
||||
|
||||
@@ -432,15 +441,6 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
}
|
||||
|
||||
_createVertSeparator() {
|
||||
let separator = new St.DrawingArea({
|
||||
style_class: 'calendar-vertical-separator',
|
||||
pseudo_class: 'highlighted',
|
||||
});
|
||||
separator.connect('repaint', this._onVertSepRepaint.bind(this));
|
||||
return separator;
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
super._onDestroy();
|
||||
|
||||
@@ -462,21 +462,6 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
return super._onMenuKeyPress(actor, event);
|
||||
}
|
||||
|
||||
_onVertSepRepaint(area) {
|
||||
let cr = area.get_context();
|
||||
let themeNode = area.get_theme_node();
|
||||
let [width, height] = area.get_surface_size();
|
||||
let stippleColor = themeNode.get_color('-stipple-color');
|
||||
let stippleWidth = themeNode.get_length('-stipple-width');
|
||||
let x = Math.floor(width / 2) + 0.5;
|
||||
cr.moveTo(x, 0);
|
||||
cr.lineTo(x, height);
|
||||
Clutter.cairo_set_source_color(cr, stippleColor);
|
||||
cr.setDash([1, 3], 1); // Hard-code for now
|
||||
cr.setLineWidth(stippleWidth);
|
||||
cr.stroke();
|
||||
}
|
||||
|
||||
_onOpenStateChanged(menu, open) {
|
||||
if (open) {
|
||||
if (this.reloadFlag) {
|
||||
@@ -503,7 +488,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
let id;
|
||||
try {
|
||||
id = entry.get_desktop_file_id(); // catch non-UTF8 filenames
|
||||
} catch (e) {
|
||||
} catch {
|
||||
continue;
|
||||
}
|
||||
let app = appSys.lookup_app(id);
|
||||
@@ -522,7 +507,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
scrollToButton(button) {
|
||||
let appsScrollBoxAdj = this.applicationsScrollBox.get_vscroll_bar().get_adjustment();
|
||||
let appsScrollBoxAdj = this.applicationsScrollBox.get_vadjustment();
|
||||
let appsScrollBoxAlloc = this.applicationsScrollBox.get_allocation_box();
|
||||
let currentScrollValue = appsScrollBoxAdj.get_value();
|
||||
let boxHeight = appsScrollBoxAlloc.y2 - appsScrollBoxAlloc.y1;
|
||||
@@ -537,7 +522,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
}
|
||||
|
||||
scrollToCatButton(button) {
|
||||
let catsScrollBoxAdj = this.categoriesScrollBox.get_vscroll_bar().get_adjustment();
|
||||
let catsScrollBoxAdj = this.categoriesScrollBox.get_vadjustment();
|
||||
let catsScrollBoxAlloc = this.categoriesScrollBox.get_allocation_box();
|
||||
let currentScrollValue = catsScrollBoxAdj.get_value();
|
||||
let boxHeight = catsScrollBoxAlloc.y2 - catsScrollBoxAlloc.y1;
|
||||
@@ -554,43 +539,35 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
_createLayout() {
|
||||
let section = new PopupMenu.PopupMenuSection();
|
||||
this.menu.addMenuItem(section);
|
||||
this.mainBox = new St.BoxLayout({vertical: false});
|
||||
this.leftBox = new St.BoxLayout({vertical: true});
|
||||
this.mainBox = new St.BoxLayout({layoutManager: new MainLayout()});
|
||||
this.leftBox = new St.BoxLayout({
|
||||
orientation: Clutter.Orientation.VERTICAL,
|
||||
});
|
||||
this.applicationsScrollBox = new St.ScrollView({
|
||||
style_class: 'apps-menu vfade',
|
||||
x_expand: true,
|
||||
});
|
||||
this.applicationsScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
|
||||
let vscroll = this.applicationsScrollBox.get_vscroll_bar();
|
||||
vscroll.connect('scroll-start', () => {
|
||||
this.menu.passEvents = true;
|
||||
});
|
||||
vscroll.connect('scroll-stop', () => {
|
||||
this.menu.passEvents = false;
|
||||
});
|
||||
this.categoriesScrollBox = new St.ScrollView({
|
||||
style_class: 'vfade',
|
||||
});
|
||||
this.categoriesScrollBox.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC);
|
||||
vscroll = this.categoriesScrollBox.get_vscroll_bar();
|
||||
vscroll.connect('scroll-start', () => (this.menu.passEvents = true));
|
||||
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
|
||||
this.leftBox.add_child(this.categoriesScrollBox);
|
||||
|
||||
this.applicationsBox = new St.BoxLayout({vertical: true});
|
||||
this.applicationsScrollBox.add_actor(this.applicationsBox);
|
||||
this.categoriesBox = new St.BoxLayout({vertical: true});
|
||||
this.categoriesScrollBox.add_actor(this.categoriesBox);
|
||||
this.applicationsBox = new St.BoxLayout({
|
||||
orientation: Clutter.Orientation.VERTICAL,
|
||||
});
|
||||
this.applicationsScrollBox.set_child(this.applicationsBox);
|
||||
this.categoriesBox = new St.BoxLayout({
|
||||
orientation: Clutter.Orientation.VERTICAL,
|
||||
});
|
||||
this.categoriesScrollBox.set_child(this.categoriesBox);
|
||||
|
||||
this.mainBox.add(this.leftBox);
|
||||
this.mainBox.add_child(this._createVertSeparator());
|
||||
this.mainBox.add_child(this.leftBox);
|
||||
this.mainBox.add_child(this.applicationsScrollBox);
|
||||
section.actor.add_actor(this.mainBox);
|
||||
section.actor.add_child(this.mainBox);
|
||||
}
|
||||
|
||||
_display() {
|
||||
this._applicationsButtons.clear();
|
||||
this.mainBox.style = 'width: 35em;';
|
||||
this.mainBox.hide();
|
||||
|
||||
// Load categories
|
||||
@@ -598,7 +575,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this._tree.load_sync();
|
||||
let root = this._tree.get_root_directory();
|
||||
let categoryMenuItem = new CategoryMenuItem(this, null);
|
||||
this.categoriesBox.add_actor(categoryMenuItem);
|
||||
this.categoriesBox.add_child(categoryMenuItem);
|
||||
let iter = root.iter();
|
||||
let nextType;
|
||||
while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
|
||||
@@ -614,18 +591,12 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this._loadCategory(categoryId, dir);
|
||||
if (this.applicationsByCategory[categoryId].length > 0) {
|
||||
categoryMenuItem = new CategoryMenuItem(this, dir);
|
||||
this.categoriesBox.add_actor(categoryMenuItem);
|
||||
this.categoriesBox.add_child(categoryMenuItem);
|
||||
}
|
||||
}
|
||||
|
||||
// Load applications
|
||||
this._displayButtons(this._listApplications(null));
|
||||
|
||||
let themeContext = St.ThemeContext.get_for_stage(global.stage);
|
||||
let scaleFactor = themeContext.scale_factor;
|
||||
let categoriesHeight = this.categoriesBox.height / scaleFactor;
|
||||
let height = Math.round(categoriesHeight) + MENU_HEIGHT_OFFSET;
|
||||
this.mainBox.style += `height: ${height}px`;
|
||||
}
|
||||
|
||||
selectCategory(dir) {
|
||||
@@ -633,7 +604,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
if (c._delegate instanceof PopupMenu.PopupSeparatorMenuItem)
|
||||
c._delegate.destroy();
|
||||
else
|
||||
this.applicationsBox.remove_actor(c);
|
||||
this.applicationsBox.remove_child(c);
|
||||
});
|
||||
|
||||
if (dir)
|
||||
@@ -656,7 +627,7 @@ class ApplicationsButton extends PanelMenu.Button {
|
||||
this._applicationsButtons.set(app, item);
|
||||
}
|
||||
if (!item.get_parent())
|
||||
this.applicationsBox.add_actor(item);
|
||||
this.applicationsBox.add_child(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "Applications Menu",
|
||||
"description": "Add a category-based menu for applications.\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.",
|
||||
"name": "Apps Menu",
|
||||
"description": "Add a category-based menu for apps.\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.",
|
||||
"original-authors": [ "e2002@bk.ru", "debarshir@gnome.org" ],
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
.apps-menu {width: 26em;}
|
||||
|
||||
.apps-menu:ltr {
|
||||
padding-right: 3px;
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -3,9 +3,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 Adw from 'gi://Adw';
|
||||
import Gio from 'gi://Gio';
|
||||
import GLib from 'gi://GLib';
|
||||
@@ -45,11 +42,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),
|
||||
'workspace': GObject.ParamSpec.uint(
|
||||
'workspace', 'workspace', 'workspace',
|
||||
'workspace', null, null,
|
||||
GObject.ParamFlags.READWRITE,
|
||||
1, WORKSPACE_MAX, 1),
|
||||
};
|
||||
@@ -196,7 +193,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),
|
||||
};
|
||||
|
||||
@@ -48,7 +48,7 @@ class MountMenuItem extends PopupMenu.PopupBaseMenuItem {
|
||||
style_class: 'button',
|
||||
});
|
||||
ejectButton.connect('clicked', this._eject.bind(this));
|
||||
this.add(ejectButton);
|
||||
this.add_child(ejectButton);
|
||||
|
||||
this.hide();
|
||||
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,7 +79,7 @@ class PlacesMenu extends PanelMenu.Button {
|
||||
y_expand: true,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_actor(label);
|
||||
this.add_child(label);
|
||||
|
||||
this.placesManager = new PlacesManager();
|
||||
|
||||
|
||||
@@ -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);
|
||||
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);
|
||||
@@ -81,7 +73,7 @@ class PlaceInfo extends EventEmitter {
|
||||
|
||||
launch(timestamp) {
|
||||
let launchContext = global.create_app_launch_context(timestamp, -1);
|
||||
this._ensureMountAndLaunch(launchContext, true);
|
||||
this._ensureMountAndLaunch(launchContext, true).catch(logError);
|
||||
}
|
||||
|
||||
getIcon() {
|
||||
@@ -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;
|
||||
@@ -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();
|
||||
|
||||
/*
|
||||
@@ -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,42 +290,68 @@ 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');
|
||||
}
|
||||
@@ -370,14 +365,6 @@ export class PlacesManager extends EventEmitter {
|
||||
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();
|
||||
for (let i = 0; i < drives.length; i++) {
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
[624, 351],
|
||||
[800, 450],
|
||||
[1024, 576],
|
||||
[1000, 700],
|
||||
[1200, 675],
|
||||
[1600, 900],
|
||||
[360, 654], // Phone portrait maximized
|
||||
@@ -33,7 +34,7 @@ export default class ScreenshotWindowSizerExtension extends Extension {
|
||||
_flashMessage(message) {
|
||||
if (!this._text) {
|
||||
this._text = new St.Label({style_class: 'screenshot-sizer-message'});
|
||||
Main.uiGroup.add_actor(this._text);
|
||||
Main.uiGroup.add_child(this._text);
|
||||
}
|
||||
|
||||
this._text.remove_all_transitions();
|
||||
@@ -62,17 +63,15 @@ 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) {
|
||||
// Probably this isn't useful with 5 sizes, but you can decrease instead
|
||||
// of increase by holding down shift.
|
||||
let modifiers = binding.get_modifiers();
|
||||
let backwards = (modifiers & Meta.VirtualModifier.SHIFT_MASK) !== 0;
|
||||
_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();
|
||||
@@ -99,7 +98,7 @@ 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[newIndex];
|
||||
let [newWidth, newHeight] = scaledSizes.at(newIndex);
|
||||
|
||||
// Push the window onscreen if it would be resized offscreen
|
||||
let newX = outerRect.x;
|
||||
|
||||
@@ -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) {
|
||||
let wmClass = icon.wm_class ? icon.wm_class.toLowerCase() : '';
|
||||
if (STANDARD_TRAY_ICON_IMPLEMENTATIONS.includes(wmClass))
|
||||
return;
|
||||
|
||||
let button = new PanelButton(0.5, null, true);
|
||||
|
||||
let scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
|
||||
let iconSize = PANEL_ICON_SIZE * scaleFactor;
|
||||
|
||||
icon.set({
|
||||
width: iconSize,
|
||||
height: iconSize,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
|
||||
let 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@"
|
||||
}
|
||||
489
extensions/system-monitor/extension.js
Normal file
489
extensions/system-monitor/extension.js
Normal file
@@ -0,0 +1,489 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 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 GLib from 'gi://GLib';
|
||||
import GObject from 'gi://GObject';
|
||||
import GTop from 'gi://GTop';
|
||||
import Pango from 'gi://Pango';
|
||||
import Shell from 'gi://Shell';
|
||||
import St from 'gi://St';
|
||||
|
||||
import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
|
||||
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
|
||||
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
|
||||
const THRESHOLD_HIGH = 0.80;
|
||||
|
||||
// adapted from load-graph.cpp in gnome-system-monitor
|
||||
/**
|
||||
* @param {string} str
|
||||
* @returns {number}
|
||||
*/
|
||||
function strHash(str) {
|
||||
let hash = 0xcbf29ce484222325n;
|
||||
|
||||
for (const c of str)
|
||||
hash = (hash * 0x00000100000001B3n) ^ BigInt(c.codePointAt(0));
|
||||
return hash;
|
||||
}
|
||||
|
||||
class StatSection extends St.BoxLayout {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(iconName, accessibleName) {
|
||||
super({
|
||||
style_class: 'system-monitor-stat-section',
|
||||
accessibleName,
|
||||
});
|
||||
|
||||
const ext = Extension.lookupByURL(import.meta.url);
|
||||
const file =
|
||||
ext.dir.resolve_relative_path(`icons/${iconName}.svg`);
|
||||
|
||||
this._icon = new St.Icon({
|
||||
style_class: 'system-monitor-stat-section-icon',
|
||||
gicon: new Gio.FileIcon({file}),
|
||||
});
|
||||
this.add_child(this._icon);
|
||||
|
||||
this.label = new St.Label({
|
||||
style_class: 'system-monitor-stat-section-label',
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.label.clutter_text.set({
|
||||
ellipsize: Pango.EllipsizeMode.NONE,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
});
|
||||
this.add_child(this.label);
|
||||
|
||||
this.connect('destroy', () => this._clearTimeout());
|
||||
this.connect('notify::visible', () => this._sync());
|
||||
this._sync();
|
||||
}
|
||||
|
||||
_ensureTimeout() {
|
||||
if (this._updateId)
|
||||
return;
|
||||
|
||||
this._updateId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 1,
|
||||
() => {
|
||||
this._update();
|
||||
return GLib.SOURCE_CONTINUE;
|
||||
});
|
||||
}
|
||||
|
||||
_clearTimeout() {
|
||||
if (this._updateId)
|
||||
GLib.source_remove(this._updateId);
|
||||
delete this._updateId;
|
||||
}
|
||||
|
||||
_sync() {
|
||||
if (this.visible)
|
||||
this._ensureTimeout();
|
||||
else
|
||||
this._clearTimeout();
|
||||
|
||||
if (this.visible)
|
||||
this._update();
|
||||
}
|
||||
|
||||
_update() {
|
||||
}
|
||||
}
|
||||
|
||||
class LoadStatSection extends StatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#formatter = new Intl.NumberFormat(undefined, {
|
||||
style: 'percent',
|
||||
});
|
||||
|
||||
_getLoadValue() {
|
||||
}
|
||||
|
||||
_update() {
|
||||
const load = this._getLoadValue();
|
||||
this.label.text = this.#formatter.format(load);
|
||||
|
||||
if (load >= THRESHOLD_HIGH)
|
||||
this.add_style_class_name('high-usage');
|
||||
else
|
||||
this.remove_style_class_name('high-usage');
|
||||
}
|
||||
}
|
||||
|
||||
class CpuSection extends LoadStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#prevCpu = new GTop.glibtop_cpu();
|
||||
|
||||
constructor() {
|
||||
super('processor-symbolic', _('CPU stats'));
|
||||
}
|
||||
|
||||
_getLoadValue() {
|
||||
const cpu = new GTop.glibtop_cpu();
|
||||
GTop.glibtop_get_cpu(cpu);
|
||||
|
||||
const total = cpu.total - this.#prevCpu.total;
|
||||
const user = cpu.user - this.#prevCpu.user;
|
||||
const sys = cpu.sys - this.#prevCpu.sys;
|
||||
const nice = cpu.nice - this.#prevCpu.nice;
|
||||
|
||||
this.#prevCpu = cpu;
|
||||
|
||||
return (user + sys + nice) / Math.max(total, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
class MemSection extends LoadStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('memory-symbolic', _('Memory stats'));
|
||||
}
|
||||
|
||||
_getLoadValue() {
|
||||
const mem = new GTop.glibtop_mem();
|
||||
GTop.glibtop_get_mem(mem);
|
||||
|
||||
const {user, total} = mem;
|
||||
return user / Math.max(total, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
class SwapSection extends LoadStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('swap-symbolic', _('Swap stats'));
|
||||
}
|
||||
|
||||
_getLoadValue() {
|
||||
const swap = new GTop.glibtop_swap();
|
||||
GTop.glibtop_get_swap(swap);
|
||||
|
||||
const {used, total} = swap;
|
||||
return used / Math.max(total, 1.0);
|
||||
}
|
||||
}
|
||||
|
||||
class NetStatSection extends StatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
#formats = [{
|
||||
factor: 1000,
|
||||
unitFactor: 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'kilobyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 10,
|
||||
unitFactor: 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'kilobyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000,
|
||||
unitFactor: 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'megabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 10,
|
||||
unitFactor: 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'megabyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000,
|
||||
unitFactor: 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'gigabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 10,
|
||||
unitFactor: 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'gigabyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 1000,
|
||||
unitFactor: 1000 * 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'terabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 1000 * 10,
|
||||
unitFactor: 1000 * 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'terabyte',
|
||||
maximumFractionDigits: 0,
|
||||
}),
|
||||
}, {
|
||||
factor: 1000 * 1000 * 1000 * 1000 * 1000,
|
||||
unitFactor: 1000 * 1000 * 1000 * 1000 * 1000,
|
||||
formatter: new Intl.NumberFormat(undefined, {
|
||||
style: 'unit',
|
||||
unit: 'petabyte',
|
||||
maximumFractionDigits: 1,
|
||||
minimumFractionDigits: 1,
|
||||
}),
|
||||
}];
|
||||
|
||||
#lastBytes = 0;
|
||||
#lastHash = 0;
|
||||
#lastTime = 0;
|
||||
|
||||
_getBytes(_netload) {
|
||||
}
|
||||
|
||||
_getFormat(bytes) {
|
||||
for (let i = 1; i < this.#formats.length; i++) {
|
||||
if (bytes < this.#formats.at(i).factor)
|
||||
return this.#formats.at(i - 1);
|
||||
}
|
||||
return this.#formats.at(-1);
|
||||
}
|
||||
|
||||
_update() {
|
||||
const FLAG_LOOPBACK = 1 << 4; // GTop sucks
|
||||
|
||||
const netlist = new GTop.glibtop_netlist();
|
||||
const ifnames = GTop.glibtop_get_netlist(netlist);
|
||||
|
||||
let bytes = 0;
|
||||
let hash = 1n;
|
||||
|
||||
for (const ifname of ifnames) {
|
||||
const netload = new GTop.glibtop_netload();
|
||||
GTop.glibtop_get_netload(netload, ifname);
|
||||
|
||||
if (netload.if_flags & FLAG_LOOPBACK)
|
||||
continue;
|
||||
|
||||
bytes += this._getBytes(netload);
|
||||
hash += strHash(ifname);
|
||||
}
|
||||
|
||||
const time = GLib.get_monotonic_time();
|
||||
|
||||
let dbytes = 0;
|
||||
|
||||
// Skip calculation if new data is less than old (interface
|
||||
// removed, counters reset, ...) or if it is the first time
|
||||
if (bytes >= this.#lastBytes &&
|
||||
hash === this.#lastHash &&
|
||||
this.#lastTime !== 0) {
|
||||
const dtime = (time - this.#lastTime) / GLib.USEC_PER_SEC;
|
||||
dbytes = (bytes - this.#lastBytes) / dtime;
|
||||
}
|
||||
|
||||
this.#lastBytes = bytes;
|
||||
this.#lastTime = time;
|
||||
this.#lastHash = hash;
|
||||
|
||||
const {unitFactor, formatter} = this._getFormat(dbytes);
|
||||
this.label.text = formatter.format(dbytes / unitFactor);
|
||||
}
|
||||
}
|
||||
|
||||
class UploadSection extends NetStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('upload-symbolic', _('Upload stats'));
|
||||
}
|
||||
|
||||
_getBytes(netload) {
|
||||
return netload.bytes_out;
|
||||
}
|
||||
}
|
||||
|
||||
class DownloadSection extends NetStatSection {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super('download-symbolic', _('Download stats'));
|
||||
}
|
||||
|
||||
_getBytes(netload) {
|
||||
return netload.bytes_in;
|
||||
}
|
||||
}
|
||||
|
||||
class Indicator extends PanelMenu.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(settings) {
|
||||
super(0.5, _('System stats'));
|
||||
|
||||
this._settings = settings;
|
||||
this.connect('destroy',
|
||||
() => (this._settings = null));
|
||||
|
||||
const box = new St.BoxLayout({
|
||||
styleClass: 'system-monitor-stat-sections',
|
||||
});
|
||||
|
||||
this.add_child(box);
|
||||
|
||||
this._placeholder = new St.Icon({
|
||||
styleClass: 'system-status-icon system-monitor-placeholder',
|
||||
});
|
||||
box.add_child(this._placeholder);
|
||||
|
||||
this._cpuSection = new CpuSection();
|
||||
this._settings.bind('show-cpu',
|
||||
this._cpuSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._cpuSection);
|
||||
|
||||
this._memSection = new MemSection();
|
||||
this._settings.bind('show-memory',
|
||||
this._memSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._memSection);
|
||||
|
||||
this._swapSection = new SwapSection();
|
||||
this._settings.bind('show-swap',
|
||||
this._swapSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._swapSection);
|
||||
|
||||
this._ulSection = new UploadSection();
|
||||
this._settings.bind('show-upload',
|
||||
this._ulSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._ulSection);
|
||||
|
||||
this._dlSection = new DownloadSection();
|
||||
this._settings.bind('show-download',
|
||||
this._dlSection, 'visible',
|
||||
Gio.SettingsBindFlags.GET);
|
||||
box.add_child(this._dlSection);
|
||||
|
||||
this.menu.addMenuItem(
|
||||
new PopupMenu.PopupSeparatorMenuItem(_('Show')));
|
||||
|
||||
this._cpuItem = this.menu.addAction(_('CPU'),
|
||||
() => this._toggleSettings('show-cpu'));
|
||||
this._memItem = this.menu.addAction(_('Memory'),
|
||||
() => this._toggleSettings('show-memory'));
|
||||
this._swapItem = this.menu.addAction(_('Swap'),
|
||||
() => this._toggleSettings('show-swap'));
|
||||
this._ulItem = this.menu.addAction(_('Upload'),
|
||||
() => this._toggleSettings('show-upload'));
|
||||
this._dlItem = this.menu.addAction(_('Download'),
|
||||
() => this._toggleSettings('show-download'));
|
||||
|
||||
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
|
||||
|
||||
this._appMenuItem = this.menu.addAction(_('Open System Monitor'),
|
||||
() => this._openSystemMonitor());
|
||||
|
||||
const appSystem = Shell.AppSystem.get_default();
|
||||
appSystem.connectObject('installed-changed',
|
||||
() => this._updateSystemMonitorApp(), this);
|
||||
this._updateSystemMonitorApp();
|
||||
|
||||
this._settings.connectObject('changed',
|
||||
() => this._sync(), this);
|
||||
this._sync();
|
||||
}
|
||||
|
||||
_updateSystemMonitorApp() {
|
||||
const appSystem = Shell.AppSystem.get_default();
|
||||
this._systemMonitorApp =
|
||||
appSystem.lookup_app('org.gnome.SystemMonitor.desktop');
|
||||
this._placeholder.gicon = this._systemMonitorApp?.icon ?? null;
|
||||
this.visible = this._systemMonitorApp != null;
|
||||
}
|
||||
|
||||
_openSystemMonitor() {
|
||||
this._systemMonitorApp.activate();
|
||||
Main.overview.hide();
|
||||
}
|
||||
|
||||
_toggleSettings(key) {
|
||||
this._settings.set_boolean(key, !this._settings.get_boolean(key));
|
||||
}
|
||||
|
||||
_sync() {
|
||||
this._cpuItem.setOrnament(this._settings.get_boolean('show-cpu')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._memItem.setOrnament(this._settings.get_boolean('show-memory')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._swapItem.setOrnament(this._settings.get_boolean('show-swap')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._ulItem.setOrnament(this._settings.get_boolean('show-upload')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
this._dlItem.setOrnament(this._settings.get_boolean('show-download')
|
||||
? PopupMenu.Ornament.CHECK
|
||||
: PopupMenu.Ornament.NONE);
|
||||
|
||||
this._placeholder.visible =
|
||||
this._settings.list_keys().every(key => !this._settings.get_boolean(key));
|
||||
}
|
||||
}
|
||||
|
||||
export default class SystemMonitorExtension extends Extension {
|
||||
enable() {
|
||||
this._indicator = new Indicator(this.getSettings());
|
||||
Main.panel.addToStatusArea(this.uuid, this._indicator);
|
||||
}
|
||||
|
||||
disable() {
|
||||
this._indicator.destroy();
|
||||
this._indicator = null;
|
||||
}
|
||||
}
|
||||
46
extensions/system-monitor/icons/download-symbolic.svg
Normal file
46
extensions/system-monitor/icons/download-symbolic.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<filter id="a" height="100%" width="100%" x="0%" y="0%">
|
||||
<feColorMatrix color-interpolation-filters="sRGB" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<mask id="b">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.5"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="c">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="d">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.7"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="e">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="f">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.35"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="g">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<g mask="url(#b)">
|
||||
<g clip-path="url(#c)" transform="matrix(1 0 0 1 -920 -120)">
|
||||
<path d="m 550 182 c -0.351562 0.003906 -0.695312 0.101562 -1 0.28125 v 3.4375 c 0.304688 0.179688 0.648438 0.277344 1 0.28125 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 c -0.339844 0 -0.679688 0.058594 -1 0.175781 v 6.824219 h 4 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#d)">
|
||||
<g clip-path="url(#e)" transform="matrix(1 0 0 1 -920 -120)">
|
||||
<path d="m 569 182 v 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 v 7 h 3 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#f)">
|
||||
<g clip-path="url(#g)" transform="matrix(1 0 0 1 -920 -120)">
|
||||
<path d="m 573 182.269531 v 3.449219 c 0.613281 -0.355469 0.996094 -1.007812 1 -1.71875 c 0 -0.714844 -0.382812 -1.375 -1 -1.730469 z m 0 4.90625 v 6.824219 h 2 v -4 c 0 -1.269531 -0.800781 -2.402344 -2 -2.824219 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="m 7.984375 1 c -0.550781 0 -1 0.449219 -1 1 v 8.585938 l -2.292969 -2.292969 c -0.1875 -0.1875 -0.441406 -0.292969 -0.707031 -0.292969 s -0.519531 0.105469 -0.707031 0.292969 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 l 4 4 c 0.390625 0.390625 1.023437 0.390625 1.414062 0 l 4 -4 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 s -1.023437 -0.390625 -1.414062 0 l -2.292969 2.292969 v -8.585938 c 0 -0.550781 -0.445313 -1 -1 -1 z m 0 0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
2
extensions/system-monitor/icons/memory-symbolic.svg
Normal file
2
extensions/system-monitor/icons/memory-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 3 2 c -1.660156 0 -3 1.339844 -3 3 v 4 c 0 1.660156 1.339844 3 3 3 h 10 c 1.660156 0 3 -1.339844 3 -3 v -4 c 0 -1.660156 -1.339844 -3 -3 -3 z m 0 2 h 10 c 0.554688 0 1 0.445312 1 1 v 4 c 0 0.554688 -0.445312 1 -1 1 h -10 c -0.554688 0 -1 -0.445312 -1 -1 v -4 c 0 -0.554688 0.445312 -1 1 -1 z m 0 0"/><path d="m 2 10 h 12 v 4 h -12 z m 0 0"/><g fill-opacity="0.501961"><path d="m 4 5 h 2 v 4 h -2 z m 0 0"/><path d="m 7 5 h 2 v 4 h -2 z m 0 0"/><path d="m 10 5 h 2 v 4 h -2 z m 0 0"/></g></svg>
|
||||
|
After Width: | Height: | Size: 631 B |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
2
extensions/system-monitor/icons/processor-symbolic.svg
Normal file
2
extensions/system-monitor/icons/processor-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 5 5 h 6 v 6 h -6 z m 0 0"/><path d="m 13 5 h 3 v 1 h -3 z m 0 0"/><path d="m 13 7 h 3 v 1 h -3 z m 0 0"/><path d="m 13 9 h 3 v 1 h -3 z m 0 0"/><path d="m 0 6 h 3 v 1 h -3 z m 0 0"/><path d="m 0 8 h 3 v 1 h -3 z m 0 0"/><path d="m 0 10 h 3 v 1 h -3 z m 0 0"/><path d="m 5 0 h 1 v 3 h -1 z m 0 0"/><path d="m 7 0 h 1 v 3 h -1 z m 0 0"/><path d="m 9 0 h 1 v 3 h -1 z m 0 0"/><path d="m 10 13 h 1 v 3 h -1 z m 0 0"/><path d="m 8 13 h 1 v 3 h -1 z m 0 0"/><path d="m 6 13 h 1 v 3 h -1 z m 0 0"/><path d="m 5 2 c -1.644531 0 -3 1.355469 -3 3 v 6 c 0 1.644531 1.355469 3 3 3 h 6 c 1.644531 0 3 -1.355469 3 -3 v -6 c 0 -1.644531 -1.355469 -3 -3 -3 z m 0 2 h 6 c 0.570312 0 1 0.429688 1 1 v 6 c 0 0.570312 -0.429688 1 -1 1 h -6 c -0.570312 0 -1 -0.429688 -1 -1 v -6 c 0 -0.570312 0.429688 -1 1 -1 z m 0 0"/></svg>
|
||||
|
After Width: | Height: | Size: 943 B |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
2
extensions/system-monitor/icons/swap-symbolic.svg
Normal file
2
extensions/system-monitor/icons/swap-symbolic.svg
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="16px" viewBox="0 0 16 16" width="16px"><path d="m 5 7 c -0.308594 0 -0.613281 0.089844 -0.8125 0.28125 l -3.59375 3.71875 l 3.65625 3.71875 c 0.199219 0.191406 0.441406 0.28125 0.75 0.28125 h 1 v -1 c 0 -0.257812 -0.128906 -0.527344 -0.3125 -0.71875 l -1.28125 -1.28125 h 4.59375 c 0.527344 0.007812 1 -0.472656 1 -1 s -0.472656 -1.007812 -1 -1 h -4.625 l 1.21875 -1.28125 c 0.183594 -0.191406 0.40625 -0.460938 0.40625 -0.71875 v -1 z m 0 0"/><path d="m 11 9 c 0.308594 0 0.613281 -0.089844 0.8125 -0.28125 l 3.59375 -3.71875 l -3.65625 -3.71875 c -0.199219 -0.191406 -0.441406 -0.28125 -0.75 -0.28125 h -1 v 1 c 0 0.257812 0.128906 0.527344 0.3125 0.71875 l 1.28125 1.28125 h -4.59375 c -0.527344 -0.007812 -1 0.472656 -1 1 s 0.472656 1.007812 1 1 h 4.625 l -1.21875 1.28125 c -0.183594 0.191406 -0.40625 0.460938 -0.40625 0.71875 v 1 z m 0 0"/></svg>
|
||||
|
After Width: | Height: | Size: 941 B |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
46
extensions/system-monitor/icons/upload-symbolic.svg
Normal file
46
extensions/system-monitor/icons/upload-symbolic.svg
Normal file
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg height="16px" viewBox="0 0 16 16" width="16px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<filter id="a" height="100%" width="100%" x="0%" y="0%">
|
||||
<feColorMatrix color-interpolation-filters="sRGB" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0"/>
|
||||
</filter>
|
||||
<mask id="b">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.5"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="c">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="d">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.7"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="e">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<mask id="f">
|
||||
<g filter="url(#a)">
|
||||
<path d="m -1.6 -1.6 h 19.2 v 19.2 h -19.2 z" fill-opacity="0.35"/>
|
||||
</g>
|
||||
</mask>
|
||||
<clipPath id="g">
|
||||
<path d="m 0 0 h 1600 v 1200 h -1600 z"/>
|
||||
</clipPath>
|
||||
<g mask="url(#b)">
|
||||
<g clip-path="url(#c)" transform="matrix(1 0 0 1 -900 -120)">
|
||||
<path d="m 550 182 c -0.351562 0.003906 -0.695312 0.101562 -1 0.28125 v 3.4375 c 0.304688 0.179688 0.648438 0.277344 1 0.28125 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 c -0.339844 0 -0.679688 0.058594 -1 0.175781 v 6.824219 h 4 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#d)">
|
||||
<g clip-path="url(#e)" transform="matrix(1 0 0 1 -900 -120)">
|
||||
<path d="m 569 182 v 4 c 1.105469 0 2 -0.894531 2 -2 s -0.894531 -2 -2 -2 z m 0 5 v 7 h 3 v -4 c 0 -1.65625 -1.34375 -3 -3 -3 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<g mask="url(#f)">
|
||||
<g clip-path="url(#g)" transform="matrix(1 0 0 1 -900 -120)">
|
||||
<path d="m 573 182.269531 v 3.449219 c 0.613281 -0.355469 0.996094 -1.007812 1 -1.71875 c 0 -0.714844 -0.382812 -1.375 -1 -1.730469 z m 0 4.90625 v 6.824219 h 2 v -4 c 0 -1.269531 -0.800781 -2.402344 -2 -2.824219 z m 0 0"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="m 8.015625 15 c 0.550781 0 1 -0.449219 1 -1 v -8.585938 l 2.292969 2.292969 c 0.1875 0.1875 0.441406 0.292969 0.707031 0.292969 s 0.519531 -0.105469 0.707031 -0.292969 c 0.390625 -0.390625 0.390625 -1.023437 0 -1.414062 l -4 -4 c -0.390625 -0.390625 -1.023437 -0.390625 -1.414062 0 l -4 4 c -0.390625 0.390625 -0.390625 1.023437 0 1.414062 s 1.023437 0.390625 1.414062 0 l 2.292969 -2.292969 v 8.585938 c 0 0.550781 0.445313 1 1 1 z m 0 0"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -0,0 +1,3 @@
|
||||
SPDX-FileCopyrightText: Icon Development Kit
|
||||
|
||||
SPDX-License-Identifier: CC0-1.0
|
||||
14
extensions/system-monitor/meson.build
Normal file
14
extensions/system-monitor/meson.build
Normal file
@@ -0,0 +1,14 @@
|
||||
# SPDX-FileCopyrightText: 2017 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
|
||||
)
|
||||
|
||||
extension_data += files('stylesheet.css')
|
||||
extension_schemas += files('schemas/' + metadata_conf.get('gschemaname') + '.gschema.xml')
|
||||
|
||||
install_subdir('icons', install_dir: join_paths(extensiondir, uuid))
|
||||
10
extensions/system-monitor/metadata.json.in
Normal file
10
extensions/system-monitor/metadata.json.in
Normal file
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"extension-id": "@extension_id@",
|
||||
"uuid": "@uuid@",
|
||||
"settings-schema": "@gschemaname@",
|
||||
"gettext-domain": "@gettext_domain@",
|
||||
"name": "System Monitor",
|
||||
"description": "Monitor system from the top bar",
|
||||
"shell-version": [ "@shell_current@" ],
|
||||
"url": "@url@"
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 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.system-monitor"
|
||||
path="/org/gnome/shell/extensions/system-monitor/">
|
||||
<key name="show-cpu" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show CPU usage</summary>
|
||||
</key>
|
||||
<key name="show-memory" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show memory usage</summary>
|
||||
</key>
|
||||
<key name="show-swap" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show swap usage</summary>
|
||||
</key>
|
||||
<key name="show-upload" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show upload</summary>
|
||||
</key>
|
||||
<key name="show-download" type="b">
|
||||
<default>true</default>
|
||||
<summary>Show download</summary>
|
||||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
18
extensions/system-monitor/stylesheet.css
Normal file
18
extensions/system-monitor/stylesheet.css
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* SPDX-FileCopyrightText: 2023 Florian Müllner <fmuellner@gnome.org>
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
.system-monitor-stat-section {
|
||||
padding: 0 6px;
|
||||
}
|
||||
|
||||
.system-monitor-stat-section-icon {icon-size: 1.08em;}
|
||||
.system-monitor-stat-section-label {
|
||||
min-width: 3.0em;
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.system-monitor-placeholder {-st-icon-style: symbolic;}
|
||||
|
||||
.panel-button .high-usage {color: #ff7800;}
|
||||
@@ -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';
|
||||
|
||||
@@ -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', 'windowPicker.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,117 +4,116 @@
|
||||
*
|
||||
* 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;
|
||||
font-size: 10pt;
|
||||
spacing: 2px;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
.bottom-panel {
|
||||
background-color: #000000;
|
||||
border-top-width: 0px;
|
||||
padding: 2px;
|
||||
background-color: #000000;
|
||||
border-top-width: 0px;
|
||||
height: 2.45em;
|
||||
}
|
||||
|
||||
.window-button {
|
||||
padding: 2px, 1px;
|
||||
.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;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
.window-button:last-child:rtl {
|
||||
padding-right: 2px;
|
||||
padding-right: 2px;
|
||||
}
|
||||
|
||||
.window-button-box {
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
.window-button > StWidget,
|
||||
.window-picker-toggle > StWidget {
|
||||
color: #bbb;
|
||||
background-color: #1d1d1d;
|
||||
border-radius: 4px;
|
||||
padding: 3px 6px 1px;
|
||||
transition: 100ms ease;
|
||||
spacing: 4px;
|
||||
}
|
||||
|
||||
.window-button > StWidget {
|
||||
-st-natural-width: 18.75em;
|
||||
max-width: 18.75em;
|
||||
color: #fff;
|
||||
background-color: transparent;
|
||||
border-radius: 4px;
|
||||
padding: 3px 6px 1px;
|
||||
transition: 100ms ease;
|
||||
}
|
||||
|
||||
.window-button:hover > StWidget,
|
||||
.window-picker-toggle:hover > StWidget {
|
||||
color: #fff;
|
||||
background-color: #303030;
|
||||
.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 {
|
||||
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,
|
||||
.window-picker-toggle:checked > StWidget {
|
||||
color: #fff;
|
||||
background-color: #3f3f3f;
|
||||
.window-button.focused > StWidget {
|
||||
background-color: #5b5b5b;
|
||||
}
|
||||
|
||||
.window-button.focused:active > StWidget,
|
||||
.window-picker-toggle:checked: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;
|
||||
background-color: #161616;
|
||||
color: #666;
|
||||
background-color: #161616;
|
||||
}
|
||||
|
||||
.window-button.minimized:active > StWidget {
|
||||
color: #666;
|
||||
background-color: #161616;
|
||||
color: #666;
|
||||
background-color: #161616;
|
||||
}
|
||||
|
||||
.window-button-icon {
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .status-label-bin {
|
||||
background-color: rgba(200, 200, 200, 0.3);
|
||||
padding: 0 3px;
|
||||
margin: 3px;
|
||||
.window-button-abstract-label {
|
||||
background-color: #888;
|
||||
border-radius: 99px;
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.window-list-workspace-indicator .workspaces-box {
|
||||
spacing: 3px;
|
||||
padding: 3px;
|
||||
.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,70 +6,61 @@
|
||||
*/
|
||||
|
||||
@import url("stylesheet-dark.css");
|
||||
@import url("stylesheet-workspace-switcher-light.css");
|
||||
|
||||
#panel.bottom-panel {
|
||||
border-top-width: 1px;
|
||||
border-bottom-width: 0px;
|
||||
height: 2.25em ;
|
||||
padding: 2px;
|
||||
height: 2.5em;
|
||||
}
|
||||
|
||||
.bottom-panel .window-button > StWidget,
|
||||
.bottom-panel .window-picker-toggle > StWidget {
|
||||
color: #2e3436;
|
||||
background-color: #eee;
|
||||
.bottom-panel .window-button > StWidget {
|
||||
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,
|
||||
.bottom-panel .window-picker-toggle: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,
|
||||
.bottom-panel .window-picker-toggle:checked > 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,342 +0,0 @@
|
||||
// SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
|
||||
// SPDX-FileCopyrightText: 2019 Marco Trevisan (Treviño) <mail@3v1n0.net>
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
import Clutter from 'gi://Clutter';
|
||||
import GObject from 'gi://GObject';
|
||||
import Shell from 'gi://Shell';
|
||||
import St from 'gi://St';
|
||||
|
||||
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';
|
||||
import * as Layout from 'resource:///org/gnome/shell/ui/layout.js';
|
||||
import * as Main from 'resource:///org/gnome/shell/ui/main.js';
|
||||
import {WorkspacesDisplay} from 'resource:///org/gnome/shell/ui/workspacesView.js';
|
||||
import * as Workspace from 'resource:///org/gnome/shell/ui/workspace.js';
|
||||
|
||||
import {VIGNETTE_BRIGHTNESS} from 'resource:///org/gnome/shell/ui/lightbox.js';
|
||||
import {
|
||||
SIDE_CONTROLS_ANIMATION_TIME,
|
||||
OverviewAdjustment,
|
||||
ControlsState
|
||||
} from 'resource:///org/gnome/shell/ui/overviewControls.js';
|
||||
|
||||
class MyWorkspacesDisplay extends WorkspacesDisplay {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor(controls, overviewAdjustment) {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
|
||||
const workspaceAdjustment = new St.Adjustment({
|
||||
value: workspaceManager.get_active_workspace_index(),
|
||||
lower: 0,
|
||||
page_increment: 1,
|
||||
page_size: 1,
|
||||
step_increment: 0,
|
||||
upper: workspaceManager.n_workspaces,
|
||||
});
|
||||
|
||||
super(controls, workspaceAdjustment, overviewAdjustment);
|
||||
|
||||
this._windowPicker = controls;
|
||||
|
||||
this._workspaceAdjustment = workspaceAdjustment;
|
||||
this._workspaceAdjustment.actor = this;
|
||||
|
||||
workspaceManager.connectObject('notify::n-workspaces',
|
||||
() => this._updateAdjustment(), this);
|
||||
|
||||
this.add_constraint(
|
||||
new Layout.MonitorConstraint({
|
||||
primary: true,
|
||||
work_area: true,
|
||||
}));
|
||||
}
|
||||
|
||||
prepareToEnterOverview(...args) {
|
||||
if (!this._scrollEventId) {
|
||||
this._scrollEventId = this._windowPicker.connect('scroll-event',
|
||||
this._onScrollEvent.bind(this));
|
||||
}
|
||||
|
||||
super.prepareToEnterOverview(...args);
|
||||
}
|
||||
|
||||
vfunc_hide(...args) {
|
||||
if (this._scrollEventId > 0)
|
||||
this._windowPicker.disconnect(this._scrollEventId);
|
||||
this._scrollEventId = 0;
|
||||
|
||||
super.vfunc_hide(...args);
|
||||
}
|
||||
|
||||
_updateAdjustment() {
|
||||
let workspaceManager = global.workspace_manager;
|
||||
this._workspaceAdjustment.set({
|
||||
upper: workspaceManager.n_workspaces,
|
||||
value: workspaceManager.get_active_workspace_index(),
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export class WindowPicker extends Clutter.Actor {
|
||||
static [GObject.signals] = {
|
||||
'open-state-changed': {param_types: [GObject.TYPE_BOOLEAN]},
|
||||
};
|
||||
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super({reactive: true});
|
||||
|
||||
this._visible = false;
|
||||
this._modal = false;
|
||||
|
||||
this._stageKeyPressId = 0;
|
||||
|
||||
this._adjustment = new OverviewAdjustment(this);
|
||||
|
||||
this._injectionManager = new InjectionManager();
|
||||
this.connect('destroy', this._onDestroy.bind(this));
|
||||
|
||||
global.bind_property('screen-width',
|
||||
this, 'width',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
global.bind_property('screen-height',
|
||||
this, 'height',
|
||||
GObject.BindingFlags.SYNC_CREATE);
|
||||
|
||||
this._workspacesDisplay = new MyWorkspacesDisplay(this, this._adjustment);
|
||||
this.add_child(this._workspacesDisplay);
|
||||
|
||||
Main.uiGroup.insert_child_below(this, global.window_group);
|
||||
|
||||
if (!Main.sessionMode.hasOverview) {
|
||||
this._injectBackgroundShade();
|
||||
|
||||
global.display.connectObject('overlay-key', () => {
|
||||
if (!this._visible)
|
||||
this.open();
|
||||
else
|
||||
this.close();
|
||||
}, this);
|
||||
}
|
||||
}
|
||||
|
||||
_injectBackgroundShade() {
|
||||
const backgroundProto = Workspace.WorkspaceBackground.prototype;
|
||||
this._injectionManager.overrideMethod(backgroundProto, '_updateBorderRadius',
|
||||
() => {
|
||||
return function () {};
|
||||
});
|
||||
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_allocate',
|
||||
() => {
|
||||
/* eslint-disable no-invalid-this */
|
||||
return function (box) {
|
||||
this.set_allocation(box);
|
||||
|
||||
const themeNode = this.get_theme_node();
|
||||
const contentBox = themeNode.get_content_box(box);
|
||||
|
||||
this._bin.allocate(contentBox);
|
||||
|
||||
const [contentWidth, contentHeight] = contentBox.get_size();
|
||||
const monitor = Main.layoutManager.monitors[this._monitorIndex];
|
||||
const xRatio = contentWidth / this._workarea.width;
|
||||
const yRatio = contentHeight / this._workarea.height;
|
||||
|
||||
const right = area => area.x + area.width;
|
||||
const bottom = area => area.y + area.height;
|
||||
|
||||
const offsets = {
|
||||
left: xRatio * (this._workarea.x - monitor.x),
|
||||
right: xRatio * (right(monitor) - right(this._workarea)),
|
||||
top: yRatio * (this._workarea.y - monitor.y),
|
||||
bottom: yRatio * (bottom(monitor) - bottom(this._workarea)),
|
||||
};
|
||||
|
||||
contentBox.set_origin(-offsets.left, -offsets.top);
|
||||
contentBox.set_size(
|
||||
offsets.left + contentWidth + offsets.right,
|
||||
offsets.top + contentHeight + offsets.bottom);
|
||||
this._backgroundGroup.allocate(contentBox);
|
||||
};
|
||||
/* eslint-enable */
|
||||
});
|
||||
this._injectionManager.overrideMethod(backgroundProto, 'vfunc_parent_set',
|
||||
() => {
|
||||
/* eslint-disable no-invalid-this */
|
||||
return function () {
|
||||
setTimeout(() => {
|
||||
const parent = this.get_parent();
|
||||
if (!parent)
|
||||
return;
|
||||
|
||||
parent._overviewAdjustment.connectObject('notify::value', () => {
|
||||
const {value: progress} = parent._overviewAdjustment;
|
||||
const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress;
|
||||
for (const bg of this._backgroundGroup ?? []) {
|
||||
bg.content.set({
|
||||
vignette: true,
|
||||
brightness,
|
||||
});
|
||||
}
|
||||
}, this);
|
||||
});
|
||||
};
|
||||
/* eslint-enable */
|
||||
});
|
||||
}
|
||||
|
||||
get visible() {
|
||||
return this._visible;
|
||||
}
|
||||
|
||||
open() {
|
||||
if (this._visible)
|
||||
return;
|
||||
|
||||
this._visible = true;
|
||||
|
||||
if (!this._syncGrab())
|
||||
return;
|
||||
|
||||
this._fakeOverviewVisible(true);
|
||||
this._workspacesDisplay.prepareToEnterOverview();
|
||||
Main.overview._animationInProgress = true;
|
||||
|
||||
this._adjustment.value = ControlsState.HIDDEN;
|
||||
this._adjustment.ease(ControlsState.WINDOW_PICKER, {
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => (Main.overview._animationInProgress = false),
|
||||
});
|
||||
|
||||
this._stageKeyPressId = global.stage.connect('key-press-event',
|
||||
(a, event) => {
|
||||
let sym = event.get_key_symbol();
|
||||
if (sym === Clutter.KEY_Escape) {
|
||||
this.close();
|
||||
return Clutter.EVENT_STOP;
|
||||
}
|
||||
return Clutter.EVENT_PROPAGATE;
|
||||
});
|
||||
|
||||
this.emit('open-state-changed', this._visible);
|
||||
}
|
||||
|
||||
close() {
|
||||
if (!this._visible)
|
||||
return;
|
||||
|
||||
this._visible = false;
|
||||
|
||||
if (!this._syncGrab())
|
||||
return;
|
||||
|
||||
this._workspacesDisplay.prepareToLeaveOverview();
|
||||
|
||||
Main.overview._animationInProgress = true;
|
||||
this._adjustment.ease(ControlsState.HIDDEN, {
|
||||
duration: SIDE_CONTROLS_ANIMATION_TIME,
|
||||
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
|
||||
onComplete: () => {
|
||||
Main.overview._animationInProgress = false;
|
||||
this._workspacesDisplay.hide();
|
||||
this._fakeOverviewVisible(false);
|
||||
},
|
||||
});
|
||||
|
||||
global.stage.disconnect(this._stageKeyPressId);
|
||||
this._stageKeyPressId = 0;
|
||||
|
||||
this.emit('open-state-changed', this._visible);
|
||||
}
|
||||
|
||||
getWorkspacesBoxForState() {
|
||||
return this.allocation;
|
||||
}
|
||||
|
||||
_fakeOverviewVisible(visible) {
|
||||
// Fake overview state for WorkspacesDisplay
|
||||
Main.overview._visible = visible;
|
||||
|
||||
// Hide real windows
|
||||
Main.layoutManager._inOverview = visible;
|
||||
Main.layoutManager._updateVisibility();
|
||||
}
|
||||
|
||||
_syncGrab() {
|
||||
if (this._visible) {
|
||||
if (this._modal)
|
||||
return true;
|
||||
|
||||
const grab = Main.pushModal(global.stage, {
|
||||
actionMode: Shell.ActionMode.OVERVIEW,
|
||||
});
|
||||
if (grab.get_seat_state() !== Clutter.GrabState.NONE) {
|
||||
this._grab = grab;
|
||||
this._modal = true;
|
||||
} else {
|
||||
Main.popModal(grab);
|
||||
this.hide();
|
||||
return false;
|
||||
}
|
||||
} else if (this._modal) {
|
||||
Main.popModal(this._grab);
|
||||
this._modal = false;
|
||||
this._grab = null;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
_onDestroy() {
|
||||
this._injectionManager.clear();
|
||||
|
||||
if (this._stageKeyPressId)
|
||||
global.stage.disconnect(this._stageKeyPressId);
|
||||
this._stageKeyPressId = 0;
|
||||
}
|
||||
}
|
||||
|
||||
export class WindowPickerToggle extends St.Button {
|
||||
static {
|
||||
GObject.registerClass(this);
|
||||
}
|
||||
|
||||
constructor() {
|
||||
let iconBin = new St.Widget({
|
||||
layout_manager: new Clutter.BinLayout(),
|
||||
});
|
||||
iconBin.add_child(new St.Icon({
|
||||
icon_name: 'focus-windows-symbolic',
|
||||
icon_size: 16,
|
||||
x_expand: true,
|
||||
y_expand: true,
|
||||
x_align: Clutter.ActorAlign.CENTER,
|
||||
y_align: Clutter.ActorAlign.CENTER,
|
||||
}));
|
||||
super({
|
||||
style_class: 'window-picker-toggle',
|
||||
child: iconBin,
|
||||
visible: !Main.sessionMode.hasOverview,
|
||||
toggle_mode: true,
|
||||
});
|
||||
|
||||
const {windowPicker} = Extension.lookupByURL(import.meta.url);
|
||||
this.connect('notify::checked', () => {
|
||||
if (this.checked)
|
||||
windowPicker.open();
|
||||
else
|
||||
windowPicker.close();
|
||||
});
|
||||
|
||||
windowPicker.connect('open-state-changed', () => {
|
||||
this.checked = windowPicker.visible;
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,425 +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.queue_relayout(),
|
||||
'position-changed', () => {
|
||||
this._updateVisible();
|
||||
this.queue_relayout();
|
||||
},
|
||||
'notify::minimized', 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');
|
||||
}
|
||||
|
||||
_updateVisible() {
|
||||
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
this.visible = this._window.get_frame_rect().overlap(workArea) &&
|
||||
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,
|
||||
}),
|
||||
});
|
||||
|
||||
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_actor(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_actor(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_actor(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.NONE);
|
||||
}
|
||||
}
|
||||
|
||||
_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);
|
||||
});
|
||||
|
||||
if (i === this._currentWorkspace)
|
||||
item.setOrnament(PopupMenu.Ornament.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_actor(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';
|
||||
@@ -86,7 +85,7 @@ export default class Extension {
|
||||
style_class: 'extension-windowsNavigator-window-tooltip',
|
||||
visible: false,
|
||||
});
|
||||
this.add_actor(this._tip);
|
||||
this.add_child(this._tip);
|
||||
|
||||
this.connect('notify::scale-x', () => {
|
||||
this._tip.set_scale(1 / this.scale_x, 1 / this.scale_x);
|
||||
@@ -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++)
|
||||
@@ -236,7 +235,7 @@ export default class Extension {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (global.stage.get_key_focus() !== global.stage)
|
||||
if (global.stage.get_key_focus() !== null)
|
||||
return false;
|
||||
|
||||
// ignore shift presses, they're required to get numerals in azerty keyboards
|
||||
|
||||
@@ -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,438 +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.queue_relayout(),
|
||||
'position-changed', () => {
|
||||
this._updateVisible();
|
||||
this.queue_relayout();
|
||||
},
|
||||
'notify::minimized', 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');
|
||||
}
|
||||
|
||||
_updateVisible() {
|
||||
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||
this.visible = this._window.get_frame_rect().overlap(workArea) &&
|
||||
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,
|
||||
}),
|
||||
});
|
||||
|
||||
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_actor(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_actor(this._statusLabel);
|
||||
|
||||
this._thumbnailsBox = new St.BoxLayout({
|
||||
style_class: 'panel-workspace-indicator-box',
|
||||
y_expand: true,
|
||||
reactive: true,
|
||||
});
|
||||
|
||||
container.add_actor(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.NONE);
|
||||
}
|
||||
}
|
||||
|
||||
_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);
|
||||
});
|
||||
|
||||
if (i === this._currentWorkspace)
|
||||
this._workspacesItems[i].setOrnament(PopupMenu.Ornament.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_actor(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;
|
||||
}
|
||||
695
extensions/workspace-indicator/workspaceIndicator.js
Normal file
695
extensions/workspace-indicator/workspaceIndicator.js
Normal file
@@ -0,0 +1,695 @@
|
||||
// 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();
|
||||
|
||||
let 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;
|
||||
|
||||
let 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) {
|
||||
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._preview.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, 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,
|
||||
reactive: 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)
|
||||
this._editButton.checked = true;
|
||||
});
|
||||
|
||||
global.stage.connectObject('notify::key-focus', () => {
|
||||
const {keyFocus} = global.stage;
|
||||
if (!keyFocus || !this.contains(keyFocus))
|
||||
this._stopEditing();
|
||||
}, this);
|
||||
}
|
||||
|
||||
_switchActor(from, to) {
|
||||
to.reactive = 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.reactive = 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));
|
||||
|
||||
let 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
|
||||
52
meson.build
52
meson.build
@@ -2,10 +2,11 @@
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
project('gnome-shell-extensions',
|
||||
version: '45.0',
|
||||
meson_version: '>= 0.58.0',
|
||||
license: 'GPL2+'
|
||||
project(
|
||||
'gnome-shell-extensions',
|
||||
version: '49.beta',
|
||||
meson_version: '>= 1.1.0',
|
||||
license: 'GPL-2.0-or-later',
|
||||
)
|
||||
|
||||
gettext_domain = meson.project_name()
|
||||
@@ -30,11 +31,13 @@ shell_version = ver_arr[0]
|
||||
|
||||
uuid_suffix = '@gnome-shell-extensions.gcampax.github.com'
|
||||
|
||||
have_x11 = get_option('x11')
|
||||
|
||||
classic_extensions = [
|
||||
'apps-menu',
|
||||
'places-menu',
|
||||
'launch-new-instance',
|
||||
'window-list'
|
||||
'window-list',
|
||||
]
|
||||
|
||||
default_extensions = classic_extensions
|
||||
@@ -42,16 +45,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')
|
||||
|
||||
@@ -70,11 +71,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
|
||||
@@ -82,32 +82,30 @@ 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)
|
||||
)
|
||||
if have_x11
|
||||
meson.add_install_script(
|
||||
'build-aux/session-post-install.py',
|
||||
join_paths(get_option('prefix'), datadir),
|
||||
)
|
||||
endif
|
||||
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 = {
|
||||
|
||||
@@ -20,3 +20,9 @@ option('classic_mode',
|
||||
value: false,
|
||||
description: 'Enable installing data files for classic mode.'
|
||||
)
|
||||
|
||||
option('x11',
|
||||
type: 'boolean',
|
||||
value: false,
|
||||
description: 'Enable X11 session support.'
|
||||
)
|
||||
@@ -29,6 +29,7 @@ he
|
||||
hi
|
||||
hr
|
||||
hu
|
||||
ia
|
||||
id
|
||||
is
|
||||
it
|
||||
|
||||
@@ -11,11 +11,13 @@ extensions/native-window-placement/org.gnome.shell.extensions.native-window-plac
|
||||
extensions/places-menu/extension.js
|
||||
extensions/places-menu/placeDisplay.js
|
||||
extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml
|
||||
extensions/system-monitor/extension.js
|
||||
extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml
|
||||
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
|
||||
|
||||
289
po/be.po
289
po/be.po
@@ -8,17 +8,17 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
|
||||
"PO-Revision-Date: 2022-10-19 15:20+0300\n"
|
||||
"Last-Translator: Launchpad translators\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
"X-Generator: Poedit 3.0\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.5\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -41,15 +41,15 @@ msgstr "Класічны GNOME на Xorg"
|
||||
msgid "Favorites"
|
||||
msgstr "Абраныя"
|
||||
|
||||
#: extensions/apps-menu/extension.js:379
|
||||
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 "Праграма і спіс працоўных прастор"
|
||||
|
||||
#: 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"
|
||||
@@ -57,151 +57,230 @@ msgstr ""
|
||||
"Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *."
|
||||
"desktop), затым двукроп'е і нумар працоўнай прасторы"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:152
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Правілы для працоўнай прасторы"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "Дадаць правіла"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:126
|
||||
#: extensions/places-menu/placeDisplay.js:210
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, 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. "
|
||||
"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 ""
|
||||
"Калі выбрана, подпіс акна будзе над мініяцюрай, а не пад ей (як "
|
||||
"Калі выбрана, подпіс акна будзе над мініяцюрай, а не пад ёй (як "
|
||||
"перадвызначана). Каб змена налады ўступіла ў сілу, трэба перазапусціць "
|
||||
"абалонку."
|
||||
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:97
|
||||
#: 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"
|
||||
msgstr "Агляд сеткі"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Нядаўнія"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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"
|
||||
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 "Статыстыка выкарыстання працэсара"
|
||||
|
||||
#: 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:364
|
||||
msgid "System stats"
|
||||
msgstr "Статыстыка сістэмы"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Паказваць"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "Працэсар"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Памяць"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Своп"
|
||||
|
||||
#: 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 "Паказваць выкарыстанне працэсара"
|
||||
|
||||
#: 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"
|
||||
|
||||
#: 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:483
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Згарнуць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:489
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Скасаваць згортванне для ўсіх"
|
||||
|
||||
#: extensions/window-list/extension.js:495
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Разгарнуць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:503
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Скасаваць разгортванне для ўсіх"
|
||||
|
||||
#: extensions/window-list/extension.js:511
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Закрыць усе"
|
||||
|
||||
#: extensions/window-list/extension.js:795
|
||||
#: 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 "Умовы групавання вокнаў"
|
||||
|
||||
#: 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”."
|
||||
@@ -209,63 +288,125 @@ 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:74
|
||||
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."
|
||||
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: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: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:62
|
||||
#: 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:129
|
||||
msgid "Workspace Names"
|
||||
msgstr "Назвы працоўных прастор"
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "Дадаць працоўную прастору"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
msgid "Add Workspace"
|
||||
msgstr "Дадаць працоўную прастору"
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "Выдаліць"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Камп'ютар"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Паказваць папярэдні прагляд працоўных прастор"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Праграмы"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Прымацаваць мадальны дыялог да бацькоўскага акна"
|
||||
@@ -328,7 +469,7 @@ msgstr "Дадаць працоўную прастору"
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr ""
|
||||
#~ "Калі не пуста, ўтрымлівае тэкст, які будзе паказвацца пры націсканні на "
|
||||
#~ "Калі не пуста, змяшчае тэкст, які будзе паказвацца пры націсканні на "
|
||||
#~ "панэль."
|
||||
|
||||
#~ msgid "Message"
|
||||
|
||||
224
po/bg.po
224
po/bg.po
@@ -1,24 +1,28 @@
|
||||
# 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.
|
||||
#
|
||||
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: 2024-09-01 12:03+0000\n"
|
||||
"PO-Revision-Date: 2024-09-02 10:49+0200\n"
|
||||
"Last-Translator: twlvnn kraftwerk <kraft_werk@tutanota.com>\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"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 46.1\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -37,19 +41,19 @@ msgstr "Класически GNOME в Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "Класически GNOME в Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Любими"
|
||||
|
||||
#: extensions/apps-menu/extension.js:370
|
||||
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"
|
||||
@@ -57,34 +61,34 @@ msgstr ""
|
||||
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
|
||||
"desktop“), следван от знака „:“ и номер на работен плот"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:19
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Правила за работните плотове"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:245
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
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:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Неуспешно изваждане на устройство „%s“:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:139
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Преносими медии"
|
||||
|
||||
#: extensions/drive-menu/extension.js:161
|
||||
#: 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. "
|
||||
@@ -95,11 +99,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 "
|
||||
@@ -109,123 +113,195 @@ msgstr ""
|
||||
"им, а не както е стандартно — отдолу. За прилагане на промяната на "
|
||||
"настройката трябва да рестартирате обвивката на GNOME."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Места"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:49
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Неуспешно стартиране на „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:64
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Неуспешно монтиране на тома „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:125
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Компютър"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:336
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Домашна папка"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:381
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Мрежа"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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 "Статистика на ЦП"
|
||||
|
||||
#: 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:364
|
||||
msgid "System stats"
|
||||
msgstr "Статистика на системата"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Показване"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "ЦП"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Памет"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Виртуалната памет"
|
||||
|
||||
#: 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 "Показване на ползван ЦП"
|
||||
|
||||
#: 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“"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:70
|
||||
msgid "Close"
|
||||
msgstr "Затваряне"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Unminimize"
|
||||
msgstr "Деминимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:97
|
||||
msgid "Minimize"
|
||||
msgstr "Минимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Unmaximize"
|
||||
msgstr "Демаксимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:104
|
||||
msgid "Maximize"
|
||||
msgstr "Максимизиране"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:489
|
||||
msgid "Minimize all"
|
||||
msgstr "Минимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:495
|
||||
msgid "Unminimize all"
|
||||
msgstr "Деминимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:501
|
||||
msgid "Maximize all"
|
||||
msgstr "Максимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:509
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Демаксимизиране на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:517
|
||||
msgid "Close all"
|
||||
msgstr "Затваряне на всички"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:789
|
||||
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”."
|
||||
msgstr ""
|
||||
"Кога прозорците на една програма да се групират в списъка с прозорците. "
|
||||
"Възможните стойности са „never“ (никога), „auto“ (автоматично) и "
|
||||
"„always“ (винаги)."
|
||||
"Възможните стойности са „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:79
|
||||
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."
|
||||
@@ -233,40 +309,58 @@ 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:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Групиране на прозорци"
|
||||
|
||||
#: extensions/window-list/prefs.js:37
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Никога да не се групират"
|
||||
|
||||
#: extensions/window-list/prefs.js:38
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Групиране при ограничено място"
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Винаги да се групират"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "На всички монитори"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Индикатор на работните плотове"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Визуализиране на работните пространства"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:18
|
||||
msgid "Workspace Names"
|
||||
msgstr "Имена на работните плотове"
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Визуализиране в горната лента"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:39
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Работен плот %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:184
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Имена на работните плотове"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
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/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Индикатор на работните плотове"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Програми"
|
||||
|
||||
281
po/ca.po
281
po/ca.po
@@ -9,8 +9,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2017-07-08 13:29+0100\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"
|
||||
@@ -18,6 +18,8 @@ msgstr ""
|
||||
"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"
|
||||
@@ -36,19 +38,19 @@ msgstr "GNOME clàssic amb Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME clàssic amb Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Preferides"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Aplicacions"
|
||||
|
||||
#: 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 "Aplicació i llista d'espais de treball"
|
||||
|
||||
#: 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"
|
||||
@@ -57,34 +59,34 @@ msgstr ""
|
||||
"d'aplicació (nom del fitxer de l'escriptori), seguit de dos punts i el "
|
||||
"número de l'espai de treball"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regles dels espais de treball"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: 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:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Ha fallat l'expulsió de la unitat «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositius extraïbles"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Obre els fitxers"
|
||||
|
||||
#: 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 "Utilitza més pantalla per les finestres"
|
||||
|
||||
#: 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. "
|
||||
@@ -96,11 +98,11 @@ msgstr ""
|
||||
"de configuració només s'aplica a l'estratègia de posicionament de finestres "
|
||||
"natural."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Posiciona els títols de les finestres al damunt"
|
||||
|
||||
#: 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 "
|
||||
@@ -111,99 +113,178 @@ msgstr ""
|
||||
"posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui "
|
||||
"efecte."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Llocs"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: 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:61
|
||||
#: 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:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "Ordinador"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Inici"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Navega per la xarxa"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Recent"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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"
|
||||
msgstr "Mostra cíclicament mides de captura de pantalla"
|
||||
|
||||
#: 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 "Mostra cíclicament cap enrere mides de captura de pantalla"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Estadístiques de processador"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Estadístiques de memòria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Estadístiques del «swap»"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Estadístiques de pujada"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Estadístiques de descàrrega"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Estadístiques del sistema"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostra"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "Processador"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memòria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Espai d'intercanvi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Pujades"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Descàrregues"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
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 CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
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 de l'espai d'intercanvi"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Mostra les pujades"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Mostra les descàrregues"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Nom del tema"
|
||||
|
||||
#: 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 "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:98
|
||||
msgid "Close"
|
||||
msgstr "Tanca"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Unminimize"
|
||||
msgstr "Desminimitza"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:125
|
||||
msgid "Minimize"
|
||||
msgstr "Minimitza"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximitza"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:130
|
||||
msgid "Maximize"
|
||||
msgstr "Maximitza"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:720
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:726
|
||||
msgid "Unminimize all"
|
||||
msgstr "Desminimitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:732
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:740
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximitza-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:748
|
||||
msgid "Close all"
|
||||
msgstr "Tanca-ho tot"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:1000 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Llista de finestres"
|
||||
|
||||
#: 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 "Quan s'han d'agrupar les finestres"
|
||||
|
||||
#: 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”."
|
||||
@@ -212,22 +293,22 @@ msgstr ""
|
||||
"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:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: 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 "Mostra les finestres de tots els espais de treball"
|
||||
|
||||
#: 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 ""
|
||||
"Si es mostren les finestres de tots els espais de treballs o només de "
|
||||
"l'actual."
|
||||
|
||||
#: 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 "Mostra la llista de finestres a tots els monitors"
|
||||
|
||||
#: 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."
|
||||
@@ -235,40 +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:39
|
||||
#: 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:63
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Mai agrupis les finestres"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: 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:65
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Agrupa les finestres sempre"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostra a tots els monitors"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
#: 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:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Noms dels espais de treball"
|
||||
#: 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"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espai de treball %d"
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "Espai de treball %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
msgid "Add Workspace"
|
||||
msgstr "Afegeix un espai de treball"
|
||||
#~ 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"
|
||||
|
||||
240
po/cs.po
240
po/cs.po
@@ -3,22 +3,23 @@
|
||||
# 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: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2022-02-16 09:58+0100\n"
|
||||
"Last-Translator: Marek Černocký <marek@manet.cz>\n"
|
||||
"POT-Creation-Date: 2025-02-13 00:15+0000\n"
|
||||
"PO-Revision-Date: 2025-02-20 23:42+0100\n"
|
||||
"Last-Translator: Daniel Rusek <mail@asciiwolf.com>\n"
|
||||
"Language-Team: Czech <gnome-cs-list@gnome.org>\n"
|
||||
"Language: cs\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<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Gtranslator 2.91.6\n"
|
||||
"X-Generator: Poedit 3.5\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -37,19 +38,19 @@ msgstr "GNOME klasik na Waylandu"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME klasik na Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:125
|
||||
msgid "Favorites"
|
||||
msgstr "Oblíbené"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:399
|
||||
msgid "Apps"
|
||||
msgstr "Aplikace"
|
||||
|
||||
#: 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 "Seznam aplikací a pracovních ploch"
|
||||
|
||||
#: 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"
|
||||
@@ -57,34 +58,34 @@ msgstr ""
|
||||
"Seznam řetězců, z nichž každý obsahuje ID aplikace (název souboru pracovní "
|
||||
"plochy), následovaný dvojtečkou a číslem pracovní plochy"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Pravidla pracovních ploch"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: 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:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Vysunutí disku „%s“ selhalo:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Výměnná zařízení"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Otevřít soubory"
|
||||
|
||||
#: 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 "Použít větší část obrazovky pro okna"
|
||||
|
||||
#: 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. "
|
||||
@@ -94,11 +95,11 @@ msgstr ""
|
||||
"využít větší část obrazovky pro umístění náhledů oken. Toto nastavení se "
|
||||
"použije pouze dohromady se strategií umisťování „natural“."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Umístit název okna nahoru"
|
||||
|
||||
#: 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 "
|
||||
@@ -108,99 +109,178 @@ msgstr ""
|
||||
"přepíše výchozí chování shellu, který jej umisťuje dolů. Změna tohoto "
|
||||
"nastavení vyžaduje restart shellu, aby se projevila."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Místa"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Selhalo spuštění „%s“"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: 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:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "Počítač"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Domů"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Procházet síť"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Nedávné"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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"
|
||||
msgstr "Mění velikost pro snímky obrazovky"
|
||||
|
||||
#: 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 "Mění pozpátku velikost pro snímky obrazovky"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Statistiky CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Statistiky paměti"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Statistiky odkládacího prostoru"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Statistiky nahrávání"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Statistiky stahování"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Statistiky systému"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Zobrazit"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Paměť"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Odkládací prostor"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Nahrávání"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Stahování"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Otevřít Sledování systému"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Zobrazit využití CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Zobrazit využití paměti"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Zobrazit využití odkládacího prostoru"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Zobrazit nahrávání"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Zobrazit stahování"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Název motivu"
|
||||
|
||||
#: 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 "Název motivu, který se má načíst z ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:95
|
||||
msgid "Close"
|
||||
msgstr "Zavřít"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Unminimize"
|
||||
msgstr "Zrušit minimalizaci"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Minimize"
|
||||
msgstr "Minimalizovat"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Unmaximize"
|
||||
msgstr "Zrušit maximalizaci"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Maximize"
|
||||
msgstr "Maximalizovat"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:721
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimalizovat všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:727
|
||||
msgid "Unminimize all"
|
||||
msgstr "Zrušit minimalizaci všech"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:733
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximalizovat všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:741
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Zrušit maximalizaci všech"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:749
|
||||
msgid "Close all"
|
||||
msgstr "Zavřít všechna"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:992 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Seznam oken"
|
||||
|
||||
#: 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 "Kdy seskupovat okna"
|
||||
|
||||
#: 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”."
|
||||
@@ -208,20 +288,20 @@ msgstr ""
|
||||
"Rozhoduje, kdy se mají v seznamu oken seskupovat okna stejné aplikace. Možné "
|
||||
"hodnoty jsou „never“ (nikdy), „auto“ (automaticky) a „always“ (vždy)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Zobrazovat okna ze všech pracovních ploch"
|
||||
|
||||
#: 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 "Zda zobrazovat okna ze všech pracovních ploch nebo jen z aktuální."
|
||||
|
||||
#: 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 "Zobrazovat seznam oken na všech monitorech"
|
||||
|
||||
#: 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."
|
||||
@@ -229,40 +309,68 @@ msgstr ""
|
||||
"Zda zobrazovat seznam oken na všech připojených monitorech nebo jen na "
|
||||
"hlavním."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/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:63
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Nikdy neseskupovat okna"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: 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:65
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Vždy seskupovat okna"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Zobrazovat na všech monitorech"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
#: 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:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Ukazatel pracovní plochy"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Názvy pracovních ploch"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:28
|
||||
msgid "Show Previews"
|
||||
msgstr "Zobrazit náhledy"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:86
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Pracovní plocha %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:153
|
||||
msgid "Workspace Names"
|
||||
msgstr "Názvy pracovních ploch"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:170
|
||||
msgid "Add Workspace"
|
||||
msgstr "Přidat pracovní plochu"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:195
|
||||
msgid "Remove"
|
||||
msgstr "Odstranit"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:225
|
||||
msgid "Workspaces"
|
||||
msgstr "Pracovní plochy"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Počítač"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Zobrazit náhledy pracovních ploch"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplikace"
|
||||
|
||||
214
po/da.po
214
po/da.po
@@ -1,9 +1,9 @@
|
||||
# Danish translation for gnome-shell-extensions.
|
||||
# Copyright (C) 2011-2017 gnome-shell-extensions's COPYRIGHT HOLDER
|
||||
# Copyright (C) 2011-2017, 2024 gnome-shell-extensions's COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the gnome-shell-extensions package.
|
||||
#
|
||||
# Kris Thomsen <mail@kristhomsen.dk>, 2011-2014.
|
||||
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2015, 2017.
|
||||
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2015, 2017, 2024.
|
||||
# Joe Hansen <joedalton2@yahoo.dk>, 2017.
|
||||
#
|
||||
msgid ""
|
||||
@@ -11,9 +11,9 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2022-02-27 13:21+0100\n"
|
||||
"Last-Translator: Alan Mortensen <alanmortensen.am@gmail.com>\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"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -39,19 +39,19 @@ msgstr "GNOME Classic på Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic på Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritter"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Programmer"
|
||||
|
||||
#: 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 "Liste over programmer og arbejdsområder"
|
||||
|
||||
#: 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"
|
||||
@@ -59,34 +59,34 @@ msgstr ""
|
||||
"En liste over strenge, som hver indeholder et program-id "
|
||||
"(skrivebordsfilnavn), efterfulgt af et kolon og arbejdsområdets nummer"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regler for arbejdsområde"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Tilføj regel"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Udskubning af drevet “%s” mislykkedes:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Flytbare enheder"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Åbn filer"
|
||||
|
||||
#: 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 "Brug mere skærmplads til vinduer"
|
||||
|
||||
#: 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. "
|
||||
@@ -97,11 +97,11 @@ msgstr ""
|
||||
"yderligere for at reducere den omkransende boks.Denne indstilling gælder kun "
|
||||
"med den naturlige placeringsstrategi."
|
||||
|
||||
#: 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 "Placér vinduestitler i toppen"
|
||||
|
||||
#: 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 "
|
||||
@@ -112,47 +112,119 @@ msgstr ""
|
||||
"Ændring af denne indstilling kræver at shell'en genstartes for at træde i "
|
||||
"kraft."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Steder"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Kunne ikke åbne “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Kunne ikke montere diskenhed for “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Computer"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Hjem"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Gennemse netværk"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Gennemgå størrelser af skærmbillede"
|
||||
|
||||
#: 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 "Gennemgå størrelser af skærmbillede baglæns"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "CPU-statistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Hukommelsesstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Swapstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Uploadstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Downloadstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Systemstatistik"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Vis"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Hukommelse"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Åbn Systemovervågning"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Vis CPU-forbrug"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Vis hukommelsesforbrug"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Vis swapforbrug"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Vis upload"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Vis download"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Temanavn"
|
||||
|
||||
#: 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 "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
|
||||
|
||||
@@ -160,51 +232,51 @@ msgstr "Navnet på temaet, som indlæses fra ~/.themes/name/gnome-shell"
|
||||
msgid "Close"
|
||||
msgstr "Luk"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Afminimér"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimér"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Afmaksimér"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maksimér"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimér"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Afminimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maksimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Afmaksimér alle"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Luk alle"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Vinduesliste"
|
||||
|
||||
#: 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 "Hvornår vinduer skal grupperes"
|
||||
|
||||
#: 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”."
|
||||
@@ -212,21 +284,21 @@ msgstr ""
|
||||
"Afgør hvornår vinduer fra samme program skal grupperes i vindueslisten. "
|
||||
"Mulige værdier er “never” (aldrig), “auto” (automatisk) og “always” (altid)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Vis vinduer fra alle arbejdsområder"
|
||||
|
||||
#: 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 ""
|
||||
"Om der skal vises vinduer fra alle arbejdsområder eller kun det nuværende."
|
||||
|
||||
#: 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 "Vis vindueslisten på alle skærme"
|
||||
|
||||
#: 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."
|
||||
@@ -234,44 +306,62 @@ msgstr ""
|
||||
"Om vindueslisten skal vise på alle tilsluttede skærme, eller kun på den "
|
||||
"primære."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/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"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Gruppér aldrig vinduer"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Gruppér vinduer når pladsen er begrænset"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Gruppér altid vinduer"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Vis på alle skærme"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
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:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Navne på arbejdsområder"
|
||||
#: 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:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Arbejdsområde %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Navne på arbejdsområder"
|
||||
|
||||
#: 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"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Program"
|
||||
|
||||
|
||||
279
po/de.po
279
po/de.po
@@ -8,22 +8,24 @@
|
||||
# Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2017.
|
||||
# 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 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-03-07 15:35+0000\n"
|
||||
"PO-Revision-Date: 2022-03-10 22:26+0100\n"
|
||||
"Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
|
||||
"POT-Creation-Date: 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.0.1\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -42,19 +44,19 @@ msgstr "GNOME Classic unter Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic unter Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favoriten"
|
||||
|
||||
#: extensions/apps-menu/extension.js:379
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Anwendungen"
|
||||
|
||||
#: 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 "Anwendungs- und Arbeitsflächenliste"
|
||||
|
||||
#: 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"
|
||||
@@ -63,34 +65,34 @@ msgstr ""
|
||||
"Datei) enthält, gefolgt von einem Doppelpunkt und der Nummer der "
|
||||
"Arbeitsfläche"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:152
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Arbeitsfläche-Regeln"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Regel hinzufügen"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:126
|
||||
#: extensions/places-menu/placeDisplay.js:210
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Auswerfen von Laufwerk »%s« schlug fehl:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Wechseldatenträger"
|
||||
|
||||
#: extensions/drive-menu/extension.js:167
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Dateien öffnen"
|
||||
|
||||
#: 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 "Mehr Bildschirmbereich für Fenster verwenden"
|
||||
|
||||
#: 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. "
|
||||
@@ -102,11 +104,11 @@ msgstr ""
|
||||
"verkleinern. Diese Einstellung betrifft nur den natürlichen "
|
||||
"Platzierungsalgorithmus."
|
||||
|
||||
#: 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 "Fensterbeschriftungen oben platzieren"
|
||||
|
||||
#: 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 "
|
||||
@@ -116,47 +118,119 @@ msgstr ""
|
||||
"Vorschaubild platziert und damit die Voreinstellung der Shell übergangen. "
|
||||
"Eine Änderungseinstellung tritt erst mit einem Neustart der Shell in Kraft."
|
||||
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
#: extensions/places-menu/extension.js:97
|
||||
msgid "Places"
|
||||
msgstr "Orte"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:49
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Starten von »%s« fehlgeschlagen"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:64
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Datenträger für »%s« konnte nicht eingebunden werden"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:125
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Rechner"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:336
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Persönlicher Ordner"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:381
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Netzwerk durchsuchen"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Bildschirmfotogrößen nacheinander anzeigen"
|
||||
|
||||
#: 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 "Bildschirmfotogrößen in umgekehrter Reihenfolge anzeigen"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "CPU-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Speicherstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Auslagerungsspeicherstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Upload-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Download-Statistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Systemstatistiken"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Anzeigen"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Speicher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Auslagerungsspeicher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Systemüberwachung öffnen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "CPU-Nutzung anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Speichernutzung anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Auslagerungsspeichernutzung anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Upload anzeigen"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Download anzeigen"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Themenname"
|
||||
|
||||
#: 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 ""
|
||||
"Der Name des Themas, welches aus ~/.themes/name/gnome-shell geladen werden "
|
||||
@@ -166,51 +240,51 @@ msgstr ""
|
||||
msgid "Close"
|
||||
msgstr "Schließen"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Minimieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimieren"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Maximieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximieren"
|
||||
|
||||
#: extensions/window-list/extension.js:441
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Alle minimieren"
|
||||
|
||||
#: extensions/window-list/extension.js:447
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Alle minimieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:453
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Alle maximieren"
|
||||
|
||||
#: extensions/window-list/extension.js:461
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Alle maximieren rückgängig"
|
||||
|
||||
#: extensions/window-list/extension.js:469
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Alle schließen"
|
||||
|
||||
#: extensions/window-list/extension.js:753
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Fensterliste"
|
||||
|
||||
#: 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 "Legt fest, wann Fenster gruppiert werden"
|
||||
|
||||
#: 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”."
|
||||
@@ -219,22 +293,22 @@ msgstr ""
|
||||
"werden sollen. Mögliche Werte sind »never« (nie), »auto« (automatisch) und "
|
||||
"»always« (immer)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Fenster von allen Arbeitsflächen anzeigen"
|
||||
|
||||
#: 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 ""
|
||||
"Legt fest, ob Fenster von allen oder nur der aktuellen Arbeitsflächen "
|
||||
"angezeigt werden."
|
||||
|
||||
#: 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 "Die Fensterliste auf allen Bildschirmen anzeigen"
|
||||
|
||||
#: 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."
|
||||
@@ -242,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"
|
||||
@@ -262,105 +340,34 @@ msgstr "Fenster immer gruppieren"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Auf allen Bildschirmen anzeigen"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
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:62
|
||||
#: 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:129
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Namen der Arbeitsflächen"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Arbeitsfläche hinzufügen"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Anwendung"
|
||||
#: 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"
|
||||
|
||||
#~ msgid "Create new matching rule"
|
||||
#~ msgstr "Neue Übereinstimmungsregel erstellen"
|
||||
#: extensions/workspace-indicator/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Arbeitsflächenindikator"
|
||||
|
||||
#~ msgid "Add"
|
||||
#~ msgstr "Hinzufügen"
|
||||
|
||||
#~ msgid "Name"
|
||||
#~ msgstr "Name"
|
||||
|
||||
#~ msgid "Attach modal dialog to the parent window"
|
||||
#~ msgstr "Einen modalen Dialog an das übergeordnete Fenster anhängen"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "Dieser Schlüssel überschreibt den Schlüssel in »org.gnome.mutter«, wenn "
|
||||
#~ "die GNOME-Shell ausgeführt wird."
|
||||
|
||||
#~ msgid "Arrangement of buttons on the titlebar"
|
||||
#~ msgstr "Anordnung von Knöpfen auf der Titelleiste"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||
#~ "running GNOME Shell."
|
||||
#~ msgstr ""
|
||||
#~ "Dieser Schlüssel überschreibt den Schlüssel in »org.gnome.desktop.wm."
|
||||
#~ "preferences«, wenn die GNOME-Shell ausgeführt wird."
|
||||
|
||||
# identisch zum Schüssel in »gnome-shell«
|
||||
#~ msgid "Enable edge tiling when dropping windows on screen edges"
|
||||
#~ msgstr ""
|
||||
#~ "Größenanpassung aktivieren, wenn ein Fenster an die Bildschirmkante "
|
||||
#~ "verschoben wird"
|
||||
|
||||
#~ msgid "Workspaces only on primary monitor"
|
||||
#~ msgstr "Arbeitsflächen nur auf dem Primärmonitor"
|
||||
|
||||
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||
#~ msgstr ""
|
||||
#~ "Fokuswechsel im Mausmodus verzögern, bis sich der Zeiger nicht mehr "
|
||||
#~ "bewegt."
|
||||
|
||||
#~ msgid "Thumbnail only"
|
||||
#~ msgstr "Nur Vorschaubild"
|
||||
|
||||
#~ msgid "Application icon only"
|
||||
#~ msgstr "Nur Anwendungssymbol"
|
||||
|
||||
#~ msgid "Thumbnail and application icon"
|
||||
#~ msgstr "Vorschaubild und Anwendungssymbol"
|
||||
|
||||
#~ msgid "Present windows as"
|
||||
#~ msgstr "Fenster darstellen als"
|
||||
|
||||
#~ msgid "Activities Overview"
|
||||
#~ msgstr "Aktivitäten-Übersicht"
|
||||
|
||||
#~ msgid "Hello, world!"
|
||||
#~ msgstr "Hallo Welt!"
|
||||
|
||||
#~ msgid "Alternative greeting text."
|
||||
#~ msgstr "Alternativer Begrüßungstext."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||
#~ "the panel."
|
||||
#~ msgstr ""
|
||||
#~ "Falls nicht leer, ist dies der Text, der beim Anklicken des Panels "
|
||||
#~ "angezeigt wird."
|
||||
|
||||
#~ msgid "Message"
|
||||
#~ msgstr "Nachricht"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "Example aims to show how to build well behaved extensions for the Shell "
|
||||
#~ "and as such it has little functionality on its own.\n"
|
||||
#~ "Nevertheless it’s possible to customize the greeting message."
|
||||
#~ msgstr ""
|
||||
#~ "Das Beispiel soll zeigen, wie sich korrekt verhaltende Erweiterungen für "
|
||||
#~ "die Shell erstellt werden. Es enthält grundlegende Funktionalität.\n"
|
||||
#~ "Es ist möglich, die Begrüßungsnachricht zu ändern."
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Anwendungen"
|
||||
|
||||
187
po/el.po
187
po/el.po
@@ -12,8 +12,8 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2023-02-18 15:10+0000\n"
|
||||
"PO-Revision-Date: 2023-08-01 23:41+0300\n"
|
||||
"POT-Creation-Date: 2024-07-24 10:26+0000\n"
|
||||
"PO-Revision-Date: 2024-08-12 23:29+0300\n"
|
||||
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
|
||||
"Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n"
|
||||
"Language: el\n"
|
||||
@@ -21,7 +21,7 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 3.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:218
|
||||
#, 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,47 +115,119 @@ 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:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Αποτυχία εκκίνησης «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Αποτυχία προσάρτησης τόμου για «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:127
|
||||
#: extensions/places-menu/placeDisplay.js:150
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Υπολογιστής"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:340
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Προσωπικός φάκελος"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:385
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Περιήγηση δικτύου"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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"
|
||||
@@ -164,51 +236,51 @@ msgstr ""
|
||||
msgid "Close"
|
||||
msgstr "Κλείσιμο"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Αποελαχιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Ελαχιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Απομεγιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Μεγιστοποίηση"
|
||||
|
||||
#: extensions/window-list/extension.js:483
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Ελαχιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:489
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Αποελαχιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:495
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Μεγιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:503
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Απομεγιστοποίηση όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:511
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Κλείσιμο όλων"
|
||||
|
||||
#: extensions/window-list/extension.js:795
|
||||
#: extensions/window-list/extension.js:773
|
||||
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 +289,21 @@ msgstr ""
|
||||
"παραθύρου. Δυνατές τιμές είναι «never» (ποτέ), «auto» (αυτόματα) και "
|
||||
"«always» (πάντα)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: 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."
|
||||
@@ -259,24 +331,27 @@ msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Να εμφανίζεται σε όλες τις οθόνες"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
#: extensions/window-list/workspaceIndicator.js:255
|
||||
#: extensions/workspace-indicator/extension.js:261
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Δείκτης χώρου εργασίας"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:62
|
||||
#: extensions/workspace-indicator/prefs.js:69
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Χώρος εργασίας %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:129
|
||||
#: extensions/workspace-indicator/prefs.js:136
|
||||
msgid "Workspace Names"
|
||||
msgstr "Ονόματα χώρων εργασίας"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: extensions/workspace-indicator/prefs.js:262
|
||||
msgid "Add Workspace"
|
||||
msgstr "Προσθήκη χώρου εργασίας"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Εφαρμογές"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Εφαρμογή"
|
||||
|
||||
@@ -362,12 +437,6 @@ msgstr "Προσθήκη χώρου εργασίας"
|
||||
#~ "λειτουργικότητα από μόνο του.\n"
|
||||
#~ "Παρ' όλα αυτά είναι δυνατό να προσαρμόσετε το μήνυμα χαιρετισμού."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Μνήμη"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell Classic"
|
||||
|
||||
@@ -418,8 +487,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' (εμφανίζει μια μικρογραφία του "
|
||||
|
||||
207
po/en_GB.po
207
po/en_GB.po
@@ -5,22 +5,23 @@
|
||||
# Chris Leonard <cjlhomeaddress@gmail.com>, 2012.
|
||||
# Philip Withnall <philip@tecnocode.co.uk>, 2014.
|
||||
# Zander Brown <zbrown@gnome.org>, 2019-2020.
|
||||
# Andi Chandler <andi@gowling.com>, 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: 2023-08-05 15:59+0000\n"
|
||||
"PO-Revision-Date: 2023-09-06 12:13+0100\n"
|
||||
"Last-Translator: Bruce Cowan <bruce@bcowan.me.uk>\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"
|
||||
"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.1\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
@@ -33,28 +34,26 @@ msgid "This session logs you into GNOME Classic"
|
||||
msgstr "This session logs you into GNOME Classic"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME Classic on Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic on Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favourites"
|
||||
|
||||
#: extensions/apps-menu/extension.js:380
|
||||
msgid "Applications"
|
||||
msgstr "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Apps"
|
||||
|
||||
#: 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 "Application and workspace list"
|
||||
|
||||
#: 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 +61,34 @@ 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:152
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Workspace Rules"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:306
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Add Rule"
|
||||
|
||||
#. 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:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Ejecting drive “%s” failed:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:145
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Removable devices"
|
||||
|
||||
#: extensions/drive-menu/extension.js:167
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Open Files"
|
||||
|
||||
#: 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 "Use more screen for windows"
|
||||
|
||||
#: 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. "
|
||||
@@ -99,11 +98,11 @@ msgstr ""
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
"This setting applies only with the natural placement strategy."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Place window captions on top"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml: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 "
|
||||
@@ -113,47 +112,119 @@ 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:97
|
||||
msgid "Places"
|
||||
msgstr "Places"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Failed to launch “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Failed to mount volume for “%s”"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:127
|
||||
#: extensions/places-menu/placeDisplay.js:150
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Computer"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:340
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:385
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Browse Network"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Cycle Screenshot Sizes"
|
||||
|
||||
#: 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 "Cycle Screenshot Sizes Backward"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "CPU stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Memory stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Swap stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Upload stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Download stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "System stats"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Show"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memory"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Upload"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Download"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Open System Monitor"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Show CPU usage"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Show memory usage"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Show swap usage"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Show upload"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Show download"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Theme name"
|
||||
|
||||
#: 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 "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
|
||||
@@ -161,51 +232,51 @@ msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||
msgid "Close"
|
||||
msgstr "Close"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Unminimise"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimise"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Unmaximise"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximise"
|
||||
|
||||
#: extensions/window-list/extension.js:483
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimise all"
|
||||
|
||||
#: extensions/window-list/extension.js:489
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Unminimise all"
|
||||
|
||||
#: extensions/window-list/extension.js:495
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximise all"
|
||||
|
||||
#: extensions/window-list/extension.js:503
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Unmaximise all"
|
||||
|
||||
#: extensions/window-list/extension.js:511
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Close all"
|
||||
|
||||
#: extensions/window-list/extension.js:795
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Window List"
|
||||
|
||||
#: 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 "When to group windows"
|
||||
|
||||
#: 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”."
|
||||
@@ -213,20 +284,20 @@ msgstr ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Show windows from all workspaces"
|
||||
|
||||
#: 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 "Whether to show windows from all workspaces or only the current one."
|
||||
|
||||
#: 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 "Show the window list on all monitors"
|
||||
|
||||
#: 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."
|
||||
@@ -234,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"
|
||||
@@ -254,24 +329,38 @@ msgstr "Always group windows"
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Show on all monitors"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:261
|
||||
#: extensions/workspace-indicator/extension.js:266
|
||||
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:62
|
||||
#: 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:129
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Workspace Names"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:255
|
||||
#: 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"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Application"
|
||||
|
||||
@@ -361,12 +450,6 @@ msgstr "Add Workspace"
|
||||
#~ msgid "Window management and application launching"
|
||||
#~ msgstr "Window management and application launching"
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Memory"
|
||||
|
||||
#~ msgid "The application icon mode."
|
||||
#~ msgstr "The application icon mode."
|
||||
|
||||
|
||||
225
po/es.po
225
po/es.po
@@ -4,23 +4,24 @@
|
||||
# Jorge González <jorgegonz@svn.gnome.org>, 2011.
|
||||
# Nicolás Satragno <nsatragno@gmail.com>, 2011.
|
||||
#
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-2021.
|
||||
# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011-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: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2021-11-26 17:58+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 41.0\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 46.1\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -32,28 +33,26 @@ msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Esta sesión inicia GNOME clásico"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME clásico en Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME clásicoen Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplicaciones"
|
||||
|
||||
#: 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 "Lista de aplicaciones y áreas de trabajo"
|
||||
|
||||
#: 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"
|
||||
@@ -61,34 +60,34 @@ msgstr ""
|
||||
"Una lista de cadenas, conteniendo cada una un ID de aplicación (nombre de "
|
||||
"archivo de escritorio), seguido de dos puntos y el número del área de trabajo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Reglas de las áreas de trabajo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Añadir regla"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Falló al expulsar el dispositivo «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositivos extraíbles"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Abrir archivos"
|
||||
|
||||
#: 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 "Usar más pantalla para las ventanas"
|
||||
|
||||
#: 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. "
|
||||
@@ -98,11 +97,11 @@ msgstr ""
|
||||
"forma de la pantalla, y consolidarlas aún más para reducir el área ocupada. "
|
||||
"Esta opción sólo se aplica a la estrategia de posicionamiento «natural»."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Situar los títulos de ventanas arriba"
|
||||
|
||||
#: 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 "
|
||||
@@ -113,47 +112,119 @@ msgstr ""
|
||||
"los sitúa por debajo. Cambiar esta configuración requiere reiniciar la shell "
|
||||
"para que tenga efecto."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Lugares"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Falló al lanzar «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Falló al montar el volumen para «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Equipo"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Carpeta personal"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Examinar la red"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Tamaños de capturas de pantalla cíclicos"
|
||||
|
||||
#: 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 "Tamaños de capturas de pantalla cíclicos"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Estadísticas de la CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Estadísticas de la memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Estadísticas del área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Actualizar estadísticas"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Descargar estadísticas"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Estadísticas del sistema"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Subir"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Descargar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Abrir el monitor del sistema"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Mostrar el uso de CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Mostrar el uso de memoria"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Mostrar el uso del área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Mostrar subida"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Mostrar descarga"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Nombre del tema"
|
||||
|
||||
#: 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 "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
|
||||
|
||||
@@ -161,51 +232,51 @@ msgstr "El nombre del tema, que se carga desde ~/.themes/nombre/gnome-shell"
|
||||
msgid "Close"
|
||||
msgstr "Cerrar"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Desminimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Desminimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Cerrar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Lista de ventanas"
|
||||
|
||||
#: 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 "Cuándo agrupar las ventanas"
|
||||
|
||||
#: 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”."
|
||||
@@ -213,22 +284,22 @@ msgstr ""
|
||||
"Decide cuándo agrupar ventanas para la misma aplicación en la lista de "
|
||||
"ventanas. Los valores posibles son «never», «auto» y «always»."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostrar ventanas de todas las áreas de trabajo"
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||
#: 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 ""
|
||||
"Indica si se deben mostrar ventanas de todas las áreas de trabajo o sólo de "
|
||||
"la actual."
|
||||
|
||||
#: 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 "Mostrar la lista de ventanas en todas las pantallas"
|
||||
|
||||
#: 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."
|
||||
@@ -236,44 +307,62 @@ msgstr ""
|
||||
"Indica si se debe mostrar la lista de ventanas en todas las pantallas "
|
||||
"conectadas o sólo en la primaria."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/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"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Nunca agrupar las ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Agrupar las ventanas cuando el espacio esté limitado"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Siempre agrupar las ventanas"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostrar en todas las pantallas"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
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:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nombres de los áreas de trabajo"
|
||||
#: 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:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Área de trabajo %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nombres de los áreas de trabajo"
|
||||
|
||||
#: 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"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Aplicación"
|
||||
|
||||
@@ -361,12 +450,6 @@ msgstr "Añadir área de trabajo"
|
||||
#~ "solo.\n"
|
||||
#~ "Sin embargo, es posible personalizar el mensaje de bienvenida."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Memoria"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell clásico"
|
||||
|
||||
|
||||
225
po/eu.po
225
po/eu.po
@@ -5,13 +5,13 @@
|
||||
# assar <asiersar@yahoo.com>, 2011.
|
||||
# Iñaki Larrañaga Murgoitio <dooteo@zundan.com>, 2011, 2013, 2015, 2017.
|
||||
# Edurne Labaka <elabaka@uzei.com>, 2015.
|
||||
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021.
|
||||
# Asier Sarasua Garmendia <asiersarasua@ni.eus>, 2019, 2020, 2021, 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: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2021-12-25 00:42+0200\n"
|
||||
"POT-Creation-Date: 2024-04-29 15:27+0000\n"
|
||||
"PO-Revision-Date: 2024-08-25 00:42+0200\n"
|
||||
"Last-Translator: Asier Sarasua Garmendia <asiersarasua@ni.eus>\n"
|
||||
"Language-Team: Basque <librezale@librezale.eus>\n"
|
||||
"Language: eu\n"
|
||||
@@ -38,110 +38,182 @@ msgstr "GNOME klasikoa Wayland gainean"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME klasikoa Xorg gainean"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Gogokoak"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplikazioak"
|
||||
|
||||
#: 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 "Aplikazioen eta laneko areen zerrenda"
|
||||
|
||||
#: 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 "Kateen zerrenda bat, bakoitzak aplikazio-ID bat duena (mahaigainaren fitxategi-izena) eta jarraian bi puntu eta laneko arearen zenbakia dituena"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Laneko areen arauak"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Gehitu araua"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Huts egin du “%s“ unitatea egoztean:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Gailu aldagarriak"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Ireki fitxategiak"
|
||||
|
||||
#: 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 "Erabili pantaila gehiago leihoentzako"
|
||||
|
||||
#: 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 "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:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Jarri leihoaren epigrafea gainean"
|
||||
|
||||
#: 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 "TRUE (egia) bada, leihoen epigrafeak dagokien koadro txikien gainean jarriko ditu, Shell-aren lehenespena (behean jartzearena) gainidatziz. Ezarpen hau aldatzeko eta aplikatzeko Shell berrabiarazi behar da."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Lekuak"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Huts egin du '%s' abiaraztean"
|
||||
msgstr "Huts egin du '%s' abiarazteak"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Huts egin du “%s“(r)en bolumena muntatzean"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Ordenagailua"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Karpeta nagusia"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Arakatu sarea"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Pantaila-argazkien tamainak begiztan"
|
||||
|
||||
#: 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 "Pantaila-argazkien tamainak atzerantz begiztan"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "PUZ estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Memoriaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Trukatze-espazioaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Kargaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Deskargaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Sistemaren estatistikak"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Erakutsi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "PUZa"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Trukatze-espazioa"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Kargatu"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Deskargatu"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Ireki sistema-monitorea"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Erakutsi PUZ erabilera"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Erakutsi memoriaren erabilera"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Erakutsi trukatze-espazioaren erabilera"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Erakutsi karga"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Erakutsi deskarga"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Gaiaren izena"
|
||||
|
||||
#: 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 "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
|
||||
|
||||
@@ -149,113 +221,131 @@ msgstr "Gaiaren izena, ~/.themes/izena/gnome-shell direktoriotik kargatzeko"
|
||||
msgid "Close"
|
||||
msgstr "Itxi"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Leheneratu"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizatu"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Desmaximizatu"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizatu"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizatu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Leheneratu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizatu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Desmaximizatu denak"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Itxi denak"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Leiho-zerrenda"
|
||||
|
||||
#: 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 "Noiz elkartu leihoak"
|
||||
|
||||
#: 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 "Aplikazio bereko leihoak leihoen zerrendan noiz elkartuko diren erabakitzen du. Balio erabilgarriak: “never“ (inoiz ere ez), “auto“ (automatikoa) eta “always“ (beti)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Erakutsi laneko area guztietako leihoak"
|
||||
|
||||
#: 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 "Laneko area guztietako leihoak edo uneko areakoak soilik erakutsiko diren."
|
||||
|
||||
#: 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 "Erakutsi leihoen zerrenda pantaila guztietan"
|
||||
|
||||
#: 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."
|
||||
msgstr "Leihoen zerrenda konektatutako pantaila guztietan edo soilik pantaila nagusian erakutsiko den."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: 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:35
|
||||
msgid "Window Grouping"
|
||||
msgstr "Leiho-elkartzea"
|
||||
msgstr "Leihoak elkartzea"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Leihoak inoiz ez elkartu"
|
||||
msgstr "Ez elkartu leihoak inoiz"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Elkartu leihoak lekua mugatuta dagoenean"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Elkartu beti leihoak"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Erakutsi pantaila guztietan"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Lan arearen adierazlea"
|
||||
#: extensions/window-list/prefs.js:92
|
||||
msgid "Show workspace previews"
|
||||
msgstr "Erakutsi laneko areen aurrebistak"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Laneko areen izenak"
|
||||
#: extensions/workspace-indicator/prefs.js:30
|
||||
msgid "Show Previews In Top Bar"
|
||||
msgstr "Erakutsi aurrebistak goiko barran"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "%d. laneko area"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Laneko areen izenak"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:281
|
||||
msgid "Add Workspace"
|
||||
msgstr "Gehitu laneko area"
|
||||
|
||||
#: 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/workspaceIndicator.js:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Laneko arearen adierazlea"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Aplikazioak"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Aplikazioa"
|
||||
|
||||
@@ -339,12 +429,6 @@ msgstr "Gehitu laneko area"
|
||||
#~ "baxukoa da.\n"
|
||||
#~ "Hala ere, ongi etorriko mezua pertsonalizatzeko aukera dago."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "PUZ"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Memoria"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell Klasikoa"
|
||||
|
||||
@@ -354,9 +438,6 @@ msgstr "Gehitu laneko area"
|
||||
#~ msgid "Online Accounts"
|
||||
#~ msgstr "Nire kontua"
|
||||
|
||||
#~ msgid "System Settings"
|
||||
#~ msgstr "Sistemaren konfigurazioa"
|
||||
|
||||
#~ msgid "Lock Screen"
|
||||
#~ msgstr "Blokeatu pantaila"
|
||||
|
||||
|
||||
300
po/fa.po
300
po/fa.po
@@ -2,24 +2,25 @@
|
||||
# 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-2020.
|
||||
# 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: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2021-11-10 16:24+0330\n"
|
||||
"Last-Translator: MohammadSaleh Kamyab <mskf1383@protonmail.com>\n"
|
||||
"POT-Creation-Date: 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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
"X-Generator: Poedit 2.4.2\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Poedit 3.6\n"
|
||||
"X-DamnedLies-Scope: partial\n"
|
||||
"X-Poedit-SourceCharset: utf-8\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -28,7 +29,7 @@ msgstr "گنوم کلاسیک"
|
||||
#: 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 "این نشست شما را به گنوم کلاسیک وارد میکند"
|
||||
msgstr "این نشست به گنوم کلاسیک واردتان میکند"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
msgid "GNOME Classic on Wayland"
|
||||
@@ -38,19 +39,19 @@ msgstr "گنوم کلاسیک روی ویلند"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "گنوم کلاسیک روی زورگ"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "برگزیدهها"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
msgstr "برنامهها"
|
||||
#: 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 "فهرست برنامه و فضایکاری"
|
||||
|
||||
#: 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"
|
||||
@@ -58,34 +59,34 @@ msgstr ""
|
||||
"فهرستی از رشتهها، هرکدام حاوی شناسهی یک برنامه (نام پرونده رومیزی)، در ادامهی یک "
|
||||
"ویرگول و شمارهی فضای کاری"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "قواعد فضای کاری"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "افزودن قاعده"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "بیرون دادن دیسکگردان «%s» شکست خورد:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "دستگاههای جداشدنی"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: 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. This "
|
||||
@@ -95,11 +96,11 @@ msgstr ""
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. This "
|
||||
"setting applies only with the natural placement strategy."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml: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 "
|
||||
@@ -109,98 +110,177 @@ msgstr ""
|
||||
"شل در پایین را تغییر میدهد. تغییر این گزینه، نیاز به راهاندازی مجدد شل دارد تا "
|
||||
"تاثیر بگذارد."
|
||||
|
||||
#: 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:46
|
||||
#: extensions/places-menu/placeDisplay.js:52
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "شکست در اجرای «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:67
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "شکست در سوار کردن حجم برای «%s»"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "رایانه"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "خانه"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "مرور شبکه"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "اخیر"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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"
|
||||
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 "آمار پردازنده"
|
||||
|
||||
#: 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:364
|
||||
msgid "System stats"
|
||||
msgstr "آمار سامانه"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "نمایش"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "سیپییو"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "حافظه"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "مبادله"
|
||||
|
||||
#: 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 "نمایش استفادهٔ پردازنده"
|
||||
|
||||
#: 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./~"
|
||||
|
||||
#: 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 "زمان گروه کردن پنجرهها"
|
||||
|
||||
#: 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”."
|
||||
@@ -208,20 +288,20 @@ msgstr ""
|
||||
"تصمیم میگیرد چه زمانی پنجرههای یک برنامه در فهرست پنجرهها گروه شوند. مقدارهای "
|
||||
"ممکن عبارتند از «never»، «auto» و «always»."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/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
|
||||
#: 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."
|
||||
@@ -229,50 +309,109 @@ msgstr ""
|
||||
"اینکه آیا فهرست پنجرهها در تمام نمایشگرهای متصل نمایش داده شود یا فقط در نمایشگر "
|
||||
"اصلی."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: 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:63
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "هیچگاه پنجرهها گروه نشوند"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "پنجرهها زمانی که فضا محدود است گروه شوند"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "همیشه پنجرهها گروه شوند"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "نمایش در تمام نمایشگرها"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
#: 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:33
|
||||
msgid "Workspace Names"
|
||||
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 "فضاهای کاری"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "فضای کاری %Id"
|
||||
#~ msgid "Workspace %d"
|
||||
#~ msgstr "فضای کاری %Id"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
msgid "Add Workspace"
|
||||
msgstr "افزودن فضایکاری"
|
||||
#~ msgid "Add Workspace"
|
||||
#~ msgstr "افزودن فضایکاری"
|
||||
|
||||
#~ msgid "Remove"
|
||||
#~ msgstr "برداشتن"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "رایانه"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "پیشنمایش فضاهای کاری"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "برنامهها"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "برنامه"
|
||||
|
||||
#~ msgid "Workspace"
|
||||
#~ msgstr "فضایکاری"
|
||||
|
||||
#~ msgid "Create new matching rule"
|
||||
#~ msgstr "افزودن یک قاعدهی منطبق جدید"
|
||||
|
||||
@@ -356,12 +495,6 @@ msgstr "افزودن فضایکاری"
|
||||
#~ msgid "Window management and application launching"
|
||||
#~ msgstr "مدیریت پنجرهها و اجرا کننده برنامهها"
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "سیپییو"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "حافظه"
|
||||
|
||||
#~ msgid "The alt tab behaviour."
|
||||
#~ msgstr "رفتار alt tab."
|
||||
|
||||
@@ -460,9 +593,6 @@ msgstr "افزودن فضایکاری"
|
||||
#~ msgid "My Account"
|
||||
#~ msgstr "حساب من"
|
||||
|
||||
#~ msgid "System Settings"
|
||||
#~ msgstr "تنظیمات سیستم"
|
||||
|
||||
#~ msgid "Lock Screen"
|
||||
#~ msgstr "قفلکردن صفحهنمایش"
|
||||
|
||||
|
||||
251
po/fi.po
251
po/fi.po
@@ -12,16 +12,16 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2022-02-27 18:54+0200\n"
|
||||
"Last-Translator: JR-Fi <starman@starman.fi>\n"
|
||||
"POT-Creation-Date: 2025-02-13 00:15+0000\n"
|
||||
"PO-Revision-Date: 2025-03-02 12:02+0200\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.0.1\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-POT-Import-Date: 2012-03-05 15:06:12+0000\n"
|
||||
|
||||
@@ -42,19 +42,19 @@ msgstr "Perinteinen Gnome Waylandia käyttäen"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "Perinteinen Gnome Xorgia käyttäen"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:125
|
||||
msgid "Favorites"
|
||||
msgstr "Suosikit"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:399
|
||||
msgid "Apps"
|
||||
msgstr "Sovellukset"
|
||||
|
||||
#: 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 "Sovellus- ja työtilaluettelo"
|
||||
|
||||
#: 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 ""
|
||||
"Lista merkkijonoja, jossa jokainen on ohjelman tunnus (työpöydän "
|
||||
"tiedostonimi), jota seuraa kaksoispiste ja työtilan numero"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Työtilojen säännöt"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: 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:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Aseman “%s” irrottaminen epäonnistui:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Erilliset tallennusvälineet"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Avaa tiedostonhallinta"
|
||||
|
||||
#: 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 "Käytä enemmän tilaa ikkunoille"
|
||||
|
||||
#: 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. "
|
||||
@@ -99,11 +99,11 @@ msgstr ""
|
||||
"huomioiden näyttösuhteen ja lähentämällä niitä vähentämällä rajaavaa "
|
||||
"laatikkoa. Tämä asetus toimii vain luonnollisen asettelutavan kanssa."
|
||||
|
||||
#: 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 "Aseta ikkunoiden otsikkoteksti ylös"
|
||||
|
||||
#: 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 "
|
||||
@@ -113,100 +113,179 @@ msgstr ""
|
||||
"Tämä syrjäyttää oletusasetuksen, eli otsikkotekstin asettamisen pienoiskuvan "
|
||||
"alle. Tämän asetuksen muutos vaatii Gnomen uudelleenkäynnistyksen."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Sijainnit"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: 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:61
|
||||
#: 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:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "Tietokone"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Koti"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
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:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Vaihda kuvakaappausten kokojen välillä"
|
||||
|
||||
#: 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 "Vaihda kuvakaappausten kokojen välillä taaksepäin"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Suorittimen tilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Muistin tilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Swap-tilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Lähetystilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Lataustilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Järjestelmän tilastot"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Näytä"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "Suoritin"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Muisti"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Swap"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Lähetys"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Lataus"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Avaa järjestelmän valvonta"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Näytä suorittimen käyttö"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Näytä muistin käyttö"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Näytä swap-käyttö"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Näytä lähetys"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Näytä lataus"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Teeman nimi"
|
||||
|
||||
#: 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 "Teeman nimi, ladataan sijainnista ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:95
|
||||
msgid "Close"
|
||||
msgstr "Sulje"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Unminimize"
|
||||
msgstr "Palauta pienennys"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Minimize"
|
||||
msgstr "Pienennä"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Unmaximize"
|
||||
msgstr "Palauta suurennus"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Maximize"
|
||||
msgstr "Suurenna"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:721
|
||||
msgid "Minimize all"
|
||||
msgstr "Pienennä kaikki"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:727
|
||||
msgid "Unminimize all"
|
||||
msgstr "Palauta kaikkien koko"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:733
|
||||
msgid "Maximize all"
|
||||
msgstr "Suurenna kaikki"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:741
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Palauta kaikkien koko"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:749
|
||||
msgid "Close all"
|
||||
msgstr "Sulje kaikki"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:992 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Ikkunaluettelo"
|
||||
|
||||
#: 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 "Milloin ikkunat ryhmitetään"
|
||||
|
||||
#: 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”."
|
||||
@@ -214,22 +293,22 @@ msgstr ""
|
||||
"Päättää milloin saman sovelluksen ikkunat ryhmitellään ikkunaluettelossa. "
|
||||
"Mahdolliset arvot ovat “never”, “auto” ja “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:74
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Näytä ikkunat kaikista työtiloista"
|
||||
|
||||
#: 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 ""
|
||||
"Näytetäänkö ikkunat kaikista työtiloista vai ainoastaan nykyisestä "
|
||||
"työtilasta."
|
||||
|
||||
#: 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 "Näytä ikkunaluettelo kaikilla näytöillä"
|
||||
|
||||
#: 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."
|
||||
@@ -237,44 +316,75 @@ msgstr ""
|
||||
"Näytetäänkö ikkunaluettelo kaikilla liitetyillä näytöillä vai ainoastaan "
|
||||
"ensisijaisella näytöllä."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/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:63
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Älä ryhmitä ikkunoita koskaan"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Ryhmitä ikkunat tilan ollessa rajallinen"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Ryhmitä ikkunat aina"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Näytä kaikilla näytöillä"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
#: extensions/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:430
|
||||
msgid "Workspace Indicator"
|
||||
msgstr "Työtilan ilmaisin"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Työtilojen nimet"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:28
|
||||
msgid "Show Previews"
|
||||
msgstr "Näytä esikatselut"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:86
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Työtila %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:153
|
||||
msgid "Workspace Names"
|
||||
msgstr "Työtilojen nimet"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:170
|
||||
msgid "Add Workspace"
|
||||
msgstr "Lisää työtila"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:195
|
||||
msgid "Remove"
|
||||
msgstr "Poista"
|
||||
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:225
|
||||
msgid "Workspaces"
|
||||
msgstr "Työtilat"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "Tietokone"
|
||||
|
||||
#~ msgid "Browse Network"
|
||||
#~ msgstr "Selaa verkkoa"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "Näytä työtilojen esikatselut"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "Sovellukset"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Sovellus"
|
||||
|
||||
@@ -330,12 +440,6 @@ msgstr "Lisää työtila"
|
||||
#~ msgid "Message"
|
||||
#~ msgstr "Viesti"
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "Suoritin"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Muisti"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "Gnome Shell - perinteinen"
|
||||
|
||||
@@ -426,9 +530,6 @@ msgstr "Lisää työtila"
|
||||
#~ msgid "Bookmarks"
|
||||
#~ msgstr "Kirjanmerkit"
|
||||
|
||||
#~ msgid "Network"
|
||||
#~ msgstr "Verkko"
|
||||
|
||||
#~ msgid "File System"
|
||||
#~ msgstr "Tiedostojärjestelmä"
|
||||
|
||||
|
||||
214
po/fr.po
214
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: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2022-03-01 21:04+0100\n"
|
||||
"Last-Translator: Charles Monzat <charles.monzat@free.fr>\n"
|
||||
"POT-Creation-Date: 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: Gtranslator 40.0\n"
|
||||
"X-Generator: Poedit 3.4.4\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -31,28 +31,26 @@ msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Cette session vous connecte à GNOME Classique"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME Classique sur Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classique sur Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Favoris"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Applications"
|
||||
|
||||
#: 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 "Liste d’applications et d’espaces de travail"
|
||||
|
||||
#: 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"
|
||||
@@ -61,34 +59,34 @@ msgstr ""
|
||||
"d’application (nom de fichier desktop), suivi par un deux-points et le "
|
||||
"numéro de l’espace de travail"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Règles des espaces de travail"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Ajouter une règle"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:218
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "L’éjection du disque « %s » a échoué :"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Périphériques amovibles"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Ouvrir Fichiers"
|
||||
|
||||
#: 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 "Utiliser plus d’écran pour les fenêtres"
|
||||
|
||||
#: 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. "
|
||||
@@ -99,11 +97,11 @@ msgstr ""
|
||||
"pour réduire la zone englobante. Ce paramètre ne s’applique qu’en utilisant "
|
||||
"la stratégie de placement « natural »."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Placer les titres des fenêtres au-dessus"
|
||||
|
||||
#: 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 "
|
||||
@@ -114,47 +112,119 @@ msgstr ""
|
||||
"dessous. Pour que ce paramètre soit pris en compte, il faut redémarrer le "
|
||||
"Shell."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Emplacements"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:60
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "Impossible de lancer « %s »"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:75
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "Impossible de monter le volume « %s »"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
#: extensions/places-menu/placeDisplay.js:135
|
||||
#: extensions/places-menu/placeDisplay.js:158
|
||||
msgid "Computer"
|
||||
msgstr "Ordinateur"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:333
|
||||
msgid "Home"
|
||||
msgstr "Dossier personnel"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
#: extensions/places-menu/placeDisplay.js:378
|
||||
msgid "Browse Network"
|
||||
msgstr "Parcourir le réseau"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:14
|
||||
msgid "Cycle Screenshot Sizes"
|
||||
msgstr "Passer à la taille de capture suivante"
|
||||
|
||||
#: 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 "Passer à la taille de capture précédente"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Statistiques du CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Statistiques de la mémoire"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Statistiques de l’espace d’échange"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Statistiques de téléversement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Statistiques de téléchargement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Statistiques du système"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Afficher"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Mémoire"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Espace d’échange"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Téléversement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Téléchargement"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Ouvrir Moniteur système"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Afficher l’utilisation du CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Afficher l’utilisation de la mémoire"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Afficher l’utilisation de l’espace d’échange"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Afficher le téléversement"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Afficher le téléchargement"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Nom du thème"
|
||||
|
||||
#: 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 "Le nom du thème, à charger à partir de ~/.themes/name/gnome-shell"
|
||||
|
||||
@@ -162,51 +232,51 @@ msgstr "Le nom du thème, à charger à partir de ~/.themes/name/gnome-shell"
|
||||
msgid "Close"
|
||||
msgstr "Fermer"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Unminimize"
|
||||
msgstr "Restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:99
|
||||
msgid "Minimize"
|
||||
msgstr "Réduire"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Unmaximize"
|
||||
msgstr "Restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:106
|
||||
msgid "Maximize"
|
||||
msgstr "Maximiser"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:471
|
||||
msgid "Minimize all"
|
||||
msgstr "Tout réduire"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:477
|
||||
msgid "Unminimize all"
|
||||
msgstr "Tout restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:483
|
||||
msgid "Maximize all"
|
||||
msgstr "Tout maximiser"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:491
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Tout restaurer"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:499
|
||||
msgid "Close all"
|
||||
msgstr "Tout fermer"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:778
|
||||
msgid "Window List"
|
||||
msgstr "Liste de fenêtres"
|
||||
|
||||
#: 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 "Quand regrouper les fenêtres"
|
||||
|
||||
#: 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”."
|
||||
@@ -215,22 +285,22 @@ msgstr ""
|
||||
"fenêtres. Les valeurs possibles sont « never » (jamais), « auto » et "
|
||||
"« always » (toujours)."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:79
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Afficher les fenêtres de tous les espaces de travail"
|
||||
|
||||
#: 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 ""
|
||||
"Indique s’il faut afficher les fenêtres de tous les espaces de travail ou "
|
||||
"seulement de l’espace actuel."
|
||||
|
||||
#: 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 "Afficher la liste des fenêtres sur tous les écrans"
|
||||
|
||||
#: 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."
|
||||
@@ -238,43 +308,61 @@ 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/prefs.js:39
|
||||
#: 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"
|
||||
|
||||
#: extensions/window-list/prefs.js:63
|
||||
#: extensions/window-list/prefs.js:40
|
||||
msgid "Never group windows"
|
||||
msgstr "Ne jamais regrouper les fenêtres"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:41
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "Regrouper les fenêtres quand l’espace est limité"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:42
|
||||
msgid "Always group windows"
|
||||
msgstr "Toujours regrouper les fenêtres"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:66
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Afficher sur tous les écrans"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
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:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Noms des espaces de travail"
|
||||
#: 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:66
|
||||
#: extensions/workspace-indicator/prefs.js:88
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espace de travail %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/prefs.js:155
|
||||
msgid "Workspace Names"
|
||||
msgstr "Noms des espaces de travail"
|
||||
|
||||
#: 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"
|
||||
|
||||
#~ msgid "Create new matching rule"
|
||||
#~ msgstr "Créer une nouvelle règle de concordance"
|
||||
|
||||
281
po/fur.po
281
po/fur.po
@@ -6,17 +6,17 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2021-11-07 17:51+0100\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-Generator: Poedit 3.0\n"
|
||||
"X-Editor: HaiPO 2.1 beta\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -35,69 +35,69 @@ msgstr "GNOME Classic su Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME Classic su Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "Preferîts"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:400
|
||||
msgid "Apps"
|
||||
msgstr "Aplicazions"
|
||||
|
||||
#: 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 "Liste aplicazions e spazi di lavôr"
|
||||
|
||||
#: 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 ""
|
||||
"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:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regulis dai spazis di lavôr"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "Zonte regule"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: 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”»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositîfs estraibii"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Vierç i files"
|
||||
|
||||
#: 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 "Dopre plui schermi pai barcons"
|
||||
|
||||
#: 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 ""
|
||||
"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:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Met il titul dal barcon parsore"
|
||||
|
||||
#: 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 "
|
||||
@@ -107,99 +107,178 @@ msgstr ""
|
||||
"sorpassant il compuartament predefinît de shell, che lis place in bas. "
|
||||
"Cambiant cheste impostazion si scugne tornâ a inviâ la shell."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "Puescj"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: 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:61
|
||||
#: 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:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "Computer"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:316
|
||||
msgid "Home"
|
||||
msgstr "Home"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Esplore rêt"
|
||||
#: extensions/places-menu/placeDisplay.js:322
|
||||
msgid "Recent"
|
||||
msgstr "Resint"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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"
|
||||
msgstr "Dimensions videadis catuardis ciclichis"
|
||||
|
||||
#: 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 "Dimensions videadis caturadis ciclichis indaûr"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Statistichis CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Statistichis memorie"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Statistichis memorie di scambi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Statistichis cjariament in rêt"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Statistichis discjariaments"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Statistichis di sisteme"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostre"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memorie"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Memorie di scambi"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Cjariaments in rêt"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Discjariaments"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Vierç monitor di sisteme"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Mostre utilizazion CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Mostre utilizazion de memorie"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Mostre ûs memorie di scambi"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Mostre cjariaments in rêt"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Mostre discjariaments"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Non dal teme"
|
||||
|
||||
#: 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 "Il non dal teme, che si cjame da ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:92
|
||||
msgid "Close"
|
||||
msgstr "Siere"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Unminimize"
|
||||
msgstr "Gjave minimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:119
|
||||
msgid "Minimize"
|
||||
msgstr "Minimize"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Unmaximize"
|
||||
msgstr "Gjave massimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:126
|
||||
msgid "Maximize"
|
||||
msgstr "Massimize"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:641
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimize ducj"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:647
|
||||
msgid "Unminimize all"
|
||||
msgstr "Gjave a ducj la minimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:653
|
||||
msgid "Maximize all"
|
||||
msgstr "Massimize ducj"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:661
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Gjave a ducj la massimizazion"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:669
|
||||
msgid "Close all"
|
||||
msgstr "Siere ducj"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:911 extensions/window-list/prefs.js:24
|
||||
msgid "Window List"
|
||||
msgstr "Liste barcons"
|
||||
|
||||
#: 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 "Cuant meti in grup i barcons"
|
||||
|
||||
#: 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”."
|
||||
@@ -207,21 +286,21 @@ msgstr ""
|
||||
"Al decît cuant meti dongje i barcons de stesse aplicazion su la liste dai "
|
||||
"barcons. I valôrs pussibii a son “never”, “auto” e “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
|
||||
#: extensions/window-list/prefs.js:75
|
||||
msgid "Show windows from all workspaces"
|
||||
msgstr "Mostre i barcons di ducj i spazis di lavôr"
|
||||
|
||||
#: 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 ""
|
||||
"Indiche se mostrâ i barcons di ducj i spazis di lavôr o nome di chel atuâl."
|
||||
|
||||
#: 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 "Mostre la liste dai barcons su ducj i visôrs"
|
||||
|
||||
#: 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."
|
||||
@@ -229,44 +308,72 @@ msgstr ""
|
||||
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
|
||||
"chel principâl."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/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:63
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Never group windows"
|
||||
msgstr "No sta meti mai in grup i barcons"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: 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:65
|
||||
#: extensions/window-list/prefs.js:49
|
||||
msgid "Always group windows"
|
||||
msgstr "Met simpri in grup i barcons"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:69
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostre su ducj i visôrs"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
#: extensions/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:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nons dai spazis di lavôr"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:29
|
||||
msgid "Show Previews"
|
||||
msgstr "Mostre anteprimis"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:87
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Spazi di lavôr %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:154
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nons dai spazis di lavôr"
|
||||
|
||||
#: 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"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Aplicazion"
|
||||
|
||||
@@ -292,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"
|
||||
@@ -333,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."
|
||||
|
||||
@@ -342,20 +449,12 @@ 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 "CPU"
|
||||
#~ msgstr "CPU"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "Memorie"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "GNOME Shell Classic"
|
||||
|
||||
|
||||
255
po/gl.po
255
po/gl.po
@@ -10,22 +10,22 @@ msgstr ""
|
||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||
"issues\n"
|
||||
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2021-11-19 22:50+0100\n"
|
||||
"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"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"X-Generator: Gtranslator 40.0\n"
|
||||
"X-Project-Style: gnome\n"
|
||||
"X-DL-Team: gl\n"
|
||||
"X-DL-Module: gnome-shell-extensions\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\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"
|
||||
@@ -37,28 +37,26 @@ msgid "This session logs you into GNOME Classic"
|
||||
msgstr "Esta sesión iniciarao en GNOME clásico"
|
||||
|
||||
#: data/gnome-classic-wayland.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Wayland"
|
||||
msgstr "GNOME clásico en Wayland"
|
||||
|
||||
#: data/gnome-classic-xorg.desktop.in:3
|
||||
#| msgid "GNOME Classic"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME clásico en Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:118
|
||||
msgid "Favorites"
|
||||
msgstr "Favoritos"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
msgid "Applications"
|
||||
#: extensions/apps-menu/extension.js:392
|
||||
msgid "Apps"
|
||||
msgstr "Aplicacións"
|
||||
|
||||
#: 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 "Lista de aplicacións e espazos de traballo"
|
||||
|
||||
#: 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"
|
||||
@@ -66,48 +64,48 @@ msgstr ""
|
||||
"Unha lista de cadeas, cada unha das cales contén un id de aplicación (nome "
|
||||
"de ficheiro desktop), seguido por unha coma e o número do espazo de traballo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:156
|
||||
msgid "Workspace Rules"
|
||||
msgstr "Regras da área de traballo"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:311
|
||||
msgid "Add Rule"
|
||||
msgstr "Engadir regra"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: extensions/drive-menu/extension.js:123
|
||||
#: extensions/places-menu/placeDisplay.js:186
|
||||
#, javascript-format
|
||||
msgid "Ejecting drive “%s” failed:"
|
||||
msgstr "Fallo ao extraer a unidade «%s»:"
|
||||
|
||||
#: extensions/drive-menu/extension.js:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "Dispositivos extraíbeis"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "Abrir ficheiros"
|
||||
|
||||
#: 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 "Usar mais pantalla para as xanelas"
|
||||
|
||||
#: 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 ""
|
||||
"Tente usar mais pantalla para dispor as miniaturas das xanelas adaptándose á "
|
||||
"Tente usar mais pantalla para dispor as miniaturas das xanelas adaptándose á "
|
||||
"taxa de aspecto da pantalla e consolidalas para reducir a caixa envolvente. "
|
||||
"Esta configuración aplícase só para a estratexia de disposición natural."
|
||||
"Esta configuración aplícase só para a estratexia de disposición natural."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:17
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Por a xanela sempre na parte superior"
|
||||
|
||||
#: 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 "
|
||||
@@ -117,122 +115,201 @@ msgstr ""
|
||||
"respectiva, omitindo a disposición inferior por omisión do shell. Se cambia "
|
||||
"esta configuración deberá reiniciar o shell para que se apliquen os cambios."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:75
|
||||
#: extensions/places-menu/extension.js:78
|
||||
msgid "Places"
|
||||
msgstr "Lugares"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: 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:61
|
||||
#: 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:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "Computador"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:315
|
||||
msgid "Home"
|
||||
msgstr "Cartafol persoal"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
msgid "Browse Network"
|
||||
msgstr "Explorar a rede"
|
||||
#: extensions/places-menu/placeDisplay.js:321
|
||||
msgid "Recent"
|
||||
msgstr "Recente"
|
||||
|
||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||
#: 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"
|
||||
msgstr "Tamaño de capturas de pantalla cíclicos"
|
||||
|
||||
#: 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 "Tamaño de capturas de pantalla cíclicos cara atrás"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||
#: extensions/system-monitor/extension.js:135
|
||||
msgid "CPU stats"
|
||||
msgstr "Estatísticas de CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:159
|
||||
msgid "Memory stats"
|
||||
msgstr "Estatísticas de memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:177
|
||||
msgid "Swap stats"
|
||||
msgstr "Estatísticas da área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:336
|
||||
msgid "Upload stats"
|
||||
msgstr "Estatísticas de subida"
|
||||
|
||||
#: extensions/system-monitor/extension.js:350
|
||||
msgid "Download stats"
|
||||
msgstr "Estatísticas de descarga"
|
||||
|
||||
#: extensions/system-monitor/extension.js:364
|
||||
msgid "System stats"
|
||||
msgstr "Estatísticas do sistema"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "Mostrar"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "CPU"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "Memoria"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "Área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/extension.js:420
|
||||
msgid "Upload"
|
||||
msgstr "Subida"
|
||||
|
||||
#: extensions/system-monitor/extension.js:422
|
||||
msgid "Download"
|
||||
msgstr "Descarga"
|
||||
|
||||
#: extensions/system-monitor/extension.js:427
|
||||
msgid "Open System Monitor"
|
||||
msgstr "Abrir Monitor do sistema"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
|
||||
msgid "Show CPU usage"
|
||||
msgstr "Mostrar o uso de CPU"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
|
||||
msgid "Show memory usage"
|
||||
msgstr "Mostrar o uso de memoria"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
|
||||
msgid "Show swap usage"
|
||||
msgstr "Mostrar o uso da área de intercambio"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
|
||||
msgid "Show upload"
|
||||
msgstr "Mostrar a subida"
|
||||
|
||||
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
|
||||
msgid "Show download"
|
||||
msgstr "Mostrar a descarga"
|
||||
|
||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
|
||||
msgid "Theme name"
|
||||
msgstr "Nome do tema"
|
||||
|
||||
#: 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 "O nome do tema, a cargar desde ~/.themes/name/gnome-shell"
|
||||
|
||||
#: extensions/window-list/extension.js:72
|
||||
#: extensions/window-list/extension.js:95
|
||||
msgid "Close"
|
||||
msgstr "Pechar"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Unminimize"
|
||||
msgstr "Restabelecer"
|
||||
|
||||
#: extensions/window-list/extension.js:92
|
||||
#: extensions/window-list/extension.js:122
|
||||
msgid "Minimize"
|
||||
msgstr "Minimizar"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Unmaximize"
|
||||
msgstr "Restaurar"
|
||||
|
||||
#: extensions/window-list/extension.js:99
|
||||
#: extensions/window-list/extension.js:129
|
||||
msgid "Maximize"
|
||||
msgstr "Maximizar"
|
||||
|
||||
#: extensions/window-list/extension.js:434
|
||||
#: extensions/window-list/extension.js:721
|
||||
msgid "Minimize all"
|
||||
msgstr "Minimizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:727
|
||||
msgid "Unminimize all"
|
||||
msgstr "Restaurar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:733
|
||||
msgid "Maximize all"
|
||||
msgstr "Maximizar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:741
|
||||
msgid "Unmaximize all"
|
||||
msgstr "Restaurar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:749
|
||||
msgid "Close all"
|
||||
msgstr "Pechar todo"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: extensions/window-list/extension.js:992 extensions/window-list/prefs.js:23
|
||||
msgid "Window List"
|
||||
msgstr "Lista de xanelas"
|
||||
|
||||
#: 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 "Cando agrupar xanelas"
|
||||
|
||||
#: 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 ""
|
||||
"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:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: 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 "Mostrar as xanelas de todos os espazos de traballo"
|
||||
|
||||
#: 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 ""
|
||||
"Indica se mostrar as xanelas de todos os espazos de traballo ou só no actual."
|
||||
|
||||
#: 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 "Mostrar a lista de xanelas en todos os monitores"
|
||||
|
||||
#: 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."
|
||||
@@ -240,44 +317,72 @@ msgstr ""
|
||||
"Indica se mostrar a lista de xanelas en todos os monitores conectados ou só "
|
||||
"no primario."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/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:63
|
||||
#: extensions/window-list/prefs.js:46
|
||||
msgid "Never group windows"
|
||||
msgstr "Non agrupar nunca as xanelas"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: 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:65
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Always group windows"
|
||||
msgstr "Agrupar sempre as xanelas"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:68
|
||||
msgid "Show on all monitors"
|
||||
msgstr "Mostrar en todos os monitores"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
#: 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:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nomes dos espazos de traballo"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:28
|
||||
msgid "Show Previews"
|
||||
msgstr "Mostrar vistas previas"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:86
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "Espazos de traballo %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:153
|
||||
msgid "Workspace Names"
|
||||
msgstr "Nomes dos espazos de traballo"
|
||||
|
||||
#: 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"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "Aplicación"
|
||||
|
||||
|
||||
275
po/he.po
275
po/he.po
@@ -2,15 +2,15 @@
|
||||
# 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-2020.
|
||||
# Yosef Or Boczko <yoseforb@gmail.com>, 2013-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: 2021-11-06 14:08+0000\n"
|
||||
"PO-Revision-Date: 2021-11-12 00:53+0200\n"
|
||||
"POT-Creation-Date: 2024-10-16 14:41+0000\n"
|
||||
"PO-Revision-Date: 2024-11-25 10:45+0200\n"
|
||||
"Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
|
||||
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
|
||||
"Language: he\n"
|
||||
@@ -19,7 +19,7 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2;\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Generator: Poedit 3.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: data/gnome-classic.desktop.in:3
|
||||
msgid "GNOME Classic"
|
||||
@@ -38,19 +38,19 @@ msgstr "GNOME קלסי על גבי Wayland"
|
||||
msgid "GNOME Classic on Xorg"
|
||||
msgstr "GNOME קלסי על גבי Xorg"
|
||||
|
||||
#: extensions/apps-menu/extension.js:112
|
||||
#: extensions/apps-menu/extension.js:126
|
||||
msgid "Favorites"
|
||||
msgstr "מועדפים"
|
||||
|
||||
#: extensions/apps-menu/extension.js:366
|
||||
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 "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"
|
||||
@@ -58,49 +58,49 @@ msgstr ""
|
||||
"A list of strings, each containing an application id (desktop file name), "
|
||||
"followed by a colon and the workspace number"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:34
|
||||
#: extensions/auto-move-windows/prefs.js:159
|
||||
msgid "Workspace Rules"
|
||||
msgstr "כללי מרחב העבודה"
|
||||
|
||||
#: extensions/auto-move-windows/prefs.js:236
|
||||
#: extensions/auto-move-windows/prefs.js:314
|
||||
msgid "Add Rule"
|
||||
msgstr "הוספת כלל"
|
||||
|
||||
#. TRANSLATORS: %s is the filesystem name
|
||||
#: extensions/drive-menu/extension.js:133
|
||||
#: extensions/places-menu/placeDisplay.js:233
|
||||
#: 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:149
|
||||
#: extensions/drive-menu/extension.js:142
|
||||
msgid "Removable devices"
|
||||
msgstr "התקנים נתיקים"
|
||||
|
||||
#: extensions/drive-menu/extension.js:171
|
||||
#: extensions/drive-menu/extension.js:164
|
||||
msgid "Open Files"
|
||||
msgstr "פתיחת קבצים"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "Use more screen for windows"
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||
msgid ""
|
||||
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||
"This setting applies only with the natural placement strategy."
|
||||
msgstr ""
|
||||
"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."
|
||||
|
||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||
msgid "Place window captions on top"
|
||||
msgstr "Place window captions on top"
|
||||
msgid "Use more screen for windows"
|
||||
msgstr "להשתמש ביותר מסך לחלונות"
|
||||
|
||||
#: 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 ""
|
||||
"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."
|
||||
|
||||
#: 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: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."
|
||||
@@ -109,99 +109,178 @@ msgstr ""
|
||||
"shell default of placing it at the bottom. Changing this setting requires "
|
||||
"restarting the shell to have any effect."
|
||||
|
||||
#: extensions/places-menu/extension.js:88
|
||||
#: extensions/places-menu/extension.js:91
|
||||
#: extensions/places-menu/extension.js:94
|
||||
msgid "Places"
|
||||
msgstr "מיקומים"
|
||||
msgstr "מקומות"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:46
|
||||
#: extensions/places-menu/placeDisplay.js:53
|
||||
#, javascript-format
|
||||
msgid "Failed to launch “%s”"
|
||||
msgstr "שיגור „%s” נכשל"
|
||||
msgstr "הרצת „%s” נכשלה"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:61
|
||||
#: extensions/places-menu/placeDisplay.js:68
|
||||
#, javascript-format
|
||||
msgid "Failed to mount volume for “%s”"
|
||||
msgstr "ארע כשל בעיגון כרך „%s”"
|
||||
msgstr "עיגון הכרך „%s” נכשל"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:148
|
||||
#: extensions/places-menu/placeDisplay.js:171
|
||||
msgid "Computer"
|
||||
msgstr "מחשב"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:359
|
||||
#: extensions/places-menu/placeDisplay.js:316
|
||||
msgid "Home"
|
||||
msgstr "בית"
|
||||
|
||||
#: extensions/places-menu/placeDisplay.js:404
|
||||
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 "Cycle Screenshot Sizes"
|
||||
|
||||
#: 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 "Cycle Screenshot Sizes Backward"
|
||||
|
||||
#: 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:364
|
||||
msgid "System stats"
|
||||
msgstr "סטטיסטיקת מערכת"
|
||||
|
||||
#: extensions/system-monitor/extension.js:412
|
||||
msgid "Show"
|
||||
msgstr "הצגה"
|
||||
|
||||
#: extensions/system-monitor/extension.js:414
|
||||
msgid "CPU"
|
||||
msgstr "מעבד"
|
||||
|
||||
#: extensions/system-monitor/extension.js:416
|
||||
msgid "Memory"
|
||||
msgstr "זיכרון"
|
||||
|
||||
#: extensions/system-monitor/extension.js:418
|
||||
msgid "Swap"
|
||||
msgstr "תחלופה"
|
||||
|
||||
#: 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 "הצגת שימוש במעבד"
|
||||
|
||||
#: 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 "Theme name"
|
||||
|
||||
#: 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 "The name of the theme, to be loaded from ~/.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:434
|
||||
#: extensions/window-list/extension.js:641
|
||||
msgid "Minimize all"
|
||||
msgstr "מזעור הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:440
|
||||
#: extensions/window-list/extension.js:647
|
||||
msgid "Unminimize all"
|
||||
msgstr "ביטול מזעור הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:446
|
||||
#: extensions/window-list/extension.js:653
|
||||
msgid "Maximize all"
|
||||
msgstr "הגדלת הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:454
|
||||
#: extensions/window-list/extension.js:661
|
||||
msgid "Unmaximize all"
|
||||
msgstr "ביטול הגדלת הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:462
|
||||
#: extensions/window-list/extension.js:669
|
||||
msgid "Close all"
|
||||
msgstr "סגירת הכל"
|
||||
|
||||
#: extensions/window-list/extension.js:741
|
||||
#: 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”."
|
||||
@@ -209,20 +288,20 @@ msgstr ""
|
||||
"Decides when to group windows from the same application on the window list. "
|
||||
"Possible values are “never”, “auto” and “always”."
|
||||
|
||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||
#: extensions/window-list/prefs.js:86
|
||||
#: extensions/window-list/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 "Whether to show windows from all workspaces or only the current one."
|
||||
|
||||
#: 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 "Show the window list on all monitors"
|
||||
|
||||
#: 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."
|
||||
@@ -230,44 +309,72 @@ msgstr ""
|
||||
"Whether to show the window list on all connected monitors or only on the "
|
||||
"primary one."
|
||||
|
||||
#: extensions/window-list/prefs.js:39
|
||||
#: extensions/window-list/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:63
|
||||
#: extensions/window-list/prefs.js:47
|
||||
msgid "Never group windows"
|
||||
msgstr "לעולם לא לקבץ חלונות"
|
||||
|
||||
#: extensions/window-list/prefs.js:64
|
||||
#: extensions/window-list/prefs.js:48
|
||||
msgid "Group windows when space is limited"
|
||||
msgstr "קיבוץ חלונות כאשר המקום מוגבל"
|
||||
|
||||
#: extensions/window-list/prefs.js:65
|
||||
#: extensions/window-list/prefs.js:49
|
||||
msgid "Always group windows"
|
||||
msgstr "תמיד לקבץ חלונות"
|
||||
|
||||
#: extensions/window-list/prefs.js:81
|
||||
#: extensions/window-list/prefs.js:69
|
||||
msgid "Show on all monitors"
|
||||
msgstr "הצגה בכל הצגים"
|
||||
|
||||
#: extensions/window-list/workspaceIndicator.js:249
|
||||
#: extensions/workspace-indicator/extension.js:254
|
||||
#: 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:33
|
||||
msgid "Workspace Names"
|
||||
msgstr "שם מרחב העבודה"
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:29
|
||||
msgid "Show Previews"
|
||||
msgstr "הצגת תצוגות מקדימות"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:66
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:87
|
||||
#, javascript-format
|
||||
msgid "Workspace %d"
|
||||
msgstr "מרחב עבודה %d"
|
||||
|
||||
#: extensions/workspace-indicator/prefs.js:207
|
||||
#: extensions/workspace-indicator/workspacePrefs.js:154
|
||||
msgid "Workspace Names"
|
||||
msgstr "שם מרחב העבודה"
|
||||
|
||||
#: 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 "Workspaces"
|
||||
msgstr "מרחבי עבודה"
|
||||
|
||||
#~ msgid "Computer"
|
||||
#~ msgstr "מחשב"
|
||||
|
||||
#~ msgid "Show workspace previews"
|
||||
#~ msgstr "הצגת תצוגה מקדימה של מרחבי העבודה"
|
||||
|
||||
#~ msgid "Applications"
|
||||
#~ msgstr "יישומים"
|
||||
|
||||
#~ msgid "Application"
|
||||
#~ msgstr "יישום"
|
||||
|
||||
@@ -347,12 +454,6 @@ msgstr "הוספת מרחב עבודה"
|
||||
#~ "שיש להן תכונות קטנות משלהן.\n"
|
||||
#~ "עם זאת, ניתן להתאים את הודעת קבלת הפנים."
|
||||
|
||||
#~ msgid "CPU"
|
||||
#~ msgstr "מעבד"
|
||||
|
||||
#~ msgid "Memory"
|
||||
#~ msgstr "זיכרון"
|
||||
|
||||
#~ msgid "GNOME Shell Classic"
|
||||
#~ msgstr "מעטפת GNOME קלסית"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user