Compare commits

..

37 Commits

Author SHA1 Message Date
Florian Müllner
e5ff28e45d Bump version to 46.3
Update NEWS.
2025-01-12 22:06:57 +01:00
Bartłomiej Piotrowski
a1ce38fee8 ci: Switch to GNOME GitLab mirror of ci-templates
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/368>
(cherry picked from commit 0f69d7663b)
2025-01-10 14:09:42 +01:00
Florian Müllner
ce302b0dfd ci: Adapt to updated release module template
The release module moved into production now. The process changed
slightly with regard to the testing period, so we will have to
adapt the existing job a bit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 5d8d3601b4)
2025-01-10 14:08:08 +01:00
Florian Müllner
a168041b82 ci: Move LINT_LOG variable out of global section
It is only used by the eslint job, so better define it there.

While at it, make sure the variable is quoted as that's considered
good practice (even when safe to use unquoted as in this case).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit ea77b557e5)
2025-01-10 14:07:01 +01:00
Florian Müllner
c735818868 ci: Use variable for meson build directory
This ensures that the value is consistent between jobs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 9f48149346)
2025-01-10 14:06:52 +01:00
Florian Müllner
106ae2c28d Revert "ci: Use meson introspect to generate artifact path"
The new release service that now moved into production expects
the tag to match the release version.

Instead of using the $VERSION-real pattern in case of error,
switch to a pre-push hook to hopefully prevent those errors
in the first place:

  https://gitlab.gnome.org/-/snippets/6710

This reverts commit 8c014a6b1d.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/367>
(cherry picked from commit 0d1b279a64)
2025-01-10 14:06:44 +01:00
Florian Müllner
363f396365 workspace-indicator: Do not only exclude DESKTOP windows
There are other window types that should be excluded from workspace
previews, including more common ones like menus. Instead of checking
for a variety of window types, delegate the decision to mutter by
checking for the `skip-taskbar` property.

(The internal `skip-pager` property would be more apt in this case,
but as it only differs from `skip-taskbar` for X11 clients that
explicitly set one and not the other, it shouldn't matter in practice)

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/537
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/363>
(cherry picked from commit 77a11fd9cd)
2025-01-10 14:06:34 +01:00
Florian Müllner
62ccff1558 window-list: Untrack chrome while in overview
The window list is set up to track the monitor's fullscreen state.
Monitors are never considered in fullscreen while showing the overview,
so if shell's layout manager updates the fullscreen visibility after
we hid the bottom bar, it ends up being visible in the overview.

To avoid this, untrack the actor while the overview is visible.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/509
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/364>
(cherry picked from commit 981e8e42e2)
2025-01-10 14:06:25 +01:00
Florian Müllner
959dc522e7 window-list: Fix disconnecting window signals in context menu
Menus are not actors themselves, so they are not "destroyables" in
terms of automatic signal disconnection, with the result that we
currently leak window signals.

Fix this by using the menu's actor as tracked object, so the signals
are disconnected automatically when the actor is destroyed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/474
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/362>
(cherry picked from commit 4a841dfd49)
2025-01-10 14:06:14 +01:00
Florian Müllner
a75f8a7d52 places-menu: Update fake mount operation source
gnome-shell now checks for an associated drive to automatically
cancel the operation on disconnect, so fake the corresponding
method. While at it, drop the `get_icon()` method that hasn't
been used for quite a while now.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/508
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
(cherry picked from commit 8957f488dc)
2025-01-10 14:05:58 +01:00
Florian Müllner
f3144d472a places-menu: Catch errors during async operation
Uncaught errors in async functions don't provide a good stack, because
the unhandled promise rejection masks the error that triggered it.

While we already handle *expected* errors inside the function, make
sure we catch all errors to get useful stack information for unexpected
errors as well.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/361>
(cherry picked from commit e0b68a319e)
2025-01-10 14:05:46 +01:00
Florian Müllner
566e7806b0 places-menu: Inherit from PopupImageMenuItem
PopupImageMenuItems used to position the icon after the label,
so we ended up with our own icon+label items.

However the icon position was changed years ago in the shell, so
inherit from PopupImageMenuItem instead.

This does not only simplify the code a bit, but also pulls in
features we are currently missing, like a11y labelling.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/542
(cherry picked from commit 568826e489)
2025-01-10 14:05:25 +01:00
Florian Müllner
d3cf3c0961 build: Sync check-version script with gnome-shell
The script was updated to not require appstream-util to check for
a corresponding release element in metainfo.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/354>
(cherry picked from commit 1218aee87f)
2025-01-10 14:05:06 +01:00
Florian Müllner
084a2ed7c7 cleanup: Use consistent line break style in meson.build
Either have all arguments on the same line, or have a separate
line for every argument (that is, don't special-case the first
arg).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 265935e14b)
2025-01-10 14:04:51 +01:00
Florian Müllner
b8f7287205 cleanup: Fix indent errors in meson.build
We are supposed to use a 2-space indent, but some inconsistencies
sneaked in over time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit b903618050)
2025-01-10 13:59:59 +01:00
Florian Müllner
965cad8b95 cleanup: Always use dangling commas in meson.build
This is meson's default formatting, and matches what we already
do in JS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 720933b08e)
2025-01-10 13:59:49 +01:00
Florian Müllner
b7f737492d cleanup: Use format strings in meson.build
Those are a bit more concise than ''.format(), and have been
in meson for a long time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 85ee8829bf)
2025-01-10 13:58:21 +01:00
Florian Müllner
6b34c996d3 build: Use SPDX identifier for license
Meson strongly recommends to use SPDX identifiers for the license
string, and there's no reason for us to not do so.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 6df4905286)
2025-01-10 13:58:17 +01:00
Florian Müllner
7f23ccbff7 places-menu: Remove left-over modeline
This one slipped through commit 253ddb864 ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/370>
(cherry picked from commit 83c41bad30)
2025-01-10 13:57:20 +01:00
Florian Müllner
c06c33b488 extensions: Remove modelines
We already include an .editorconfig that is supported by many
editors, including emacs, so no need to repeat an emacs-specific
modeline in every source file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 253ddb8642)
2025-01-10 13:39:42 +01:00
Florian Müllner
043a268b57 Add .editorconfig
This should ensure that all editors which support
https://editorconfig.org/ use the correct indentation
with spaces (not tabs) by default.

This is hardly a full specification of our coding style,
but it's a correct subset and better than nothing.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/353>
(cherry picked from commit 0ca156a2b6)
2025-01-10 13:37:43 +01:00
Florian Müllner
f44f90b966 export-zips: Use --destdir instead of custom prefix
meson skips some steps like schema compilation when DESTDIR is
set, so this is slightly more efficient.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/345>
(cherry picked from commit 8f75ccae34)
2025-01-10 13:35:36 +01:00
twlvnn kraftwerk
a99515feef Update Bulgarian translation 2024-09-02 08:47:19 +00:00
Giannis Antypas
7953cd130d Update Greek translation 2024-08-12 20:30:42 +00:00
Daniel Șerbănescu
75b1ea879b Update Romanian translation 2024-08-05 20:05:43 +00:00
Chao-Hsiung Liao
b89a93a4fc Update Chinese (Taiwan) translation 2024-07-24 10:26:12 +00:00
Jose Riha
a00a7d7a9a Update Slovak translation 2024-07-05 20:01:58 +00:00
Милош Поповић
3bbbb5dac7 Update Serbian translation 2024-06-20 14:59:31 +00:00
Florian Müllner
ae9411a23d Bump version to 46.2
Update NEWS.
2024-05-25 23:40:02 +02:00
Florian Müllner
0334834a0f ci: Hook up release-module
In the future, the module will automate uploading the release
tarball. We already use the CI pipeline to generate the tarball,
so it's easy to hook up the module and provide some testing
before the module goes into production.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/324>
2024-05-25 23:39:20 +02:00
Florian Müllner
b0ba8ca5c0 ci: Use meson introspect to generate artifact path
We currently assume that the `CI_COMMIT_TAG` variable matches the
version component of the generated dist tarball.

That is usually correct, but sometimes errors happen and a wrong
tag is pushed, and the real release uses something like "46.0-real".

Account for that by building the artifact path from `meson introspect`
and exporting it as environment variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/324>
2024-05-25 23:39:20 +02:00
Scrambled 777
ae00cf6b4e Update Hindi translation 2024-05-25 17:01:54 +00:00
Jordi Mas i Hernandez
ee730d9e29 Update Catalan translation 2024-05-23 20:59:49 +00:00
Florian Müllner
c290d7ddb3 window-list: Use getter methods for events
The underlying structs were made opaque a while ago, so direct
access to the struct fields is no longer possible.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/320>
(cherry picked from commit da90d365ec)
2024-05-23 13:18:04 +02:00
Florian Müllner
de033a04fa apps-menu: Set label_actor of Category items
Category items are based on BaseMenuItem rather than MenuItem,
so the accessible relationship isn't set up automatically for us.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/319>
(cherry picked from commit 02ff72b2f0)
2024-05-23 13:17:57 +02:00
Jose Riha
1219dfc144 Update Slovak translation 2024-05-11 22:19:15 +00:00
Hugo Carvalho
dd16556530 Update Portuguese translation 2024-05-04 23:22:24 +00:00
48 changed files with 3487 additions and 3436 deletions

17
.editorconfig Normal file
View 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

View File

@@ -3,10 +3,13 @@
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
include: include:
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml' - remote: 'https://gitlab.gnome.org/Infrastructure/freedesktop-ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml" - remote: "https://gitlab.gnome.org/Infrastructure/freedesktop-ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
- project: 'Infrastructure/openshift-images/gnome-release-service' - component: gitlab.gnome.org/GNOME/citemplates/release-service@master
file: '/ci-templates/release-module.yml' inputs:
job-stage: deploy
dist-job-name: fedora-dist-tarball
tarball-artifact-path: "$TARBALL_ARTIFACT_PATH"
stages: stages:
- pre_review - pre_review
@@ -16,7 +19,7 @@ stages:
- deploy - deploy
default: default:
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/40:2024-07-11.0 image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/40:2024-02-23.0
# Cancel jobs if newer commits are pushed to the branch # Cancel jobs if newer commits are pushed to the branch
interruptible: true interruptible: true
# Auto-retry jobs in case of infra failures # Auto-retry jobs in case of infra failures
@@ -30,7 +33,8 @@ default:
variables: variables:
FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions FDO_UPSTREAM_REPO: GNOME/gnome-shell-extensions
LINT_LOG: "eslint-report.xml" MESON_BUILD_DIR: build
TARBALL_ARTIFACT_PATH: "${MESON_BUILD_DIR}/meson-dist/${CI_PROJECT_NAME}-${CI_COMMIT_TAG}.tar.xz"
workflow: workflow:
rules: rules:
@@ -108,14 +112,16 @@ js_check:
eslint: eslint:
stage: review stage: review
<<: *prereview_req <<: *prereview_req
variables:
LINT_LOG: "eslint-report.xml"
script: script:
- export NODE_PATH=$(npm root -g) - export NODE_PATH=$(npm root -g)
- ./.gitlab-ci/run-eslint --output-file ${LINT_LOG} --format junit --stdout - ./.gitlab-ci/run-eslint --output-file "$LINT_LOG" --format junit --stdout
artifacts: artifacts:
paths: paths:
- ${LINT_LOG} - "$LINT_LOG"
reports: reports:
junit: ${LINT_LOG} junit: "$LINT_LOG"
potfile_js_check: potfile_js_check:
stage: review stage: review
@@ -141,28 +147,13 @@ fedora-build:
stage: build stage: build
<<: *prereview_req <<: *prereview_req
script: script:
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true - meson setup "$MESON_BUILD_DIR" --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C build - meson compile -C "$MESON_BUILD_DIR"
- meson test -C build - meson test -C "$MESON_BUILD_DIR"
- meson install -C build - meson install -C "$MESON_BUILD_DIR"
artifacts: artifacts:
paths: paths:
- build - "$MESON_BUILD_DIR"
fedora-distinfo:
stage: deploy
needs:
- fedora-build
script:
- .gitlab-ci/export-artifact-path build > dist.env
artifacts:
reports:
dotenv: dist.env
paths:
- build
- dist.env
rules:
- if: '$CI_COMMIT_TAG'
fedora-dist: fedora-dist:
stage: deploy stage: deploy
@@ -171,7 +162,7 @@ fedora-dist:
variables: variables:
GIT_SUBMODULE_STRATEGY: normal GIT_SUBMODULE_STRATEGY: normal
script: script:
- meson dist -C build - meson dist -C "$MESON_BUILD_DIR"
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"' - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
changes: changes:
@@ -180,21 +171,11 @@ fedora-dist:
fedora-dist-tarball: fedora-dist-tarball:
extends: fedora-dist extends: fedora-dist
needs:
- fedora-distinfo
artifacts: artifacts:
expose_as: 'Get tarball here' expose_as: 'Get tarball here'
name: "${CI_JOB_NAME}-${CI_COMMIT_REF_NAME}"
when: always
paths: paths:
- $TARBALL_ARTIFACT_PATH - "$TARBALL_ARTIFACT_PATH"
reports:
dotenv: dist.env
rules:
- if: '$CI_COMMIT_TAG'
release-module:
stage: deploy
needs:
- fedora-dist-tarball
extends: .release-module
rules: rules:
- if: '$CI_COMMIT_TAG' - if: '$CI_COMMIT_TAG'

View File

@@ -1,21 +0,0 @@
#!/usr/bin/gjs -m
// SPDX-FileCopyrightText: 2024 Florian Müllner <fmuellner@gnome.org>
//
// SPDX-License-Identifier: GPL-2.0-or-later
import Gio from 'gi://Gio';
import {programArgs, programInvocationName, exit} from 'system';
const [buildDir] = programArgs;
if (!buildDir) {
printerr(`usage: ${programInvocationName} <build-dir>`);
exit(1);
}
const subprocess = Gio.Subprocess.new(
['meson', 'introspect', '--projectinfo', buildDir],
Gio.SubprocessFlags.STDOUT_PIPE);
const [, out] = subprocess.communicate_utf8(null, null);
const {descriptive_name, version} = JSON.parse(out);
print(`TARBALL_ARTIFACT_PATH=${buildDir}/meson-dist/${descriptive_name}-${version}.tar.xz`);

View File

@@ -20,9 +20,6 @@ need in gnome-shell.
Generally, we follow [GJS coding style][coding-style], which in short is: 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. 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 should be at the top, in two groups, one for standard
imports (like imports.lang or imports.dbus) and introspection, imports (like imports.lang or imports.dbus) and introspection,
the other for Shell API. Within the same group, put everything the other for Shell API. Within the same group, put everything

32
NEWS
View File

@@ -1,31 +1,31 @@
47.beta 46.3
======= ====
* window-list: Modernize styling [Jakub; !330] * places-menu: Fix a11y labelling [Florian; #542]
* Include "status-icons" extension [Florian; !194] * places-menu: Fix opening drives with mount operations [Florian; !361]
* Misc. bug fixes and cleanups [Florian; !328, !331, !327] * window-list: Fix hiding when entering overview with gestures [Florian; !364]
* workspace-indicator: Only show previews of regular windows [Florian; !363]
* Misc. bug fixes and cleanups [Florian, Bartłomiej; !345, !353, !370, !354,
!362, !367, !368]
Contributors: Contributors:
Florian Müllner, Jakub Steiner Florian Müllner, Bartłomiej Piotrowski
Translators: Translators:
Sabri Ünal [tr], Chao-Hsiung Liao [zh_TW] Милош Поповић [sr], Jose Riha [sk], Chao-Hsiung Liao [zh_TW],
Daniel Șerbănescu [ro], Giannis Antypas [el], twlvnn kraftwerk [bg]
47.alpha 46.2
======== ====
* Improve workspace previews in window-list and workspace-indicator
[Florian; !307, !316]
* apps-menu: Fix a11y of category labels [Florian; !319] * apps-menu: Fix a11y of category labels [Florian; !319]
* window-list: Fix long-press support [Florian; !320] * window-list: Fix long-press support [Florian; !320]
* window-list: Animate transitions [Florian; !325] * Misc. bug fixes and cleanups [Florian; !324]
* Misc. bug fixes and cleanups [Florian; !315, !321, !324]
Contributors: Contributors:
Florian Müllner Florian Müllner
Translators: Translators:
Jordi Mas i Hernandez [ca], Martin [sl], Hugo Carvalho [pt], Jose Riha [sk], Hugo Carvalho [pt], Jose Riha [sk], Jordi Mas i Hernandez [ca],
Scrambled 777 [hi], Artur S0 [ru], Милош Поповић [sr], Yosef Or Boczko [he], Scrambled 777 [hi]
Balázs Úr [hu]
46.1 46.1
==== ====

View File

@@ -10,33 +10,33 @@ session_desktops = [
session_desktop_base + '-wayland', session_desktop_base + '-wayland',
] ]
foreach name: session_desktops foreach name : session_desktops
session_desktop = name + '.desktop' session_desktop = name + '.desktop'
if name.endswith('-xorg') if name.endswith('-xorg')
session_instdir = xsessiondir session_instdir = xsessiondir
elif name.endswith('-wayland') elif name.endswith('-wayland')
session_instdir = wlsessiondir session_instdir = wlsessiondir
else else
# FIXME: The same target can not be copied into two directories. # FIXME: The same target can not be copied into two directories.
# There is a workaround in meson/session-post-install.py until proper # There is a workaround in meson/session-post-install.py until proper
# solution arises: # solution arises:
# https://github.com/mesonbuild/meson/issues/2416 # https://github.com/mesonbuild/meson/issues/2416
session_instdir = xsessiondir session_instdir = xsessiondir
#session_instdir = [ xesssiondir, wlsessiondir ] #session_instdir = [ xesssiondir, wlsessiondir ]
endif endif
i18n.merge_file( i18n.merge_file(
input: session_desktop + '.in', input: session_desktop + '.in',
output: session_desktop, output: session_desktop,
po_dir: '../po', po_dir: '../po',
install: true, install: true,
install_dir: session_instdir, install_dir: session_instdir,
type: 'desktop' type: 'desktop',
) )
endforeach endforeach
classic_uuids = [] classic_uuids = []
foreach e : classic_extensions foreach e : classic_extensions
classic_uuids += e + uuid_suffix classic_uuids += e + uuid_suffix
endforeach endforeach
mode_conf = configuration_data() mode_conf = configuration_data()
@@ -47,7 +47,7 @@ configure_file(
input: mode_file + '.in', input: mode_file + '.in',
output: mode_file, output: mode_file,
configuration: mode_conf, configuration: mode_conf,
install_dir: modedir install_dir: modedir,
) )
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override' classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'

View File

