diff options
author | Manuel Hüsers | 2015-09-23 00:41:10 +0200 |
---|---|---|
committer | Manuel Hüsers | 2015-09-23 00:41:10 +0200 |
commit | 8d060375e72875f1ded9028eb1a345e38570e66b (patch) | |
tree | 1f2818e53b43f9b00fc233fd65281981d510ebff /vte-command-notify.patch | |
parent | 61181abdfccaafe897a0625e4bbac86b2df931ac (diff) | |
download | aur-8d060375e72875f1ded9028eb1a345e38570e66b.tar.gz |
Version 0.42.0
Diffstat (limited to 'vte-command-notify.patch')
-rw-r--r-- | vte-command-notify.patch | 290 |
1 files changed, 0 insertions, 290 deletions
diff --git a/vte-command-notify.patch b/vte-command-notify.patch deleted file mode 100644 index 75ad0186fcaf..000000000000 --- a/vte-command-notify.patch +++ /dev/null @@ -1,290 +0,0 @@ -diff -rupN vte-0.41.90/src/app.vala vte-0.41.90-patched/src/app.vala ---- vte-0.41.90/src/app.vala 2015-08-20 14:26:53.000000000 +0200 -+++ vte-0.41.90-patched/src/app.vala 2015-09-15 19:38:39.999947051 +0200 -@@ -102,6 +102,8 @@ class Window : Gtk.ApplicationWindow - if (App.Options.object_notifications) - terminal.notify.connect(notify_cb); - -+ terminal.notification_received.connect(notification_received_cb); -+ - /* Settings */ - if (App.Options.no_double_buffer) - terminal.set_double_buffered(true); -@@ -511,6 +513,11 @@ class Window : Gtk.ApplicationWindow - set_title(terminal.get_window_title()); - } - -+ private void notification_received_cb(Vte.Terminal terminal, string summary, string? body) -+ { -+ print ("[%s]: %s\n", summary, body); -+ } -+ - } /* class Window */ - - class App : Gtk.Application -diff -rupN vte-0.41.90/src/caps.cc vte-0.41.90-patched/src/caps.cc ---- vte-0.41.90/src/caps.cc 2015-08-20 14:26:53.000000000 +0200 -+++ vte-0.41.90-patched/src/caps.cc 2015-09-15 19:22:53.058742000 +0200 -@@ -254,6 +254,8 @@ const char _vte_xterm_capability_strings - ENTRY(OSC "117" BEL, "reset-highlight-background-color") - ENTRY(OSC "118" BEL, "reset-tek-cursor-color") - ENTRY(OSC "119" BEL, "reset-highlight-foreground-color") -+ ENTRY(OSC "777;%s;%s;%s" BEL, "send-notification") -+ ENTRY(OSC "777;%s;%s" BEL, "send-notification") - - COMMENT(/* Set text parameters, ST-terminated versions. */) - ENTRY(OSC ";%s" ST, "set-icon-and-window-title") COMMENT(/* undocumented default */) -@@ -289,6 +291,8 @@ const char _vte_xterm_capability_strings - ENTRY(OSC "117" ST, "reset-highlight-background-color") - ENTRY(OSC "118" ST, "reset-tek-cursor-color") - ENTRY(OSC "119" ST, "reset-highlight-foreground-color") -+ ENTRY(OSC "777;%s;%s;%s" ST, "send-notification") -+ ENTRY(OSC "777;%s;%s" ST, "send-notification") - - COMMENT(/* These may be bogus, I can't find docs for them anywhere (#104154). */) - ENTRY(OSC "21;%s" BEL, "set-text-property-21") -diff -rupN vte-0.41.90/src/marshal.list vte-0.41.90-patched/src/marshal.list ---- vte-0.41.90/src/marshal.list 2015-05-12 14:32:16.000000000 +0200 -+++ vte-0.41.90-patched/src/marshal.list 2015-09-15 19:23:57.632415651 +0200 -@@ -1,4 +1,5 @@ - VOID:INT,INT - VOID:OBJECT,OBJECT -+VOID:STRING,STRING - VOID:STRING,UINT - VOID:UINT,UINT -diff -rupN vte-0.41.90/src/vte/vteterminal.h vte-0.41.90-patched/src/vte/vteterminal.h ---- vte-0.41.90/src/vte/vteterminal.h 2015-08-20 14:26:53.000000000 +0200 -+++ vte-0.41.90-patched/src/vte/vteterminal.h 2015-09-15 19:36:59.769458153 +0200 -@@ -78,6 +78,7 @@ struct _VteTerminalClass { - void (*child_exited)(VteTerminal* terminal, int status); - void (*encoding_changed)(VteTerminal* terminal); - void (*char_size_changed)(VteTerminal* terminal, guint char_width, guint char_height); -+ void (*notification_received)(VteTerminal* terminal, const gchar *summary, const gchar *body); - void (*window_title_changed)(VteTerminal* terminal); - void (*icon_title_changed)(VteTerminal* terminal); - void (*selection_changed)(VteTerminal* terminal); -@@ -111,7 +112,7 @@ struct _VteTerminalClass { - void (*bell)(VteTerminal* terminal); - - /* Padding for future expansion. */ -- gpointer padding[16]; -+ gpointer padding[15]; - - VteTerminalClassPrivate *priv; - }; -diff -rupN vte-0.41.90/src/vte.cc vte-0.41.90-patched/src/vte.cc ---- vte-0.41.90/src/vte.cc 2015-08-20 14:27:19.000000000 +0200 -+++ vte-0.41.90-patched/src/vte.cc 2015-09-15 19:32:38.601546927 +0200 -@@ -8898,6 +8898,9 @@ vte_terminal_finalize(GObject *object) - - remove_update_timeout (terminal); - -+ g_free (terminal->pvt->notification_summary); -+ g_free (terminal->pvt->notification_body); -+ - /* discard title updates */ - g_free(terminal->pvt->window_title); - g_free(terminal->pvt->window_title_changed); -@@ -10630,6 +10633,7 @@ vte_terminal_class_init(VteTerminalClass - klass->child_exited = NULL; - klass->encoding_changed = NULL; - klass->char_size_changed = NULL; -+ klass->notification_received = NULL; - klass->window_title_changed = NULL; - klass->icon_title_changed = NULL; - klass->selection_changed = NULL; -@@ -10703,6 +10707,25 @@ vte_terminal_class_init(VteTerminalClass - G_TYPE_NONE, - 1, G_TYPE_INT); - -+ /** -+ * VteTerminal::notification-received: -+ * @vteterminal: the object which received the signal -+ * @summary: The summary -+ * @body: (allow-none): Extra optional text -+ * -+ * Emitted when a process running in the terminal wants to -+ * send a notification to the desktop environment. -+ */ -+ g_signal_new(I_("notification-received"), -+ G_OBJECT_CLASS_TYPE(klass), -+ G_SIGNAL_RUN_LAST, -+ G_STRUCT_OFFSET(VteTerminalClass, notification_received), -+ NULL, -+ NULL, -+ _vte_marshal_VOID__STRING_STRING, -+ G_TYPE_NONE, -+ 2, G_TYPE_STRING, G_TYPE_STRING); -+ - /** - * VteTerminal::window-title-changed: - * @vteterminal: the object which received the signal -@@ -12720,6 +12743,16 @@ need_processing (VteTerminal *terminal) - return _vte_incoming_chunks_length (terminal->pvt->incoming) != 0; - } - -+static void -+vte_terminal_emit_notification_received (VteTerminal *terminal) -+{ -+ _vte_debug_print (VTE_DEBUG_SIGNALS, -+ "Emitting `notification-received'.\n"); -+ g_signal_emit_by_name (terminal, "notification-received", -+ terminal->pvt->notification_summary, -+ terminal->pvt->notification_body); -+} -+ - /* Emit an "icon-title-changed" signal. */ - static void - vte_terminal_emit_icon_title_changed(VteTerminal *terminal) -@@ -12767,6 +12800,11 @@ vte_terminal_emit_pending_signals(VteTer - - vte_terminal_emit_adjustment_changed (terminal); - -+ if (terminal->pvt->notification_received) { -+ vte_terminal_emit_notification_received (terminal); -+ terminal->pvt->notification_received = FALSE; -+ } -+ - if (terminal->pvt->window_title_changed) { - g_free (terminal->pvt->window_title); - terminal->pvt->window_title = terminal->pvt->window_title_changed; -diff -rupN vte-0.41.90/src/vte.sh vte-0.41.90-patched/src/vte.sh ---- vte-0.41.90/src/vte.sh 2015-08-20 14:26:53.000000000 +0200 -+++ vte-0.41.90-patched/src/vte.sh 2015-09-15 19:37:40.379655627 +0200 -@@ -50,9 +50,11 @@ __vte_osc7 () { - } - - __vte_prompt_command() { -+ local command=$(HISTTIMEFORMAT= history 1 | sed 's/^ *[0-9]\+ *//') -+ command="${command//;/ }" - local pwd='~' - [ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/} -- printf "\033]0;%s@%s:%s\007%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" -+ printf "\033]777;notify;Command completed;%s\007\033]0;%s@%s:%s\007%s" "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)" - } - - case "$TERM" in -diff -rupN vte-0.41.90/src/vteinternal.hh vte-0.41.90-patched/src/vteinternal.hh ---- vte-0.41.90/src/vteinternal.hh 2015-08-20 14:26:53.000000000 +0200 -+++ vte-0.41.90-patched/src/vteinternal.hh 2015-09-15 19:43:58.858195797 +0200 -@@ -367,6 +367,11 @@ public: - gboolean cursor_moved_pending; - gboolean contents_changed_pending; - -+ /* desktop notification */ -+ gboolean notification_received; -+ gchar *notification_summary; -+ gchar *notification_body; -+ - /* window name changes */ - gchar *window_title; - gchar *window_title_changed; -diff -rupN vte-0.41.90/src/vteseq-n.gperf vte-0.41.90-patched/src/vteseq-n.gperf ---- vte-0.41.90/src/vteseq-n.gperf 2015-08-20 14:26:53.000000000 +0200 -+++ vte-0.41.90-patched/src/vteseq-n.gperf 2015-09-15 19:34:10.725313524 +0200 -@@ -168,3 +168,4 @@ struct vteseq_n_struct { - #"reset-mouse-cursor-foreground-color", VTE_SEQUENCE_HANDLER_NULL - "set-current-directory-uri", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_current_directory_uri) - "set-current-file-uri", VTE_SEQUENCE_HANDLER(vte_sequence_handler_set_current_file_uri) -+"send-notification", VTE_SEQUENCE_HANDLER(vte_sequence_handler_send_notification) -diff -rupN vte-0.41.90/src/vteseq.cc vte-0.41.90-patched/src/vteseq.cc ---- vte-0.41.90/src/vteseq.cc 2015-08-20 14:26:53.000000000 +0200 -+++ vte-0.41.90-patched/src/vteseq.cc 2015-09-15 20:52:23.771616988 +0200 -@@ -2227,6 +2227,97 @@ vte_sequence_handler_return_terminal_id - vte_sequence_handler_send_primary_device_attributes (terminal, params); - } - -+static void -+vte_sequence_handler_send_notification (VteTerminal *terminal, GValueArray *params) -+{ -+ GValue *value; -+ const char *end; -+ char *option = NULL; -+ char *str = NULL; -+ char *p, *validated; -+ -+ g_clear_pointer (&terminal->pvt->notification_summary, g_free); -+ g_clear_pointer (&terminal->pvt->notification_body, g_free); -+ -+ value = g_value_array_get_nth (params, 0); -+ if (value == NULL) { -+ goto out; -+ } -+ -+ if (G_VALUE_HOLDS_STRING (value)) { -+ option = g_value_dup_string (value); -+ } else if (G_VALUE_HOLDS_POINTER (value)) { -+ option = vte_ucs4_to_utf8 (terminal, (const guchar *)g_value_get_pointer (value)); -+ } else { -+ goto out; -+ } -+ -+ if (g_strcmp0 (option, "notify") != 0) { -+ goto out; -+ } -+ -+ value = g_value_array_get_nth (params, 1); -+ if (value == NULL) { -+ goto out; -+ } -+ -+ if (G_VALUE_HOLDS_STRING (value)) { -+ str = g_value_dup_string (value); -+ } else if (G_VALUE_HOLDS_POINTER (value)) { -+ str = vte_ucs4_to_utf8 (terminal, (const guchar *)g_value_get_pointer (value)); -+ } else { -+ goto out; -+ } -+ -+ g_utf8_validate (str, strlen (str), &end); -+ validated = g_strndup (str, end - str); -+ -+ /* No control characters allowed. */ -+ for (p = validated; *p != '\0'; p++) { -+ if ((*p & 0x1f) == *p) { -+ *p = ' '; -+ } -+ } -+ -+ terminal->pvt->notification_summary = validated; -+ g_free (str); -+ -+ terminal->pvt->notification_received = TRUE; -+ if (params->n_values == 2) { -+ goto out; -+ } -+ -+ value = g_value_array_get_nth (params, 2); -+ if (value == NULL) { -+ goto out; -+ } -+ -+ if (G_VALUE_HOLDS_STRING (value)) { -+ str = g_value_dup_string (value); -+ } else if (G_VALUE_HOLDS_POINTER (value)) { -+ str = vte_ucs4_to_utf8 (terminal, (const guchar *)g_value_get_pointer (value)); -+ } else { -+ goto out; -+ } -+ -+ g_utf8_validate (str, strlen (str), &end); -+ validated = g_strndup (str, end - str); -+ -+ /* No control characters allowed. */ -+ for (p = validated; *p != '\0'; p++) { -+ if ((*p & 0x1f) == *p) { -+ *p = ' '; -+ } -+ } -+ -+ terminal->pvt->notification_body = validated; -+ g_free (str); -+ -+ out: -+ g_free (option); -+} -+ -+ - /* Send secondary device attributes. */ - static void - vte_sequence_handler_send_secondary_device_attributes (VteTerminal *terminal, GValueArray *params) |