Compare commits

...

50 Commits

Author SHA1 Message Date
Florian Müllner
278d0afc79 Bump version to 45.alpha
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/258>
2023-07-03 00:25:31 +02:00
Florian Müllner
90031432da build: Remove left-over variable
We no longer install a separate mode style, so the variable is
now unused.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/258>
2023-07-03 00:25:03 +02:00
Florian Müllner
b11f0f16f4 light-style: Always save scheme preference on enable()
Disable() should restore the scheme preference that was used when
the extension was enabled, not when it was first initialized.

Even if it's unlikely to be relevant in practice, let's make sure
we save the correct state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/257>
2023-07-02 23:24:33 +02:00
Florian Müllner
b7895ad956 extensions: Add new light-style extension
Now that gnome-shell supports a light style, people may want to
use it without forcing all apps to be light.

Add a small extension that switches the default to light, so the
shell follows the regular "dark style" preference.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/256>
2023-06-23 14:36:09 +00:00
Arik W
22b9f888fb window-list: Add tooltip for long window titles
Adds a tooltip feature to the window buttons.
If a button’s label is too long to fit, a tooltip will show the complete content when the user hovers over the button.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/170

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/251>
2023-06-18 19:08:53 +00:00
Florian Müllner
61a260bc94 places-menu: Account for app menu removal
The app menu has been removed from the top bar, so we can no longer
base our own indicator position on it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/255>
2023-05-27 00:44:26 +02:00
Florian Müllner
ced3c94dfa classic: Account for removal of app menu
We no longer include the app menu in the regular GNOME session,
we shouldn't bring it back in Classic (not least because there
never was a similar menu in GNOME 2).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/255>
2023-05-26 21:00:14 +02:00
Florian Müllner
904ead1fb1 window-list: Replace classic- with light style
Now that classic styling is based on color scheme instead of
a dedicated "classic" stylesheet, we should do the same for
extension styling, with the bonus that it also works with the
regular appearance setting outside the classic session.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/254>
2023-05-26 20:26:43 +02:00
Florian Müllner
f6b6049bc5 classic: Use light color scheme instead of classic styling
gnome-shell now includes a light variant, and supports switching
between dark- and light styling at runtime.

That means we no longer have to build our own stylesheet, and can
instead just instruct gnome-shell to always use the light style
in the classic session.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/254>
2023-05-26 20:26:43 +02:00
Alexander Weichart
ca1c4b0f9e window-list: Improve default stylesheet
Adjust colors to be more consistent with the current shell look.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/253>
2023-05-26 18:25:35 +02:00
Florian Müllner
58b4b3c8d6 Bump version to 44.0
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 05:14:23 +01:00
Florian Müllner
25cc126ebc build: Add configuration summary
Meson now has a summary() function to easily summarize the build
configuration after the project was configured, use that for some
fancy output when the feature is available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 04:52:56 +01:00
Florian Müllner
30bac19c5a build: Compile gschemas if necessary
It is good practice to recompile schemas after installing a new
schema, but for some reason we never did.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 04:30:45 +01:00
Florian Müllner
7689d660dc build: Bump meson requirement
Using the same minimum version as gnome-shell should be
uncontroversial, and allows us to use some new features.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/249>
2023-03-19 04:14:01 +01:00
Florian Müllner
e0d5ede296 Bump version to 44.rc
Update NEWS.
2023-03-06 04:35:46 +01:00
Florian Müllner
2c25e22145 Update sass submodule 2023-03-06 04:34:45 +01:00
Florian Müllner
ffa9806d40 Bump version to 44.beta
Update NEWS.
2023-02-14 18:01:27 +01:00
Florian Müllner
5ff41b9151 Update sass submodule 2023-02-14 17:59:37 +01:00
robxnano
7e8ba59304 Center-align all menus
Make popup menus center-aligned on their parent buttons, to
match the default GNOME Shell panel menus. Affects:
- Places menu
- Drive menu
- Workspace indicator
- Window menu workspace indicator

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/246>
2023-01-13 16:12:03 +00:00
Vasil Pupkin
497d175ae9 Update Belarusian translation 2022-11-27 18:57:09 +00:00
Florian Müllner
de48d02c62 Bump version to 43.1
Update NEWS.
2022-10-22 18:11:14 +02:00
Florian Müllner
ac3e095e27 Update sass submodule 2022-10-22 18:09:45 +02:00
mowemcfc
95a58358f8 build: Change zip export script shebang to use bash
The use of () array syntax and $() (which are not available in Bourne
shell) command substitution implies that this script is meant to be
executed using bash.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/244>
2022-10-22 15:02:56 +02:00
Florian Müllner
cc72a34973 window-list: Explicitly dispose settings on destroy
This will not only disconnect the signal handler, but also remove
any bindings. This works around a crash that happens if a setting
that triggers the binding changes at the same time as a setting
that rebuilds the window list; in that case, the binding handler
runs after gjs has dropped its wrapper object, but before the
binding is removed automaticalled when the object is finalized.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/416

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/243>
2022-09-30 19:55:44 +02:00
Sabri Ünal
77b35dcda3 Update Turkish translation 2022-09-18 08:11:02 +00:00
Florian Müllner
6ebb41b1e8 Bump version to 43.0
Update NEWS.
2022-09-17 18:41:49 +02:00
Florian Müllner
11cb22bd24 Update sass submodule 2022-09-17 18:40:47 +02:00
Aleksandr Melman
6fc3f5cea2 Update Russian translation 2022-09-17 16:18:03 +00:00
Zurab Kargareteli
c8484e77d3 Update Georgian translation 2022-09-14 14:37:50 +00:00
Pawan Chitrakar
98c5d4a739 Update Nepali translation 2022-09-07 21:15:50 +00:00
Florian Müllner
01d3d8fd6d Bump version to 43.rc
Update NEWS.
2022-09-04 15:25:43 +02:00
Florian Müllner
47c2834ffa Update sass submodule 2022-09-04 15:24:50 +02:00
Florian Müllner
9f88e98d1b extensions: Stop monkey-patching signal methods
gnome-shell added an EventEmitter class that can be used as base
for any non-GObject class that needs to emit signals.

Use that instead of the old monkey-patching.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240>
2022-08-20 19:03:36 +02:00
Florian Müllner
4b7055d0da places-menu: Mark PlacesManager as exported
For some reason eslint failed to complain about this.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240>
2022-08-20 19:03:36 +02:00
Florian Müllner
563d7770d3 lint: Sync with gnome-shell
gnome-shell started transitioning to gjs' object spacing rule,
i.e. `{foo: 42}` instead of `{ foo: 42 }`.

We have a much smaller code base than the shell and aren't using
a secondary "allowed-but-deprecated" configuration that allows a
gradual transition, so just pull the switch and update to the new
style.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/240>
2022-08-20 19:00:32 +02:00
Florian Müllner
d62b58b1d9 Bump version to 43.beta
Update NEWS.
2022-08-10 20:03:20 +02:00
Florian Müllner
4f78bb96a7 Update sass submodule 2022-08-10 20:03:20 +02:00
Florian Müllner
c94678e2be classic: Adjust to quick settings
The aggregate menu has been replaced with quick settings. Adjust
the session mode definition accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/238>
2022-08-10 16:21:13 +02:00
Nart Tlisha
3c515d42f2 Update Abkhazian translation 2022-07-26 10:45:41 +00:00
Florian Müllner
bb5869f8df ci: Instruct gitlab to checkout submodules
... instead of doing it in the script.

This will become important when we switch to a CI image with an
updated meson version that no longer checks out submodules as
part of the dist command.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/237>
2022-07-11 00:33:47 +02:00
Florian Müllner
faaa66eb3f ci: Don't define image globally
This has been deprecated in favor of defining the default image
in the default section.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/237>
2022-07-11 00:33:47 +02:00
Florian Müllner
14c60eb954 Bump version to 43.alpha
Update NEWS.
2022-07-10 14:36:37 +02:00
Florian Müllner
0234cd74f7 Update sass submodule 2022-07-10 14:36:37 +02:00
Florian Müllner
f637e81c8c native-window-placement: Minor style fix
JSDoc prefer "object" over "Object", so update the doc comment
accordingly.
2022-07-10 14:20:25 +02:00
Marco Ciampa
ea82830a9f Update it.po, corrected the file-manager name File. 2022-07-06 12:51:16 +00:00
Florian Müllner
8b62c38e20 Bump version to 42.3
Update NEWS.
2022-07-02 18:41:28 +02:00
Florian Müllner
4667b4704d window-list: Open menu on long press
Right-click isn't available on touch, so implement long-press as
an alternative.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/233>
2022-06-20 14:45:58 +02:00
Florian Müllner
fe60614b41 window-list: Fix primary button action on touch
If a click event was triggered via touch rather than a pointer
device, the button parameter is 0 rather than a mouse button
number.