@@ -8,16 +8,16 @@ srcdir=`dirname $0`
srcdir=`(cd $srcdir && pwd)` srcdir=`(cd $srcdir && pwd)`
builddir=`mktemp -p $srcdir -d _build.XXXXXX` || exit 1 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 setup --prefix=/usr -Dextension_set=all $srcdir $builddir
meson install -C $builddir meson install --destdir $destdir -C $builddir
rm -rf $srcdir/zip-files rm -rf $srcdir/zip-files
mkdir $srcdir/zip-files mkdir $srcdir/zip-files
extensiondir=$installdir/share/gnome-shell/extensions extensiondir=$destdir/usr/share/gnome-shell/extensions
schemadir=$installdir/share/glib-2.0/schemas schemadir=$destdir/usr/share/glib-2.0/schemas
for f in $extensiondir/*; do for f in $extensiondir/*; do
name=`basename ${f%%@*}` name=`basename ${f%%@*}`
@@ -39,7 +39,7 @@ for f in $extensiondir/*; do
fi fi
cp $srcdir/NEWS $srcdir/COPYING $f cp $srcdir/NEWS $srcdir/COPYING $f
sources=(NEWS COPYING $(cd $f; ls *.js *.css 2>/dev/null)) sources=(NEWS COPYING $(cd $f; ls *.js))
[ -d $f/icons ] && sources+=(icons) [ -d $f/icons ] && sources+=(icons)
@@ -50,4 +50,4 @@ for f in $extensiondir/*; do
done done
rm -rf $builddir rm -rf $builddir
rm -rf $installdir rm -rf $destdir

View File

@@ -5,7 +5,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Atk from 'gi://Atk'; import Atk from 'gi://Atk';
import Clutter from 'gi://Clutter'; import Clutter from 'gi://Clutter';
import Gio from 'gi://Gio'; import Gio from 'gi://Gio';

View File

@@ -4,9 +4,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // 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 Shell from 'gi://Shell';
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js'; import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';

View File

@@ -3,9 +3,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // 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 Adw from 'gi://Adw';
import Gio from 'gi://Gio'; import Gio from 'gi://Gio';
import GLib from 'gi://GLib'; import GLib from 'gi://GLib';

View File

@@ -16,18 +16,20 @@ foreach e : enabled_extensions
metadata_conf.set('gschemaname', 'org.gnome.shell.extensions.' + e) metadata_conf.set('gschemaname', 'org.gnome.shell.extensions.' + e)
metadata_conf.set('gettext_domain', gettext_domain) metadata_conf.set('gettext_domain', gettext_domain)
metadata_conf.set('shell_current', shell_version) 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_sources = files(e + '/extension.js')
extension_data = [] extension_data = []
subdir(e) subdir(e)
install_data (extension_sources + extension_data, install_data(
install_dir: join_paths(extensiondir, uuid) extension_sources + extension_data,
install_dir: join_paths(extensiondir, uuid),
) )
endforeach endforeach
install_data (extension_schemas, install_data(extension_schemas, install_dir: schemadir)
install_dir: schemadir
)

View File

@@ -5,7 +5,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Clutter from 'gi://Clutter'; import Clutter from 'gi://Clutter';
import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js'; import {Extension, InjectionManager} from 'resource:///org/gnome/shell/extensions/extension.js';

View File

@@ -5,7 +5,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Clutter from 'gi://Clutter'; import Clutter from 'gi://Clutter';
import GObject from 'gi://GObject'; import GObject from 'gi://GObject';
import St from 'gi://St'; import St from 'gi://St';
@@ -20,32 +19,17 @@ import {PlacesManager} from './placeDisplay.js';
const N_ = x => x; const N_ = x => x;
const PLACE_ICON_SIZE = 16; class PlaceMenuItem extends PopupMenu.PopupImageMenuItem {
class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
static { static {
GObject.registerClass(this); GObject.registerClass(this);
} }
constructor(info) { constructor(info) {
super({ super(info.name, info.icon, {
style_class: 'place-menu-item', style_class: 'place-menu-item',
}); });
this._info = info; 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()) { if (info.isRemovable()) {
this._ejectIcon = new St.Icon({ this._ejectIcon = new St.Icon({
icon_name: 'media-eject-symbolic', icon_name: 'media-eject-symbolic',
@@ -70,8 +54,8 @@ class PlaceMenuItem extends PopupMenu.PopupBaseMenuItem {
} }
_propertiesChanged(info) { _propertiesChanged(info) {
this._icon.gicon = info.icon; this.setIcon(info.icon);
this._label.text = info.name; this.label.text = info.name;
} }
} }

View File

@@ -6,7 +6,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
import Gio from 'gi://Gio'; import Gio from 'gi://Gio';
import GLib from 'gi://GLib'; import GLib from 'gi://GLib';
import Shell from 'gi://Shell'; import Shell from 'gi://Shell';
@@ -61,15 +60,15 @@ class PlaceInfo extends EventEmitter {
return; return;
} }
let source = { const source = {
get_icon: () => this.icon, get_drive: () => null,
}; };
let op = new ShellMountOperation.ShellMountOperation(source); let op = new ShellMountOperation.ShellMountOperation(source);
try { try {
await this.file.mount_enclosing_volume(0, op.mountOp, null); await this.file.mount_enclosing_volume(0, op.mountOp, null);
if (tryMount) if (tryMount)
this._ensureMountAndLaunch(context, false); this._ensureMountAndLaunch(context, false).catch(logError);
} catch (e) { } catch (e) {
if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED)) if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.FAILED_HANDLED))
Main.notifyError(_('Failed to mount volume for “%s”').format(this.name), e.message); Main.notifyError(_('Failed to mount volume for “%s”').format(this.name), e.message);
@@ -81,7 +80,7 @@ class PlaceInfo extends EventEmitter {
launch(timestamp) { launch(timestamp) {
let launchContext = global.create_app_launch_context(timestamp, -1); let launchContext = global.create_app_launch_context(timestamp, -1);
this._ensureMountAndLaunch(launchContext, true); this._ensureMountAndLaunch(launchContext, true).catch(logError);
} }
getIcon() { getIcon() {

View File

@@ -1,91 +0,0 @@
// 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;
}
}

View File

@@ -1,9 +0,0 @@
# 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
)

View File

@@ -1,10 +0,0 @@
{
"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@"
}

View File

@@ -5,9 +5,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // 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 Gio from 'gi://Gio';
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js'; import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js';

View File

@@ -2,8 +2,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // 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 // we use async/await here to not block the mainloop, not to parallelize
/* eslint-disable no-await-in-loop */ /* eslint-disable no-await-in-loop */

View File

