summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2022-12-19 14:43:23 +0100
committerPacho Ramos <pacho@gentoo.org>2022-12-19 14:50:42 +0100
commit66f2090467efc636a3a9d909b6720f4fbb0192d0 (patch)
tree9319b2fafab0af303115fe7b8bcb98b0b5e33bb6 /gnome-extra/synapse
parentx11-misc/meteo: drop 0.9.9.1 (diff)
downloadgentoo-66f2090467efc636a3a9d909b6720f4fbb0192d0.tar.gz
gentoo-66f2090467efc636a3a9d909b6720f4fbb0192d0.tar.bz2
gentoo-66f2090467efc636a3a9d909b6720f4fbb0192d0.zip
gnome-extra/synapse: Support MATE and ayatana indicators
Signed-off-by: Pacho Ramos <pacho@gentoo.org>
Diffstat (limited to 'gnome-extra/synapse')
-rw-r--r--gnome-extra/synapse/files/synapse-0.2.99.4-ayatana-indicator.patch25
-rw-r--r--gnome-extra/synapse/files/synapse-0.2.99.4-mate.patch222
-rw-r--r--gnome-extra/synapse/synapse-0.2.99.4-r2.ebuild58
3 files changed, 305 insertions, 0 deletions
diff --git a/gnome-extra/synapse/files/synapse-0.2.99.4-ayatana-indicator.patch b/gnome-extra/synapse/files/synapse-0.2.99.4-ayatana-indicator.patch
new file mode 100644
index 000000000000..ee11befc29cd
--- /dev/null
+++ b/gnome-extra/synapse/files/synapse-0.2.99.4-ayatana-indicator.patch
@@ -0,0 +1,25 @@
+diff --color -ur synapse-0.2.99.4.orig/configure.ac synapse-0.2.99.4/configure.ac
+--- synapse-0.2.99.4.orig/configure.ac 2018-04-08 20:52:10.000000000 +0200
++++ synapse-0.2.99.4/configure.ac 2021-11-24 16:47:10.073022755 +0100
+@@ -110,16 +110,16 @@
+ AM_CONDITIONAL(HAVE_ZEITGEIST, test "x$enable_zeitgeist" = "xyes")
+
+ if test "x$enable_indicator" = "xauto" ; then
+- PKG_CHECK_EXISTS([appindicator3-0.1],
++ PKG_CHECK_EXISTS([ayatana-appindicator3-0.1],
+ enable_indicator="yes",
+ enable_indicator="no")
+ fi
+
+ if test "x$enable_indicator" = "xyes" ; then
+- PKG_CHECK_EXISTS([appindicator3-0.1],,
+- AC_MSG_ERROR([appindicator3-0.1 is not installed]))
+- PKG_CHECK_MODULES(APP_INDICATOR, appindicator3-0.1)
+- APP_INDICATOR_VALAFLAGS=" --pkg appindicator3-0.1 -D HAVE_INDICATOR"
++ PKG_CHECK_EXISTS([ayatana-appindicator3-0.1],,
++ AC_MSG_ERROR([ayatana-appindicator3-0.1 is not installed]))
++ PKG_CHECK_MODULES(APP_INDICATOR, ayatana-appindicator3-0.1)
++ APP_INDICATOR_VALAFLAGS=" --pkg ayatana-appindicator3-0.1 -D HAVE_INDICATOR"
+ AC_SUBST(APP_INDICATOR_VALAFLAGS)
+ AC_DEFINE(HAVE_INDICATOR, 1, [Have AppIndicator])
+ fi
diff --git a/gnome-extra/synapse/files/synapse-0.2.99.4-mate.patch b/gnome-extra/synapse/files/synapse-0.2.99.4-mate.patch
new file mode 100644
index 000000000000..9703c13aed5d
--- /dev/null
+++ b/gnome-extra/synapse/files/synapse-0.2.99.4-mate.patch
@@ -0,0 +1,222 @@
+diff -urN synapse-0.2.10.orig/src/plugins/Makefile.am synapse-0.2.10/src/plugins/Makefile.am
+--- synapse-0.2.10.orig/src/plugins/Makefile.am 2013-08-18 18:33:35.710536590 +0200
++++ synapse-0.2.10/src/plugins/Makefile.am 2013-08-18 18:33:44.427203171 +0200
+@@ -45,6 +45,7 @@
+ hybrid-search-plugin.vala \
+ launchpad-plugin.vala \
+ locate-plugin.vala \
++ mate-session-plugin.vala \
+ opensearch.vala \
+ pass-plugin.vala \
+ pastebin-plugin.vala \
+diff -urN synapse-0.2.10.orig/src/plugins/mate-session-plugin.vala synapse-0.2.10/src/plugins/mate-session-plugin.vala
+--- synapse-0.2.10.orig/src/plugins/mate-session-plugin.vala 1970-01-01 01:00:00.000000000 +0100
++++ synapse-0.2.10/src/plugins/mate-session-plugin.vala 2013-08-18 18:33:44.427203171 +0200
+@@ -0,0 +1,196 @@
++/*
++ * Copyright (C) 2010 Michal Hruby <michal.mhr@gmail.com>
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++ *
++ * Authored by Michal Hruby <michal.mhr@gmail.com>
++ *
++ */
++
++namespace Synapse
++{
++ [DBus (name = "org.mate.SessionManager")]
++ public interface MateSessionManager: Object
++ {
++ public const string UNIQUE_NAME = "org.mate.SessionManager";
++ public const string OBJECT_PATH = "/org/mate/SessionManager";
++
++ public abstract bool can_shutdown () throws IOError;
++ public abstract void shutdown () throws IOError;
++ public abstract void request_reboot () throws IOError;
++ public abstract void logout (uint32 mode = 0) throws IOError;
++ }
++
++ public class MateSessionPlugin: Object, Activatable, ItemProvider
++ {
++ public bool enabled { get; set; default = true; }
++
++ public void activate ()
++ {
++
++ }
++
++ public void deactivate ()
++ {
++
++ }
++
++ private class ShutDownAction: ActionMatch
++ {
++ public ShutDownAction ()
++ {
++ Object (title: _("Shut Down"),
++ description: _("Turn your computer off"),
++ icon_name: "system-shutdown", has_thumbnail: false);
++ }
++
++ public override void do_action ()
++ {
++ try
++ {
++ MateSessionManager dbus_interface = Bus.get_proxy_sync (BusType.SESSION,
++ MateSessionManager.UNIQUE_NAME,
++ MateSessionManager.OBJECT_PATH);
++
++ dbus_interface.shutdown ();
++ }
++ catch (IOError err)
++ {
++ warning ("%s", err.message);
++ }
++ }
++ }
++
++ private class RebootAction: ActionMatch
++ {
++ public RebootAction ()
++ {
++ Object (title: _("Restart"),
++ description: _("Restart your computer"),
++ icon_name: "system-shutdown", has_thumbnail: false);
++ }
++
++ public override void do_action ()
++ {
++ try
++ {
++ MateSessionManager dbus_interface = Bus.get_proxy_sync (BusType.SESSION,
++ MateSessionManager.UNIQUE_NAME,
++ MateSessionManager.OBJECT_PATH);
++
++ dbus_interface.request_reboot ();
++ }
++ catch (IOError err)
++ {
++ warning ("%s", err.message);
++ }
++ }
++ }
++
++ private class LogOutAction: ActionMatch
++ {
++ public LogOutAction ()
++ {
++ Object (title: _("Log Out"),
++ description: _("Close your session and return to the login screen"),
++ icon_name: "gnome-logout", has_thumbnail: false);
++ }
++
++ public override void do_action ()
++ {
++ try
++ {
++ MateSessionManager dbus_interface = Bus.get_proxy_sync (BusType.SESSION,
++ MateSessionManager.UNIQUE_NAME,
++ MateSessionManager.OBJECT_PATH);
++
++ /*
++ * 0: Normal.
++ * 1: No confirmation inferface should be shown.
++ * 2: Forcefully logout. No confirmation will be shown and any inhibitors will be ignored.
++ */
++ dbus_interface.logout (1);
++ }
++ catch (IOError err)
++ {
++ warning ("%s", err.message);
++ }
++ }
++ }
++
++ static void register_plugin ()
++ {
++ PluginRegistry.get_default ().register_plugin (
++ typeof (MateSessionPlugin),
++ "MATE Session",
++ _ ("Log out from your session."),
++ "mate-session-logout",
++ register_plugin,
++ DBusService.get_default ().name_has_owner (MateSessionManager.UNIQUE_NAME),
++ _ ("MATE Session Manager wasn't found")
++ );
++ }
++
++ static construct
++ {
++ register_plugin ();
++ }
++
++ private bool session_manager_available = false;
++ private Gee.List<Match> actions;
++
++ construct
++ {
++ var cache = DBusService.get_default ();
++ session_manager_available = cache.name_has_owner (MateSessionManager.UNIQUE_NAME);
++ message ("%s %s available", MateSessionManager.UNIQUE_NAME,
++ session_manager_available ? "is" : "isn't");
++
++ actions = new Gee.LinkedList<Match> ();
++ actions.add (new LogOutAction ());
++ // TODO: add a config option to enable these actions (for example when ConsoleKit is not available)
++ //actions.add (new RebootAction ());
++ //actions.add (new ShutDownAction ());
++ }
++
++ public async ResultSet? search (Query q) throws SearchError
++ {
++ if (!session_manager_available) return null;
++ // we only search for actions
++ if (!(QueryFlags.ACTIONS in q.query_type)) return null;
++
++ var result = new ResultSet ();
++
++ var matchers = Query.get_matchers_for_query (q.query_string, 0,
++ RegexCompileFlags.OPTIMIZE | RegexCompileFlags.CASELESS);
++
++ foreach (var action in actions)
++ {
++ foreach (var matcher in matchers)
++ {
++ if (matcher.key.match (action.title))
++ {
++ result.add (action, matcher.value - MatchScore.INCREMENT_SMALL);
++ break;
++ }
++ }
++ }
++
++ q.check_cancellable ();
++
++ return result;
++ }
++ }
++}
+diff -urN synapse-0.2.10.orig/src/ui/synapse-main.vala synapse-0.2.10/src/ui/synapse-main.vala
+--- synapse-0.2.10.orig/src/ui/synapse-main.vala 2013-08-18 18:33:35.710536590 +0200
++++ synapse-0.2.10/src/ui/synapse-main.vala 2013-08-18 18:33:44.427203171 +0200
+@@ -165,6 +165,7 @@
+ typeof (HybridSearchPlugin),
+ typeof (GnomeBookmarksPlugin),
+ typeof (GnomeSessionPlugin),
++ typeof (MateSessionPlugin),
+ typeof (ScreenSaverPlugin),
+ typeof (SystemManagementPlugin),
+ typeof (CommandPlugin),
diff --git a/gnome-extra/synapse/synapse-0.2.99.4-r2.ebuild b/gnome-extra/synapse/synapse-0.2.99.4-r2.ebuild
new file mode 100644
index 000000000000..ce524b54e1f1
--- /dev/null
+++ b/gnome-extra/synapse/synapse-0.2.99.4-r2.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit autotools vala xdg
+
+DESCRIPTION="A program launcher in the style of GNOME Do"
+HOMEPAGE="https://launchpad.net/synapse-project/"
+SRC_URI="https://launchpad.net/synapse-project/0.3/${PV}/+download/${P}.tar.xz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="appindicator nls plugins"
+
+RDEPEND="
+ >=dev-libs/glib-2.28.0:2
+ >=x11-libs/gtk+-3.0.0:3
+ dev-libs/json-glib
+ dev-libs/keybinder:3
+ dev-libs/libgee:0.8
+ sys-apps/dbus
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ x11-libs/libnotify
+ x11-libs/pango
+ x11-themes/adwaita-icon-theme
+ appindicator? ( dev-libs/libayatana-appindicator )
+ nls? ( virtual/libintl )
+ plugins? ( >=net-libs/rest-0.7:0.7 )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ $(vala_depend)
+ nls? ( sys-devel/gettext )
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ # From PLD Linux
+ "${FILESDIR}/${P}-mate.patch"
+ "${FILESDIR}/${P}-ayatana-indicator.patch"
+)
+
+src_prepare() {
+ default
+ sed -i -e 's/GNOME/GNOME;GTK/' data/synapse.desktop.in || die
+ vala_setup
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable appindicator indicator) \
+ $(use_enable nls) \
+ $(use_enable plugins librest yes) \
+ --disable-zeitgeist
+}