diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 59ad6b5..e86ce01 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -1,4 +1,4 @@ -From 0728f06f528c1ba77a8671c529e44fbabd9c8980 Mon Sep 17 00:00:00 2001 +From 8d4a539a20142a3944e12f029ded76a27749296c Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 01/10] Add sequences and signals for desktop notification @@ -36,10 +36,10 @@ index 241128c3ccfe..4412cf3d5f5c 100644 VOID:STRING,UINT VOID:UINT,UINT diff --git a/src/vte.cc b/src/vte.cc -index c33b27c45023..01c7dd7eebc4 100644 +index 2614e5b4d20f..ac54d8791ba2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10135,6 +10135,15 @@ Terminal::emit_pending_signals() +@@ -10143,6 +10143,15 @@ Terminal::emit_pending_signals() emit_adjustment_changed(); @@ -72,7 +72,7 @@ index d5e96535a867..71c4c66cc4ee 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index f7a65f72b68e..30e0af0f8015 100644 +index 41de14ba1019..09a18439277f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -934,6 +934,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -206,10 +206,10 @@ index ba9a2df6b9c4..c765b0bfb1f4 100644 default: break; -- -2.25.4 +2.29.2 -From 4c3bce7d70e208bee0f36d64a540ade9975c3ce7 Mon Sep 17 00:00:00 2001 +From e75a6e2b9b4a1789ab7c2c1572e13c38dc73daf5 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 29 Jan 2015 13:09:17 +0100 Subject: [PATCH 02/10] vte.sh: Emit OSC 777 from PROMPT_COMMAND @@ -242,10 +242,10 @@ index a12e254b6cba..f7c4fdeff30b 100644 } -- -2.25.4 +2.29.2 -From 5171a84e95ad20048dcb1683c149711430002149 Mon Sep 17 00:00:00 2001 +From d726c0779babba159dc01a1dd20c0a6678dbd4dc Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Thu, 22 Jan 2015 16:37:10 +0100 Subject: [PATCH 03/10] Test the notification-received signal @@ -281,10 +281,10 @@ index fc26c2b0dfc3..634b8ddeeb91 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index d8bfe9e13826..e95f58cd3bac 100644 +index 6453ef8516f9..65521e1f4177 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1851,6 +1851,14 @@ window_window_title_changed_cb(VteTerminal* terminal, +@@ -1862,6 +1862,14 @@ window_window_title_changed_cb(VteTerminal* terminal, vte_terminal_get_window_title(window->terminal)); } @@ -299,7 +299,7 @@ index d8bfe9e13826..e95f58cd3bac 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2086,6 +2094,8 @@ vteapp_window_constructed(GObject *object) +@@ -2097,6 +2105,8 @@ vteapp_window_constructed(GObject *object) if (options.object_notifications) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); @@ -309,10 +309,10 @@ index d8bfe9e13826..e95f58cd3bac 100644 if (options.no_double_buffer) { G_GNUC_BEGIN_IGNORE_DEPRECATIONS; -- -2.25.4 +2.29.2 -From ed262358646832779ee0eb5afa0a8a7a6c1c2adf Mon Sep 17 00:00:00 2001 +From f3ec33fc7a644aa9a8d640af16e8ef87a7db5db7 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:53:54 +0200 Subject: [PATCH 04/10] Add a property to configure the scroll speed @@ -343,10 +343,10 @@ index c222e7fdff0b..6da5eff30715 100644 vte_terminal_get_scrollback_lines vte_terminal_set_font diff --git a/src/vte.cc b/src/vte.cc -index 01c7dd7eebc4..af73288b9f20 100644 +index ac54d8791ba2..68fc4bf8f448 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -9334,6 +9334,7 @@ vte_cairo_get_clip_region (cairo_t *cr) +@@ -9342,6 +9342,7 @@ vte_cairo_get_clip_region (cairo_t *cr) bool Terminal::widget_mouse_scroll(MouseEvent const& event) { @@ -354,7 +354,7 @@ index 01c7dd7eebc4..af73288b9f20 100644 gdouble v; gint cnt, i; int button; -@@ -9390,7 +9391,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) +@@ -9398,7 +9399,13 @@ Terminal::widget_mouse_scroll(MouseEvent const& event) return true; } @@ -369,7 +369,7 @@ index 01c7dd7eebc4..af73288b9f20 100644 _vte_debug_print(VTE_DEBUG_EVENTS, "Scroll speed is %d lines per non-smooth scroll unit\n", (int) v); -@@ -9693,6 +9700,16 @@ Terminal::decscusr_cursor_shape() const noexcept +@@ -9701,6 +9708,16 @@ Terminal::decscusr_cursor_shape() const noexcept } } @@ -402,7 +402,7 @@ index 71c4c66cc4ee..203c77e08c57 100644 _VTE_PUBLIC void vte_terminal_set_scrollback_lines(VteTerminal *terminal, diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index 30e0af0f8015..bf88b9481981 100644 +index 09a18439277f..934e0ab2bd37 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -712,6 +712,9 @@ try @@ -447,7 +447,7 @@ index 30e0af0f8015..bf88b9481981 100644 /** * VteTerminal:scrollback-lines: * -@@ -5324,6 +5345,30 @@ catch (...) +@@ -5323,6 +5344,30 @@ catch (...) return -1; } @@ -511,10 +511,10 @@ index 7608eecc38d9..79ea9e7f0da0 100644 bool set_scroll_on_keystroke(bool scroll); bool set_scroll_on_output(bool scroll); -- -2.25.4 +2.29.2 -From 73e7009c342747fbb3bdbef322811e09467dab9b Mon Sep 17 00:00:00 2001 +From 9538e23477d7e99909961f7ea5868f9c19c043e1 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 13 May 2016 17:54:57 +0200 Subject: [PATCH 05/10] Test the scroll-speed property @@ -555,7 +555,7 @@ index 634b8ddeeb91..c984b868246d 100644 "Specify the number of scrollback-lines", null }, { "transparent", 'T', 0, OptionArg.INT, ref transparency_percent, diff --git a/src/app/app.cc b/src/app/app.cc -index e95f58cd3bac..52893c87414a 100644 +index 65521e1f4177..28e934d9d9c0 100644 --- a/src/app/app.cc +++ b/src/app/app.cc @@ -108,6 +108,7 @@ public: @@ -566,7 +566,7 @@ index e95f58cd3bac..52893c87414a 100644 VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM}; VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK}; VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS}; -@@ -569,6 +570,8 @@ public: +@@ -580,6 +581,8 @@ public: "Reverse foreground/background colors", nullptr }, { "require-systemd-scope", 0, 0, G_OPTION_ARG_NONE, &require_systemd_scope, "Require use of a systemd user scope", nullptr }, @@ -575,7 +575,7 @@ index e95f58cd3bac..52893c87414a 100644 { "scrollback-lines", 'n', 0, G_OPTION_ARG_INT, &scrollback_lines, "Specify the number of scrollback-lines (-1 for infinite)", nullptr }, { "transparent", 'T', 0, G_OPTION_ARG_INT, &transparency_percent, -@@ -2127,6 +2130,7 @@ vteapp_window_constructed(GObject *object) +@@ -2138,6 +2141,7 @@ vteapp_window_constructed(GObject *object) vte_terminal_set_rewrap_on_resize(window->terminal, !options.no_rewrap); vte_terminal_set_scroll_on_output(window->terminal, false); vte_terminal_set_scroll_on_keystroke(window->terminal, true); @@ -584,10 +584,10 @@ index e95f58cd3bac..52893c87414a 100644 vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode); -- -2.25.4 +2.29.2 -From 2fe27cbe7cbb120e9055284c9e7e34423e5add49 Mon Sep 17 00:00:00 2001 +From 8e616fea1e377e03d5f3cbac0786df5e76da896d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 7 Jan 2015 16:01:00 +0100 Subject: [PATCH 06/10] Support preexec notifications from an interactive shell @@ -616,10 +616,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 35 insertions(+), 2 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index af73288b9f20..d77d27967b50 100644 +index 68fc4bf8f448..09068deebdf2 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10161,6 +10161,13 @@ Terminal::emit_pending_signals() +@@ -10169,6 +10169,13 @@ Terminal::emit_pending_signals() m_notification_received = false; } @@ -663,7 +663,7 @@ index 203c77e08c57..5668ac7d71df 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index bf88b9481981..df247f27c038 100644 +index 934e0ab2bd37..0bba24ee534f 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -739,10 +739,10 @@ index c765b0bfb1f4..ad5935063bd9 100644 bool -- -2.25.4 +2.29.2 -From 62b4dec7a7493f531de60ee814596176f3b9c082 Mon Sep 17 00:00:00 2001 +From c7c410786da41bf9bbcdf8ca1be21dcf0d89637d Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Fri, 20 Apr 2018 18:21:53 +0200 Subject: [PATCH 07/10] Test the shell-preexec signal @@ -779,10 +779,10 @@ index c984b868246d..83af686be106 100644 class App : Gtk.Application diff --git a/src/app/app.cc b/src/app/app.cc -index 52893c87414a..3ef597e97365 100644 +index 28e934d9d9c0..c9f7b5637d16 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -795,7 +795,7 @@ index 52893c87414a..3ef597e97365 100644 static void window_lower_window_cb(VteTerminal* terminal, VteappWindow* window) -@@ -2098,6 +2104,7 @@ vteapp_window_constructed(GObject *object) +@@ -2109,6 +2115,7 @@ vteapp_window_constructed(GObject *object) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); @@ -804,10 +804,10 @@ index 52893c87414a..3ef597e97365 100644 /* Settings */ if (options.no_double_buffer) { -- -2.25.4 +2.29.2 -From ce908501de9d32ab9d3e0cc600058e104bec2130 Mon Sep 17 00:00:00 2001 +From 034f0a8ae047af6d6a2ee9c443b6686a4eff3018 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:20:30 +0200 Subject: [PATCH 08/10] Support precmd notifications from an interactive shell @@ -836,10 +836,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711060 7 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/vte.cc b/src/vte.cc -index d77d27967b50..54654c8589ab 100644 +index 09068deebdf2..6d3d3c5a2854 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10168,6 +10168,13 @@ Terminal::emit_pending_signals() +@@ -10176,6 +10176,13 @@ Terminal::emit_pending_signals() m_shell_preexec = FALSE; } @@ -884,7 +884,7 @@ index 5668ac7d71df..cbd2a77f9f29 100644 VteTerminalClassPrivate *priv; }; diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index df247f27c038..afccd6d85c65 100644 +index 0bba24ee534f..4e0bc3a68464 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -941,6 +941,7 @@ vte_terminal_class_init(VteTerminalClass *klass) @@ -959,10 +959,10 @@ index ad5935063bd9..4b66681d713c 100644 } } -- -2.25.4 +2.29.2 -From c57e30715838cb9d6eb0d4390867746bea0c42d5 Mon Sep 17 00:00:00 2001 +From 6083ed32c023a7a24f4b4856147a0970d59f9a35 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Wed, 2 May 2018 17:30:48 +0200 Subject: [PATCH 09/10] Test the shell-precmd signal @@ -999,10 +999,10 @@ index 83af686be106..300384f5c74b 100644 { print("[shell] executing command\n"); diff --git a/src/app/app.cc b/src/app/app.cc -index 3ef597e97365..e1b10ca43b2c 100644 +index c9f7b5637d16..b679bc0bff50 100644 --- a/src/app/app.cc +++ b/src/app/app.cc -@@ -1862,6 +1862,12 @@ notification_received_cb(VteTerminal *terminal, +@@ -1873,6 +1873,12 @@ notification_received_cb(VteTerminal *terminal, g_print("[%s]: %s\n", summary, body); } @@ -1015,7 +1015,7 @@ index 3ef597e97365..e1b10ca43b2c 100644 static void shell_preexec_cb(VteTerminal *terminal) { -@@ -2104,6 +2110,7 @@ vteapp_window_constructed(GObject *object) +@@ -2115,6 +2121,7 @@ vteapp_window_constructed(GObject *object) g_signal_connect(window->terminal, "notify", G_CALLBACK(window_notify_cb), window); g_signal_connect(window->terminal, "notification-received", G_CALLBACK(notification_received_cb), NULL); @@ -1024,16 +1024,22 @@ index 3ef597e97365..e1b10ca43b2c 100644 /* Settings */ -- -2.25.4 +2.29.2 -From 3e049907ff0981ba235df9b97b56828cb814fb76 Mon Sep 17 00:00:00 2001 +From b0a81273d4ff929afa4e37750273980e70017c77 Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Mon, 10 Jun 2019 20:30:18 +0200 Subject: [PATCH 10/10] Support tracking the active container inside the terminal Add sequences + + OSC 777 ; container ; push ; NAME ; RUNTIME ; UID BEL + OSC 777 ; container ; push ; NAME ; RUNTIME ; UID ST + OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID BEL + OSC 777 ; container ; pop ; NAME ; RUNTIME ; UID ST + OSC 777 ; container ; push ; NAME ; RUNTIME BEL OSC 777 ; container ; push ; NAME ; RUNTIME ST OSC 777 ; container ; pop ; NAME ; RUNTIME BEL @@ -1042,7 +1048,9 @@ Add sequences that let container tools notify the terminal emulator when entering and leaving a container environment. The RUNTIME argument namespaces the NAME and identifies the container tooling being used. eg., docker, -flatpak, podman, toolbox, etc.. +flatpak, podman, toolbox, etc.. The UID argument is the real UID of the +container tools. Only those containers that are used with the same real +UID as the VTE process are tracked. The OSC 777 escape sequence is taken from Enlightenment's Terminology: https://phab.enlightenment.org/T1765 @@ -1053,18 +1061,18 @@ agreed upon across multiple different terminal emulators [1]. [1] https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17 --- src/vte.cc | 9 +++++ - src/vte/vteterminal.h | 4 +++ - src/vtegtk.cc | 77 +++++++++++++++++++++++++++++++++++++++++++ - src/vtegtk.hh | 2 ++ - src/vteinternal.hh | 16 +++++++++ - src/vteseq.cc | 31 +++++++++++++++++ - 6 files changed, 139 insertions(+) + src/vte/vteterminal.h | 4 ++ + src/vtegtk.cc | 77 ++++++++++++++++++++++++++++++++++++++ + src/vtegtk.hh | 2 + + src/vteinternal.hh | 16 ++++++++ + src/vteseq.cc | 86 +++++++++++++++++++++++++++++++++++++++++++ + 6 files changed, 194 insertions(+) diff --git a/src/vte.cc b/src/vte.cc -index 54654c8589ab..b5f1258bbd99 100644 +index 6d3d3c5a2854..74db14f593dd 100644 --- a/src/vte.cc +++ b/src/vte.cc -@@ -10189,6 +10189,15 @@ Terminal::emit_pending_signals() +@@ -10197,6 +10197,15 @@ Terminal::emit_pending_signals() m_window_title_changed = false; } @@ -1096,7 +1104,7 @@ index cbd2a77f9f29..15aa421a0c68 100644 _VTE_PUBLIC const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_CXX_NOEXCEPT _VTE_GNUC_NONNULL(1); diff --git a/src/vtegtk.cc b/src/vtegtk.cc -index afccd6d85c65..242d6d979ddc 100644 +index 4e0bc3a68464..2e6859798c42 100644 --- a/src/vtegtk.cc +++ b/src/vtegtk.cc @@ -664,6 +664,12 @@ try @@ -1140,7 +1148,7 @@ index afccd6d85c65..242d6d979ddc 100644 /** * VteTerminal:current-directory-uri: * -@@ -4531,6 +4558,56 @@ catch (...) +@@ -4530,6 +4557,56 @@ catch (...) return -1; } @@ -1252,10 +1260,25 @@ index 18ffeaf3a270..f6b98f670ad5 100644 bool m_notification_received{false}; std::string m_notification_summary; diff --git a/src/vteseq.cc b/src/vteseq.cc -index 4b66681d713c..6e7cb8741696 100644 +index 4b66681d713c..4240896b95e8 100644 --- a/src/vteseq.cc +++ b/src/vteseq.cc -@@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, +@@ -20,10 +20,14 @@ + + #include "config.h" + ++#include ++ + #include + #include + #include + #include ++#include ++#include + #ifdef HAVE_SYS_SYSLIMITS_H + #include + #endif +@@ -1385,6 +1389,88 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq, if (token == endtoken) return; @@ -1269,10 +1292,41 @@ index 4b66681d713c..6e7cb8741696 100644 + ++token; + + if (sub_command == "pop") { -+ if (!m_containers.empty()) { -+ m_containers.pop(); -+ m_containers_changed = true; ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) ++ return; ++ ++ ++token; ++ ++ if (token == endtoken) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_containers_changed = true; ++ } ++ ++ return; + } ++ ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ if (!m_containers.empty()) { ++ m_containers.pop(); ++ m_containers_changed = true; ++ } ++ ++ return; ++ } ++ ++ return; + } else if (sub_command == "push") { + if (token == endtoken) + return; @@ -1284,15 +1338,35 @@ index 4b66681d713c..6e7cb8741696 100644 + return; + + const std::string runtime = *token; ++ ++token; + -+ m_containers.emplace(name, runtime); -+ m_containers_changed = true; ++ if (token == endtoken) { ++ m_containers.emplace(name, runtime); ++ m_containers_changed = true; ++ return; ++ } ++ ++ const std::string uid_token = *token; ++ ++token; ++ ++ const uid_t uid = getuid(); ++ const std::string uid_str = std::to_string(uid); ++ ++ if (uid_token == uid_str) { ++ m_containers.emplace(name, runtime); ++ m_containers_changed = true; ++ return; ++ } ++ ++ return; + } ++ ++ return; + } + if (*token == "notify") { ++token; -- -2.25.4 +2.29.2 diff --git a/vte291.spec b/vte291.spec index db1ca95..3fb5470 100644 --- a/vte291.spec +++ b/vte291.spec @@ -11,7 +11,7 @@ Name: vte291 Version: 0.62.1 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Terminal emulator library License: LGPLv2+ @@ -120,6 +120,9 @@ sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build %{_sysconfdir}/profile.d/vte.sh %changelog +* Wed Dec 16 2020 Debarshi Ray - 0.62.1-3 +- Accommodate 'sudo toolbox' when tracking the active container + * Tue Nov 03 2020 Jeff Law - 0.62.1-2 - Fix bogus volatile caught by gcc-11