@@ -19,13 +19,15 @@ import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/ex
import * as DND from 'resource:///org/gnome/shell/ui/dnd.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 Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js'; import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import {DashItemContainer} from 'resource:///org/gnome/shell/ui/dash.js';
import {WorkspaceIndicator} from './workspaceIndicator.js'; import {WorkspaceIndicator} from './workspaceIndicator.js';
const ICON_TEXTURE_SIZE = 24; const ICON_TEXTURE_SIZE = 24;
const DND_ACTIVATE_TIMEOUT = 500; const DND_ACTIVATE_TIMEOUT = 500;
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const GroupingMode = { const GroupingMode = {
NEVER: 0, NEVER: 0,
AUTO: 1, AUTO: 1,
@@ -77,7 +79,7 @@ class WindowContextMenu extends PopupMenu.PopupMenu {
'notify::minimized', this._updateMinimizeItem.bind(this), 'notify::minimized', this._updateMinimizeItem.bind(this),
'notify::maximized-horizontally', this._updateMaximizeItem.bind(this), 'notify::maximized-horizontally', this._updateMaximizeItem.bind(this),
'notify::maximized-vertically', this._updateMaximizeItem.bind(this), 'notify::maximized-vertically', this._updateMaximizeItem.bind(this),
this); this.actor);
this._updateMinimizeItem(); this._updateMinimizeItem();
this._updateMaximizeItem(); this._updateMaximizeItem();
@@ -163,14 +165,14 @@ class WindowTitle extends St.BoxLayout {
this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE); this._icon.child = app.create_icon_texture(ICON_TEXTURE_SIZE);
} else { } else {
this._icon.child = new St.Icon({ this._icon.child = new St.Icon({
icon_name: 'application-x-executable', icon_name: 'icon-missing',
icon_size: ICON_TEXTURE_SIZE, icon_size: ICON_TEXTURE_SIZE,
}); });
} }
} }
} }
class BaseButton extends DashItemContainer { class BaseButton extends St.Button {
static { static {
GObject.registerClass({ GObject.registerClass({
GTypeFlags: GObject.TypeFlags.ABSTRACT, GTypeFlags: GObject.TypeFlags.ABSTRACT,
@@ -184,22 +186,12 @@ class BaseButton extends DashItemContainer {
} }
constructor(perMonitor, monitorIndex) { constructor(perMonitor, monitorIndex) {
super(); super({
this._button = new St.Button({
style_class: 'window-button', style_class: 'window-button',
can_focus: true, can_focus: true,
x_expand: true, x_expand: true,
button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE,
}); });
this.setChild(this._button);
this._button.connect('notify::hover', () => {
if (this._button.hover)
this.showLabel();
else
this.hideLabel();
});
this._perMonitor = perMonitor; this._perMonitor = perMonitor;
this._monitorIndex = monitorIndex; this._monitorIndex = monitorIndex;
@@ -207,7 +199,7 @@ class BaseButton extends DashItemContainer {
this.connect('notify::allocation', this.connect('notify::allocation',
this._updateIconGeometry.bind(this)); this._updateIconGeometry.bind(this));
this._button.connect('clicked', this._onClicked.bind(this)); this.connect('clicked', this._onClicked.bind(this));
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this.connect('popup-menu', this._onPopupMenu.bind(this)); this.connect('popup-menu', this._onPopupMenu.bind(this));
@@ -224,6 +216,12 @@ class BaseButton extends DashItemContainer {
this._windowEnteredOrLeftMonitor.bind(this), this._windowEnteredOrLeftMonitor.bind(this),
this); this);
} }
this._tooltip = new Tooltip(this, {
style_class: 'dash-label',
visible: false,
});
Main.uiGroup.add_child(this._tooltip);
} }
get active() { get active() {
@@ -246,18 +244,6 @@ class BaseButton extends DashItemContainer {
this._updateVisibility(); this._updateVisibility();
} }
showLabel() {
const [, , preferredTitleWidth] = this.label_actor.get_preferred_size();
const maxTitleWidth = this.label_actor.allocation.get_width();
const isTitleFullyShown = preferredTitleWidth <= maxTitleWidth;
const labelText = isTitleFullyShown
? '' : this.label_actor.text;
this.setLabelText(labelText);
super.showLabel();
}
_setLongPressTimeout() { _setLongPressTimeout() {
if (this._longPressTimeoutId) if (this._longPressTimeoutId)
return; return;
@@ -358,9 +344,9 @@ class BaseButton extends DashItemContainer {
_updateStyle() { _updateStyle() {
if (this._isFocused()) if (this._isFocused())
this._button.add_style_class_name('focused'); this.add_style_class_name('focused');
else else
this._button.remove_style_class_name('focused'); this.remove_style_class_name('focused');
} }
_windowEnteredOrLeftMonitor(_metaDisplay, _monitorIndex, _metaWindow) { _windowEnteredOrLeftMonitor(_metaDisplay, _monitorIndex, _metaWindow) {
@@ -396,6 +382,7 @@ class BaseButton extends DashItemContainer {
} }
_onDestroy() { _onDestroy() {
this._tooltip.destroy();
} }
} }
@@ -408,17 +395,15 @@ class WindowButton extends BaseButton {
super(perMonitor, monitorIndex); super(perMonitor, monitorIndex);
this.metaWindow = metaWindow; this.metaWindow = metaWindow;
this._unmanaging = false;
metaWindow.connectObject( metaWindow.connectObject(
'notify::skip-taskbar', () => this._updateVisibility(), 'notify::skip-taskbar', () => this._updateVisibility(),
'workspace-changed', () => this._updateVisibility(), 'workspace-changed', () => this._updateVisibility(),
'unmanaging', () => (this._unmanaging = true),
this); this);
this._updateVisibility(); this._updateVisibility();
this._windowTitle = new WindowTitle(this.metaWindow); this._windowTitle = new WindowTitle(this.metaWindow);
this._button.set_child(this._windowTitle); this.set_child(this._windowTitle);
this.label_actor = this._windowTitle.label_actor; this.label_actor = this._windowTitle.label_actor;
this._contextMenu = new WindowContextMenu(this, this.metaWindow); this._contextMenu = new WindowContextMenu(this, this.metaWindow);
@@ -464,9 +449,6 @@ class WindowButton extends BaseButton {
} }
_updateVisibility() { _updateVisibility() {
if (this._unmanaging)
return;
this.visible = this._isWindowVisible(this.metaWindow); this.visible = this._isWindowVisible(this.metaWindow);
} }
@@ -550,7 +532,7 @@ class AppButton extends BaseButton {
this._updateVisibility(); this._updateVisibility();
let stack = new St.Widget({layout_manager: new Clutter.BinLayout()}); let stack = new St.Widget({layout_manager: new Clutter.BinLayout()});
this._button.set_child(stack); this.set_child(stack);
this._singleWindowTitle = new St.Bin({ this._singleWindowTitle = new St.Bin({
x_expand: true, x_expand: true,
@@ -747,24 +729,28 @@ class WindowList extends St.Widget {
let box = new St.BoxLayout({x_expand: true, y_expand: true}); let box = new St.BoxLayout({x_expand: true, y_expand: true});
this.add_child(box); this.add_child(box);
this._windowList = new St.BoxLayout({ let layout = new Clutter.BoxLayout({homogeneous: true});
this._windowList = new St.Widget({
style_class: 'window-list', style_class: 'window-list',
reactive: true, reactive: true,
layout_manager: layout,
x_align: Clutter.ActorAlign.START, x_align: Clutter.ActorAlign.START,
x_expand: true, x_expand: true,
y_expand: true, y_expand: true,
}); });
box.add_child(this._windowList); box.add_child(this._windowList);
this._windowList.connect('style-changed', () => {
let node = this._windowList.get_theme_node();
let spacing = node.get_length('spacing');
this._windowList.layout_manager.spacing = spacing;
});
this._windowList.connect('scroll-event', this._onScrollEvent.bind(this)); this._windowList.connect('scroll-event', this._onScrollEvent.bind(this));
let indicatorsBox = new St.BoxLayout({x_align: Clutter.ActorAlign.END}); let indicatorsBox = new St.BoxLayout({x_align: Clutter.ActorAlign.END});
box.add_child(indicatorsBox); box.add_child(indicatorsBox);
this._workspaceIndicator = new BottomWorkspaceIndicator({ this._workspaceIndicator = new WorkspaceIndicator();
baseStyleClass: 'window-list-workspace-indicator',
settings,
});
indicatorsBox.add_child(this._workspaceIndicator.container); indicatorsBox.add_child(this._workspaceIndicator.container);
this._mutterSettings = new Gio.Settings({schema_id: 'org.gnome.mutter'}); this._mutterSettings = new Gio.Settings({schema_id: 'org.gnome.mutter'});
@@ -777,14 +763,13 @@ class WindowList extends St.Widget {
this._updateWorkspaceIndicatorVisibility(); this._updateWorkspaceIndicatorVisibility();
this._menuManager = new PopupMenu.PopupMenuManager(this); this._menuManager = new PopupMenu.PopupMenuManager(this);
this._workspaceIndicator.connectObject('menu-set', this._menuManager.addMenu(this._workspaceIndicator.menu);
() => this._onWorkspaceMenuSet(), this);
this._onWorkspaceMenuSet();
Main.layoutManager.addChrome(this, { const chromeOptions = {
affectsStruts: true, affectsStruts: true,
trackFullscreen: true, trackFullscreen: true,
}); };
Main.layoutManager.addChrome(this, chromeOptions);
Main.uiGroup.set_child_above_sibling(this, Main.layoutManager.panelBox); Main.uiGroup.set_child_above_sibling(this, Main.layoutManager.panelBox);
Main.ctrlAltTabManager.addGroup(this, _('Window List'), 'start-here-symbolic'); Main.ctrlAltTabManager.addGroup(this, _('Window List'), 'start-here-symbolic');
@@ -821,10 +806,12 @@ class WindowList extends St.Widget {
Main.overview.connectObject( Main.overview.connectObject(
'showing', () => { 'showing', () => {
Main.layoutManager.untrackChrome(this);
this.hide(); this.hide();
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}, },
'hidden', () => { 'hidden', () => {
Main.layoutManager.trackChrome(this);
this.visible = !this._monitor.inFullscreen; this.visible = !this._monitor.inFullscreen;
this._updateKeyboardAnchor(); this._updateKeyboardAnchor();
}, this); }, this);
@@ -838,7 +825,7 @@ class WindowList extends St.Widget {
this._windowSignals = new Map(); this._windowSignals = new Map();
global.display.connectObject( global.display.connectObject(
'window-created', (dsp, win) => this._addWindow(win, true), this); 'window-created', (dsp, win) => this._addWindow(win), this);
Main.xdndHandler.connectObject( Main.xdndHandler.connectObject(
'drag-begin', () => this._monitorDrag(), 'drag-begin', () => this._monitorDrag(),
@@ -876,11 +863,6 @@ class WindowList extends St.Widget {
children[newActive].activate(); children[newActive].activate();
} }
_onWorkspaceMenuSet() {
if (this._workspaceIndicator.menu)
this._menuManager.addMenu(this._workspaceIndicator.menu);
}
_updatePosition() { _updatePosition() {
this.set_position( this.set_position(
this._monitor.x, this._monitor.x,
@@ -955,14 +937,14 @@ class WindowList extends St.Widget {
w2.metaWindow.get_stable_sequence(); w2.metaWindow.get_stable_sequence();
}); });
for (let i = 0; i < windows.length; i++) for (let i = 0; i < windows.length; i++)
this._addWindow(windows[i].metaWindow, false); this._addWindow(windows[i].metaWindow);
} else { } else {
let apps = this._appSystem.get_running().sort((a1, a2) => { let apps = this._appSystem.get_running().sort((a1, a2) => {
return _getAppStableSequence(a1) - return _getAppStableSequence(a1) -
_getAppStableSequence(a2); _getAppStableSequence(a2);
}); });
for (let i = 0; i < apps.length; i++) for (let i = 0; i < apps.length; i++)
this._addApp(apps[i], false); this._addApp(apps[i]);
} }
} }
@@ -976,26 +958,26 @@ class WindowList extends St.Widget {
return; return;
if (app.state === Shell.AppState.RUNNING) if (app.state === Shell.AppState.RUNNING)
this._addApp(app, true); this._addApp(app);
else if (app.state === Shell.AppState.STOPPED) else if (app.state === Shell.AppState.STOPPED)
this._removeApp(app); this._removeApp(app);
} }
_addApp(app, animate) { _addApp(app) {
let button = new AppButton(app, this._perMonitor, this._monitor.index); let button = new AppButton(app, this._perMonitor, this._monitor.index);
this._settings.bind('display-all-workspaces', this._settings.bind('display-all-workspaces',
button, 'ignore-workspace', Gio.SettingsBindFlags.GET); button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
this._windowList.add_child(button); this._windowList.add_child(button);
button.show(animate);
} }
_removeApp(app) { _removeApp(app) {
let children = this._windowList.get_children(); let children = this._windowList.get_children();
let child = children.find(c => c.app === app); let child = children.find(c => c.app === app);
child?.animateOutAndDestroy(); if (child)
child.destroy();
} }
_addWindow(win, animate) { _addWindow(win) {
if (!this._grouped) if (!this._grouped)
this._checkGrouping(); this._checkGrouping();
@@ -1013,7 +995,6 @@ class WindowList extends St.Widget {
this._settings.bind('display-all-workspaces', this._settings.bind('display-all-workspaces',
button, 'ignore-workspace', Gio.SettingsBindFlags.GET); button, 'ignore-workspace', Gio.SettingsBindFlags.GET);
this._windowList.add_child(button); this._windowList.add_child(button);
button.show(animate);
} }
_removeWindow(win) { _removeWindow(win) {
@@ -1030,7 +1011,8 @@ class WindowList extends St.Widget {
let children = this._windowList.get_children(); let children = this._windowList.get_children();
let child = children.find(c => c.metaWindow === win); let child = children.find(c => c.metaWindow === win);
child?.animateOutAndDestroy(); if (child)
child.destroy();
} }
_monitorDrag() { _monitorDrag() {
@@ -1101,28 +1083,6 @@ class WindowList extends St.Widget {
} }
} }
class BottomWorkspaceIndicator extends WorkspaceIndicator {
static {
GObject.registerClass(this);
}
constructor(params) {
super(params);
this.remove_style_class_name('panel-button');
}
setMenu(menu) {
super.setMenu(menu);
if (!menu)
return;
this.menu.actor.updateArrowSide(St.Side.BOTTOM);
this.menu.actor.remove_style_class_name('panel-menu');
}
}
export default class WindowListExtension extends Extension { export default class WindowListExtension extends Extension {
constructor(metadata) { constructor(metadata) {
super(metadata); super(metadata);
@@ -1174,3 +1134,67 @@ export default class WindowListExtension extends Extension {
return this._windowLists.some(list => list.contains(actor)); return this._windowLists.some(list => list.contains(actor));
} }
} }
class Tooltip extends St.Label {
static {
GObject.registerClass(this);
}
constructor(widget, params) {
super(params);
this._widget = widget;
this._widget.connect('notify::hover', () => {
if (this._widget.hover)
this.open();
else
this.close();
});
}
open() {
const buttonTitleWidget = this._widget.label_actor;
const [, , preferredTitleWidth] = buttonTitleWidget.get_preferred_size();
const maxTitleWidth = buttonTitleWidget.allocation.get_width();
const isTitleFullyShown = preferredTitleWidth <= maxTitleWidth;
if (isTitleFullyShown)
return;
this.set({
text: this._widget.label_actor.get_text(),
visible: true,
opacity: 0,
});
const [stageX, stageY] = this._widget.get_transformed_position();
const thumbWidth = this._widget.allocation.get_width();
const tipWidth = this.width;
const tipHeight = this.height;
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
const monitor = Main.layoutManager.findMonitorForActor(this);
const x = Math.clamp(
stageX + xOffset,
monitor.x,
monitor.x + monitor.width - tipWidth);
const y = stageY - tipHeight - TOOLTIP_OFFSET;
this.set_position(x, y);
this.ease({
opacity: 255,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this.visible = this._widget.hover),
});
}
close() {
this.ease({
opacity: 0,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this.visible = this._widget.hover),
});
}
}

View File

@@ -12,32 +12,5 @@ extension_data += files(
'stylesheet-light.css' 'stylesheet-light.css'
) )
transform_stylesheet = [ extension_sources += files('prefs.js', 'workspaceIndicator.js')
'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,
),
]
extension_sources += files('prefs.js') + workspaceIndicatorSources
extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml') extension_schemas += files(metadata_conf.get('gschemaname') + '.gschema.xml')

View File

@@ -36,9 +36,5 @@ SPDX-License-Identifier: GPL-2.0-or-later
only on the primary one. only on the primary one.
</description> </description>
</key> </key>
<key name="embed-previews" type="b">
<default>true</default>
<summary>Show workspace previews in window list</summary>
</key>
</schema> </schema>
</schemalist> </schemalist>

View File

@@ -3,7 +3,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Adw from 'gi://Adw'; import Adw from 'gi://Adw';
import Gio from 'gi://Gio'; import Gio from 'gi://Gio';
import GLib from 'gi://GLib'; import GLib from 'gi://GLib';
@@ -81,19 +80,6 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
}); });
row.add_suffix(toggle); row.add_suffix(toggle);
miscGroup.add(row); miscGroup.add(row);
toggle = new Gtk.Switch({
action_name: 'window-list.embed-previews',
valign: Gtk.Align.CENTER,
});
this._settings.bind('embed-previews',
toggle, 'active', Gio.SettingsBindFlags.DEFAULT);
row = new Adw.ActionRow({
title: _('Show workspace previews'),
activatable_widget: toggle,
});
row.add_suffix(toggle);
miscGroup.add(row);
} }
} }

View File

@@ -4,7 +4,6 @@
* *
* SPDX-License-Identifier: GPL-2.0-or-later * SPDX-License-Identifier: GPL-2.0-or-later
*/ */
@import url("stylesheet-workspace-switcher-dark.css");
.window-list { .window-list {
spacing: 2px; spacing: 2px;
@@ -34,8 +33,8 @@
} }
.window-button > StWidget { .window-button > StWidget {
color: #fff; color: #bbb;
background-color: transparent; background-color: #1d1d1d;
border-radius: 4px; border-radius: 4px;
padding: 3px 6px 1px; padding: 3px 6px 1px;
transition: 100ms ease; transition: 100ms ease;
@@ -47,25 +46,25 @@
} }
.window-button:hover > StWidget { .window-button:hover > StWidget {
color: #fff;
background-color: #303030; background-color: #303030;
} }
.window-button:active > StWidget, .window-button:active > StWidget,
.window-button:focus > StWidget { .window-button:focus > StWidget {
background-color: st-lighten(#303030, 5%); color: #fff;
background-color: #3f3f3f;
} }
.window-button.focused > StWidget { .window-button.focused > StWidget {
background-color: #5b5b5b; color: #fff;
background-color: #3f3f3f;
} }
.window-button.focused:hover > StWidget { .window-button.focused:active > StWidget {
background-color: st-lighten(#5b5b5b, 5%); color: #fff;
} background-color: #3f3f3f;
}
.window-button.focused:active > StWidget {
background-color: st-lighten(#5b5b5b, 10%);
}
.window-button.minimized > StWidget { .window-button.minimized > StWidget {
color: #666; color: #666;
@@ -82,6 +81,36 @@
height: 24px; height: 24px;
} }
.window-list-workspace-indicator .status-label-bin {
background-color: rgba(200, 200, 200, 0.3);
padding: 5px;
margin: 3px;
}
.window-list-workspace-indicator .workspaces-box {
spacing: 3px;
padding: 5px;
}
.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 { .notification {
font-weight: normal; font-weight: normal;
} }

View File

@@ -6,7 +6,6 @@
*/ */
@import url("stylesheet-dark.css"); @import url("stylesheet-dark.css");
@import url("stylesheet-workspace-switcher-light.css");
#panel.bottom-panel { #panel.bottom-panel {
border-top-width: 1px; border-top-width: 1px;
@@ -15,10 +14,13 @@
} }
.bottom-panel .window-button > StWidget { .bottom-panel .window-button > StWidget {
color: #2e3436;
background-color: #eee;
border-radius: 3px; border-radius: 3px;
padding: 3px 6px 1px; padding: 3px 6px 1px;
box-shadow: none; box-shadow: none;
text-shadow: none; text-shadow: none;
border: 1px solid rgba(0,0,0,0.2);
} }
.bottom-panel .window-button > StWidget { .bottom-panel .window-button > StWidget {
@@ -26,43 +28,44 @@
max-width: 18.75em; max-width: 18.75em;
} }
.window-button > StWidget { .bottom-panel .window-button:hover > StWidget {
color: #000; background-color: #f9f9f9;
background-color: transparent;
}
.window-button > StWidget {
-st-natural-width: 18.75em;
max-width: 18.75em;
}
.window-button:hover > StWidget {
background-color: st-darken(#eee,5%);
}
.window-button:active > StWidget,
.window-button:focus > StWidget {
background-color: st-darken(#eee, 10%);
}
.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 { .bottom-panel .window-button:active > StWidget,
background-color: st-darken(#eee, 25%); .bottom-panel .window-button:focus > StWidget {
box-shadow: inset 0 1px 3px rgba(0,0,0,0.1);
} }
.window-button.minimized > StWidget { .bottom-panel .window-button.focused > StWidget {
color: #aaa; background-color: #ccc;
background-color: #f9f9f9; 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.minimized:active > StWidget { .window-list-workspace-indicator .workspace.active {
color: #aaa; border-color: #888;
background-color: #f9f9f9; }
.window-list-window-preview {
background-color: #ededed;
border: 1px solid #ccc;
}
.window-list-window-preview.active {
background-color: #f6f5f4;
} }

View File

@@ -1,6 +1,4 @@
// SPDX-FileCopyrightText: 2011 Erick Pérez Castellanos <erick.red@gmail.com> // SPDX-FileCopyrightText: 2019 Florian Müllner <fmuellner@gnome.org>
// 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 // SPDX-License-Identifier: GPL-2.0-or-later
@@ -20,9 +18,7 @@ import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
const TOOLTIP_OFFSET = 6; const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150; const TOOLTIP_ANIMATION_TIME = 150;
const SCROLL_TIME = 100; const MAX_THUMBNAILS = 6;
let baseStyleClassName = '';
class WindowPreview extends St.Button { class WindowPreview extends St.Button {
static { static {
@@ -31,7 +27,7 @@ class WindowPreview extends St.Button {
constructor(window) { constructor(window) {
super({ super({
style_class: `${baseStyleClassName}-window-preview`, style_class: 'window-list-window-preview',
}); });
this._delegate = this; this._delegate = this;
@@ -43,7 +39,7 @@ class WindowPreview extends St.Button {
'size-changed', () => this._checkRelayout(), 'size-changed', () => this._checkRelayout(),
'position-changed', () => this._checkRelayout(), 'position-changed', () => this._checkRelayout(),
'notify::minimized', this._updateVisible.bind(this), 'notify::minimized', this._updateVisible.bind(this),
'notify::window-type', this._updateVisible.bind(this), 'notify::skip-taskbar', this._updateVisible.bind(this),
this); this);
this._updateVisible(); this._updateVisible();
@@ -72,7 +68,7 @@ class WindowPreview extends St.Button {
} }
_updateVisible() { _updateVisible() {
this.visible = this._window.window_type !== Meta.WindowType.DESKTOP && this.visible = !this._window.skip_taskbar &&
this._window.showing_on_its_workspace(); this._window.showing_on_its_workspace();
} }
} }
@@ -104,39 +100,19 @@ class WorkspaceLayout extends Clutter.LayoutManager {
Math.round(Math.min(frameRect.height, workArea.height) * vscale)); Math.round(Math.min(frameRect.height, workArea.height) * vscale));
childBox.set_origin( childBox.set_origin(
Math.round((frameRect.x - workArea.x) * hscale), Math.round((frameRect.x - workArea.x) * hscale),
Math.round((frameRect.y - workArea.y) * vscale)); Math.round((frameRect.y - workArea.y) * vscale));
child.allocate(childBox); child.allocate(childBox);
} }
} }
} }
class WorkspaceThumbnail extends St.Button { class WorkspaceThumbnail extends St.Button {
static [GObject.properties] = {
'active': GObject.ParamSpec.boolean(
'active', '', '',
GObject.ParamFlags.READWRITE,
false),
'show-label': GObject.ParamSpec.boolean(
'show-label', '', '',
GObject.ParamFlags.READWRITE,
false),
};
static { static {
GObject.registerClass(this); GObject.registerClass(this);
} }
constructor(index) { constructor(index) {
super(); super({
const box = new St.BoxLayout({
style_class: 'workspace-box',
y_expand: true,
vertical: true,
});
this.set_child(box);
this._preview = new St.Bin({
style_class: 'workspace', style_class: 'workspace',
child: new Clutter.Actor({ child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(), layout_manager: new WorkspaceLayout(),
@@ -144,15 +120,7 @@ class WorkspaceThumbnail extends St.Button {
x_expand: true, x_expand: true,
y_expand: true, y_expand: true,
}), }),
y_expand: true,
}); });
box.add_child(this._preview);
this._label = new St.Label({
x_align: Clutter.ActorAlign.CENTER,
text: Meta.prefs_get_workspace_name(index),
});
box.add_child(this._label);
this._tooltip = new St.Label({ this._tooltip = new St.Label({
style_class: 'dash-label', style_class: 'dash-label',
@@ -160,19 +128,9 @@ class WorkspaceThumbnail extends St.Button {
}); });
Main.uiGroup.add_child(this._tooltip); Main.uiGroup.add_child(this._tooltip);
this.bind_property('show-label',
this._label, 'visible',
GObject.BindingFlags.SYNC_CREATE);
this.connect('destroy', this._onDestroy.bind(this)); this.connect('destroy', this._onDestroy.bind(this));
this.connect('notify::hover', this._syncTooltip.bind(this)); this.connect('notify::hover', this._syncTooltip.bind(this));
const desktopSettings =
new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
desktopSettings.connectObject('changed::workspace-names', () => {
this._label.text = Meta.prefs_get_workspace_name(index);
}, this);
this._index = index; this._index = index;
this._delegate = this; // needed for DND this._delegate = this; // needed for DND
@@ -181,10 +139,6 @@ class WorkspaceThumbnail extends St.Button {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index); this._workspace = workspaceManager.get_workspace_by_index(index);
this._workspace.bind_property('active',
this, 'active',
GObject.BindingFlags.SYNC_CREATE);
this._workspace.connectObject( this._workspace.connectObject(
'window-added', (ws, window) => this._addWindow(window), 'window-added', (ws, window) => this._addWindow(window),
'window-removed', (ws, window) => this._removeWindow(window), 'window-removed', (ws, window) => this._removeWindow(window),
@@ -197,18 +151,6 @@ class WorkspaceThumbnail extends St.Button {
this._onRestacked(); 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) { acceptDrop(source) {
if (!source.metaWindow) if (!source.metaWindow)
return false; return false;
@@ -231,7 +173,7 @@ class WorkspaceThumbnail extends St.Button {
let preview = new WindowPreview(window); let preview = new WindowPreview(window);
preview.connect('clicked', (a, btn) => this.emit('clicked', btn)); preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
this._windowPreviews.set(window, preview); this._windowPreviews.set(window, preview);
this._preview.child.add_child(preview); this.child.add_child(preview);
} }
_removeWindow(window) { _removeWindow(window) {
@@ -251,7 +193,7 @@ class WorkspaceThumbnail extends St.Button {
if (!preview) if (!preview)
continue; continue;
this._preview.child.set_child_above_sibling(preview, lastPreview); this.child.set_child_above_sibling(preview, lastPreview);
lastPreview = preview; lastPreview = preview;
} }
} }
@@ -270,9 +212,6 @@ class WorkspaceThumbnail extends St.Button {
} }
_syncTooltip() { _syncTooltip() {
if (this.showLabel)
return;
if (this.hover) { if (this.hover) {
this._tooltip.set({ this._tooltip.set({
text: Meta.prefs_get_workspace_name(this._index), text: Meta.prefs_get_workspace_name(this._index),
@@ -281,17 +220,16 @@ class WorkspaceThumbnail extends St.Button {
}); });
const [stageX, stageY] = this.get_transformed_position(); const [stageX, stageY] = this.get_transformed_position();
const [thumbWidth, thumbHeight] = this.allocation.get_size(); const thumbWidth = this.allocation.get_width();
const [tipWidth, tipHeight] = this._tooltip.get_size(); const tipWidth = this._tooltip.width;
const tipHeight = this._tooltip.height;
const xOffset = Math.floor((thumbWidth - tipWidth) / 2); const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
const monitor = Main.layoutManager.findMonitorForActor(this); const monitor = Main.layoutManager.findMonitorForActor(this);
const x = Math.clamp( const x = Math.clamp(
stageX + xOffset, stageX + xOffset,
monitor.x, monitor.x,
monitor.x + monitor.width - tipWidth); monitor.x + monitor.width - tipWidth);
const y = stageY - monitor.y > thumbHeight + TOOLTIP_OFFSET const y = stageY - tipHeight - TOOLTIP_OFFSET;
? stageY - tipHeight - TOOLTIP_OFFSET // show above
: stageY + thumbHeight + TOOLTIP_OFFSET; // show below
this._tooltip.set_position(x, y); this._tooltip.set_position(x, y);
} }
@@ -308,136 +246,17 @@ class WorkspaceThumbnail extends St.Button {
} }
} }
class WorkspacePreviews extends Clutter.Actor {
static [GObject.properties] = {
'show-labels': GObject.ParamSpec.boolean(
'show-labels', '', '',
GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT_ONLY,
false),
};
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++) {
const thumb = new WorkspaceThumbnail(i);
this.bind_property('show-labels',
thumb, 'show-label',
GObject.BindingFlags.SYNC_CREATE);
this._thumbnailsBox.add_child(thumb);
}
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,
});
}
}
export class WorkspaceIndicator extends PanelMenu.Button { export class WorkspaceIndicator extends PanelMenu.Button {
static { static {
GObject.registerClass(this); GObject.registerClass(this);
} }
constructor(params = {}) { constructor() {
super(0.5, _('Workspace Indicator'), true); super(0.5, _('Workspace Indicator'), true);
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
const { this.add_style_class_name('window-list-workspace-indicator');
baseStyleClass = 'workspace-indicator', this.remove_style_class_name('panel-button');
settings, this.menu.actor.remove_style_class_name('panel-menu');
} = params;
this._settings = settings;
baseStyleClassName = baseStyleClass;
this.add_style_class_name(baseStyleClassName);
let container = new St.Widget({ let container = new St.Widget({
layout_manager: new Clutter.BinLayout(), layout_manager: new Clutter.BinLayout(),
@@ -449,89 +268,163 @@ export class WorkspaceIndicator extends PanelMenu.Button {
let workspaceManager = global.workspace_manager; let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index(); this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._statusLabel = new St.Label({ this._statusLabel = new St.Label({text: this._getStatusText()});
style_class: 'status-label',
y_align: Clutter.ActorAlign.CENTER,
text: this._getStatusText(),
});
container.add_child(this._statusLabel);
this._thumbnails = new WorkspacePreviews(); this._statusBin = new St.Bin({
container.add_child(this._thumbnails); style_class: 'status-label-bin',
x_expand: true,
y_expand: true,
child: this._statusLabel,
});
container.add_child(this._statusBin);
this._thumbnailsBox = new St.BoxLayout({
style_class: 'workspaces-box',
y_expand: true,
reactive: true,
});
this._thumbnailsBox.connect('scroll-event',
this._onScrollEvent.bind(this));
container.add_child(this._thumbnailsBox);
this._workspacesItems = []; this._workspacesItems = [];
workspaceManager.connectObject( workspaceManager.connectObject(
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER, 'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
this); this);
this.connect('scroll-event', this.connect('scroll-event', this._onScrollEvent.bind(this));
(a, event) => Main.wm.handleWorkspaceScroll(event)); this._updateMenu();
this._updateThumbnails();
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(); this._updateThumbnailVisibility();
}
_onDestroy() { this._settings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
if (this._inTopBar) this._settings.connectObject('changed::workspace-names',
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS); () => this._updateMenuLabels(), this);
this._inTopBar = false;
super._onDestroy();
} }
_updateThumbnailVisibility() { _updateThumbnailVisibility() {
const useMenu = !this._settings.get_boolean('embed-previews'); const {workspaceManager} = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
this.reactive = useMenu; this.reactive = useMenu;
this._statusLabel.visible = useMenu; this._statusBin.visible = useMenu;
this._thumbnails.visible = !useMenu; this._thumbnailsBox.visible = !useMenu;
this.setMenu(useMenu
? this._createPreviewMenu()
: null);
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);
} }
_onWorkspaceSwitched() { _onWorkspaceSwitched() {
this._currentWorkspace = global.workspace_manager.get_active_workspace_index(); let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._updateMenuOrnament();
this._updateActiveThumbnail();
this._statusLabel.set_text(this._getStatusText()); this._statusLabel.set_text(this._getStatusText());
} }
_getStatusText() { _nWorkspacesChanged() {
const {nWorkspaces} = global.workspace_manager; this._updateMenu();
const current = this._currentWorkspace + 1; this._updateThumbnails();
return `${current} / ${nWorkspaces}`; this._updateThumbnailVisibility();
} }
_createPreviewMenu() { _updateMenuOrnament() {
const menu = new PopupMenu.PopupMenu(this, 0.5, St.Side.TOP); for (let i = 0; i < this._workspacesItems.length; i++) {
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
? PopupMenu.Ornament.DOT
: PopupMenu.Ornament.NO_DOT);
}
}
const previews = new WorkspacePreviews({show_labels: true}); _updateActiveThumbnail() {
menu.box.add_child(previews); let thumbs = this._thumbnailsBox.get_children();
menu.actor.add_style_class_name(`${baseStyleClassName}-menu`); for (let i = 0; i < thumbs.length; i++) {
return menu; if (i === this._currentWorkspace)
thumbs[i].add_style_class_name('active');
else
thumbs[i].remove_style_class_name('active');
}
}
_getStatusText() {
let workspaceManager = global.workspace_manager;
let current = workspaceManager.get_active_workspace_index();
let total = workspaceManager.n_workspaces;
return '%d / %d'.format(current + 1, total);
}
_updateMenuLabels() {
for (let i = 0; i < this._workspacesItems.length; i++) {
let item = this._workspacesItems[i];
let name = Meta.prefs_get_workspace_name(i);
item.label.text = name;
}
}
_updateMenu() {
let workspaceManager = global.workspace_manager;
this.menu.removeAll();
this._workspacesItems = [];
this._currentWorkspace = workspaceManager.get_active_workspace_index();
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
let name = Meta.prefs_get_workspace_name(i);
let item = new PopupMenu.PopupMenuItem(name);
item.workspaceId = i;
item.connect('activate', () => {
this._activate(item.workspaceId);
});
item.setOrnament(i === this._currentWorkspace
? PopupMenu.Ornament.DOT
: PopupMenu.Ornament.NO_DOT);
this.menu.addMenuItem(item);
this._workspacesItems[i] = item;
}
this._statusLabel.set_text(this._getStatusText());
}
_updateThumbnails() {
let workspaceManager = global.workspace_manager;
this._thumbnailsBox.destroy_all_children();
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
let thumb = new WorkspaceThumbnail(i);
this._thumbnailsBox.add_child(thumb);
}
this._updateActiveThumbnail();
}
_activate(index) {
let workspaceManager = global.workspace_manager;
if (index >= 0 && index < workspaceManager.n_workspaces) {
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
metaWorkspace.activate(global.get_current_time());
}
}
_onScrollEvent(actor, event) {
let direction = event.get_scroll_direction();
let diff = 0;
if (direction === Clutter.ScrollDirection.DOWN)
diff = 1;
else if (direction === Clutter.ScrollDirection.UP)
diff = -1;
else
return;
let newIndex = this._currentWorkspace + diff;
this._activate(newIndex);
} }
} }

View File

@@ -6,7 +6,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
import Clutter from 'gi://Clutter'; import Clutter from 'gi://Clutter';
import Graphene from 'gi://Graphene'; import Graphene from 'gi://Graphene';
import St from 'gi://St'; import St from 'gi://St';

View File

@@ -4,17 +4,442 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
import {Extension} from 'resource:///org/gnome/shell/extensions/extension.js'; 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, 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 Main from 'resource:///org/gnome/shell/ui/main.js';
import * as PanelMenu from 'resource:///org/gnome/shell/ui/panelMenu.js';
import * as PopupMenu from 'resource:///org/gnome/shell/ui/popupMenu.js';
import {WorkspaceIndicator} from './workspaceIndicator.js'; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names';
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const MAX_THUMBNAILS = 6;
class WindowPreview extends St.Button {
static {
GObject.registerClass(this);
}
constructor(window) {
super({
style_class: 'workspace-indicator-window-preview',
});
this._delegate = this;
DND.makeDraggable(this, {restoreOnSuccess: true});
this._window = window;
this._window.connectObject(
'size-changed', () => this._checkRelayout(),
'position-changed', () => this._checkRelayout(),
'notify::minimized', this._updateVisible.bind(this),
'notify::window-type', this._updateVisible.bind(this),
this);
this._updateVisible();
global.display.connectObject('notify::focus-window',
this._onFocusChanged.bind(this), this);
this._onFocusChanged();
}
// needed for DND
get metaWindow() {
return this._window;
}
_onFocusChanged() {
if (global.display.focus_window === this._window)
this.add_style_class_name('active');
else
this.remove_style_class_name('active');
}
_checkRelayout() {
const monitor = Main.layoutManager.findIndexForActor(this);
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
if (this._window.get_frame_rect().overlap(workArea))
this.queue_relayout();
}
_updateVisible() {
this.visible = this._window.window_type !== Meta.WindowType.DESKTOP &&
this._window.showing_on_its_workspace();
}
}
class WorkspaceLayout extends Clutter.LayoutManager {
static {
GObject.registerClass(this);
}
vfunc_get_preferred_width() {
return [0, 0];
}
vfunc_get_preferred_height() {
return [0, 0];
}
vfunc_allocate(container, box) {
const monitor = Main.layoutManager.findIndexForActor(container);
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
const hscale = box.get_width() / workArea.width;
const vscale = box.get_height() / workArea.height;
for (const child of container) {
const childBox = new Clutter.ActorBox();
const frameRect = child.metaWindow.get_frame_rect();
childBox.set_size(
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
childBox.set_origin(
Math.round((frameRect.x - workArea.x) * hscale),
Math.round((frameRect.y - workArea.y) * vscale));
child.allocate(childBox);
}
}
}
class WorkspaceThumbnail extends St.Button {
static {
GObject.registerClass(this);
}
constructor(index) {
super({
style_class: 'workspace',
child: new Clutter.Actor({
layout_manager: new WorkspaceLayout(),
clip_to_allocation: true,
x_expand: true,
y_expand: true,
}),
});
this._tooltip = new St.Label({
style_class: 'dash-label',
visible: false,
});
Main.uiGroup.add_child(this._tooltip);
this.connect('destroy', this._onDestroy.bind(this));
this.connect('notify::hover', this._syncTooltip.bind(this));
this._index = index;
this._delegate = this; // needed for DND
this._windowPreviews = new Map();
let workspaceManager = global.workspace_manager;
this._workspace = workspaceManager.get_workspace_by_index(index);
this._workspace.connectObject(
'window-added', (ws, window) => this._addWindow(window),
'window-removed', (ws, window) => this._removeWindow(window),
this);
global.display.connectObject('restacked',
this._onRestacked.bind(this), this);
this._workspace.list_windows().forEach(w => this._addWindow(w));
this._onRestacked();
}
acceptDrop(source) {
if (!source.metaWindow)
return false;
this._moveWindow(source.metaWindow);
return true;
}
handleDragOver(source) {
if (source.metaWindow)
return DND.DragMotionResult.MOVE_DROP;
else
return DND.DragMotionResult.CONTINUE;
}
_addWindow(window) {
if (this._windowPreviews.has(window))
return;
let preview = new WindowPreview(window);
preview.connect('clicked', (a, btn) => this.emit('clicked', btn));
this._windowPreviews.set(window, preview);
this.child.add_child(preview);
}
_removeWindow(window) {
let preview = this._windowPreviews.get(window);
if (!preview)
return;
this._windowPreviews.delete(window);
preview.destroy();
}
_onRestacked() {
let lastPreview = null;
let windows = global.get_window_actors().map(a => a.meta_window);
for (let i = 0; i < windows.length; i++) {
let preview = this._windowPreviews.get(windows[i]);
if (!preview)
continue;
this.child.set_child_above_sibling(preview, lastPreview);
lastPreview = preview;
}
}
_moveWindow(window) {
let monitorIndex = Main.layoutManager.findIndexForActor(this);
if (monitorIndex !== window.get_monitor())
window.move_to_monitor(monitorIndex);
window.change_workspace_by_index(this._index, false);
}
on_clicked() {
let ws = global.workspace_manager.get_workspace_by_index(this._index);
if (ws)
ws.activate(global.get_current_time());
}
_syncTooltip() {
if (this.hover) {
this._tooltip.set({
text: Meta.prefs_get_workspace_name(this._index),
visible: true,
opacity: 0,
});
const [stageX, stageY] = this.get_transformed_position();
const thumbWidth = this.allocation.get_width();
const thumbHeight = this.allocation.get_height();
const tipWidth = this._tooltip.width;
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
const monitor = Main.layoutManager.findMonitorForActor(this);
const x = Math.clamp(
stageX + xOffset,
monitor.x,
monitor.x + monitor.width - tipWidth);
const y = stageY + thumbHeight + TOOLTIP_OFFSET;
this._tooltip.set_position(x, y);
}
this._tooltip.ease({
opacity: this.hover ? 255 : 0,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this._tooltip.visible = this.hover),
});
}
_onDestroy() {
this._tooltip.destroy();
}
}
class WorkspaceIndicator extends PanelMenu.Button {
static {
GObject.registerClass(this);
}
constructor() {
super(0.5, _('Workspace Indicator'));
let container = new St.Widget({
layout_manager: new Clutter.BinLayout(),
x_expand: true,
y_expand: true,
});
this.add_child(container);
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._statusLabel = new St.Label({
style_class: 'panel-workspace-indicator',
y_align: Clutter.ActorAlign.CENTER,
text: this._labelText(),
});
container.add_child(this._statusLabel);
this._thumbnailsBox = new St.BoxLayout({
style_class: 'panel-workspace-indicator-box',
y_expand: true,
reactive: true,
});
container.add_child(this._thumbnailsBox);
this._workspacesItems = [];
this._workspaceSection = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(this._workspaceSection);
workspaceManager.connectObject(
'notify::n-workspaces', this._nWorkspacesChanged.bind(this), GObject.ConnectFlags.AFTER,
'workspace-switched', this._onWorkspaceSwitched.bind(this), GObject.ConnectFlags.AFTER,
'notify::layout-rows', this._updateThumbnailVisibility.bind(this),
this);
this.connect('scroll-event', this._onScrollEvent.bind(this));
this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this));
this._createWorkspacesSection();
this._updateThumbnails();
this._updateThumbnailVisibility();
this._settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
this._settings.connectObject(`changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this), this);
}
_onDestroy() {
Main.panel.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
super._onDestroy();
}
_updateThumbnailVisibility() {
const {workspaceManager} = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
this.reactive = useMenu;
this._statusLabel.visible = useMenu;
this._thumbnailsBox.visible = !useMenu;
// Disable offscreen-redirect when showing the workspace switcher
// so that clip-to-allocation works
Main.panel.set_offscreen_redirect(useMenu
? Clutter.OffscreenRedirect.ALWAYS
: Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY);
}
_onWorkspaceSwitched() {
this._currentWorkspace = global.workspace_manager.get_active_workspace_index();
this._updateMenuOrnament();
this._updateActiveThumbnail();
this._statusLabel.set_text(this._labelText());
}
_nWorkspacesChanged() {
this._createWorkspacesSection();
this._updateThumbnails();
this._updateThumbnailVisibility();
}
_updateMenuOrnament() {
for (let i = 0; i < this._workspacesItems.length; i++) {
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
? PopupMenu.Ornament.DOT
: PopupMenu.Ornament.NO_DOT);
}
}
_updateActiveThumbnail() {
let thumbs = this._thumbnailsBox.get_children();
for (let i = 0; i < thumbs.length; i++) {
if (i === this._currentWorkspace)
thumbs[i].add_style_class_name('active');
else
thumbs[i].remove_style_class_name('active');
}
}
_labelText(workspaceIndex) {
if (workspaceIndex === undefined) {
workspaceIndex = this._currentWorkspace;
return (workspaceIndex + 1).toString();
}
return Meta.prefs_get_workspace_name(workspaceIndex);
}
_updateMenuLabels() {
for (let i = 0; i < this._workspacesItems.length; i++)
this._workspacesItems[i].label.text = this._labelText(i);
}
_createWorkspacesSection() {
let workspaceManager = global.workspace_manager;
this._workspaceSection.removeAll();
this._workspacesItems = [];
this._currentWorkspace = workspaceManager.get_active_workspace_index();
let i = 0;
for (; i < workspaceManager.n_workspaces; i++) {
this._workspacesItems[i] = new PopupMenu.PopupMenuItem(this._labelText(i));
this._workspaceSection.addMenuItem(this._workspacesItems[i]);
this._workspacesItems[i].workspaceId = i;
this._workspacesItems[i].label_actor = this._statusLabel;
this._workspacesItems[i].connect('activate', (actor, _event) => {
this._activate(actor.workspaceId);
});
this._workspacesItems[i].setOrnament(i === this._currentWorkspace
? PopupMenu.Ornament.DOT
: PopupMenu.Ornament.NO_DOT);
}
this._statusLabel.set_text(this._labelText());
}
_updateThumbnails() {
let workspaceManager = global.workspace_manager;
this._thumbnailsBox.destroy_all_children();
for (let i = 0; i < workspaceManager.n_workspaces; i++) {
let thumb = new WorkspaceThumbnail(i);
this._thumbnailsBox.add_child(thumb);
}
this._updateActiveThumbnail();
}
_activate(index) {
let workspaceManager = global.workspace_manager;
if (index >= 0 && index < workspaceManager.n_workspaces) {
let metaWorkspace = workspaceManager.get_workspace_by_index(index);
metaWorkspace.activate(global.get_current_time());
}
}
_onScrollEvent(actor, event) {
let direction = event.get_scroll_direction();
let diff = 0;
if (direction === Clutter.ScrollDirection.DOWN)
diff = 1;
else if (direction === Clutter.ScrollDirection.UP)
diff = -1;
else
return;
let newIndex = global.workspace_manager.get_active_workspace_index() + diff;
this._activate(newIndex);
}
}
export default class WorkspaceIndicatorExtension extends Extension { export default class WorkspaceIndicatorExtension extends Extension {
enable() { enable() {
this._indicator = new WorkspaceIndicator({ this._indicator = new WorkspaceIndicator();
settings: this.getSettings(),
});
Main.panel.addToStatusArea('workspace-indicator', this._indicator); Main.panel.addToStatusArea('workspace-indicator', this._indicator);
} }

View File

@@ -7,10 +7,6 @@ extension_data += configure_file(
output: metadata_name, output: metadata_name,
configuration: metadata_conf configuration: metadata_conf
) )
extension_data += files( extension_data += files('stylesheet.css')
'stylesheet-dark.css',
'stylesheet-light.css',
)
extension_schemas += files('schemas/' + metadata_conf.get('gschemaname') + '.gschema.xml')
extension_sources += files('prefs.js', 'workspaceIndicator.js') extension_sources += files('prefs.js')

View File

@@ -3,7 +3,6 @@
// //
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
import Adw from 'gi://Adw'; import Adw from 'gi://Adw';
import Gio from 'gi://Gio'; import Gio from 'gi://Gio';
import GLib from 'gi://GLib'; import GLib from 'gi://GLib';
@@ -18,25 +17,6 @@ const N_ = e => e;
const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences'; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences';
const WORKSPACE_KEY = 'workspace-names'; const WORKSPACE_KEY = 'workspace-names';
class GeneralGroup extends Adw.PreferencesGroup {
static {
GObject.registerClass(this);
}
constructor(settings) {
super();
const row = new Adw.SwitchRow({
title: _('Show Previews In Top Bar'),
});
this.add(row);
settings.bind('embed-previews',
row, 'active',
Gio.SettingsBindFlags.DEFAULT);
}
}
class NewItem extends GObject.Object {} class NewItem extends GObject.Object {}
GObject.registerClass(NewItem); GObject.registerClass(NewItem);
@@ -138,7 +118,7 @@ class WorkspacesList extends GObject.Object {
} }
} }
class WorkspacesGroup extends Adw.PreferencesGroup { class WorkspaceSettingsWidget extends Adw.PreferencesGroup {
static { static {
GObject.registerClass(this); GObject.registerClass(this);
@@ -284,9 +264,6 @@ class NewWorkspaceRow extends Adw.PreferencesRow {
export default class WorkspaceIndicatorPrefs extends ExtensionPreferences { export default class WorkspaceIndicatorPrefs extends ExtensionPreferences {
getPreferencesWidget() { getPreferencesWidget() {
const page = new Adw.PreferencesPage(); return new WorkspaceSettingsWidget();
page.add(new GeneralGroup(this.getSettings()));
page.add(new WorkspacesGroup());
return page;
} }
} }

View File

@@ -1,15 +0,0 @@
<!--
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>

View File

@@ -1,76 +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
*/
.workspace-indicator .status-label {
padding: 0 8px;
}
.workspace-indicator .workspaces-view.hfade {
-st-hfade-offset: 20px;
}
.workspace-indicator-menu .workspaces-view {
max-width: 480px;
}
.workspace-indicator .workspaces-box {
spacing: 3px;
}
.workspace-indicator-menu .workspaces-box {
padding: 5px;
spacing: 6px;
}
.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-menu .workspace-box {
spacing: 6px;
}
.workspace-indicator-menu .workspace,
.workspace-indicator .workspace {
border: 1px solid transparent;
border-radius: 4px;
background-color: #3f3f3f;
}
.workspace-indicator .workspace {
width: 52px;
}
.workspace-indicator-menu .workspace {
height: 80px;
width: 160px;
}
.workspace-indicator-menu .workspace.active,
.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;
}

View File

@@ -1,25 +0,0 @@
/*
* 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 .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;
}

View File

@@ -0,0 +1,35 @@
/*
* 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;
}

View File

@@ -2,10 +2,11 @@
# #
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
project('gnome-shell-extensions', project(
version: '47.beta', 'gnome-shell-extensions',
version: '46.3',
meson_version: '>= 0.58.0', meson_version: '>= 0.58.0',
license: 'GPL2+' license: 'GPL-2.0-or-later',
) )
gettext_domain = meson.project_name() gettext_domain = meson.project_name()
@@ -34,7 +35,7 @@ classic_extensions = [
'apps-menu', 'apps-menu',
'places-menu', 'places-menu',
'launch-new-instance', 'launch-new-instance',
'window-list' 'window-list',
] ]
default_extensions = classic_extensions default_extensions = classic_extensions
@@ -42,18 +43,13 @@ default_extensions += [
'drive-menu', 'drive-menu',
'light-style', 'light-style',
'screenshot-window-sizer', 'screenshot-window-sizer',
'status-icons',
'system-monitor', 'system-monitor',
'windowsNavigator', 'windowsNavigator',
'workspace-indicator' 'workspace-indicator',
] ]
all_extensions = default_extensions all_extensions = default_extensions
all_extensions += [ all_extensions += ['auto-move-windows', 'native-window-placement', 'user-theme']
'auto-move-windows',
'native-window-placement',
'user-theme'
]
enabled_extensions = get_option('enable_extensions') enabled_extensions = get_option('enable_extensions')
@@ -72,11 +68,10 @@ endif
classic_mode_enabled = get_option('classic_mode') classic_mode_enabled = get_option('classic_mode')
if classic_mode_enabled 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 foreach e : classic_extensions
if not enabled_extensions.contains(e) if not enabled_extensions.contains(e)
error('Classic mode is enabled, ' + error(f'Classic mode is enabled, but the required extension @e@ is not')
'but the required extension @0@ is not.'.format(e))
endif endif
endforeach endforeach
endif endif
@@ -84,7 +79,7 @@ endif
# Sanity check: Make sure enabled extensions are valid # Sanity check: Make sure enabled extensions are valid
foreach e : enabled_extensions foreach e : enabled_extensions
if not all_extensions.contains(e) if not all_extensions.contains(e)
error('Invalid extension @0@.'.format(e)) error(f'Invalid extension @e@.')
endif endif
endforeach endforeach
@@ -92,24 +87,20 @@ if classic_mode_enabled
subdir('data') subdir('data')
meson.add_install_script( meson.add_install_script(
'meson/session-post-install.py', 'meson/session-post-install.py',
join_paths(get_option('prefix'), datadir) join_paths(get_option('prefix'), datadir),
) )
endif endif
subdir('extensions') subdir('extensions')
subdir('po') subdir('po')
gnome.post_install( gnome.post_install(glib_compile_schemas: true)
glib_compile_schemas: true,
)
meson.add_dist_script('meson/check-version.py', meson.add_dist_script('meson/check-version.py', meson.project_version(), 'NEWS')
meson.project_version(),
'NEWS')
summary_options = { summary_options = {
'extensions': enabled_extensions, 'extensions': enabled_extensions,
'classic_mode': get_option('classic_mode'), 'classic_mode': get_option('classic_mode'),
} }
summary_dirs = { summary_dirs = {

View File

@@ -6,7 +6,8 @@
import os, sys import os, sys
from pathlib import Path from pathlib import Path
import argparse, subprocess from xml.etree.ElementTree import ElementTree
import argparse
def check_version(version, file, type='news'): def check_version(version, file, type='news'):
if type == 'news': if type == 'news':
@@ -16,8 +17,11 @@ def check_version(version, file, type='news'):
if not ok: if not ok:
raise Exception("{} does not start with {}".format(file, version)) raise Exception("{} does not start with {}".format(file, version))
elif type == 'metainfo': elif type == 'metainfo':
subprocess.run(['appstream-util', 'validate-version', file, version], query = './releases/release[@version="{}"]'.format(version)
check=True) 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: else:
raise Exception('Not implemented') raise Exception('Not implemented')

View File

@@ -17,7 +17,7 @@ extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml
extensions/window-list/extension.js extensions/window-list/extension.js
extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml
extensions/window-list/prefs.js extensions/window-list/prefs.js
extensions/window-list/workspaceIndicator.js
extensions/windowsNavigator/extension.js extensions/windowsNavigator/extension.js
extensions/workspace-indicator/extension.js
extensions/workspace-indicator/prefs.js extensions/workspace-indicator/prefs.js
extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml
extensions/workspace-indicator/workspaceIndicator.js

205
po/bg.po
View File

@@ -1,24 +1,28 @@
# Bulgarian translation for gnome-shell-extensions po-file. # Bulgarian translation for gnome-shell-extensions po-file.
# Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc. # Copyright (C) 2014, 2015, 2017 Free Software Foundation, Inc.
# Copyright (C) 2021, 2022 Alexander Shopov <ash@kambanaria.org>. # Copyright (C) 2021, 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. # This file is distributed under the same license as the gnome-shell-extensions package.
# Ivaylo Valkov <ivaylo@e-valkov.org>, 2014. # Ivaylo Valkov <ivaylo@e-valkov.org>, 2014.
# Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021, 2022. # Alexander Shopov <ash@kambanaria.org>, 2014, 2015, 2021, 2022.
# Lyubomir Vasilev <lyubomirv@abv.bg>, 2017. # Lyubomir Vasilev <lyubomirv@abv.bg>, 2017.
# twlvnn kraftwerk <kraft_werk@tutanota.com>, 2024.
#
msgid "" msgid ""
msgstr "" 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/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2022-02-12 20:25+0000\n" "POT-Creation-Date: 2024-08-12 20:30+0000\n"
"PO-Revision-Date: 2022-02-13 11:40+0100\n" "PO-Revision-Date: 2024-09-02 10:45+0200\n"
"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" "Last-Translator: twlvnn kraftwerk <kraft_werk@tutanota.com>\n"
"Language-Team: Bulgarian <dict@fsa-bg.org>\n" "Language-Team: Bulgarian <dict@ludost.net>\n"
"Language: bg\n" "Language: bg\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n"
"X-Generator: Gtranslator 46.1\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -37,19 +41,19 @@ msgstr "Класически GNOME в Wayland"
msgid "GNOME Classic on Xorg" msgid "GNOME Classic on Xorg"
msgstr "Класически GNOME в Xorg" msgstr "Класически GNOME в Xorg"
#: extensions/apps-menu/extension.js:112 #: extensions/apps-menu/extension.js:126
msgid "Favorites" msgid "Favorites"
msgstr "Любими" msgstr "Любими"
#: extensions/apps-menu/extension.js:370 #: extensions/apps-menu/extension.js:400
msgid "Applications" msgid "Apps"
msgstr "Програми" 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" msgid "Application and workspace list"
msgstr "Списък с програмите и работните плотове" msgstr "Списък с програмите и работните плотове"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
msgid "" msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
@@ -57,34 +61,34 @@ msgstr ""
"Списък от низове. Всеки съдържа идентификатор на програма (име на файл „." "Списък от низове. Всеки съдържа идентификатор на програма (име на файл „."
"desktop“), следван от знака „:“ и номер на работен плот" "desktop“), следван от знака „:“ и номер на работен плот"
#: extensions/auto-move-windows/prefs.js:19 #: extensions/auto-move-windows/prefs.js:159
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Правила за работните плотове" msgstr "Правила за работните плотове"
#: extensions/auto-move-windows/prefs.js:245 #: extensions/auto-move-windows/prefs.js:314
msgid "Add Rule" msgid "Add Rule"
msgstr "Добавяне на правило" msgstr "Добавяне на правило"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:123 #: extensions/drive-menu/extension.js:123
#: extensions/places-menu/placeDisplay.js:210 #: extensions/places-menu/placeDisplay.js:218
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Неуспешно изваждане на устройство „%s“:" msgstr "Неуспешно изваждане на устройство „%s“:"
#: extensions/drive-menu/extension.js:139 #: extensions/drive-menu/extension.js:142
msgid "Removable devices" msgid "Removable devices"
msgstr "Преносими медии" msgstr "Преносими медии"
#: extensions/drive-menu/extension.js:161 #: extensions/drive-menu/extension.js:164
msgid "Open Files" msgid "Open Files"
msgstr "Отваряне на файлове" msgstr "Отваряне на файлове"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Повече пространство за прозорците" msgstr "Повече пространство за прозорците"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
@@ -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" msgid "Place window captions on top"
msgstr "Заглавия на прозорците отгоре" 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 "" msgid ""
"If true, place window captions on top the respective thumbnail, overriding " "If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
@@ -109,47 +113,119 @@ msgstr ""
"им, а не както е стандартно — отдолу. За прилагане на промяната на " "им, а не както е стандартно — отдолу. За прилагане на промяната на "
"настройката трябва да рестартирате обвивката на GNOME." "настройката трябва да рестартирате обвивката на GNOME."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:94
msgid "Places" msgid "Places"
msgstr "Места" msgstr "Места"
#: extensions/places-menu/placeDisplay.js:49 #: extensions/places-menu/placeDisplay.js:60
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Неуспешно стартиране на „%s“" msgstr "Неуспешно стартиране на „%s“"
#: extensions/places-menu/placeDisplay.js:64 #: extensions/places-menu/placeDisplay.js:75
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Неуспешно монтиране на тома „%s“" msgstr "Неуспешно монтиране на тома „%s“"
#: extensions/places-menu/placeDisplay.js:125 #: extensions/places-menu/placeDisplay.js:135
#: extensions/places-menu/placeDisplay.js:148 #: extensions/places-menu/placeDisplay.js:158
msgid "Computer" msgid "Computer"
msgstr "Компютър" msgstr "Компютър"
#: extensions/places-menu/placeDisplay.js:336 #: extensions/places-menu/placeDisplay.js:333
msgid "Home" msgid "Home"
msgstr "Домашна папка" msgstr "Домашна папка"
#: extensions/places-menu/placeDisplay.js:381 #: extensions/places-menu/placeDisplay.js:378
msgid "Browse Network" msgid "Browse Network"
msgstr "Мрежа" 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" msgid "Cycle Screenshot Sizes"
msgstr "Смяна на размерите на снимката на екрана" msgstr "Смяна на размерите на снимката на екрана"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Смяна на размерите на снимката на екрана наобратно" msgstr "Смяна на размерите на снимката на екрана наобратно"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 #: extensions/system-monitor/extension.js:135
msgid "CPU stats"
msgstr "Статистика на ЦП"
#: extensions/system-monitor/extension.js:159
msgid "Memory stats"
msgstr "Статистика на паметта"
#: extensions/system-monitor/extension.js:177
msgid "Swap stats"
msgstr "Статистика на виртуалната памет"
#: extensions/system-monitor/extension.js:336
msgid "Upload stats"
msgstr "Статистика на качване"
#: extensions/system-monitor/extension.js:350
msgid "Download stats"
msgstr "Статистика на изтегляне"
#: extensions/system-monitor/extension.js: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" msgid "Theme name"
msgstr "Име на темата" 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" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "" msgstr ""
"Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“" "Името на темата, която да бъде заредена от „~/.themes/name/gnome-shell“"
@@ -158,74 +234,74 @@ msgstr ""
msgid "Close" msgid "Close"
msgstr "Затваряне" msgstr "Затваряне"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:99
msgid "Unminimize" msgid "Unminimize"
msgstr "Деминимизиране" msgstr "Деминимизиране"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:99
msgid "Minimize" msgid "Minimize"
msgstr "Минимизиране" msgstr "Минимизиране"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:106
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Демаксимизиране" msgstr "Демаксимизиране"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:106
msgid "Maximize" msgid "Maximize"
msgstr "Максимизиране" msgstr "Максимизиране"
#: extensions/window-list/extension.js:434 #: extensions/window-list/extension.js:471
msgid "Minimize all" msgid "Minimize all"
msgstr "Минимизиране на всички" msgstr "Минимизиране на всички"
#: extensions/window-list/extension.js:440 #: extensions/window-list/extension.js:477
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Деминимизиране на всички" msgstr "Деминимизиране на всички"
#: extensions/window-list/extension.js:446 #: extensions/window-list/extension.js:483
msgid "Maximize all" msgid "Maximize all"
msgstr "Максимизиране на всички" msgstr "Максимизиране на всички"
#: extensions/window-list/extension.js:454 #: extensions/window-list/extension.js:491
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Демаксимизиране на всички" msgstr "Демаксимизиране на всички"
#: extensions/window-list/extension.js:462 #: extensions/window-list/extension.js:499
msgid "Close all" msgid "Close all"
msgstr "Затваряне на всички" msgstr "Затваряне на всички"
#: extensions/window-list/extension.js:741 #: extensions/window-list/extension.js:773
msgid "Window List" msgid "Window List"
msgstr "Списък на прозорците" 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" msgid "When to group windows"
msgstr "Кога прозорците да се групират" msgstr "Кога прозорците да се групират"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"Кога прозорците на една програма да се групират в списъка с прозорците. " "Кога прозорците на една програма да се групират в списъка с прозорците. "
"Възможните стойности са „never“ (никога), „auto“ (автоматично) и " "Възможните стойности са „never“ (никога), „auto“ (автоматично) и „always“ "
"„always“ (винаги)." "(винаги)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
#: extensions/window-list/prefs.js:76 #: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Да се показват прозорците от всички работни плотове" 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." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "" msgstr ""
"Дали да се показват прозорците от всички работни плотове или само от текущия." "Дали да се показват прозорците от всички работни плотове или само от текущия."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
msgid "Show the window list on all monitors" msgid "Show the window list on all monitors"
msgstr "Извеждане на списъка с прозорци на всички монитори" 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 "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
@@ -233,40 +309,43 @@ msgstr ""
"Дали списъкът с прозорци да се извежда на всички монитори или само на " "Дали списъкът с прозорци да се извежда на всички монитори или само на "
"основния" "основния"
#: extensions/window-list/prefs.js:32 #: extensions/window-list/prefs.js:35
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Групиране на прозорци" msgstr "Групиране на прозорци"
#: extensions/window-list/prefs.js:37 #: extensions/window-list/prefs.js:40
msgid "Never group windows" msgid "Never group windows"
msgstr "Никога да не се групират" msgstr "Никога да не се групират"
#: extensions/window-list/prefs.js:38 #: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited" msgid "Group windows when space is limited"
msgstr "Групиране при ограничено място" msgstr "Групиране при ограничено място"
#: extensions/window-list/prefs.js:39 #: extensions/window-list/prefs.js:42
msgid "Always group windows" msgid "Always group windows"
msgstr "Винаги да се групират" msgstr "Винаги да се групират"
#: extensions/window-list/prefs.js:63 #: extensions/window-list/prefs.js:66
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "На всички монитори" msgstr "На всички монитори"
#: extensions/window-list/workspaceIndicator.js:249 #: extensions/window-list/workspaceIndicator.js:255
#: extensions/workspace-indicator/extension.js:254 #: extensions/workspace-indicator/extension.js:261
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Индикатор на работните плотове" msgstr "Индикатор на работните плотове"
#: extensions/workspace-indicator/prefs.js:18 #: extensions/workspace-indicator/prefs.js:69
msgid "Workspace Names"
msgstr "Имена на работните плотове"
#: extensions/workspace-indicator/prefs.js:39
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Работен плот %d" msgstr "Работен плот %d"
#: extensions/workspace-indicator/prefs.js:184 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names"
msgstr "Имена на работните плотове"
#: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Добавяне на работен плот" msgstr "Добавяне на работен плот"
#~ msgid "Applications"
#~ msgstr "Програми"

119
po/ca.po
View File

@@ -1,25 +1,22 @@
# Catalan translation for gnome-shell-extensions. # Catalan translation for gnome-shell-extensions.
# Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package. # This file is distributed under the same license as the gnome-shell-extensions package.
# Jordi Mas i Hernandez <jmas@softcatala.org>, 2011. # Jordi Mas i Hernàndez <jmas@softcatala.org>, 2011, 2024
# Gil Forcada <gilforcada@guifi.net>, 2012, 2013, 2014. # Gil Forcada <gilforcada@guifi.net>, 2012, 2013, 2014.
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"issues\n" "POT-Creation-Date: 2024-05-23 16:39+0000\n"
"POT-Creation-Date: 2024-02-06 18:43+0000\n" "PO-Revision-Date: 2024-05-23 13:29+0100\n"
"PO-Revision-Date: 2024-04-24 22:52+0200\n" "Last-Translator: Jordi Mas i Hernàndez <jmas@softcatala.org>\n"
"Last-Translator: Jordi Mas <jmas@softcatala.org>\n"
"Language-Team: Catalan <tradgnome@softcatala.org>\n" "Language-Team: Catalan <tradgnome@softcatala.org>\n"
"Language: ca\n" "Language: ca\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-DamnedLies-Scope: partial\n"
"X-Generator: Poedit 2.4.2\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -42,7 +39,7 @@ msgstr "GNOME clàssic amb Xorg"
msgid "Favorites" msgid "Favorites"
msgstr "Preferides" msgstr "Preferides"
#: extensions/apps-menu/extension.js:397 #: extensions/apps-menu/extension.js:400
msgid "Apps" msgid "Apps"
msgstr "Aplicacions" msgstr "Aplicacions"
@@ -109,9 +106,9 @@ msgid ""
"restarting the shell to have any effect." "restarting the shell to have any effect."
msgstr "" msgstr ""
"Si és «true» (cert), posiciona el títol de la finestra damunt de la " "Si és «true» (cert), posiciona el títol de la finestra damunt de la "
"miniatura corresponent, substituint el comportament per defecte del Shell de " "miniatura corresponent, substituint el comportament per defecte del Shell de"
"posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi tingui " " posicionar-lo a baix. Cal reiniciar el Shell per tal que aquest canvi "
"efecte." "tingui efecte."
#: extensions/places-menu/extension.js:91 #: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:94 #: extensions/places-menu/extension.js:94
@@ -151,7 +148,7 @@ msgstr "Mostra cíclicament cap enrere mides de captura de pantalla"
#: extensions/system-monitor/extension.js:135 #: extensions/system-monitor/extension.js:135
msgid "CPU stats" msgid "CPU stats"
msgstr "Estadístiques de processador" msgstr "Estadístiques de la CPU"
#: extensions/system-monitor/extension.js:159 #: extensions/system-monitor/extension.js:159
msgid "Memory stats" msgid "Memory stats"
@@ -159,47 +156,67 @@ msgstr "Estadístiques de memòria"
#: extensions/system-monitor/extension.js:177 #: extensions/system-monitor/extension.js:177
msgid "Swap stats" msgid "Swap stats"
msgstr "Estadístiques del «swap»" msgstr "Estadístiques de l'intercanvi"
#: extensions/system-monitor/extension.js:327 #: extensions/system-monitor/extension.js:336
msgid "Upload stats" msgid "Upload stats"
msgstr "Estadístiques de pujada" msgstr "Estadístiques de pujada"
#: extensions/system-monitor/extension.js:341 #: extensions/system-monitor/extension.js:350
msgid "Download stats" msgid "Download stats"
msgstr "Estadístiques de descàrrega" msgstr "Estadístiques de baixada"
#: extensions/system-monitor/extension.js:355 #: extensions/system-monitor/extension.js:364
msgid "System stats" msgid "System stats"
msgstr "Estadístiques del sistema" msgstr "Estadístiques del sistema"
#: extensions/system-monitor/extension.js:403 #: extensions/system-monitor/extension.js:412
msgid "Show" msgid "Show"
msgstr "Mostra" msgstr "Mostra"
#: extensions/system-monitor/extension.js:405 #: extensions/system-monitor/extension.js:414
msgid "CPU" msgid "CPU"
msgstr "Processador" msgstr "CPU"
#: extensions/system-monitor/extension.js:407 #: extensions/system-monitor/extension.js:416
msgid "Memory" msgid "Memory"
msgstr "Memòria" msgstr "Memòria"
#: extensions/system-monitor/extension.js:409
msgid "Swap"
msgstr ""
#: extensions/system-monitor/extension.js:411
msgid "Upload"
msgstr "Pujades"
#: extensions/system-monitor/extension.js:413
msgid "Download"
msgstr "Descàrregues"
#: extensions/system-monitor/extension.js:418 #: extensions/system-monitor/extension.js:418
msgid "Swap"
msgstr "Intercanvi"
#: extensions/system-monitor/extension.js:420
msgid "Upload"
msgstr "Pujada"
#: extensions/system-monitor/extension.js:422
msgid "Download"
msgstr "Baixada"
#: extensions/system-monitor/extension.js:427
msgid "Open System Monitor" msgid "Open System Monitor"
msgstr "" msgstr "Obre el monitor del sistema"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
msgid "Show CPU usage"
msgstr "Mostra l'ús de la CPU"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
msgid "Show memory usage"
msgstr "Mostra l'ús de la memòria"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
msgid "Show swap usage"
msgstr "Mostra l'ús d'intercanvi"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
msgid "Show upload"
msgstr "Mostra la pujada"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
msgid "Show download"
msgstr "Mostra la baixada"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11 #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
msgid "Theme name" msgid "Theme name"
@@ -209,47 +226,47 @@ msgstr "Nom del tema"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell" msgstr "El nom del tema que es carregarà des de ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:71 #: extensions/window-list/extension.js:72
msgid "Close" msgid "Close"
msgstr "Tanca" msgstr "Tanca"
#: extensions/window-list/extension.js:98 #: extensions/window-list/extension.js:99
msgid "Unminimize" msgid "Unminimize"
msgstr "Desminimitza" msgstr "Desminimitza"
#: extensions/window-list/extension.js:98 #: extensions/window-list/extension.js:99
msgid "Minimize" msgid "Minimize"
msgstr "Minimitza" msgstr "Minimitza"
#: extensions/window-list/extension.js:105 #: extensions/window-list/extension.js:106
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Desmaximitza" msgstr "Desmaximitza"
#: extensions/window-list/extension.js:105 #: extensions/window-list/extension.js:106
msgid "Maximize" msgid "Maximize"
msgstr "Maximitza" msgstr "Maximitza"
#: extensions/window-list/extension.js:470 #: extensions/window-list/extension.js:471
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimitza-ho tot" msgstr "Minimitza-ho tot"
#: extensions/window-list/extension.js:476 #: extensions/window-list/extension.js:477
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Desminimitza-ho tot" msgstr "Desminimitza-ho tot"
#: extensions/window-list/extension.js:482 #: extensions/window-list/extension.js:483
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximitza-ho tot" msgstr "Maximitza-ho tot"
#: extensions/window-list/extension.js:490 #: extensions/window-list/extension.js:491
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Desmaximitza-ho tot" msgstr "Desmaximitza-ho tot"
#: extensions/window-list/extension.js:498 #: extensions/window-list/extension.js:499
msgid "Close all" msgid "Close all"
msgstr "Tanca-ho tot" msgstr "Tanca-ho tot"
#: extensions/window-list/extension.js:772 #: extensions/window-list/extension.js:773
msgid "Window List" msgid "Window List"
msgstr "Llista de finestres" msgstr "Llista de finestres"
@@ -263,8 +280,8 @@ msgid ""
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
msgstr "" msgstr ""
"Decideix quan s'han d'agrupar les finestres de la mateixa aplicació a la " "Decideix quan s'han d'agrupar les finestres de la mateixa aplicació a la "
"llista de finestres. Els valors possibles són: «never» (mai), " "llista de finestres. Els valors possibles són: «never» (mai), «auto» "
"«auto» (automàticament) i «always» (sempre)." "(automàticament) i «always» (sempre)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
#: extensions/window-list/prefs.js:79 #: extensions/window-list/prefs.js:79
@@ -309,8 +326,8 @@ msgstr "Agrupa les finestres sempre"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Mostra a tots els monitors" msgstr "Mostra a tots els monitors"
#: extensions/window-list/workspaceIndicator.js:253 #: extensions/window-list/workspaceIndicator.js:255
#: extensions/workspace-indicator/extension.js:259 #: extensions/workspace-indicator/extension.js:261
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicador de l'espai de treball" msgstr "Indicador de l'espai de treball"
@@ -327,5 +344,3 @@ msgstr "Noms dels espais de treball"
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Afegeix un espai de treball" msgstr "Afegeix un espai de treball"
#~ msgid "Applications"
#~ msgstr "Aplicacions"

187
po/el.po
View File

@@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2023-02-18 15:10+0000\n" "POT-Creation-Date: 2024-07-24 10:26+0000\n"
"PO-Revision-Date: 2023-08-01 23:41+0300\n" "PO-Revision-Date: 2024-08-12 23:29+0300\n"
"Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n" "Last-Translator: Efstathios Iosifidis <eiosifidis@gnome.org>\n"
"Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n" "Language-Team: Greek, Modern (1453-) <gnome-el-list@gnome.org>\n"
"Language: el\n" "Language: el\n"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.3.2\n" "X-Generator: Poedit 3.4.4\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 #: 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.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4 #: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic" msgid "This session logs you into GNOME Classic"
msgstr "Αυτή η συνεδρία σας συνδέει στο GNOME Classic" msgstr "Αυτή η συνεδρία σάς συνδέει στο GNOME Classic"
#: data/gnome-classic-wayland.desktop.in:3 #: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland" msgid "GNOME Classic on Wayland"
@@ -41,19 +41,19 @@ msgstr "GNOME Classic σε Wayland"
msgid "GNOME Classic on Xorg" msgid "GNOME Classic on Xorg"
msgstr "GNOME Classic σε Xorg" msgstr "GNOME Classic σε Xorg"
#: extensions/apps-menu/extension.js:118 #: extensions/apps-menu/extension.js:126
msgid "Favorites" msgid "Favorites"
msgstr "Αγαπημένα" msgstr "Αγαπημένα"
#: extensions/apps-menu/extension.js:380 #: extensions/apps-menu/extension.js:400
msgid "Applications" msgid "Apps"
msgstr "Εφαρμογές" 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" msgid "Application and workspace list"
msgstr "Λίστα εφαρμογών και χώρου εργασίας" msgstr "Λίστα εφαρμογών και χώρου εργασίας"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7 #: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:13
msgid "" msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
@@ -62,34 +62,34 @@ msgstr ""
"(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και " "(όνομα αρχείου επιφάνειας εργασίας), ακολουθούμενη από άνω-κάτω τελεία και "
"τον αριθμό του χώρου εργασίας" "τον αριθμό του χώρου εργασίας"
#: extensions/auto-move-windows/prefs.js:152 #: extensions/auto-move-windows/prefs.js:159
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Κανόνες χώρων εργασίας" msgstr "Κανόνες χώρων εργασίας"
#: extensions/auto-move-windows/prefs.js:306 #: extensions/auto-move-windows/prefs.js:314
msgid "Add Rule" msgid "Add Rule"
msgstr "Προσθήκη κανόνα" msgstr "Προσθήκη κανόνα"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126 #: extensions/drive-menu/extension.js:123
#: extensions/places-menu/placeDisplay.js:212 #: extensions/places-menu/placeDisplay.js:218
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Αποτυχία εξαγωγής του δίσκου «%s»:" msgstr "Αποτυχία εξαγωγής του δίσκου «%s»:"
#: extensions/drive-menu/extension.js:145 #: extensions/drive-menu/extension.js:142
msgid "Removable devices" msgid "Removable devices"
msgstr "Αφαιρούμενες συσκευές" msgstr "Αφαιρούμενες συσκευές"
#: extensions/drive-menu/extension.js:167 #: extensions/drive-menu/extension.js:164
msgid "Open Files" msgid "Open Files"
msgstr "Άνοιγμα αρχείων" msgstr "Άνοιγμα αρχείων"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Use more screen for windows" msgid "Use more screen for windows"
msgstr "Χρησιμοποιήστε περισσότερη οθόνη για τα παράθυρα" msgstr "Χρησιμοποιήστε περισσότερη οθόνη για τα παράθυρα"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
msgid "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
@@ -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" msgid "Place window captions on top"
msgstr "Τοποθέτηση τίτλων παράθυρου στην κορυφή" 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 "" msgid ""
"If true, place window captions on top the respective thumbnail, overriding " "If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires " "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:94
#: extensions/places-menu/extension.js:97
msgid "Places" msgid "Places"
msgstr "Τοποθεσίες" msgstr "Τοποθεσίες"
#: extensions/places-menu/placeDisplay.js:52 #: extensions/places-menu/placeDisplay.js:60
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Αποτυχία εκκίνησης «%s»" msgstr "Αποτυχία εκκίνησης «%s»"
#: extensions/places-menu/placeDisplay.js:67 #: extensions/places-menu/placeDisplay.js:75
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Αποτυχία προσάρτησης τόμου για «%s»" msgstr "Αποτυχία προσάρτησης τόμου για «%s»"
#: extensions/places-menu/placeDisplay.js:127 #: extensions/places-menu/placeDisplay.js:135
#: extensions/places-menu/placeDisplay.js:150 #: extensions/places-menu/placeDisplay.js:158
msgid "Computer" msgid "Computer"
msgstr "Υπολογιστής" msgstr "Υπολογιστής"
#: extensions/places-menu/placeDisplay.js:340 #: extensions/places-menu/placeDisplay.js:333
msgid "Home" msgid "Home"
msgstr "Προσωπικός φάκελος" msgstr "Προσωπικός φάκελος"
#: extensions/places-menu/placeDisplay.js:385 #: extensions/places-menu/placeDisplay.js:378
msgid "Browse Network" msgid "Browse Network"
msgstr "Περιήγηση δικτύου" 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" msgid "Cycle Screenshot Sizes"
msgstr "Περιδιάβαση τα μεγέθη των στιγμιοτύπων" msgstr "Περιδιάβαση τα μεγέθη των στιγμιοτύπων"
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:18
msgid "Cycle Screenshot Sizes Backward" msgid "Cycle Screenshot Sizes Backward"
msgstr "Μεγέθη κυκλικών στιγμιοτύπων προς τα πίσω" msgstr "Μεγέθη κυκλικών στιγμιοτύπων προς τα πίσω"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 #: extensions/system-monitor/extension.js:135
msgid "CPU stats"
msgstr "Στατιστικά 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" msgid "Theme name"
msgstr "Όνομα θέματος" 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" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "" msgstr ""
"Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell" "Το όνομα του θέματος που θα φορτωθεί από το ~ /.themes/name/gnome-shell"
@@ -164,51 +236,51 @@ msgstr ""
msgid "Close" msgid "Close"
msgstr "Κλείσιμο" msgstr "Κλείσιμο"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:99
msgid "Unminimize" msgid "Unminimize"
msgstr "Αποελαχιστοποίηση" msgstr "Αποελαχιστοποίηση"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:99
msgid "Minimize" msgid "Minimize"
msgstr "Ελαχιστοποίηση" msgstr "Ελαχιστοποίηση"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:106
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Απομεγιστοποίηση" msgstr "Απομεγιστοποίηση"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:106
msgid "Maximize" msgid "Maximize"
msgstr "Μεγιστοποίηση" msgstr "Μεγιστοποίηση"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:471
msgid "Minimize all" msgid "Minimize all"
msgstr "Ελαχιστοποίηση όλων" msgstr "Ελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:489 #: extensions/window-list/extension.js:477
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Αποελαχιστοποίηση όλων" msgstr "Αποελαχιστοποίηση όλων"
#: extensions/window-list/extension.js:495 #: extensions/window-list/extension.js:483
msgid "Maximize all" msgid "Maximize all"
msgstr "Μεγιστοποίηση όλων" msgstr "Μεγιστοποίηση όλων"
#: extensions/window-list/extension.js:503 #: extensions/window-list/extension.js:491
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Απομεγιστοποίηση όλων" msgstr "Απομεγιστοποίηση όλων"
#: extensions/window-list/extension.js:511 #: extensions/window-list/extension.js:499
msgid "Close all" msgid "Close all"
msgstr "Κλείσιμο όλων" msgstr "Κλείσιμο όλων"
#: extensions/window-list/extension.js:795 #: extensions/window-list/extension.js:773
msgid "Window List" msgid "Window List"
msgstr "Λίστα παραθύρου" 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" msgid "When to group windows"
msgstr "Πότε θα ομαδοποιούνται τα παράθυρα" msgstr "Πότε θα ομαδοποιούνται τα παράθυρα"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:19
msgid "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
@@ -217,21 +289,21 @@ msgstr ""
"παραθύρου. Δυνατές τιμές είναι «never» (ποτέ), «auto» (αυτόματα) και " "παραθύρου. Δυνατές τιμές είναι «never» (ποτέ), «auto» (αυτόματα) και "
"«always» (πάντα)." "«always» (πάντα)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
#: extensions/window-list/prefs.js:79 #: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Εμφάνιση των παραθύρων από όλους τους χώρους εργασίας" 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." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "" msgstr ""
"Αν θα εμφανίζονται παράθυρα όλων των χώρων εργασίας ή μόνο του τρέχοντα." "Αν θα εμφανίζονται παράθυρα όλων των χώρων εργασίας ή μόνο του τρέχοντα."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:33
msgid "Show the window list on all monitors" msgid "Show the window list on all monitors"
msgstr "Να εμφανίζεται ο κατάλογος παραθύρων σε όλες τις οθόνες" 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 "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
@@ -259,24 +331,27 @@ msgstr "Να γίνεται πάντα ομαδοποίηση παραθύρων
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Να εμφανίζεται σε όλες τις οθόνες" msgstr "Να εμφανίζεται σε όλες τις οθόνες"
#: extensions/window-list/workspaceIndicator.js:261 #: extensions/window-list/workspaceIndicator.js:255
#: extensions/workspace-indicator/extension.js:266 #: extensions/workspace-indicator/extension.js:261
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Δείκτης χώρου εργασίας" msgstr "Δείκτης χώρου εργασίας"
#: extensions/workspace-indicator/prefs.js:62 #: extensions/workspace-indicator/prefs.js:69
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Χώρος εργασίας %d" msgstr "Χώρος εργασίας %d"
#: extensions/workspace-indicator/prefs.js:129 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Ονόματα χώρων εργασίας" msgstr "Ονόματα χώρων εργασίας"
#: extensions/workspace-indicator/prefs.js:255 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Προσθήκη χώρου εργασίας" msgstr "Προσθήκη χώρου εργασίας"
#~ msgid "Applications"
#~ msgstr "Εφαρμογές"
#~ msgid "Application" #~ msgid "Application"
#~ msgstr "Εφαρμογή" #~ msgstr "Εφαρμογή"
@@ -362,12 +437,6 @@ msgstr "Προσθήκη χώρου εργασίας"
#~ "λειτουργικότητα από μόνο του.\n" #~ "λειτουργικότητα από μόνο του.\n"
#~ "Παρ' όλα αυτά είναι δυνατό να προσαρμόσετε το μήνυμα χαιρετισμού." #~ "Παρ' όλα αυτά είναι δυνατό να προσαρμόσετε το μήνυμα χαιρετισμού."
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid "Memory"
#~ msgstr "Μνήμη"
#~ msgid "GNOME Shell Classic" #~ msgid "GNOME Shell Classic"
#~ msgstr "GNOME Shell Classic" #~ msgstr "GNOME Shell Classic"
@@ -418,8 +487,8 @@ msgstr "Προσθήκη χώρου εργασίας"
#~ msgid "" #~ msgid ""
#~ "Configures how the windows are shown in the switcher. Valid possibilities " #~ "Configures how the windows are shown in the switcher. Valid possibilities "
#~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-" #~ "are 'thumbnail-only' (shows a thumbnail of the window), 'app-icon-only' "
#~ "only' (shows only the application icon) or 'both'." #~ "(shows only the application icon) or 'both'."
#~ msgstr "" #~ msgstr ""
#~ "Διαμορφώνει πως τα παράθυρα θα εμφανίζονται στν εναλλαγή των παραθύρων. " #~ "Διαμορφώνει πως τα παράθυρα θα εμφανίζονται στν εναλλαγή των παραθύρων. "
#~ "Έγκυρες ρυθμίσεις είναι 'thumbnail-only' (εμφανίζει μια μικρογραφία του " #~ "Έγκυρες ρυθμίσεις είναι 'thumbnail-only' (εμφανίζει μια μικρογραφία του "

View File

@@ -9,17 +9,17 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2024-04-29 15:27+0000\n" "POT-Creation-Date: 2024-02-06 18:43+0000\n"
"PO-Revision-Date: 2024-06-28 10:34+0300\n" "PO-Revision-Date: 2024-02-17 00:11+0200\n"
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n" "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
"Language-Team: Hebrew <yoseforb@gmail.com>\n" "Language-Team: Hebrew <yoseforb@gmail.com>\n"
"Language: he\n" "Language: he\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2\n" "Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n>2||n==0) ? 1 : 2;\n"
"X-Poedit-SourceCharset: UTF-8\n" "X-Poedit-SourceCharset: UTF-8\n"
"X-Generator: Gtranslator 46.1\n" "X-Generator: Poedit 3.4.1\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -42,7 +42,7 @@ msgstr "GNOME קלסי על גבי Xorg"
msgid "Favorites" msgid "Favorites"
msgstr "מועדפים" msgstr "מועדפים"
#: extensions/apps-menu/extension.js:400 #: extensions/apps-menu/extension.js:397
msgid "Apps" msgid "Apps"
msgstr "יישומים" msgstr "יישומים"
@@ -157,43 +157,43 @@ msgstr "סטטיסטיקת זיכרון"
msgid "Swap stats" msgid "Swap stats"
msgstr "סטטיסטיקת תחלופה" msgstr "סטטיסטיקת תחלופה"
#: extensions/system-monitor/extension.js:336 #: extensions/system-monitor/extension.js:327
msgid "Upload stats" msgid "Upload stats"
msgstr "סטטיסטיקת העלאה" msgstr "סטטיסטיקת העלאה"
#: extensions/system-monitor/extension.js:350 #: extensions/system-monitor/extension.js:341
msgid "Download stats" msgid "Download stats"
msgstr "סטטיסטיקת הורדה" msgstr "סטטיסטיקת הורדה"
#: extensions/system-monitor/extension.js:364 #: extensions/system-monitor/extension.js:355
msgid "System stats" msgid "System stats"
msgstr "סטטיסטיקת מערכת" msgstr "סטטיסטיקת מערכת"
#: extensions/system-monitor/extension.js:412 #: extensions/system-monitor/extension.js:403
msgid "Show" msgid "Show"
msgstr "הצגה" msgstr "הצגה"
#: extensions/system-monitor/extension.js:414 #: extensions/system-monitor/extension.js:405
msgid "CPU" msgid "CPU"
msgstr "מעבד" msgstr "מעבד"
#: extensions/system-monitor/extension.js:416 #: extensions/system-monitor/extension.js:407
msgid "Memory" msgid "Memory"
msgstr "זיכרון" msgstr "זיכרון"
#: extensions/system-monitor/extension.js:418 #: extensions/system-monitor/extension.js:409
msgid "Swap" msgid "Swap"
msgstr "תחלופה" msgstr "תחלופה"
#: extensions/system-monitor/extension.js:420 #: extensions/system-monitor/extension.js:411
msgid "Upload" msgid "Upload"
msgstr "העלאה" msgstr "העלאה"
#: extensions/system-monitor/extension.js:422 #: extensions/system-monitor/extension.js:413
msgid "Download" msgid "Download"
msgstr "הורדה" msgstr "הורדה"
#: extensions/system-monitor/extension.js:427 #: extensions/system-monitor/extension.js:418
msgid "Open System Monitor" msgid "Open System Monitor"
msgstr "פתיחת צג המערכת" msgstr "פתיחת צג המערכת"
@@ -225,47 +225,47 @@ msgstr "Theme name"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgstr "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:71
msgid "Close" msgid "Close"
msgstr "סגירה" msgstr "סגירה"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Unminimize" msgid "Unminimize"
msgstr "ביטול המזעור" msgstr "ביטול המזעור"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Minimize" msgid "Minimize"
msgstr "מזעור" msgstr "מזעור"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Unmaximize" msgid "Unmaximize"
msgstr "ביטול ההגדלה" msgstr "ביטול ההגדלה"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Maximize" msgid "Maximize"
msgstr "הגדלה" msgstr "הגדלה"
#: extensions/window-list/extension.js:471 #: extensions/window-list/extension.js:470
msgid "Minimize all" msgid "Minimize all"
msgstr "מזעור הכל" msgstr "מזעור הכל"
#: extensions/window-list/extension.js:477 #: extensions/window-list/extension.js:476
msgid "Unminimize all" msgid "Unminimize all"
msgstr "ביטול מזעור הכל" msgstr "ביטול מזעור הכל"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:482
msgid "Maximize all" msgid "Maximize all"
msgstr "הגדלת הכל" msgstr "הגדלת הכל"
#: extensions/window-list/extension.js:491 #: extensions/window-list/extension.js:490
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "ביטול הגדלת הכל" msgstr "ביטול הגדלת הכל"
#: extensions/window-list/extension.js:499 #: extensions/window-list/extension.js:498
msgid "Close all" msgid "Close all"
msgstr "סגירת הכל" msgstr "סגירת הכל"
#: extensions/window-list/extension.js:778 #: extensions/window-list/extension.js:772
msgid "Window List" msgid "Window List"
msgstr "רשימת חלונות" msgstr "רשימת חלונות"
@@ -302,10 +302,6 @@ msgstr ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
msgid "Show workspace previews in window list"
msgstr "הצגת תצוגה מקדימה של מרחבי העבודה ברשימת החלונות"
#: extensions/window-list/prefs.js:35 #: extensions/window-list/prefs.js:35
msgid "Window Grouping" msgid "Window Grouping"
msgstr "קיבוץ חלונות" msgstr "קיבוץ חלונות"
@@ -326,35 +322,24 @@ msgstr "תמיד לקבץ חלונות"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "הצגה בכל הצגים" msgstr "הצגה בכל הצגים"
#: extensions/window-list/prefs.js:92 #: extensions/window-list/workspaceIndicator.js:253
msgid "Show workspace previews" #: extensions/workspace-indicator/extension.js:259
msgstr "הצגת תצוגה מקדימה של מרחבי העבודה" msgid "Workspace Indicator"
msgstr "מחוון מרחבי עבודה"
#: extensions/workspace-indicator/prefs.js:30 #: extensions/workspace-indicator/prefs.js:69
msgid "Show Previews In Top Bar"
msgstr "הצגת תצוגה מקדימה בלוח העליון"
#: extensions/workspace-indicator/prefs.js:88
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "מרחב עבודה %d" msgstr "מרחב עבודה %d"
#: extensions/workspace-indicator/prefs.js:155 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "שם מרחב העבודה" msgstr "שם מרחב העבודה"
#: extensions/workspace-indicator/prefs.js:281 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "הוספת מרחב עבודה" 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" #~ msgid "Applications"
#~ msgstr "יישומים" #~ msgstr "יישומים"

View File

@@ -10,8 +10,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2024-05-12 13:45+0000\n" "POT-Creation-Date: 2024-04-29 14:28+0000\n"
"PO-Revision-Date: 2024-05-14 15:33+0530\n" "PO-Revision-Date: 2024-05-14 15:40+0530\n"
"Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n" "Last-Translator: Scrambled777 <weblate.scrambled777@simplelogin.com>\n"
"Language-Team: Hindi <indlinux-hindi@lists.sourceforge.net>\n" "Language-Team: Hindi <indlinux-hindi@lists.sourceforge.net>\n"
"Language: hi\n" "Language: hi\n"
@@ -42,7 +42,7 @@ msgstr "Xorg पर GNOME क्लासिक"
msgid "Favorites" msgid "Favorites"
msgstr "पसंदीदा" msgstr "पसंदीदा"
#: extensions/apps-menu/extension.js:400 #: extensions/apps-menu/extension.js:397
msgid "Apps" msgid "Apps"
msgstr "ऐप्स" msgstr "ऐप्स"
@@ -264,7 +264,7 @@ msgstr "अधिकतम खत्म करें"
msgid "Close all" msgid "Close all"
msgstr "सभी बंद करें" msgstr "सभी बंद करें"
#: extensions/window-list/extension.js:778 #: extensions/window-list/extension.js:773
msgid "Window List" msgid "Window List"
msgstr "विंडो सूची" msgstr "विंडो सूची"
@@ -300,10 +300,6 @@ msgid ""
msgstr "" msgstr ""
"क्या विंडो सूची को सभी जुड़े हुए मॉनिटरों पर दिखाना है या केवल प्राथमिक मॉनिटर पर।" "क्या विंडो सूची को सभी जुड़े हुए मॉनिटरों पर दिखाना है या केवल प्राथमिक मॉनिटर पर।"
#: 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 #: extensions/window-list/prefs.js:35
msgid "Window Grouping" msgid "Window Grouping"
msgstr "विंडो समूहबद्धता" msgstr "विंडो समूहबद्धता"
@@ -324,31 +320,20 @@ msgstr "हमेशा विंडोज समूहित करें"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "सभी मॉनिटरों पर दिखाएं" msgstr "सभी मॉनिटरों पर दिखाएं"
#: extensions/window-list/prefs.js:92 #: extensions/window-list/workspaceIndicator.js:255
msgid "Show workspace previews" #: extensions/workspace-indicator/extension.js:261
msgstr "कार्यस्थान पूर्वावलोकन दिखाएं" msgid "Workspace Indicator"
msgstr "कार्यस्थान सूचक"
#: extensions/workspace-indicator/prefs.js:30 #: extensions/workspace-indicator/prefs.js:69
msgid "Show Previews In Top Bar"
msgstr "शीर्षपट्टी में पूर्वावलोकन दिखाएं"
#: extensions/workspace-indicator/prefs.js:88
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "कार्यस्थान %d" msgstr "कार्यस्थान %d"
#: extensions/workspace-indicator/prefs.js:155 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "कार्यस्थान नाम" msgstr "कार्यस्थान नाम"
#: extensions/workspace-indicator/prefs.js:281 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "कार्यस्थान जोड़ें" 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 "कार्यस्थान सूचक"

View File

@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is"
"sues\n" "sues\n"
"POT-Creation-Date: 2024-04-29 15:27+0000\n" "POT-Creation-Date: 2024-02-06 18:43+0000\n"
"PO-Revision-Date: 2024-06-28 16:24+0200\n" "PO-Revision-Date: 2024-03-04 12:30+0100\n"
"Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n" "Last-Translator: Balázs Úr <ur.balazs at fsf dot hu>\n"
"Language-Team: Hungarian <openscope at fsf dot hu>\n" "Language-Team: Hungarian <openscope at fsf dot hu>\n"
"Language: hu\n" "Language: hu\n"
@@ -43,7 +43,7 @@ msgstr "Klasszikus GNOME Xorgon"
msgid "Favorites" msgid "Favorites"
msgstr "Kedvencek" msgstr "Kedvencek"
#: extensions/apps-menu/extension.js:400 #: extensions/apps-menu/extension.js:397
msgid "Apps" msgid "Apps"
msgstr "Alkalmazások" msgstr "Alkalmazások"
@@ -159,43 +159,43 @@ msgstr "Memóriastatisztikák"
msgid "Swap stats" msgid "Swap stats"
msgstr "Cserehely-statisztikák" msgstr "Cserehely-statisztikák"
#: extensions/system-monitor/extension.js:336 #: extensions/system-monitor/extension.js:327
msgid "Upload stats" msgid "Upload stats"
msgstr "Feltöltési statisztikák" msgstr "Feltöltési statisztikák"
#: extensions/system-monitor/extension.js:350 #: extensions/system-monitor/extension.js:341
msgid "Download stats" msgid "Download stats"
msgstr "Letöltési statisztikák" msgstr "Letöltési statisztikák"
#: extensions/system-monitor/extension.js:364 #: extensions/system-monitor/extension.js:355
msgid "System stats" msgid "System stats"
msgstr "Rendszerstatisztikák" msgstr "Rendszerstatisztikák"
#: extensions/system-monitor/extension.js:412 #: extensions/system-monitor/extension.js:403
msgid "Show" msgid "Show"
msgstr "Megjelenítés" msgstr "Megjelenítés"
#: extensions/system-monitor/extension.js:414 #: extensions/system-monitor/extension.js:405
msgid "CPU" msgid "CPU"
msgstr "Processzor" msgstr "Processzor"
#: extensions/system-monitor/extension.js:416 #: extensions/system-monitor/extension.js:407
msgid "Memory" msgid "Memory"
msgstr "Memória" msgstr "Memória"
#: extensions/system-monitor/extension.js:418 #: extensions/system-monitor/extension.js:409
msgid "Swap" msgid "Swap"
msgstr "Cserehely" msgstr "Cserehely"
#: extensions/system-monitor/extension.js:420 #: extensions/system-monitor/extension.js:411
msgid "Upload" msgid "Upload"
msgstr "Feltöltés" msgstr "Feltöltés"
#: extensions/system-monitor/extension.js:422 #: extensions/system-monitor/extension.js:413
msgid "Download" msgid "Download"
msgstr "Letöltés" msgstr "Letöltés"
#: extensions/system-monitor/extension.js:427 #: extensions/system-monitor/extension.js:418
msgid "Open System Monitor" msgid "Open System Monitor"
msgstr "Rendszerfigyelő megnyitása" msgstr "Rendszerfigyelő megnyitása"
@@ -227,47 +227,47 @@ msgstr "Témanév"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "A ~/.themes/név/gnome-shell alól betöltendő téma neve" msgstr "A ~/.themes/név/gnome-shell alól betöltendő téma neve"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:71
msgid "Close" msgid "Close"
msgstr "Bezárás" msgstr "Bezárás"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Unminimize" msgid "Unminimize"
msgstr "Minimalizálás megszüntetése" msgstr "Minimalizálás megszüntetése"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Minimize" msgid "Minimize"
msgstr "Minimalizálás" msgstr "Minimalizálás"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Maximalizálás megszüntetése" msgstr "Maximalizálás megszüntetése"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Maximize" msgid "Maximize"
msgstr "Maximalizálás" msgstr "Maximalizálás"
#: extensions/window-list/extension.js:471 #: extensions/window-list/extension.js:470
msgid "Minimize all" msgid "Minimize all"
msgstr "Minden minimalizálása" msgstr "Minden minimalizálása"
#: extensions/window-list/extension.js:477 #: extensions/window-list/extension.js:476
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Minden minimalizálásának megszüntetése" msgstr "Minden minimalizálásának megszüntetése"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:482
msgid "Maximize all" msgid "Maximize all"
msgstr "Minden maximalizálása" msgstr "Minden maximalizálása"
#: extensions/window-list/extension.js:491 #: extensions/window-list/extension.js:490
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Minden maximalizálásának megszüntetése" msgstr "Minden maximalizálásának megszüntetése"
#: extensions/window-list/extension.js:499 #: extensions/window-list/extension.js:498
msgid "Close all" msgid "Close all"
msgstr "Minden bezárása" msgstr "Minden bezárása"
#: extensions/window-list/extension.js:778 #: extensions/window-list/extension.js:772
msgid "Window List" msgid "Window List"
msgstr "Ablaklista" msgstr "Ablaklista"
@@ -307,10 +307,6 @@ msgstr ""
"Megjelenjen-e az ablaklista minden csatlakoztatott monitoron vagy csak az " "Megjelenjen-e az ablaklista minden csatlakoztatott monitoron vagy csak az "
"elsődlegesen." "elsődlegesen."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
msgid "Show workspace previews in window list"
msgstr "Munkaterület-előnézetek megjelenítése az ablaklistában"
#: extensions/window-list/prefs.js:35 #: extensions/window-list/prefs.js:35
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Ablakcsoportosítás" msgstr "Ablakcsoportosítás"
@@ -331,32 +327,20 @@ msgstr "Mindig csoportosítsa az ablakokat"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Megjelenítés minden monitoron" msgstr "Megjelenítés minden monitoron"
#: extensions/window-list/prefs.js:92 #: extensions/window-list/workspaceIndicator.js:253
msgid "Show workspace previews" #: extensions/workspace-indicator/extension.js:259
msgstr "Munkaterület-előnézetek megjelenítése" msgid "Workspace Indicator"
msgstr "Munkaterület-indikátor"
#: extensions/workspace-indicator/prefs.js:30 #: extensions/workspace-indicator/prefs.js:69
msgid "Show Previews In Top Bar"
msgstr "Előnézetek megjelenítése a felső sávon"
#: extensions/workspace-indicator/prefs.js:88
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "%d. munkaterület" msgstr "%d. munkaterület"
#: extensions/workspace-indicator/prefs.js:155 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Munkaterületnevek" msgstr "Munkaterületnevek"
#: extensions/workspace-indicator/prefs.js:281 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Munkaterület hozzáadása" msgstr "Munkaterület hozzáadása"
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
msgid "Show workspace previews in top bar"
msgstr "Munkaterület-előnézetek megjelenítése a felső sávon"
#: extensions/workspace-indicator/workspaceIndicator.js:430
msgid "Workspace Indicator"
msgstr "Munkaterület-indikátor"

181
po/ro.po
View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2023-02-18 15:10+0000\n" "POT-Creation-Date: 2024-04-29 14:28+0000\n"
"PO-Revision-Date: 2023-07-29 13:49+0300\n" "PO-Revision-Date: 2024-08-04 13:22+0300\n"
"Last-Translator: Florentina Mușat <florentina [dot] musat [dot] 28 [at] " "Last-Translator: Florentina Mușat <florentina [dot] musat [dot] 28 [at] "
"gmail [dot] com>\n" "gmail [dot] com>\n"
"Language-Team: Gnome Romanian Translation Team\n" "Language-Team: Gnome Romanian Translation Team\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < " "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2);;\n" "20)) ? 1 : 2);;\n"
"X-Generator: Poedit 3.3.2\n" "X-Generator: Poedit 3.4.4\n"
"X-Project-Style: gnome\n" "X-Project-Style: gnome\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
@@ -39,19 +39,19 @@ msgstr "GNOME Clasic pe Wayland"
msgid "GNOME Classic on Xorg" msgid "GNOME Classic on Xorg"
msgstr "GNOME Clasic pe Xorg" msgstr "GNOME Clasic pe Xorg"
#: extensions/apps-menu/extension.js:118 #: extensions/apps-menu/extension.js:126
msgid "Favorites" msgid "Favorites"
msgstr "Favorite" msgstr "Favorite"
#: extensions/apps-menu/extension.js:380 #: extensions/apps-menu/extension.js:397
msgid "Applications" msgid "Apps"
msgstr "Aplicații" msgstr "Aplicații"
#: 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" msgid "Application and workspace list"
msgstr "Lista de aplicații și spații de lucru" msgstr "Lista de aplicații și spații de lucru"
#: 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 "" msgid ""
"A list of strings, each containing an application id (desktop file name), " "A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number" "followed by a colon and the workspace number"
@@ -60,34 +60,34 @@ msgstr ""
"fișierului de birou) urmat de simbolul „două puncte” și un număr al " "fișierului de birou) urmat de simbolul „două puncte” și un număr al "
"spațiului de lucru" "spațiului de lucru"
#: extensions/auto-move-windows/prefs.js:152 #: extensions/auto-move-windows/prefs.js:159
msgid "Workspace Rules" msgid "Workspace Rules"
msgstr "Regulile spațiilor de lucru" msgstr "Regulile spațiilor de lucru"
#: extensions/auto-move-windows/prefs.js:306 #: extensions/auto-move-windows/prefs.js:314
msgid "Add Rule" msgid "Add Rule"
msgstr "Adaugă o regulă" msgstr "Adaugă o regulă"
#. TRANSLATORS: %s is the filesystem name #. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:126 #: extensions/drive-menu/extension.js:123
#: extensions/places-menu/placeDisplay.js:212 #: extensions/places-menu/placeDisplay.js:218
#, javascript-format #, javascript-format
msgid "Ejecting drive “%s” failed:" msgid "Ejecting drive “%s” failed:"
msgstr "Scoaterea unității „%s” a eșuat:" msgstr "Scoaterea unității „%s” a eșuat:"
#: extensions/drive-menu/extension.js:145 #: extensions/drive-menu/extension.js:142
msgid "Removable devices" msgid "Removable devices"
msgstr "Dispozitive detașabile" msgstr "Dispozitive detașabile"
#: extensions/drive-menu/extension.js:167 #: extensions/drive-menu/extension.js:164
msgid "Open Files" msgid "Open Files"
msgstr "Deschide fișiere" msgstr "Deschide fișiere"
#: 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" msgid "Use more screen for windows"
msgstr "Folosește mai mult din ecran pentru ferestre" msgstr "Folosește mai mult din ecran pentru ferestre"
#: 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 "" msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen " "Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. " "aspect ratio, and consolidating them further to reduce the bounding box. "
@@ -98,11 +98,11 @@ msgstr ""
"cadrul înconjurător. Această configurare este valabilă numai pentru " "cadrul înconjurător. Această configurare este valabilă numai pentru "
"strategia de plasare naturală." "strategia de plasare 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" msgid "Place window captions on top"
msgstr "Plasează titlul ferestrelor deasupra" msgstr "Plasează titlul ferestrelor deasupra"
#: 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 "" msgid ""
"If true, place window captions on top the respective thumbnail, overriding " "If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires " "shell default of placing it at the bottom. Changing this setting requires "
@@ -113,47 +113,119 @@ msgstr ""
"Schimbând această configurare necesită repornire shell-ului pentru a avea " "Schimbând această configurare necesită repornire shell-ului pentru a avea "
"efect." "efect."
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:94 #: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places" msgid "Places"
msgstr "Locații" msgstr "Locații"
#: extensions/places-menu/placeDisplay.js:52 #: extensions/places-menu/placeDisplay.js:60
#, javascript-format #, javascript-format
msgid "Failed to launch “%s”" msgid "Failed to launch “%s”"
msgstr "Eșec la lansarea „%s”" msgstr "Eșec la lansarea „%s”"
#: extensions/places-menu/placeDisplay.js:67 #: extensions/places-menu/placeDisplay.js:75
#, javascript-format #, javascript-format
msgid "Failed to mount volume for “%s”" msgid "Failed to mount volume for “%s”"
msgstr "Eșec la montarea volumului pentru „%s”" msgstr "Eșec la montarea volumului pentru „%s”"
#: extensions/places-menu/placeDisplay.js:127 #: extensions/places-menu/placeDisplay.js:135
#: extensions/places-menu/placeDisplay.js:150 #: extensions/places-menu/placeDisplay.js:158
msgid "Computer" msgid "Computer"
msgstr "Calculator" msgstr "Calculator"
#: extensions/places-menu/placeDisplay.js:340 #: extensions/places-menu/placeDisplay.js:333
msgid "Home" msgid "Home"
msgstr "Acasă" msgstr "Acasă"
#: extensions/places-menu/placeDisplay.js:385 #: extensions/places-menu/placeDisplay.js:378
msgid "Browse Network" msgid "Browse Network"
msgstr "Navighează rețeaua" msgstr "Navighează rețeaua"
#: 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" msgid "Cycle Screenshot Sizes"
msgstr "Ciclează dimensiunile capturilor de ecran" msgstr "Ciclează dimensiunile capturilor de ecran"
#: 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" msgid "Cycle Screenshot Sizes Backward"
msgstr "Ciclează dimensiunile capturilor de ecran în sens invers" msgstr "Ciclează dimensiunile capturilor de ecran în sens invers"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 #: extensions/system-monitor/extension.js:135
msgid "CPU stats"
msgstr "Statistici CPU"
#: extensions/system-monitor/extension.js:159
msgid "Memory stats"
msgstr "Statistici memorie"
#: extensions/system-monitor/extension.js:177
msgid "Swap stats"
msgstr "Statistici swap"
#: extensions/system-monitor/extension.js:336
msgid "Upload stats"
msgstr "Statistici încărcări"
#: extensions/system-monitor/extension.js:350
msgid "Download stats"
msgstr "Statistici descărcări"
#: extensions/system-monitor/extension.js:364
msgid "System stats"
msgstr "Statistici sistem"
#: extensions/system-monitor/extension.js:412
msgid "Show"
msgstr "Arată"
#: 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 "Swap"
#: extensions/system-monitor/extension.js:420
msgid "Upload"
msgstr "Încărcare"
#: extensions/system-monitor/extension.js:422
msgid "Download"
msgstr "Descărcare"
#: extensions/system-monitor/extension.js:427
msgid "Open System Monitor"
msgstr "Deschide monitorul de sistem"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:12
msgid "Show CPU usage"
msgstr "Arată utilizarea CPU"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:16
msgid "Show memory usage"
msgstr "Arată utilizarea memoriei"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:20
msgid "Show swap usage"
msgstr "Arată utilizarea swap"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:24
msgid "Show upload"
msgstr "Arată încărcările"
#: extensions/system-monitor/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml:28
msgid "Show download"
msgstr "Arată descărcările"
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:11
msgid "Theme name" msgid "Theme name"
msgstr "Numele temei" msgstr "Numele temei"
#: 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" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Numele temei, ce va fi încărcată din ~/.themes/name/gnome-shell" msgstr "Numele temei, ce va fi încărcată din ~/.themes/name/gnome-shell"
@@ -161,51 +233,51 @@ msgstr "Numele temei, ce va fi încărcată din ~/.themes/name/gnome-shell"
msgid "Close" msgid "Close"
msgstr "Închide" msgstr "Închide"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:99
msgid "Unminimize" msgid "Unminimize"
msgstr "Deminimizează" msgstr "Deminimizează"
#: extensions/window-list/extension.js:92 #: extensions/window-list/extension.js:99
msgid "Minimize" msgid "Minimize"
msgstr "Minimizează" msgstr "Minimizează"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:106
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Demaximizează" msgstr "Demaximizează"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:106
msgid "Maximize" msgid "Maximize"
msgstr "Maximizează" msgstr "Maximizează"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:471
msgid "Minimize all" msgid "Minimize all"
msgstr "Minimizează tot" msgstr "Minimizează tot"
#: extensions/window-list/extension.js:489 #: extensions/window-list/extension.js:477
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Deminimizează tot" msgstr "Deminimizează tot"
#: extensions/window-list/extension.js:495 #: extensions/window-list/extension.js:483
msgid "Maximize all" msgid "Maximize all"
msgstr "Maximizează tot" msgstr "Maximizează tot"
#: extensions/window-list/extension.js:503 #: extensions/window-list/extension.js:491
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Demaximizează tot" msgstr "Demaximizează tot"
#: extensions/window-list/extension.js:511 #: extensions/window-list/extension.js:499
msgid "Close all" msgid "Close all"
msgstr "Închide tot" msgstr "Închide tot"
#: extensions/window-list/extension.js:795 #: extensions/window-list/extension.js:773
msgid "Window List" msgid "Window List"
msgstr "Lista ferestrelor" msgstr "Lista ferestrelor"
#: 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" msgid "When to group windows"
msgstr "Când să fie grupate ferestrele" msgstr "Când să fie grupate ferestrele"
#: 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 "" msgid ""
"Decides when to group windows from the same application on the window list. " "Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”." "Possible values are “never”, “auto” and “always”."
@@ -213,22 +285,22 @@ msgstr ""
"Decide când să fie grupate ferestrele aceleiași aplicații în lista " "Decide când să fie grupate ferestrele aceleiași aplicații în lista "
"ferestrei. Valorile posibile sunt „niciodată”, „auto” și „întotdeauna”." "ferestrei. Valorile posibile sunt „niciodată”, „auto” și „întotdeauna”."
#: 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 #: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Arată ferestrele din toate spațiile de lucru" msgstr "Arată ferestrele din toate spațiile de lucru"
#: 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." msgid "Whether to show windows from all workspaces or only the current one."
msgstr "" msgstr ""
"Dacă să se arate ferestrele din toate spațiile de lucru sau doar din cel " "Dacă să se arate ferestrele din toate spațiile de lucru sau doar din cel "
"curent." "curent."
#: 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" msgid "Show the window list on all monitors"
msgstr "Afișează lista ferestrelor pe toate monitoarele" msgstr "Afișează lista ferestrelor pe toate monitoarele"
#: 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 "" msgid ""
"Whether to show the window list on all connected monitors or only on the " "Whether to show the window list on all connected monitors or only on the "
"primary one." "primary one."
@@ -256,24 +328,27 @@ msgstr "Grupează ferestrele întotdeauna"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Arată pe toate monitoarele" msgstr "Arată pe toate monitoarele"
#: extensions/window-list/workspaceIndicator.js:261 #: extensions/window-list/workspaceIndicator.js:255
#: extensions/workspace-indicator/extension.js:266 #: extensions/workspace-indicator/extension.js:261
msgid "Workspace Indicator" msgid "Workspace Indicator"
msgstr "Indicator al spațiului de lucru" msgstr "Indicator al spațiului de lucru"
#: extensions/workspace-indicator/prefs.js:62 #: extensions/workspace-indicator/prefs.js:69
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Spațiu de lucru %d" msgstr "Spațiu de lucru %d"
#: extensions/workspace-indicator/prefs.js:129 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Numele spațiilor de lucru" msgstr "Numele spațiilor de lucru"
#: extensions/workspace-indicator/prefs.js:255 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Adaugă un spațiu de lucru" msgstr "Adaugă un spațiu de lucru"
#~ msgid "Applications"
#~ msgstr "Aplicații"
#~ msgid "Application" #~ msgid "Application"
#~ msgstr "Aplicație" #~ msgstr "Aplicație"
@@ -368,9 +443,3 @@ msgstr "Adaugă un spațiu de lucru"
#~ msgid "Window management and application launching" #~ msgid "Window management and application launching"
#~ msgstr "Gestionarea ferestrei și lansarea aplicației" #~ msgstr "Gestionarea ferestrei și lansarea aplicației"
#~ msgid "CPU"
#~ msgstr "CPU"
#~ msgid "Memory"
#~ msgstr "Memorie"

View File

@@ -9,8 +9,8 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2024-04-29 15:27+0000\n" "POT-Creation-Date: 2024-02-06 18:43+0000\n"
"PO-Revision-Date: 2024-05-25 14:46+0300\n" "PO-Revision-Date: 2024-02-11 18:21+0300\n"
"Last-Translator: Artur So <arturios2005@mail.ru>\n" "Last-Translator: Artur So <arturios2005@mail.ru>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n" "Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\n" "Language: ru\n"
@@ -19,7 +19,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "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" "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.4.4\n" "X-Generator: Poedit 3.4.2\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -42,7 +42,7 @@ msgstr "Классический GNOME на Xorg"
msgid "Favorites" msgid "Favorites"
msgstr "Избранное" msgstr "Избранное"
#: extensions/apps-menu/extension.js:400 #: extensions/apps-menu/extension.js:397
msgid "Apps" msgid "Apps"
msgstr "Приложения" msgstr "Приложения"
@@ -158,43 +158,43 @@ msgstr "Статистика памяти"
msgid "Swap stats" msgid "Swap stats"
msgstr "Статистика подкачки" msgstr "Статистика подкачки"
#: extensions/system-monitor/extension.js:336 #: extensions/system-monitor/extension.js:327
msgid "Upload stats" msgid "Upload stats"
msgstr "Статистика отдачи" msgstr "Статистика отдачи"
#: extensions/system-monitor/extension.js:350 #: extensions/system-monitor/extension.js:341
msgid "Download stats" msgid "Download stats"
msgstr "Статистика загрузки" msgstr "Статистика загрузки"
#: extensions/system-monitor/extension.js:364 #: extensions/system-monitor/extension.js:355
msgid "System stats" msgid "System stats"
msgstr "Статистика системы" msgstr "Статистика системы"
#: extensions/system-monitor/extension.js:412 #: extensions/system-monitor/extension.js:403
msgid "Show" msgid "Show"
msgstr "Показать" msgstr "Показать"
#: extensions/system-monitor/extension.js:414 #: extensions/system-monitor/extension.js:405
msgid "CPU" msgid "CPU"
msgstr "ЦП" msgstr "ЦП"
#: extensions/system-monitor/extension.js:416 #: extensions/system-monitor/extension.js:407
msgid "Memory" msgid "Memory"
msgstr "Память" msgstr "Память"
#: extensions/system-monitor/extension.js:418 #: extensions/system-monitor/extension.js:409
msgid "Swap" msgid "Swap"
msgstr "Подкачка" msgstr "Подкачка"
#: extensions/system-monitor/extension.js:420 #: extensions/system-monitor/extension.js:411
msgid "Upload" msgid "Upload"
msgstr "Отдача" msgstr "Отдача"
#: extensions/system-monitor/extension.js:422 #: extensions/system-monitor/extension.js:413
msgid "Download" msgid "Download"
msgstr "Загрузка" msgstr "Загрузка"
#: extensions/system-monitor/extension.js:427 #: extensions/system-monitor/extension.js:418
msgid "Open System Monitor" msgid "Open System Monitor"
msgstr "Открыть системный монитор" msgstr "Открыть системный монитор"
@@ -226,49 +226,49 @@ msgstr "Название темы"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Название темы, загружаемой из ~/.themes/name/gnome-shell" msgstr "Название темы, загружаемой из ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:71
msgid "Close" msgid "Close"
msgstr "Закрыть" msgstr "Закрыть"
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize) # ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Unminimize" msgid "Unminimize"
msgstr "Вернуть" msgstr "Вернуть"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Minimize" msgid "Minimize"
msgstr "Свернуть" msgstr "Свернуть"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Восстановить" msgstr "Восстановить"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Maximize" msgid "Maximize"
msgstr "Развернуть" msgstr "Развернуть"
#: extensions/window-list/extension.js:471 #: extensions/window-list/extension.js:470
msgid "Minimize all" msgid "Minimize all"
msgstr "Свернуть все" msgstr "Свернуть все"
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize) # ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
#: extensions/window-list/extension.js:477 #: extensions/window-list/extension.js:476
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Вернуть все" msgstr "Вернуть все"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:482
msgid "Maximize all" msgid "Maximize all"
msgstr "Развернуть все" msgstr "Развернуть все"
#: extensions/window-list/extension.js:491 #: extensions/window-list/extension.js:490
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Восстановить все" msgstr "Восстановить все"
#: extensions/window-list/extension.js:499 #: extensions/window-list/extension.js:498
msgid "Close all" msgid "Close all"
msgstr "Закрыть все" msgstr "Закрыть все"
#: extensions/window-list/extension.js:778 #: extensions/window-list/extension.js:772
msgid "Window List" msgid "Window List"
msgstr "Список окон" msgstr "Список окон"
@@ -288,7 +288,7 @@ msgstr ""
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26 #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:26
#: extensions/window-list/prefs.js:79 #: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces" msgid "Show windows from all workspaces"
msgstr "Показывать окна со всех рабочих столов" msgstr "Отображать окна со всех рабочих столов"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 #: 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." msgid "Whether to show windows from all workspaces or only the current one."
@@ -307,10 +307,6 @@ msgstr ""
"Показывать ли список окон на всех подключенных мониторах или только на " "Показывать ли список окон на всех подключенных мониторах или только на "
"основном." "основном."
#: 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 #: extensions/window-list/prefs.js:35
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Группировка окон" msgstr "Группировка окон"
@@ -331,34 +327,23 @@ msgstr "Всегда группировать окна"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Показывать на всех мониторах" msgstr "Показывать на всех мониторах"
#: extensions/window-list/prefs.js:92 #: extensions/window-list/workspaceIndicator.js:253
msgid "Show workspace previews" #: extensions/workspace-indicator/extension.js:259
msgstr "Показывать предпросмотры рабочих столов" msgid "Workspace Indicator"
msgstr "Индикатор рабочих столов"
#: extensions/workspace-indicator/prefs.js:30 #: extensions/workspace-indicator/prefs.js:69
msgid "Show Previews In Top Bar"
msgstr "Показывать предпросмотры в верхней панели"
#: extensions/workspace-indicator/prefs.js:88
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Рабочий стол %d" msgstr "Рабочий стол %d"
#: extensions/workspace-indicator/prefs.js:155 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Названия рабочих столов" msgstr "Названия рабочих столов"
#: extensions/workspace-indicator/prefs.js:281 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Добавить рабочий стол" 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" #~ msgid "Applications"
#~ msgstr "Приложения" #~ msgstr "Приложения"

3702
po/sk.po

File diff suppressed because it is too large Load Diff

350
po/sl.po
View File

@@ -9,18 +9,18 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions\n" "Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2024-04-29 15:27+0000\n" "POT-Creation-Date: 2024-02-15 05:28+0000\n"
"PO-Revision-Date: 2024-05-02 00:11+0200\n" "PO-Revision-Date: 2024-02-19 11:07+0100\n"
"Last-Translator: Martin Srebotnjak <miles@filmsi.net>\n" "Last-Translator: Matej Urbančič <mateju@src.gnome.org>\n"
"Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n" "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
"Language: sl_SI\n" "Language: sl_SI\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || "
"%100==4 ? 3 : 0);\n" "n%100==4 ? 3 : 0);\n"
"X-Poedit-SourceCharset: utf-8\n" "X-Poedit-SourceCharset: utf-8\n"
"X-Generator: Poedit 2.2.1\n" "X-Generator: Poedit 3.4.2\n"
#: data/gnome-classic.desktop.in:3 #: data/gnome-classic.desktop.in:3
msgid "GNOME Classic" msgid "GNOME Classic"
@@ -43,7 +43,7 @@ msgstr "Klasično namizje GNOME na sistemu Xorg"
msgid "Favorites" msgid "Favorites"
msgstr "Priljubljeno" msgstr "Priljubljeno"
#: extensions/apps-menu/extension.js:400 #: extensions/apps-menu/extension.js:397
msgid "Apps" msgid "Apps"
msgstr "Programi" msgstr "Programi"
@@ -158,43 +158,43 @@ msgstr "Delovanje pomnilnika"
msgid "Swap stats" msgid "Swap stats"
msgstr "Podatki izmenjevalnega prostora" msgstr "Podatki izmenjevalnega prostora"
#: extensions/system-monitor/extension.js:336 #: extensions/system-monitor/extension.js:327
msgid "Upload stats" msgid "Upload stats"
msgstr "Podatki pošiljanja" msgstr "Podatki pošiljanja"
#: extensions/system-monitor/extension.js:350 #: extensions/system-monitor/extension.js:341
msgid "Download stats" msgid "Download stats"
msgstr "Podatki prejema" msgstr "Podatki prejema"
#: extensions/system-monitor/extension.js:364 #: extensions/system-monitor/extension.js:355
msgid "System stats" msgid "System stats"
msgstr "Podrobnosti sistema" msgstr "Podrobnosti sistema"
#: extensions/system-monitor/extension.js:412 #: extensions/system-monitor/extension.js:403
msgid "Show" msgid "Show"
msgstr "Pokaži" msgstr "Pokaži"
#: extensions/system-monitor/extension.js:414 #: extensions/system-monitor/extension.js:405
msgid "CPU" msgid "CPU"
msgstr "CPE" msgstr "CPE"
#: extensions/system-monitor/extension.js:416 #: extensions/system-monitor/extension.js:407
msgid "Memory" msgid "Memory"
msgstr "Pomnilnik" msgstr "Pomnilnik"
#: extensions/system-monitor/extension.js:418 #: extensions/system-monitor/extension.js:409
msgid "Swap" msgid "Swap"
msgstr "Izmenjevalni razdelek" msgstr "Izmenjevalni razdelek"
#: extensions/system-monitor/extension.js:420 #: extensions/system-monitor/extension.js:411
msgid "Upload" msgid "Upload"
msgstr "Poslano" msgstr "Poslano"
#: extensions/system-monitor/extension.js:422 #: extensions/system-monitor/extension.js:413
msgid "Download" msgid "Download"
msgstr "Prejeto" msgstr "Prejeto"
#: extensions/system-monitor/extension.js:427 #: extensions/system-monitor/extension.js:418
msgid "Open System Monitor" msgid "Open System Monitor"
msgstr "_Odpri nadzornika sistema" msgstr "_Odpri nadzornika sistema"
@@ -226,47 +226,47 @@ msgstr "Ime teme"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "Ime teme, ki bo naložena iz ~/.themes/name/gnome-shell" msgstr "Ime teme, ki bo naložena iz ~/.themes/name/gnome-shell"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:71
msgid "Close" msgid "Close"
msgstr "Zapri" msgstr "Zapri"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Unminimize" msgid "Unminimize"
msgstr "Povečaj" msgstr "Povečaj"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Minimize" msgid "Minimize"
msgstr "Skrči" msgstr "Skrči"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Pomanjšaj" msgstr "Pomanjšaj"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Maximize" msgid "Maximize"
msgstr "Razpni" msgstr "Razpni"
#: extensions/window-list/extension.js:471 #: extensions/window-list/extension.js:470
msgid "Minimize all" msgid "Minimize all"
msgstr "Skrči vse" msgstr "Skrči vse"
#: extensions/window-list/extension.js:477 #: extensions/window-list/extension.js:476
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Pomanjšaj vse" msgstr "Pomanjšaj vse"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:482
msgid "Maximize all" msgid "Maximize all"
msgstr "Razpni vse" msgstr "Razpni vse"
#: extensions/window-list/extension.js:491 #: extensions/window-list/extension.js:490
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Pomanjšaj vse" msgstr "Pomanjšaj vse"
#: extensions/window-list/extension.js:499 #: extensions/window-list/extension.js:498
msgid "Close all" msgid "Close all"
msgstr "Zapri vse" msgstr "Zapri vse"
#: extensions/window-list/extension.js:778 #: extensions/window-list/extension.js:772
msgid "Window List" msgid "Window List"
msgstr "Seznam oken" msgstr "Seznam oken"
@@ -303,10 +303,6 @@ msgid ""
msgstr "" msgstr ""
"Ali naj bo prikazan seznam oken na vseh povezanih zasloni ali le na osnovnem." "Ali naj bo prikazan seznam oken na vseh povezanih zasloni ali le na osnovnem."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
msgid "Show workspace previews in window list"
msgstr "Pokaži predoglede delovne površine na seznamu oken"
#: extensions/window-list/prefs.js:35 #: extensions/window-list/prefs.js:35
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Združevanje oken" msgstr "Združevanje oken"
@@ -327,31 +323,289 @@ msgstr "Okna vedno združuj"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Pokaži na vseh zaslonih" msgstr "Pokaži na vseh zaslonih"
#: extensions/window-list/prefs.js:92 #: extensions/window-list/workspaceIndicator.js:253
msgid "Show workspace previews" #: extensions/workspace-indicator/extension.js:259
msgstr "Pokaži predoglede delovne površine" msgid "Workspace Indicator"
msgstr "Kazalnik delovnih površin"
#: extensions/workspace-indicator/prefs.js:30 #: extensions/workspace-indicator/prefs.js:69
msgid "Show Previews In Top Bar"
msgstr "Pokaži predoglede v zgornji vrstici"
#: extensions/workspace-indicator/prefs.js:88
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Delovna površina %d" msgstr "Delovna površina %d"
#: extensions/workspace-indicator/prefs.js:155 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Imena delovnih površin" msgstr "Imena delovnih površin"
#: extensions/workspace-indicator/prefs.js:281 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Dodaj delovno površino" msgstr "Dodaj delovno površino"
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12 #~ msgid "Applications"
msgid "Show workspace previews in top bar" #~ msgstr "Programi"
msgstr "Pokaži predoglede delovne površine v zgornji vrstici"
#: extensions/workspace-indicator/workspaceIndicator.js:430 #~ msgid "Username or email"
msgid "Workspace Indicator" #~ msgstr "Uporabniško ime ali elektronski naslov"
msgstr "Kazalnik delovnih površin"
#~ msgid "Username"
#~ msgstr "Uporabniško ime"
#~ msgid ""
#~ "Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only."
#~ msgstr ""
#~ "Zahtevan je vpis do 30 znakov, uporabiti pa je mogoče le črke, številke "
#~ "in znake @/./+/-/_."
#~ msgid ""
#~ "This value may contain only letters, numbers and @/./+/-/_ characters."
#~ msgstr "Vrednost lahko vsebuje le črke, številke, vezaj in znake @/./+/-/_."
#~ msgid "Email"
#~ msgstr "Elektronski naslov"
#~ msgid "You should not use email as username"
#~ msgstr "Za uporabniško ime ni priporočljivo uporabiti elektronskega naslova"
#~ msgid "Forgot your password?"
#~ msgstr "Ali ste pozabili geslo?"
#~ msgid "Log in"
#~ msgstr "Prijava"
#~ msgid "Don't have an account?"
#~ msgstr "Še nimate računa za dostop?"
#~ msgid "Register"
#~ msgstr "Vpisnik"
#~ msgid "User Login"
#~ msgstr "Prijava uporabnika"
#~ msgid "Reset your password"
#~ msgstr "Ponastavi geslo"
#~ msgid ""
#~ "The token for the password reset is incorrect. Please check your link and "
#~ "try again."
#~ msgstr ""
#~ "Žeton za ponastavitev gesla ni pravi. Preverite povezavo in poskusite "
#~ "znova."
#~ msgid "Password reset"
#~ msgstr "Ponovna nastavitev gesla"
#~ msgid ""
#~ "Forgot your password? Enter your e-mail address below, and well e-mail "
#~ "instructions for setting a new one."
#~ msgstr ""
#~ "Ali ste pozabili geslo? Vpišite elektronski naslov in poslali vam bomo "
#~ "navodila za nastavitev novega."
#~ msgid "Installed extensions"
#~ msgstr "Nameščene razširitve"
#~ msgid "About"
#~ msgstr "O programu"
#~ msgid "Extensions"
#~ msgstr "Razširitve"
#, python-format
#~ msgid ""
#~ "Unfortunately, to help prevent spam, we require that you <a "
#~ "href=\"%(login_url)s\">log in to GNOME Shell Extensions</a> in order to "
#~ "post a comment or report an error. You understand, right?"
#~ msgstr ""
#~ "Za preprečevanje neželenih objav se je treba najprej <a "
#~ "href=\"%(login_url)s\">prijaviti na spletno stran</a>. Prijava omogoča "
#~ "poročanje o napakah in objavljanje ocen in mnenj."
#~ msgid "User Reviews"
#~ msgstr "Mnenja uporabnikov"
#~ msgid "Loading reviews…"
#~ msgstr "Poteka nalaganje mnenj uporabnikov …"
#~ msgid "Your opinion"
#~ msgstr "Vaše mnenje"
#~ msgid "Leave a…"
#~ msgstr "Objavite …"
#~ msgid "Comment"
#~ msgstr "Opombo"
#~ msgid "Rating"
#~ msgstr "Oceno"
#~ msgid "Bug report"
#~ msgstr "Poročilo o hrošču"
#~ msgid "Upgrade this extension"
#~ msgstr "Posodobi razširitev"
#~ msgid "Configure this extension"
#~ msgstr "Nastavi razširitev"
#~ msgid "Uninstall this extension"
#~ msgstr "Odstrani razširitev"
#~ msgid "Extension Homepage"
#~ msgstr "Spletna stran razširitev"
#~ msgid "Shell version…"
#~ msgstr "različica lupine …"
#~ msgid "Extension version…"
#~ msgstr "Različica razširitve …"
#~ msgid ""
#~ "A reviewer will review the extension you submitted to make sure there's "
#~ "nothing too dangerous. You'll be emailed the result of the review."
#~ msgstr ""
#~ "Pregledovalec bo preveril objavljeno razširitev za morebitno neželeno "
#~ "delovanje. Odziv boste prejeli na elektronski naslov."
#~ msgid "Search for extensions…"
#~ msgstr "Poišči razširitve …"
#~ msgid "Installed Extensions"
#~ msgstr "Nameščene razširitve"
#~ msgid "Shell settings"
#~ msgstr "Nastavitve lupine"
#~ msgid "Content"
#~ msgstr "Vsebina"
#~ msgid "Metadata"
#~ msgstr "Metapodatki"
#~ msgid "Post"
#~ msgstr "Po"
#~ msgid "Preview"
#~ msgstr "Predogled"
#~ msgid "What do you think about this GNOME extension?"
#~ msgstr "Kakšno je vaše mnenje o tej razširitvi GNOME?"
#~ msgid "Please correct the error below"
#~ msgid_plural "Please correct the errors below"
#~ msgstr[0] "Razrešiti je treba spodnje napake"
#~ msgstr[1] "Razrešiti je treba spodnjo napako"
#~ msgstr[2] "Razrešiti je treba spodnji napaki"
#~ msgstr[3] "Razrešiti je treba spodnje napake"
#~ msgid "Preview your comment"
#~ msgstr "Predogled opombe"
#~ msgid "Post Comment"
#~ msgstr "Objavi mnenje"
#~ msgid "Edit your comment"
#~ msgstr "Uredi mnenje"
#~ msgid "Latest extensions in GNOME Shell Extensions"
#~ msgstr "Najnovejše razširitve Lupine GNOME"
#~ msgid "GNOME Shell Extensions"
#~ msgstr "Razširitve Lupine Gnome"
#~ msgid "User Profile"
#~ msgstr "Uporabniški profil"
#~ msgid "User Settings"
#~ msgstr "Uporabniške nastavitve"
#~ msgid "Log out"
#~ msgstr "Odjava"
#~ msgid ""
#~ "To control GNOME Shell extensions using this site you must install GNOME "
#~ "Shell integration that consists of two parts: browser extension and "
#~ "native host messaging application"
#~ msgstr ""
#~ "Za nadzor razširitev Lupine GNOME prek te spletne strani je treba "
#~ "namestiti program, ki vključuje dva dela: razširitev za brskalnik in "
#~ "gostiteljski program za sporočanje."
#~ msgid "Install GNOME Shell integration browser extension"
#~ msgstr "Namesti razširitev Lupine GNOM za spletni brskalnik"
#~ msgid "Click here to install browser extension"
#~ msgstr "Kliknite za namestitev razširitve za brskalnik"
#, javascript-format
#~ msgid ""
#~ "See %swiki page%s for native host connector installation instructions"
#~ msgstr ""
#~ "Oglejte si %sstrani Wiki%s za nastavitev povezovalnega gostiteljskega "
#~ "namiznega programa."
#~ msgid ""
#~ "We cannot detect a running copy of GNOME on this system, so some parts of "
#~ "the interface may be disabled. See <a href=\"/about/#no-detection\">our "
#~ "troubleshooting entry</a> for more information."
#~ msgstr ""
#~ "Ni mogoče zaznati zagnane različice namizja GNOME na tem sistemu, zato so "
#~ "nekateri deli vmesnika morda onemogočeni. Za več podrobnosti si oglejte "
#~ "možnosti <a href=\"/about/#no-detection\">odpravljanja napak</a>."
#~ msgid "GNOME Shell Extensions cannot list your installed extensions."
#~ msgstr "Ni mogoče izpisati nameščenih razširitev Lupine GNOME."
#~ msgid "Compatible with"
#~ msgstr "Skladno z"
#~ msgid "Name"
#~ msgstr "Ime"
#~ msgid "Recent"
#~ msgstr "Nedavno"
#~ msgid "Popularity"
#~ msgstr "Priljubljenost"
#~ msgid "Sort by"
#~ msgstr "Razvrsti po"
#~ msgid "Show more reviews"
#~ msgstr "Pokaži več ocen"
#~ msgid "There are no comments. Be the first!"
#~ msgstr "Ni še vpisane nobene opombe. Bodite prvi!"
#~ msgid "Author"
#~ msgstr "Avtor"
#~ msgid "What's wrong?"
#~ msgstr "Kaj ne narobe?"
#~ msgid ""
#~ "GNOME Shell Extensions did not detect any errors with this extension."
#~ msgstr "Ni zaznanih napak pri tej razširitvi Lupine GNOME."
#~ msgid "Version information"
#~ msgstr "Podrobnosti različice"
#~ msgid "Shell version"
#~ msgstr "Različica lupine"
#~ msgid "Extension version"
#~ msgstr "Različica razširitve"
#~ msgid "Unknown"
#~ msgstr "Neznano"
#~ msgid "What have you tried?"
#~ msgstr "Kaj ste že poskusili?"
#~ msgid "Automatically detected errors"
#~ msgstr "Samodejno zaznaj napake"
#~ msgid "You uninstalled"
#~ msgstr "Odstranili ste"
#~ msgid "Password"
#~ msgstr "Geslo"

View File

@@ -14,9 +14,9 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n" "Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n" "issues\n"
"POT-Creation-Date: 2024-04-29 15:27+0000\n" "POT-Creation-Date: 2024-02-13 13:35+0000\n"
"PO-Revision-Date: 2024-05-06 05:17+0300\n" "PO-Revision-Date: 2024-02-12 18:45+0300\n"
"Last-Translator: Sabri Ünal <yakushabb@gmail.com>\n" "Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
"Language-Team: Turkish <takim@gnome.org.tr>\n" "Language-Team: Turkish <takim@gnome.org.tr>\n"
"Language: tr\n" "Language: tr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@@ -46,7 +46,7 @@ msgstr "Xorg üstünde GNOME Klasik"
msgid "Favorites" msgid "Favorites"
msgstr "Gözdeler" msgstr "Gözdeler"
#: extensions/apps-menu/extension.js:400 #: extensions/apps-menu/extension.js:397
msgid "Apps" msgid "Apps"
msgstr "Uygulamalar" msgstr "Uygulamalar"
@@ -163,43 +163,43 @@ msgstr "Bellek istatistikleri"
msgid "Swap stats" msgid "Swap stats"
msgstr "Takas istatistikleri" msgstr "Takas istatistikleri"
#: extensions/system-monitor/extension.js:336 #: extensions/system-monitor/extension.js:327
msgid "Upload stats" msgid "Upload stats"
msgstr "Yükleme istatistikleri" msgstr "Yükleme istatistikleri"
#: extensions/system-monitor/extension.js:350 #: extensions/system-monitor/extension.js:341
msgid "Download stats" msgid "Download stats"
msgstr "İndirme istatistikleri" msgstr "İndirme istatistikleri"
#: extensions/system-monitor/extension.js:364 #: extensions/system-monitor/extension.js:355
msgid "System stats" msgid "System stats"
msgstr "Sistem istatistikleri" msgstr "Sistem istatistikleri"
#: extensions/system-monitor/extension.js:412 #: extensions/system-monitor/extension.js:403
msgid "Show" msgid "Show"
msgstr "Göster" msgstr "Göster"
#: extensions/system-monitor/extension.js:414 #: extensions/system-monitor/extension.js:405
msgid "CPU" msgid "CPU"
msgstr "İşlemci" msgstr "İşlemci"
#: extensions/system-monitor/extension.js:416 #: extensions/system-monitor/extension.js:407
msgid "Memory" msgid "Memory"
msgstr "Bellek" msgstr "Bellek"
#: extensions/system-monitor/extension.js:418 #: extensions/system-monitor/extension.js:409
msgid "Swap" msgid "Swap"
msgstr "Takas" msgstr "Takas"
#: extensions/system-monitor/extension.js:420 #: extensions/system-monitor/extension.js:411
msgid "Upload" msgid "Upload"
msgstr "Yükle" msgstr "Yükle"
#: extensions/system-monitor/extension.js:422 #: extensions/system-monitor/extension.js:413
msgid "Download" msgid "Download"
msgstr "İndir" msgstr "İndir"
#: extensions/system-monitor/extension.js:427 #: extensions/system-monitor/extension.js:418
msgid "Open System Monitor" msgid "Open System Monitor"
msgstr "Sistem Gözlemcisini Aç" msgstr "Sistem Gözlemcisini Aç"
@@ -231,47 +231,47 @@ msgstr "Tema adı"
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
msgstr "~/.themes/name/gnome-shell konumundan edinilen tema adı" msgstr "~/.themes/name/gnome-shell konumundan edinilen tema adı"
#: extensions/window-list/extension.js:72 #: extensions/window-list/extension.js:71
msgid "Close" msgid "Close"
msgstr "Kapat" msgstr "Kapat"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Unminimize" msgid "Unminimize"
msgstr "Önceki duruma getir" msgstr "Önceki duruma getir"
#: extensions/window-list/extension.js:99 #: extensions/window-list/extension.js:98
msgid "Minimize" msgid "Minimize"
msgstr "Simge durumuna küçült" msgstr "Simge durumuna küçült"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Unmaximize" msgid "Unmaximize"
msgstr "Önceki duruma getir" msgstr "Önceki duruma getir"
#: extensions/window-list/extension.js:106 #: extensions/window-list/extension.js:105
msgid "Maximize" msgid "Maximize"
msgstr "En büyük duruma getir" msgstr "En büyük duruma getir"
#: extensions/window-list/extension.js:471 #: extensions/window-list/extension.js:470
msgid "Minimize all" msgid "Minimize all"
msgstr "Tümünü simge durumuna küçült" msgstr "Tümünü simge durumuna küçült"
#: extensions/window-list/extension.js:477 #: extensions/window-list/extension.js:476
msgid "Unminimize all" msgid "Unminimize all"
msgstr "Tümünü önceki duruma getir" msgstr "Tümünü önceki duruma getir"
#: extensions/window-list/extension.js:483 #: extensions/window-list/extension.js:482
msgid "Maximize all" msgid "Maximize all"
msgstr "Tümünü en büyük duruma getir" msgstr "Tümünü en büyük duruma getir"
#: extensions/window-list/extension.js:491 #: extensions/window-list/extension.js:490
msgid "Unmaximize all" msgid "Unmaximize all"
msgstr "Tümünü önceki duruma getir" msgstr "Tümünü önceki duruma getir"
#: extensions/window-list/extension.js:499 #: extensions/window-list/extension.js:498
msgid "Close all" msgid "Close all"
msgstr "Tümünü kapat" msgstr "Tümünü kapat"
#: extensions/window-list/extension.js:778 #: extensions/window-list/extension.js:772
msgid "Window List" msgid "Window List"
msgstr "Pencere Listesi" msgstr "Pencere Listesi"
@@ -311,10 +311,6 @@ msgstr ""
"Pencere listesinin tüm bağlı monitörlerde mi yoksa yalnızca birincil " "Pencere listesinin tüm bağlı monitörlerde mi yoksa yalnızca birincil "
"monitörde mi gösterileceğini belirtir." "monitörde mi gösterileceğini belirtir."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:41
msgid "Show workspace previews in window list"
msgstr "Pencere listesinde çalışma alanı ön izlemelerini göster"
#: extensions/window-list/prefs.js:35 #: extensions/window-list/prefs.js:35
msgid "Window Grouping" msgid "Window Grouping"
msgstr "Pencere Kümeleme" msgstr "Pencere Kümeleme"
@@ -335,31 +331,20 @@ msgstr "Pencereleri her zaman kümele"
msgid "Show on all monitors" msgid "Show on all monitors"
msgstr "Tüm monitörlerde göster" msgstr "Tüm monitörlerde göster"
#: extensions/window-list/prefs.js:92 #: extensions/window-list/workspaceIndicator.js:253
msgid "Show workspace previews" #: extensions/workspace-indicator/extension.js:259
msgstr "Çalışma alanı ön izlemelerini göster" msgid "Workspace Indicator"
msgstr "Çalışma Alanı Belirteci"
#: extensions/workspace-indicator/prefs.js:30 #: extensions/workspace-indicator/prefs.js:69
msgid "Show Previews In Top Bar"
msgstr "Ön İzlemeleri Üst Çubukta Göster"
#: extensions/workspace-indicator/prefs.js:88
#, javascript-format #, javascript-format
msgid "Workspace %d" msgid "Workspace %d"
msgstr "Çalışma Alanı %d" msgstr "Çalışma Alanı %d"
#: extensions/workspace-indicator/prefs.js:155 #: extensions/workspace-indicator/prefs.js:136
msgid "Workspace Names" msgid "Workspace Names"
msgstr "Çalışma Alanı Adları" msgstr "Çalışma Alanı Adları"
#: extensions/workspace-indicator/prefs.js:281 #: extensions/workspace-indicator/prefs.js:262
msgid "Add Workspace" msgid "Add Workspace"
msgstr "Çalışma Alanı Ekle" msgstr "Çalışma Alanı Ekle"
#: extensions/workspace-indicator/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml:12
msgid "Show workspace previews in top bar"
msgstr "Çalışma alanı ön izlemelerini üst çubukta göster"
#: extensions/workspace-indicator/workspaceIndicator.js:430
msgid "Workspace Indicator"
msgstr "Çalışma Alanı Belirteci"