Account for that to make sure that touch events are not misinterpreted
as right clicks.

https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/146

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/233>
2022-06-20 14:45:58 +02:00
Florian Müllner
1e833f542f screenshot-window-sizer: Delay size popup
We use the actual frame size for the popup rather than the target
size. That means (on wayland), we have to wait for the size to
actually change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/232>
2022-06-09 19:20:44 +02:00
Florian Müllner
faabfa11c2 screenshot-window-sizer: Remove superfluous check
We already filter out sizes that don't fit the screen when
building the scaledSizes array, no need to check again.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/232>
2022-06-09 19:06:24 +02:00
44 changed files with 795 additions and 768 deletions

View File

@@ -2,8 +2,6 @@ include:
- remote: 'https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/bbe5232986c9b98eb1efe62484e07216f7d1a4df/templates/fedora.yml'
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml"
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/35:2022-02-18.0
stages:
- pre_review
- prepare
@@ -12,6 +10,7 @@ stages:
- deploy
default:
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/35:2022-02-18.0
# Cancel jobs if newer commits are pushed to the branch
interruptible: true
# Auto-retry jobs in case of infra failures
@@ -133,8 +132,6 @@ fedora-build:
stage: build
needs:
- build-fedora-container
before_script:
- git submodule update --init
script:
- meson setup build --werror -Dextension_set=all -Dclassic_mode=true
- meson compile -C build
@@ -151,8 +148,8 @@ fedora-dist:
stage: deploy
needs:
- fedora-build
before_script:
- git submodule update --init
variables:
GIT_SUBMODULE_STRATEGY: normal
script:
- meson dist -C build
rules:

3
.gitmodules vendored
View File

@@ -1,3 +0,0 @@
[submodule "data/gnome-shell-sass"]
path = data/gnome-shell-sass
url = https://gitlab.gnome.org/GNOME/gnome-shell-sass.git

83
NEWS
View File

@@ -1,3 +1,86 @@
45.alpha
========
* window-list: Modernize default styling [Alexander; !253]
* Replace classic styling with built-in light style [Florian; !254]
* window-list: Add tooltip for long window titles [Arik; !251]
* light-style: New extension [Florian; !256]
* Misc. bug fixes and cleanups [Florian; !255, !257]
Contributors:
Florian Müllner, Arik W, Alexander Weichart
44.0
====
* Bump version
44.rc
=====
* Bump version
44.beta
=======
* Tweak menu alignment [robxnano; !246]
Contributors:
Florian Müllner, robxnano
Translators:
Vasil Pupkin [be]
43.1
====
* Fixed crash [Florian; !243]
* Misc. bug fixes and cleanups [mowemcfc; !244]
Contributors:
Florian Müllner, mowemcfc
Translators:
Sabri Ünal [tr]
43.0
====
Contributors:
Florian Müllner
Translators:
Pawan Chitrakar [ne], Zurab Kargareteli [ka], Aleksandr Melman [ru]
43.rc
=====
* Misc. bug fixes and cleanups [Florian; !240]
Contributors:
Florian Müllner
43.beta
=======
* Misc. bug fixes and cleanups [Florian; !237, !238]
Contributors:
Florian Müllner
Translators:
Nart Tlisha [ab]
43.alpha
========
Contributors:
Florian Müllner
Translators:
Marco Ciampa [it]
42.3
====
* screenshot-window-sizer: Fix reported sizes on wayland [Florian; !232]
* window-list: Improve touch support [Florian; !233]
Contributors:
Florian Müllner
42.2
====
* native-window-placement: Adjust to gnome-shell 42 changes [Florian; !229]

View File

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

View File

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

View File

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

View File

@@ -46,68 +46,5 @@ configure_file(
install_dir: modedir
)
theme_sources = files(
'gnome-shell-sass/_colors.scss',
'gnome-shell-sass/_common.scss',
'gnome-shell-sass/_drawing.scss',
'gnome-shell-sass/_high-contrast-colors.scss',
'gnome-shell-sass/_widgets.scss',
'gnome-shell-sass/widgets/_a11y.scss',
'gnome-shell-sass/widgets/_app-grid.scss',
'gnome-shell-sass/widgets/_base.scss',
'gnome-shell-sass/widgets/_buttons.scss',
'gnome-shell-sass/widgets/_calendar.scss',
'gnome-shell-sass/widgets/_check-box.scss',
'gnome-shell-sass/widgets/_corner-ripple.scss',
'gnome-shell-sass/widgets/_dash.scss',
'gnome-shell-sass/widgets/_dialogs.scss',
'gnome-shell-sass/widgets/_entries.scss',
'gnome-shell-sass/widgets/_hotplug.scss',
'gnome-shell-sass/widgets/_ibus-popup.scss',
'gnome-shell-sass/widgets/_keyboard.scss',
'gnome-shell-sass/widgets/_login-dialog.scss',
'gnome-shell-sass/widgets/_looking-glass.scss',
'gnome-shell-sass/widgets/_message-list.scss',
'gnome-shell-sass/widgets/_misc.scss',
'gnome-shell-sass/widgets/_network-dialog.scss',
'gnome-shell-sass/widgets/_notifications.scss',
'gnome-shell-sass/widgets/_osd.scss',
'gnome-shell-sass/widgets/_overview.scss',
'gnome-shell-sass/widgets/_panel.scss',
'gnome-shell-sass/widgets/_popovers.scss',
'gnome-shell-sass/widgets/_screen-shield.scss',
'gnome-shell-sass/widgets/_scrollbars.scss',
'gnome-shell-sass/widgets/_search-entry.scss',
'gnome-shell-sass/widgets/_search-results.scss',
'gnome-shell-sass/widgets/_slider.scss',
'gnome-shell-sass/widgets/_switcher-popup.scss',
'gnome-shell-sass/widgets/_switches.scss',
'gnome-shell-sass/widgets/_window-picker.scss',
'gnome-shell-sass/widgets/_workspace-switcher.scss',
'gnome-shell-sass/widgets/_workspace-thumbnails.scss'
)
theme_data = [
'classic-process-working.svg',
'gnome-classic-high-contrast.css'
]
stylesheet = 'gnome-classic.css'
if fs.exists(stylesheet)
install_data(stylesheet, install_dir: themedir)
else
sassc = find_program('sassc', required: true)
custom_target(stylesheet,
input: fs.replace_suffix(stylesheet, '.scss'),
output: stylesheet,
depend_files: theme_sources,
command: [sassc, '-a', '@INPUT@', '@OUTPUT@'],
install: true,
install_dir: themedir
)
endif
install_data(theme_data, install_dir: themedir)
classic_override = '00_org.gnome.shell.extensions.classic.gschema.override'
install_data(classic_override, install_dir: schemadir)

View File

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

View File

