diff --git a/README b/README index bb41cbf3..d96ff6c2 100644 --- a/README +++ b/README @@ -24,12 +24,6 @@ alternate-tab Lets you use classic Alt+Tab (window-based instead of app-based) in GNOME Shell. -alternative-status-menu - - For those who want a power off item visible at all the time, replaces GNOME Shell -status menu with one featuring separate Suspend and Power Off. Adds the ability to -hibernate as well. - apps-menu Lets you reach an application using gnome 2.x style menu on the panel. diff --git a/configure.ac b/configure.ac index ecf5963b..12aa6538 100644 --- a/configure.ac +++ b/configure.ac @@ -28,7 +28,7 @@ AC_SUBST([SHELL_VERSION]) dnl keep this in alphabetic order CLASSIC_EXTENSIONS="apps-menu places-menu alternate-tab launch-new-instance window-list" -DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS alternative-status-menu drive-menu windowsNavigator workspace-indicator" +DEFAULT_EXTENSIONS="$CLASSIC_EXTENSIONS drive-menu windowsNavigator workspace-indicator" ALL_EXTENSIONS="$DEFAULT_EXTENSIONS auto-move-windows example native-window-placement systemMonitor user-theme xrandr-indicator" AC_SUBST(CLASSIC_EXTENSIONS, [$CLASSIC_EXTENSIONS]) AC_SUBST(ALL_EXTENSIONS, [$ALL_EXTENSIONS]) @@ -71,7 +71,7 @@ for e in $enable_extensions; do [AC_MSG_WARN([gnome-desktop-3.0 not found, disabling xrandr-indicator])]) ;; dnl keep this in alphabetic order - alternate-tab|alternative-status-menu|apps-menu|auto-move-windows|drive-menu|example|launch-new-instance|native-window-placement|places-menu|user-theme|window-list|windowsNavigator|workspace-indicator) + alternate-tab|apps-menu|auto-move-windows|drive-menu|example|launch-new-instance|native-window-placement|places-menu|user-theme|window-list|windowsNavigator|workspace-indicator) ENABLED_EXTENSIONS="$ENABLED_EXTENSIONS $e" ;; *) @@ -85,7 +85,6 @@ dnl Please keep this sorted alphabetically AC_CONFIG_FILES([ data/Makefile extensions/alternate-tab/Makefile - extensions/alternative-status-menu/Makefile extensions/apps-menu/Makefile extensions/auto-move-windows/Makefile extensions/drive-menu/Makefile diff --git a/extensions/alternative-status-menu/Makefile.am b/extensions/alternative-status-menu/Makefile.am deleted file mode 100644 index 8823849d..00000000 --- a/extensions/alternative-status-menu/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -EXTENSION_ID = alternative-status-menu - -include ../../extension.mk -include ../../settings.mk diff --git a/extensions/alternative-status-menu/extension.js b/extensions/alternative-status-menu/extension.js deleted file mode 100644 index 4285edd6..00000000 --- a/extensions/alternative-status-menu/extension.js +++ /dev/null @@ -1,172 +0,0 @@ -/* -*- mode: js2 - indent-tabs-mode: nil - js2-basic-offset: 4 -*- */ - -const Gio = imports.gi.Gio; -const GLib = imports.gi.GLib; -const Lang = imports.lang; -const Mainloop = imports.mainloop; -const St = imports.gi.St; - -const BoxPointer = imports.ui.boxpointer; -const Main = imports.ui.main; -const PopupMenu = imports.ui.popupMenu; - -const Gettext = imports.gettext.domain('gnome-shell-extensions'); -const _ = Gettext.gettext; - -const ExtensionUtils = imports.misc.extensionUtils; -const Me = ExtensionUtils.getCurrentExtension(); -const Convenience = Me.imports.convenience; - -const LOCK_ENABLED_KEY = 'lock-enabled'; - -let extension; - -// Need to reimplement here the missing bits from LoginManager - -function loginManager_hibernate() { - if (this._proxy) { - // systemd path - this._proxy.call("Hibernate", - GLib.Variant.new('(b)', [true]), - Gio.DBusCallFlags.NONE, - -1, null, null); - } else { - // Can't do in ConsoleKit - this.emit('prepare-for-sleep', true); - this.emit('prepare-for-sleep', false); - } -} - -function loginManager_canHibernate(asyncCallback) { - if (this._proxy) { - // systemd path - this._proxy.call("CanHibernate", - null, - Gio.DBusCallFlags.NONE, - -1, null, function(proxy, asyncResult) { - let result, error; - - try { - result = proxy.call_finish(asyncResult).deep_unpack(); - } catch(e) { - error = e; - } - - if (error) - asyncCallback(false); - else - asyncCallback(result[0] != 'no'); - }); - } else { - Mainloop.idle_add(Lang.bind(this, function() { - asyncCallback(false); - return false; - })); - } -} - -function statusMenu_updateHaveHibernate() { - loginManager_canHibernate.call(this._loginManager, Lang.bind(this, - function(result) { - this._haveHibernate = result; - this._updateSuspendOrPowerOff(); - })); -} - -function statusMenu_updateSuspendOrPowerOff() { - this._suspendOrPowerOffItem.actor.hide(); - - extension.suspendItem.actor.visible = this._haveSuspend && extension.settings.get_boolean('allow-suspend'); - extension.hibernateItem.actor.visible = this._haveHibernate && extension.settings.get_boolean('allow-hibernate'); - extension.powerOffItem.actor.visible = this._haveShutdown; -} - -function onSuspendActivate(item) { - Main.overview.hide(); - - this.menu.close(BoxPointer.PopupAnimation.NONE); - this._loginManager.suspend(); -} - -function onHibernateActivate(item) { - Main.overview.hide(); - - this.menu.close(BoxPointer.PopupAnimation.NONE); - loginManager_hibernate.call(this._loginManager); -} - -const Extension = new Lang.Class({ - Name: 'AlternativeStatusMenu.Extension', - - _init: function() { - this.suspendItem = null; - this.hibernateItem = null; - this.powerOffItem = null; - - Convenience.initTranslations(); - this.settings = Convenience.getSettings(); - }, - - enable: function() { - let statusMenu = Main.panel.statusArea.userMenu; - - let children = statusMenu.menu._getMenuItems(); - let index = children.length; - - /* find the old entry */ - for (let i = children.length - 1; i >= 0; i--) { - if (children[i] == statusMenu._suspendOrPowerOffItem) { - index = i; - break; - } - } - - /* add the new entries */ - this.suspendItem = new PopupMenu.PopupMenuItem(_("Suspend")); - this.suspendItem.connect('activate', Lang.bind(statusMenu, onSuspendActivate)); - - this.hibernateItem = new PopupMenu.PopupMenuItem(_("Hibernate")); - this.hibernateItem.connect('activate', Lang.bind(statusMenu, onHibernateActivate)); - - this.powerOffItem = new PopupMenu.PopupMenuItem(_("Power Off")); - this.powerOffItem.connect('activate', Lang.bind(statusMenu, function() { - this._session.ShutdownRemote(); - })); - - /* insert the entries at the found position */ - statusMenu.menu.addMenuItem(this.suspendItem, index); - statusMenu.menu.addMenuItem(this.hibernateItem, index + 1); - statusMenu.menu.addMenuItem(this.powerOffItem, index + 2); - - this._openStateChangedId = statusMenu.menu.connect('open-state-changed', function() { - statusMenu_updateHaveHibernate.call(statusMenu); - }); - - this._previousUpdateSuspendOrPowerOff = statusMenu._updateSuspendOrPowerOff; - statusMenu._updateSuspendOrPowerOff = statusMenu_updateSuspendOrPowerOff; - - this._settingsChangedId = this.settings.connect('changed', function() { - statusMenu._updateSuspendOrPowerOff(); - }); - }, - - disable: function() { - let statusMenu = Main.panel.statusArea.userMenu; - - this.suspendItem.destroy(); - this.hibernateItem.destroy(); - this.powerOffItem.destroy(); - - statusMenu.menu.disconnect(this._openStateChangedId); - this.settings.disconnect(this._settingsChangedId); - - statusMenu._updateSuspendOrPowerOff = this._previousUpdateSuspendOrPowerOff; - statusMenu._updateSuspendOrPowerOff(); - }, -}); - -// Put your extension initialization code here -function init(metadata) { - return (extension = new Extension()); -} - diff --git a/extensions/alternative-status-menu/metadata.json.in b/extensions/alternative-status-menu/metadata.json.in deleted file mode 100644 index d0972698..00000000 --- a/extensions/alternative-status-menu/metadata.json.in +++ /dev/null @@ -1,10 +0,0 @@ -{ - "extension-id": "@extension_id@", - "uuid": "@uuid@", - "settings-schema": "@gschemaname@", - "gettext-domain": "@gettext_domain@", - "name": "Alternative Status Menu", - "description": "Replaces GNOME Shell Status Menu with one showing Suspend/Hibernate and Power Off as separate items.", - "shell-version": [ "@shell_current@" ], - "url": "@url@" -} diff --git a/extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in b/extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in deleted file mode 100644 index b6d8f608..00000000 --- a/extensions/alternative-status-menu/org.gnome.shell.extensions.alternative-status-menu.gschema.xml.in +++ /dev/null @@ -1,14 +0,0 @@ - - - - true - <_summary>Enable suspending - <_description>Control the visibility of the Suspend menu item - - - true - <_summary>Enable hibernating - <_description>Control the visibility of the Hibernate menu item - - - diff --git a/extensions/alternative-status-menu/stylesheet.css b/extensions/alternative-status-menu/stylesheet.css deleted file mode 100644 index fd502bc5..00000000 --- a/extensions/alternative-status-menu/stylesheet.css +++ /dev/null @@ -1,3 +0,0 @@ -.popup-alternating-menu-item:alternate { - font-weight: normal !important; -}