From 7c30f35b12728cfa754fd05098ad43c089d880c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 5 Oct 2020 15:43:44 +0200 Subject: [PATCH 01/99] Bump version to 40.alpha The GNOME project has adopted a new versioning scheme[0], and GNOME 3.38 will be followed by GNOME 40. Open the new development cycle by switching to the new scheme, as well as to post-release bumps as recommended. [0] https://discourse.gnome.org/t/new-gnome-versioning-scheme/4235 https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/131 --- meson.build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/meson.build b/meson.build index f07b82ed..10be57bc 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '3.38.1', + version: '40.alpha', meson_version: '>= 0.44.0', license: 'GPL2+' ) @@ -21,9 +21,9 @@ sessiondir = join_paths(datadir, 'gnome-session', 'sessions') xsessiondir = join_paths(datadir, 'xsessions') ver_arr = meson.project_version().split('.') -if ver_arr[1].to_int().is_even() - shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1]) -else +if ver_arr[1].version_compare('>=0') + shell_version = ver_arr[0] +else # pre-release (alpha, beta, rc) shell_version = '.'.join(ver_arr) endif From b65f362f0d65b54a155eda78da773b0369d23669 Mon Sep 17 00:00:00 2001 From: Sergio Costas Date: Sat, 3 Oct 2020 15:12:24 +0200 Subject: [PATCH 02/99] window-list: Honor changes in skip-taskbar property Although window-list checks the 'skip-taskbar' property when a window is added to the desktop to decide wether it should be shown in the bar or not, it doesn't honor that when the property is changed after a window has already been added. Since the new WaylandClient API allows to change this property for already mapped windows, supporting this is a good idea. This patch fixes this. Fix https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/130 --- extensions/window-list/extension.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 523ffb2f..3c45d002 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -352,6 +352,9 @@ class WindowButton extends BaseButton { super._init(perMonitor, monitorIndex); this.metaWindow = metaWindow; + this._skipTaskbarId = metaWindow.connect('notify::skip-taskbar', () => { + this._updateVisibility(); + }); this._updateVisibility(); this._windowTitle = new WindowTitle(this.metaWindow); @@ -412,6 +415,7 @@ class WindowButton extends BaseButton { _onDestroy() { super._onDestroy(); + this.metaWindow.disconnect(this._skipTaskbarId); this.metaWindow.disconnect(this._workspaceChangedId); global.display.disconnect(this._notifyFocusId); this._contextMenu.destroy(); @@ -948,9 +952,6 @@ class WindowList extends St.Widget { } _onWindowAdded(ws, win) { - if (win.skip_taskbar) - return; - if (!this._grouped) this._checkGrouping(); From 04b23ec68ff4a6b84c2a247c5bc3e6e1756a5dea Mon Sep 17 00:00:00 2001 From: Fabio Tomat Date: Sat, 17 Oct 2020 20:14:41 +0000 Subject: [PATCH 03/99] Update Friulian translation --- po/fur.po | 60 +++++++++++++++++++++++++++---------------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/po/fur.po b/po/fur.po index 0c07bf90..c3a071c3 100644 --- a/po/fur.po +++ b/po/fur.po @@ -8,23 +8,23 @@ 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: 2020-05-28 00:55+0000\n" -"PO-Revision-Date: 2020-07-12 18:10+0200\n" +"POT-Creation-Date: 2020-10-08 21:24+0000\n" +"PO-Revision-Date: 2020-10-17 22:14+0200\n" "Last-Translator: Fabio Tomat \n" "Language-Team: Friulian \n" "Language: fur\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.4.1\n" -#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 +#: data/gnome-classic.desktop.in:3 msgid "GNOME Classic" msgstr "GNOME Classic" #: data/gnome-classic.desktop.in:4 msgid "This session logs you into GNOME Classic" -msgstr "Cheste session a si invie cun GNOME classic" +msgstr "Cheste session ti fâs jentrâ in GNOME Classic" #: extensions/apps-menu/extension.js:113 msgid "Favorites" @@ -43,8 +43,8 @@ msgid "" "A list of strings, each containing an application id (desktop file name), " "followed by a colon and the workspace number" msgstr "" -"Une liste di stringhis, ogniune a ten il ID di une aplicazion (non dal file ." -"desktop), seguît di doi ponts e il numar dal spazi di lavôr" +"Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ." +"desktop), cun daûr doi ponts e il numar dal spazi di lavôr" #: extensions/auto-move-windows/prefs.js:35 msgid "Workspace Rules" @@ -63,15 +63,15 @@ msgstr "No si è rivâts a parâ fûr la unitât “%s”»:" #: extensions/drive-menu/extension.js:128 msgid "Removable devices" -msgstr "Argagn rimovibil" +msgstr "Dispositîfs estraibii" #: extensions/drive-menu/extension.js:155 msgid "Open Files" -msgstr "Vierç i file" +msgstr "Vierç i files" #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 msgid "Use more screen for windows" -msgstr "Dopre plui spazi par i balcons" +msgstr "Dopre plui schermi pai barcons" #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 msgid "" @@ -79,14 +79,14 @@ msgid "" "aspect ratio, and consolidating them further to reduce the bounding box. " "This setting applies only with the natural placement strategy." msgstr "" -"Cîr di doprâ plui puest par plaçâ lis miniaturis dai balcons, adatânsi al " -"rapuart di aspiet dal visôr e consolidanlis ancjemo di plui par ridusi il " -"spazi complessîf. Cheste impostazion a si apliche dome se l'algoritmo di " -"posizionament al è \"natural\"." +"Cîr di doprâ plui schermi par plaçâ lis miniaturis dai barcons, adatant il " +"rapuart di aspiet dal visôr e consolidant ancjemo di plui lis miniaturis par " +"ridusi il spazi complessîf. Cheste impostazion si apliche dome se " +"l'algoritmi di plaçament al è naturâl." #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 msgid "Place window captions on top" -msgstr "Met il titul dal balcon insomp" +msgstr "Met il titul dal barcon parsore" #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 msgid "" @@ -94,9 +94,9 @@ msgid "" "shell default of placing it at the bottom. Changing this setting requires " "restarting the shell to have any effect." msgstr "" -"Se VÊR, al place i titui dai balcons insomp as relativis miniaturis, lant in " -"volte al compuartament normâl de shell, che lis place in bas.Cambiant cheste " -"impostazion a si scugne tornâ a inviâ la shell." +"Se VÊR, al place i titui dai barcons denant des relativis miniaturis, " +"sorpassant il compuartament predefinît de shell, che lis place in bas. " +"Cambiant cheste impostazion si scugne tornâ a inviâ la shell." #: extensions/places-menu/extension.js:89 #: extensions/places-menu/extension.js:93 @@ -120,7 +120,7 @@ msgstr "Computer" #: extensions/places-menu/placeDisplay.js:359 msgid "Home" -msgstr "Cjase" +msgstr "Home" #: extensions/places-menu/placeDisplay.js:404 msgid "Browse Network" @@ -128,11 +128,11 @@ msgstr "Esplore rêt" #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 msgid "Cycle Screenshot Sizes" -msgstr "Dimensions caturis di schermi ciclichis" +msgstr "Dimensions videadis catuardis ciclichis" #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 msgid "Cycle Screenshot Sizes Backward" -msgstr "Dimensions caturis di schermi ciclichis indaûr" +msgstr "Dimensions videadis caturadis ciclichis indaûr" #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 msgid "Theme name" @@ -184,19 +184,19 @@ msgstr "Siere ducj" #: extensions/window-list/extension.js:734 msgid "Window List" -msgstr "Liste balcons" +msgstr "Liste barcons" #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12 msgid "When to group windows" -msgstr "Quant ingrumâ i balcons" +msgstr "Cuant meti in grup i barcons" #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 msgid "" "Decides when to group windows from the same application on the window list. " "Possible values are “never”, “auto” and “always”." msgstr "" -"Al decît cuant intropâ i balcons de stesse aplicazion su le liste dai " -"balcons. I pussibii valôrs a son “never”, “auto” e “always”." +"Al decît cuant meti dongje i barcons de stesse aplicazion su la liste dai " +"barcons. I valôrs pussibii a son “never”, “auto” e “always”." #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 #: extensions/window-list/prefs.js:100 @@ -218,23 +218,23 @@ msgid "" "primary one." msgstr "" "Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul " -"principâl." +"chel principâl." #: extensions/window-list/prefs.js:29 msgid "Window Grouping" -msgstr "Ingrumament balcons" +msgstr "Intropament di barcons" #: extensions/window-list/prefs.js:58 msgid "Never group windows" -msgstr "No ingrumâ i balcons" +msgstr "No sta meti mai in grup i barcons" #: extensions/window-list/prefs.js:59 msgid "Group windows when space is limited" -msgstr "Ingrume i balcons quanche al'è pôc puest" +msgstr "Met dongje i barcons cuant che il spazi al è limitât" #: extensions/window-list/prefs.js:60 msgid "Always group windows" -msgstr "Ingrume simpri i balcons" +msgstr "Met simpri in grup i barcons" #: extensions/window-list/prefs.js:94 msgid "Show on all monitors" From 623bc6dbf318633a7b2ad0d86763e9721c578087 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 00:11:06 +0200 Subject: [PATCH 04/99] workspace-indicator: Adjust to overview changes Window DND in the overview is now based on the metaWindow, not the window actor (misnamed as "real window"). https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133 --- extensions/workspace-indicator/extension.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index 6d13acf5..e48ff1ce 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -58,8 +58,8 @@ class WindowPreview extends St.Button { } // needed for DND - get realWindow() { - return this._window.get_compositor_private(); + get metaWindow() { + return this._window; } _onDestroy() { @@ -140,16 +140,15 @@ class WorkspaceThumbnail extends St.Button { } acceptDrop(source) { - if (!source.realWindow) + if (!source.metaWindow) return false; - let window = source.realWindow.get_meta_window(); - this._moveWindow(window); + this._moveWindow(source.metaWindow); return true; } handleDragOver(source) { - if (source.realWindow) + if (source.metaWindow) return DND.DragMotionResult.MOVE_DROP; else return DND.DragMotionResult.CONTINUE; From 52abf740884a68f7b5f87a6972be1fba5d00168a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 02:42:55 +0200 Subject: [PATCH 05/99] window-list: Adjust to overview changes Window DND in the overview is now based on the metaWindow, not the window actor (misnamed as "real window"). https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/133 --- extensions/window-list/workspaceIndicator.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js index ca3dc615..99604d81 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -52,8 +52,8 @@ class WindowPreview extends St.Button { } // needed for DND - get realWindow() { - return this._window.get_compositor_private(); + get metaWindow() { + return this._window; } _onDestroy() { @@ -134,16 +134,15 @@ class WorkspaceThumbnail extends St.Button { } acceptDrop(source) { - if (!source.realWindow) + if (!source.metaWindow) return false; - let window = source.realWindow.get_meta_window(); - this._moveWindow(window); + this._moveWindow(source.metaWindow); return true; } handleDragOver(source) { - if (source.realWindow) + if (source.metaWindow) return DND.DragMotionResult.MOVE_DROP; else return DND.DragMotionResult.CONTINUE; From 81be1d2e2f42eaedfe19db0dc530fb7b27b9078f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 02:34:41 +0200 Subject: [PATCH 06/99] workspace-indicator: Use custom layout manager for thumbnails The current code positions window previews explicitly using a fixed layout manager. For that it relies on a valid parent allocation, which is error-prone and frequently results in warnings. Address this by moving the positioning code into a custom layout manager, and only update the visibility from the window preview. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260 --- extensions/workspace-indicator/extension.js | 67 +++++++++++---------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index e48ff1ce..21080c10 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -30,27 +30,15 @@ class WindowPreview extends St.Button { this.connect('destroy', this._onDestroy.bind(this)); this._sizeChangedId = this._window.connect('size-changed', - this._relayout.bind(this)); + () => this.queue_relayout()); this._positionChangedId = this._window.connect('position-changed', - this._relayout.bind(this)); + () => this.queue_relayout()); this._minimizedChangedId = this._window.connect('notify::minimized', - this._relayout.bind(this)); + this._updateVisible.bind(this)); this._monitorEnteredId = global.display.connect('window-entered-monitor', - this._relayout.bind(this)); + this._updateVisible.bind(this)); this._monitorLeftId = global.display.connect('window-left-monitor', - this._relayout.bind(this)); - - // Do initial layout when we get a parent - let id = this.connect('parent-set', () => { - this.disconnect(id); - if (!this.get_parent()) - return; - this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { - this._laterId = 0; - this._relayout(); - return false; - }); - }); + this._updateVisible.bind(this)); this._focusChangedId = global.display.connect('notify::focus-window', this._onFocusChanged.bind(this)); @@ -69,8 +57,6 @@ class WindowPreview extends St.Button { global.display.disconnect(this._monitorEnteredId); global.display.disconnect(this._monitorLeftId); global.display.disconnect(this._focusChangedId); - if (this._laterId) - Meta.later_remove(this._laterId); } _onFocusChanged() { @@ -80,26 +66,41 @@ class WindowPreview extends St.Button { this.remove_style_class_name('active'); } - _relayout() { + _updateVisible() { let monitor = Main.layoutManager.findIndexForActor(this); this.visible = monitor === this._window.get_monitor() && this._window.window_type !== Meta.WindowType.DESKTOP && this._window.showing_on_its_workspace(); + } +}); - if (!this.visible) - return; +let WorkspaceLayout = GObject.registerClass( +class WorkspaceLayout extends Clutter.LayoutManager { + vfunc_get_preferred_width() { + return [0, 0]; + } - let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); - let hscale = this.get_parent().allocation.get_width() / workArea.width; - let vscale = this.get_parent().allocation.get_height() / workArea.height; + vfunc_get_preferred_height() { + return [0, 0]; + } - let frameRect = this._window.get_frame_rect(); - this.set_size( - Math.round(Math.min(frameRect.width, workArea.width) * hscale), - Math.round(Math.min(frameRect.height, workArea.height) * vscale)); - this.set_position( - Math.round(frameRect.x * hscale), - Math.round(frameRect.y * vscale)); + vfunc_allocate(container, box) { + const monitor = Main.layoutManager.findIndexForActor(container); + const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); + const hscale = box.get_width() / workArea.width; + const vscale = box.get_height() / workArea.height; + + for (const child of container) { + const childBox = new Clutter.ActorBox(); + const frameRect = child.metaWindow.get_frame_rect(); + childBox.set_size( + Math.min(frameRect.width, workArea.width) * hscale, + Math.min(frameRect.height, workArea.height) * vscale); + childBox.set_origin( + Math.round(frameRect.x * hscale), + Math.round(frameRect.y * vscale)); + child.allocate(childBox); + } } }); @@ -109,7 +110,7 @@ class WorkspaceThumbnail extends St.Button { super._init({ style_class: 'workspace', child: new Clutter.Actor({ - layout_manager: new Clutter.BinLayout(), + layout_manager: new WorkspaceLayout(), clip_to_allocation: true, }), }); From 6ed1f45ffd126b6c2c2f5687e1fd3b2ac1807a8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 02:48:43 +0200 Subject: [PATCH 07/99] window-list: Use custom layout manager for thumbnails The current code positions window previews explicitly using a fixed layout manager. For that it relies on a valid parent allocation, which is error-prone and frequently results in warnings. Address this by moving the positioning code into a custom layout manager, and only update the visibility from the window preview. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/260 --- extensions/window-list/workspaceIndicator.js | 67 ++++++++++---------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js index 99604d81..698cc9df 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -24,27 +24,15 @@ class WindowPreview extends St.Button { this.connect('destroy', this._onDestroy.bind(this)); this._sizeChangedId = this._window.connect('size-changed', - this._relayout.bind(this)); + () => this.queue_relayout()); this._positionChangedId = this._window.connect('position-changed', - this._relayout.bind(this)); + () => this.queue_relayout()); this._minimizedChangedId = this._window.connect('notify::minimized', - this._relayout.bind(this)); + this._updateVisible.bind(this)); this._monitorEnteredId = global.display.connect('window-entered-monitor', - this._relayout.bind(this)); + this._updateVisible.bind(this)); this._monitorLeftId = global.display.connect('window-left-monitor', - this._relayout.bind(this)); - - // Do initial layout when we get a parent - let id = this.connect('parent-set', () => { - this.disconnect(id); - if (!this.get_parent()) - return; - this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => { - this._laterId = 0; - this._relayout(); - return false; - }); - }); + this._updateVisible.bind(this)); this._focusChangedId = global.display.connect('notify::focus-window', this._onFocusChanged.bind(this)); @@ -63,8 +51,6 @@ class WindowPreview extends St.Button { global.display.disconnect(this._monitorEnteredId); global.display.disconnect(this._monitorLeftId); global.display.disconnect(this._focusChangedId); - if (this._laterId) - Meta.later_remove(this._laterId); } _onFocusChanged() { @@ -74,26 +60,41 @@ class WindowPreview extends St.Button { this.remove_style_class_name('active'); } - _relayout() { + _updateVisible() { let monitor = Main.layoutManager.findIndexForActor(this); this.visible = monitor === this._window.get_monitor() && this._window.window_type !== Meta.WindowType.DESKTOP && this._window.showing_on_its_workspace(); + } +}); - if (!this.visible) - return; +let WorkspaceLayout = GObject.registerClass( +class WorkspaceLayout extends Clutter.LayoutManager { + vfunc_get_preferred_width() { + return [0, 0]; + } - let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); - let hscale = this.get_parent().allocation.get_width() / workArea.width; - let vscale = this.get_parent().allocation.get_height() / workArea.height; + vfunc_get_preferred_height() { + return [0, 0]; + } - let frameRect = this._window.get_frame_rect(); - this.set_size( - Math.round(Math.min(frameRect.width, workArea.width) * hscale), - Math.round(Math.min(frameRect.height, workArea.height) * vscale)); - this.set_position( - Math.round(frameRect.x * hscale), - Math.round(frameRect.y * vscale)); + vfunc_allocate(container, box) { + const monitor = Main.layoutManager.findIndexForActor(container); + const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); + const hscale = box.get_width() / workArea.width; + const vscale = box.get_height() / workArea.height; + + for (const child of container) { + const childBox = new Clutter.ActorBox(); + const frameRect = child.metaWindow.get_frame_rect(); + childBox.set_size( + Math.round(Math.min(frameRect.width, workArea.width) * hscale), + Math.round(Math.min(frameRect.height, workArea.height) * vscale)); + childBox.set_origin( + Math.round(frameRect.x * hscale), + Math.round(frameRect.y * vscale)); + child.allocate(childBox); + } } }); @@ -103,7 +104,7 @@ class WorkspaceThumbnail extends St.Button { super._init({ style_class: 'workspace', child: new Clutter.Actor({ - layout_manager: new Clutter.BinLayout(), + layout_manager: new WorkspaceLayout(), clip_to_allocation: true, }), }); From 9445bd220532ac6ccb63d4bf4c3d5ec68893b866 Mon Sep 17 00:00:00 2001 From: Jordi Mas Date: Fri, 23 Oct 2020 21:10:23 +0200 Subject: [PATCH 08/99] Update Catalan translation --- po/ca.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/ca.po b/po/ca.po index cc7a1f14..d17003f9 100644 --- a/po/ca.po +++ b/po/ca.po @@ -83,7 +83,7 @@ msgid "" msgstr "" "Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de " "les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-" -"les més per a reduir la capsa que les envolta. Aquest paràmetre de " +"les més per a reduir la caixa que les envolta. Aquest paràmetre de " "configuració només s'aplica a l'estratègia de posicionament de finestres " "natural." From ba55bacab42aa48c60412a32f9f1326585e80452 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 7 Nov 2020 01:52:42 +0100 Subject: [PATCH 09/99] ci: Use junit output format Gitlab has built-in support for junit reports, so switch eslint's output to that format. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/136 --- .gitlab-ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e83c1eda..fcd0fbcf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ stages: - build variables: - LINT_LOG: "eslint-report.txt" + LINT_LOG: "eslint-report.xml" JS_LOG: "js-report.txt" .only_default: &only_default @@ -36,12 +36,13 @@ js_check: eslint: stage: review script: - - eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; } + - eslint -o $LINT_LOG -f junit extensions <<: *only_default artifacts: paths: - ${LINT_LOG} - when: on_failure + reports: + junit: ${LINT_LOG} build-bundles: stage: build From 61cf679b8c6c86b62bff1d9e2489320b8a04fa4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 5 Nov 2020 22:09:30 +0100 Subject: [PATCH 10/99] auto-move-windows: Exclude sticky windows from empty-check We modify gnome-shell's workspace tracker to only remove empty workspaces from the end. However we currently don't take into account that sticky windows appear on all workspaces, so those are preventing any workspace from getting removed at the moment. Exclude them when determining whether a workspace is empty to get the expected behavior. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/135 --- extensions/auto-move-windows/extension.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js index d99244c0..b9bc3a00 100644 --- a/extensions/auto-move-windows/extension.js +++ b/extensions/auto-move-windows/extension.js @@ -116,10 +116,12 @@ function myCheckWorkspaces() { let keepAliveWorkspaces = []; let foundNonEmpty = false; for (let i = this._workspaces.length - 1; i >= 0; i--) { - if (!foundNonEmpty) - foundNonEmpty = this._workspaces[i].list_windows().length > 0; - else if (!this._workspaces[i]._keepAliveId) + if (!foundNonEmpty) { + foundNonEmpty = this._workspaces[i].list_windows().some( + w => !w.is_on_all_workspaces()); + } else if (!this._workspaces[i]._keepAliveId) { keepAliveWorkspaces.push(this._workspaces[i]); + } } // make sure the original method only removes empty workspaces at the end From ba7e3fc0b50e26425c3b7dceb538855c8b17afa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 14 Nov 2020 00:43:48 +0100 Subject: [PATCH 11/99] cleanup: Remove empty leading/trailing lines in blocks gjs added a new rule to its eslint ruleset that forbids "block padding", so make sure we conform to that rule before syncing up the configuration. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/137 --- extensions/native-window-placement/extension.js | 1 - extensions/places-menu/placeDisplay.js | 1 - extensions/window-list/extension.js | 1 - 3 files changed, 3 deletions(-) diff --git a/extensions/native-window-placement/extension.js b/extensions/native-window-placement/extension.js index de8dec0b..3167df30 100644 --- a/extensions/native-window-placement/extension.js +++ b/extensions/native-window-placement/extension.js @@ -103,7 +103,6 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy { direction++; if (direction === 4) direction = 0; - } let loopCounter = 0; diff --git a/extensions/places-menu/placeDisplay.js b/extensions/places-menu/placeDisplay.js index 3d3b516e..ae9ee9fe 100644 --- a/extensions/places-menu/placeDisplay.js +++ b/extensions/places-menu/placeDisplay.js @@ -486,7 +486,6 @@ var PlacesManager = class { } _reloadBookmarks() { - this._bookmarks = []; let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path()); diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 3c45d002..616bec60 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -612,7 +612,6 @@ class AppButton extends BaseButton { this._contextMenuManager.addMenu(this._appContextMenu); this.label_actor = this._multiWindowTitle.label_actor; } - } _onClicked(actor, button) { From 72c67aacc495cceb19fb1633c58360ade834537a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 15 May 2020 00:26:21 +0200 Subject: [PATCH 12/99] lint: Sync configuration with gjs gjs updated its eslint configuration, so sync our copy. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/137 --- lint/eslintrc-gjs.yml | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lint/eslintrc-gjs.yml b/lint/eslintrc-gjs.yml index 53d5fbd3..13114fa7 100644 --- a/lint/eslintrc-gjs.yml +++ b/lint/eslintrc-gjs.yml @@ -1,4 +1,5 @@ --- +# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later env: es6: true extends: 'eslint:recommended' @@ -24,7 +25,9 @@ rules: # allow: [^vfunc_, ^on_, _instance_init] comma-dangle: - error - - always-multiline + - arrays: always-multiline + objects: always-multiline + functions: never comma-spacing: - error - before: false @@ -87,6 +90,7 @@ rules: - error - all - conditionalAssign: false + nestedBinaryExpressions: false returnAssign: false no-implicit-coercion: - error @@ -105,15 +109,15 @@ rules: no-prototype-builtins: 'off' no-restricted-properties: - error + - object: Lang + property: copyProperties + message: Use Object.assign() - object: Lang property: bind message: Use arrow notation or Function.prototype.bind() - object: Lang property: Class message: Use ES6 classes - - object: imports - property: mainloop - message: Use GLib main loops and timeouts no-restricted-syntax: - error - selector: >- @@ -129,6 +133,8 @@ rules: BlockStatement[body.length=1] CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"] message: _init() that only calls super._init() is unnecessary + - selector: BinaryExpression[operator="instanceof"][right.name="Array"] + message: Use Array.isArray() no-return-assign: error no-return-await: error no-self-compare: error @@ -165,6 +171,9 @@ rules: object-shorthand: error operator-assignment: error operator-linebreak: error + padded-blocks: + - error + - never # These may be a bit controversial, we can try them out and enable them later # prefer-const: error # prefer-destructuring: error @@ -217,12 +226,12 @@ globals: ARGV: readonly Debugger: readonly GIRepositoryGType: readonly + globalThis: readonly imports: readonly Intl: readonly log: readonly logError: readonly print: readonly printerr: readonly - window: readonly parserOptions: - ecmaVersion: 2017 + ecmaVersion: 2020 From c317a876dda15dd3878a21425c3d3cb4e0405e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 19 Nov 2020 00:14:25 +0100 Subject: [PATCH 13/99] ci: Switch to updated gnome-shell image gnome-shell now produces a CI image as part of its pipeline. Use that instead of the old, manually-updated image. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/merge_requests/140 --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index fcd0fbcf..42136326 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2 +image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0 stages: - review @@ -25,7 +25,7 @@ check_commit_log: js_check: stage: review script: - - find extensions -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG + - find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG - (! grep -q . $JS_LOG) <<: *only_default artifacts: From 737c897624e9929a3b4e91fffc0b539447f2494e Mon Sep 17 00:00:00 2001 From: Thun Pin Date: Wed, 18 Nov 2020 23:54:18 +0000 Subject: [PATCH 14/99] window-navigator: Adjust to 3.38 overview changes gnome-shell's overview code changed significantly in 3.38, adjust the extension to work without the separate overlay. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/259 --- extensions/windowsNavigator/extension.js | 134 +++++++++++------------ 1 file changed, 65 insertions(+), 69 deletions(-) diff --git a/extensions/windowsNavigator/extension.js b/extensions/windowsNavigator/extension.js index 088cd3f5..e4513d80 100644 --- a/extensions/windowsNavigator/extension.js +++ b/extensions/windowsNavigator/extension.js @@ -1,45 +1,12 @@ /* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */ /* exported init */ -const { Clutter, GObject, St } = imports.gi; +const { Clutter, Graphene, GObject, St } = imports.gi; const Main = imports.ui.main; const Workspace = imports.ui.workspace; const WorkspacesView = imports.ui.workspacesView; -class MyWindowOverlay extends Workspace.WindowOverlay { - constructor(windowClone, parentActor) { - super(windowClone, parentActor); - - this._id = null; - this._text = new St.Label({ - style_class: 'extension-windowsNavigator-window-tooltip', - visible: false, - }); - parentActor.add_actor(this._text); - } - - showTooltip() { - this._parentActor.set_child_below_sibling(this._text, null); - this._text.show(); - this._text.text = (this._windowClone.slotId + 1).toString(); - } - - hideTooltip() { - if (this._text && this._text.visible) - this._text.hide(); - } - - relayout(animate) { - super.relayout(animate); - - let [cloneX, cloneY, cloneWidth_, cloneHeight_] = this._windowClone.slot; - - let textX = cloneX - 2; - let textY = cloneY - 2; - this._text.set_position(Math.floor(textX) + 5, Math.floor(textY) + 5); - this._parentActor.set_child_below_sibling(this._text, null); - } -} +const WINDOW_SLOT = 4; var MyWorkspace = GObject.registerClass( class MyWorkspace extends Workspace.Workspace { @@ -61,57 +28,89 @@ class MyWorkspace extends Workspace.Workspace { } } + vfunc_allocate(box) { + super.vfunc_allocate(box); + + if (this._tip) + this._tip.allocate_preferred_size(0, 0); + } + showTooltip() { - if (!this._tip || !this._actualGeometry) + if (!this._tip) return; this._tip.text = (this.metaWorkspace.index() + 1).toString(); - - // Hand code this instead of using _getSpacingAndPadding - // because that fails on empty workspaces - let node = this.get_theme_node(); - let padding = { - left: node.get_padding(St.Side.LEFT), - top: node.get_padding(St.Side.TOP), - bottom: node.get_padding(St.Side.BOTTOM), - right: node.get_padding(St.Side.RIGHT), - }; - - let area = Workspace.padArea(this._actualGeometry, padding); - this._tip.x = area.x; - this._tip.y = area.y; this._tip.show(); this.set_child_below_sibling(this._tip, null); } hideTooltip() { - if (!this._tip) - return; - if (!this._tip.get_parent()) - return; - this._tip.hide(); + if (this._tip) + this._tip.hide(); } getWindowWithTooltip(id) { - for (let i = 0; i < this._windows.length; i++) { - if (this._windows[i].slotId + 1 === id) - return this._windows[i].metaWindow; - } - return null; + const slot = this.layout_manager._windowSlots[id - 1]; + return slot ? slot[WINDOW_SLOT].metaWindow : null; } showWindowsTooltips() { - for (let i in this._windowOverlays) { - if (this._windowOverlays[i]) - this._windowOverlays[i].showTooltip(); + for (let i = 0; i < this.layout_manager._windowSlots.length; i++) { + if (this.layout_manager._windowSlots[i]) + this.layout_manager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`); } } hideWindowsTooltips() { - for (let i in this._windowOverlays) { - if (this._windowOverlays[i]) - this._windowOverlays[i].hideTooltip(); + for (let i in this.layout_manager._windowSlots) { + if (this.layout_manager._windowSlots[i]) + this.layout_manager._windowSlots[i][WINDOW_SLOT].hideTooltip(); } } + + // overriding _addWindowClone to apply the tooltip patch on the cloned + // windowPreview + _addWindowClone(metaWindow) { + const clone = super._addWindowClone(metaWindow); + + // appling the tooltip patch + (function patchPreview() { + this._text = new St.Label({ + style_class: 'extension-windowsNavigator-window-tooltip', + visible: false, + }); + + this._text.add_constraint(new Clutter.BindConstraint({ + source: this._borderCenter, + coordinate: Clutter.BindCoordinate.POSITION, + })); + this._text.add_constraint(new Clutter.AlignConstraint({ + source: this._borderCenter, + align_axis: Clutter.AlignAxis.X_AXIS, + pivot_point: new Graphene.Point({ x: 0.5, y: -1 }), + factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0, + })); + this._text.add_constraint(new Clutter.AlignConstraint({ + source: this._borderCenter, + align_axis: Clutter.AlignAxis.Y_AXIS, + pivot_point: new Graphene.Point({ x: -1, y: 0.5 }), + factor: 0, + })); + + this.add_child(this._text); + }).call(clone); + + clone.showTooltip = function (text) { + this._text.set({ text }); + this._text.show(); + }; + + clone.hideTooltip = function () { + if (this._text && this._text.visible) + this._text.hide(); + }; + + return clone; + } }); var MyWorkspacesView = GObject.registerClass( @@ -244,19 +243,16 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView { class Extension { constructor() { - this._origWindowOverlay = Workspace.WindowOverlay; this._origWorkspace = Workspace.Workspace; this._origWorkspacesView = WorkspacesView.WorkspacesView; } enable() { - Workspace.WindowOverlay = MyWindowOverlay; Workspace.Workspace = MyWorkspace; WorkspacesView.WorkspacesView = MyWorkspacesView; } disable() { - Workspace.WindowOverlay = this._origWindowOverlay; Workspace.Workspace = this._origWorkspace; WorkspacesView.WorkspacesView = this._origWorkspacesView; } From 6e5466a4ecd3e1a2f592483ca411fc2c7f2dfe95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 19 Nov 2020 01:12:29 +0100 Subject: [PATCH 15/99] ci: Explicitly specify job dependencies We can speed up CI a bit by allowing build jobs to run in parallel with review jobs. See https://gitlab.gnome.org/help/ci/yaml/README.md#needs for details. Part-of: --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 42136326..3752c579 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,6 +46,7 @@ eslint: build-bundles: stage: build + needs: [] script: - ./export-zips.sh <<: *only_default From 15efbc29bec8ffc7af0bafe5f2ad20b87b46e55f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 6 Nov 2020 17:59:28 +0100 Subject: [PATCH 16/99] ci/check-commit-log: Reverse the merge request URL check Instead of making sure there is a reference to a bug or merge request, make sure there isn't. The reason for this is that marge-bot will always append a merge request URL in the end of the commit message. Part-of: --- .gitlab-ci/check-commit-log.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitlab-ci/check-commit-log.sh b/.gitlab-ci/check-commit-log.sh index 8d0e2ee0..5a469328 100755 --- a/.gitlab-ci/check-commit-log.sh +++ b/.gitlab-ci/check-commit-log.sh @@ -16,16 +16,16 @@ if [ -z "$commits" ]; then exit 1 fi -function commit_message_has_url() { +function commit_message_has_mr_url() { commit=$1 commit_message=$(git show -s --format='format:%b' $commit) - echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)" + echo "$commit_message" | grep -qe "^$CI_MERGE_REQUEST_PROJECT_URL\/\(-\/\)\?merge_requests\/$CI_MERGE_REQUEST_IID$" return $? } for commit in $commits; do - if ! commit_message_has_url $commit; then - echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)" + if commit_message_has_mr_url $commit; then + echo "Commit $(echo $commit | cut -c -8) message must not contain a link to its own merge request" exit 1 fi done From a7939f18d1cd96ac52ebdbf1c66940ae695c5dbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 6 Nov 2020 18:02:23 +0100 Subject: [PATCH 17/99] ci/check-commit-log: Generate JUnit report This means the merge request will see the commit log review issues causing the pipeline to fail without having to dig through CI log files. Part-of: --- .gitlab-ci.yml | 6 +++++ .gitlab-ci/check-commit-log.sh | 47 ++++++++++++++++++++++++++++++++-- 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3752c579..0617a691 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,6 +21,12 @@ check_commit_log: - ./.gitlab-ci/check-commit-log.sh only: - merge_requests + artifacts: + expire_in: 1 week + paths: + - commit-message-junit-report.xml + reports: + junit: commit-message-junit-report.xml js_check: stage: review diff --git a/.gitlab-ci/check-commit-log.sh b/.gitlab-ci/check-commit-log.sh index 5a469328..7cc5b289 100755 --- a/.gitlab-ci/check-commit-log.sh +++ b/.gitlab-ci/check-commit-log.sh @@ -16,6 +16,42 @@ if [ -z "$commits" ]; then exit 1 fi +JUNIT_REPORT_TESTS_FILE=$(mktemp) + +function append_failed_test_case() { + test_name="$1" + commit="$2" + test_message="$3" + commit_short=${commit:0:8} + + echo "" >> $JUNIT_REPORT_TESTS_FILE + echo &>2 "Commit check failed: $commit_short: $test_message" +} + +function append_passed_test_case() { + test_name="$1" + commit="$2" + commit_short=${commit:0:8} + echo "" >> $JUNIT_REPORT_TESTS_FILE +} + +function generate_junit_report() { + junit_report_file="$1" + num_tests=$(cat "$JUNIT_REPORT_TESTS_FILE" | wc -l) + num_failures=$(grep '' "$JUNIT_REPORT_TESTS_FILE" | wc -l ) + + echo Generating JUnit report \"$(pwd)/$junit_report_file\" with $num_tests tests and $num_failures failures. + + cat > $junit_report_file << __EOF__ + + + +$(< $JUNIT_REPORT_TESTS_FILE) + + +__EOF__ +} + function commit_message_has_mr_url() { commit=$1 commit_message=$(git show -s --format='format:%b' $commit) @@ -25,7 +61,14 @@ function commit_message_has_mr_url() { for commit in $commits; do if commit_message_has_mr_url $commit; then - echo "Commit $(echo $commit | cut -c -8) message must not contain a link to its own merge request" - exit 1 + append_failed_test_case superfluous_url $commit \ + "Commit message must not contain a link to its own merge request" + else + append_passed_test_case superfluous_url $commit fi done + +generate_junit_report commit-message-junit-report.xml + +! grep -q ' Date: Fri, 6 Nov 2020 18:07:07 +0100 Subject: [PATCH 18/99] ci: Wait for 'check-commit-log' before continuing The check-commit-log is quick, and to get a result early is helpful as one can then more quickly check for failures via the report provided via the JUnit report. Part-of: --- .gitlab-ci.yml | 5 ++--- .gitlab-ci/check-commit-log.sh | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0617a691..2ed165c0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -19,8 +19,7 @@ check_commit_log: stage: review script: - ./.gitlab-ci/check-commit-log.sh - only: - - merge_requests + <<: *only_default artifacts: expire_in: 1 week paths: @@ -52,7 +51,7 @@ eslint: build-bundles: stage: build - needs: [] + needs: ["check_commit_log"] script: - ./export-zips.sh <<: *only_default diff --git a/.gitlab-ci/check-commit-log.sh b/.gitlab-ci/check-commit-log.sh index 7cc5b289..00fd8938 100755 --- a/.gitlab-ci/check-commit-log.sh +++ b/.gitlab-ci/check-commit-log.sh @@ -1,8 +1,8 @@ #!/usr/bin/env bash if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then - echo Cannot review non-merge request - exit 1 + echo This is not a merge request, skipping + exit 0 fi git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME From 4b9f4b1b63d053043619ec220ca351851d45c7ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 6 Nov 2020 18:11:00 +0100 Subject: [PATCH 19/99] doap: Make marge-bot a maintainer This is so that the merge button can be restricted to maintainers, thus decreasing the risk of merging using the merge button. Part-of: --- gnome-shell-extensions.doap | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnome-shell-extensions.doap b/gnome-shell-extensions.doap index 74ca9ddf..edf3cbca 100644 --- a/gnome-shell-extensions.doap +++ b/gnome-shell-extensions.doap @@ -34,4 +34,10 @@ and will be picked automatically at next login. fmuellner + + + Marge Bot + marge-bot + + From 46c76776435c125ff6f09ddec01aa9a210b23f97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 21 Nov 2020 01:01:30 +0100 Subject: [PATCH 20/99] ci: Use ci-fairy image for commit log check This is in line with what mutter/gnome-shell are using, and should be smaller (read: faster) than the gjs image. Part-of: --- .gitlab-ci.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2ed165c0..a3da4a86 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,10 @@ +include: + - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/7ea696055e322cc7aa4bcbe5422b56a198c4bdff/templates/ci-fairy.yml" + image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0 stages: + - pre_review - review - build @@ -15,8 +19,9 @@ variables: - merge_requests check_commit_log: - image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis - stage: review + extends: + - .fdo.ci-fairy + stage: pre_review script: - ./.gitlab-ci/check-commit-log.sh <<: *only_default From 88726596219eb8d60c91738729b89d50af92791b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 20 Nov 2020 19:16:35 +0100 Subject: [PATCH 21/99] ci: Check that merge requests have the right settings This will catch the missing "allow write access for maintainers" check box being checked. Part-of: --- .gitlab-ci.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a3da4a86..1abeba28 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -32,6 +32,25 @@ check_commit_log: reports: junit: commit-message-junit-report.xml +check-merge-request: + extends: + - .fdo.ci-fairy + stage: pre_review + script: + - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ; + then + ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ; + else + echo "Not a merge request" ; + fi + <<: *only_default + artifacts: + expire_in: 1 week + paths: + - check-merge-request-report.xml + reports: + junit: check-merge-request-report.xml + js_check: stage: review script: From 8d4586bd57c3222c96ccda8213a57894d900c282 Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Fri, 20 Nov 2020 14:25:53 +0100 Subject: [PATCH 22/99] ci: Set some sensible defaults * Allow for all jobs to be cancelled if a newer commit is pushed * Automatically retry jobs if they fail due to some infrastructure issue Part-of: --- .gitlab-ci.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1abeba28..260af5ad 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,18 @@ stages: - review - build +default: + # Cancel jobs if newer commits are pushed to the branch + interruptible: true + # Auto-retry jobs in case of infra failures + retry: + max: 1 + when: + - 'runner_system_failure' + - 'stuck_or_timeout_failure' + - 'scheduler_failure' + - 'api_failure' + variables: LINT_LOG: "eslint-report.xml" JS_LOG: "js-report.txt" From 02db9525e76b9925c9235f01f04e68a7d6a4d8be Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Fri, 20 Nov 2020 14:54:13 +0100 Subject: [PATCH 23/99] ci: Replace only/except with rules only/except keywords where deperecated in favor of rules. Since we started using GNOME/gnome-shell!1492 it introduced a second pipeline being run for each commit. Detached pipelines are the only way to access CI_MERGE_REQUEST_* variables, and if we disable normal pipelines you will need to create wip/spam MRs in order to run the tests. This reworked rules makes it so, the normal pipeline needs manual interaction to be started, and the detached/MR pipleines is always run. Part-of: --- .gitlab-ci.yml | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 260af5ad..2aabb9a3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -24,11 +24,19 @@ variables: LINT_LOG: "eslint-report.xml" JS_LOG: "js-report.txt" -.only_default: &only_default - only: - - branches - - tags - - merge_requests +workflow: + rules: + - if: '$CI_MERGE_REQUEST_IID' + - if: '$CI_COMMIT_TAG' + - if: '$CI_COMMIT_BRANCH' + +.pipeline_guard: &pipeline_guard + rules: + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' + - if: '$CI_COMMIT_TAG' + - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' + - if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/' + - when: 'manual' check_commit_log: extends: @@ -36,7 +44,7 @@ check_commit_log: stage: pre_review script: - ./.gitlab-ci/check-commit-log.sh - <<: *only_default + <<: *pipeline_guard artifacts: expire_in: 1 week paths: @@ -55,7 +63,7 @@ check-merge-request: else echo "Not a merge request" ; fi - <<: *only_default + <<: *pipeline_guard artifacts: expire_in: 1 week paths: @@ -68,7 +76,6 @@ js_check: script: - find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG - (! grep -q . $JS_LOG) - <<: *only_default artifacts: paths: - ${JS_LOG} @@ -78,7 +85,6 @@ eslint: stage: review script: - eslint -o $LINT_LOG -f junit extensions - <<: *only_default artifacts: paths: - ${LINT_LOG} @@ -90,7 +96,6 @@ build-bundles: needs: ["check_commit_log"] script: - ./export-zips.sh - <<: *only_default artifacts: name: 'Extension bundles' expose_as: 'Get Extension bundles here' From bde20e78f07d5a10f387566e3b33d275d4e08639 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 24 Nov 2020 16:23:30 +0100 Subject: [PATCH 24/99] ci: Bump ci-fairy template include This fixes the check-merge-request job when MR branch and target branch are on the same repo. See https://gitlab.freedesktop.org/freedesktop/ci-templates/-/merge_requests/66 Part-of: --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 2aabb9a3..83213550 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ include: - - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/7ea696055e322cc7aa4bcbe5422b56a198c4bdff/templates/ci-fairy.yml" + - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/8445ff7af2a68795afb98f486251f2ef8f90621c/templates/ci-fairy.yml" image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0 From 8318ea919f2d01b12e5c14047fca02d4333be720 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Tue, 24 Nov 2020 00:24:55 -0500 Subject: [PATCH 25/99] window-list: Stop monitoring drag operation if window list is destroyed If a user is in the middle of a drag in the window list and the window list associated with the drag gets destroyed, the drag monitor gets leaked. Later when the drag motion is processed, spew goes to the log: clutter_actor_contains: assertion 'CLUTTER_IS_ACTOR (self)' failed Examples of triggers for this bug: - The monitor topology changes - The screen gets locked during the drag This commit fixes the spew and the leak by ensuring any pending drag monitoring is disabled when the window lists are destroyed. Part-of: --- extensions/window-list/extension.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index 616bec60..a7a7a5e2 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -786,9 +786,9 @@ class WindowList extends St.Widget { }); this._dragBeginId = Main.xdndHandler.connect('drag-begin', - this._onDragBegin.bind(this)); + this._monitorDrag.bind(this)); this._dragEndId = Main.xdndHandler.connect('drag-end', - this._onDragEnd.bind(this)); + this._stopMonitoringDrag.bind(this)); this._dragMonitor = { dragMotion: this._onDragMotion.bind(this), }; @@ -1016,11 +1016,11 @@ class WindowList extends St.Widget { } } - _onDragBegin() { + _monitorDrag() { DND.addDragMonitor(this._dragMonitor); } - _onDragEnd() { + _stopMonitoringDrag() { DND.removeDragMonitor(this._dragMonitor); this._removeActivateTimeout(); } @@ -1094,6 +1094,7 @@ class WindowList extends St.Widget { global.display.disconnect(this._fullscreenChangedId); + this._stopMonitoringDrag(); Main.xdndHandler.disconnect(this._dragBeginId); Main.xdndHandler.disconnect(this._dragEndId); From f5128e13f21f41d632cd9ec1de2f55a77e9a3dfe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 2 Dec 2020 19:09:57 +0100 Subject: [PATCH 26/99] workspace-indicator: Round calculated preview sizes While not strictly necessary, there's no reason to differ from the copy in the window-list extension ... Part-of: --- extensions/workspace-indicator/extension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index 21080c10..6452eefb 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -94,8 +94,8 @@ class WorkspaceLayout extends Clutter.LayoutManager { const childBox = new Clutter.ActorBox(); const frameRect = child.metaWindow.get_frame_rect(); childBox.set_size( - Math.min(frameRect.width, workArea.width) * hscale, - Math.min(frameRect.height, workArea.height) * vscale); + Math.round(Math.min(frameRect.width, workArea.width) * hscale), + Math.round(Math.min(frameRect.height, workArea.height) * vscale)); childBox.set_origin( Math.round(frameRect.x * hscale), Math.round(frameRect.y * vscale)); From 893d3b0473f5ff24e25c2cdb21bfea968b134f6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 20:22:32 +0200 Subject: [PATCH 27/99] window-list: Account for monitor offset in window previews Windows' frame rects are in screen coordinates, while the workspace thumbnails are based on the monitor work area. Unless we account for the difference, previews end up mispositioned in multi-monitor setups. Part-of: --- extensions/window-list/workspaceIndicator.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js index 698cc9df..3dbfb0ca 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -91,8 +91,8 @@ class WorkspaceLayout extends Clutter.LayoutManager { Math.round(Math.min(frameRect.width, workArea.width) * hscale), Math.round(Math.min(frameRect.height, workArea.height) * vscale)); childBox.set_origin( - Math.round(frameRect.x * hscale), - Math.round(frameRect.y * vscale)); + Math.round((frameRect.x - workArea.x) * hscale), + Math.round((frameRect.y - workArea.y) * vscale)); child.allocate(childBox); } } From 6949a5d075ef773cfae289976d8b5713aad26508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 20:24:18 +0200 Subject: [PATCH 28/99] workspace-indicator: Account for monitor offset in window previews Windows' frame rects are in screen coordinates, while the workspace thumbnails are based on the monitor work area. Unless we account for the difference, previews end up mispositioned in multi-monitor setups. Part-of: --- extensions/workspace-indicator/extension.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index 6452eefb..d10e13e8 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -97,8 +97,8 @@ class WorkspaceLayout extends Clutter.LayoutManager { Math.round(Math.min(frameRect.width, workArea.width) * hscale), Math.round(Math.min(frameRect.height, workArea.height) * vscale)); childBox.set_origin( - Math.round(frameRect.x * hscale), - Math.round(frameRect.y * vscale)); + Math.round((frameRect.x - workArea.x) * hscale), + Math.round((frameRect.y - workArea.y) * vscale)); child.allocate(childBox); } } From 08dfb78815d30cc490440ea57a2724e608dbf0e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 20:40:56 +0200 Subject: [PATCH 29/99] window-list: Use overlap to determine preview visibility In order to better reflect the actual workspace, show any preview that is at least partially located on the monitor, not only those that have the major part on that monitor. Part-of: --- extensions/window-list/workspaceIndicator.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js index 3dbfb0ca..37d1ff08 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -26,13 +26,12 @@ class WindowPreview extends St.Button { this._sizeChangedId = this._window.connect('size-changed', () => this.queue_relayout()); this._positionChangedId = this._window.connect('position-changed', - () => this.queue_relayout()); + () => { + this._updateVisible(); + this.queue_relayout(); + }); this._minimizedChangedId = this._window.connect('notify::minimized', this._updateVisible.bind(this)); - this._monitorEnteredId = global.display.connect('window-entered-monitor', - this._updateVisible.bind(this)); - this._monitorLeftId = global.display.connect('window-left-monitor', - this._updateVisible.bind(this)); this._focusChangedId = global.display.connect('notify::focus-window', this._onFocusChanged.bind(this)); @@ -48,8 +47,6 @@ class WindowPreview extends St.Button { this._window.disconnect(this._sizeChangedId); this._window.disconnect(this._positionChangedId); this._window.disconnect(this._minimizedChangedId); - global.display.disconnect(this._monitorEnteredId); - global.display.disconnect(this._monitorLeftId); global.display.disconnect(this._focusChangedId); } @@ -61,8 +58,9 @@ class WindowPreview extends St.Button { } _updateVisible() { - let monitor = Main.layoutManager.findIndexForActor(this); - this.visible = monitor === this._window.get_monitor() && + const monitor = Main.layoutManager.findIndexForActor(this); + const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); + this.visible = this._window.get_frame_rect().overlap(workArea) && this._window.window_type !== Meta.WindowType.DESKTOP && this._window.showing_on_its_workspace(); } From 50d3ee57037ccea173c2a48fa324eb8b0acc3730 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 21 Oct 2020 20:43:46 +0200 Subject: [PATCH 30/99] workspace-indicator: Use overlap to determine preview visibility In order to better reflect the actual workspace, show any preview that is at least partially located on the monitor, not only those that have the major part on that monitor. Part-of: --- extensions/workspace-indicator/extension.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index d10e13e8..76b35df9 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -32,13 +32,12 @@ class WindowPreview extends St.Button { this._sizeChangedId = this._window.connect('size-changed', () => this.queue_relayout()); this._positionChangedId = this._window.connect('position-changed', - () => this.queue_relayout()); + () => { + this._updateVisible(); + this.queue_relayout(); + }); this._minimizedChangedId = this._window.connect('notify::minimized', this._updateVisible.bind(this)); - this._monitorEnteredId = global.display.connect('window-entered-monitor', - this._updateVisible.bind(this)); - this._monitorLeftId = global.display.connect('window-left-monitor', - this._updateVisible.bind(this)); this._focusChangedId = global.display.connect('notify::focus-window', this._onFocusChanged.bind(this)); @@ -54,8 +53,6 @@ class WindowPreview extends St.Button { this._window.disconnect(this._sizeChangedId); this._window.disconnect(this._positionChangedId); this._window.disconnect(this._minimizedChangedId); - global.display.disconnect(this._monitorEnteredId); - global.display.disconnect(this._monitorLeftId); global.display.disconnect(this._focusChangedId); } @@ -67,8 +64,9 @@ class WindowPreview extends St.Button { } _updateVisible() { - let monitor = Main.layoutManager.findIndexForActor(this); - this.visible = monitor === this._window.get_monitor() && + const monitor = Main.layoutManager.findIndexForActor(this); + const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor); + this.visible = this._window.get_frame_rect().overlap(workArea) && this._window.window_type !== Meta.WindowType.DESKTOP && this._window.showing_on_its_workspace(); } From aad96bb1c40762aa372c348bb64325464ef84421 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 2 Dec 2020 20:33:49 +0100 Subject: [PATCH 31/99] Update sass submodule --- data/gnome-shell-sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/gnome-shell-sass b/data/gnome-shell-sass index 940aff8c..710fc54a 160000 --- a/data/gnome-shell-sass +++ b/data/gnome-shell-sass @@ -1 +1 @@ -Subproject commit 940aff8ce7e58c8717f9edd9e55539301bc23d68 +Subproject commit 710fc54a2615b47a4b0b4f781c322611e0218189 From eee341e907211b298466dfdfc11be02fe1ec4231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 2 Dec 2020 20:17:39 +0100 Subject: [PATCH 32/99] Tag release 40.alpha Update NEWS. --- NEWS | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/NEWS b/NEWS index 434dcd45..9916342e 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,21 @@ +40.alpha +======== +* window-list: Honor changes in skip-taskbar property [Sergio; !130] +* window-list, workspace-indicator: Adjust to 3.38 changes [Florian; !133] +* window-list, workspace-indicator: Improve previews in workspace thumbs + [Florian; #260, !142] +* auto-move: Improve behavior on multi-monitor setups [Florian; !135] +* windowNavigator: Adjust to 3.38 changes [Thun; #259] +* Misc. bug fixes and cleanups [Florian, Jonas Å, Jordan, Ray; !131, !136, + !137, !140, !141, !144, !146, !145] + +Contributors: + Sergio Costas, Florian Müllner, Jordan Petridis, Thun Pin, Ray Strode, + Jonas Ådahl + +Translators: + Fabio Tomat [fur], Jordi Mas [ca] + 3.38.1 ====== From 4e731e1dcecf44fc66d4e56992203ee7e1b998b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 2 Dec 2020 20:40:19 +0100 Subject: [PATCH 33/99] Post-release version bump --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 10be57bc..a83155c1 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '40.alpha', + version: '40.beta', meson_version: '>= 0.44.0', license: 'GPL2+' ) From 02aa68b24a71dd27dcc1bf0b41082110872b51a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 17 Dec 2020 14:15:32 +0100 Subject: [PATCH 34/99] ci: Replace custom commit-log script with ci-fairy ci-fairy now supports checking commit messages for required/disallowed patterns. Use that to replace our custom commit-log script. Part-of: --- .gitlab-ci.yml | 9 ++++- .gitlab-ci/check-commit-log.sh | 74 ---------------------------------- .gitlab-ci/commitrules.yml | 4 ++ 3 files changed, 11 insertions(+), 76 deletions(-) delete mode 100755 .gitlab-ci/check-commit-log.sh create mode 100644 .gitlab-ci/commitrules.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 83213550..704b7e5f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ include: - - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/8445ff7af2a68795afb98f486251f2ef8f90621c/templates/ci-fairy.yml" + - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/18194044f0f984c8815bc9a1a146582f6bf15d41/templates/ci-fairy.yml" image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0 @@ -43,7 +43,12 @@ check_commit_log: - .fdo.ci-fairy stage: pre_review script: - - ./.gitlab-ci/check-commit-log.sh + - if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ; + then + ci-fairy check-commits --junit-xml=commit-message-junit-report.xml ; + else + echo "Not a merge request" ; + fi <<: *pipeline_guard artifacts: expire_in: 1 week diff --git a/.gitlab-ci/check-commit-log.sh b/.gitlab-ci/check-commit-log.sh deleted file mode 100755 index 00fd8938..00000000 --- a/.gitlab-ci/check-commit-log.sh +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env bash - -if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then - echo This is not a merge request, skipping - exit 0 -fi - -git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME - -branch_point=$(git merge-base HEAD FETCH_HEAD) - -commits=$(git log --format='format:%H' $branch_point..$CI_COMMIT_SHA) - -if [ -z "$commits" ]; then - echo Commit range empty - exit 1 -fi - -JUNIT_REPORT_TESTS_FILE=$(mktemp) - -function append_failed_test_case() { - test_name="$1" - commit="$2" - test_message="$3" - commit_short=${commit:0:8} - - echo "" >> $JUNIT_REPORT_TESTS_FILE - echo &>2 "Commit check failed: $commit_short: $test_message" -} - -function append_passed_test_case() { - test_name="$1" - commit="$2" - commit_short=${commit:0:8} - echo "" >> $JUNIT_REPORT_TESTS_FILE -} - -function generate_junit_report() { - junit_report_file="$1" - num_tests=$(cat "$JUNIT_REPORT_TESTS_FILE" | wc -l) - num_failures=$(grep '' "$JUNIT_REPORT_TESTS_FILE" | wc -l ) - - echo Generating JUnit report \"$(pwd)/$junit_report_file\" with $num_tests tests and $num_failures failures. - - cat > $junit_report_file << __EOF__ - - - -$(< $JUNIT_REPORT_TESTS_FILE) - - -__EOF__ -} - -function commit_message_has_mr_url() { - commit=$1 - commit_message=$(git show -s --format='format:%b' $commit) - echo "$commit_message" | grep -qe "^$CI_MERGE_REQUEST_PROJECT_URL\/\(-\/\)\?merge_requests\/$CI_MERGE_REQUEST_IID$" - return $? -} - -for commit in $commits; do - if commit_message_has_mr_url $commit; then - append_failed_test_case superfluous_url $commit \ - "Commit message must not contain a link to its own merge request" - else - append_passed_test_case superfluous_url $commit - fi -done - -generate_junit_report commit-message-junit-report.xml - -! grep -q ' Date: Thu, 17 Dec 2020 14:18:14 +0100 Subject: [PATCH 35/99] ci: Add some more commit message rules Now that we have the ability to easily define custom rules, add some more to enforce the existing commit message style. Part-of: --- .gitlab-ci/commitrules.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.gitlab-ci/commitrules.yml b/.gitlab-ci/commitrules.yml index ef7d0805..a3913a98 100644 --- a/.gitlab-ci/commitrules.yml +++ b/.gitlab-ci/commitrules.yml @@ -2,3 +2,12 @@ patterns: deny: - regex: '^$CI_MERGE_REQUEST_PROJECT_URL/(-/)?merge_requests/$CI_MERGE_REQUEST_IID$' message: Commit message must not contain a link to its own merge request + - regex: '^extensions/' + message: Commit message subject should not be prefixed with 'extensions/', use the extension name instead + where: subject + - regex: '^[^:]+: [a-z]' + message: "Commit message subject should be properly Capitalized. E.g. 'window: Marginalize extradicity'" + where: subject + - regex: '^\S*\.js:' + message: Commit message subject prefix should not include .js + where: subject From c745dd6362c9f9de27355f47e18923ca7a093716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 22 Dec 2020 01:33:44 +0100 Subject: [PATCH 36/99] build: Change upcoming version to 40.alpha2 I messed up and released 40.alpha at the same time as 3.38.2, when it's supposed to be in January. In order to re-align with the schedule, change the upcoming version to 40.alpha2 so we don't have to skip a release and will be back on track in time of 40.beta. --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index a83155c1..4b6a3d96 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '40.beta', + version: '40.alpha2', meson_version: '>= 0.44.0', license: 'GPL2+' ) From a7ddbd0d5359913a5f356ce0cebfb16894c0a325 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 25 Dec 2020 23:29:06 +0100 Subject: [PATCH 37/99] Change upcoming version (again) The extension website doesn't handle the chosen scheme correctly, so use 40.alpha.1 instead. --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 4b6a3d96..9e99d745 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '40.alpha2', + version: '40.alpha.1', meson_version: '>= 0.44.0', license: 'GPL2+' ) From 294eb0feb5e79649d5018c3b17275e3b4e2e219c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 29 Dec 2020 00:16:16 +0100 Subject: [PATCH 38/99] data: Update list of theme dependencies The scss sources were split up in gnome-shell last cycle, catch up with that change. Part-of: --- data/meson.build | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/data/meson.build b/data/meson.build index 5e1c6cf2..4a029316 100644 --- a/data/meson.build +++ b/data/meson.build @@ -28,7 +28,42 @@ 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/_high-contrast-colors.scss', + 'gnome-shell-sass/_widgets.scss', + 'gnome-shell-sass/widgets/_a11y.scss', + 'gnome-shell-sass/widgets/_app-grid.scss', + 'gnome-shell-sass/widgets/_base.scss', + 'gnome-shell-sass/widgets/_buttons.scss', + 'gnome-shell-sass/widgets/_calendar.scss', + 'gnome-shell-sass/widgets/_check-box.scss', + 'gnome-shell-sass/widgets/_corner-ripple.scss', + 'gnome-shell-sass/widgets/_dash.scss', + 'gnome-shell-sass/widgets/_dialogs.scss', + 'gnome-shell-sass/widgets/_entries.scss', + 'gnome-shell-sass/widgets/_hotplug.scss', + 'gnome-shell-sass/widgets/_ibus-popup.scss', + 'gnome-shell-sass/widgets/_keyboard.scss', + 'gnome-shell-sass/widgets/_login-dialog.scss', + 'gnome-shell-sass/widgets/_looking-glass.scss', + 'gnome-shell-sass/widgets/_message-list.scss', + 'gnome-shell-sass/widgets/_misc.scss', + 'gnome-shell-sass/widgets/_network-dialog.scss', + 'gnome-shell-sass/widgets/_notifications.scss', + 'gnome-shell-sass/widgets/_osd.scss', + 'gnome-shell-sass/widgets/_overview.scss', + 'gnome-shell-sass/widgets/_panel.scss', + 'gnome-shell-sass/widgets/_popovers.scss', + 'gnome-shell-sass/widgets/_screen-shield.scss', + 'gnome-shell-sass/widgets/_scrollbars.scss', + 'gnome-shell-sass/widgets/_search-entry.scss', + 'gnome-shell-sass/widgets/_search-results.scss', + 'gnome-shell-sass/widgets/_slider.scss', + 'gnome-shell-sass/widgets/_switcher-popup.scss', + 'gnome-shell-sass/widgets/_switches.scss', + 'gnome-shell-sass/widgets/_tiled-previews.scss', + 'gnome-shell-sass/widgets/_window-picker.scss', + 'gnome-shell-sass/widgets/_workspace-switcher.scss', + 'gnome-shell-sass/widgets/_workspace-thumbnails.scss' ) theme_data = [ From 669e7c32a2cbc87b2818490beae0a2e25e799845 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 29 Dec 2020 00:18:47 +0100 Subject: [PATCH 39/99] classic: Pre-generate stylesheet We follow the rule of not putting generated files under version control, but that means drawing in additional build-time dependencies. We can reduce those when building from a released tarball by generating the stylesheets at dist time though, so do that. Part-of: --- data/meson.build | 23 ++++++++++++++--------- meson.build | 4 +++- meson/generate-stylesheets.py | 13 +++++++++++++ 3 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 meson/generate-stylesheets.py diff --git a/data/meson.build b/data/meson.build index 4a029316..27f42872 100644 --- a/data/meson.build +++ b/data/meson.build @@ -76,15 +76,20 @@ theme_data = [ 'gnome-classic-high-contrast.css' ] -style = 'gnome-classic' -custom_target(style + '.css', - input: style + '.scss', - output: style + '.css', - depend_files: theme_sources, - command: [sassc, '-a', '@INPUT@', '@OUTPUT@'], - install: true, - install_dir: themedir -) +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) diff --git a/meson.build b/meson.build index 9e99d745..f1a41081 100644 --- a/meson.build +++ b/meson.build @@ -6,6 +6,7 @@ project('gnome-shell-extensions', gettext_domain = meson.project_name() +fs = import('fs') gnome = import('gnome') i18n = import('i18n') @@ -86,9 +87,10 @@ foreach e : enabled_extensions endforeach if classic_mode_enabled - sassc = find_program('sassc', required: true) subdir('data') endif subdir('extensions') subdir('po') + +meson.add_dist_script('meson/generate-stylesheets.py') diff --git a/meson/generate-stylesheets.py b/meson/generate-stylesheets.py new file mode 100644 index 00000000..6e402b61 --- /dev/null +++ b/meson/generate-stylesheets.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +import os +from pathlib import PurePath +import subprocess + +sourceroot = os.environ.get('MESON_SOURCE_ROOT') +distroot = os.environ.get('MESON_DIST_ROOT') + +stylesheet_path = PurePath('data/gnome-classic.css') +src = PurePath(sourceroot, stylesheet_path.with_suffix('.scss')) +dst = PurePath(distroot, stylesheet_path) +subprocess.call(['sassc', '-a', src, dst]) From 2702cdf889496da916e6fef40e2cd609463b3d6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 11 Jan 2021 14:03:44 +0100 Subject: [PATCH 40/99] ci: Update ci-fairy image The default rules file name has changed from commitrules.yml to commit-rules.yml, adjust to that change. Part-of: --- .gitlab-ci.yml | 2 +- .gitlab-ci/commitrules.yml | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 .gitlab-ci/commitrules.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 704b7e5f..a1d62d33 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ include: - - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/18194044f0f984c8815bc9a1a146582f6bf15d41/templates/ci-fairy.yml" + - remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/6f86b8bcb0cd5168c32779c4fea9a893c4a0c046/templates/ci-fairy.yml" image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0 diff --git a/.gitlab-ci/commitrules.yml b/.gitlab-ci/commitrules.yml deleted file mode 100644 index a3913a98..00000000 --- a/.gitlab-ci/commitrules.yml +++ /dev/null @@ -1,13 +0,0 @@ -patterns: - deny: - - regex: '^$CI_MERGE_REQUEST_PROJECT_URL/(-/)?merge_requests/$CI_MERGE_REQUEST_IID$' - message: Commit message must not contain a link to its own merge request - - regex: '^extensions/' - message: Commit message subject should not be prefixed with 'extensions/', use the extension name instead - where: subject - - regex: '^[^:]+: [a-z]' - message: "Commit message subject should be properly Capitalized. E.g. 'window: Marginalize extradicity'" - where: subject - - regex: '^\S*\.js:' - message: Commit message subject prefix should not include .js - where: subject From dcd5dc4c7f036209af04924e0a1c6e86fdac31b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 11 Jan 2021 14:16:03 +0100 Subject: [PATCH 41/99] ci: Add back commit-rules file Somehow git-mv ended up as git-rm without me noticing, whoops. --- .gitlab-ci/commit-rules.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .gitlab-ci/commit-rules.yml diff --git a/.gitlab-ci/commit-rules.yml b/.gitlab-ci/commit-rules.yml new file mode 100644 index 00000000..a3913a98 --- /dev/null +++ b/.gitlab-ci/commit-rules.yml @@ -0,0 +1,13 @@ +patterns: + deny: + - regex: '^$CI_MERGE_REQUEST_PROJECT_URL/(-/)?merge_requests/$CI_MERGE_REQUEST_IID$' + message: Commit message must not contain a link to its own merge request + - regex: '^extensions/' + message: Commit message subject should not be prefixed with 'extensions/', use the extension name instead + where: subject + - regex: '^[^:]+: [a-z]' + message: "Commit message subject should be properly Capitalized. E.g. 'window: Marginalize extradicity'" + where: subject + - regex: '^\S*\.js:' + message: Commit message subject prefix should not include .js + where: subject From e8acfb2b51411e05260cf1558060a0970b632941 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 14 Jan 2021 00:25:38 +0100 Subject: [PATCH 42/99] Update sass submodule Part-of: --- data/gnome-shell-sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/gnome-shell-sass b/data/gnome-shell-sass index 710fc54a..9c000f50 160000 --- a/data/gnome-shell-sass +++ b/data/gnome-shell-sass @@ -1 +1 @@ -Subproject commit 710fc54a2615b47a4b0b4f781c322611e0218189 +Subproject commit 9c000f50d05983983fab1ad92a14478bbd4aad66 From 505a7f4ac9f6d3647530ee641afcef1fa8a51108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Dre=C3=9Fler?= Date: Tue, 12 Jan 2021 11:35:34 +0100 Subject: [PATCH 43/99] classic: Fixup panel styling after gnome-shell changes We don't want a transparent panel in the classic session (this is already taken care of by the existing panel background-color overrides), and we want to avoid the new pill-shaped hover/focus indicators in the classic session. For the gnome-shell changes, see https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1397. Part-of: --- data/gnome-classic.scss | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/data/gnome-classic.scss b/data/gnome-classic.scss index b573ec85..c4d95c90 100644 --- a/data/gnome-classic.scss +++ b/data/gnome-classic.scss @@ -33,6 +33,18 @@ $variant: 'light'; 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; From 5b73960f34ada5e93d6cd4b670e509a0bd5248ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 44/99] extensions: Stop using :margin shortcut The property has been removed in GTK4, so prepare for a port by setting the four individual margin properties instead. Part-of: --- extensions/user-theme/prefs.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/extensions/user-theme/prefs.js b/extensions/user-theme/prefs.js index 241e3c98..029483ce 100644 --- a/extensions/user-theme/prefs.js +++ b/extensions/user-theme/prefs.js @@ -33,7 +33,10 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { halign: Gtk.Align.CENTER, valign: Gtk.Align.START, hexpand: true, - margin: 60, + margin_start: 60, + margin_end: 60, + margin_top: 60, + margin_bottom: 60, }); this._list.get_style_context().add_class('frame'); this._list.set_header_func(this._updateHeader.bind(this)); @@ -141,7 +144,10 @@ class ThemeRow extends Gtk.ListBoxRow { const box = new Gtk.Box({ spacing: 12, - margin: 12, + margin_start: 12, + margin_end: 12, + margin_top: 12, + margin_bottom: 12, }); this.add(box); From b83d38a72e70d149907c0eb1b392266c9b29446a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 45/99] user-theme: Track GSettings to sync checkmark GTK4 removes the generic GtkWidget API for accessing an inserted action group, so we need an alternative for tracking the currently selected theme. Using the underlying GSettings object looks like the easiest option, so do that. Part-of: --- extensions/user-theme/prefs.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/extensions/user-theme/prefs.js b/extensions/user-theme/prefs.js index 029483ce..a92be0c8 100644 --- a/extensions/user-theme/prefs.js +++ b/extensions/user-theme/prefs.js @@ -93,7 +93,7 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { } _addTheme(name) { - const row = new ThemeRow(name); + const row = new ThemeRow(name, this._settings); this._rows.set(name, row); this._list.add(row); @@ -134,12 +134,13 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { const ThemeRow = GObject.registerClass( class ThemeRow extends Gtk.ListBoxRow { - _init(name) { - this._name = new GLib.Variant('s', name); + _init(name, settings) { + this._name = name; + this._settings = settings; super._init({ action_name: 'theme.name', - action_target: this._name, + action_target: new GLib.Variant('s', name), }); const box = new Gtk.Box({ @@ -167,20 +168,19 @@ class ThemeRow extends Gtk.ListBoxRow { box.show_all(); - const id = this.connect('parent-set', () => { - this.disconnect(id); + const id = this._settings.connect('changed::name', + this._syncCheckmark.bind(this)); + this._syncCheckmark(); - const actionGroup = this.get_action_group('theme'); - actionGroup.connect('action-state-changed::name', - this._syncCheckmark.bind(this)); - this._syncCheckmark(); + this.connect('destroy', () => { + this._settings.disconnect(id); + this._settings = null; }); } _syncCheckmark() { - const actionGroup = this.get_action_group('theme'); - const state = actionGroup.get_action_state('name'); - this._checkmark.opacity = this._name.equal(state); + const visible = this._name === this._settings.get_string('name'); + this._checkmark.opacity = visible ? 1. : 0; } }); From 3bef6be7c1d2d9884baf65f3ac993fa55dfbb405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 46/99] user-theme: Port to GTK4 With the previous preparations in place, the actual GTK4 port is now trivial: - replace Gtk.Container methods with widget-specific methods - stop using show_all() Part-of: --- extensions/user-theme/prefs.js | 29 +++++++++++------------------ 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/extensions/user-theme/prefs.js b/extensions/user-theme/prefs.js index a92be0c8..a36be263 100644 --- a/extensions/user-theme/prefs.js +++ b/extensions/user-theme/prefs.js @@ -26,7 +26,7 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { }); const box = new Gtk.Box(); - this.add(box); + this.set_child(box); this._list = new Gtk.ListBox({ selection_mode: Gtk.SelectionMode.NONE, @@ -40,7 +40,7 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { }); this._list.get_style_context().add_class('frame'); this._list.set_header_func(this._updateHeader.bind(this)); - box.add(this._list); + box.append(this._list); this._actionGroup = new Gio.SimpleActionGroup(); this._list.insert_action_group('theme', this._actionGroup); @@ -96,8 +96,7 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { const row = new ThemeRow(name, this._settings); this._rows.set(name, row); - this._list.add(row); - row.show_all(); + this._list.append(row); } async _enumerateDir(dir) { @@ -138,11 +137,6 @@ class ThemeRow extends Gtk.ListBoxRow { this._name = name; this._settings = settings; - super._init({ - action_name: 'theme.name', - action_target: new GLib.Variant('s', name), - }); - const box = new Gtk.Box({ spacing: 12, margin_start: 12, @@ -150,9 +144,13 @@ class ThemeRow extends Gtk.ListBoxRow { margin_top: 12, margin_bottom: 12, }); - this.add(box); + super._init({ + action_name: 'theme.name', + action_target: new GLib.Variant('s', name), + child: box, + }); - box.add(new Gtk.Label({ + box.append(new Gtk.Label({ label: name || 'Default', hexpand: true, xalign: 0, @@ -164,9 +162,7 @@ class ThemeRow extends Gtk.ListBoxRow { icon_name: 'emblem-ok-symbolic', pixel_size: 16, }); - box.add(this._checkmark); - - box.show_all(); + box.append(this._checkmark); const id = this._settings.connect('changed::name', this._syncCheckmark.bind(this)); @@ -188,8 +184,5 @@ function init() { } function buildPrefsWidget() { - let widget = new UserThemePrefsWidget(); - widget.show_all(); - - return widget; + return new UserThemePrefsWidget(); } From 96dd4f9835d7e7b09616109ec05b8fdc3b1ac6a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 47/99] window-list: Port to GTK4 Another easy port: - replace Gtk.Container methods - stop using show_all() - Gtk.CheckButton now provides the Gtk.RadioButton functionality as well Part-of: --- extensions/window-list/prefs.js | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/extensions/window-list/prefs.js b/extensions/window-list/prefs.js index 58ebf2a6..217c2224 100644 --- a/extensions/window-list/prefs.js +++ b/extensions/window-list/prefs.js @@ -27,7 +27,7 @@ class WindowListPrefsWidget extends Gtk.Box { }); let groupingLabel = '%s'.format(_('Window Grouping')); - this.add(new Gtk.Label({ + this.append(new Gtk.Label({ label: groupingLabel, use_markup: true, halign: Gtk.Align.START, })); @@ -37,7 +37,7 @@ class WindowListPrefsWidget extends Gtk.Box { spacing: 12, margin_bottom: 12, }); - this.add(box); + this.append(box); const context = box.get_style_context(); const cssProvider = new Gtk.CssProvider(); @@ -70,13 +70,13 @@ class WindowListPrefsWidget extends Gtk.Box { continue; } - radio = new Gtk.RadioButton({ + radio = new Gtk.CheckButton({ active: !i, label, group: radio, margin_end: 12, }); - box.add(radio); + box.append(radio); if (currentMode === mode) currentRadio = radio; @@ -94,15 +94,13 @@ class WindowListPrefsWidget extends Gtk.Box { label: _('Show on all monitors'), }); this._settings.bind('show-on-all-monitors', check, 'active', Gio.SettingsBindFlags.DEFAULT); - this.add(check); + this.append(check); check = new Gtk.CheckButton({ label: _('Show windows from all workspaces'), }); this._settings.bind('display-all-workspaces', check, 'active', Gio.SettingsBindFlags.DEFAULT); - this.add(check); - - this.show_all(); + this.append(check); } }); From 67d96993ce8cffaab23c9c06c510ede42fc527be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 48/99] auto-move-windows: Port to GTK4 Just like the previous ports, this consists mostly of replacing the old Gtk.Container methods. Part-of: --- extensions/auto-move-windows/prefs.js | 74 ++++++++++++--------------- 1 file changed, 32 insertions(+), 42 deletions(-) diff --git a/extensions/auto-move-windows/prefs.js b/extensions/auto-move-windows/prefs.js index 13244515..5db6c858 100644 --- a/extensions/auto-move-windows/prefs.js +++ b/extensions/auto-move-windows/prefs.js @@ -29,9 +29,9 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { margin_start: 36, margin_end: 36, }); - this.add(box); + this.set_child(box); - box.add(new Gtk.Label({ + box.append(new Gtk.Label({ label: '%s'.format(_('Workspace Rules')), use_markup: true, halign: Gtk.Align.START, @@ -42,7 +42,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { valign: Gtk.Align.START, }); this._list.set_header_func(this._updateHeader.bind(this)); - box.add(this._list); + box.append(this._list); const context = this._list.get_style_context(); const cssProvider = new Gtk.CssProvider(); @@ -53,7 +53,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); context.add_class('frame'); - this._list.add(new NewRuleRow()); + this._list.append(new NewRuleRow()); this._actionGroup = new Gio.SimpleActionGroup(); this._list.insert_action_group('rules', this._actionGroup); @@ -84,12 +84,10 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { this._sync(); this.connect('destroy', () => this._settings.run_dispose()); - - this.show_all(); } _onAddActivated() { - const dialog = new NewRuleDialog(this.get_toplevel()); + const dialog = new NewRuleDialog(this.get_root()); dialog.connect('response', (dlg, id) => { const appInfo = id === Gtk.ResponseType.OK ? dialog.get_widget().get_app_info() : null; @@ -101,6 +99,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { } dialog.destroy(); }); + dialog.show(); } _onRemoveActivated(action, param) { @@ -113,7 +112,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { } _getRuleRows() { - return this._list.get_children().filter(row => !!row.id); + return [...this._list].filter(row => !!row.id); } _sync() { @@ -139,7 +138,7 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { const removed = oldRules.filter( ({ id }) => !newRules.find(r => r.id === id)); - removed.forEach(r => r.destroy()); + removed.forEach(r => this._list.remove(r)); this._settings.unblock_signal_handler(this._changedId); this._updateAction.enabled = true; @@ -165,12 +164,6 @@ const RuleRow = GObject.registerClass({ }, }, class RuleRow extends Gtk.ListBoxRow { _init(appInfo, value) { - super._init({ - activatable: false, - value, - }); - this._appInfo = appInfo; - const box = new Gtk.Box({ spacing: 6, margin_top: 6, @@ -179,12 +172,19 @@ const RuleRow = GObject.registerClass({ margin_end: 6, }); + super._init({ + activatable: false, + value, + child: box, + }); + this._appInfo = appInfo; + const icon = new Gtk.Image({ gicon: appInfo.get_icon(), pixel_size: 32, }); icon.get_style_context().add_class('icon-dropshadow'); - box.add(icon); + box.append(icon); const label = new Gtk.Label({ label: appInfo.get_display_name(), @@ -193,7 +193,7 @@ const RuleRow = GObject.registerClass({ max_width_chars: 20, ellipsize: Pango.EllipsizeMode.END, }); - box.add(label); + box.append(label); const spinButton = new Gtk.SpinButton({ adjustment: new Gtk.Adjustment({ @@ -207,26 +207,20 @@ const RuleRow = GObject.registerClass({ this.bind_property('value', spinButton, 'value', GObject.BindingFlags.SYNC_CREATE | GObject.BindingFlags.BIDIRECTIONAL); - box.add(spinButton); + box.append(spinButton); const button = new Gtk.Button({ action_name: 'rules.remove', action_target: new GLib.Variant('s', this.id), - image: new Gtk.Image({ + child: new Gtk.Image({ icon_name: 'edit-delete-symbolic', pixel_size: 16, }), }); - box.add(button); + box.append(button); - this.add(box); - - this.connect('notify::value', () => { - const actionGroup = this.get_action_group('rules'); - actionGroup.activate_action('update', null); - }); - - this.show_all(); + this.connect('notify::value', + () => this.activate_action('rules.update', null)); } get id() { @@ -239,19 +233,17 @@ class NewRuleRow extends Gtk.ListBoxRow { _init() { super._init({ action_name: 'rules.add', + child: new Gtk.Image({ + icon_name: 'list-add-symbolic', + pixel_size: 16, + margin_top: 12, + margin_bottom: 12, + margin_start: 12, + margin_end: 12, + }), }); - this.get_accessible().set_name(_('Add Rule')); - - this.add(new Gtk.Image({ - icon_name: 'list-add-symbolic', - pixel_size: 16, - margin_top: 12, - margin_bottom: 12, - margin_start: 12, - margin_end: 12, - })); - - this.show_all(); + this.update_property( + [Gtk.AccessibleProperty.LABEL], [_('Add Rule')]); } }); @@ -273,8 +265,6 @@ class NewRuleDialog extends Gtk.AppChooserDialog { this.get_widget().connect('application-selected', this._updateSensitivity.bind(this)); this._updateSensitivity(); - - this.show(); } _updateSensitivity() { From 22ea58a849e057e152ceb54347813726dc022ac1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 49/99] workspace-indicator: Port to GTK4 With this port, all extensions now use GTK4 for their preferences. Part-of: --- extensions/workspace-indicator/prefs.js | 69 +++++++++++-------------- 1 file changed, 29 insertions(+), 40 deletions(-) diff --git a/extensions/workspace-indicator/prefs.js b/extensions/workspace-indicator/prefs.js index 011953be..5d781620 100644 --- a/extensions/workspace-indicator/prefs.js +++ b/extensions/workspace-indicator/prefs.js @@ -1,7 +1,7 @@ // -*- mode: js2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- /* exported init buildPrefsWidget */ -const { Gdk, Gio, GLib, GObject, Gtk, Pango } = imports.gi; +const { Gio, GLib, GObject, Gtk, Pango } = imports.gi; const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = Gettext.gettext; @@ -28,9 +28,9 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { margin_start: 36, margin_end: 36, }); - this.add(box); + this.set_child(box); - box.add(new Gtk.Label({ + box.append(new Gtk.Label({ label: '%s'.format(_('Workspace Names')), use_markup: true, halign: Gtk.Align.START, @@ -42,7 +42,7 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { }); this._list.set_header_func(this._updateHeader.bind(this)); this._list.connect('row-activated', (l, row) => row.edit()); - box.add(this._list); + box.append(this._list); const context = this._list.get_style_context(); const cssProvider = new Gtk.CssProvider(); @@ -53,7 +53,7 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); context.add_class('frame'); - this._list.add(new NewWorkspaceRow()); + this._list.append(new NewWorkspaceRow()); this._actionGroup = new Gio.SimpleActionGroup(); this._list.insert_action_group('workspaces', this._actionGroup); @@ -94,12 +94,10 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { this._settings.connect(`changed::${WORKSPACE_KEY}`, this._sync.bind(this)); this._sync(); - - this.show_all(); } _getWorkspaceRows() { - return this._list.get_children().filter(row => row.name); + return [...this._list].filter(row => row.name); } _sync() { @@ -111,7 +109,7 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { const removed = oldNames.filter(n => !newNames.includes(n)); const added = newNames.filter(n => !oldNames.includes(n)); - removed.forEach(n => rows.find(r => r.name === n).destroy()); + removed.forEach(n => this._list.remove(rows.find(r => r.name === n))); added.forEach(n => { this._list.insert(new WorkspaceRow(n), newNames.indexOf(n)); }); @@ -129,6 +127,13 @@ class WorkspaceRow extends Gtk.ListBoxRow { _init(name) { super._init({ name }); + const controller = new Gtk.ShortcutController(); + controller.add_shortcut(new Gtk.Shortcut({ + trigger: Gtk.ShortcutTrigger.parse_string('Escape'), + action: Gtk.CallbackAction.new(this._stopEdit.bind(this)), + })); + this.add_controller(controller); + const box = new Gtk.Box({ spacing: 12, margin_top: 6, @@ -145,7 +150,7 @@ class WorkspaceRow extends Gtk.ListBoxRow { }); this.bind_property('name', label, 'label', GObject.BindingFlags.SYNC_CREATE); - box.add(label); + box.append(label); const image = new Gtk.Image({ icon_name: 'edit-delete-symbolic', @@ -154,9 +159,9 @@ class WorkspaceRow extends Gtk.ListBoxRow { const button = new Gtk.Button({ action_name: 'workspaces.remove', action_target: new GLib.Variant('s', name), - image, + child: image, }); - box.add(button); + box.append(button); this._entry = new Gtk.Entry({ max_width_chars: 25, @@ -165,7 +170,7 @@ class WorkspaceRow extends Gtk.ListBoxRow { this._stack = new Gtk.Stack(); this._stack.add_named(box, 'display'); this._stack.add_named(this._entry, 'edit'); - this.add(this._stack); + this.child = this._stack; this._entry.connect('activate', () => { this.name = this._entry.text; @@ -176,17 +181,11 @@ class WorkspaceRow extends Gtk.ListBoxRow { return; this._stopEdit(); }); - this._entry.connect('key-press-event', - this._onEntryKeyPress.bind(this)); this.connect('notify::name', () => { button.action_target = new GLib.Variant('s', this.name); - - const actionGroup = this.get_action_group('workspaces'); - actionGroup.activate_action('update', null); + this.activate_action('workspaces.update', null); }); - - this.show_all(); } edit() { @@ -199,14 +198,6 @@ class WorkspaceRow extends Gtk.ListBoxRow { this.grab_focus(); this._stack.visible_child_name = 'display'; } - - _onEntryKeyPress(entry, event) { - const [, keyval] = event.get_keyval(); - if (keyval !== Gdk.KEY_Escape) - return Gdk.EVENT_PROPAGATE; - this._stopEdit(); - return Gdk.EVENT_STOP; - } }); const NewWorkspaceRow = GObject.registerClass( @@ -214,19 +205,17 @@ class NewWorkspaceRow extends Gtk.ListBoxRow { _init() { super._init({ action_name: 'workspaces.add', + child: new Gtk.Image({ + icon_name: 'list-add-symbolic', + pixel_size: 16, + margin_top: 12, + margin_bottom: 12, + margin_start: 12, + margin_end: 12, + }), }); - this.get_accessible().set_name(_('Add Workspace')); - - this.add(new Gtk.Image({ - icon_name: 'list-add-symbolic', - pixel_size: 16, - margin_top: 12, - margin_bottom: 12, - margin_start: 12, - margin_end: 12, - })); - - this.show_all(); + this.update_property( + [Gtk.AccessibleProperty.LABEL], [_('Add Workspace')]); } }); From d5c31273ee50bb3436a471cca26f7b0cc71e9b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 50/99] auto-move-windows: Stop using header func for separators GTK4 added built-in support for this common pattern, so use that instead. Part-of: --- extensions/auto-move-windows/prefs.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/extensions/auto-move-windows/prefs.js b/extensions/auto-move-windows/prefs.js index 5db6c858..3b7e1332 100644 --- a/extensions/auto-move-windows/prefs.js +++ b/extensions/auto-move-windows/prefs.js @@ -40,8 +40,8 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { this._list = new Gtk.ListBox({ selection_mode: Gtk.SelectionMode.NONE, valign: Gtk.Align.START, + show_separators: true, }); - this._list.set_header_func(this._updateHeader.bind(this)); box.append(this._list); const context = this._list.get_style_context(); @@ -143,12 +143,6 @@ class AutoMoveSettingsWidget extends Gtk.ScrolledWindow { this._settings.unblock_signal_handler(this._changedId); this._updateAction.enabled = true; } - - _updateHeader(row, before) { - if (!before || row.get_header()) - return; - row.set_header(new Gtk.Separator()); - } }); const RuleRow = GObject.registerClass({ From 53f5a92dc8de814d97f7970af05ce675a6bd7350 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 51/99] user-theme: Stop using header func for separators GTK4 provides built-in support for this common pattern, so use that instead. Part-of: --- extensions/user-theme/prefs.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/extensions/user-theme/prefs.js b/extensions/user-theme/prefs.js index a36be263..b9c12fa0 100644 --- a/extensions/user-theme/prefs.js +++ b/extensions/user-theme/prefs.js @@ -30,6 +30,7 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { this._list = new Gtk.ListBox({ selection_mode: Gtk.SelectionMode.NONE, + show_separators: true, halign: Gtk.Align.CENTER, valign: Gtk.Align.START, hexpand: true, @@ -39,7 +40,6 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { margin_bottom: 60, }); this._list.get_style_context().add_class('frame'); - this._list.set_header_func(this._updateHeader.bind(this)); box.append(this._list); this._actionGroup = new Gio.SimpleActionGroup(); @@ -123,12 +123,6 @@ class UserThemePrefsWidget extends Gtk.ScrolledWindow { return fileInfos.map(info => info.get_name()); } - - _updateHeader(row, before) { - if (!before || row.get_header()) - return; - row.set_header(new Gtk.Separator()); - } }); const ThemeRow = GObject.registerClass( From f0ff0e14007144ec3f0e694c125bdb9352a42ea6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 52/99] workspace-indicator: Stop using header func for separators GTK4 added built-in support for this common pattern, so use that instead. Part-of: --- extensions/workspace-indicator/prefs.js | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/extensions/workspace-indicator/prefs.js b/extensions/workspace-indicator/prefs.js index 5d781620..374c14f6 100644 --- a/extensions/workspace-indicator/prefs.js +++ b/extensions/workspace-indicator/prefs.js @@ -39,8 +39,8 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { this._list = new Gtk.ListBox({ selection_mode: Gtk.SelectionMode.NONE, valign: Gtk.Align.START, + show_separators: true, }); - this._list.set_header_func(this._updateHeader.bind(this)); this._list.connect('row-activated', (l, row) => row.edit()); box.append(this._list); @@ -114,12 +114,6 @@ class WorkspaceSettingsWidget extends Gtk.ScrolledWindow { this._list.insert(new WorkspaceRow(n), newNames.indexOf(n)); }); } - - _updateHeader(row, before) { - if (!before || row.get_header()) - return; - row.set_header(new Gtk.Separator()); - } }); const WorkspaceRow = GObject.registerClass( From 5df0fa145bc797fc1d51ca653683ab7d9d453a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 53/99] workspace-indicator: Use Gtk.Button.icon_name property Image buttons are a very common pattern, so GTK4 added some convenience API we can use to construct them. Part-of: --- extensions/workspace-indicator/prefs.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/extensions/workspace-indicator/prefs.js b/extensions/workspace-indicator/prefs.js index 374c14f6..d45d1e81 100644 --- a/extensions/workspace-indicator/prefs.js +++ b/extensions/workspace-indicator/prefs.js @@ -146,14 +146,10 @@ class WorkspaceRow extends Gtk.ListBoxRow { GObject.BindingFlags.SYNC_CREATE); box.append(label); - const image = new Gtk.Image({ - icon_name: 'edit-delete-symbolic', - pixel_size: 16, - }); const button = new Gtk.Button({ action_name: 'workspaces.remove', action_target: new GLib.Variant('s', name), - child: image, + icon_name: 'edit-delete-symbolic', }); box.append(button); From d381a0b89b845b58200c2c9d55b41e071678584f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 Apr 2020 23:32:20 +0200 Subject: [PATCH 54/99] auto-move-windows: Use Gtk.Button.icon_name property Image buttons are a very common pattern, so GTK4 added some convenience API we can use to construct them. Part-of: --- extensions/auto-move-windows/prefs.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/extensions/auto-move-windows/prefs.js b/extensions/auto-move-windows/prefs.js index 3b7e1332..c5504584 100644 --- a/extensions/auto-move-windows/prefs.js +++ b/extensions/auto-move-windows/prefs.js @@ -206,10 +206,7 @@ const RuleRow = GObject.registerClass({ const button = new Gtk.Button({ action_name: 'rules.remove', action_target: new GLib.Variant('s', this.id), - child: new Gtk.Image({ - icon_name: 'edit-delete-symbolic', - pixel_size: 16, - }), + icon_name: 'edit-delete-symbolic', }); box.append(button); From 0e3d6465ebceeae77fe940520d2feac742f50175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 14 Jan 2021 19:02:07 +0100 Subject: [PATCH 55/99] Tag release 40.alpha.1 Update NEWS. --- NEWS | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/NEWS b/NEWS index 9916342e..d1bf4382 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,12 @@ +40.alpha.1 +========== +* Don't depend on sassc when building from tarball [Florian; !150] +* Port extensions preferences to GTK4 [Florian; !148] +* Misc. bug fixes and cleanups [Florian, Jonas; !149, !151, !153] + +Contributors: + Jonas Dreßler, Florian Müllner + 40.alpha ======== * window-list: Honor changes in skip-taskbar property [Sergio; !130] From 3b14c0a04e0ee8813184a08310b10a3ca2d74b19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 14 Jan 2021 19:04:45 +0100 Subject: [PATCH 56/99] Post-release version bump --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index f1a41081..90b617f7 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '40.alpha.1', + version: '40.beta', meson_version: '>= 0.44.0', license: 'GPL2+' ) From d8ae2dcba2d50f675a0a0cd7ebf527b3ad7fc8ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 18 Jan 2021 22:39:23 +0100 Subject: [PATCH 57/99] window-list: Drop height override gnome-shell's top bar got taller, and is now just 1px smaller than our size override. We don't need that additional pixel to fit our UI, so remove the override to make the sizes of both bars consistent. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/271 Part-of: --- extensions/window-list/stylesheet.css | 7 ------- 1 file changed, 7 deletions(-) diff --git a/extensions/window-list/stylesheet.css b/extensions/window-list/stylesheet.css index 79d56bad..e01986a8 100644 --- a/extensions/window-list/stylesheet.css +++ b/extensions/window-list/stylesheet.css @@ -1,10 +1,3 @@ -.bottom-panel { - /* .window-button-icon height + - .window-button vertical padding + - .window-button > StWidget vertical padding) */ - height: 2.25em; -} - .window-list { spacing: 2px; font-size: 10pt; From c33be29f5689256f46c70e088c065f5c013096f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 20 Jan 2021 20:18:39 +0100 Subject: [PATCH 58/99] workspace-indicator: Add tooltips to workspace thumbnails When showing previews instead of the menu, the workspace names from our preferences don't appear anywhere. Some users care strongly about those, so expose them as tooltip on hover. Part-of: --- extensions/workspace-indicator/extension.js | 42 +++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index 76b35df9..ad4e59b1 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -15,6 +15,9 @@ const _ = Gettext.gettext; const WORKSPACE_SCHEMA = 'org.gnome.desktop.wm.preferences'; const WORKSPACE_KEY = 'workspace-names'; +const TOOLTIP_OFFSET = 6; +const TOOLTIP_ANIMATION_TIME = 150; + let WindowPreview = GObject.registerClass( class WindowPreview extends St.Button { _init(window) { @@ -113,7 +116,14 @@ class WorkspaceThumbnail extends St.Button { }), }); + this._tooltip = new St.Label({ + style_class: 'dash-label', + visible: false, + }); + Main.uiGroup.add_child(this._tooltip); + this.connect('destroy', this._onDestroy.bind(this)); + this.connect('notify::hover', this._syncTooltip.bind(this)); this._index = index; this._delegate = this; // needed for DND @@ -198,7 +208,39 @@ class WorkspaceThumbnail extends St.Button { ws.activate(global.get_current_time()); } + _syncTooltip() { + if (this.hover) { + this._tooltip.set({ + text: Meta.prefs_get_workspace_name(this._index), + visible: true, + opacity: 0, + }); + + const [stageX, stageY] = this.get_transformed_position(); + const thumbWidth = this.allocation.get_width(); + const thumbHeight = this.allocation.get_height(); + const tipWidth = this._tooltip.width; + const xOffset = Math.floor((thumbWidth - tipWidth) / 2); + const monitor = Main.layoutManager.findMonitorForActor(this); + const x = Math.clamp( + stageX + xOffset, + monitor.x, + monitor.x + monitor.width - tipWidth); + const y = stageY + thumbHeight + TOOLTIP_OFFSET; + this._tooltip.set_position(x, y); + } + + this._tooltip.ease({ + opacity: this.hover ? 255 : 0, + duration: TOOLTIP_ANIMATION_TIME, + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + onComplete: () => (this._tooltip.visible = this.hover), + }); + } + _onDestroy() { + this._tooltip.destroy(); + this._workspace.disconnect(this._windowAddedId); this._workspace.disconnect(this._windowRemovedId); global.display.disconnect(this._restackedId); From 3c3c1f702d05e46b033c77836ad8d486b4b532ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 20 Jan 2021 20:29:01 +0100 Subject: [PATCH 59/99] window-list: Add tooltips to workspace thumbnails When showing previews instead of the menu, the workspace names don't appear anywhere. Some users care strongly about those, so expose them as tooltip on hover. Part-of: --- extensions/window-list/workspaceIndicator.js | 42 ++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js index 37d1ff08..7314dfc7 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -9,6 +9,9 @@ const PopupMenu = imports.ui.popupMenu; const Gettext = imports.gettext.domain('gnome-shell-extensions'); const _ = Gettext.gettext; +const TOOLTIP_OFFSET = 6; +const TOOLTIP_ANIMATION_TIME = 150; + let WindowPreview = GObject.registerClass( class WindowPreview extends St.Button { _init(window) { @@ -107,7 +110,14 @@ class WorkspaceThumbnail extends St.Button { }), }); + this._tooltip = new St.Label({ + style_class: 'dash-label', + visible: false, + }); + Main.uiGroup.add_child(this._tooltip); + this.connect('destroy', this._onDestroy.bind(this)); + this.connect('notify::hover', this._syncTooltip.bind(this)); this._index = index; this._delegate = this; // needed for DND @@ -192,7 +202,39 @@ class WorkspaceThumbnail extends St.Button { ws.activate(global.get_current_time()); } + _syncTooltip() { + if (this.hover) { + this._tooltip.set({ + text: Meta.prefs_get_workspace_name(this._index), + visible: true, + opacity: 0, + }); + + const [stageX, stageY] = this.get_transformed_position(); + const thumbWidth = this.allocation.get_width(); + const tipWidth = this._tooltip.width; + const tipHeight = this._tooltip.height; + const xOffset = Math.floor((thumbWidth - tipWidth) / 2); + const monitor = Main.layoutManager.findMonitorForActor(this); + const x = Math.clamp( + stageX + xOffset, + monitor.x, + monitor.x + monitor.width - tipWidth); + const y = stageY - tipHeight - TOOLTIP_OFFSET; + this._tooltip.set_position(x, y); + } + + this._tooltip.ease({ + opacity: this.hover ? 255 : 0, + duration: TOOLTIP_ANIMATION_TIME, + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + onComplete: () => (this._tooltip.visible = this.hover), + }); + } + _onDestroy() { + this._tooltip.destroy(); + this._workspace.disconnect(this._windowAddedId); this._workspace.disconnect(this._windowRemovedId); global.display.disconnect(this._restackedId); From ac2ed286e12c781d3ebf8982426d3b71cbaef9b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 26 Jan 2021 16:58:30 +0100 Subject: [PATCH 60/99] extensions: Remove arrows from top bar menus ... following the corresponding gnome-shell change. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3567 Part-of: --- extensions/apps-menu/extension.js | 6 +----- extensions/drive-menu/extension.js | 7 ++----- extensions/places-menu/extension.js | 5 +---- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/extensions/apps-menu/extension.js b/extensions/apps-menu/extension.js index 9d465060..6376b524 100644 --- a/extensions/apps-menu/extension.js +++ b/extensions/apps-menu/extension.js @@ -363,17 +363,13 @@ class ApplicationsButton extends PanelMenu.Button { // role ATK_ROLE_MENU like other elements of the panel. this.accessible_role = Atk.Role.LABEL; - let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' }); - this._label = new St.Label({ text: _('Applications'), y_expand: true, y_align: Clutter.ActorAlign.CENTER, }); - hbox.add_child(this._label); - hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM)); - this.add_actor(hbox); + this.add_actor(this._label); this.name = 'panelApplications'; this.label_actor = this._label; diff --git a/extensions/drive-menu/extension.js b/extensions/drive-menu/extension.js index e5160662..d7757f3b 100644 --- a/extensions/drive-menu/extension.js +++ b/extensions/drive-menu/extension.js @@ -127,15 +127,12 @@ class DriveMenu extends PanelMenu.Button { _init() { super._init(0.0, _('Removable devices')); - let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' }); let icon = new St.Icon({ icon_name: 'media-eject-symbolic', - style_class: 'system-status-icon', + style_class: 'system-status-icon single-indicator', }); - hbox.add_child(icon); - hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM)); - this.add_child(hbox); + this.add_child(icon); this._monitor = Gio.VolumeMonitor.get(); this._addedId = this._monitor.connect('mount-added', (monitor, mount) => { diff --git a/extensions/places-menu/extension.js b/extensions/places-menu/extension.js index 9165a0a3..53663fc7 100644 --- a/extensions/places-menu/extension.js +++ b/extensions/places-menu/extension.js @@ -88,15 +88,12 @@ class PlacesMenu extends PanelMenu.Button { _init() { super._init(0.0, _('Places')); - let hbox = new St.BoxLayout({ style_class: 'panel-status-menu-box' }); let label = new St.Label({ text: _('Places'), y_expand: true, y_align: Clutter.ActorAlign.CENTER, }); - hbox.add_child(label); - hbox.add_child(PopupMenu.arrowIcon(St.Side.BOTTOM)); - this.add_actor(hbox); + this.add_actor(label); this.placesManager = new PlaceDisplay.PlacesManager(); From 8fcbed648164b739e1446cecdb8d5447b2bed6c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 26 Jan 2021 17:00:24 +0100 Subject: [PATCH 61/99] classic: Remove arrow-override No need to hide what is no longer there. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3567 Part-of: --- data/gnome-classic.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/data/gnome-classic.scss b/data/gnome-classic.scss index c4d95c90..750a9f51 100644 --- a/data/gnome-classic.scss +++ b/data/gnome-classic.scss @@ -81,7 +81,6 @@ $variant: 'light'; border-bottom: none; .panel-button { color: $osd_fg_color; } } - .popup-menu-arrow { width: 0; height: 0; } // shell's display: none; } #appMenu { From 8a5e793b3d984f3acc378cf8914410311e9dde0e Mon Sep 17 00:00:00 2001 From: Daniel van Vugt Date: Thu, 28 Jan 2021 16:33:50 +0800 Subject: [PATCH 62/99] auto-move-windows: Don't move windows already on all workspaces This fixes a particular case of mutter#992. Although gnome-shell will also be softened to not crash in future, it's also a good idea for the extension to explicitly decide how it wants to handle windows that are already on all workspaces. Part-of: --- extensions/auto-move-windows/extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/auto-move-windows/extension.js b/extensions/auto-move-windows/extension.js index b9bc3a00..3859809b 100644 --- a/extensions/auto-move-windows/extension.js +++ b/extensions/auto-move-windows/extension.js @@ -72,7 +72,7 @@ class WindowMover { } _moveWindow(window, workspaceNum) { - if (window.skip_taskbar) + if (window.skip_taskbar || window.is_on_all_workspaces()) return; // ensure we have the required number of workspaces From 0d8d6dceb071290dd1cae6097d327169b603c018 Mon Sep 17 00:00:00 2001 From: Michael Lawton Date: Mon, 11 Jan 2021 23:48:03 +0000 Subject: [PATCH 63/99] places-menu: Mark mounts that can be unmounted as removable While the eject() code falls back to unmount() for mounts that don't support ejecting, it's not possible to actually do so because we hide the eject button. Fix this by treating all mounts as removable that can either be ejected or unmounted. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/161 Part-of: --- extensions/places-menu/placeDisplay.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/places-menu/placeDisplay.js b/extensions/places-menu/placeDisplay.js index ae9ee9fe..bb78d5ec 100644 --- a/extensions/places-menu/placeDisplay.js +++ b/extensions/places-menu/placeDisplay.js @@ -194,7 +194,7 @@ class PlaceDeviceInfo extends PlaceInfo { } isRemovable() { - return this._mount.can_eject(); + return this._mount.can_eject() || this._mount.can_unmount(); } eject() { From d7c8a5d193553f8d82616ed57ab9c28d5a6734ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 29 Jan 2021 16:57:16 +0100 Subject: [PATCH 64/99] extensions: Remove horizontal-workspaces extension Workspaces are now horizontal by default, so we don't need to change the layout for classic mode anymore. That was the only reason why the extension was added, so it has now outlived its usefulness. Part-of: --- extensions/horizontal-workspaces/extension.js | 38 ------------------- extensions/horizontal-workspaces/meson.build | 5 --- .../horizontal-workspaces/metadata.json.in | 10 ----- .../horizontal-workspaces/stylesheet.css | 1 - meson.build | 1 - 5 files changed, 55 deletions(-) delete mode 100644 extensions/horizontal-workspaces/extension.js delete mode 100644 extensions/horizontal-workspaces/meson.build delete mode 100644 extensions/horizontal-workspaces/metadata.json.in delete mode 100644 extensions/horizontal-workspaces/stylesheet.css diff --git a/extensions/horizontal-workspaces/extension.js b/extensions/horizontal-workspaces/extension.js deleted file mode 100644 index 3f984b5a..00000000 --- a/extensions/horizontal-workspaces/extension.js +++ /dev/null @@ -1,38 +0,0 @@ -/* exported init */ -const { Meta } = imports.gi; - -const { ThumbnailsBox } = imports.ui.workspaceThumbnail; - -class Extension { - constructor() { - this._origUpdateSwitcherVisibility = - ThumbnailsBox.prototype._updateSwitcherVisibility; - } - - enable() { - global.workspace_manager.override_workspace_layout( - Meta.DisplayCorner.TOPLEFT, - false, - 1, - -1); - - ThumbnailsBox.prototype._updateSwitcherVisibility = function () { - this.hide(); - }; - } - - disable() { - global.workspace_manager.override_workspace_layout( - Meta.DisplayCorner.TOPLEFT, - false, - -1, - 1); - - ThumbnailsBox.prototype._updateSwitcherVisibility = - this._origUpdateSwitcherVisibility; - } -} - -function init() { - return new Extension(); -} diff --git a/extensions/horizontal-workspaces/meson.build b/extensions/horizontal-workspaces/meson.build deleted file mode 100644 index 48504f63..00000000 --- a/extensions/horizontal-workspaces/meson.build +++ /dev/null @@ -1,5 +0,0 @@ -extension_data += configure_file( - input: metadata_name + '.in', - output: metadata_name, - configuration: metadata_conf -) diff --git a/extensions/horizontal-workspaces/metadata.json.in b/extensions/horizontal-workspaces/metadata.json.in deleted file mode 100644 index f109e068..00000000 --- a/extensions/horizontal-workspaces/metadata.json.in +++ /dev/null @@ -1,10 +0,0 @@ -{ -"extension-id": "@extension_id@", -"uuid": "@uuid@", -"settings-schema": "@gschemaname@", -"gettext-domain": "@gettext_domain@", -"name": "Horizontal workspaces", -"description": "Use a horizontal workspace layout", -"shell-version": [ "@shell_current@" ], -"url": "@url@" -} diff --git a/extensions/horizontal-workspaces/stylesheet.css b/extensions/horizontal-workspaces/stylesheet.css deleted file mode 100644 index 25134b65..00000000 --- a/extensions/horizontal-workspaces/stylesheet.css +++ /dev/null @@ -1 +0,0 @@ -/* This extensions requires no special styling */ diff --git a/meson.build b/meson.build index 90b617f7..d34cfd41 100644 --- a/meson.build +++ b/meson.build @@ -32,7 +32,6 @@ uuid_suffix = '@gnome-shell-extensions.gcampax.github.com' classic_extensions = [ 'apps-menu', - 'horizontal-workspaces', 'places-menu', 'launch-new-instance', 'window-list' From b92295ad2c4ed9fd83ca21e586948e2300716a74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 3 Feb 2021 13:20:02 +0100 Subject: [PATCH 65/99] Update sass submodule Part-of: --- data/gnome-shell-sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/gnome-shell-sass b/data/gnome-shell-sass index 9c000f50..da0df35a 160000 --- a/data/gnome-shell-sass +++ b/data/gnome-shell-sass @@ -1 +1 @@ -Subproject commit 9c000f50d05983983fab1ad92a14478bbd4aad66 +Subproject commit da0df35aabbc0a4aa30c874b2808808931e37608 From 9fa522c29a1b05373a19101e0495047f7cb37a48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 3 Feb 2021 13:57:53 +0100 Subject: [PATCH 66/99] window-list: Adjust to overview changes The overview code changed significantly, including the bits we re-use to implement the window picker in the classic session. Adjust to those changes to unbreak the extension. Part-of: --- extensions/window-list/windowPicker.js | 158 ++++++++++++------------- 1 file changed, 77 insertions(+), 81 deletions(-) diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js index d0289ee0..31e2e94c 100644 --- a/extensions/window-list/windowPicker.js +++ b/extensions/window-list/windowPicker.js @@ -1,16 +1,24 @@ /* exported WindowPicker, WindowPickerToggle */ -const { Clutter, GLib, GObject, Meta, Shell, St } = imports.gi; +const { Clutter, GObject, Shell, St } = imports.gi; const Layout = imports.ui.layout; const Main = imports.ui.main; -const Overview = imports.ui.overview; const { WorkspacesDisplay } = imports.ui.workspacesView; +const { Workspace } = imports.ui.workspace; + +const { VIGNETTE_BRIGHTNESS } = imports.ui.lightbox; +const { + SIDE_CONTROLS_ANIMATION_TIME, + OverviewAdjustment, + ControlsState, +} = imports.ui.overviewControls; let MyWorkspacesDisplay = GObject.registerClass( class MyWorkspacesDisplay extends WorkspacesDisplay { - _init() { + _init(controls, overviewAdjustment) { let workspaceManager = global.workspace_manager; + this._overviewAdjustment = overviewAdjustment; this._workspaceAdjustment = new St.Adjustment({ value: workspaceManager.get_active_workspace_index(), lower: 0, @@ -24,7 +32,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay { workspaceManager.connect('notify::n-workspaces', this._updateAdjustment.bind(this)); - super._init(this._workspaceAdjustment); + super._init(controls, this._workspaceAdjustment, this._overviewAdjustment); this._workspaceAdjustment.actor = this; @@ -33,19 +41,15 @@ class MyWorkspacesDisplay extends WorkspacesDisplay { primary: true, work_area: true, })); - - this._workareasChangedId = global.display.connect('workareas-changed', - this._onWorkAreasChanged.bind(this)); - this._onWorkAreasChanged(); } - animateToOverview(...args) { + prepareToEnterOverview(...args) { if (!this._scrollEventId) { this._scrollEventId = Main.windowPicker.connect('scroll-event', this._onScrollEvent.bind(this)); } - super.animateToOverview(...args); + super.prepareToEnterOverview(...args); } vfunc_hide(...args) { @@ -56,13 +60,6 @@ class MyWorkspacesDisplay extends WorkspacesDisplay { super.vfunc_hide(...args); } - _onWorkAreasChanged() { - let { primaryIndex } = Main.layoutManager; - this._actualGeometry = - Main.layoutManager.getWorkAreaForMonitor(primaryIndex); - this._syncWorkspacesActualGeometry(); - } - _updateAdjustment() { let workspaceManager = global.workspace_manager; this._workspaceAdjustment.set({ @@ -71,20 +68,7 @@ class MyWorkspacesDisplay extends WorkspacesDisplay { }); } - _updateWorkspacesViews() { - super._updateWorkspacesViews(); - - this._workspacesViews.forEach(v => { - Main.layoutManager.overviewGroup.remove_actor(v); - Main.windowPicker.add_actor(v); - }); - } - _onDestroy() { - if (this._workareasChangedId) - global.display.disconnect(this._workareasChangedId); - this._workareasChangedId = 0; - if (this._nWorkspacesChangedId) global.workspace_manager.disconnect(this._nWorkspacesChangedId); this._nWorkspacesChangedId = 0; @@ -105,7 +89,9 @@ var WindowPicker = GObject.registerClass({ this._overlayKeyId = 0; this._stageKeyPressId = 0; - super._init(); + super._init({ reactive: true }); + + this._adjustment = new OverviewAdjustment(this); this.connect('destroy', this._onDestroy.bind(this)); @@ -116,31 +102,14 @@ var WindowPicker = GObject.registerClass({ this, 'height', GObject.BindingFlags.SYNC_CREATE); - this._backgroundGroup = new Meta.BackgroundGroup({ reactive: true }); - this.add_child(this._backgroundGroup); - - this._backgroundGroup.connect('scroll-event', (a, ev) => { - this.emit('scroll-event', ev); - }); - - // Trick WorkspacesDisplay constructor into adding actions here - let addActionOrig = Main.overview.addAction; - Main.overview.addAction = a => this._backgroundGroup.add_action(a); - - this._workspacesDisplay = new MyWorkspacesDisplay(); + this._workspacesDisplay = new MyWorkspacesDisplay(this, this._adjustment); this.add_child(this._workspacesDisplay); - Main.overview.addAction = addActionOrig; - - this._bgManagers = []; - - this._monitorsChangedId = Main.layoutManager.connect('monitors-changed', - this._updateBackgrounds.bind(this)); - this._updateBackgrounds(); - Main.uiGroup.insert_child_below(this, global.window_group); if (!Main.sessionMode.hasOverview) { + this._injectBackgroundShade(); + this._overlayKeyId = global.display.connect('overlay-key', () => { if (!this._visible) this.open(); @@ -150,6 +119,36 @@ var WindowPicker = GObject.registerClass({ } } + _injectBackgroundShade() { + const adjustment = this._adjustment; + const { _init, _onDestroy } = Workspace.prototype; + + Workspace.prototype._init = function (...args) { + _init.call(this, ...args); + + this._adjChangedId = adjustment.connect('notify::value', () => { + const { value: progress } = adjustment; + const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress; + for (const bg of this._background?._backgroundGroup ?? []) { + bg.content.set({ + vignette: true, + brightness, + }); + } + }); + }; + Workspace.prototype._onDestroy = function () { + _onDestroy.call(this); + + if (this._adjChangedId) + adjustment.disconnect(this._adjChangedId); + this._adjChangedId = 0; + }; + + this._wsInit = _init; + this._wsDestroy = _onDestroy; + } + get visible() { return this._visible; } @@ -164,9 +163,15 @@ var WindowPicker = GObject.registerClass({ return; this._fakeOverviewVisible(true); - this._shadeBackgrounds(); - this._fakeOverviewAnimation(); - this._workspacesDisplay.animateToOverview(false); + this._workspacesDisplay.prepareToEnterOverview(); + Main.overview._animationInProgress = true; + + this._adjustment.value = ControlsState.HIDDEN; + this._adjustment.ease(ControlsState.WINDOW_PICKER, { + duration: SIDE_CONTROLS_ANIMATION_TIME, + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + onComplete: () => (Main.overview._animationInProgress = false), + }); this._stageKeyPressId = global.stage.connect('key-press-event', (a, event) => { @@ -190,11 +195,17 @@ var WindowPicker = GObject.registerClass({ if (!this._syncGrab()) return; - this._workspacesDisplay.animateFromOverview(false); - this._unshadeBackgrounds(); - this._fakeOverviewAnimation(() => { - this._workspacesDisplay.hide(); - this._fakeOverviewVisible(false); + this._workspacesDisplay.prepareToLeaveOverview(); + + Main.overview._animationInProgress = true; + this._adjustment.ease(ControlsState.HIDDEN, { + duration: SIDE_CONTROLS_ANIMATION_TIME, + mode: Clutter.AnimationMode.EASE_OUT_QUAD, + onComplete: () => { + Main.overview._animationInProgress = false; + this._workspacesDisplay.hide(); + this._fakeOverviewVisible(false); + }, }); global.stage.disconnect(this._stageKeyPressId); @@ -203,16 +214,8 @@ var WindowPicker = GObject.registerClass({ this.emit('open-state-changed', this._visible); } - _fakeOverviewAnimation(onComplete) { - Main.overview._animationInProgress = true; - GLib.timeout_add( - GLib.PRIORITY_DEFAULT, - Overview.ANIMATION_TIME, - () => { - Main.overview._animationInProgress = false; - if (onComplete) - onComplete(); - }); + getWorkspacesBoxForState() { + return this.allocation; } _fakeOverviewVisible(visible) { @@ -245,6 +248,11 @@ var WindowPicker = GObject.registerClass({ } _onDestroy() { + if (this._wsInit) + Workspace.prototype._init = this._wsInit; + if (this._wsDestroy) + Workspace.prototype._onDestroy = this._wsDestroy; + if (this._monitorsChangedId) Main.layoutManager.disconnect(this._monitorsChangedId); this._monitorsChangedId = 0; @@ -257,18 +265,6 @@ var WindowPicker = GObject.registerClass({ global.stage.disconnect(this._stageKeyPressId); this._stageKeyPressId = 0; } - - _updateBackgrounds() { - Main.overview._updateBackgrounds.call(this); - } - - _shadeBackgrounds() { - Main.overview._shadeBackgrounds.call(this); - } - - _unshadeBackgrounds() { - Main.overview._unshadeBackgrounds.call(this); - } }); var WindowPickerToggle = GObject.registerClass( From 7774426eb9ec02072463010d4fcad83e8e4d137b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D1=8F=D0=BA=D1=81=D0=B5=D0=B9?= Date: Fri, 12 Feb 2021 16:18:20 +0000 Subject: [PATCH 67/99] Update Belarusian translation --- po/be.po | 377 ++++++++++++++++++++++++++----------------------------- 1 file changed, 181 insertions(+), 196 deletions(-) diff --git a/po/be.po b/po/be.po index ed947c63..a593d235 100644 --- a/po/be.po +++ b/po/be.po @@ -6,11 +6,11 @@ msgid "" msgstr "" "Project-Id-Version: gnome-shell-extensions master\n" -"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" -"shell&keywords=I18N+L10N&component=extensions\n" -"POT-Creation-Date: 2017-08-19 16:41+0000\n" -"PO-Revision-Date: 2017-09-01 17:56+0300\n" -"Last-Translator: Yuras Shumovich \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" +"Last-Translator: Launchpad translators\n" "Language-Team: Belarusian \n" "Language: be\n" "MIME-Version: 1.0\n" @@ -18,9 +18,9 @@ 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 1.8.11\n" +"X-Generator: Poedit 2.4.2\n" -#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 +#: data/gnome-classic.desktop.in:3 msgid "GNOME Classic" msgstr "Класічны GNOME" @@ -28,171 +28,69 @@ msgstr "Класічны GNOME" msgid "This session logs you into GNOME Classic" msgstr "Гэты сеанс выкарыстоўвае класічны GNOME" -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 -msgid "Attach modal dialog to the parent window" -msgstr "Прымацаваць мадальны дыялог да бацькоўскага акна" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41 -msgid "" -"This key overrides the key in org.gnome.mutter when running GNOME Shell." -msgstr "Гэты ключ засланяе ключ у org.gnome.mutter калі запушчаны GNOME Shell." - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16 -msgid "Arrangement of buttons on the titlebar" -msgstr "Парадак кнопак у загалоўнай стужцы" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17 -msgid "" -"This key overrides the key in org.gnome.desktop.wm.preferences when running " -"GNOME Shell." -msgstr "" -"Гэты ключ засланяе ключ у org.gnome.desktop.wm.preferences калі запушчаны " -"GNOME Shell." - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24 -msgid "Enable edge tiling when dropping windows on screen edges" -msgstr "Аўтаматычна змяняць памеры акна пры перамяшчэнні да края экрана" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32 -msgid "Workspaces only on primary monitor" -msgstr "Працоўныя прасторы толькі на асноўным маніторы" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40 -msgid "Delay focus changes in mouse mode until the pointer stops moving" -msgstr "Затрымліваць змяненні фокуса ў рэжыме мышы да спынення паказальніка" - -#: extensions/alternate-tab/prefs.js:20 -msgid "Thumbnail only" -msgstr "Толькі мініяцюра" - -#: extensions/alternate-tab/prefs.js:21 -msgid "Application icon only" -msgstr "Толькі значок праграмы" - -#: extensions/alternate-tab/prefs.js:22 -msgid "Thumbnail and application icon" -msgstr "Мініяцюра і значок праграмы" - -#: extensions/alternate-tab/prefs.js:38 -msgid "Present windows as" -msgstr "Адлюстроўваць вокны як" - -#: extensions/alternate-tab/prefs.js:69 -msgid "Show only windows in the current workspace" -msgstr "Паказваць вокны толькі з бягучай працоўная прасторы" - -#: extensions/apps-menu/extension.js:41 -msgid "Activities Overview" -msgstr "Агляд заняткаў" - -#: extensions/apps-menu/extension.js:141 +#: extensions/apps-menu/extension.js:113 msgid "Favorites" -msgstr "Упадабаныя" +msgstr "Абраныя" -#: extensions/apps-menu/extension.js:436 +#: extensions/apps-menu/extension.js:369 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 "" "A list of strings, each containing an application id (desktop file name), " "followed by a colon and the workspace number" msgstr "" -"Спіс радкоў, кожны з якіх утрымлівае ідэнтыфікатар праграмы (імя *.desktop " -"файла), затым двукроп'е і нумар працоўнай прасторы" +"Спіс радкоў, кожны з якіх змяшчае ідэнтыфікатар праграмы (імя файла *." +"desktop), затым двукроп'е і нумар працоўнай прасторы" -#: extensions/auto-move-windows/prefs.js:60 -msgid "Application" -msgstr "Праграма" +#: extensions/auto-move-windows/prefs.js:35 +msgid "Workspace Rules" +msgstr "Правілы для працоўнай прасторы" -#: extensions/auto-move-windows/prefs.js:69 -#: extensions/auto-move-windows/prefs.js:127 -msgid "Workspace" -msgstr "Працоўная прастора" - -#: extensions/auto-move-windows/prefs.js:85 +#: extensions/auto-move-windows/prefs.js:237 msgid "Add Rule" msgstr "Дадаць правіла" -#: extensions/auto-move-windows/prefs.js:106 -msgid "Create new matching rule" -msgstr "Стварыць новае правіла адпаведнасці" - -#: extensions/auto-move-windows/prefs.js:111 -msgid "Add" -msgstr "Дадаць" - #. TRANSLATORS: %s is the filesystem name -#: extensions/drive-menu/extension.js:107 +#: extensions/drive-menu/extension.js:112 +#: extensions/places-menu/placeDisplay.js:233 #, javascript-format msgid "Ejecting drive “%s” failed:" -msgstr "Не ўдалося выняць прывод \"%s\":" +msgstr "Не ўдалося выняць дыск «%s»:" -#: extensions/drive-menu/extension.js:125 +#: extensions/drive-menu/extension.js:128 msgid "Removable devices" -msgstr "Зменныя прыстасаванні" +msgstr "Здымныя прылады" -#: extensions/drive-menu/extension.js:150 +#: extensions/drive-menu/extension.js:155 msgid "Open Files" msgstr "Адкрыць файлы" -#: extensions/example/extension.js:17 -msgid "Hello, world!" -msgstr "Прывітанне, свет!" - -#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5 -msgid "Alternative greeting text." -msgstr "Альтэрнатыўны тэкст вітання." - -#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6 -msgid "" -"If not empty, it contains the text that will be shown when clicking on the " -"panel." -msgstr "" -"Калі не пуста, ўтрымлівае тэкст, які будзе паказвацца пры націсканні на " -"панэль." - -#: extensions/example/prefs.js:30 -msgid "Message" -msgstr "Паведамленне" - -#. TRANSLATORS: Example is the name of the extension, should not be -#. translated -#: extensions/example/prefs.js:43 -msgid "" -"Example aims to show how to build well behaved extensions for the Shell and " -"as such it has little functionality on its own.\n" -"Nevertheless it’s possible to customize the greeting message." -msgstr "" -"Example пакажа як ствараць пашырэнні для Shell. Сам па сабе ён мае мала " -"функцыянальнасці.\n" -"Тым не менш, можна змяніць тэкст прывітання." - #: 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 "" -"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр шляхам " -"змянення суадносінаў бакоў экрана і ўшчыльняючы іх з мэтай змяншэння памераў " -"абмежавальнай рамкі. Гэты параметр ужываецца толькі разам з звычайным " +"Спрабаваць выкарыстаць большую плошчу экрана для размяшчэння мініяцюр праз " +"змяненне суадносінаў бакоў экрана, ўшчыльняючы іх, каб зменшыць памеры " +"абмежавальнай рамкі. Гэты параметр ужываецца толькі з натуральным " "размяшчэннем мініяцюр." #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 msgid "Place window captions on top" -msgstr "Змяшчаць загалоўкі вокнаў зверху" +msgstr "Размяшчаць подпіс акна зверху" #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 msgid "" @@ -200,156 +98,243 @@ 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:78 -#: extensions/places-menu/extension.js:81 +#: extensions/places-menu/extension.js:89 +#: extensions/places-menu/extension.js:93 msgid "Places" msgstr "Месцы" -#: extensions/places-menu/placeDisplay.js:65 -#, javascript-format -msgid "Failed to mount volume for “%s”" -msgstr "Не ўдалося прымацаваць том для \"%s\"." - -#: extensions/places-menu/placeDisplay.js:78 +#: extensions/places-menu/placeDisplay.js:46 #, javascript-format msgid "Failed to launch “%s”" -msgstr "Не ўдалося запусціць \"%s\"" +msgstr "Не ўдалося запусціць «%s»" -#: extensions/places-menu/placeDisplay.js:137 -#: extensions/places-menu/placeDisplay.js:160 +#: extensions/places-menu/placeDisplay.js:61 +#, javascript-format +msgid "Failed to mount volume for “%s”" +msgstr "Не ўдалося прымацаваць том для «%s»." + +#: extensions/places-menu/placeDisplay.js:148 +#: extensions/places-menu/placeDisplay.js:171 msgid "Computer" msgstr "Камп'ютар" -#: extensions/places-menu/placeDisplay.js:303 +#: extensions/places-menu/placeDisplay.js:359 msgid "Home" -msgstr "Дамашняя папка" +msgstr "Хатняя папка" -#: extensions/places-menu/placeDisplay.js:347 +#: extensions/places-menu/placeDisplay.js:404 msgid "Browse Network" msgstr "Агляд сеткі" #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 msgid "Cycle Screenshot Sizes" -msgstr "Чаргаваць памеры экраннага здымка" +msgstr "Паслядоўнасць змены памераў для здымка экрана" #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 msgid "Cycle Screenshot Sizes Backward" -msgstr "Чаргаваць памеры экраннага здымка ў адваротным напрамку" +msgstr "Адваротная паслядоўнасць змены памераў для здымка экрана" #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 msgid "Theme name" -msgstr "Імя матыву аздаблення" +msgstr "Назва тэмы" #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6 msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" -msgstr "" -"Імя матыву аздаблення, які будзе загружаны з ~/.themes/name/gnome-shell" +msgstr "Назва тэмы, што загрузіцца з ~/.themes/name/gnome-shell" -#: extensions/window-list/extension.js:110 +#: extensions/window-list/extension.js:98 msgid "Close" msgstr "Закрыць" -#: extensions/window-list/extension.js:129 +#: extensions/window-list/extension.js:118 msgid "Unminimize" -msgstr "Скасаваць мінімалізацыю" +msgstr "Скасаваць згортванне" -#: extensions/window-list/extension.js:130 +#: extensions/window-list/extension.js:118 msgid "Minimize" -msgstr "Мінімалізаваць" +msgstr "Згарнуць" -#: extensions/window-list/extension.js:136 +#: extensions/window-list/extension.js:125 msgid "Unmaximize" -msgstr "Скасаваць максімалізацыю" +msgstr "Скасаваць разгортванне" -#: extensions/window-list/extension.js:137 +#: extensions/window-list/extension.js:125 msgid "Maximize" -msgstr "Максімалізаваць" +msgstr "Разгарнуць" -#: extensions/window-list/extension.js:420 +#: extensions/window-list/extension.js:432 msgid "Minimize all" -msgstr "Мінімалізаваць усе" +msgstr "Згарнуць усе" -#: extensions/window-list/extension.js:428 +#: extensions/window-list/extension.js:438 msgid "Unminimize all" -msgstr "Скасаваць мінімалізацыю для ўсіх" +msgstr "Скасаваць згортванне для ўсіх" -#: extensions/window-list/extension.js:436 +#: extensions/window-list/extension.js:444 msgid "Maximize all" -msgstr "Максімалізаваць усе" +msgstr "Разгарнуць усе" -#: extensions/window-list/extension.js:445 +#: extensions/window-list/extension.js:452 msgid "Unmaximize all" -msgstr "Скасаваць максімалізацыю для ўсіх" +msgstr "Скасаваць разгортванне для ўсіх" -#: extensions/window-list/extension.js:454 +#: extensions/window-list/extension.js:460 msgid "Close all" msgstr "Закрыць усе" -#: extensions/window-list/extension.js:678 -#: extensions/workspace-indicator/extension.js:30 -msgid "Workspace Indicator" -msgstr "Індыкатар працоўнай прасторы" - -#: extensions/window-list/extension.js:842 +#: extensions/window-list/extension.js:737 msgid "Window List" msgstr "Спіс вокнаў" #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12 msgid "When to group windows" -msgstr "Калі групаваць вокны" +msgstr "Умовы групавання вокнаў" #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 msgid "" "Decides when to group windows from the same application on the window list. " "Possible values are “never”, “auto” and “always”." msgstr "" -"Вырашае калі групаваць вокны адной праграмы ў спісе вокнаў. Магчымыя " -"значэнні: \"never\" (ніколі), \"auto\" (аўтаматычна), \"always\" (заўсёды)." +"Вызначае калі групаваць вокны адной праграмы ў спісе вокнаў. Магчымыя " +"значэнні: «never» (ніколі), «auto» (аўтаматычна), «always» (заўсёды)." #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 -msgid "Show the window list on all monitors" -msgstr "Паказаць спіс вокнаў на ўсіх маніторах" +#: extensions/window-list/prefs.js:100 +msgid "Show windows from all workspaces" +msgstr "Паказваць вокны з усіх працоўных прастор" #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 +msgid "Whether to show windows from all workspaces or only the current one." +msgstr "Паказваць вокны з усіх працоўных прастор ці толькі з бягучай." + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 +msgid "Show the window list on all monitors" +msgstr "Паказваць спіс вокнаў на ўсіх маніторах" + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28 msgid "" "Whether to show the window list on all connected monitors or only on the " "primary one." msgstr "" -"Ці паказваць спіс вокнаў на ўсіх злучаных маніторах або толькі на галоўным." +"Паказваць спіс вокнаў на ўсіх падлучаных маніторах ці толькі на асноўным." -#: extensions/window-list/prefs.js:32 +#: extensions/window-list/prefs.js:29 msgid "Window Grouping" msgstr "Групаванне вокнаў" -#: extensions/window-list/prefs.js:50 +#: extensions/window-list/prefs.js:58 msgid "Never group windows" msgstr "Ніколі не групаваць вокны" -#: extensions/window-list/prefs.js:51 +#: extensions/window-list/prefs.js:59 msgid "Group windows when space is limited" msgstr "Групаваць вокны калі не хапае месца" -#: extensions/window-list/prefs.js:52 +#: extensions/window-list/prefs.js:60 msgid "Always group windows" msgstr "Заўсёды групаваць вокны" -#: extensions/window-list/prefs.js:75 +#: extensions/window-list/prefs.js:94 msgid "Show on all monitors" -msgstr "Паказаць усе маніторы" +msgstr "Паказваць на ўсіх маніторах" -#: extensions/workspace-indicator/prefs.js:141 +#: extensions/window-list/workspaceIndicator.js:247 +#: extensions/workspace-indicator/extension.js:253 +msgid "Workspace Indicator" +msgstr "Індыкатар працоўнай прасторы" + +#: extensions/workspace-indicator/prefs.js:34 msgid "Workspace Names" -msgstr "Назвы працоўных прастораў" +msgstr "Назвы працоўных прастор" -#: extensions/workspace-indicator/prefs.js:157 -msgid "Name" -msgstr "Імя" - -#: extensions/workspace-indicator/prefs.js:198 +#: extensions/workspace-indicator/prefs.js:67 #, javascript-format msgid "Workspace %d" msgstr "Працоўная прастора %d" + +#: extensions/workspace-indicator/prefs.js:208 +msgid "Add Workspace" +msgstr "Дадаць працоўную прастору" + +#~ msgid "Attach modal dialog to the parent window" +#~ msgstr "Прымацаваць мадальны дыялог да бацькоўскага акна" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell." +#~ msgstr "" +#~ "Гэты ключ засланяе ключ у org.gnome.mutter калі запушчаны GNOME Shell." + +#~ msgid "Arrangement of buttons on the titlebar" +#~ msgstr "Парадак кнопак у загалоўнай стужцы" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.desktop.wm.preferences when " +#~ "running GNOME Shell." +#~ msgstr "" +#~ "Гэты ключ засланяе ключ у org.gnome.desktop.wm.preferences калі запушчаны " +#~ "GNOME Shell." + +#~ msgid "Enable edge tiling when dropping windows on screen edges" +#~ msgstr "Аўтаматычна змяняць памеры акна пры перамяшчэнні да края экрана" + +#~ msgid "Workspaces only on primary monitor" +#~ msgstr "Працоўныя прасторы толькі на асноўным маніторы" + +#~ msgid "Delay focus changes in mouse mode until the pointer stops moving" +#~ msgstr "Затрымліваць змяненні фокуса ў рэжыме мышы да спынення паказальніка" + +#~ msgid "Thumbnail only" +#~ msgstr "Толькі мініяцюра" + +#~ msgid "Application icon only" +#~ msgstr "Толькі значок праграмы" + +#~ msgid "Thumbnail and application icon" +#~ msgstr "Мініяцюра і значок праграмы" + +#~ msgid "Present windows as" +#~ msgstr "Адлюстроўваць вокны як" + +#~ msgid "Activities Overview" +#~ msgstr "Агляд заняткаў" + +#~ msgid "Application" +#~ msgstr "Праграма" + +#~ msgid "Create new matching rule" +#~ msgstr "Стварыць новае правіла адпаведнасці" + +#~ msgid "Add" +#~ msgstr "Дадаць" + +#~ msgid "Hello, world!" +#~ msgstr "Прывітанне, свет!" + +#~ msgid "Alternative greeting text." +#~ msgstr "Альтэрнатыўны тэкст вітання." + +#~ msgid "" +#~ "If not empty, it contains the text that will be shown when clicking on " +#~ "the panel." +#~ msgstr "" +#~ "Калі не пуста, ўтрымлівае тэкст, які будзе паказвацца пры націсканні на " +#~ "панэль." + +#~ msgid "Message" +#~ msgstr "Паведамленне" + +#~ msgid "" +#~ "Example aims to show how to build well behaved extensions for the Shell " +#~ "and as such it has little functionality on its own.\n" +#~ "Nevertheless it’s possible to customize the greeting message." +#~ msgstr "" +#~ "Example пакажа як ствараць пашырэнні для Shell. Сам па сабе ён мае мала " +#~ "функцыянальнасці.\n" +#~ "Тым не менш, можна змяніць тэкст прывітання." + +#~ msgid "Name" +#~ msgstr "Імя" From 8016cf7ae999126e177c71c06db98f71811a0edb Mon Sep 17 00:00:00 2001 From: A S Alam Date: Sun, 14 Feb 2021 00:58:36 +0000 Subject: [PATCH 68/99] Update Punjabi translation --- po/pa.po | 328 ++++++++++++++++++++++++++----------------------------- 1 file changed, 152 insertions(+), 176 deletions(-) diff --git a/po/pa.po b/po/pa.po index 4c191ba3..173c9b45 100644 --- a/po/pa.po +++ b/po/pa.po @@ -2,21 +2,21 @@ # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-shell-extensions package. # -# A S Alam , 2011, 2012, 2013, 2014, 2015, 2018. +# A S Alam , 2011, 2012, 2013, 2014, 2015, 2018, 2021. msgid "" msgstr "" "Project-Id-Version: gnome-shell-extensions gnome-3-0\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is" "sues\n" -"POT-Creation-Date: 2018-02-20 23:07+0000\n" -"PO-Revision-Date: 2018-03-10 09:36-0600\n" -"Last-Translator: A S Alam \n" +"POT-Creation-Date: 2020-05-28 00:55+0000\n" +"PO-Revision-Date: 2021-02-13 16:51-0800\n" +"Last-Translator: A S Alam \n" "Language-Team: Punjabi \n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 2.0\n" +"X-Generator: Lokalize 20.08.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 @@ -27,73 +27,11 @@ msgstr "ਗਨੋਮ ਕਲਾਸਿਕ" msgid "This session logs you into GNOME Classic" msgstr "ਇਹ ਸ਼ੈਸ਼ਨ ਤੁਹਾਨੂੰ ਗਨੋਮ ਕਲਾਸਿਕ ਵਿੱਚ ਲਾਗ ਕਰਦਾ ਹੈ" -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 -msgid "Attach modal dialog to the parent window" -msgstr "ਮੁੱਢਲੀ ਵਿੰਡੋ ਵਿੱਚ ਮਾਡਲ ਡਾਈਲਾਗ ਜੋੜੋ" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41 -msgid "" -"This key overrides the key in org.gnome.mutter when running GNOME Shell." -msgstr "" -"ਇਹ ਕੁੰਜੀ ਗਨੋਮ ਸ਼ੈੱਲ ਚੱਲਣ ਦੇ ਦੌਰਾਨ org.gnome.mutter ਕੁੰਜੀ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਦੀ ਹੈ।" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16 -msgid "Arrangement of buttons on the titlebar" -msgstr "ਟਾਈਟਲ-ਪੱਟੀ ਵਿੱਚ ਬਟਨਾਂ ਦਾ ਪ੍ਰਬੰਧ" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17 -msgid "" -"This key overrides the key in org.gnome.desktop.wm.preferences when running " -"GNOME Shell." -msgstr "" -"ਇਹ ਕੁੰਜੀ ਗਨੋਮ ਸ਼ੈੱਲ ਚੱਲਣ ਦੇ ਦੌਰਾਨ org.gnome.desktop.wm.preferencesr ਕੁੰਜੀ ਨੂੰ" -" ਅਣਡਿੱਠਾ " -"ਕਰਦੀ ਹੈ।" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24 -msgid "Enable edge tiling when dropping windows on screen edges" -msgstr "ਕੋਨਾ ਟਿਲਿੰਗ ਚਾਲੂ, ਜਦੋਂ ਵਿੰਡੋਜ਼ ਨੂੰ ਸਕਰੀਨ ਕੋਨਿਆਂ ਤੋਂ ਡਰਾਪ ਕਰਨਾ ਹੋਵੇ" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32 -msgid "Workspaces only on primary monitor" -msgstr "ਪ੍ਰਾਈਮਰੀ ਮਾਨੀਟਰ ਉੱਤੇ ਕੇਵਲ ਵਰਕਸਪੇਸ" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40 -msgid "Delay focus changes in mouse mode until the pointer stops moving" -msgstr "ਪੁਆਇੰਟਰ ਦੇ ਹਿਲਣ ਤੋਂ ਰੁਕਣ ਤੱਕ ਮਾਊਸ ਮੋਡ ਵਿੱਚ ਫੋਕਸ ਬਦਲਾਅ ਵਿੱਚ ਦੇਰੀ" - -#: extensions/alternate-tab/prefs.js:19 -msgid "Thumbnail only" -msgstr "ਕੇਵਲ ਥੰਮਨੇਲ ਹੀ" - -#: extensions/alternate-tab/prefs.js:20 -msgid "Application icon only" -msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਹੀ" - -#: extensions/alternate-tab/prefs.js:21 -msgid "Thumbnail and application icon" -msgstr "ਥੰਮਨੇਲ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ" - -#: extensions/alternate-tab/prefs.js:34 -msgid "Present windows as" -msgstr "ਵਿੰਡੋਜ਼ ਨੂੰ ਪੇਸ਼ ਕਰੋ" - -#: extensions/alternate-tab/prefs.js:65 -msgid "Show only windows in the current workspace" -msgstr "ਮੌਜੂਦਾ ਵਰਕਸਪੇਸ ਵਿੱਚੋਂ ਹੀ ਵਿੰਡੋਜ਼ ਹੀ ਵੇਖਾਓ" - -#: extensions/apps-menu/extension.js:37 -msgid "Activities Overview" -msgstr "ਸਰਗਰਮੀ ਝਲਕ" - -#: extensions/apps-menu/extension.js:130 +#: extensions/apps-menu/extension.js:113 msgid "Favorites" msgstr "ਪਸੰਦੀਦਾ" -#: extensions/apps-menu/extension.js:417 +#: extensions/apps-menu/extension.js:369 msgid "Applications" msgstr "ਐਪਲੀਕੇਸ਼ਨ" @@ -110,81 +48,30 @@ msgstr "" " ਵਰਕਸਪੇਸ ਨੰਬਰ " "ਰੱਖਦਾ ਹੈ" -#: extensions/auto-move-windows/prefs.js:53 -msgid "Application" -msgstr "ਐਪਲੀਕੇਸ਼ਨ" +#: extensions/auto-move-windows/prefs.js:35 +#| msgid "Workspace Names" +msgid "Workspace Rules" +msgstr "ਵਰਕਸਪੇਸ ਨਿਯਮ" -#: extensions/auto-move-windows/prefs.js:62 -#: extensions/auto-move-windows/prefs.js:117 -msgid "Workspace" -msgstr "ਵਰਕਸਪੇਸ" - -#: extensions/auto-move-windows/prefs.js:78 +#: extensions/auto-move-windows/prefs.js:243 msgid "Add Rule" msgstr "ਨਿਯਮ ਜੋੜੋ" -#: extensions/auto-move-windows/prefs.js:98 -msgid "Create new matching rule" -msgstr "ਨਵਾਂ ਮਿਲਾਉਣ ਨਿਯਮ ਬਣਾਓ" - -#: extensions/auto-move-windows/prefs.js:103 -msgid "Add" -msgstr "ਜੋੜੋ" - #. TRANSLATORS: %s is the filesystem name -#: extensions/drive-menu/extension.js:103 -#: extensions/places-menu/placeDisplay.js:219 +#: extensions/drive-menu/extension.js:112 +#: extensions/places-menu/placeDisplay.js:233 #, javascript-format -#| msgid "Ejecting drive '%s' failed:" msgid "Ejecting drive “%s” failed:" msgstr "ਡਰਾਇਵ “%s“ ਬਾਹਰ ਕੱਢਣ ਲਈ ਫੇਲ੍ਹ:" -#: extensions/drive-menu/extension.js:118 +#: extensions/drive-menu/extension.js:128 msgid "Removable devices" msgstr "ਹਟਾਉਣਯੋਗ ਜੰਤਰ" -#: extensions/drive-menu/extension.js:143 -#| msgid "Open File" +#: extensions/drive-menu/extension.js:155 msgid "Open Files" msgstr "ਫਾਇਲਾਂ ਨੂੰ ਖੋਲ੍ਹੋ" -#: extensions/example/extension.js:17 -msgid "Hello, world!" -msgstr "ਹੈਲੋ, ਵਰਲਡ!" - -#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5 -msgid "Alternative greeting text." -msgstr "ਬਦਲਵਾਂ ਸਵਾਗਤੀ ਟੈਕਸਟ ਹੈ।" - -#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6 -msgid "" -"If not empty, it contains the text that will be shown when clicking on the " -"panel." -msgstr "" -"ਜੇ ਖਾਲੀ ਨਹੀਂ ਤਾਂ ਇਹ ਟੈਕਸਟ ਰੱਖਦਾ ਹੈ, ਜੋ ਕਿ ਪੈਨਲ ਨੂੰ ਕਲਿੱਕ ਕਰਨ ਨਾਲ ਵੇਖਾਇਆ" -" ਜਾਵੇਗਾ।" - -#: extensions/example/prefs.js:27 -msgid "Message" -msgstr "ਸੁਨੇਹਾ" - -#. TRANSLATORS: Example is the name of the extension, should not be -#. translated -#: extensions/example/prefs.js:40 -#| msgid "" -#| "Example aims to show how to build well behaved extensions for the Shell " -#| "and as such it has little functionality on its own.\n" -#| "Nevertheless it's possible to customize the greeting message." -msgid "" -"Example aims to show how to build well behaved extensions for the Shell and " -"as such it has little functionality on its own.\n" -"Nevertheless it’s possible to customize the greeting message." -msgstr "" -"Example ਦਾ ਮਕਸਦ ਸ਼ੈਲ ਲਈ ਇੱਕ ਵਧੀਆ ਕੰਮ ਕਰਦੀ ਇਕਸਟੈਸ਼ਨ ਬਣਾਉਣ ਦੀ ਉਦਾਹਰਨ ਦੇਣਾ ਹੈ ਅਤੇ" -" ਇਸ ਦਾ " -"ਖੁਦ ਕੋਈ ਬਹੁਤਾ ਕੰਮ ਨਹੀਂ ਹੈ।\n" -"ਫੇਰ ਵੀ ਸਵਾਗਤੀ ਸੁਨੇਹੇ ਨੂੰ ਬਦਲਣਾ ਸੰਭਵ ਹੈ।" - #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 msgid "Use more screen for windows" msgstr "ਵਿੰਡੋਜ਼ ਲਈ ਹੋਰ ਸਕਰੀਨ ਵਰਤੋਂ" @@ -216,32 +103,31 @@ msgstr "" "ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਦਾ ਹੈ। ਇਹ ਸੈਟਿੰਗ ਬਦਲਾਅ ਦੇ ਚਾਲੂ ਹੋਣ ਲਈ ਸ਼ੈਲ ਨੂੰ ਮੁੜ-ਚਾਲੂ ਕਰਨ ਦੀ" " ਲੋੜ ਹੈ।" -#: extensions/places-menu/extension.js:79 -#: extensions/places-menu/extension.js:82 +#: extensions/places-menu/extension.js:89 +#: extensions/places-menu/extension.js:93 msgid "Places" msgstr "ਥਾਵਾਂ" -#: extensions/places-menu/placeDisplay.js:66 +#: extensions/places-menu/placeDisplay.js:46 +#, javascript-format +msgid "Failed to launch “%s”" +msgstr "“%s“ ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" + +#: extensions/places-menu/placeDisplay.js:61 #, javascript-format msgid "Failed to mount volume for “%s”" msgstr "“%s” ਲਈ ਵਾਲੀਅਮ ਮਾਊਂਟ ਕਰਨ ਲਈ ਅਸਫ਼ਲ" -#: extensions/places-menu/placeDisplay.js:79 -#, javascript-format -#| msgid "Failed to launch \"%s\"" -msgid "Failed to launch “%s”" -msgstr "“%s“ ਚਲਾਉਣ ਲਈ ਫੇਲ੍ਹ ਹੈ" - -#: extensions/places-menu/placeDisplay.js:135 -#: extensions/places-menu/placeDisplay.js:158 +#: extensions/places-menu/placeDisplay.js:148 +#: extensions/places-menu/placeDisplay.js:171 msgid "Computer" msgstr "ਕੰਪਿਊਟਰ" -#: extensions/places-menu/placeDisplay.js:336 +#: extensions/places-menu/placeDisplay.js:359 msgid "Home" msgstr "ਘਰ" -#: extensions/places-menu/placeDisplay.js:378 +#: extensions/places-menu/placeDisplay.js:404 msgid "Browse Network" msgstr "ਨੈੱਟਵਰਕ ਝਲਕ ਵੇਖੋ" @@ -250,7 +136,6 @@ msgid "Cycle Screenshot Sizes" msgstr "ਸਾਈਕਲ ਸਕਰੀਨਸ਼ਾਟ ਆਕਾਰ" #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 -#| msgid "Cycle Screenshot Sizes" msgid "Cycle Screenshot Sizes Backward" msgstr "ਸਾਈਕਲ ਸਕਰੀਨਸ਼ਾਟ ਆਕਾਰ ਪਿੱਛੇ ਵੱਲ" @@ -262,52 +147,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:106 +#: extensions/window-list/extension.js:98 msgid "Close" msgstr "ਬੰਦ ਕਰੋ" -#: extensions/window-list/extension.js:125 +#: extensions/window-list/extension.js:118 msgid "Unminimize" msgstr "ਅਣ-ਨਿਊਨਤਮ" -#: extensions/window-list/extension.js:126 +#: extensions/window-list/extension.js:118 msgid "Minimize" msgstr "ਨਿਊਨਤਮ" -#: extensions/window-list/extension.js:132 +#: extensions/window-list/extension.js:125 msgid "Unmaximize" msgstr "ਅਣ-ਵੱਧੋ-ਵੱਧ" -#: extensions/window-list/extension.js:133 +#: extensions/window-list/extension.js:125 msgid "Maximize" msgstr "ਵੱਧੋ-ਵੱਧ" -#: extensions/window-list/extension.js:408 +#: extensions/window-list/extension.js:428 msgid "Minimize all" msgstr "ਸਭ ਨਿਊਨਤਮ ਕਰੋ" -#: extensions/window-list/extension.js:414 +#: extensions/window-list/extension.js:434 msgid "Unminimize all" msgstr "ਸਭ ਅਣ-ਨਿਊਨਤਮ ਕਰੋ" -#: extensions/window-list/extension.js:420 +#: extensions/window-list/extension.js:440 msgid "Maximize all" msgstr "ਸਭ ਵੱਧ-ਵੱਧ ਕਰੋ" -#: extensions/window-list/extension.js:429 +#: extensions/window-list/extension.js:448 msgid "Unmaximize all" msgstr "ਸਭ ਅਣ-ਵੱਧੋ-ਵੱਧ ਕਰੋ" -#: extensions/window-list/extension.js:438 +#: extensions/window-list/extension.js:456 msgid "Close all" msgstr "ਸਭ ਬੰਦ ਕਰੋ" -#: extensions/window-list/extension.js:646 -#: extensions/workspace-indicator/extension.js:26 -msgid "Workspace Indicator" -msgstr "ਵਰਕਸਪੇਸ ਇੰਡੀਕੇਟਰ" - -#: extensions/window-list/extension.js:811 +#: extensions/window-list/extension.js:734 msgid "Window List" msgstr "ਵਿੰਡੋਜ਼ ਸੂਚੀ" @@ -316,61 +196,157 @@ msgid "When to group windows" msgstr "ਵਿੰਡੋਜ਼ ਗਰੁੱਪ ਕਦੋਂ ਬਣਾਉਣਾ ਹੈ" #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13 -#| msgid "" -#| "Decides when to group windows from the same application on the window " -#| "list. Possible values are \"never\", \"auto\" and \"always\"." msgid "" "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 +#| msgid "Show only windows in the current workspace" +msgid "Show windows from all workspaces" +msgstr "ਸਾਰੇ ਵਰਕਸਪੇਸਾਂ ਤੋਂ ਵਿੰਡੋਜ਼ ਵੇਖਾਓ" + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 +#| msgid "" +#| "Whether to show the window list on all connected monitors or only on the " +#| "primary one." +msgid "Whether to show windows from all workspaces or only the current one." +msgstr "ਕੀ ਸਭ ਵਰਕਸਪੇਸਾਂ ਤੋਂ ਵਿੰਡੋ ਵੇਖਣੀਆਂ ਹਨ ਜਾਂ ਸਿਰਫ਼ ਇੱਕ ਤੋਂ ਹੀ।" + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 msgid "Show the window list on all monitors" msgstr "ਸਭ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵਿੰਡੋ ਸੂਚੀ ਵੇਖਾਓ" -#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28 msgid "" "Whether to show the window list on all connected monitors or only on the " "primary one." msgstr "" "ਕੀ ਸਭ ਕਨੈਕਟ ਹੋਏ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵਿੰਡੋ ਸੂਚੀ ਦੇਖਣੀ ਹੈ ਜਾਂ ਕੇਵਲ ਪ੍ਰਾਇਮਰੀ ਉੱਤੇ ਹੀ।" -#: extensions/window-list/prefs.js:28 +#: extensions/window-list/prefs.js:29 msgid "Window Grouping" msgstr "ਵਿੰਡੋ ਗਰੁੱਪਿੰਗ" -#: extensions/window-list/prefs.js:46 +#: extensions/window-list/prefs.js:58 msgid "Never group windows" msgstr "ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਕਦੇ ਨਾ ਬਣਾਓ" -#: extensions/window-list/prefs.js:47 +#: extensions/window-list/prefs.js:59 msgid "Group windows when space is limited" msgstr "ਜਦੋਂ ਥਾਂ ਥੋੜੀ ਹੋਵੇ ਤਾਂ ਵਿੰਡੋਜ਼ ਦਾ ਗਰੁੱਪ ਬਣਾਓ" -#: extensions/window-list/prefs.js:48 +#: extensions/window-list/prefs.js:60 msgid "Always group windows" msgstr "ਵਿੰਡੋ ਦਾ ਗਰੁੱਪ ਹਮੇਸ਼ਾ ਬਣਾਓ" -#: extensions/window-list/prefs.js:71 +#: extensions/window-list/prefs.js:94 msgid "Show on all monitors" msgstr "ਸਭ ਮਾਨੀਟਰਾਂ ਉੱਤੇ ਵੇਖਾਓ" -#: extensions/workspace-indicator/prefs.js:134 +#: extensions/window-list/workspaceIndicator.js:207 +#: extensions/workspace-indicator/extension.js:213 +msgid "Workspace Indicator" +msgstr "ਵਰਕਸਪੇਸ ਇੰਡੀਕੇਟਰ" + +#: extensions/workspace-indicator/prefs.js:34 msgid "Workspace Names" msgstr "ਵਰਕਸਪੇਸ ਨਾਂ" -#: extensions/workspace-indicator/prefs.js:150 -msgid "Name" -msgstr "ਨਾਂ" - -#: extensions/workspace-indicator/prefs.js:190 +#: extensions/workspace-indicator/prefs.js:67 #, javascript-format msgid "Workspace %d" msgstr "ਵਰਕਸਪੇਸ %d" +#: extensions/workspace-indicator/prefs.js:218 +#| msgid "Workspace" +msgid "Add Workspace" +msgstr "ਵਰਕਸਪੇਸ ਜੋੜੋ" + +#~ msgid "Attach modal dialog to the parent window" +#~ msgstr "ਮੁੱਢਲੀ ਵਿੰਡੋ ਵਿੱਚ ਮਾਡਲ ਡਾਈਲਾਗ ਜੋੜੋ" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell." +#~ msgstr "ਇਹ ਕੁੰਜੀ ਗਨੋਮ ਸ਼ੈੱਲ ਚੱਲਣ ਦੇ ਦੌਰਾਨ org.gnome.mutter ਕੁੰਜੀ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰਦੀ ਹੈ।" + +#~ msgid "Arrangement of buttons on the titlebar" +#~ msgstr "ਟਾਈਟਲ-ਪੱਟੀ ਵਿੱਚ ਬਟਨਾਂ ਦਾ ਪ੍ਰਬੰਧ" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.desktop.wm.preferences when " +#~ "running GNOME Shell." +#~ msgstr "" +#~ "ਇਹ ਕੁੰਜੀ ਗਨੋਮ ਸ਼ੈੱਲ ਚੱਲਣ ਦੇ ਦੌਰਾਨ org.gnome.desktop.wm.preferencesr ਕੁੰਜੀ ਨੂੰ ਅਣਡਿੱਠਾ " +#~ "ਕਰਦੀ ਹੈ।" + +#~ msgid "Enable edge tiling when dropping windows on screen edges" +#~ msgstr "ਕੋਨਾ ਟਿਲਿੰਗ ਚਾਲੂ, ਜਦੋਂ ਵਿੰਡੋਜ਼ ਨੂੰ ਸਕਰੀਨ ਕੋਨਿਆਂ ਤੋਂ ਡਰਾਪ ਕਰਨਾ ਹੋਵੇ" + +#~ msgid "Workspaces only on primary monitor" +#~ msgstr "ਪ੍ਰਾਈਮਰੀ ਮਾਨੀਟਰ ਉੱਤੇ ਕੇਵਲ ਵਰਕਸਪੇਸ" + +#~ msgid "Delay focus changes in mouse mode until the pointer stops moving" +#~ msgstr "ਪੁਆਇੰਟਰ ਦੇ ਹਿਲਣ ਤੋਂ ਰੁਕਣ ਤੱਕ ਮਾਊਸ ਮੋਡ ਵਿੱਚ ਫੋਕਸ ਬਦਲਾਅ ਵਿੱਚ ਦੇਰੀ" + +#~ msgid "Thumbnail only" +#~ msgstr "ਕੇਵਲ ਥੰਮਨੇਲ ਹੀ" + +#~ msgid "Application icon only" +#~ msgstr "ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ ਹੀ" + +#~ msgid "Thumbnail and application icon" +#~ msgstr "ਥੰਮਨੇਲ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਆਈਕਾਨ" + +#~ msgid "Present windows as" +#~ msgstr "ਵਿੰਡੋਜ਼ ਨੂੰ ਪੇਸ਼ ਕਰੋ" + +#~ msgid "Activities Overview" +#~ msgstr "ਸਰਗਰਮੀ ਝਲਕ" + +#~ msgid "Application" +#~ msgstr "ਐਪਲੀਕੇਸ਼ਨ" + +#~ msgid "Create new matching rule" +#~ msgstr "ਨਵਾਂ ਮਿਲਾਉਣ ਨਿਯਮ ਬਣਾਓ" + +#~ msgid "Add" +#~ msgstr "ਜੋੜੋ" + +#~ msgid "Hello, world!" +#~ msgstr "ਹੈਲੋ, ਵਰਲਡ!" + +#~ msgid "Alternative greeting text." +#~ msgstr "ਬਦਲਵਾਂ ਸਵਾਗਤੀ ਟੈਕਸਟ ਹੈ।" + +#~ msgid "" +#~ "If not empty, it contains the text that will be shown when clicking on " +#~ "the panel." +#~ msgstr "ਜੇ ਖਾਲੀ ਨਹੀਂ ਤਾਂ ਇਹ ਟੈਕਸਟ ਰੱਖਦਾ ਹੈ, ਜੋ ਕਿ ਪੈਨਲ ਨੂੰ ਕਲਿੱਕ ਕਰਨ ਨਾਲ ਵੇਖਾਇਆ ਜਾਵੇਗਾ।" + +#~ msgid "Message" +#~ msgstr "ਸੁਨੇਹਾ" + +#~| msgid "" +#~| "Example aims to show how to build well behaved extensions for the Shell " +#~| "and as such it has little functionality on its own.\n" +#~| "Nevertheless it's possible to customize the greeting message." +#~ msgid "" +#~ "Example aims to show how to build well behaved extensions for the Shell " +#~ "and as such it has little functionality on its own.\n" +#~ "Nevertheless it’s possible to customize the greeting message." +#~ msgstr "" +#~ "Example ਦਾ ਮਕਸਦ ਸ਼ੈਲ ਲਈ ਇੱਕ ਵਧੀਆ ਕੰਮ ਕਰਦੀ ਇਕਸਟੈਸ਼ਨ ਬਣਾਉਣ ਦੀ ਉਦਾਹਰਨ ਦੇਣਾ ਹੈ ਅਤੇ ਇਸ " +#~ "ਦਾ ਖੁਦ ਕੋਈ ਬਹੁਤਾ ਕੰਮ ਨਹੀਂ ਹੈ।\n" +#~ "ਫੇਰ ਵੀ ਸਵਾਗਤੀ ਸੁਨੇਹੇ ਨੂੰ ਬਦਲਣਾ ਸੰਭਵ ਹੈ।" + +#~ msgid "Name" +#~ msgstr "ਨਾਂ" + #~ msgid "GNOME Shell Classic" #~ msgstr "ਗਨੋਮ ਸ਼ੈਲ ਕਲਾਸਿਕ" From d8e179ed09d1e8168980b5a6f61481043281d526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 23 Feb 2021 00:58:31 +0100 Subject: [PATCH 69/99] window-list: Adjust to OSK changes Visibility changes are now handled internally, without an easy way for us to hook into. We can resort to a hack though, as the gesture action to bring up the keyboard is only enabled while the keyboard is hidden. Part-of: --- extensions/window-list/extension.js | 33 +++++++++++++---------------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/extensions/window-list/extension.js b/extensions/window-list/extension.js index a7a7a5e2..acb5c639 100644 --- a/extensions/window-list/extension.js +++ b/extensions/window-list/extension.js @@ -744,21 +744,20 @@ class WindowList extends St.Widget { this._appStateChangedId = this._appSystem.connect( 'app-state-changed', this._onAppStateChanged.bind(this)); - this._keyboardVisiblechangedId = Main.layoutManager.connect( - 'keyboard-visible-changed', - (o, state) => { - Main.layoutManager.keyboardBox.visible = state; - let { keyboardBox } = Main.layoutManager; - keyboardBox.visible = state; - if (state) { - Main.uiGroup.set_child_above_sibling( - this, keyboardBox); - } else { - Main.uiGroup.set_child_above_sibling( - this, Main.layoutManager.panelBox); - } - this._updateKeyboardAnchor(); - }); + // Hack: OSK gesture is tied to visibility, piggy-back on that + this._keyboardVisiblechangedId = + Main.keyboard._bottomDragAction.connect('notify::enabled', + action => { + const visible = !action.enabled; + if (visible) { + Main.uiGroup.set_child_above_sibling( + this, Main.layoutManager.keyboardBox); + } else { + Main.uiGroup.set_child_above_sibling( + this, Main.layoutManager.panelBox); + } + this._updateKeyboardAnchor(); + }); let workspaceManager = global.workspace_manager; @@ -1076,11 +1075,9 @@ class WindowList extends St.Widget { this._appSystem.disconnect(this._appStateChangedId); this._appStateChangedId = 0; - Main.layoutManager.disconnect(this._keyboardVisiblechangedId); + Main.keyboard._bottomDragAction.disconnect(this._keyboardVisiblechangedId); this._keyboardVisiblechangedId = 0; - Main.layoutManager.hideKeyboard(); - this._disconnectWorkspaceSignals(); global.workspace_manager.disconnect(this._nWorkspacesChangedId); this._nWorkspacesChangedId = 0; From 1b4a20a8af61fc485566ca952d5738646b690990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 24 Feb 2021 00:50:49 +0100 Subject: [PATCH 70/99] window-list: Replace Workspace prototype This is arguably more elegant than injecting into individual methods, and will be consistent with an upcoming override that cannot be implemented as method injection. Part-of: --- extensions/window-list/windowPicker.js | 63 +++++++++++++------------- 1 file changed, 32 insertions(+), 31 deletions(-) diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js index 31e2e94c..fec96492 100644 --- a/extensions/window-list/windowPicker.js +++ b/extensions/window-list/windowPicker.js @@ -4,7 +4,7 @@ const { Clutter, GObject, Shell, St } = imports.gi; const Layout = imports.ui.layout; const Main = imports.ui.main; const { WorkspacesDisplay } = imports.ui.workspacesView; -const { Workspace } = imports.ui.workspace; +const Workspace = imports.ui.workspace; const { VIGNETTE_BRIGHTNESS } = imports.ui.lightbox; const { @@ -77,6 +77,33 @@ class MyWorkspacesDisplay extends WorkspacesDisplay { } }); +const MyWorkspace = GObject.registerClass( +class MyWorkspace extends Workspace.Workspace { + _init(...args) { + super._init(...args); + + this._adjChangedId = + this._overviewAdjustment.connect('notify::value', () => { + const { value: progress } = this._overviewAdjustment; + const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress; + for (const bg of this._background?._backgroundGroup ?? []) { + bg.content.set({ + vignette: true, + brightness, + }); + } + }); + } + + _onDestroy() { + super._onDestroy(); + + if (this._adjChangedId) + this._overviewAdjustment.disconnect(this._adjChangedId); + this._adjChangedId = 0; + } +}); + var WindowPicker = GObject.registerClass({ Signals: { 'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] }, @@ -120,33 +147,9 @@ var WindowPicker = GObject.registerClass({ } _injectBackgroundShade() { - const adjustment = this._adjustment; - const { _init, _onDestroy } = Workspace.prototype; + this._origWorkspace = Workspace.Workspace; - Workspace.prototype._init = function (...args) { - _init.call(this, ...args); - - this._adjChangedId = adjustment.connect('notify::value', () => { - const { value: progress } = adjustment; - const brightness = 1 - (1 - VIGNETTE_BRIGHTNESS) * progress; - for (const bg of this._background?._backgroundGroup ?? []) { - bg.content.set({ - vignette: true, - brightness, - }); - } - }); - }; - Workspace.prototype._onDestroy = function () { - _onDestroy.call(this); - - if (this._adjChangedId) - adjustment.disconnect(this._adjChangedId); - this._adjChangedId = 0; - }; - - this._wsInit = _init; - this._wsDestroy = _onDestroy; + Workspace.Workspace = MyWorkspace; } get visible() { @@ -248,10 +251,8 @@ var WindowPicker = GObject.registerClass({ } _onDestroy() { - if (this._wsInit) - Workspace.prototype._init = this._wsInit; - if (this._wsDestroy) - Workspace.prototype._onDestroy = this._wsDestroy; + if (this._origWorkspace) + Workspace.Workspace = this._origWorkspace; if (this._monitorsChangedId) Main.layoutManager.disconnect(this._monitorsChangedId); From f71da9e843004f8196a459a26b0b92a33f21e71d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 24 Feb 2021 00:51:11 +0100 Subject: [PATCH 71/99] window-list: Replace WorkspaceBackground as well The shell now scales down the backgrounds and adds a rounded corner clip. Undo both those changes with another override. Part-of: --- extensions/window-list/windowPicker.js | 41 ++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/extensions/window-list/windowPicker.js b/extensions/window-list/windowPicker.js index fec96492..a34f7313 100644 --- a/extensions/window-list/windowPicker.js +++ b/extensions/window-list/windowPicker.js @@ -104,6 +104,42 @@ class MyWorkspace extends Workspace.Workspace { } }); +const MyWorkspaceBackground = GObject.registerClass( +class MyWorkspaceBackground extends Workspace.WorkspaceBackground { + _updateBorderRadius() { + } + + vfunc_allocate(box) { + this.set_allocation(box); + + const themeNode = this.get_theme_node(); + const contentBox = themeNode.get_content_box(box); + + this._bin.allocate(contentBox); + + const [contentWidth, contentHeight] = contentBox.get_size(); + const monitor = Main.layoutManager.monitors[this._monitorIndex]; + const xRatio = contentWidth / this._workarea.width; + const yRatio = contentHeight / this._workarea.height; + + const right = area => area.x + area.width; + const bottom = area => area.y + area.height; + + const offsets = { + left: xRatio * (this._workarea.x - monitor.x), + right: xRatio * (right(monitor) - right(this._workarea)), + top: yRatio * (this._workarea.y - monitor.y), + bottom: yRatio * (bottom(monitor) - bottom(this._workarea)), + }; + + contentBox.set_origin(-offsets.left, -offsets.top); + contentBox.set_size( + offsets.left + contentWidth + offsets.right, + offsets.top + contentHeight + offsets.bottom); + this._backgroundGroup.allocate(contentBox); + } +}); + var WindowPicker = GObject.registerClass({ Signals: { 'open-state-changed': { param_types: [GObject.TYPE_BOOLEAN] }, @@ -148,8 +184,10 @@ var WindowPicker = GObject.registerClass({ _injectBackgroundShade() { this._origWorkspace = Workspace.Workspace; + this._origWorkspaceBackground = Workspace.WorkspaceBackground; Workspace.Workspace = MyWorkspace; + Workspace.WorkspaceBackground = MyWorkspaceBackground; } get visible() { @@ -254,6 +292,9 @@ var WindowPicker = GObject.registerClass({ if (this._origWorkspace) Workspace.Workspace = this._origWorkspace; + if (this._origWorkspaceBackground) + Workspace.WorkspaceBackground = this._origWorkspaceBackground; + if (this._monitorsChangedId) Main.layoutManager.disconnect(this._monitorsChangedId); this._monitorsChangedId = 0; From 1e44941db61764730d83fb3399faeca2d9ccf5e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 24 Feb 2021 01:42:05 +0100 Subject: [PATCH 72/99] drive-menu: Remove unused style class The .single-indicator class was added to add extra spacing to lone top bar items when removing the arrows, but dropped again after solving the extra spacing differently. Part-of: --- extensions/drive-menu/extension.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/drive-menu/extension.js b/extensions/drive-menu/extension.js index d7757f3b..5bd91522 100644 --- a/extensions/drive-menu/extension.js +++ b/extensions/drive-menu/extension.js @@ -129,7 +129,7 @@ class DriveMenu extends PanelMenu.Button { let icon = new St.Icon({ icon_name: 'media-eject-symbolic', - style_class: 'system-status-icon single-indicator', + style_class: 'system-status-icon', }); this.add_child(icon); From 3603bc7c6a6f8db6021f58ead390422f49bfb896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 23 Feb 2021 00:28:38 +0100 Subject: [PATCH 73/99] Update sass submodule --- data/gnome-shell-sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/gnome-shell-sass b/data/gnome-shell-sass index da0df35a..179ce628 160000 --- a/data/gnome-shell-sass +++ b/data/gnome-shell-sass @@ -1 +1 @@ -Subproject commit da0df35aabbc0a4aa30c874b2808808931e37608 +Subproject commit 179ce628ca246ede81b824bc7b6367650d2bf3b0 From e8b8677bfe909a15c1e78dca8fe77ae2db8d7635 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 24 Feb 2021 01:41:54 +0100 Subject: [PATCH 74/99] Tag release 40.beta Update NEWS. --- NEWS | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/NEWS b/NEWS index d1bf4382..d1cc12af 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,19 @@ +40.beta +======= +* Add tooltips to workspace thumbnails [Florian; !155] +* Drop arrows from top bar menus [Florian; !156] +* drive-menu: Mark mounts that can be unmounted as removable [Michael; !152] +* Remove horizontal-workspaces extension [Florian; !158] +* Adjust to shell overview changes [Florian; !159, !160] +* Fix crashes [Daniel; !157] +* Misc. bug fixes and cleanups [Florian; !154, !161] + +Contributors: + Michael Lawton, Florian Müllner, Daniel van Vugt + +Translators: + Аляксей [be], A S Alam [pa] + 40.alpha.1 ========== * Don't depend on sassc when building from tarball [Florian; !150] From 23887ce2a326d7e6852e16d5732e80926f9e6237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 24 Feb 2021 01:57:00 +0100 Subject: [PATCH 75/99] Post-release version bump --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index d34cfd41..1147e566 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '40.beta', + version: '40.rc', meson_version: '>= 0.44.0', license: 'GPL2+' ) From 7ace9c4d51f8043510308e3fe447876d0ab4548f Mon Sep 17 00:00:00 2001 From: Fran Dieguez Date: Wed, 24 Feb 2021 21:14:57 +0000 Subject: [PATCH 76/99] Update Galician translation --- po/gl.po | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/po/gl.po b/po/gl.po index 294106f0..c94dae98 100644 --- a/po/gl.po +++ b/po/gl.po @@ -1,29 +1,29 @@ # Galician translation for gnome-shell-extensions. # Copyright (C) 2011 gnome-shell-extensions's COPYRIGHT HOLDER # This file is distributed under the same license as the gnome-shell-extensions package. -# Fran Diéguez , 2011. -# Fran Dieguez , 2011-2020. # +# Fran Diéguez , 2011. +# Fran Dieguez , 2011-2020, 2021. msgid "" msgstr "" "Project-Id-Version: gnome-shell-extensions master\n" -"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" -"issues\n" -"POT-Creation-Date: 2020-05-28 00:55+0000\n" -"PO-Revision-Date: 2020-08-13 01:02+0200\n" -"Last-Translator: Fran Dieguez \n" -"Language-Team: Galician \n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/is" +"sues\n" +"POT-Creation-Date: 2020-10-17 20:14+0000\n" +"PO-Revision-Date: 2021-02-24 20:41+0100\n" +"Last-Translator: Fran Diéguez \n" +"Language-Team: Proxecto Trasno \n" "Language: gl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"X-Generator: Gtranslator 3.36.0\n" +"X-Generator: Gtranslator 3.38.0\n" "X-Project-Style: gnome\n" -#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 +#: data/gnome-classic.desktop.in:3 msgid "GNOME Classic" -msgstr "GNOME clasico" +msgstr "GNOME clásico" #: data/gnome-classic.desktop.in:4 msgid "This session logs you into GNOME Classic" @@ -50,7 +50,6 @@ msgstr "" "de ficheiro desktop), seguido por unha coma e o número do espazo de traballo" #: extensions/auto-move-windows/prefs.js:35 -#| msgid "Workspace Names" msgid "Workspace Rules" msgstr "Regras da área de traballo" @@ -75,7 +74,7 @@ msgstr "Abrir ficheiros" #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 msgid "Use more screen for windows" -msgstr "Usar máis pantalla para as xanelas" +msgstr "Usar mais pantalla para as xanelas" #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 msgid "" @@ -83,13 +82,14 @@ msgid "" "aspect ratio, and consolidating them further to reduce the bounding box. " "This setting applies only with the natural placement strategy." msgstr "" -"Tente usar máis pantalla para dispor as miniaturas das xanelas adaptándose á " -"taxa de aspecto da pantalla e consolidalas para reducir a caixa saltante. " -"Esta configuración aplícase só para a estratexia de disposición natural." +"Tente usar mais pantalla para dispor as miniaturas das xanelas adaptándose" +" á " +"taxa de aspecto da pantalla e consolidalas para reducir a caixa envolvente. " +"Esta configuración aplícase só para a estratexia de disposición natural." #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 msgid "Place window captions on top" -msgstr "Pór a xanela sempre na parte superior" +msgstr "Por a xanela sempre na parte superior" #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 msgid "" @@ -165,27 +165,27 @@ msgstr "Restaurar" msgid "Maximize" msgstr "Maximizar" -#: extensions/window-list/extension.js:428 +#: extensions/window-list/extension.js:432 msgid "Minimize all" msgstr "Minimizar todo" -#: extensions/window-list/extension.js:434 +#: extensions/window-list/extension.js:438 msgid "Unminimize all" msgstr "Restaurar todo" -#: extensions/window-list/extension.js:440 +#: extensions/window-list/extension.js:444 msgid "Maximize all" msgstr "Maximizar todo" -#: extensions/window-list/extension.js:448 +#: extensions/window-list/extension.js:452 msgid "Unmaximize all" msgstr "Restaurar todo" -#: extensions/window-list/extension.js:456 +#: extensions/window-list/extension.js:460 msgid "Close all" msgstr "Pechar todo" -#: extensions/window-list/extension.js:734 +#: extensions/window-list/extension.js:738 msgid "Window List" msgstr "Lista de xanelas" @@ -259,7 +259,6 @@ msgid "Workspace %d" msgstr "Espazos de traballo %d" #: extensions/workspace-indicator/prefs.js:218 -#| msgid "Workspace" msgid "Add Workspace" msgstr "Engadir área de traballo" From 7062acf10f8124cdf44aa4bc40da30bf16ca0b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sun, 7 Mar 2021 04:46:51 +0100 Subject: [PATCH 77/99] native-window-placement: Adjust to gnome-shell changes More unsurprising breakage: - the workspace layout/strategy relation has been cleaned up - window previews now include an icon that influences the title position - window previews scale up on hover, which again influences the title position Part-of: --- .../native-window-placement/extension.js | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/extensions/native-window-placement/extension.js b/extensions/native-window-placement/extension.js index 3167df30..018a7421 100644 --- a/extensions/native-window-placement/extension.js +++ b/extensions/native-window-placement/extension.js @@ -3,6 +3,7 @@ const { Clutter } = imports.gi; const ExtensionUtils = imports.misc.extensionUtils; +const Main = imports.ui.main; const { WindowPreview } = imports.ui.windowPreview; const Workspace = imports.ui.workspace; @@ -66,13 +67,15 @@ class Rect { } class NaturalLayoutStrategy extends Workspace.LayoutStrategy { - constructor(settings) { - super(); + constructor(params, settings) { + super(params); this._settings = settings; } - computeLayout(windows, layout) { - layout.windows = windows; + computeLayout(windows, _params) { + return { + windows, + }; } /* @@ -246,23 +249,36 @@ function enable() { let settings = ExtensionUtils.getSettings(); workspaceInjections['_createBestLayout'] = Workspace.WorkspaceLayout.prototype._createBestLayout; - Workspace.WorkspaceLayout.prototype._createBestLayout = function (area) { - let strategy = new NaturalLayoutStrategy(settings); - let layout = { area, strategy }; - strategy.computeLayout(this._sortedWindows, layout); - - return layout; + Workspace.WorkspaceLayout.prototype._createBestLayout = function (_area) { + this._layoutStrategy = new NaturalLayoutStrategy({ + monitor: Main.layoutManager.monitors[this._monitorIndex], + }, settings); + return this._layoutStrategy.computeLayout(this._sortedWindows); }; // position window titles on top of windows in overlay winInjections['_init'] = WindowPreview.prototype._init; - WindowPreview.prototype._init = function (metaWindow, workspace) { - winInjections['_init'].call(this, metaWindow, workspace); + WindowPreview.prototype._init = function (...args) { + winInjections['_init'].call(this, ...args); - const constraint = this._title.get_constraints().find( + if (!settings.get_boolean('window-captions-on-top')) + return; + + const alignConstraint = this._title.get_constraints().find( c => c.align_axis && c.align_axis === Clutter.AlignAxis.Y_AXIS); - constraint.factor = settings.get_boolean('window-captions-on-top') - ? 0 : 1; + alignConstraint.factor = 0; + + const bindConstraint = this._title.get_constraints().find( + c => c.coordinate && c.coordinate === Clutter.BindCoordinate.Y); + bindConstraint.offset = 0; + }; + winInjections['_adjustOverlayOffsets'] = + WindowPreview.prototype._adjustOverlayOffsets; + WindowPreview.prototype._adjustOverlayOffsets = function (...args) { + winInjections['_adjustOverlayOffsets'].call(this, ...args); + + if (settings.get_boolean('window-captions-on-top')) + this._title.translation_y = -this._title.translation_y; }; } From cf3690a434ffd5d8ed8f7447a8e25550b78a89c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 6 Mar 2021 14:19:25 +0100 Subject: [PATCH 78/99] windowsNavigator: Adjust to gnome-shell changes Unsurprisingly, the big overview changes in gnome-shell broke the extension. Make the necessary adjustments to get it working again: - changed constructor parameters for Workspace/WorkspacesView - overall state handling done by adjustment - window preview layout changes https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/296 Part-of: --- extensions/windowsNavigator/extension.js | 38 +++++++++++++----------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/extensions/windowsNavigator/extension.js b/extensions/windowsNavigator/extension.js index e4513d80..0ea96454 100644 --- a/extensions/windowsNavigator/extension.js +++ b/extensions/windowsNavigator/extension.js @@ -3,6 +3,7 @@ const { Clutter, Graphene, GObject, St } = imports.gi; const Main = imports.ui.main; +const OverviewControls = imports.ui.overviewControls; const Workspace = imports.ui.workspace; const WorkspacesView = imports.ui.workspacesView; @@ -10,10 +11,10 @@ const WINDOW_SLOT = 4; var MyWorkspace = GObject.registerClass( class MyWorkspace extends Workspace.Workspace { - _init(metaWorkspace, monitorIndex) { - super._init(metaWorkspace, monitorIndex); + _init(...args) { + super._init(...args); - if (metaWorkspace && metaWorkspace.index() < 9) { + if (this.metaWorkspace && this.metaWorkspace.index() < 9) { this._tip = new St.Label({ style_class: 'extension-windowsNavigator-window-tooltip', visible: false, @@ -49,21 +50,24 @@ class MyWorkspace extends Workspace.Workspace { } getWindowWithTooltip(id) { - const slot = this.layout_manager._windowSlots[id - 1]; + const { layoutManager } = this._container; + const slot = layoutManager._windowSlots[id - 1]; return slot ? slot[WINDOW_SLOT].metaWindow : null; } showWindowsTooltips() { - for (let i = 0; i < this.layout_manager._windowSlots.length; i++) { - if (this.layout_manager._windowSlots[i]) - this.layout_manager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`); + const { layoutManager } = this._container; + for (let i = 0; i < layoutManager._windowSlots.length; i++) { + if (layoutManager._windowSlots[i]) + layoutManager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`); } } hideWindowsTooltips() { - for (let i in this.layout_manager._windowSlots) { - if (this.layout_manager._windowSlots[i]) - this.layout_manager._windowSlots[i][WINDOW_SLOT].hideTooltip(); + const { layoutManager } = this._container; + for (let i in layoutManager._windowSlots) { + if (layoutManager._windowSlots[i]) + layoutManager._windowSlots[i][WINDOW_SLOT].hideTooltip(); } } @@ -80,17 +84,17 @@ class MyWorkspace extends Workspace.Workspace { }); this._text.add_constraint(new Clutter.BindConstraint({ - source: this._borderCenter, + source: this._windowContainer, coordinate: Clutter.BindCoordinate.POSITION, })); this._text.add_constraint(new Clutter.AlignConstraint({ - source: this._borderCenter, + source: this._windowContainer, align_axis: Clutter.AlignAxis.X_AXIS, pivot_point: new Graphene.Point({ x: 0.5, y: -1 }), factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0, })); this._text.add_constraint(new Clutter.AlignConstraint({ - source: this._borderCenter, + source: this._windowContainer, align_axis: Clutter.AlignAxis.Y_AXIS, pivot_point: new Graphene.Point({ x: -1, y: 0.5 }), factor: 0, @@ -115,8 +119,8 @@ class MyWorkspace extends Workspace.Workspace { var MyWorkspacesView = GObject.registerClass( class MyWorkspacesView extends WorkspacesView.WorkspacesView { - _init(width, height, x, y, workspaces) { - super._init(width, height, x, y, workspaces); + _init(...args) { + super._init(...args); this._pickWorkspace = false; this._pickWindow = false; @@ -160,8 +164,8 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView { } _onKeyPress(s, o) { - let { viewSelector } = Main.overview; - if (viewSelector._activePage !== viewSelector._workspacesPage) + const { ControlsState } = OverviewControls; + if (this._overviewAdjustment.value !== ControlsState.WINDOW_PICKER) return false; let workspaceManager = global.workspace_manager; From bb2b1204b47a26c0003b795dce3aff5a372ec97d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 10 Mar 2021 00:14:17 +0100 Subject: [PATCH 79/99] workspace-indicator: Only show previews for up to six workspaces On request of GNOME Classic users, we add GNOME2-like workspace previews when using a horizontal workspace layout. The previews scale a lot worse than the menu though, with the risk that they take up all the available width in extreme cases. Address this by also taking the number of workspaces into account, and switch to the menu when we have more than six. This is particularly important now that we switched to a horizontal layout by default. Part-of: --- extensions/workspace-indicator/extension.js | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/extensions/workspace-indicator/extension.js b/extensions/workspace-indicator/extension.js index ad4e59b1..b79af930 100644 --- a/extensions/workspace-indicator/extension.js +++ b/extensions/workspace-indicator/extension.js @@ -18,6 +18,8 @@ const WORKSPACE_KEY = 'workspace-names'; const TOOLTIP_OFFSET = 6; const TOOLTIP_ANIMATION_TIME = 150; +const MAX_THUMBNAILS = 6; + let WindowPreview = GObject.registerClass( class WindowPreview extends St.Button { _init(window) { @@ -288,14 +290,14 @@ class WorkspaceIndicator extends PanelMenu.Button { workspaceManager.connect_after('workspace-switched', this._onWorkspaceSwitched.bind(this)), workspaceManager.connect('notify::layout-rows', - this._onWorkspaceOrientationChanged.bind(this)), + this._updateThumbnailVisibility.bind(this)), ]; this.connect('scroll-event', this._onScrollEvent.bind(this)); this._thumbnailsBox.connect('scroll-event', this._onScrollEvent.bind(this)); this._createWorkspacesSection(); this._updateThumbnails(); - this._onWorkspaceOrientationChanged(); + this._updateThumbnailVisibility(); this._settings = new Gio.Settings({ schema_id: WORKSPACE_SCHEMA }); this._settingsChangedId = this._settings.connect( @@ -317,16 +319,19 @@ class WorkspaceIndicator extends PanelMenu.Button { super._onDestroy(); } - _onWorkspaceOrientationChanged() { - let vertical = global.workspace_manager.layout_rows === -1; - this.reactive = vertical; + _updateThumbnailVisibility() { + const { workspaceManager } = global; + const vertical = workspaceManager.layout_rows === -1; + const useMenu = + vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS; + this.reactive = useMenu; - this._statusLabel.visible = vertical; - this._thumbnailsBox.visible = !vertical; + this._statusLabel.visible = useMenu; + this._thumbnailsBox.visible = !useMenu; // Disable offscreen-redirect when showing the workspace switcher // so that clip-to-allocation works - Main.panel.set_offscreen_redirect(vertical + Main.panel.set_offscreen_redirect(useMenu ? Clutter.OffscreenRedirect.ALWAYS : Clutter.OffscreenRedirect.AUTOMATIC_FOR_OPACITY); } @@ -343,6 +348,7 @@ class WorkspaceIndicator extends PanelMenu.Button { _nWorkspacesChanged() { this._createWorkspacesSection(); this._updateThumbnails(); + this._updateThumbnailVisibility(); } _updateMenuOrnament() { From c766230118d1d15ffd7c0209741f77166e72d94d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 10 Mar 2021 01:22:27 +0100 Subject: [PATCH 80/99] window-list: Only show previews for up to six workspaces On request of GNOME Classic users, we add GNOME2-like workspace previews when using a horizontal workspace layout. The previews scale a lot worse than the menu though, with the risk that they take up all the available width in extreme cases. Address this by also taking the number of workspaces into account, and switch to the menu when we have more than six. This is particularly important now that we switched to a horizontal layout by default. Part-of: --- extensions/window-list/workspaceIndicator.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/extensions/window-list/workspaceIndicator.js b/extensions/window-list/workspaceIndicator.js index 7314dfc7..41eedf63 100644 --- a/extensions/window-list/workspaceIndicator.js +++ b/extensions/window-list/workspaceIndicator.js @@ -12,6 +12,8 @@ const _ = Gettext.gettext; const TOOLTIP_OFFSET = 6; const TOOLTIP_ANIMATION_TIME = 150; +const MAX_THUMBNAILS = 6; + let WindowPreview = GObject.registerClass( class WindowPreview extends St.Button { _init(window) { @@ -286,13 +288,13 @@ class WorkspaceIndicator extends PanelMenu.Button { workspaceManager.connect_after('workspace-switched', this._onWorkspaceSwitched.bind(this)), workspaceManager.connect('notify::layout-rows', - this._onWorkspaceOrientationChanged.bind(this)), + this._updateThumbnailVisibility.bind(this)), ]; this.connect('scroll-event', this._onScrollEvent.bind(this)); this._updateMenu(); this._updateThumbnails(); - this._onWorkspaceOrientationChanged(); + this._updateThumbnailVisibility(); this._settings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' }); this._settingsChangedId = this._settings.connect( @@ -311,12 +313,15 @@ class WorkspaceIndicator extends PanelMenu.Button { super._onDestroy(); } - _onWorkspaceOrientationChanged() { - let vertical = global.workspace_manager.layout_rows === -1; - this.reactive = vertical; + _updateThumbnailVisibility() { + const { workspaceManager } = global; + const vertical = workspaceManager.layout_rows === -1; + const useMenu = + vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS; + this.reactive = useMenu; - this._statusBin.visible = vertical; - this._thumbnailsBox.visible = !vertical; + this._statusBin.visible = useMenu; + this._thumbnailsBox.visible = !useMenu; } _onWorkspaceSwitched() { @@ -332,6 +337,7 @@ class WorkspaceIndicator extends PanelMenu.Button { _nWorkspacesChanged() { this._updateMenu(); this._updateThumbnails(); + this._updateThumbnailVisibility(); } _updateMenuOrnament() { From f987e5f13dbac85b87536ba8ac4cde19306488c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 16 Jan 2021 00:29:42 +0100 Subject: [PATCH 81/99] workspace-indicator: Reindent stylesheet For some reason the CSS here uses a different indentation than gnome-shell or the other extensions, fix that. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283 Part-of: --- extensions/workspace-indicator/stylesheet.css | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/extensions/workspace-indicator/stylesheet.css b/extensions/workspace-indicator/stylesheet.css index 8601c3e5..d43d0442 100644 --- a/extensions/workspace-indicator/stylesheet.css +++ b/extensions/workspace-indicator/stylesheet.css @@ -1,40 +1,40 @@ .panel-workspace-indicator { - padding: 0 8px; + padding: 0 8px; } .panel-workspace-indicator-box { - padding: 2px 0; + padding: 2px 0; } .panel-workspace-indicator-box .workspace { - width: 40px; + width: 40px; } .panel-workspace-indicator, .panel-workspace-indicator-box .workspace { - border: 1px solid #cccccc; + border: 1px solid #cccccc; } .panel-workspace-indicator, .panel-workspace-indicator-box .workspace.active { - background-color: rgba(200, 200, 200, .5); + background-color: rgba(200, 200, 200, .5); } .panel-workspace-indicator-box .workspace { - background-color: rgba(200, 200, 200, .3); - border-left-width: 0; + background-color: rgba(200, 200, 200, .3); + border-left-width: 0; } .panel-workspace-indicator-box .workspace:first-child { - border-left-width: 1px; + border-left-width: 1px; } .workspace-indicator-window-preview { - background-color: #252525; - border: 1px solid #ccc; + background-color: #252525; + border: 1px solid #ccc; } .workspace-indicator-window-preview.active { - background-color: #353535; - border: 2px solid #ccc; + background-color: #353535; + border: 2px solid #ccc; } From fdfa46099b84ab36202612baf486a7e3b06eddc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 16 Jan 2021 01:07:29 +0100 Subject: [PATCH 82/99] workspace-indicator: Improve preview styling The current styling doesn't indicate the active workspace very well, and makes it difficult to differentiate empty workspaces from workspaces with maximized windows. Tweak the styling to address those issues. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283 Part-of: --- extensions/workspace-indicator/stylesheet.css | 30 ++++++------------- 1 file changed, 9 insertions(+), 21 deletions(-) diff --git a/extensions/workspace-indicator/stylesheet.css b/extensions/workspace-indicator/stylesheet.css index d43d0442..84aaf454 100644 --- a/extensions/workspace-indicator/stylesheet.css +++ b/extensions/workspace-indicator/stylesheet.css @@ -3,38 +3,26 @@ } .panel-workspace-indicator-box { - padding: 2px 0; + padding: 4px 0; + spacing: 4px; } .panel-workspace-indicator-box .workspace { width: 40px; + border: 2px solid #000; + border-radius: 2px; + background-color: #595959; } -.panel-workspace-indicator, -.panel-workspace-indicator-box .workspace { - border: 1px solid #cccccc; -} - -.panel-workspace-indicator, .panel-workspace-indicator-box .workspace.active { - background-color: rgba(200, 200, 200, .5); -} - -.panel-workspace-indicator-box .workspace { - background-color: rgba(200, 200, 200, .3); - border-left-width: 0; -} - -.panel-workspace-indicator-box .workspace:first-child { - border-left-width: 1px; + border-color: #fff; } .workspace-indicator-window-preview { - background-color: #252525; - border: 1px solid #ccc; + background-color: #bebebe; + border: 1px solid #828282; } .workspace-indicator-window-preview.active { - background-color: #353535; - border: 2px solid #ccc; + background-color: #d4d4d4; } From 5be44705f7ae442d50d6c8cfdecf1b1625b23ae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 16 Jan 2021 01:25:00 +0100 Subject: [PATCH 83/99] window-list: Improve preview styling The current styling doesn't indicate the active workspace very well, and makes it difficult to differentiate empty workspaces from workspaces with maximized windows. Tweak the styling to address those issues. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/283 Part-of: --- extensions/window-list/classic.css | 6 +++--- extensions/window-list/stylesheet.css | 28 +++++++-------------------- 2 files changed, 10 insertions(+), 24 deletions(-) diff --git a/extensions/window-list/classic.css b/extensions/window-list/classic.css index 7079d3ef..375a33e1 100644 --- a/extensions/window-list/classic.css +++ b/extensions/window-list/classic.css @@ -50,11 +50,12 @@ /* workspace switcher */ .window-list-workspace-indicator .workspace { - background-color: #ddd; + border: 2px solid #f6f5f4; + background-color: #ccc; } .window-list-workspace-indicator .workspace.active { - background-color: #ccc; + border-color: #888; } .window-list-window-preview { @@ -64,5 +65,4 @@ .window-list-window-preview.active { background-color: #f6f5f4; - border: 2px solid #888; } diff --git a/extensions/window-list/stylesheet.css b/extensions/window-list/stylesheet.css index e01986a8..38ea9d86 100644 --- a/extensions/window-list/stylesheet.css +++ b/extensions/window-list/stylesheet.css @@ -23,7 +23,7 @@ .window-picker-toggle > StWidget { color: #bbb; background-color: black; - border-radius: 4px; + 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); @@ -91,37 +91,23 @@ } .window-list-workspace-indicator .workspace { - border: 1px solid #cccccc; + border: 2px solid #000; width: 52px; -} - -.window-list-workspace-indicator .workspace:first-child:last-child:ltr, -.window-list-workspace-indicator .workspace:first-child:last-child:rtl { border-radius: 4px; -} - -.window-list-workspace-indicator .workspace:first-child:ltr, -.window-list-workspace-indicator .workspace:last-child:rtl { - border-radius: 4px 0 0 4px; -} - -.window-list-workspace-indicator .workspace:first-child:rtl, -.window-list-workspace-indicator .workspace:last-child:ltr { - border-radius: 0 4px 4px 0; + background-color: #595959; } .window-list-workspace-indicator .workspace.active { - background-color: rgba(200, 200, 200, .3); + border-color: #fff; } .window-list-window-preview { - background-color: #252525; - border: 1px solid #ccc; + background-color: #bebebe; + border: 1px solid #828282; } .window-list-window-preview.active { - background-color: #353535; - border: 2px solid #ccc; + background-color: #d4d4d4; } .notification { From db853d902326f2b272a6c56d3bf2d4f4cb7bbf6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 15 Mar 2021 16:29:55 +0100 Subject: [PATCH 84/99] Update sass submodule --- data/gnome-shell-sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/gnome-shell-sass b/data/gnome-shell-sass index 179ce628..63f66777 160000 --- a/data/gnome-shell-sass +++ b/data/gnome-shell-sass @@ -1 +1 @@ -Subproject commit 179ce628ca246ede81b824bc7b6367650d2bf3b0 +Subproject commit 63f66777656255e47a7f64e2ddc8c7b222e10586 From 50b6bd188458f26bfa4ec076ae9f49015b682905 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 15 Mar 2021 16:32:30 +0100 Subject: [PATCH 85/99] Tag release 40.rc Update NEWS. --- NEWS | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/NEWS b/NEWS index d1cc12af..f7c0477c 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,18 @@ +40.rc +===== +* native-window-placement: Adjust to gnome-shell changes [Florian; !164] +* windows-navigator: Adjust to gnome-shell changes [Florian; !163] +* window-list, workspace-indicator: Only show previews for up to six workspaces + [Florian; !165] +* window-list, workspace-indicator: Improve workspace preview appearance + [Florian; !166] + +Contributors: + Florian Müllner + +Translators: + Fran Dieguez [gl] + 40.beta ======= * Add tooltips to workspace thumbnails [Florian; !155] From 7a87bdcb1b3fdbd9c746c8ac0e6324b7165b1bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 16 Mar 2021 00:00:31 +0100 Subject: [PATCH 86/99] Post-release version bump --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 1147e566..8162c7e7 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '40.rc', + version: '40.0', meson_version: '>= 0.44.0', license: 'GPL2+' ) From 35c17637921fcd223f32b12513dce2dee0b3d95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jiri=20Gr=C3=B6nroos?= Date: Tue, 16 Mar 2021 10:15:46 +0000 Subject: [PATCH 87/99] Update Finnish translation --- po/fi.po | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/po/fi.po b/po/fi.po index 32904b61..e5ab20ef 100644 --- a/po/fi.po +++ b/po/fi.po @@ -12,20 +12,20 @@ msgstr "" "Project-Id-Version: gnome-shell-extensions\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "issues\n" -"POT-Creation-Date: 2020-05-28 00:55+0000\n" -"PO-Revision-Date: 2020-08-16 18:17+0300\n" -"Last-Translator: Jiri Grönroos \n" +"POT-Creation-Date: 2020-10-17 20:14+0000\n" +"PO-Revision-Date: 2021-03-15 21:32+0200\n" +"Last-Translator: JR-Fi \n" "Language-Team: suomi \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.4.1\n" +"X-Generator: Poedit 2.0.6\n" "X-Project-Style: gnome\n" "X-POT-Import-Date: 2012-03-05 15:06:12+0000\n" -#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 +#: data/gnome-classic.desktop.in:3 msgid "GNOME Classic" msgstr "Perinteinen Gnome" @@ -50,6 +50,8 @@ msgid "" "A list of strings, each containing an application id (desktop file name), " "followed by a colon and the workspace number" msgstr "" +"Lista merkkijonoja, jossa jokainen on ohjelman tunnus (työpöydän " +"tiedostonimi), jota seuraa kaksoispiste ja työtilan numero" #: extensions/auto-move-windows/prefs.js:35 msgid "Workspace Rules" @@ -84,6 +86,9 @@ msgid "" "aspect ratio, and consolidating them further to reduce the bounding box. " "This setting applies only with the natural placement strategy." msgstr "" +"Yritä käyttää enemmän näyttötilaa laittamalla ikkunoiden pikkukuvat " +"huomioiden näyttösuhteen ja lähentämällä niitä vähentämällä rajaavaa " +"laatikkoa. Tämä asetus toimii vain luonnollisen asettelutavan kanssa." #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 msgid "Place window captions on top" @@ -127,15 +132,14 @@ msgstr "Koti" msgid "Browse Network" msgstr "Selaa verkkoa" +# Konteksti muutui hieman, kun tälle ilmaantui pari, jossa suunta on taaksepäin #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 msgid "Cycle Screenshot Sizes" -msgstr "Vaihtele kuvakaappausten kokojen välillä" +msgstr "Vaihda kuvakaappausten kokojen välillä" #: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 -#, fuzzy -#| msgid "Cycle Screenshot Sizes" msgid "Cycle Screenshot Sizes Backward" -msgstr "Vaihtele kuvakaappausten kokojen välillä" +msgstr "Vaihda kuvakaappausten kokojen välillä taaksepäin" #: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 msgid "Theme name" @@ -165,27 +169,27 @@ msgstr "Palauta suurennus" msgid "Maximize" msgstr "Suurenna" -#: extensions/window-list/extension.js:428 +#: extensions/window-list/extension.js:432 msgid "Minimize all" msgstr "Pienennä kaikki" -#: extensions/window-list/extension.js:434 +#: extensions/window-list/extension.js:438 msgid "Unminimize all" msgstr "Palauta kaikkien koko" -#: extensions/window-list/extension.js:440 +#: extensions/window-list/extension.js:444 msgid "Maximize all" msgstr "Suurenna kaikki" -#: extensions/window-list/extension.js:448 +#: extensions/window-list/extension.js:452 msgid "Unmaximize all" msgstr "Palauta kaikkien koko" -#: extensions/window-list/extension.js:456 +#: extensions/window-list/extension.js:460 msgid "Close all" msgstr "Sulje kaikki" -#: extensions/window-list/extension.js:734 +#: extensions/window-list/extension.js:738 msgid "Window List" msgstr "Ikkunaluettelo" From d338930d696e6a7d1a9cc2dfc6837b18f8a086af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 20 Mar 2021 13:10:47 +0100 Subject: [PATCH 88/99] Tag release 40.0 Update NEWS. --- NEWS | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/NEWS b/NEWS index f7c0477c..f94668dd 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,9 @@ +40.0 +==== + +Translators: + Jiri Grönroos [fi] + 40.rc ===== * native-window-placement: Adjust to gnome-shell changes [Florian; !164] From 20540cb843ffa51ee6254c98c3b4371839ebfb2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 20 Mar 2021 13:39:16 +0100 Subject: [PATCH 89/99] Post-release version bump --- meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/meson.build b/meson.build index 8162c7e7..7c9c16d4 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gnome-shell-extensions', - version: '40.0', + version: '40.1', meson_version: '>= 0.44.0', license: 'GPL2+' ) From 8aa645ae5dcb7bf24d218fb0c61b6fb88c0e4286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Sat, 20 Mar 2021 13:35:05 +0100 Subject: [PATCH 90/99] build: Adjust shell-version With the new version scheme, only the major version is relevant as far as gnome-shell is concerned. However the extension website does not handle that at the moment, so always append a ".0". --- meson.build | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/meson.build b/meson.build index 7c9c16d4..91cb683c 100644 --- a/meson.build +++ b/meson.build @@ -22,11 +22,7 @@ sessiondir = join_paths(datadir, 'gnome-session', 'sessions') xsessiondir = join_paths(datadir, 'xsessions') ver_arr = meson.project_version().split('.') -if ver_arr[1].version_compare('>=0') - shell_version = ver_arr[0] -else # pre-release (alpha, beta, rc) - shell_version = '.'.join(ver_arr) -endif +shell_version = '@0@.0'.format(ver_arr[0]) uuid_suffix = '@gnome-shell-extensions.gcampax.github.com' From aa679821290b228a730f4cfa3d8d57901efdc42b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ng=E1=BB=8Dc=20Qu=C3=A2n=20Tr=E1=BA=A7n?= Date: Sat, 27 Mar 2021 07:54:17 +0000 Subject: [PATCH 91/99] Update Vietnamese translation --- po/vi.po | 309 ++++++++++++++++++++++++++----------------------------- 1 file changed, 147 insertions(+), 162 deletions(-) diff --git a/po/vi.po b/po/vi.po index 9385dd0b..fa43d36a 100644 --- a/po/vi.po +++ b/po/vi.po @@ -2,15 +2,15 @@ # Copyright © 2016 GNOME i18n Project for Vietnamese. # This file is distributed under the same license as the gnome-shell-extensions package. # Nguyễn Thái Ngọc Duy , 2011. -# Trần Ngọc Quân , 2014, 2016, 2017. +# Trần Ngọc Quân , 2014, 2016, 2017, 2021. # msgid "" msgstr "" "Project-Id-Version: gnome-shell-extensions master\n" -"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" -"shell&keywords=I18N+L10N&component=extensions\n" -"POT-Creation-Date: 2017-09-03 13:30+0000\n" -"PO-Revision-Date: 2017-09-04 14:34+0700\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-03-27 14:51+0700\n" "Last-Translator: Trần Ngọc Quân \n" "Language-Team: Vietnamese \n" "Language: vi\n" @@ -28,72 +28,11 @@ msgstr "GNOME cổ điển" msgid "This session logs you into GNOME Classic" msgstr "Phiên làm việc này đăng nhập bạn vào GNOME Cổ điển" -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7 -msgid "Attach modal dialog to the parent window" -msgstr "Gắn hộp thoại dạng luôn nằm trên cửa sổ mẹ" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33 -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41 -msgid "" -"This key overrides the key in org.gnome.mutter when running GNOME Shell." -msgstr "" -"Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy Hệ vỏ GNOME." - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16 -msgid "Arrangement of buttons on the titlebar" -msgstr "Sắp xếp các nút trên thanh tiêu đề" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17 -msgid "" -"This key overrides the key in org.gnome.desktop.wm.preferences when running " -"GNOME Shell." -msgstr "" -"Khóa này sẽ đè lên khóa có trong org.gnome.desktop.wm.preferences khi đang " -"chạy Hệ vỏ GNOME." - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24 -msgid "Enable edge tiling when dropping windows on screen edges" -msgstr "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32 -msgid "Workspaces only on primary monitor" -msgstr "Không gian làm việc chỉ ở trên màn hình chính" - -#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40 -msgid "Delay focus changes in mouse mode until the pointer stops moving" -msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển" - -#: extensions/alternate-tab/prefs.js:20 -msgid "Thumbnail only" -msgstr "Chỉ ảnh nhỏ" - -#: extensions/alternate-tab/prefs.js:21 -msgid "Application icon only" -msgstr "Chỉ có ảnh nhỏ đại diện cho ứng dụng" - -#: extensions/alternate-tab/prefs.js:22 -msgid "Thumbnail and application icon" -msgstr "Ảnh thu nhỏ và biểu tượng của ứng dụng" - -#: extensions/alternate-tab/prefs.js:38 -msgid "Present windows as" -msgstr "Cửa sổ hiện tại như là" - -#: extensions/alternate-tab/prefs.js:69 -msgid "Show only windows in the current workspace" -msgstr "Chỉ hiển thị các cửa sổ trong không gian làm việc hiện tại" - -#: extensions/apps-menu/extension.js:41 -msgid "Activities Overview" -msgstr "Tổng quan hoạt động" - -#: extensions/apps-menu/extension.js:141 +#: extensions/apps-menu/extension.js:113 msgid "Favorites" msgstr "Ưa thích" -#: extensions/apps-menu/extension.js:436 +#: extensions/apps-menu/extension.js:369 msgid "Applications" msgstr "Ứng dụng" @@ -109,73 +48,29 @@ msgstr "" "Một danh sách chuỗi, mỗi chuỗi là một mã số của ứng dụng (tên tập tin ." "desktop), theo sau là dấu hai chấm và mã số không gian làm việc" -#: extensions/auto-move-windows/prefs.js:60 -msgid "Application" -msgstr "Ứng dụng" +#: extensions/auto-move-windows/prefs.js:35 +msgid "Workspace Rules" +msgstr "Thước Không gian làm việc" -#: extensions/auto-move-windows/prefs.js:69 -#: extensions/auto-move-windows/prefs.js:127 -msgid "Workspace" -msgstr "Không gian làm việc" - -#: extensions/auto-move-windows/prefs.js:85 +#: extensions/auto-move-windows/prefs.js:243 msgid "Add Rule" msgstr "Thêm quy tắc" -#: extensions/auto-move-windows/prefs.js:106 -msgid "Create new matching rule" -msgstr "Tạo mới một quy tắc khớp mẫu" - -#: extensions/auto-move-windows/prefs.js:111 -msgid "Add" -msgstr "Thêm" - #. TRANSLATORS: %s is the filesystem name -#: extensions/drive-menu/extension.js:107 +#: extensions/drive-menu/extension.js:112 +#: extensions/places-menu/placeDisplay.js:233 #, javascript-format msgid "Ejecting drive “%s” failed:" -msgstr "Gặp lỗi khi đẩy đĩa “%s” ra:" +msgstr "Gặp lỗi khi đẩy hệ thống tập tin “%s” ra:" -#: extensions/drive-menu/extension.js:125 +#: extensions/drive-menu/extension.js:128 msgid "Removable devices" msgstr "Đĩa di động" -#: extensions/drive-menu/extension.js:150 +#: extensions/drive-menu/extension.js:155 msgid "Open Files" msgstr "Mở tập tin" -#: extensions/example/extension.js:17 -msgid "Hello, world!" -msgstr "Xin chào!" - -#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5 -msgid "Alternative greeting text." -msgstr "Lời chào thay thế." - -#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6 -msgid "" -"If not empty, it contains the text that will be shown when clicking on the " -"panel." -msgstr "" -"Nếu không rỗng, nó sẽ chứa chữ mà chữ này sẽ được hiển thị khi bấm chuột " -"trên bảng điều khiển." - -#: extensions/example/prefs.js:30 -msgid "Message" -msgstr "Thông báo" - -#. TRANSLATORS: Example is the name of the extension, should not be -#. translated -#: extensions/example/prefs.js:43 -msgid "" -"Example aims to show how to build well behaved extensions for the Shell and " -"as such it has little functionality on its own.\n" -"Nevertheless it’s possible to customize the greeting message." -msgstr "" -"Ví dụ có mục đích hướng dẫn làm cách nào để xây dựng các phần mở rộng chạy " -"tốt cho Hệ vỏ và do vậy nó chỉ có một ít chức năng.\n" -"Tuy thế nó có khả năng cá nhân hóa lời chào." - #: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 msgid "Use more screen for windows" msgstr "Dùng nhiều màn hình cho các cửa sổ" @@ -204,31 +99,31 @@ msgstr "" "đè lên cách ứng xử mặc định của hệ vỏ là ở dưới đáy. Những thay đổi này cần " "khởi động lại hệ vỏ để có tác dụng." -#: extensions/places-menu/extension.js:78 -#: extensions/places-menu/extension.js:81 +#: extensions/places-menu/extension.js:89 +#: extensions/places-menu/extension.js:93 msgid "Places" msgstr "Mở nhanh" -#: extensions/places-menu/placeDisplay.js:65 -#, javascript-format -msgid "Failed to mount volume for “%s”" -msgstr "Gặp lỗi khi gắn đĩa cho “%s”" - -#: extensions/places-menu/placeDisplay.js:78 +#: extensions/places-menu/placeDisplay.js:46 #, javascript-format msgid "Failed to launch “%s”" msgstr "Gặp lỗi khi khởi chạy \"%s\"" -#: extensions/places-menu/placeDisplay.js:137 -#: extensions/places-menu/placeDisplay.js:160 +#: extensions/places-menu/placeDisplay.js:61 +#, javascript-format +msgid "Failed to mount volume for “%s”" +msgstr "Gặp lỗi khi gắn đĩa cho “%s”" + +#: extensions/places-menu/placeDisplay.js:148 +#: extensions/places-menu/placeDisplay.js:171 msgid "Computer" msgstr "Máy tính" -#: extensions/places-menu/placeDisplay.js:303 +#: extensions/places-menu/placeDisplay.js:359 msgid "Home" msgstr "Thư mục riêng" -#: extensions/places-menu/placeDisplay.js:347 +#: extensions/places-menu/placeDisplay.js:404 msgid "Browse Network" msgstr "Duyệt mạng" @@ -248,52 +143,47 @@ msgstr "Tên chủ đề" msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgstr "Tên của chủ đề, được tải từ ~/.themes/name/gnome-shell" -#: extensions/window-list/extension.js:110 +#: extensions/window-list/extension.js:98 msgid "Close" msgstr "Đóng" -#: extensions/window-list/extension.js:129 +#: extensions/window-list/extension.js:118 msgid "Unminimize" msgstr "Thôi thu nhỏ" -#: extensions/window-list/extension.js:130 +#: extensions/window-list/extension.js:118 msgid "Minimize" msgstr "Thu nhỏ" -#: extensions/window-list/extension.js:136 +#: extensions/window-list/extension.js:125 msgid "Unmaximize" -msgstr "Thôi phóng lớn" +msgstr "Thôi phóng hết cỡ" -#: extensions/window-list/extension.js:137 +#: extensions/window-list/extension.js:125 msgid "Maximize" msgstr "Phóng to hết cỡ" -#: extensions/window-list/extension.js:420 +#: extensions/window-list/extension.js:428 msgid "Minimize all" msgstr "Thu nhỏ tất cả" -#: extensions/window-list/extension.js:428 +#: extensions/window-list/extension.js:434 msgid "Unminimize all" msgstr "Thôi thu nhỏ tất cả" -#: extensions/window-list/extension.js:436 +#: extensions/window-list/extension.js:440 msgid "Maximize all" msgstr "Phóng to tất cả" -#: extensions/window-list/extension.js:445 +#: extensions/window-list/extension.js:448 msgid "Unmaximize all" msgstr "Thôi phóng to tất cả" -#: extensions/window-list/extension.js:454 +#: extensions/window-list/extension.js:456 msgid "Close all" msgstr "Đóng tất cả" -#: extensions/window-list/extension.js:678 -#: extensions/workspace-indicator/extension.js:30 -msgid "Workspace Indicator" -msgstr "Bộ chỉ thị không gian làm việc" - -#: extensions/window-list/extension.js:842 +#: extensions/window-list/extension.js:734 msgid "Window List" msgstr "Danh sách cửa sổ" @@ -310,10 +200,21 @@ msgstr "" "cửa số. Các giá trị có thể là “never”, “auto” và “always”." #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 +#: extensions/window-list/prefs.js:100 +msgid "Show windows from all workspaces" +msgstr "Hiển thị các cửa sổ trong mọi không gian làm việc" + +#: 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 "" +"Có hiển thị các cửa sổ từ mọi không gian làm việc hay chỉ trên màn hình hiện " +"tại mà thôi." + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 msgid "Show the window list on all monitors" msgstr "Hiển thị danh sách cửa sổ ở mọi màn hình" -#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 +#: 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." @@ -321,39 +222,123 @@ msgstr "" "Có hiển thị danh sách cửa sổ trên mọi màn hình đã kết nối hay chỉ trên màn " "hình chính mà thôi." -#: extensions/window-list/prefs.js:32 +#: extensions/window-list/prefs.js:29 msgid "Window Grouping" msgstr "Nhóm cửa sổ lại" -#: extensions/window-list/prefs.js:50 +#: extensions/window-list/prefs.js:58 msgid "Never group windows" msgstr "Không bao giờ nhóm các cửa sổ lại với nhau" -#: extensions/window-list/prefs.js:51 +#: extensions/window-list/prefs.js:59 msgid "Group windows when space is limited" msgstr "Nhóm các cửa sổ lại với nhau khi không đủ chỗ" -#: extensions/window-list/prefs.js:52 +#: extensions/window-list/prefs.js:60 msgid "Always group windows" msgstr "Luôn nhóm các cửa sổ lại với nhau" -#: extensions/window-list/prefs.js:75 +#: extensions/window-list/prefs.js:94 msgid "Show on all monitors" msgstr "Hiển thị trên mọi màn hình" -#: extensions/workspace-indicator/prefs.js:141 +#: extensions/window-list/workspaceIndicator.js:207 +#: extensions/workspace-indicator/extension.js:213 +msgid "Workspace Indicator" +msgstr "Bộ chỉ thị không gian làm việc" + +#: extensions/workspace-indicator/prefs.js:34 msgid "Workspace Names" msgstr "Tên không gian làm việc" -#: extensions/workspace-indicator/prefs.js:157 -msgid "Name" -msgstr "Tên" - -#: extensions/workspace-indicator/prefs.js:198 +#: extensions/workspace-indicator/prefs.js:67 #, javascript-format msgid "Workspace %d" msgstr "Không gian làm việc %d" +#: extensions/workspace-indicator/prefs.js:218 +msgid "Add Workspace" +msgstr "Thêm Không gian làm việc" + +#~ msgid "Attach modal dialog to the parent window" +#~ msgstr "Gắn hộp thoại dạng luôn nằm trên cửa sổ mẹ" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell." +#~ msgstr "" +#~ "Khóa này sẽ đè lên khóa có trong org.gnome.mutter khi chạy Hệ vỏ GNOME." + +#~ msgid "Arrangement of buttons on the titlebar" +#~ msgstr "Sắp xếp các nút trên thanh tiêu đề" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.desktop.wm.preferences when " +#~ "running GNOME Shell." +#~ msgstr "" +#~ "Khóa này sẽ đè lên khóa có trong org.gnome.desktop.wm.preferences khi " +#~ "đang chạy Hệ vỏ GNOME." + +#~ msgid "Enable edge tiling when dropping windows on screen edges" +#~ msgstr "Bật xếp lớp ở cạnh khi thả cửa sổ vào cạnh màn hình" + +#~ msgid "Workspaces only on primary monitor" +#~ msgstr "Không gian làm việc chỉ ở trên màn hình chính" + +#~ msgid "Delay focus changes in mouse mode until the pointer stops moving" +#~ msgstr "Khoảng trễ chờ cho con chuột ngừng di chuyển" + +#~ msgid "Thumbnail only" +#~ msgstr "Chỉ ảnh nhỏ" + +#~ msgid "Application icon only" +#~ msgstr "Chỉ có ảnh nhỏ đại diện cho ứng dụng" + +#~ msgid "Thumbnail and application icon" +#~ msgstr "Ảnh thu nhỏ và biểu tượng của ứng dụng" + +#~ msgid "Present windows as" +#~ msgstr "Cửa sổ hiện tại như là" + +#~ msgid "Activities Overview" +#~ msgstr "Tổng quan hoạt động" + +#~ msgid "Application" +#~ msgstr "Ứng dụng" + +#~ msgid "Create new matching rule" +#~ msgstr "Tạo mới một quy tắc khớp mẫu" + +#~ msgid "Add" +#~ msgstr "Thêm" + +#~ msgid "Hello, world!" +#~ msgstr "Xin chào!" + +#~ msgid "Alternative greeting text." +#~ msgstr "Lời chào thay thế." + +#~ msgid "" +#~ "If not empty, it contains the text that will be shown when clicking on " +#~ "the panel." +#~ msgstr "" +#~ "Nếu không rỗng, nó sẽ chứa chữ mà chữ này sẽ được hiển thị khi bấm chuột " +#~ "trên bảng điều khiển." + +#~ msgid "Message" +#~ msgstr "Thông báo" + +#~ msgid "" +#~ "Example aims to show how to build well behaved extensions for the Shell " +#~ "and as such it has little functionality on its own.\n" +#~ "Nevertheless it’s possible to customize the greeting message." +#~ msgstr "" +#~ "Ví dụ có mục đích hướng dẫn làm cách nào để xây dựng các phần mở rộng " +#~ "chạy tốt cho Hệ vỏ và do vậy nó chỉ có một ít chức năng.\n" +#~ "Tuy thế nó có khả năng cá nhân hóa lời chào." + +#~ msgid "Name" +#~ msgstr "Tên" + #~ msgid "CPU" #~ msgstr "CPU" From e3ddd8e7d03eb18ad25b8cbb3cc98b025480010f Mon Sep 17 00:00:00 2001 From: Anders Jonsson Date: Sat, 27 Mar 2021 20:14:29 +0000 Subject: [PATCH 92/99] Update Swedish translation --- po/sv.po | 114 +++++++------------------------------------------------ 1 file changed, 13 insertions(+), 101 deletions(-) diff --git a/po/sv.po b/po/sv.po index 45aa6666..989074aa 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1,26 +1,26 @@ # Swedish translation for gnome-shell-extensions. -# Copyright © 2011, 2012, 2014, 2015, 2017, 2019, 2020 Free Software Foundation, Inc. +# Copyright © 2011-2021 Free Software Foundation, Inc. # This file is distributed under the same license as the gnome-shell-extensions package. # Daniel Nylander , 2011, 2012. # Mattias Eriksson , 2014. -# Anders Jonsson , 2015, 2017, 2019, 2020. +# Anders Jonsson , 2015, 2017, 2019, 2020, 2021. # msgid "" msgstr "" "Project-Id-Version: gnome-shell-extensions\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "issues\n" -"POT-Creation-Date: 2020-06-25 05:19+0000\n" -"PO-Revision-Date: 2020-07-31 16:32+0200\n" +"POT-Creation-Date: 2020-10-17 20:14+0000\n" +"PO-Revision-Date: 2021-03-27 21:12+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3.1\n" +"X-Generator: Poedit 2.4.2\n" -#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 +#: data/gnome-classic.desktop.in:3 msgid "GNOME Classic" msgstr "GNOME Klassisk" @@ -96,7 +96,7 @@ msgid "" "shell default of placing it at the bottom. Changing this setting requires " "restarting the shell to have any effect." msgstr "" -"Om sant, placera fönster titlar över respektive miniatyrbild, överskuggar " +"Om sant, placera fönster titlar över respektive miniatyrbild, åsidosätter " "skalets standardplacering under miniatyrbilden. För att ändra denna " "inställning krävs att skalet startas om för att den ska få effekt." @@ -164,27 +164,27 @@ msgstr "Avmaximera" msgid "Maximize" msgstr "Maximera" -#: extensions/window-list/extension.js:428 +#: extensions/window-list/extension.js:432 msgid "Minimize all" msgstr "Minimera alla" -#: extensions/window-list/extension.js:434 +#: extensions/window-list/extension.js:438 msgid "Unminimize all" msgstr "Avminimera alla" -#: extensions/window-list/extension.js:440 +#: extensions/window-list/extension.js:444 msgid "Maximize all" msgstr "Maximera alla" -#: extensions/window-list/extension.js:448 +#: extensions/window-list/extension.js:452 msgid "Unmaximize all" msgstr "Avmaximera alla" -#: extensions/window-list/extension.js:456 +#: extensions/window-list/extension.js:460 msgid "Close all" msgstr "Stäng alla" -#: extensions/window-list/extension.js:734 +#: extensions/window-list/extension.js:738 msgid "Window List" msgstr "Fönsterlista" @@ -259,91 +259,3 @@ msgstr "Arbetsyta %d" #: extensions/workspace-indicator/prefs.js:218 msgid "Add Workspace" msgstr "Lägg till arbetsyta" - -#~ msgid "Application" -#~ msgstr "Program" - -#~ msgid "Workspace" -#~ msgstr "Arbetsyta" - -#~ msgid "Create new matching rule" -#~ msgstr "Skapa ny matchande regel" - -#~ msgid "Add" -#~ msgstr "Lägg till" - -#~ msgid "Name" -#~ msgstr "Namn" - -#~ msgid "Attach modal dialog to the parent window" -#~ msgstr "Koppla samman modal dialog till föräldrafönstret" - -#~ msgid "" -#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell." -#~ msgstr "" -#~ "Denna nyckel överskuggar nyckeln i org.gnome.mutter när GNOME-skalet körs." - -#~ msgid "Arrangement of buttons on the titlebar" -#~ msgstr "Arrangemang för knappar i namnlisten" - -#~ msgid "" -#~ "This key overrides the key in org.gnome.desktop.wm.preferences when " -#~ "running GNOME Shell." -#~ msgstr "" -#~ "Denna nyckel överskuggar nyckeln i org.gnome.desktop.wm.preferences när " -#~ "GNOME-skalet körs." - -#~ msgid "Enable edge tiling when dropping windows on screen edges" -#~ msgstr "Slå på kantdockning när fönster släpps på skärmkanter" - -#~ msgid "Workspaces only on primary monitor" -#~ msgstr "Arbetsytor endast på primär skärm" - -#~ msgid "Delay focus changes in mouse mode until the pointer stops moving" -#~ msgstr "Fördröj fokusändringar i musläge tills pekare slutar röra sig" - -#~ msgid "Thumbnail only" -#~ msgstr "Endast miniatyrbild" - -#~ msgid "Application icon only" -#~ msgstr "Endast programikon" - -#~ msgid "Thumbnail and application icon" -#~ msgstr "Miniatyrbild och programikon" - -#~ msgid "Present windows as" -#~ msgstr "Presentera fönster som" - -#~ msgid "Activities Overview" -#~ msgstr "Aktivitetsöversikt" - -#~ msgid "Hello, world!" -#~ msgstr "Hej, världen!" - -#~ msgid "Alternative greeting text." -#~ msgstr "Alternativ hälsningstext." - -#~ msgid "" -#~ "If not empty, it contains the text that will be shown when clicking on " -#~ "the panel." -#~ msgstr "" -#~ "Om inte tom, innehåller den text som kommer att visas när man klickar på " -#~ "panelen." - -#~ msgid "Message" -#~ msgstr "Meddelande" - -#~ msgid "" -#~ "Example aims to show how to build well behaved extensions for the Shell " -#~ "and as such it has little functionality on its own.\n" -#~ "Nevertheless it’s possible to customize the greeting message." -#~ msgstr "" -#~ "Exemplet ämnar visa hur man bygger ett väluppfostrat tillägg för skalet " -#~ "och som sådant har det lite funktionalitet i sig självt.\n" -#~ "Hur som helst är det i alla fall möjligt att anpassa välkomstmeddelandet." - -#~ msgid "CPU" -#~ msgstr "CPU" - -#~ msgid "Memory" -#~ msgstr "Minne" From 3e8bbb07ea7109c44d5ac7998f473779e742d041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Mon, 5 Apr 2021 20:26:23 +0200 Subject: [PATCH 93/99] classic: Disable welcome dialog The Tour focuses on new overview features, which aren't relevant for gnome-classic where the overview is disabled altogether. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4026 Part-of: --- data/classic.json.in | 1 + 1 file changed, 1 insertion(+) diff --git a/data/classic.json.in b/data/classic.json.in index c1c05442..6d2d3bd5 100644 --- a/data/classic.json.in +++ b/data/classic.json.in @@ -2,6 +2,7 @@ "parentMode": "user", "stylesheetName": "gnome-classic.css", "hasOverview": false, + "showWelcomeDialog": false, "enabledExtensions": [@CLASSIC_EXTENSIONS@], "panel": { "left": ["appMenu"], "center": [], From 6cdf86b6b3cdd979d03f36dac315dc9dcdbc24bb Mon Sep 17 00:00:00 2001 From: Carmen Bianca BAKKER Date: Wed, 7 Apr 2021 12:05:20 +0000 Subject: [PATCH 94/99] Update Esperanto translation --- po/eo.po | 111 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 56 insertions(+), 55 deletions(-) diff --git a/po/eo.po b/po/eo.po index ec3b8979..9afcca41 100644 --- a/po/eo.po +++ b/po/eo.po @@ -4,36 +4,38 @@ # Ryan LORTIE , 2013. # Daniel PUENTES , 2015. # Kristjan SCHMIDT , 2011-2019. +# Carmen Bianca BAKKER , 2021. +# msgid "" msgstr "" "Project-Id-Version: gnome-shell-extensions master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/" "issues\n" -"POT-Creation-Date: 2020-03-31 07:16+0000\n" -"PO-Revision-Date: 2020-04-18 10:59+0200\n" -"Last-Translator: Kristjan SCHMIDT \n" +"POT-Creation-Date: 2021-03-27 20:14+0000\n" +"PO-Revision-Date: 2021-03-29 17:24+0200\n" +"Last-Translator: Carmen Bianca BAKKER \n" "Language-Team: Esperanto \n" "Language: eo\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 2.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"X-Generator: Gtranslator 3.38.0\n" "X-Project-Style: gnome\n" -#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 +#: data/gnome-classic.desktop.in:3 msgid "GNOME Classic" msgstr "GNOME-klasika" #: data/gnome-classic.desktop.in:4 msgid "This session logs you into GNOME Classic" -msgstr "Ĉi seanco ensalutas vin GNOME-klasiken" +msgstr "Ĉi tiu seanco ensalutas vin GNOME-klasiken" #: extensions/apps-menu/extension.js:113 msgid "Favorites" msgstr "Plej ŝatataj" -#: extensions/apps-menu/extension.js:369 +#: extensions/apps-menu/extension.js:367 msgid "Applications" msgstr "Aplikaĵoj" @@ -49,39 +51,26 @@ msgstr "" "Listo de ĉenoj, ĉiu enhavas aplikaĵan identigilon ('desktop' dosiernomo), " "sevkita per dupunkto kaj la laborspaca numero" -#: extensions/auto-move-windows/prefs.js:59 -msgid "Application" -msgstr "Aplikaĵo" +#: extensions/auto-move-windows/prefs.js:35 +msgid "Workspace Rules" +msgstr "Laborspacaj reguloj" -#: extensions/auto-move-windows/prefs.js:70 -#: extensions/auto-move-windows/prefs.js:133 -msgid "Workspace" -msgstr "Laborspaco" - -#: extensions/auto-move-windows/prefs.js:88 +#: extensions/auto-move-windows/prefs.js:237 msgid "Add Rule" msgstr "Aldoni regulon" -#: extensions/auto-move-windows/prefs.js:110 -msgid "Create new matching rule" -msgstr "Krei novan kongruantan regulon" - -#: extensions/auto-move-windows/prefs.js:116 -msgid "Add" -msgstr "Aldoni" - #. TRANSLATORS: %s is the filesystem name -#: extensions/drive-menu/extension.js:103 +#: extensions/drive-menu/extension.js:112 #: extensions/places-menu/placeDisplay.js:233 #, javascript-format msgid "Ejecting drive “%s” failed:" msgstr "Elĵeto de volumo “%s” malsukcesis:" -#: extensions/drive-menu/extension.js:119 +#: extensions/drive-menu/extension.js:128 msgid "Removable devices" msgstr "Demeteblaj aparatoj" -#: extensions/drive-menu/extension.js:146 +#: extensions/drive-menu/extension.js:152 msgid "Open Files" msgstr "Malfermi dosierojn" @@ -113,8 +102,8 @@ msgstr "" "estas meti ĝin malsupre). Si vi ŝanĝas ĉi agordon tiam vi devas restartigi " "la ŝelon." -#: extensions/places-menu/extension.js:80 -#: extensions/places-menu/extension.js:84 +#: extensions/places-menu/extension.js:89 +#: extensions/places-menu/extension.js:92 msgid "Places" msgstr "Lokoj" @@ -163,37 +152,37 @@ msgstr "Fermi" #: extensions/window-list/extension.js:118 msgid "Unminimize" -msgstr "Neplejetigi" +msgstr "Malminimumigi" #: extensions/window-list/extension.js:118 msgid "Minimize" -msgstr "Plejetigi" +msgstr "Minimumigi" #: extensions/window-list/extension.js:125 msgid "Unmaximize" -msgstr "Nemaksimumigi" +msgstr "Malmaksimumigi" #: extensions/window-list/extension.js:125 msgid "Maximize" msgstr "Maksimumigi" -#: extensions/window-list/extension.js:429 +#: extensions/window-list/extension.js:432 msgid "Minimize all" -msgstr "Plejetigi ĉiujn" +msgstr "Minimumigi ĉiujn" -#: extensions/window-list/extension.js:435 +#: extensions/window-list/extension.js:438 msgid "Unminimize all" -msgstr "Neplejetigi ĉiujn" +msgstr "Malminimumigi ĉiujn" -#: extensions/window-list/extension.js:441 +#: extensions/window-list/extension.js:444 msgid "Maximize all" msgstr "Maksimumigi ĉiujn" -#: extensions/window-list/extension.js:449 +#: extensions/window-list/extension.js:452 msgid "Unmaximize all" -msgstr "Nemaksimumigi ĉiujn" +msgstr "Malmaksimumigi ĉiujn" -#: extensions/window-list/extension.js:457 +#: extensions/window-list/extension.js:460 msgid "Close all" msgstr "Fermi ĉiujn" @@ -214,7 +203,7 @@ msgstr "" "Validaj valoroj estas “neniam”, “aŭtomate” kaj ĉiam”." #: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 -#: extensions/window-list/prefs.js:82 +#: extensions/window-list/prefs.js:100 msgid "Show windows from all workspaces" msgstr "Montri la fenestrojn de ĉiuj laborspacoj" @@ -233,44 +222,56 @@ msgid "" msgstr "" "Ĉu montri la fenestroliston en ĉiuj konektitaj ekranoj aŭ nur en la ĉefa." -#: extensions/window-list/prefs.js:25 +#: extensions/window-list/prefs.js:29 msgid "Window Grouping" msgstr "Fenestra grupigo" -#: extensions/window-list/prefs.js:47 +#: extensions/window-list/prefs.js:58 msgid "Never group windows" msgstr "Neniam grupigi fenestrojn" -#: extensions/window-list/prefs.js:48 +#: extensions/window-list/prefs.js:59 msgid "Group windows when space is limited" msgstr "Grupigi fenestrojn kiam spaco limitas" -#: extensions/window-list/prefs.js:49 +#: extensions/window-list/prefs.js:60 msgid "Always group windows" msgstr "Ĉiam grupigi fenestrojn" -#: extensions/window-list/prefs.js:75 +#: extensions/window-list/prefs.js:94 msgid "Show on all monitors" msgstr "Montri en ĉiuj ekranoj" -#: extensions/window-list/workspaceIndicator.js:209 -#: extensions/workspace-indicator/extension.js:215 +#: extensions/window-list/workspaceIndicator.js:249 +#: extensions/workspace-indicator/extension.js:255 msgid "Workspace Indicator" msgstr "Laborspaco Indikilo" -#: extensions/workspace-indicator/prefs.js:129 +#: extensions/workspace-indicator/prefs.js:34 msgid "Workspace Names" msgstr "Laborspacaj nomoj" -#: extensions/workspace-indicator/prefs.js:149 -msgid "Name" -msgstr "Nomo" - -#: extensions/workspace-indicator/prefs.js:189 +#: extensions/workspace-indicator/prefs.js:67 #, javascript-format msgid "Workspace %d" msgstr "Laborspaco %d" +#: extensions/workspace-indicator/prefs.js:208 +msgid "Add Workspace" +msgstr "Aldoni laborspacon" + +#~ msgid "Application" +#~ msgstr "Aplikaĵo" + +#~ msgid "Create new matching rule" +#~ msgstr "Krei novan kongruantan regulon" + +#~ msgid "Add" +#~ msgstr "Aldoni" + +#~ msgid "Name" +#~ msgstr "Nomo" + #~ msgid "Activities Overview" #~ msgstr "Aktivecoj-Superrigardon" From e094dead91389c4a5f602e5bef2747ad5e73e8bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 8 Apr 2021 16:38:40 +0200 Subject: [PATCH 95/99] windowsNavigator: Adjust to gnome-shell change Parts of WindowPreview were moved to C for performance reasons, which turned a formerly private JS property into a GObject property. https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/302 Part-of: --- extensions/windowsNavigator/extension.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/windowsNavigator/extension.js b/extensions/windowsNavigator/extension.js index 0ea96454..bb72d7bb 100644 --- a/extensions/windowsNavigator/extension.js +++ b/extensions/windowsNavigator/extension.js @@ -84,17 +84,17 @@ class MyWorkspace extends Workspace.Workspace { }); this._text.add_constraint(new Clutter.BindConstraint({ - source: this._windowContainer, + source: this.windowContainer, coordinate: Clutter.BindCoordinate.POSITION, })); this._text.add_constraint(new Clutter.AlignConstraint({ - source: this._windowContainer, + source: this.windowContainer, align_axis: Clutter.AlignAxis.X_AXIS, pivot_point: new Graphene.Point({ x: 0.5, y: -1 }), factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0, })); this._text.add_constraint(new Clutter.AlignConstraint({ - source: this._windowContainer, + source: this.windowContainer, align_axis: Clutter.AlignAxis.Y_AXIS, pivot_point: new Graphene.Point({ x: -1, y: 0.5 }), factor: 0, From 83c4ced407ee5f2b4c326214f416b456fba51d7c Mon Sep 17 00:00:00 2001 From: Pawan Chitrakar Date: Sat, 1 May 2021 05:49:03 +0000 Subject: [PATCH 96/99] Update Nepali translation --- po/ne.po | 360 ++++++++++++++++++++++++++----------------------------- 1 file changed, 172 insertions(+), 188 deletions(-) diff --git a/po/ne.po b/po/ne.po index 15e371ae..c4ce1d5a 100644 --- a/po/ne.po +++ b/po/ne.po @@ -6,320 +6,304 @@ msgid "" msgstr "" "Project-Id-Version: gnome-shell-extension gnome 3.14\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" -"shell&keywords=I18N+L10N&component=extensions\n" -"POT-Creation-Date: 2014-09-09 10:57+0000\n" -"PO-Revision-Date: 2014-09-14 21:52+0400\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" "Last-Translator: Pawan Chitrakar \n" "Language-Team: Nepali Translation Team \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 1.6.9\n" +"X-Generator: Poedit 2.4.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Language: ne\n" "X-Poedit-SourceCharset: UTF-8\n" -#: ../data/gnome-classic.desktop.in.h:1 -#: ../data/gnome-classic.session.desktop.in.in.h:1 +#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 msgid "GNOME Classic" msgstr "जिनोम क्लासिक" -#: ../data/gnome-classic.desktop.in.h:2 +#: data/gnome-classic.desktop.in:4 msgid "This session logs you into GNOME Classic" msgstr "यो सेसन जिनोम क्लासिकमा लगईन हुन्छ" -#: ../data/gnome-shell-classic.desktop.in.in.h:1 -msgid "GNOME Shell Classic" -msgstr "जिनोम शेल क्लासिक" - -#: ../data/gnome-shell-classic.desktop.in.in.h:2 -msgid "Window management and application launching" -msgstr "सञ्झ्याल प्रबन्ध र अनुप्रयोग सुरुआत " - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1 -msgid "Attach modal dialog to the parent window" -msgstr "" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2 -msgid "" -"This key overrides the key in org.gnome.mutter when running GNOME Shell." -msgstr "" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3 -#, fuzzy -msgid "Arrangement of buttons on the titlebar" -msgstr "टाँकहरू" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4 -msgid "" -"This key overrides the key in org.gnome.desktop.wm.preferences when running " -"GNOME Shell." -msgstr "" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5 -msgid "Enable edge tiling when dropping windows on screen edges" -msgstr "" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:6 -msgid "Workspaces only on primary monitor" -msgstr "" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:7 -msgid "Delay focus changes in mouse mode until the pointer stops moving" -msgstr "" - -#: ../extensions/alternate-tab/prefs.js:20 -msgid "Thumbnail only" -msgstr "थम्बनेल प्रतिमा मात्रै" - -#: ../extensions/alternate-tab/prefs.js:21 -msgid "Application icon only" -msgstr "अनुप्रयोग प्रतिमा मात्रै" - -#: ../extensions/alternate-tab/prefs.js:22 -msgid "Thumbnail and application icon" -msgstr "थम्बनेल प्रतिमा र अनुप्रयोग प्रतिमा" - -#: ../extensions/alternate-tab/prefs.js:38 -msgid "Present windows as" -msgstr "हालको सञ्झ्याल" - -#: ../extensions/alternate-tab/prefs.js:69 -msgid "Show only windows in the current workspace" -msgstr "हालको कार्यस्थलमा सञ्झ्याल मात्रै देखाउने" - -#: ../extensions/apps-menu/extension.js:39 -msgid "Activities Overview" -msgstr "" - -#: ../extensions/apps-menu/extension.js:113 +#: extensions/apps-menu/extension.js:113 msgid "Favorites" msgstr "मनपर्ने" -#: ../extensions/apps-menu/extension.js:282 +#: extensions/apps-menu/extension.js:369 msgid "Applications" msgstr "अनुप्रयोग" -#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1 +#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6 msgid "Application and workspace list" msgstr "अनुप्रयोग र कार्यस्थल सूची" -#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2 +#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7 msgid "" "A list of strings, each containing an application id (desktop file name), " "followed by a colon and the workspace number" msgstr "" +"स्ट्रिङहरूको सूची, प्रत्येकमा अनुप्रयोग आईडी (डेस्कटप फाइल नाम) समाविष्ट छ, त्यसपछि " +"विराम र कार्यस्थान नम्बरद्वारा अनुगमन गरियो" -#: ../extensions/auto-move-windows/prefs.js:60 -msgid "Application" -msgstr "अनुप्रयोग" +#: extensions/auto-move-windows/prefs.js:35 +msgid "Workspace Rules" +msgstr "कार्यस्थान नियम" -#: ../extensions/auto-move-windows/prefs.js:69 -#: ../extensions/auto-move-windows/prefs.js:127 -msgid "Workspace" -msgstr "कार्यस्थल" - -#: ../extensions/auto-move-windows/prefs.js:85 +#: extensions/auto-move-windows/prefs.js:243 msgid "Add Rule" msgstr "नियम थप्नुहोस्" -#: ../extensions/auto-move-windows/prefs.js:106 -msgid "Create new matching rule" -msgstr "मिल्ने नियम सिर्जना गर्नुहोस्" - -#: ../extensions/auto-move-windows/prefs.js:111 -msgid "Add" -msgstr "थप्नुहोस्..." - -#: ../extensions/drive-menu/extension.js:106 +#. TRANSLATORS: %s is the filesystem name +#: extensions/drive-menu/extension.js:112 +#: extensions/places-menu/placeDisplay.js:233 #, javascript-format -msgid "Ejecting drive '%s' failed:" -msgstr "" +msgid "Ejecting drive “%s” failed:" +msgstr "\"%s\" ड्राइभ निकाल्न असफल भयो:" -#: ../extensions/drive-menu/extension.js:123 +#: extensions/drive-menu/extension.js:128 msgid "Removable devices" msgstr "छुट्याउन मिल्ने यन्त्र" -#: ../extensions/drive-menu/extension.js:150 -msgid "Open File" -msgstr "फाइल खोल्नुहोस्" +#: extensions/drive-menu/extension.js:155 +msgid "Open Files" +msgstr "खुला फाइल" -#: ../extensions/example/extension.js:17 -msgid "Hello, world!" -msgstr "हेलो विश्व" - -#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1 -#, fuzzy -msgid "Alternative greeting text." -msgstr "युआरएल (URL) %s हो, वैकल्पिक पाठ %s हो ।" - -#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2 -msgid "" -"If not empty, it contains the text that will be shown when clicking on the " -"panel." -msgstr "" - -#: ../extensions/example/prefs.js:30 -msgid "Message" -msgstr "सन्देश" - -#: ../extensions/example/prefs.js:43 -msgid "" -"Example aims to show how to build well behaved extensions for the Shell and " -"as such it has little functionality on its own.\n" -"Nevertheless it's possible to customize the greeting message." -msgstr "" - -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 +#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 msgid "Use more screen for windows" -msgstr "" +msgstr "सञ्झ्यालका लागि बढी पर्दा प्रयोग गर्नुहोस्" -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2 +#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6 msgid "" "Try to use more screen for placing window thumbnails by adapting to screen " "aspect ratio, and consolidating them further to reduce the bounding box. " "This setting applies only with the natural placement strategy." msgstr "" +"सञ्झ्याल थम्बनेलहरू पर्दा आकार अनुपातमा अनुकूल गरेर राख्नका लागि धेरै पर्दा प्रयोग गर्न " +"प्रयास गर्नुहोस्, र तिनीहरूलाई बाउन्डिङ बाकस घटाउन अझ संगठित गर्नुहोस् । यो तरिका " +"प्राकृतिक प्लेसमेन्ट रणनीतिमा मात्र लागू हुन्छ।" -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3 -#, fuzzy +#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 msgid "Place window captions on top" -msgstr "_सन्झ्यालको सिरान" +msgstr "सञ्झ्याल क्याप्सन माथि राख्नुहोस्" -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4 +#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12 msgid "" "If true, place window captions on top the respective thumbnail, overriding " "shell default of placing it at the bottom. Changing this setting requires " "restarting the shell to have any effect." msgstr "" +"ठीक भएमा, सम्बन्धित थम्बनेलको माथि सञ्झ्याल क्याप्सन राख्नुहोस्, यसलाई तल राख्ने " +"पूर्वनिर्धारित शेल अधिलेखन गर्नुहोस् । यो सेटिङ परिवर्तन गर्न कुनै प्रभाव पार्न शेल पुन: " +"सुरुआत गर्नु आवश्यक हुन्छ ।" -#: ../extensions/places-menu/extension.js:78 -#: ../extensions/places-menu/extension.js:81 +#: extensions/places-menu/extension.js:89 +#: extensions/places-menu/extension.js:93 msgid "Places" msgstr "ठाउँहरू" -#: ../extensions/places-menu/placeDisplay.js:57 +#: extensions/places-menu/placeDisplay.js:46 #, javascript-format -msgid "Failed to launch \"%s\"" +msgid "Failed to launch “%s”" msgstr "%s सुरु गर्न असफल" -#: ../extensions/places-menu/placeDisplay.js:99 -#: ../extensions/places-menu/placeDisplay.js:122 +#: extensions/places-menu/placeDisplay.js:61 +#, javascript-format +msgid "Failed to mount volume for “%s”" +msgstr "\"%s\" का लागि भोल्युम माउन्ट गर्न असफल" + +#: extensions/places-menu/placeDisplay.js:148 +#: extensions/places-menu/placeDisplay.js:171 msgid "Computer" msgstr "कम्प्युटर" -#: ../extensions/places-menu/placeDisplay.js:200 +#: extensions/places-menu/placeDisplay.js:359 msgid "Home" msgstr "गृह" -#: ../extensions/places-menu/placeDisplay.js:287 +#: extensions/places-menu/placeDisplay.js:404 msgid "Browse Network" msgstr "सञ्जाल ब्राउज गर्नुहोस्" -#: ../extensions/systemMonitor/extension.js:214 -msgid "CPU" -msgstr "सीपीयू (CPU)" +#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 +msgid "Cycle Screenshot Sizes" +msgstr "स्क्रिनसट साइज चक्र" -#: ../extensions/systemMonitor/extension.js:267 -msgid "Memory" -msgstr "स्मृति" +#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 +msgid "Cycle Screenshot Sizes Backward" +msgstr "स्क्रिनसट साइज उल्तो चक्र" -#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1 +#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 msgid "Theme name" msgstr "सारभूत नाम" -#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2 +#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6 msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" -msgstr "" +msgstr "~/.themes/name/gnome-shell बाट लोड गरिनुपर्ने विषयवस्तुको नाम" -#: ../extensions/window-list/extension.js:110 +#: extensions/window-list/extension.js:98 msgid "Close" msgstr "बन्द" -#: ../extensions/window-list/extension.js:120 +#: extensions/window-list/extension.js:118 msgid "Unminimize" -msgstr "" +msgstr "न्यूनतम नबनाउनुहोस्" -#: ../extensions/window-list/extension.js:121 +#: extensions/window-list/extension.js:118 msgid "Minimize" msgstr "सानो बनाउनुहोस्" -#: ../extensions/window-list/extension.js:127 +#: extensions/window-list/extension.js:125 msgid "Unmaximize" -msgstr "" +msgstr "अघिकतम नबनाउनुहोस्" -#: ../extensions/window-list/extension.js:128 +#: extensions/window-list/extension.js:125 msgid "Maximize" msgstr "ठूलो बनाउनुहोस्" -#: ../extensions/window-list/extension.js:300 +#: extensions/window-list/extension.js:428 msgid "Minimize all" msgstr "सबै सानो बनाउनुहोस्" -#: ../extensions/window-list/extension.js:308 -#, fuzzy +#: extensions/window-list/extension.js:434 msgid "Unminimize all" -msgstr "सबै" +msgstr "सबै न्यूनतम नबनाउनुहोस्" -#: ../extensions/window-list/extension.js:316 +#: extensions/window-list/extension.js:440 msgid "Maximize all" msgstr "सबै ठूलो बनाउनुहोस्" -#: ../extensions/window-list/extension.js:325 -#, fuzzy +#: extensions/window-list/extension.js:448 msgid "Unmaximize all" -msgstr "सबै" +msgstr "सबैलाई अघिकतम नबनाउनुहोस्" -#: ../extensions/window-list/extension.js:334 +#: extensions/window-list/extension.js:456 msgid "Close all" msgstr "सबै बन्द गर्नुहोस्" -#: ../extensions/window-list/extension.js:644 -#: ../extensions/workspace-indicator/extension.js:30 -#, fuzzy -msgid "Workspace Indicator" -msgstr "कार्यस्थल" - -#: ../extensions/window-list/extension.js:808 +#: extensions/window-list/extension.js:734 msgid "Window List" msgstr "सञ्झ्याल सूची" -#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1 +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12 msgid "When to group windows" msgstr "कहिले सञ्झ्याल समुहबध्द गर्ने" -#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2 +#: 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\"." +"Possible values are “never”, “auto” and “always”." msgstr "" +"सञ्झ्याल सूचीमा उस्तै अनुप्रयोगबाट कहिले समूह बनाउने निर्णय गर्दछ । सम्भावित मान \"कहिले " +"पनि\", \"स्वचालित\" र \"सधैँ\" हुन् ।" -#: ../extensions/window-list/prefs.js:30 +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 +#: extensions/window-list/prefs.js:100 +msgid "Show windows from all workspaces" +msgstr "सबै कार्यस्थानबाट सन्झ्याल देखाउनुहोस्" + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21 +msgid "Whether to show windows from all workspaces or only the current one." +msgstr "सबै कार्यस्थानबाट सञ्झ्याल देखाउने या हालको एउटाबाट मात्र देखाउने ।" + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 +msgid "Show the window list on all monitors" +msgstr "सबै मोनिटरमा सञ्झ्याल सूची देखाउनुहोस्" + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28 +msgid "" +"Whether to show the window list on all connected monitors or only on the " +"primary one." +msgstr "" +"सबै जडान गरिएको मोनिटरमा वा प्राथमिक मोनिटरमा मात्र सञ्झ्याल सूची देखाउने या नदेखाउने " +"।" + +#: extensions/window-list/prefs.js:29 msgid "Window Grouping" msgstr "समूहबद्ध सञ्झ्याल" -#: ../extensions/window-list/prefs.js:49 +#: extensions/window-list/prefs.js:58 msgid "Never group windows" msgstr "सञ्झ्याल समुहबध्द नगर्ने" -#: ../extensions/window-list/prefs.js:50 +#: extensions/window-list/prefs.js:59 msgid "Group windows when space is limited" -msgstr "" +msgstr "खाली स्थान सिमित भएको बेलामा सञ्झ्यालहरू समूह गर्नुहोस्" -#: ../extensions/window-list/prefs.js:51 +#: extensions/window-list/prefs.js:60 msgid "Always group windows" msgstr "सञ्झ्याल सधैँ समुहबध्द गर्ने" -#: ../extensions/workspace-indicator/prefs.js:141 +#: extensions/window-list/prefs.js:94 +msgid "Show on all monitors" +msgstr "सबै मोनिटरमा देखाउनुहोस्" + +#: extensions/window-list/workspaceIndicator.js:207 +#: extensions/workspace-indicator/extension.js:213 +msgid "Workspace Indicator" +msgstr "कार्यस्थान सूचक" + +#: extensions/workspace-indicator/prefs.js:34 msgid "Workspace Names" msgstr "कार्यस्थल नाम" -#: ../extensions/workspace-indicator/prefs.js:157 -msgid "Name" -msgstr "नाम: " - -#: ../extensions/workspace-indicator/prefs.js:198 +#: extensions/workspace-indicator/prefs.js:67 #, javascript-format msgid "Workspace %d" msgstr "कार्यस्थल %d" + +#: extensions/workspace-indicator/prefs.js:218 +msgid "Add Workspace" +msgstr "कार्यस्थल थप्नुहोस्" + +#~ msgid "GNOME Shell Classic" +#~ msgstr "जिनोम शेल क्लासिक" + +#~ msgid "Window management and application launching" +#~ msgstr "सञ्झ्याल प्रबन्ध र अनुप्रयोग सुरुआत " + +#, fuzzy +#~ msgid "Arrangement of buttons on the titlebar" +#~ msgstr "टाँकहरू" + +#~ msgid "Thumbnail only" +#~ msgstr "थम्बनेल प्रतिमा मात्रै" + +#~ msgid "Application icon only" +#~ msgstr "अनुप्रयोग प्रतिमा मात्रै" + +#~ msgid "Thumbnail and application icon" +#~ msgstr "थम्बनेल प्रतिमा र अनुप्रयोग प्रतिमा" + +#~ msgid "Present windows as" +#~ msgstr "हालको सञ्झ्याल" + +#~ msgid "Application" +#~ msgstr "अनुप्रयोग" + +#~ msgid "Create new matching rule" +#~ msgstr "मिल्ने नियम सिर्जना गर्नुहोस्" + +#~ msgid "Add" +#~ msgstr "थप्नुहोस्..." + +#~ msgid "Hello, world!" +#~ msgstr "हेलो विश्व" + +#, fuzzy +#~ msgid "Alternative greeting text." +#~ msgstr "युआरएल (URL) %s हो, वैकल्पिक पाठ %s हो ।" + +#~ msgid "Message" +#~ msgstr "सन्देश" + +#~ msgid "CPU" +#~ msgstr "सीपीयू (CPU)" + +#~ msgid "Memory" +#~ msgstr "स्मृति" + +#~ msgid "Name" +#~ msgstr "नाम: " From 8a320eb0a11026d66cdeaed939e386e0336015b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Quentin=20PAG=C3=88S?= Date: Mon, 10 May 2021 20:04:48 +0000 Subject: [PATCH 97/99] Update Occitan translation --- po/oc.po | 352 +++++++++++++++++++++++++++---------------------------- 1 file changed, 175 insertions(+), 177 deletions(-) diff --git a/po/oc.po b/po/oc.po index 63fafe20..1798ace8 100644 --- a/po/oc.po +++ b/po/oc.po @@ -6,105 +6,41 @@ msgid "" msgstr "" "Project-Id-Version: gnome-shell-extensions master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-" -"shell&keywords=I18N+L10N&component=extensions\n" -"POT-Creation-Date: 2016-05-09 19:09+0000\n" -"PO-Revision-Date: 2016-05-08 18:59+0200\n" -"Last-Translator: Cédric Valmary (totenoc.eu) \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-10 22:04+0200\n" +"Last-Translator: Quentin PAGÈS\n" "Language-Team: Tot En Òc\n" "Language: oc\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: Virtaal 0.7.1\n" +"X-Generator: Poedit 2.4.3\n" "X-Project-Style: gnome\n" -#: ../data/gnome-classic.desktop.in.h:1 -#: ../data/gnome-classic.session.desktop.in.in.h:1 +#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3 msgid "GNOME Classic" msgstr "GNOME Classic" -#: ../data/gnome-classic.desktop.in.h:2 +#: data/gnome-classic.desktop.in:4 msgid "This session logs you into GNOME Classic" msgstr "Aquesta session vos connècta a GNOME Classic" -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:1 -msgid "Attach modal dialog to the parent window" -msgstr "Estacar las bóstias de dialòg modalas a lor fenèstra parenta" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:2 -msgid "" -"This key overrides the key in org.gnome.mutter when running GNOME Shell." -msgstr "" -"Aquesta clau remplaça la clau dins org.gnome.mutter quand GNOME Shell es en " -"cors d'execucion." - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:3 -msgid "Arrangement of buttons on the titlebar" -msgstr "òrdre dels botons dins la barra de títol" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:4 -msgid "" -"This key overrides the key in org.gnome.desktop.wm.preferences when running " -"GNOME Shell." -msgstr "" -"Aquesta clau remplaça la clau dins org.gnome.desktop.wm.preferences quand " -"GNOME Shell es en cors d'execucion." - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:5 -msgid "Enable edge tiling when dropping windows on screen edges" -msgstr "" -"Activar la disposicion verticala quand las fenèstras son depausadas als " -"bòrds de l'ecran" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:6 -msgid "Workspaces only on primary monitor" -msgstr "Espacis de trabalh unicament sus l'ecran principal" - -#: ../data/org.gnome.shell.extensions.classic-overrides.gschema.xml.in.h:7 -msgid "Delay focus changes in mouse mode until the pointer stops moving" -msgstr "" -"Retardar los cambiaments de focus en mòde mirga fins al moment que lo " -"puntador arrèsta de bolegar" - -#: ../extensions/alternate-tab/prefs.js:20 -msgid "Thumbnail only" -msgstr "Vinheta solament" - -#: ../extensions/alternate-tab/prefs.js:21 -msgid "Application icon only" -msgstr "Icòna d'aplicacion solament" - -#: ../extensions/alternate-tab/prefs.js:22 -msgid "Thumbnail and application icon" -msgstr "Vinheta e icòna d'aplicacion" - -#: ../extensions/alternate-tab/prefs.js:38 -msgid "Present windows as" -msgstr "Presentar la fenèstra coma" - -#: ../extensions/alternate-tab/prefs.js:69 -msgid "Show only windows in the current workspace" -msgstr "Afichar pas las fenèstras que sus l'espaci de trabalh actual" - -#: ../extensions/apps-menu/extension.js:38 -msgid "Activities Overview" -msgstr "Vista d'ensemble de las activitats" - -#: ../extensions/apps-menu/extension.js:109 +#: extensions/apps-menu/extension.js:113 msgid "Favorites" msgstr "Favorits" -#: ../extensions/apps-menu/extension.js:266 +#: extensions/apps-menu/extension.js:369 msgid "Applications" msgstr "Aplicacions" -#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:1 +#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6 msgid "Application and workspace list" msgstr "Lista d'aplicacions e d'espacis de trabalh" -#: ../extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml.in.h:2 +#: 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" @@ -113,76 +49,34 @@ msgstr "" "d'aplicacion (nom de fichièr desktop), seguit per un dos-punts e lo numèro " "de l'espaci de trabalh" -#: ../extensions/auto-move-windows/prefs.js:60 -msgid "Application" -msgstr "Aplicacion" +#: extensions/auto-move-windows/prefs.js:35 +msgid "Workspace Rules" +msgstr "Règlas dels espacis de trabalh" -#: ../extensions/auto-move-windows/prefs.js:69 -#: ../extensions/auto-move-windows/prefs.js:127 -msgid "Workspace" -msgstr "Espaci de trabalh" - -#: ../extensions/auto-move-windows/prefs.js:85 +#: extensions/auto-move-windows/prefs.js:243 msgid "Add Rule" msgstr "Apondre una règla" -#: ../extensions/auto-move-windows/prefs.js:106 -msgid "Create new matching rule" -msgstr "Crear una règla novèla de concordància" - -#: ../extensions/auto-move-windows/prefs.js:111 -msgid "Add" -msgstr "Apondre" - -#: ../extensions/drive-menu/extension.js:106 +#. TRANSLATORS: %s is the filesystem name +#: extensions/drive-menu/extension.js:112 +#: extensions/places-menu/placeDisplay.js:233 #, javascript-format -msgid "Ejecting drive '%s' failed:" +msgid "Ejecting drive “%s” failed:" msgstr "L'ejeccion del disc « %s » a fracassat :" -#: ../extensions/drive-menu/extension.js:124 +#: extensions/drive-menu/extension.js:128 msgid "Removable devices" msgstr "Periferics amovibles" -#: ../extensions/drive-menu/extension.js:149 -msgid "Open File" -msgstr "Dobrir lo fichièr" +#: extensions/drive-menu/extension.js:155 +msgid "Open Files" +msgstr "Dobrir Fichièrs" -#: ../extensions/example/extension.js:17 -msgid "Hello, world!" -msgstr "Adieu, lo mond !" - -#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:1 -msgid "Alternative greeting text." -msgstr "Autre tèxte d'acuèlh." - -#: ../extensions/example/org.gnome.shell.extensions.example.gschema.xml.in.h:2 -msgid "" -"If not empty, it contains the text that will be shown when clicking on the " -"panel." -msgstr "" -"S'es pas void, conten lo tèxte que s'aficha quand clicatz sul tablèu de bòrd." - -#: ../extensions/example/prefs.js:30 -msgid "Message" -msgstr "Message" - -#. TRANSLATORS: Example is the name of the extension, should not be -#. translated -#: ../extensions/example/prefs.js:43 -msgid "" -"Example aims to show how to build well behaved extensions for the Shell and " -"as such it has little functionality on its own.\n" -"Nevertheless it's possible to customize the greeting message." -msgstr "" -"Exemple a per tòca de far veire cossí bastir de bonas èxtensions pel Shell e " -"en tant que tal, a pas tant de foncionalitats en se qu'aquò.\n" -"Pasmens, es possible de personalizar lo messatge d'acuèlh." - -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:1 +#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5 msgid "Use more screen for windows" msgstr "Utilizar mai d'ecran per las fenèstras" -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:2 +#: 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. " @@ -193,11 +87,11 @@ msgstr "" "mai per reduire la zòna englobanta. Aqueste paramètre s'aplica pas qu'en " "utilizant l'estrategia de plaçament « natural »." -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:3 +#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11 msgid "Place window captions on top" msgstr "Plaçar los títols de las fenèstras en dessús" -#: ../extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml.in.h:4 +#: 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 " @@ -207,108 +101,123 @@ msgstr "" "correspondenta, aquò remplaça lo comportament per defaut que los plaça en " "dejós. Per qu'aqueste paramètre siá pres en compte, cal reaviar lo Shell." -#: ../extensions/places-menu/extension.js:78 -#: ../extensions/places-menu/extension.js:81 +#: extensions/places-menu/extension.js:89 +#: extensions/places-menu/extension.js:93 msgid "Places" msgstr "Emplaçaments" -#: ../extensions/places-menu/placeDisplay.js:59 +#: extensions/places-menu/placeDisplay.js:46 #, javascript-format -msgid "Failed to launch \"%s\"" +msgid "Failed to launch “%s”" msgstr "Impossible d'aviar « %s »" -#: ../extensions/places-menu/placeDisplay.js:101 -#: ../extensions/places-menu/placeDisplay.js:124 +#: extensions/places-menu/placeDisplay.js:61 +#, javascript-format +msgid "Failed to mount volume for “%s”" +msgstr "Fracàs del montatge del volum per « %s »" + +#: extensions/places-menu/placeDisplay.js:148 +#: extensions/places-menu/placeDisplay.js:171 msgid "Computer" msgstr "Ordenador" -#: ../extensions/places-menu/placeDisplay.js:267 +#: extensions/places-menu/placeDisplay.js:359 msgid "Home" msgstr "Dorsièr personal" -#: ../extensions/places-menu/placeDisplay.js:311 +#: extensions/places-menu/placeDisplay.js:404 msgid "Browse Network" msgstr "Percórrer la ret" -#: ../extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml.in.h:1 +#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7 msgid "Cycle Screenshot Sizes" msgstr "Passar a la talha de captura seguenta" -#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:1 +#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11 +msgid "Cycle Screenshot Sizes Backward" +msgstr "Talhas de las capturas d'ecran enrèire" + +#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5 msgid "Theme name" msgstr "Nom del tèma" -#: ../extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml.in.h:2 +#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6 msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell" msgstr "Lo nom del tèma, de cargar a partir de ~/.themes/name/gnome-shell" -#: ../extensions/window-list/extension.js:110 +#: extensions/window-list/extension.js:98 msgid "Close" msgstr "Tampar" -#: ../extensions/window-list/extension.js:120 +#: extensions/window-list/extension.js:118 msgid "Unminimize" msgstr "Restablir" -#: ../extensions/window-list/extension.js:121 +#: extensions/window-list/extension.js:118 msgid "Minimize" msgstr "Reduire" -#: ../extensions/window-list/extension.js:127 +#: extensions/window-list/extension.js:125 msgid "Unmaximize" msgstr "Restablir" -#: ../extensions/window-list/extension.js:128 +#: extensions/window-list/extension.js:125 msgid "Maximize" msgstr "Maximizar" -#: ../extensions/window-list/extension.js:403 +#: extensions/window-list/extension.js:428 msgid "Minimize all" msgstr "Reduire tot" -#: ../extensions/window-list/extension.js:411 +#: extensions/window-list/extension.js:434 msgid "Unminimize all" msgstr "Restablir tot" -#: ../extensions/window-list/extension.js:419 +#: extensions/window-list/extension.js:440 msgid "Maximize all" msgstr "Maximizar tot" -#: ../extensions/window-list/extension.js:428 +#: extensions/window-list/extension.js:448 msgid "Unmaximize all" msgstr "Restablir tot" -#: ../extensions/window-list/extension.js:437 +#: extensions/window-list/extension.js:456 msgid "Close all" msgstr "Tampar tot" -#: ../extensions/window-list/extension.js:661 -#: ../extensions/workspace-indicator/extension.js:30 -msgid "Workspace Indicator" -msgstr "Indicator d'espaci de trabalh" - -#: ../extensions/window-list/extension.js:820 +#: extensions/window-list/extension.js:734 msgid "Window List" msgstr "Lista de fenèstras" -#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:1 +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12 msgid "When to group windows" msgstr "Quand regropar las fenèstras" -#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:2 +#: 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\"." +"Possible values are “never”, “auto” and “always”." msgstr "" "Decidís quora regropar las fenèstras d'una meteissa aplicacion sus la lista " "de las fenèstras. Las valors possiblas son « never » (pas jamai), « auto » e " "« always » (totjorn)." -#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:3 +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20 +#: extensions/window-list/prefs.js:100 +msgid "Show windows from all workspaces" +msgstr "Afichar las fenèstras de totes los espacis de trabalh" + +#: 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 "" +"Indica se cal afichar las fenèstras sus totes los espacis de trabalh o " +"solament l'actual." + +#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27 msgid "Show the window list on all monitors" msgstr "Afichar la lista de las fenèstras sus totes los ecrans" -#: ../extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml.in.h:4 +#: 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." @@ -316,39 +225,128 @@ msgstr "" "Indica se cal afichar la lista de las fenèstras sus totes los ecrans " "connectats o solament l'ecran principal." -#: ../extensions/window-list/prefs.js:32 +#: extensions/window-list/prefs.js:29 msgid "Window Grouping" msgstr "Regropament de fenèstras" -#: ../extensions/window-list/prefs.js:50 +#: extensions/window-list/prefs.js:58 msgid "Never group windows" msgstr "Regropar pas jamai las fenèstras" -#: ../extensions/window-list/prefs.js:51 +#: extensions/window-list/prefs.js:59 msgid "Group windows when space is limited" msgstr "Regropar las fenèstras quand l'espaci es limitat" -#: ../extensions/window-list/prefs.js:52 +#: extensions/window-list/prefs.js:60 msgid "Always group windows" msgstr "Regropar totjorn las fenèstras" -#: ../extensions/window-list/prefs.js:75 +#: extensions/window-list/prefs.js:94 msgid "Show on all monitors" msgstr "Afichar sus totes los ecrans" -#: ../extensions/workspace-indicator/prefs.js:141 +#: extensions/window-list/workspaceIndicator.js:207 +#: extensions/workspace-indicator/extension.js:213 +msgid "Workspace Indicator" +msgstr "Indicator d'espaci de trabalh" + +#: extensions/workspace-indicator/prefs.js:34 msgid "Workspace Names" msgstr "Noms dels espacis de trabalh" -#: ../extensions/workspace-indicator/prefs.js:157 -msgid "Name" -msgstr "Nom" - -#: ../extensions/workspace-indicator/prefs.js:198 +#: extensions/workspace-indicator/prefs.js:67 #, javascript-format msgid "Workspace %d" msgstr "Espaci de trabalh %d" +#: extensions/workspace-indicator/prefs.js:218 +msgid "Add Workspace" +msgstr "Apondre un espaci de trabalh" + +#~ msgid "Attach modal dialog to the parent window" +#~ msgstr "Estacar las bóstias de dialòg modalas a lor fenèstra parenta" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell." +#~ msgstr "" +#~ "Aquesta clau remplaça la clau dins org.gnome.mutter quand GNOME Shell es " +#~ "en cors d'execucion." + +#~ msgid "Arrangement of buttons on the titlebar" +#~ msgstr "òrdre dels botons dins la barra de títol" + +#~ msgid "" +#~ "This key overrides the key in org.gnome.desktop.wm.preferences when " +#~ "running GNOME Shell." +#~ msgstr "" +#~ "Aquesta clau remplaça la clau dins org.gnome.desktop.wm.preferences quand " +#~ "GNOME Shell es en cors d'execucion." + +#~ msgid "Enable edge tiling when dropping windows on screen edges" +#~ msgstr "" +#~ "Activar la disposicion verticala quand las fenèstras son depausadas als " +#~ "bòrds de l'ecran" + +#~ msgid "Workspaces only on primary monitor" +#~ msgstr "Espacis de trabalh unicament sus l'ecran principal" + +#~ msgid "Delay focus changes in mouse mode until the pointer stops moving" +#~ msgstr "" +#~ "Retardar los cambiaments de focus en mòde mirga fins al moment que lo " +#~ "puntador arrèsta de bolegar" + +#~ msgid "Thumbnail only" +#~ msgstr "Vinheta solament" + +#~ msgid "Application icon only" +#~ msgstr "Icòna d'aplicacion solament" + +#~ msgid "Thumbnail and application icon" +#~ msgstr "Vinheta e icòna d'aplicacion" + +#~ msgid "Present windows as" +#~ msgstr "Presentar la fenèstra coma" + +#~ msgid "Activities Overview" +#~ msgstr "Vista d'ensemble de las activitats" + +#~ msgid "Application" +#~ msgstr "Aplicacion" + +#~ msgid "Create new matching rule" +#~ msgstr "Crear una règla novèla de concordància" + +#~ msgid "Add" +#~ msgstr "Apondre" + +#~ msgid "Hello, world!" +#~ msgstr "Adieu, lo mond !" + +#~ msgid "Alternative greeting text." +#~ msgstr "Autre tèxte d'acuèlh." + +#~ msgid "" +#~ "If not empty, it contains the text that will be shown when clicking on " +#~ "the panel." +#~ msgstr "" +#~ "S'es pas void, conten lo tèxte que s'aficha quand clicatz sul tablèu de " +#~ "bòrd." + +#~ msgid "Message" +#~ msgstr "Message" + +#~ msgid "" +#~ "Example aims to show how to build well behaved extensions for the Shell " +#~ "and as such it has little functionality on its own.\n" +#~ "Nevertheless it's possible to customize the greeting message." +#~ msgstr "" +#~ "Exemple a per tòca de far veire cossí bastir de bonas èxtensions pel " +#~ "Shell e en tant que tal, a pas tant de foncionalitats en se qu'aquò.\n" +#~ "Pasmens, es possible de personalizar lo messatge d'acuèlh." + +#~ msgid "Name" +#~ msgstr "Nom" + #~ msgid "GNOME Shell Classic" #~ msgstr "GNOME Shell Classic" From b33a62f2dc3318b0dc0219fe29e4788022fd88b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 13 May 2021 16:50:34 +0200 Subject: [PATCH 98/99] Update sass submodule --- data/gnome-shell-sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/gnome-shell-sass b/data/gnome-shell-sass index 63f66777..9d66f7dd 160000 --- a/data/gnome-shell-sass +++ b/data/gnome-shell-sass @@ -1 +1 @@ -Subproject commit 63f66777656255e47a7f64e2ddc8c7b222e10586 +Subproject commit 9d66f7dd54ef69e81b0454f9bbc29ec37074f81b From 605dd02217b9d7fe245e0ada350e9e720c07f0b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 13 May 2021 16:51:52 +0200 Subject: [PATCH 99/99] Tag release 40.1 Update NEWS. --- NEWS | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/NEWS b/NEWS index f94668dd..e7420445 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,15 @@ +40.1 +==== +* Disable welcome dialog in classic session [Florian; !169] +* windowsNavigator: Adjust to a late gnome-shell change [Florian; !170] + +Contributors: + Florian Müllner + +Translators: + Ngọc Quân Trần [vi], Anders Jonsson [sv], Carmen Bianca BAKKER [eo], + Pawan Chitrakar [ne], Quentin PAGÈS [oc] + 40.0 ====