@@ -4,7 +4,7 @@
const {
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St,
} = imports.gi;
const Signals = imports.signals;
const {EventEmitter} = imports.misc.signals;
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -117,7 +117,7 @@ class CategoryMenuItem extends PopupMenu.PopupBaseMenuItem {
else
name = _('Favorites');
this.add_child(new St.Label({ text: name }));
this.add_child(new St.Label({text: name}));
this.connect('motion-event', this._onMotionEvent.bind(this));
this.connect('notify::active', this._onActiveChanged.bind(this));
}
@@ -239,8 +239,10 @@ class ApplicationsMenu extends PopupMenu.PopupMenu {
}
}
class DesktopTarget {
class DesktopTarget extends EventEmitter {
constructor() {
super();
this._desktop = null;
this._desktopDestroyedId = 0;
@@ -357,7 +359,6 @@ class DesktopTarget {
return true;
}
}
Signals.addSignalMethods(DesktopTarget.prototype);
class ApplicationsButton extends PanelMenu.Button {
static {
@@ -408,7 +409,7 @@ class ApplicationsButton extends PanelMenu.Button {
});
});
this._tree = new GMenu.Tree({ menu_basename: 'applications.menu' });
this._tree = new GMenu.Tree({menu_basename: 'applications.menu'});
this._treeChangedId = this._tree.connect('changed',
this._onTreeChanged.bind(this));
@@ -509,7 +510,7 @@ class ApplicationsButton extends PanelMenu.Button {
}
let app = appSys.lookup_app(id);
if (!app)
app = new Shell.App({ app_info: entry.get_app_info() });
app = new Shell.App({app_info: entry.get_app_info()});
if (app.get_app_info().should_show())
this.applicationsByCategory[categoryId].push(app);
} else if (nextType === GMenu.TreeItemType.SEPARATOR) {
@@ -555,8 +556,8 @@ class ApplicationsButton extends PanelMenu.Button {
_createLayout() {
let section = new PopupMenu.PopupMenuSection();
this.menu.addMenuItem(section);
this.mainBox = new St.BoxLayout({ vertical: false });
this.leftBox = new St.BoxLayout({ vertical: true });
this.mainBox = new St.BoxLayout({vertical: false});
this.leftBox = new St.BoxLayout({vertical: true});
this.applicationsScrollBox = new St.ScrollView({
style_class: 'apps-menu vfade',
x_expand: true,
@@ -578,9 +579,9 @@ class ApplicationsButton extends PanelMenu.Button {
vscroll.connect('scroll-stop', () => (this.menu.passEvents = false));
this.leftBox.add_child(this.categoriesScrollBox);
this.applicationsBox = new St.BoxLayout({ vertical: true });
this.applicationsBox = new St.BoxLayout({vertical: true});
this.applicationsScrollBox.add_actor(this.applicationsBox);
this.categoriesBox = new St.BoxLayout({ vertical: true });
this.categoriesBox = new St.BoxLayout({vertical: true});
this.categoriesScrollBox.add_actor(this.categoriesBox);
this.mainBox.add(this.leftBox);

View File

@@ -2,7 +2,7 @@
// Start apps on custom workspaces
/* exported init enable disable */
const { Shell } = imports.gi;
const {Shell} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;

View File

@@ -2,7 +2,7 @@
// Start apps on custom workspaces
/* exported init buildPrefsWidget */
const { Adw, Gio, GLib, GObject, Gtk } = imports.gi;
const {Adw, Gio, GLib, GObject, Gtk} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -75,7 +75,7 @@ class RulesList extends GObject.Object {
append(appInfo) {
const pos = this.#rules.length;
this.#rules.push(new Rule({ appInfo }));
this.#rules.push(new Rule({appInfo}));
this.#saveRules();
this.items_changed(pos, 0, 1);
@@ -97,7 +97,7 @@ class RulesList extends GObject.Object {
if (pos < 0)
return;
this.#rules[pos].set({ workspace });
this.#rules[pos].set({workspace});
this.#saveRules();
}
@@ -116,7 +116,7 @@ class RulesList extends GObject.Object {
const [id, workspace] = stringRule.split(':');
const appInfo = Gio.DesktopAppInfo.new(id);
if (appInfo)
this.#rules.push(new Rule({ appInfo, workspace }));
this.#rules.push(new Rule({appInfo, workspace}));
else
log(`Invalid ID ${id}`);
}
@@ -154,8 +154,8 @@ class AutoMoveSettingsWidget extends Adw.PreferencesGroup {
this._rules = new RulesList();
const store = new Gio.ListStore({ item_type: Gio.ListModel });
const listModel = new Gtk.FlattenListModel({ model: store });
const store = new Gio.ListStore({item_type: Gio.ListModel});
const listModel = new Gtk.FlattenListModel({model: store});
store.append(this._rules);
store.append(new NewItemModel());
@@ -248,7 +248,7 @@ class RuleRow extends Adw.ActionRow {
}
constructor(rule) {
const { appInfo } = rule;
const {appInfo} = rule;
const id = appInfo.get_id();
super({

View File

@@ -1,6 +1,6 @@
/* exported init enable disable */
// Drive menu extension
const { Clutter, Gio, GObject, Shell, St } = imports.gi;
const {Clutter, Gio, GObject, Shell, St} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
@@ -142,7 +142,7 @@ class DriveMenu extends PanelMenu.Button {
}
constructor() {
super(0.0, _('Removable devices'));
super(0.5, _('Removable devices'));
let icon = new St.Icon({
icon_name: 'media-eject-symbolic',

View File

@@ -0,0 +1,42 @@
/* exported init */
/*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
const {St} = imports.gi;
const Main = imports.ui.main;
class Extension {
_updateColorScheme(scheme) {
Main.sessionMode.colorScheme = scheme;
St.Settings.get().notify('color-scheme');
}
enable() {
this._savedColorScheme = Main.sessionMode.colorScheme;
this._updateColorScheme('prefer-light');
}
disable() {
this._updateColorScheme(this._savedColorScheme);
}
}
/** */
function init() {
return new Extension();
}

View File

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

View File

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

View File

@@ -1,10 +1,10 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported enable disable */
const { Clutter } = imports.gi;
const {Clutter} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
const { WindowPreview } = imports.ui.windowPreview;
const {WindowPreview} = imports.ui.windowPreview;
const Workspace = imports.ui.workspace;
// testing settings for natural window placement strategy:
@@ -285,8 +285,8 @@ function enable() {
}
/**
* @param {Object} object - object that was modified
* @param {Object} injection - the map of previous injections
* @param {object} object - object that was modified
* @param {object} injection - the map of previous injections
* @param {string} name - the @injection key that should be removed
*/
function removeInjection(object, injection, name) {

View File

@@ -1,7 +1,7 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init enable disable */
const { Clutter, GObject, St } = imports.gi;
const {Clutter, GObject, St} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
@@ -91,7 +91,7 @@ class PlacesMenu extends PanelMenu.Button {
}
constructor() {
super(0.0, _('Places'));
super(0.5, _('Places'));
let label = new St.Label({
text: _('Places'),
@@ -149,7 +149,7 @@ let _indicator;
function enable() {
_indicator = new PlacesMenu();
let pos = Main.sessionMode.panel.left.indexOf('appMenu');
let pos = Main.sessionMode.panel.left.length;
if ('apps-menu' in Main.panel.statusArea)
pos++;
Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');

View File

@@ -1,7 +1,8 @@
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
/* exported PlacesManager */
const { Gio, GLib, Shell } = imports.gi;
const Signals = imports.signals;
const {Gio, GLib, Shell} = imports.gi;
const {EventEmitter} = imports.misc.signals;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
@@ -22,8 +23,10 @@ const Hostname1Iface = '<node> \
</node>';
const Hostname1 = Gio.DBusProxy.makeProxyWrapper(Hostname1Iface);
class PlaceInfo {
class PlaceInfo extends EventEmitter {
constructor(...params) {
super();
this._init(...params);
}
@@ -31,7 +34,7 @@ class PlaceInfo {
this.kind = kind;
this.file = file;
this.name = name || this._getFileName();
this.icon = icon ? new Gio.ThemedIcon({ name: icon }) : this.getIcon();
this.icon = icon ? new Gio.ThemedIcon({name: icon}) : this.getIcon();
}
destroy() {
@@ -94,16 +97,16 @@ class PlaceInfo {
// icon from the query info above
switch (this.kind) {
case 'network':
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'});
case 'devices':
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'});
case 'special':
case 'bookmarks':
default:
if (!this.file.is_native())
return new Gio.ThemedIcon({ name: 'folder-remote-symbolic' });
return new Gio.ThemedIcon({name: 'folder-remote-symbolic'});
else
return new Gio.ThemedIcon({ name: 'folder-symbolic' });
return new Gio.ThemedIcon({name: 'folder-symbolic'});
}
}
@@ -118,7 +121,6 @@ class PlaceInfo {
}
}
}
Signals.addSignalMethods(PlaceInfo.prototype);
class RootInfo extends PlaceInfo {
_init() {
@@ -138,7 +140,7 @@ class RootInfo extends PlaceInfo {
}
getIcon() {
return new Gio.ThemedIcon({ name: 'drive-harddisk-symbolic' });
return new Gio.ThemedIcon({name: 'drive-harddisk-symbolic'});
}
_propertiesChanged(proxy) {
@@ -246,8 +248,10 @@ const DEFAULT_DIRECTORIES = [
GLib.UserDirectory.DIRECTORY_VIDEOS,
];
var PlacesManager = class {
var PlacesManager = class extends EventEmitter {
constructor() {
super();
this._places = {
special: [],
devices: [],
@@ -255,7 +259,7 @@ var PlacesManager = class {
network: [],
};
this._settings = new Gio.Settings({ schema_id: BACKGROUND_SCHEMA });
this._settings = new Gio.Settings({schema_id: BACKGROUND_SCHEMA});
this._showDesktopIconsChangedId = this._settings.connect(
'changed::show-desktop-icons', this._updateSpecials.bind(this));
this._updateSpecials();
@@ -543,4 +547,3 @@ var PlacesManager = class {
return this._places[kind];
}
};
Signals.addSignalMethods(PlacesManager.prototype);

View File

@@ -19,7 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
const { Clutter, Meta, Shell, St } = imports.gi;
const {Clutter, Meta, Shell, St} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;
@@ -39,7 +39,7 @@ function hideMessage() {
*/
function flashMessage(message) {
if (!text) {
text = new St.Label({ style_class: 'screenshot-sizer-message' });
text = new St.Label({style_class: 'screenshot-sizer-message'});
Main.uiGroup.add_actor(text);
}
@@ -101,10 +101,6 @@ function cycleScreenshotSizes(display, window, binding) {
for (let i = 0; i < scaledSizes.length; i++) {
let [width, height] = scaledSizes[i];
// ignore sizes bigger than the workArea
if (width > workArea.width || height > workArea.height)
continue;
// get the best initial window size
let error = Math.abs(width - outerRect.width) + Math.abs(height - outerRect.height);
if (nearestIndex === undefined || error < nearestError) {
@@ -125,8 +121,18 @@ function cycleScreenshotSizes(display, window, binding) {
if (newY + newHeight > workArea.y + workArea.height)
newY = Math.max(workArea.y + workArea.height - newHeight);
const id = window.connect('size-changed', () => {
window.disconnect(id);
_notifySizeChange(window);
});
window.move_resize_frame(true, newX, newY, newWidth, newHeight);
}
/**
* @param {Meta.Window} window - the window whose size changed
*/
function _notifySizeChange(window) {
const {scaleFactor} = St.ThemeContext.get_for_stage(global.stage);
let newOuterRect = window.get_frame_rect();
let message = '%d×%d'.format(
newOuterRect.width / scaleFactor,

View File

@@ -2,7 +2,7 @@
// Load shell theme from ~/.local/share/themes/name/gnome-shell
/* exported init */
const { Gio } = imports.gi;
const {Gio} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
const Main = imports.ui.main;

View File

@@ -4,7 +4,7 @@
// we use async/await here to not block the mainloop, not to parallelize
/* eslint-disable no-await-in-loop */
const { Adw, Gio, GLib, GObject, Gtk } = imports.gi;
const {Adw, Gio, GLib, GObject, Gtk} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -21,7 +21,7 @@ class UserThemePrefsWidget extends Adw.PreferencesGroup {
}
constructor() {
super({ title: 'Themes' });
super({title: 'Themes'});
this._actionGroup = new Gio.SimpleActionGroup();
this.insert_action_group('theme', this._actionGroup);

View File

@@ -1,5 +1,5 @@
/* exported getThemeDirs getModeThemeDirs */
const { GLib } = imports.gi;
const {GLib} = imports.gi;
const fn = (...args) => GLib.build_filenamev(args);

View File

@@ -1,5 +1,5 @@
/* exported init */
const { Clutter, Gio, GLib, GObject, Gtk, Meta, Shell, St } = imports.gi;
const {Clutter, Gio, GLib, GObject, Gtk, Meta, Shell, St} = imports.gi;
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -8,14 +8,17 @@ const Overview = imports.ui.overview;
const PopupMenu = imports.ui.popupMenu;
const Me = ExtensionUtils.getCurrentExtension();
const { WindowPicker, WindowPickerToggle } = Me.imports.windowPicker;
const { WorkspaceIndicator } = Me.imports.workspaceIndicator;
const {WindowPicker, WindowPickerToggle} = Me.imports.windowPicker;
const {WorkspaceIndicator} = Me.imports.workspaceIndicator;
const _ = ExtensionUtils.gettext;
const ICON_TEXTURE_SIZE = 24;
const DND_ACTIVATE_TIMEOUT = 500;
const TOOLTIP_OFFSET = 6;
const TOOLTIP_ANIMATION_TIME = 150;
const GroupingMode = {
NEVER: 0,
AUTO: 1,
@@ -120,9 +123,9 @@ class WindowTitle extends St.BoxLayout {
this._metaWindow = metaWindow;
this._icon = new St.Bin({ style_class: 'window-button-icon' });
this._icon = new St.Bin({style_class: 'window-button-icon'});
this.add(this._icon);
this.label_actor = new St.Label({ y_align: Clutter.ActorAlign.CENTER });
this.label_actor = new St.Label({y_align: Clutter.ActorAlign.CENTER});
this.label_actor.clutter_text.single_line_mode = true;
this.add(this.label_actor);
@@ -224,6 +227,12 @@ class BaseButton extends St.Button {
'window-left-monitor',
this._windowEnteredOrLeftMonitor.bind(this));
}
this._tooltip = new Tooltip(this, {
style_class: 'dash-label',
visible: false,
});
Main.uiGroup.add_child(this._tooltip);
}
get active() {
@@ -246,6 +255,48 @@ class BaseButton extends St.Button {
this._updateVisibility();
}
_setLongPressTimeout() {
if (this._longPressTimeoutId)
return;
const {longPressDuration} = Clutter.Settings.get_default();
this._longPressTimeoutId =
GLib.timeout_add(GLib.PRIORITY_DEFAULT, longPressDuration, () => {
delete this._longPressTimeoutId;
if (this._canOpenPopupMenu() && !this._contextMenu.isOpen)
this._openMenu(this._contextMenu);
return GLib.SOURCE_REMOVE;
});
}
_removeLongPressTimeout() {
if (!this._longPressTimeoutId)
return;
GLib.source_remove(this._longPressTimeoutId);
delete this._longPressTimeoutId;
}
vfunc_button_press_event(buttonEvent) {
if (buttonEvent.button === 1)
this._setLongPressTimeout();
return super.vfunc_button_press_event(buttonEvent);
}
vfunc_button_release_event(buttonEvent) {
this._removeLongPressTimeout();
return super.vfunc_button_release_event(buttonEvent);
}
vfunc_touch_event(touchEvent) {
if (touchEvent.type === Clutter.EventType.TOUCH_BEGIN)
this._setLongPressTimeout();
else if (touchEvent.type === Clutter.EventType.TOUCH_END)
this._removeLongPressTimeout();
return super.vfunc_touch_event(touchEvent);
}
activate() {
if (this.active)
return;
@@ -349,6 +400,8 @@ class BaseButton extends St.Button {
if (this._windowLeftMonitorId)
global.display.disconnect(this._windowLeftMonitorId);
this._windowLeftMonitorId = 0;
this._tooltip.destroy();
}
}
@@ -391,7 +444,7 @@ class WindowButton extends BaseButton {
return;
}
if (button === 1)
if (!button || button === 1)
this._minimizeOrActivateWindow(this.metaWindow);
else
this._openMenu(this._contextMenu);
@@ -501,7 +554,7 @@ class AppButton extends BaseButton {
this.app = app;
this._updateVisibility();
let stack = new St.Widget({ layout_manager: new Clutter.BinLayout() });
let stack = new St.Widget({layout_manager: new Clutter.BinLayout()});
this.set_child(stack);
this._singleWindowTitle = new St.Bin({
@@ -637,7 +690,7 @@ class AppButton extends BaseButton {
if (contextMenuWasOpen)
this._contextMenu.close();
if (button === 1) {
if (!button || button === 1) {
if (menuWasOpen)
return;
@@ -700,7 +753,7 @@ class WindowList extends St.Widget {
this._perMonitor = perMonitor;
this._monitor = monitor;
let box = new St.BoxLayout({ x_expand: true, y_expand: true });
let box = new St.BoxLayout({x_expand: true, y_expand: true});
this.add_actor(box);
let toggle = new WindowPickerToggle();
@@ -709,7 +762,7 @@ class WindowList extends St.Widget {
toggle.connect('notify::checked',
this._updateWindowListVisibility.bind(this));
let layout = new Clutter.BoxLayout({ homogeneous: true });
let layout = new Clutter.BoxLayout({homogeneous: true});
this._windowList = new St.Widget({
style_class: 'window-list',
reactive: true,
@@ -727,13 +780,13 @@ class WindowList extends St.Widget {
});
this._windowList.connect('scroll-event', this._onScrollEvent.bind(this));
let indicatorsBox = new St.BoxLayout({ x_align: Clutter.ActorAlign.END });
let indicatorsBox = new St.BoxLayout({x_align: Clutter.ActorAlign.END});
box.add(indicatorsBox);
this._workspaceIndicator = new WorkspaceIndicator();
indicatorsBox.add_child(this._workspaceIndicator.container);
this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
this._mutterSettings = new Gio.Settings({schema_id: 'org.gnome.mutter'});
this._workspacesOnlyOnPrimaryChangedId = this._mutterSettings.connect(
'changed::workspaces-only-on-primary',
this._updateWorkspaceIndicatorVisibility.bind(this));
@@ -818,8 +871,8 @@ class WindowList extends St.Widget {
this._dndWindow = null;
this._settings = ExtensionUtils.getSettings();
this._groupingModeChangedId = this._settings.connect(
'changed::grouping-mode', this._groupingModeChanged.bind(this));
this._settings.connect('changed::grouping-mode',
() => this._groupingModeChanged());
this._grouped = undefined;
this._groupingModeChanged();
}
@@ -876,7 +929,7 @@ class WindowList extends St.Widget {
let children = this._windowList.get_children();
let [, childWidth] = children[0].get_preferred_width(-1);
let { spacing } = this._windowList.layout_manager;
let {spacing} = this._windowList.layout_manager;
let workspace = global.workspace_manager.get_active_workspace();
let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
@@ -1088,7 +1141,7 @@ class WindowList extends St.Widget {
Main.xdndHandler.disconnect(this._dragBeginId);
Main.xdndHandler.disconnect(this._dragEndId);
this._settings.disconnect(this._groupingModeChangedId);
this._settings.run_dispose();
let windows = global.get_window_actors();
for (let i = 0; i < windows.length; i++)
@@ -1163,6 +1216,70 @@ class Extension {
}
}
class Tooltip extends St.Label {
static {
GObject.registerClass(this);
}
constructor(widget, params) {
super(params);
this._widget = widget;
this._widget.connect('notify::hover', () => {
if (this._widget.hover)
this.open();
else
this.close();
});
}
open() {
const buttonTitleWidget = this._widget.label_actor;
const [, , preferredTitleWidth] = buttonTitleWidget.get_preferred_size();
const maxTitleWidth = buttonTitleWidget.allocation.get_width();
const isTitleFullyShown = preferredTitleWidth <= maxTitleWidth;
if (isTitleFullyShown)
return;
this.set({
text: this._widget.label_actor.get_text(),
visible: true,
opacity: 0,
});
const [stageX, stageY] = this._widget.get_transformed_position();
const thumbWidth = this._widget.allocation.get_width();
const tipWidth = this.width;
const tipHeight = this.height;
const xOffset = Math.floor((thumbWidth - tipWidth) / 2);
const monitor = Main.layoutManager.findMonitorForActor(this);
const x = Math.clamp(
stageX + xOffset,
monitor.x,
monitor.x + monitor.width - tipWidth);
const y = stageY - tipHeight - TOOLTIP_OFFSET;
this.set_position(x, y);
this.ease({
opacity: 255,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this.visible = this._widget.hover),
});
}
close() {
this.ease({
opacity: 0,
duration: TOOLTIP_ANIMATION_TIME,
mode: Clutter.AnimationMode.EASE_OUT_QUAD,
onComplete: () => (this.visible = this._widget.hover),
});
}
}
/**
* @returns {Extension} - the extension's state object
*/

View File

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

View File

@@ -1,7 +1,7 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
const { Adw, Gio, GLib, GObject, Gtk } = imports.gi;
const {Adw, Gio, GLib, GObject, Gtk} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -37,12 +37,12 @@ class WindowListPrefsWidget extends Adw.PreferencesPage {
this.add(groupingGroup);
const modes = [
{ mode: 'never', title: _('Never group windows') },
{ mode: 'auto', title: _('Group windows when space is limited') },
{ mode: 'always', title: _('Always group windows') },
{mode: 'never', title: _('Never group windows')},
{mode: 'auto', title: _('Group windows when space is limited')},
{mode: 'always', title: _('Always group windows')},
];
for (const { mode, title } of modes) {
for (const {mode, title} of modes) {
const check = new Gtk.CheckButton({
action_name: 'window-list.grouping-mode',
action_target: new GLib.Variant('s', mode),

View File

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

View File

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

View File

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

View File

@@ -1,12 +1,12 @@
/* exported WindowPicker, WindowPickerToggle */
const { Clutter, GObject, Shell, St } = imports.gi;
const {Clutter, GObject, Shell, St} = imports.gi;
const Layout = imports.ui.layout;
const Main = imports.ui.main;
const { WorkspacesDisplay } = imports.ui.workspacesView;
const {WorkspacesDisplay} = imports.ui.workspacesView;
const Workspace = imports.ui.workspace;
const { VIGNETTE_BRIGHTNESS } = imports.ui.lightbox;
const {VIGNETTE_BRIGHTNESS} = imports.ui.lightbox;
const {
SIDE_CONTROLS_ANIMATION_TIME,
OverviewAdjustment,
@@ -90,7 +90,7 @@ class MyWorkspace extends Workspace.Workspace {
this._adjChangedId =
this._overviewAdjustment.connect('notify::value', () => {
const { value: progress } = this._overviewAdjustment;
const {value: progress} = this._overviewAdjustment;
const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress;
for (const bg of this._background?._backgroundGroup ?? []) {
bg.content.set({
@@ -151,7 +151,7 @@ class MyWorkspaceBackground extends Workspace.WorkspaceBackground {
var WindowPicker = class WindowPicker extends Clutter.Actor {
static [GObject.signals] = {
'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] },
'open-state-changed': {param_types: [GObject.TYPE_BOOLEAN]},
};
static {
@@ -159,7 +159,7 @@ var WindowPicker = class WindowPicker extends Clutter.Actor {
}
constructor() {
super({ reactive: true });
super({reactive: true});
this._visible = false;
this._modal = false;

View File

@@ -1,5 +1,5 @@
/* exported WorkspaceIndicator */
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
const {Clutter, Gio, GObject, Meta, St} = imports.gi;
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -25,7 +25,7 @@ class WindowPreview extends St.Button {
});
this._delegate = this;
DND.makeDraggable(this, { restoreOnSuccess: true });
DND.makeDraggable(this, {restoreOnSuccess: true});
this._window = window;
@@ -258,7 +258,7 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button {
}
constructor() {
super(0.0, _('Workspace Indicator'), true);
super(0.5, _('Workspace Indicator'), true);
this.setMenu(new PopupMenu.PopupMenu(this, 0.0, St.Side.BOTTOM));
this.add_style_class_name('window-list-workspace-indicator');
this.remove_style_class_name('panel-button');
@@ -274,7 +274,7 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button {
let workspaceManager = global.workspace_manager;
this._currentWorkspace = workspaceManager.get_active_workspace_index();
this._statusLabel = new St.Label({ text: this._getStatusText() });
this._statusLabel = new St.Label({text: this._getStatusText()});
this._statusBin = new St.Bin({
style_class: 'status-label-bin',
@@ -309,7 +309,7 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button {
this._updateThumbnails();
this._updateThumbnailVisibility();
this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' });
this._settings = new Gio.Settings({schema_id: 'org.gnome.desktop.wm.preferences'});
this._settingsChangedId = this._settings.connect(
'changed::workspace-names', this._updateMenuLabels.bind(this));
}
@@ -327,7 +327,7 @@ var WorkspaceIndicator = class WorkspaceIndicator extends PanelMenu.Button {
}
_updateThumbnailVisibility() {
const { workspaceManager } = global;
const {workspaceManager} = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;

View File

@@ -1,6 +1,6 @@
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
/* exported init */
const { Clutter, Graphene, GObject, St } = imports.gi;
const {Clutter, Graphene, GObject, St} = imports.gi;
const Main = imports.ui.main;
const OverviewControls = imports.ui.overviewControls;
@@ -53,13 +53,13 @@ class MyWorkspace extends Workspace.Workspace {
}
getWindowWithTooltip(id) {
const { layoutManager } = this._container;
const {layoutManager} = this._container;
const slot = layoutManager._windowSlots[id - 1];
return slot ? slot[WINDOW_SLOT].metaWindow : null;
}
showWindowsTooltips() {
const { layoutManager } = this._container;
const {layoutManager} = this._container;
for (let i = 0; i < layoutManager._windowSlots.length; i++) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
@@ -67,7 +67,7 @@ class MyWorkspace extends Workspace.Workspace {
}
hideWindowsTooltips() {
const { layoutManager } = this._container;
const {layoutManager} = this._container;
for (let i in layoutManager._windowSlots) {
if (layoutManager._windowSlots[i])
layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip();
@@ -93,13 +93,13 @@ class MyWorkspace extends Workspace.Workspace {
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.X_AXIS,
pivot_point: new Graphene.Point({ x: 0.5, y: -1 }),
pivot_point: new Graphene.Point({x: 0.5, y: -1}),
factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
}));
this._text.add_constraint(new Clutter.AlignConstraint({
source: this.windowContainer,
align_axis: Clutter.AlignAxis.Y_AXIS,
pivot_point: new Graphene.Point({ x: -1, y: 0.5 }),
pivot_point: new Graphene.Point({x: -1, y: 0.5}),
factor: 0,
}));
@@ -107,7 +107,7 @@ class MyWorkspace extends Workspace.Workspace {
}).call(clone);
clone.showTooltip = function (text) {
this._text.set({ text });
this._text.set({text});
this._text.show();
};
@@ -170,7 +170,7 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView {
}
_onKeyPress(s, o) {
const { ControlsState } = OverviewControls;
const {ControlsState} = OverviewControls;
if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER)
return false;

View File

@@ -1,7 +1,7 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init enable disable */
const { Clutter, Gio, GObject, Meta, St } = imports.gi;
const {Clutter, Gio, GObject, Meta, St} = imports.gi;
const DND = imports.ui.dnd;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -30,7 +30,7 @@ class WindowPreview extends St.Button {
});
this._delegate = this;
DND.makeDraggable(this, { restoreOnSuccess: true });
DND.makeDraggable(this, {restoreOnSuccess: true});
this._window = window;
@@ -263,7 +263,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
}
constructor() {
super(0.0, _('Workspace Indicator'));
super(0.5, _('Workspace Indicator'));
let container = new St.Widget({
layout_manager: new Clutter.BinLayout(),
@@ -310,7 +310,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
this._updateThumbnails();
this._updateThumbnailVisibility();
this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
this._settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
this._settingsChangedId = this._settings.connect(
`changed::${WORKSPACE_KEY}`,
this._updateMenuLabels.bind(this));
@@ -331,7 +331,7 @@ class WorkspaceIndicator extends PanelMenu.Button {
}
_updateThumbnailVisibility() {
const { workspaceManager } = global;
const {workspaceManager} = global;
const vertical = workspaceManager.layout_rows === -1;
const useMenu =
vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;

View File

@@ -1,7 +1,7 @@
// -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*-
/* exported init buildPrefsWidget */
const { Adw, Gio, GLib, GObject, Gtk, Pango } = imports.gi;
const {Adw, Gio, GLib, GObject, Gtk, Pango} = imports.gi;
const ExtensionUtils = imports.misc.extensionUtils;
@@ -41,7 +41,7 @@ class WorkspacesList extends GObject.Object {
GObject.registerClass(this);
}
#settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA });
#settings = new Gio.Settings({schema_id: WORKSPACE_SCHEMA});
#names = this.#settings.get_strv(WORKSPACE_KEY);
#items = Gtk.StringList.new(this.#names);
#changedId;
@@ -131,8 +131,8 @@ class WorkspaceSettingsWidget extends Adw.PreferencesGroup {
this._workspaces = new WorkspacesList();
const store = new Gio.ListStore({ item_type: Gio.ListModel });
const listModel = new Gtk.FlattenListModel({ model: store });
const store = new Gio.ListStore({item_type: Gio.ListModel});
const listModel = new Gtk.FlattenListModel({model: store});
store.append(this._workspaces);
store.append(new NewItemModel());
@@ -157,7 +157,7 @@ class WorkspaceRow extends Adw.PreferencesRow {
}
constructor(name) {
super({ name });
super({name});
const box = new Gtk.Box({
spacing: 12,

View File

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

View File

@@ -1,6 +1,6 @@
project('gnome-shell-extensions',
version: '42.2',
meson_version: '>= 0.53.0',
version: '45.alpha',
meson_version: '>= 0.58.0',
license: 'GPL2+'
)
@@ -15,7 +15,6 @@ datadir = get_option('datadir')
shelldir = join_paths(datadir, 'gnome-shell')
extensiondir = join_paths(shelldir, 'extensions')
modedir = join_paths(shelldir, 'modes')
themedir = join_paths(shelldir, 'theme')
schemadir = join_paths(datadir, 'glib-2.0', 'schemas')
sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
@@ -37,6 +36,7 @@ classic_extensions = [
default_extensions = classic_extensions
default_extensions += [
'drive-menu',
'light-style',
'screenshot-window-sizer',
'windowsNavigator',
'workspace-indicator'
@@ -93,7 +93,23 @@ endif
subdir('extensions')
subdir('po')
meson.add_dist_script('meson/generate-stylesheets.py')
gnome.post_install(
glib_compile_schemas: true,
)
meson.add_dist_script('meson/check-version.py',
meson.project_version(),
'NEWS')
summary_options = {
'extensions': enabled_extensions,
'classic_mode': get_option('classic_mode'),
}
summary_dirs = {
'prefix': get_option('prefix'),
'datadir': get_option('datadir'),
}
summary(summary_dirs, section: 'Directories')
summary(summary_options, section: 'Build Options')

View File

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

View File

@@ -6,9 +6,8 @@
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions main\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2022-02-12 02:08+0000\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/issues\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-02-12 02:08+0000\n"
"Last-Translator: Нанба Наала <naala-nanba@rambler.ru>, 2022\n"
"Language-Team: Abkhazian <ab@li.org>\n"
@@ -34,11 +33,11 @@ msgstr "Аклассикатә GNOME Wayland аҟны"
msgid "GNOME Classic on Xorg"
msgstr "Аклассикатә GNOME Xorg аҟны"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Иалкаау"
#: extensions/apps-menu/extension.js:370
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "Аԥшьқәа"
@@ -50,29 +49,30 @@ msgstr "Аԥшьи аусуратә ҵакырақәа рыхьӡынҵеи"
msgid ""
"A list of strings, each containing an application id (desktop file name), "
"followed by a colon and the workspace number"
msgstr "Ацәаҳәақәа рыхьӡынҵа аиԥшрагәаҭага аԥшьы (desktop-фаил ахьӡ )"
"змоу, зашьҭахь ҩ-кәаԥки аусуратә ҭыԥ аномери гылоу "
msgstr ""
"Ацәаҳәақәа рыхьӡынҵа аиԥшрагәаҭага аԥшьы (desktop-фаил ахьӡ )змоу, зашьҭахь "
"ҩ-кәаԥки аусуратә ҭыԥ аномери гылоу "
#: extensions/auto-move-windows/prefs.js:19
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Аусуратә ҵакыра аԥҟаррақәа"
#: extensions/auto-move-windows/prefs.js:245
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Аԥҟара ацҵара"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:123
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Адиск «%s» аҭыгара залымшахеит:"
#: extensions/drive-menu/extension.js:139
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Иаҿыҵуа аиҿартәырақәа"
#: extensions/drive-menu/extension.js:161
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Афаил аартра"
@@ -85,9 +85,11 @@ msgid ""
"Try to use more screen for placing window thumbnails by adapting to screen "
"aspect ratio, and consolidating them further to reduce the bounding box. "
"This setting applies only with the natural placement strategy."
msgstr "Шәхы иашәырхәа изыцҵоу аекран аҵакыра аминиатиура атыԥаркразы"
"аекран аганқәа реизышәара ԥсахуа аҭыԥыркра шәыржәпала, анаҩс адаԥа ҳәаақәызҵо ашәагаа архәыҷразы"
"ари ахышәара ахархәара аиуоит аминиатиура «natural» аҭыԥыркра алгоритм ахархәараан"
msgstr ""
"Шәхы иашәырхәа изыцҵоу аекран аҵакыра аминиатиура атыԥаркразыаекран аганқәа "
"реизышәара ԥсахуа аҭыԥыркра шәыржәпала, анаҩс адаԥа ҳәаақәызҵо ашәагаа "
"архәыҷразыари ахышәара ахархәара аиуоит аминиатиура «natural» аҭыԥыркра "
"алгоритм ахархәараан"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
@@ -98,12 +100,13 @@ msgid ""
"If true, place window captions on top the respective thumbnail, overriding "
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr "Иалхзар, ахқәа аминиатиура хыхьтәи ахәҭаҟны аҭыԥ ааныркылалоит"
"(ишыҟоу еиԥш ахқәа ҵаҟатәи аҭыԥ ааныркылоит).Ари ахышәара аԥсахраан,"
"уи аус аура иалагарцазы, иаҭахуп Shell аиҭарура."
msgstr ""
"Иалхзар, ахқәа аминиатиура хыхьтәи ахәҭаҟны аҭыԥ ааныркылалоит(ишыҟоу еиԥш "
"ахқәа ҵаҟатәи аҭыԥ ааныркылоит).Ари ахышәара аԥсахраан,уи аус аура "
"иалагарцазы, иаҭахуп Shell аиҭарура."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Аҭыԥқәа"
@@ -166,27 +169,27 @@ msgstr "Аиҭашьақәыргылара"
msgid "Maximize"
msgstr "Аиҵыхра"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "Зегьы реиҟәырҳәра"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "Зегьы рырхынҳәра"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "Зегьы реиҵыхра"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "Зегьы реиҭашьақәыргылара"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "Зегьы рыркра"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "Аԥенџьырқәа рыхьӡынҵа"
@@ -198,18 +201,21 @@ msgstr "Аԥенџьырқәа аидыргәыԥлара анаҭаху"
msgid ""
"Decides when to group windows from the same application on the window list. "
"Possible values are “never”, “auto” and “always”."
msgstr "Иҳәаақәнаҵоит, ианаҭаху ԥшьык иаҵанакуа аԥенџьырқәа реидыргәыԥлара, аԥенџьырқәа рыхьӡынҵаҟны"
" Иҟалар зылшо аҵакқәа : «never» — ахаан; «auto» — автоматла; «always» — есқьынгьы"
msgstr ""
"Иҳәаақәнаҵоит, ианаҭаху ԥшьык иаҵанакуа аԥенџьырқәа реидыргәыԥлара, "
"аԥенџьырқәа рыхьӡынҵаҟны Иҟалар зылшо аҵакқәа : «never» — ахаан; «auto» — "
"автоматла; «always» — есқьынгьы"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:76
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "Аҵакырақәа зегьы рҟынтә аԥенџьырқәа раарԥшра"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr
"Аԥенџьырқәа рыхьӡынҵа аусуратә ҵакырақәа зегь рҟынтә акәу,мамзар уажәтәи аҟынтә акәу ишаарԥшлатәу"
msgstr ""
"Аԥенџьырқәа рыхьӡынҵа аусуратә ҵакырақәа зегь рҟынтә акәу,мамзар уажәтәи "
"аҟынтә акәу ишаарԥшлатәу"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
@@ -219,43 +225,44 @@ msgstr "Аԥенџьырқәа рыхьӡынҵа амониторқәа зег
msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr
"Аԥенџьырқәа рыхьӡынҵа иаҿаку амониторқәа зегьы рыҟноума иахьаарԥшлатәу , мамзар ихадоу аҟны акәу."
msgstr ""
"Аԥенџьырқәа рыхьӡынҵа иаҿаку амониторқәа зегьы рыҟноума иахьаарԥшлатәу , "
"мамзар ихадоу аҟны акәу."
#: extensions/window-list/prefs.js:32
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Аԥенџьырқәа реидыргәыԥлара"
#: extensions/window-list/prefs.js:37
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Ахаангьы аԥенџьырқәа реидмыргәыԥлара"
#: extensions/window-list/prefs.js:38
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Аҭыԥ маҷхазар, аԥенџьырқәа еидшәыргәыԥла"
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Еснагь аԥенџьырқәа реидыргәыԥлара"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Амониторқәа зегьы рҟны рырбара"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Аусуратә ҵакыра аиндикатор"
#: extensions/workspace-indicator/prefs.js:18
msgid "Workspace Names"
msgstr "Аусуратә ҵакырақәа рыхьӡқәа"
#: extensions/workspace-indicator/prefs.js:39
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Аусуратә ҵакыра %d"
#: extensions/workspace-indicator/prefs.js:184
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Аусуратә ҵакырақәа рыхьӡқәа"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Аусуратә ҵакыра ацҵара"

101
po/be.po
View File

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

View File

@@ -80,7 +80,7 @@ msgstr "Dispositivi rimovibili"
#: extensions/drive-menu/extension.js:171
msgid "Open Files"
msgstr "Apri file"
msgstr "Apri File"
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
msgid "Use more screen for windows"

View File

@@ -9,15 +9,15 @@ msgstr ""
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2022-02-13 10:42+0000\n"
"PO-Revision-Date: 2022-02-13 14:35+0100\n"
"PO-Revision-Date: 2022-09-14 16:37+0200\n"
"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
"Language-Team: \n"
"Language: ka\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 3.0.1\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Poedit 3.1.1\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
@@ -104,6 +104,9 @@ msgid ""
"shell default of placing it at the bottom. Changing this setting requires "
"restarting the shell to have any effect."
msgstr ""
"თუ ჩართულია, ფანჯრის სათაური შესაბამისი მინიატურის თავზე გამოჩნდება, რითიც "
"გადაფარავს გარსის ნაგულისხმებ მნიშვნელობას, რომ ის ძირზე იყოს. ამ "
"პარამეტრის ძალაში შესასვლელად საჭიროა გარსის გადატვირთვა."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91

147
po/ne.po
View File

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

101
po/ru.po
View File

@@ -6,20 +6,20 @@
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
"Project-Id-Version: gnome-shell-extensions\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"PO-Revision-Date: 2021-12-11 15:12+0300\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-09-14 13:09+0300\n"
"Last-Translator: Aleksandr Melman <Alexmelman88@gmail.com>\n"
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.0\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
"X-Generator: Poedit 3.1\n"
#: data/gnome-classic.desktop.in:3
msgid "GNOME Classic"
@@ -28,7 +28,7 @@ msgstr "Классический GNOME"
#: data/gnome-classic.desktop.in:4 data/gnome-classic-wayland.desktop.in:4
#: data/gnome-classic-xorg.desktop.in:4
msgid "This session logs you into GNOME Classic"
msgstr "Данный сеанс использует классический рабочий стол GNOME"
msgstr "Данный сеанс использует классический GNOME"
#: data/gnome-classic-wayland.desktop.in:3
msgid "GNOME Classic on Wayland"
@@ -38,17 +38,17 @@ msgstr "Классический GNOME на Wayland"
msgid "GNOME Classic on Xorg"
msgstr "Классический GNOME на Xorg"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Избранное"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "Приложения"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
msgid "Application and workspace list"
msgstr "Приложение и список рабочих областей"
msgstr "Приложение и список рабочих столов"
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
msgid ""
@@ -56,28 +56,28 @@ msgid ""
"followed by a colon and the workspace number"
msgstr ""
"Список строк, содержащих идентификатор приложения (имя desktop-файла), за "
"которым следует двоеточие и номер рабочего места"
"которым следует двоеточие и номер рабочего стола"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Правила для рабочей области"
msgstr "Правила для рабочих столов"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Добавить правило"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "Не удалось извлечь диск «%s»:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Съёмные устройства"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Открыть файлы"
@@ -110,31 +110,31 @@ msgstr ""
"умолчанию заголовки располагаются снизу). При изменении этого параметра, "
"чтобы оно вступило в силу, необходимо перезапустить Shell."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Места"
#: extensions/places-menu/placeDisplay.js:46
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "Не удалось запустить «%s»"
#: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "Не удалось смонтировать том для «%s»"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Компьютер"
#: extensions/places-menu/placeDisplay.js:359
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "Домашняя папка"
#: extensions/places-menu/placeDisplay.js:404
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "Обзор сети"
@@ -175,28 +175,28 @@ msgstr "Восстановить"
msgid "Maximize"
msgstr "Развернуть"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "Свернуть все"
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "Вернуть все"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "Развернуть все"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "Восстановить все"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "Закрыть все"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "Список окон"
@@ -214,14 +214,14 @@ msgstr ""
"«always» — всегда."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "Отображать окна со всех рабочих областей"
msgstr "Отображать окна со всех рабочих столов"
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
msgid "Whether to show windows from all workspaces or only the current one."
msgstr ""
"Показывать ли список окон со всех рабочих областей или только с текущей."
"Показывать ли список окон со всех рабочих столов или только с текущего."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
msgid "Show the window list on all monitors"
@@ -235,41 +235,40 @@ msgstr ""
"Показывать ли список окон на всех подключенных мониторах или только на "
"основном."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Группировка окон"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Никогда не группировать окна"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Группировать окна, если место ограничено"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Всегда группировать окна"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Показывать на всех мониторах"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Индикатор рабочей области"
msgstr "Индикатор рабочих столов"
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Названия рабочих областей"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Рабочая область %d"
msgstr "Рабочий стол %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Названия рабочих столов"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Добавить рабочую область"
msgstr "Добавить рабочий стол"

170
po/tr.po
View File

@@ -1,5 +1,5 @@
# Turkish translation for gnome-shell-extensions.
# Copyright (C) 2012-2019 gnome-shell-extensions's COPYRIGHT HOLDER
# Copyright (C) 2012-2022 gnome-shell-extensions's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-shell-extensions package.
#
# Osman Karagöz <osmank3@gmail.com>, 2012.
@@ -14,7 +14,7 @@ msgstr ""
"Project-Id-Version: gnome-shell-extensions master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
"issues\n"
"POT-Creation-Date: 2021-11-06 14:08+0000\n"
"POT-Creation-Date: 2022-07-10 12:54+0000\n"
"PO-Revision-Date: 2022-02-14 01:35+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"Language-Team: Turkish <gnome-turk@gnome.org>\n"
@@ -42,11 +42,11 @@ msgstr "Wayland üstünde GNOME Klasik"
msgid "GNOME Classic on Xorg"
msgstr "Xorg üstünde GNOME Klasik"
#: extensions/apps-menu/extension.js:112
#: extensions/apps-menu/extension.js:118
msgid "Favorites"
msgstr "Gözdeler"
#: extensions/apps-menu/extension.js:366
#: extensions/apps-menu/extension.js:379
msgid "Applications"
msgstr "Uygulamalar"
@@ -62,26 +62,26 @@ msgstr ""
"Her biri, bir uygulama kimliği (masaüstü dosya adı) ardından gelen iki nokta "
"üst üste ve çalışma alanı numarasını içeren dizgeler listesi"
#: extensions/auto-move-windows/prefs.js:34
#: extensions/auto-move-windows/prefs.js:152
msgid "Workspace Rules"
msgstr "Çalışma Alanı Kuralları"
#: extensions/auto-move-windows/prefs.js:236
#: extensions/auto-move-windows/prefs.js:306
msgid "Add Rule"
msgstr "Kural Ekle"
#. TRANSLATORS: %s is the filesystem name
#: extensions/drive-menu/extension.js:133
#: extensions/places-menu/placeDisplay.js:233
#: extensions/drive-menu/extension.js:126
#: extensions/places-menu/placeDisplay.js:210
#, javascript-format
msgid "Ejecting drive “%s” failed:"
msgstr "“%s” sürücüsü çıkarılamadı:"
#: extensions/drive-menu/extension.js:149
#: extensions/drive-menu/extension.js:145
msgid "Removable devices"
msgstr "Çıkarılabilir aygıtlar"
#: extensions/drive-menu/extension.js:171
#: extensions/drive-menu/extension.js:167
msgid "Open Files"
msgstr "Dosyaları Aç"
@@ -96,9 +96,9 @@ msgid ""
"This setting applies only with the natural placement strategy."
msgstr ""
"Ekran en-boy oranına uyarak ve sınır kutucuğunu küçültüp daha da "
"sıkılaştırarak, pencere küçük resimlerini yerleştirmek için ekranda daha "
"çok alan kullanmayı dene. Bu seçenek yalnızca doğal yerleştirme stratejisi "
"ile geçerlidir."
"sıkılaştırarak, pencere küçük resimlerini yerleştirmek için ekranda daha çok "
"alan kullanmayı dene. Bu seçenek yalnızca doğal yerleştirme stratejisi ile "
"geçerlidir."
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
msgid "Place window captions on top"
@@ -115,31 +115,31 @@ msgstr ""
"Yapılan değişikliklerin etkili olması için kabuğun yeniden başlatılması "
"gerekir."
#: extensions/places-menu/extension.js:88
#: extensions/places-menu/extension.js:91
#: extensions/places-menu/extension.js:94
#: extensions/places-menu/extension.js:97
msgid "Places"
msgstr "Yerler"
#: extensions/places-menu/placeDisplay.js:46
#: extensions/places-menu/placeDisplay.js:49
#, javascript-format
msgid "Failed to launch “%s”"
msgstr "“%s” başlatılamadı"
#: extensions/places-menu/placeDisplay.js:61
#: extensions/places-menu/placeDisplay.js:64
#, javascript-format
msgid "Failed to mount volume for “%s”"
msgstr "“%s” için birim bağlanamadı"
#: extensions/places-menu/placeDisplay.js:125
#: extensions/places-menu/placeDisplay.js:148
#: extensions/places-menu/placeDisplay.js:171
msgid "Computer"
msgstr "Bilgisayar"
#: extensions/places-menu/placeDisplay.js:359
#: extensions/places-menu/placeDisplay.js:336
msgid "Home"
msgstr "Ev"
#: extensions/places-menu/placeDisplay.js:404
#: extensions/places-menu/placeDisplay.js:381
msgid "Browse Network"
msgstr "Ağa Gözat"
@@ -179,27 +179,27 @@ msgstr "Önceki duruma getir"
msgid "Maximize"
msgstr "En büyük duruma getir"
#: extensions/window-list/extension.js:434
#: extensions/window-list/extension.js:483
msgid "Minimize all"
msgstr "Tümünü simge durumuna küçült"
#: extensions/window-list/extension.js:440
#: extensions/window-list/extension.js:489
msgid "Unminimize all"
msgstr "Tümünü önceki duruma getir"
#: extensions/window-list/extension.js:446
#: extensions/window-list/extension.js:495
msgid "Maximize all"
msgstr "Tümünü en büyük duruma getir"
#: extensions/window-list/extension.js:454
#: extensions/window-list/extension.js:503
msgid "Unmaximize all"
msgstr "Tümünü önceki duruma getir"
#: extensions/window-list/extension.js:462
#: extensions/window-list/extension.js:511
msgid "Close all"
msgstr "Tümünü kapat"
#: extensions/window-list/extension.js:741
#: extensions/window-list/extension.js:795
msgid "Window List"
msgstr "Pencere Listesi"
@@ -217,7 +217,7 @@ msgstr ""
"“always” (her zaman)."
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
#: extensions/window-list/prefs.js:86
#: extensions/window-list/prefs.js:79
msgid "Show windows from all workspaces"
msgstr "Tüm çalışma alanlarındaki pencereleri göster"
@@ -236,129 +236,43 @@ msgid ""
"Whether to show the window list on all connected monitors or only on the "
"primary one."
msgstr ""
"Pencere listesinin tüm bağlı monitörlerde mi yoksa yalnızca birincil monitörde "
"mi gösterileceğini belirtir."
"Pencere listesinin tüm bağlı monitörlerde mi yoksa yalnızca birincil "
"monitörde mi gösterileceğini belirtir."
#: extensions/window-list/prefs.js:39
#: extensions/window-list/prefs.js:35
msgid "Window Grouping"
msgstr "Pencere Kümeleme"
#: extensions/window-list/prefs.js:63
#: extensions/window-list/prefs.js:40
msgid "Never group windows"
msgstr "Pencereleri asla kümeleme"
#: extensions/window-list/prefs.js:64
#: extensions/window-list/prefs.js:41
msgid "Group windows when space is limited"
msgstr "Yer kısıtlıyken pencereleri kümele"
#: extensions/window-list/prefs.js:65
#: extensions/window-list/prefs.js:42
msgid "Always group windows"
msgstr "Pencereleri her zaman kümele"
#: extensions/window-list/prefs.js:81
#: extensions/window-list/prefs.js:66
msgid "Show on all monitors"
msgstr "Tüm monitörlerde göster"
#: extensions/window-list/workspaceIndicator.js:249
#: extensions/workspace-indicator/extension.js:254
#: extensions/window-list/workspaceIndicator.js:261
#: extensions/workspace-indicator/extension.js:266
msgid "Workspace Indicator"
msgstr "Çalışma Alanı Belirteci"
#: extensions/workspace-indicator/prefs.js:33
msgid "Workspace Names"
msgstr "Çalışma Alanı Adları"
#: extensions/workspace-indicator/prefs.js:66
#: extensions/workspace-indicator/prefs.js:62
#, javascript-format
msgid "Workspace %d"
msgstr "Çalışma Alanı %d"
#: extensions/workspace-indicator/prefs.js:207
#: extensions/workspace-indicator/prefs.js:129
msgid "Workspace Names"
msgstr "Çalışma Alanı Adları"
#: extensions/workspace-indicator/prefs.js:255
msgid "Add Workspace"
msgstr "Çalışma Alanı Ekle"
#~ msgid "Application"
#~ msgstr "Uygulama"
#~ msgid "Create new matching rule"
#~ msgstr "Yeni bir eşleşme kuralı oluştur"
#~ msgid "Add"
#~ msgstr "Ekle"
#~ msgid "Name"
#~ msgstr "Ad"
#~ msgid "Attach modal dialog to the parent window"
#~ msgstr "Yardımcı iletişim penceresini ana pencereye iliştir"
#~ msgid ""
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
#~ msgstr ""
#~ "Bu anahtar, GNOME Shell çalışırken org.gnome.mutter içindeki anahtarı "
#~ "geçersiz kılar."
#~ msgid "Arrangement of buttons on the titlebar"
#~ msgstr "Başlık çubuğundaki düğmelerin düzeni"
#~ msgid ""
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
#~ "running GNOME Shell."
#~ msgstr ""
#~ "Bu anahtar, GNOME Kabuğu çalışırken org.gnome.desktop.wm.preferences "
#~ "içindeki anahtarı geçersiz kılar."
#~ msgid "Enable edge tiling when dropping windows on screen edges"
#~ msgstr ""
#~ "Pencereler ekran kenarlarında bırakıldığında kenar döşemeyi etkinleştir"
#~ msgid "Workspaces only on primary monitor"
#~ msgstr "Çalışma alanları sadece birincil ekranda"
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
#~ msgstr ""
#~ "Fare kipinde odak değişikliklerini işaretçi hareketi durana kadar beklet"
#~ msgid "Thumbnail only"
#~ msgstr "Yalnızca küçük resim"
#~ msgid "Application icon only"
#~ msgstr "Sadece uygulama simgesi"
#~ msgid "Thumbnail and application icon"
#~ msgstr "Küçük resim ve uygulama simgesi"
#~ msgid "Present windows as"
#~ msgstr "Pencereleri farklı sun"
#~ msgid "Activities Overview"
#~ msgstr "Etkinlikler Genel Görünümü"
#~ msgid "Hello, world!"
#~ msgstr "Merhaba dünya!"
#~ msgid "Alternative greeting text."
#~ msgstr "Alternatif karşılama metni."
#~ msgid ""
#~ "If not empty, it contains the text that will be shown when clicking on "
#~ "the panel."
#~ msgstr "Eğer boş değilse, panele tıklandığında gösterilecek metni içerir."
#~ msgid "Message"
#~ msgstr "İleti"
#~ msgid ""
#~ "Example aims to show how to build well behaved extensions for the Shell "
#~ "and as such it has little functionality on its own.\n"
#~ "Nevertheless its possible to customize the greeting message."
#~ msgstr ""
#~ "Bu örnek, Shell için uygun eklentilerin nasıl geliştirileceğini "
#~ "göstermeyi amaçlar; bu yüzden kendi başına çok az işleve sahiptir.\n"
#~ "Yine de karşılama iletisini özelleştirmek mümkündür."
#~ msgid "CPU"
#~ msgstr "İşlemci"
#~ msgid "Memory"
#~ msgstr "Bellek"