New rel
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-shell-extensions?expand=0&rev=293
This commit is contained in:
commit
f094db0265
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
5
README.SUSE
Normal file
5
README.SUSE
Normal file
@ -0,0 +1,5 @@
|
||||
GNOME Shell extensions are usually not packaged for openSUSE, unless
|
||||
needed for the default installation.
|
||||
|
||||
It is recommended to install extensions via the extensions website:
|
||||
https://extensions.gnome.org.
|
19
_service
Normal file
19
_service
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<services>
|
||||
<service name="obs_scm" mode="manual">
|
||||
<param name="scm">git</param>
|
||||
<param name="url">https://gitlab.gnome.org/GNOME/gnome-shell-extensions.git</param>
|
||||
<param name="revision">47.1</param>
|
||||
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
|
||||
<param name="versionrewrite-pattern">(.*)\+0</param>
|
||||
<param name="versionrewrite-replacement">\1</param>
|
||||
<!-- <param name="changesgenerate">enable</param> -->
|
||||
</service>
|
||||
<service name="tar" mode="buildtime"/>
|
||||
<service name="recompress" mode="buildtime">
|
||||
<param name="file">*.tar</param>
|
||||
<param name="compression">zst</param>
|
||||
</service>
|
||||
<service name="set_version" mode="manual" />
|
||||
</services>
|
||||
|
141
gnome-shell-add-app-to-desktop.patch
Normal file
141
gnome-shell-add-app-to-desktop.patch
Normal file
@ -0,0 +1,141 @@
|
||||
Index: gnome-shell-extensions-43.rc/extensions/apps-menu/extension.js
|
||||
===================================================================
|
||||
--- gnome-shell-extensions-43.rc.orig/extensions/apps-menu/extension.js
|
||||
+++ gnome-shell-extensions-43.rc/extensions/apps-menu/extension.js
|
||||
@@ -5,6 +5,8 @@ const {
|
||||
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St,
|
||||
} = imports.gi;
|
||||
const {EventEmitter} = imports.misc.signals;
|
||||
+const BoxPointer = imports.ui.boxpointer;
|
||||
+const AppFavorites = imports.ui.appFavorites;
|
||||
|
||||
const DND = imports.ui.dnd;
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
@@ -48,8 +50,19 @@ class ApplicationMenuItem extends PopupM
|
||||
let textureCache = St.TextureCache.get_default();
|
||||
let iconThemeChangedId = textureCache.connect('icon-theme-changed',
|
||||
this._updateIcon.bind(this));
|
||||
+
|
||||
+ this.actor.connect('button-press-event', this._onButtonPress.bind(this));
|
||||
+ this.actor.connect('popup-menu', this._onKeyboardPopupMenu.bind(this));
|
||||
+ this._menu = null;
|
||||
+ this._menuManager = new PopupMenu.PopupMenuManager(this);
|
||||
+
|
||||
this.connect('destroy', () => {
|
||||
textureCache.disconnect(iconThemeChangedId);
|
||||
+ if (this._menu) {
|
||||
+ this._menu.destroy();
|
||||
+ this._menu = null;
|
||||
+ this._menuManager = null;
|
||||
+ }
|
||||
});
|
||||
this._updateIcon();
|
||||
|
||||
@@ -64,6 +77,107 @@ class ApplicationMenuItem extends PopupM
|
||||
};
|
||||
}
|
||||
|
||||
+ _onKeyboardPopupMenu() {
|
||||
+ this.popupMenu();
|
||||
+ this._menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
|
||||
+ }
|
||||
+
|
||||
+ _onButtonPress(actor, event) {
|
||||
+ // close any opened menu to avoid input focus grab
|
||||
+ if (this._menu && this._menu.isOpen) {
|
||||
+ this._menu.close();
|
||||
+ return Clutter.EVENT_STOP;
|
||||
+ }
|
||||
+
|
||||
+ let button = event.get_button();
|
||||
+ if (button == 3) {
|
||||
+ this.popupMenu();
|
||||
+ return Clutter.EVENT_STOP;
|
||||
+ }
|
||||
+ return Clutter.EVENT_PROPAGATE
|
||||
+ }
|
||||
+
|
||||
+ popupMenu() {
|
||||
+ if (!this._menu) {
|
||||
+ this._menu = new PopupMenu.PopupMenu(this.actor, 0.0, St.Side.TOP, 0);
|
||||
+ let openItem = new PopupMenu.PopupMenuItem(_("Open"));
|
||||
+ this._menu.addMenuItem(openItem);
|
||||
+ openItem.connect('activate', () => {
|
||||
+ this._menu.destroy();
|
||||
+ this._menu = null;
|
||||
+ this._app.open_new_window(-1);
|
||||
+ this._button.selectCategory(null, null);
|
||||
+ this._button.menu.toggle();
|
||||
+ });
|
||||
+
|
||||
+ let sepItem = new PopupMenu.PopupSeparatorMenuItem();
|
||||
+ this._menu.addMenuItem(sepItem);
|
||||
+
|
||||
+ let isFavorite = AppFavorites.getAppFavorites().isFavorite(this._app.get_id());
|
||||
+ let favText = null;
|
||||
+ if (isFavorite)
|
||||
+ favText = _("Remove from Favorites");
|
||||
+ else
|
||||
+ favText = _("Add to Favorites");
|
||||
+
|
||||
+ let favItem = new PopupMenu.PopupMenuItem(favText);
|
||||
+ this._menu.addMenuItem(favItem);
|
||||
+ favItem.connect('activate', () => {
|
||||
+ let favs = AppFavorites.getAppFavorites();
|
||||
+ let isFavorite = favs.isFavorite(this._app.get_id());
|
||||
+ if (isFavorite)
|
||||
+ favs.removeFavorite(this._app.get_id());
|
||||
+ else
|
||||
+ favs.addFavorite(this._app.get_id());
|
||||
+
|
||||
+ /*As the item text changes, we need to re-generate the menu */
|
||||
+ this._menu.destroy();
|
||||
+ this._menu = null;
|
||||
+
|
||||
+ this._button.selectCategory(null, null);
|
||||
+ this._button.menu.toggle();
|
||||
+ });
|
||||
+
|
||||
+ let desktopItem = new PopupMenu.PopupMenuItem(_("Add to Desktop"));
|
||||
+ this._menu.addMenuItem(desktopItem);
|
||||
+ desktopItem.connect('activate', () => {
|
||||
+ let desktopApp = this._app.get_app_info();
|
||||
+ let sourcePath = desktopApp.get_filename();
|
||||
+ let sourceFile = Gio.File.new_for_path(sourcePath);
|
||||
+ let destDirPath = GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_DESKTOP);
|
||||
+ let destDir = Gio.File.new_for_path(destDirPath);
|
||||
+
|
||||
+ if (!destDir.query_exists(null)) {
|
||||
+ destDirPath = Glib.build_filenamev([GLib.get_home_dir(), "Desktop"]);
|
||||
+ }
|
||||
+ let destFile = Gio.File.new_for_path(destDirPath + '/' + sourceFile.get_basename());
|
||||
+ if (sourceFile.copy(destFile, Gio.FileCopyFlags.OVERWRITE, null, null)) {
|
||||
+ // In order to make the general monitor recognize the setting of metadata,
|
||||
+ // this function call should before the setting of unix mode.
|
||||
+ let info = new Gio.FileInfo();
|
||||
+ info.set_attribute_string('metadata::trusted', 'true');
|
||||
+ destFile.set_attributes_from_info(info,
|
||||
+ Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null);
|
||||
+ destFile.set_attribute_uint32( Gio.FILE_ATTRIBUTE_UNIX_MODE, parseInt("0755", 8),
|
||||
+ Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS, null);
|
||||
+ }
|
||||
+ this._menu.destroy();
|
||||
+ this._menu = null;
|
||||
+ this._button.selectCategory(null, null);
|
||||
+ this._button.menu.toggle();
|
||||
+ });
|
||||
+
|
||||
+ Main.uiGroup.add_actor(this._menu.actor);
|
||||
+
|
||||
+ this._menuManager.addMenu(this._menu);
|
||||
+ }
|
||||
+
|
||||
+ this._menu.open(BoxPointer.PopupAnimation.NONE);
|
||||
+ this._menuManager.ignoreRelease();
|
||||
+
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
activate(event) {
|
||||
this._app.open_new_window(-1);
|
||||
this._button.selectCategory(null);
|
3
gnome-shell-extensions-46.2.obscpio
Normal file
3
gnome-shell-extensions-46.2.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0eeca39a287d07b470500f0cba10f9ab6e4a5d5a4df9856e2cee274890d7c7f0
|
||||
size 1534988
|
3
gnome-shell-extensions-47.0.obscpio
Normal file
3
gnome-shell-extensions-47.0.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d78f2c8fc0a762c6711187995eaad292bdd51f9fc53e7b375fd8d3eb119dfe86
|
||||
size 1544204
|
3
gnome-shell-extensions-47.1.obscpio
Normal file
3
gnome-shell-extensions-47.1.obscpio
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:85fa22d398a0ab340e7d15689f75d0d8b8684574dcdcefa0ac584582c96bee09
|
||||
size 1543692
|
2524
gnome-shell-extensions.changes
Normal file
2524
gnome-shell-extensions.changes
Normal file
File diff suppressed because it is too large
Load Diff
4
gnome-shell-extensions.obsinfo
Normal file
4
gnome-shell-extensions.obsinfo
Normal file
@ -0,0 +1,4 @@
|
||||
name: gnome-shell-extensions
|
||||
version: 47.1
|
||||
mtime: 1729281253
|
||||
commit: 9991f90804e1b09fb5d5346e2d067bc2b28e6ad4
|
182
gnome-shell-extensions.spec
Normal file
182
gnome-shell-extensions.spec
Normal file
@ -0,0 +1,182 @@
|
||||
#
|
||||
# spec file for package gnome-shell-extensions
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
# Copyright (c) 2011 Dominique Leuenberger, Amsterdam, The Netherlands
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
%global __requires_exclude typelib\\(Meta\\)
|
||||
Name: gnome-shell-extensions
|
||||
Version: 47.1
|
||||
Release: 0
|
||||
Summary: A collection of extensions for GNOME Shell
|
||||
License: GPL-2.0-or-later
|
||||
Group: System/GUI/GNOME
|
||||
URL: https://wiki.gnome.org/Projects/GnomeShell/Extensions
|
||||
Source0: %{name}-%{version}.tar.zst
|
||||
Source1: README.SUSE
|
||||
|
||||
# PATCH-FEATURE-OPENSUSE gnome-shell-add-app-to-desktop.patch bnc#870580 dliang@suse.com -- allow adding app shortcut to desktop easily.
|
||||
Patch1: gnome-shell-add-app-to-desktop.patch
|
||||
|
||||
## NOTE keep SLE Classic patch at the bottom
|
||||
BuildRequires: fdupes
|
||||
# Needed for directory ownership
|
||||
BuildRequires: gnome-shell
|
||||
# gobject-introspection is needed for the typelib() rpm magic.
|
||||
BuildRequires: gobject-introspection
|
||||
BuildRequires: meson >= 0.53.0
|
||||
BuildRequires: sassc
|
||||
|
||||
%description
|
||||
GNOME Shell Extensions is a collection of extensions providing
|
||||
additional and optional functionality to GNOME Shell.
|
||||
|
||||
%package common
|
||||
Summary: Common files for GNOME Shell extensions
|
||||
Group: System/GUI/GNOME
|
||||
Requires: gnome-shell
|
||||
# Obsoletes for metapackage and extensions from gnome-shell-extensions that we used to package
|
||||
Obsoletes: gnome-shell-extension-alternate-tab < %{version}
|
||||
Obsoletes: gnome-shell-extension-apps-menu < %{version}
|
||||
Obsoletes: gnome-shell-extension-auto-move-windows < %{version}
|
||||
Obsoletes: gnome-shell-extension-dock < %{version}
|
||||
Obsoletes: gnome-shell-extension-drive-menu < %{version}
|
||||
Obsoletes: gnome-shell-extension-gajim < %{version}
|
||||
Obsoletes: gnome-shell-extension-native-window-placement < %{version}
|
||||
Obsoletes: gnome-shell-extension-places-menu < %{version}
|
||||
Obsoletes: gnome-shell-extension-systemMonitor < %{version}
|
||||
Obsoletes: gnome-shell-extension-windows-navigator < %{version}
|
||||
Obsoletes: gnome-shell-extension-workspace-indicator < %{version}
|
||||
Obsoletes: gnome-shell-extension-xrandr-indicator < %{version}
|
||||
Obsoletes: gnome-shell-extensions < %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description common
|
||||
This package provides files common to several GNOME Shell Extensions
|
||||
|
||||
%package -n gnome-shell-classic
|
||||
Summary: A collection of extensions for Gnome-shell classic
|
||||
Group: System/GUI/GNOME
|
||||
Requires: gnome-shell-extensions-common
|
||||
Obsoletes: gnome-shell-classic-session < %{version}
|
||||
Obsoletes: gnome-shell-extension-desktop-icons < %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n gnome-shell-classic
|
||||
This GNOME Shell extension adds a power off item in the status
|
||||
menu, and provides the ability to hibernate.
|
||||
|
||||
This package provides the extensions required to switch to
|
||||
gnome-shell classic.
|
||||
|
||||
%package -n gnome-shell-extension-user-theme
|
||||
Summary: Allow the user to change GNOME Shell Themes
|
||||
Group: System/GUI/GNOME
|
||||
BuildArch: noarch
|
||||
|
||||
%description -n gnome-shell-extension-user-theme
|
||||
This extension allows the user to switch to different themes. It's possible
|
||||
to pick system installed themes or even themes installed in the user's home.
|
||||
|
||||
%package -n gnome-shell-extension-system-monitor
|
||||
Summary: System monitor for GNOME Shell
|
||||
Group: System/GUI/GNOME
|
||||
BuildArch: noarch
|
||||
Recommends: gnome-system-monitor
|
||||
|
||||
%description -n gnome-shell-extension-system-monitor
|
||||
This GNOME Shell extension displays system usage information in the top bar.
|
||||
|
||||
%lang_package -n %{name}-common
|
||||
|
||||
%prep
|
||||
%autosetup -N
|
||||
# Needs rebase
|
||||
#patch1 -p1
|
||||
|
||||
# In openSUSE GNOME, we don't launch gnome-session directly, but wrap this through a shell script, /usr/bin/gnome
|
||||
sed -i "s:Exec=gnome-session:Exec=gnome:g" data/gnome-classic.desktop.in
|
||||
cp %{SOURCE1} .
|
||||
%if 0%{?sle_version}
|
||||
sed -i -e 's/openSUSE/SUSE Linux Enterprise/g' README.SUSE
|
||||
%endif
|
||||
|
||||
%build
|
||||
%meson \
|
||||
-D classic_mode=true \
|
||||
-D extension_set=classic \
|
||||
-D enable_extensions="apps-menu,places-menu,launch-new-instance,window-list,workspace-indicator,user-theme,system-monitor,status-icons"
|
||||
%meson_build
|
||||
|
||||
%install
|
||||
%meson_install
|
||||
%find_lang %{name} %{?no_lang_C}
|
||||
%fdupes %{buildroot}%{_datadir}
|
||||
|
||||
%if 0%{?sle_version}
|
||||
# Prepare for 'default.desktop' being update-alternative handled, boo#1039756
|
||||
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
|
||||
touch %{buildroot}%{_sysconfdir}/alternatives/default-xsession.desktop
|
||||
ln -s %{_sysconfdir}/alternatives/default-xsession.desktop %{buildroot}%{_datadir}/xsessions/default.desktop
|
||||
touch %{buildroot}%{_sysconfdir}/alternatives/default-waylandsession.desktop
|
||||
install -d -m755 %{buildroot}%{_datadir}/wayland-sessions
|
||||
ln -s %{_sysconfdir}/alternatives/default-waylandsession.desktop %{buildroot}%{_datadir}/wayland-sessions/default.desktop
|
||||
%endif
|
||||
|
||||
%files common
|
||||
%license COPYING
|
||||
%doc README.SUSE HACKING.md NEWS README.md
|
||||
|
||||
%files -n gnome-shell-classic
|
||||
%{_datadir}/glib-2.0/schemas/00_org.gnome.shell.extensions.classic.gschema.override
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.apps-menu.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.window-list.gschema.xml
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.workspace-indicator.gschema.xml
|
||||
%dir %{_datadir}/gnome-shell/extensions
|
||||
%{_datadir}/gnome-shell/extensions/apps-menu@gnome-shell-extensions.gcampax.github.com/
|
||||
%{_datadir}/gnome-shell/extensions/launch-new-instance@gnome-shell-extensions.gcampax.github.com/
|
||||
%{_datadir}/gnome-shell/extensions/places-menu@gnome-shell-extensions.gcampax.github.com/
|
||||
%{_datadir}/gnome-shell/extensions/workspace-indicator@gnome-shell-extensions.gcampax.github.com/
|
||||
%{_datadir}/gnome-shell/extensions/window-list@gnome-shell-extensions.gcampax.github.com/
|
||||
%{_datadir}/gnome-shell/extensions/status-icons@gnome-shell-extensions.gcampax.github.com/
|
||||
%dir %{_datadir}/gnome-shell/modes
|
||||
%{_datadir}/gnome-shell/modes/classic.json
|
||||
%dir %{_datadir}/wayland-sessions
|
||||
%{_datadir}/wayland-sessions/gnome-classic-wayland.desktop
|
||||
%{_datadir}/wayland-sessions/gnome-classic.desktop
|
||||
%{_datadir}/xsessions/gnome-classic-xorg.desktop
|
||||
%{_datadir}/xsessions/gnome-classic.desktop
|
||||
%if 0%{?sle_version}
|
||||
%dir %{_datadir}/wayland-sessions
|
||||
%{_datadir}/xsessions/default.desktop
|
||||
%{_datadir}/wayland-sessions/default.desktop
|
||||
%ghost %{_sysconfdir}/alternatives/default-xsession.desktop
|
||||
%ghost %{_sysconfdir}/alternatives/default-waylandsession.desktop
|
||||
%endif
|
||||
|
||||
%files -n gnome-shell-extension-user-theme
|
||||
%license COPYING
|
||||
%{_datadir}/gnome-shell/extensions/user-theme@gnome-shell-extensions.gcampax.github.com/
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.user-theme.gschema.xml
|
||||
|
||||
%files -n gnome-shell-extension-system-monitor
|
||||
%license COPYING
|
||||
%{_datadir}/glib-2.0/schemas/org.gnome.shell.extensions.system-monitor.gschema.xml
|
||||
%{_datadir}/gnome-shell/extensions/system-monitor@gnome-shell-extensions.gcampax.github.com/
|
||||
|
||||
%files common-lang -f %{name}.lang
|
||||
|
||||
%changelog
|
Loading…
Reference in New Issue
Block a user