mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
Merge branch 'osx-notify'
This commit is contained in:
commit
d68c594150
37
configure.ac
37
configure.ac
@ -23,7 +23,13 @@ AC_PROG_CC
|
||||
|
||||
### Get canonical host
|
||||
AC_CANONICAL_HOST
|
||||
AS_IF([test "x$host_os" = xcygwin],
|
||||
PLATFORM="unknown"
|
||||
AS_CASE([$host_os],
|
||||
[darwin*], [PLATFORM="osx"],
|
||||
[cygwin], [PLATFORM="cygwin"],
|
||||
[PLATFORM="nix"])
|
||||
|
||||
AS_IF([test "x$PLATFORM" = xcygwin],
|
||||
[AC_DEFINE([PLATFORM_CYGWIN], [1], [Cygwin])])
|
||||
|
||||
### Options
|
||||
@ -111,12 +117,28 @@ PKG_CHECK_MODULES([glib], [glib-2.0 >= 2.26], [],
|
||||
[AC_MSG_ERROR([glib 2.26 or higher is required for profanity])])
|
||||
PKG_CHECK_MODULES([curl], [libcurl], [],
|
||||
[AC_MSG_ERROR([libcurl is required for profanity])])
|
||||
AS_IF([test "x$enable_notifications" != xno],
|
||||
[PKG_CHECK_MODULES([libnotify], [libnotify],
|
||||
[AC_DEFINE([HAVE_LIBNOTIFY], [1], [libnotify module])],
|
||||
[AS_IF([test "x$enable_notifications" = xyes],
|
||||
[AC_MSG_ERROR([libnotify is required but does not exist])],
|
||||
[AC_MSG_NOTICE([libnotify support will be disabled])])])])
|
||||
|
||||
### Check for desktop notification support
|
||||
### Linux requires libnotify
|
||||
### Windows uses native OS calls
|
||||
### OSX requires terminal-notifier
|
||||
|
||||
AS_IF([test "x$PLATFORM" = xosx],
|
||||
[AS_IF([test "x$enable_notifications" != xno],
|
||||
[NOTIFIER_PATH="no"
|
||||
AC_PATH_PROG(NOTIFIER_PATH, terminal-notifier, no)
|
||||
AS_IF([test "x$NOTIFIER_PATH" = xno],
|
||||
[AS_IF([test "x$enable_notifications" = xyes],
|
||||
[AC_MSG_ERROR([terminal-notifier not found, required for desktop notifications.])],
|
||||
[AC_MSG_NOTICE([Desktop notifications not supported.])])],
|
||||
[AC_DEFINE([HAVE_OSXNOTIFY], [1], [terminal notifier])])])],
|
||||
[test "x$PLATFORM" = xnix],
|
||||
[AS_IF([test "x$enable_notifications" != xno],
|
||||
[PKG_CHECK_MODULES([libnotify], [libnotify],
|
||||
[AC_DEFINE([HAVE_LIBNOTIFY], [1], [libnotify module])],
|
||||
[AS_IF([test "x$enable_notifications" = xyes],
|
||||
[AC_MSG_ERROR([libnotify is required but does not exist])],
|
||||
[AC_MSG_NOTICE([libnotify support will be disabled])])])])])
|
||||
|
||||
# TODO: rewrite this
|
||||
if test "x$with_xscreensaver" = xyes; then
|
||||
@ -193,6 +215,7 @@ AC_CONFIG_FILES([Makefile])
|
||||
AC_OUTPUT
|
||||
|
||||
echo ""
|
||||
echo "PLATFORM : $host_os"
|
||||
echo "PACKAGE_STATUS : $PACKAGE_STATUS"
|
||||
echo "AM_CFLAGS : $AM_CFLAGS"
|
||||
echo "AM_CPPFLAGS : $AM_CPPFLAGS"
|
||||
|
@ -23,6 +23,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <glib.h>
|
||||
#ifdef HAVE_LIBNOTIFY
|
||||
@ -205,6 +206,31 @@ _notify(const char * const message, int timeout,
|
||||
|
||||
Shell_NotifyIcon(NIM_MODIFY, &nid);
|
||||
#endif
|
||||
#ifdef HAVE_OSXNOTIFY
|
||||
GString *notify_command = g_string_new("terminal-notifier -title 'Profanity' -message '");
|
||||
g_string_append(notify_command, message);
|
||||
g_string_append(notify_command, "'");
|
||||
|
||||
char *term_name = getenv("TERM_PROGRAM");
|
||||
char *app_id = NULL;
|
||||
if (g_strcmp0(term_name, "Apple_Terminal") == 0) {
|
||||
app_id = "com.apple.Terminal";
|
||||
} else if (g_strcmp0(term_name, "iTerm.app") == 0) {
|
||||
app_id = "com.googlecode.iterm2";
|
||||
}
|
||||
|
||||
if (app_id != NULL) {
|
||||
g_string_append(notify_command, " -sender ");
|
||||
g_string_append(notify_command, app_id);
|
||||
}
|
||||
|
||||
int res = system(notify_command->str);
|
||||
if (res == -1) {
|
||||
log_error("Could not send desktop notificaion.");
|
||||
}
|
||||
|
||||
g_string_free(notify_command, TRUE);
|
||||
#endif
|
||||
}
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user