Compare commits

...
Sign in to create a new pull request.

13 commits

Author SHA1 Message Date
Debarshi Ray
ffd1b3661d Update to 0.60.4 2021-05-07 20:23:30 +02:00
Kalev Lember
37daa17020 Update to 0.60.3 2020-06-01 20:31:07 +02:00
Kalev Lember
4aaef00904 Update to 0.60.2 2020-04-27 10:52:16 +02:00
Kalev Lember
8da41fea60 Fix flatpak module build 2020-04-06 23:50:21 +02:00
Debarshi Ray
313629ab22 Improve legibility when using colours from the system theme
https://gitlab.gnome.org/GNOME/gtk/-/issues/2524
https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1535
https://gitlab.gnome.org/GNOME/vte/-/issues/226
2020-04-06 16:55:09 +02:00
Kalev Lember
579d3d543f Update to 0.60.1 2020-03-31 18:51:56 +02:00
Kalev Lember
86244a9599 Move vte-urlencode-cwd to vte-profile subpackage
https://bugzilla.redhat.com/show_bug.cgi?id=1815769
2020-03-21 18:25:48 +01:00
Debarshi Ray
c2f2db14c1 Update to 0.60.0 2020-03-06 15:07:59 +01:00
Debarshi Ray
e676ccec83 Replace C1 controls with C0 to emit OSC 777 from PS0
C1 controls are supported by fewer terminals, and using them here
causes a problem in Alacritty (and presumably quite a few others) if
it's launched from a VTE-based terminal. See:
https://github.com/jwilm/alacritty/issues/3105.

Support for C1 controls might also get removed from VTE itself. See:
https://gitlab.gnome.org/GNOME/vte/issues/209.

Note that there was a typo in the commit message of the patch that
introduced support for preeexec notifications from an interactive
shell. While it was correct in saying that it's using C1 controls,
because C0 was causing spurious characters to show up, the C0 example
was wrongly using C1 controls.

https://bugzilla.redhat.com/show_bug.cgi?id=1783802
2020-03-02 14:58:47 +01:00
Debarshi Ray
e3250069b7 Update to 0.59.92 2020-03-02 13:58:49 +01:00
Debarshi Ray
60928508f2 Update to 0.59.91
- Rebase downstream patches
2020-02-20 16:44:38 +01:00
Debarshi Ray
46e17d738a Update the GLib and GTK requirements
No need to issue a build just for this.
2020-02-20 16:44:37 +01:00
Debarshi Ray
8beb9e4747 Update to 0.59.0
- Rebase downstream patches
2020-02-19 17:01:41 +01:00
4 changed files with 364 additions and 161 deletions

8
.gitignore vendored
View file

@ -59,3 +59,11 @@
/vte-0.58.1.tar.xz
/vte-0.58.2.tar.xz
/vte-0.58.3.tar.xz
/vte-0.59.0.tar.xz
/vte-0.59.91.tar.xz
/vte-0.59.92.tar.xz
/vte-0.60.0.tar.xz
/vte-0.60.1.tar.xz
/vte-0.60.2.tar.xz
/vte-0.60.3.tar.xz
/vte-0.60.4.tar.xz

View file

@ -1 +1 @@
SHA512 (vte-0.58.3.tar.xz) = b0a38eb1cd7d923b0431af943dbdb89932833f9a2b0b8fc1fa9ee728c87418c1f5a424b2ccee661721093a80c569f3b41c721b0ba2302ba0c3a42d4c5e31aa9a
SHA512 (vte-0.60.4.tar.xz) = d6e63740a1d7b93934fcc4e88412869e34489ffccb25d67dd860ac19165e5df7a26a577d4e01c18df06c794bb2de9d7af7c5d8fa09ec0e6b72a65567c5f0cd1d

View file

@ -1,7 +1,7 @@
From 71e9d26cb88f0837ce1e2f3a4d4ac001aae5365e Mon Sep 17 00:00:00 2001
From a36779fe5cf5d91978c6d832c9f24c57a8ffd556 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 7 Jan 2015 16:01:00 +0100
Subject: [PATCH 01/10] Add sequences and signals for desktop notification
Subject: [PATCH 01/12] Add sequences and signals for desktop notification
Add sequences
OSC 777 ; notify ; SUMMARY ; BODY BEL
@ -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 e7815b4446d1..d5fc77536e54 100644
index 4a457af94e89..f0d167bcc654 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10696,6 +10696,15 @@ Terminal::emit_pending_signals()
@@ -10247,6 +10247,15 @@ Terminal::emit_pending_signals()
emit_adjustment_changed();
@ -56,7 +56,7 @@ index e7815b4446d1..d5fc77536e54 100644
if (m_window_title != m_window_title_pending) {
m_window_title.swap(m_window_title_pending);
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index 18ac0714244a..ea5c9313162a 100644
index 31012518362e..6ad0987d22ca 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -104,8 +104,10 @@ struct _VteTerminalClass {
@ -72,10 +72,10 @@ index 18ac0714244a..ea5c9313162a 100644
VteTerminalClassPrivate *priv;
};
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index c18a178af178..92ff9d07752d 100644
index aaf831a7f544..8c184da649cc 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -739,6 +739,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -738,6 +738,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
klass->child_exited = NULL;
klass->encoding_changed = NULL;
klass->char_size_changed = NULL;
@ -83,7 +83,7 @@ index c18a178af178..92ff9d07752d 100644
klass->window_title_changed = NULL;
klass->icon_title_changed = NULL;
klass->selection_changed = NULL;
@@ -820,6 +821,26 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -819,6 +820,26 @@ vte_terminal_class_init(VteTerminalClass *klass)
G_OBJECT_CLASS_TYPE(klass),
g_cclosure_marshal_VOID__INTv);
@ -111,7 +111,7 @@ index c18a178af178..92ff9d07752d 100644
* VteTerminal::window-title-changed:
* @vteterminal: the object which received the signal
diff --git a/src/vtegtk.hh b/src/vtegtk.hh
index e2515b3491ae..c175f6d7b06f 100644
index ae9fb08c310a..baf681e45b2c 100644
--- a/src/vtegtk.hh
+++ b/src/vtegtk.hh
@@ -56,6 +56,7 @@ enum {
@ -123,10 +123,10 @@ index e2515b3491ae..c175f6d7b06f 100644
LAST_SIGNAL
};
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index b0b6239e38e3..554a4506f49f 100644
index b37272ad09eb..166bd627f202 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -560,6 +560,11 @@ public:
@@ -721,6 +721,11 @@ public:
gboolean m_cursor_moved_pending;
gboolean m_contents_changed_pending;
@ -138,7 +138,7 @@ index b0b6239e38e3..554a4506f49f 100644
std::string m_window_title{};
std::string m_current_directory_uri{};
std::string m_current_file_uri{};
@@ -1313,6 +1318,9 @@ public:
@@ -1438,6 +1443,9 @@ public:
int osc) noexcept;
/* OSC handlers */
@ -149,10 +149,10 @@ index b0b6239e38e3..554a4506f49f 100644
vte::parser::StringTokeniser::const_iterator& token,
vte::parser::StringTokeniser::const_iterator const& endtoken,
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 9ee154778974..3688462478e5 100644
index 3004c0569657..4f1d8049726c 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -1398,6 +1398,33 @@ Terminal::delete_lines(vte::grid::row_t param)
@@ -1377,6 +1377,33 @@ Terminal::delete_lines(vte::grid::row_t param)
m_text_deleted_flag = TRUE;
}
@ -186,7 +186,7 @@ index 9ee154778974..3688462478e5 100644
bool
Terminal::get_osc_color_index(int osc,
int value,
@@ -6488,6 +6515,10 @@ Terminal::OSC(vte::parser::Sequence const& seq)
@@ -6464,6 +6491,10 @@ Terminal::OSC(vte::parser::Sequence const& seq)
reset_color(VTE_HIGHLIGHT_FG, VTE_COLOR_SOURCE_ESCAPE);
break;
@ -197,7 +197,7 @@ index 9ee154778974..3688462478e5 100644
case VTE_OSC_XTERM_SET_ICON_TITLE:
case VTE_OSC_XTERM_SET_XPROPERTY:
case VTE_OSC_XTERM_SET_COLOR_MOUSE_CURSOR_FG:
@@ -6528,7 +6559,6 @@ Terminal::OSC(vte::parser::Sequence const& seq)
@@ -6504,7 +6535,6 @@ Terminal::OSC(vte::parser::Sequence const& seq)
case VTE_OSC_URXVT_SET_FONT_BOLD_ITALIC:
case VTE_OSC_URXVT_VIEW_UP:
case VTE_OSC_URXVT_VIEW_DOWN:
@ -206,13 +206,13 @@ index 9ee154778974..3688462478e5 100644
default:
break;
--
2.20.1
2.30.2
From 92222d93d5a51a3bfa232b2b99c80303abbaa699 Mon Sep 17 00:00:00 2001
From cc68c0c87c4ba4ca19de08f35e9b5e990fb3ae83 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 29 Jan 2015 13:09:17 +0100
Subject: [PATCH 02/10] vte.sh: Emit OSC 777 from PROMPT_COMMAND
Subject: [PATCH 02/12] vte.sh: Emit OSC 777 from PROMPT_COMMAND
For some reason, the three consecutive backslashes break the parsing.
As Christian Persch suggested, replacing the double quotes with
@ -220,14 +220,14 @@ singles fixes it.
https://bugzilla.gnome.org/show_bug.cgi?id=711059
---
src/vte.sh | 4 +++-
src/vte.sh.in | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/vte.sh b/src/vte.sh
index c200493c34a6..ee010aa36505 100644
--- a/src/vte.sh
+++ b/src/vte.sh
@@ -50,10 +50,12 @@ __vte_osc7 () {
diff --git a/src/vte.sh.in b/src/vte.sh.in
index 8b3153da0f1a..d6769de82766 100644
--- a/src/vte.sh.in
+++ b/src/vte.sh.in
@@ -27,10 +27,12 @@ __vte_osc7 () {
}
__vte_prompt_command() {
@ -236,19 +236,19 @@ index c200493c34a6..ee010aa36505 100644
local pwd='~'
[ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/}
pwd="${pwd//[[:cntrl:]]}"
- printf "\033]0;%s@%s:%s\033\\%s" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
+ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
- printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${pwd}"
+ printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}"
__vte_osc7
}
case "$TERM" in
--
2.20.1
2.30.2
From a6802affd1e2d8e1869312221e4be55b2b458d28 Mon Sep 17 00:00:00 2001
From 19e24c06762c4e61249436f796b01c557084d269 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 22 Jan 2015 16:37:10 +0100
Subject: [PATCH 03/10] Test the notification-received signal
Subject: [PATCH 03/12] Test the notification-received signal
---
bindings/vala/app.vala | 7 +++++++
@ -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 d845b5ce26a4..90148baf34e3 100644
index 0c7eed5d18f1..6086c0a65db2 100644
--- a/src/app/app.cc
+++ b/src/app/app.cc
@@ -1679,6 +1679,14 @@ window_window_title_changed_cb(VteTerminal* terminal,
@@ -1639,6 +1639,14 @@ window_window_title_changed_cb(VteTerminal* terminal,
vte_terminal_get_window_title(window->terminal));
}
@ -299,23 +299,23 @@ index d845b5ce26a4..90148baf34e3 100644
static void
window_lower_window_cb(VteTerminal* terminal,
VteappWindow* window)
@@ -1907,6 +1915,8 @@ vteapp_window_constructed(GObject *object)
@@ -1871,6 +1879,8 @@ vteapp_window_constructed(GObject *object)
if (options.object_notifications)
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);
+
/* Settings */
if (options.no_double_buffer)
gtk_widget_set_double_buffered(GTK_WIDGET(window->terminal), false);
if (options.no_double_buffer) {
G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
--
2.20.1
2.30.2
From 0903623fab2a9d3b4653014e44a7dd717c162b7f Mon Sep 17 00:00:00 2001
From 664a2611da04a7be61d0d4d7aef7f5d4cf09744c Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 13 May 2016 17:53:54 +0200
Subject: [PATCH 04/10] Add a property to configure the scroll speed
Subject: [PATCH 04/12] Add a property to configure the scroll speed
By default, it is set to zero which gives the current behaviour of
moving the buffer by a function of the number of visible rows.
@ -331,10 +331,10 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1103380
6 files changed, 71 insertions(+), 1 deletion(-)
diff --git a/doc/reference/vte-sections.txt b/doc/reference/vte-sections.txt
index 8b67f28359a4..b6a5fcfc2779 100644
index 20067c88bae3..2cc8d70ca4f9 100644
--- a/doc/reference/vte-sections.txt
+++ b/doc/reference/vte-sections.txt
@@ -53,6 +53,7 @@ vte_terminal_get_cursor_blink_mode
@@ -52,6 +52,7 @@ vte_terminal_get_cursor_blink_mode
vte_terminal_set_cursor_blink_mode
vte_terminal_get_text_blink_mode
vte_terminal_set_text_blink_mode
@ -343,10 +343,10 @@ index 8b67f28359a4..b6a5fcfc2779 100644
vte_terminal_get_scrollback_lines
vte_terminal_set_font
diff --git a/src/vte.cc b/src/vte.cc
index d5fc77536e54..8ca4ca03bcfb 100644
index f0d167bcc654..813634fc5119 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -9901,6 +9901,7 @@ void
@@ -9449,6 +9449,7 @@ void
Terminal::widget_scroll(GdkEventScroll *event)
{
gdouble delta_x, delta_y;
@ -354,13 +354,13 @@ index d5fc77536e54..8ca4ca03bcfb 100644
gdouble v;
gint cnt, i;
int button;
@@ -9957,7 +9958,13 @@ Terminal::widget_scroll(GdkEventScroll *event)
@@ -9505,7 +9506,13 @@ Terminal::widget_scroll(GdkEventScroll *event)
return;
}
- v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment) / 10.));
- v = MAX (1., ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.));
+ if (m_scroll_speed == 0) {
+ scroll_speed = ceil (gtk_adjustment_get_page_increment (m_vadjustment) / 10.);
+ scroll_speed = ceil (gtk_adjustment_get_page_increment (m_vadjustment.get()) / 10.);
+ } else {
+ scroll_speed = m_scroll_speed;
+ }
@ -369,7 +369,7 @@ index d5fc77536e54..8ca4ca03bcfb 100644
_vte_debug_print(VTE_DEBUG_EVENTS,
"Scroll speed is %d lines per non-smooth scroll unit\n",
(int) v);
@@ -10254,6 +10261,16 @@ Terminal::decscusr_cursor_shape()
@@ -9802,6 +9809,16 @@ Terminal::decscusr_cursor_shape() const noexcept
}
}
@ -387,10 +387,10 @@ index d5fc77536e54..8ca4ca03bcfb 100644
Terminal::set_scrollback_lines(long lines)
{
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index ea5c9313162a..90e3e05153a3 100644
index 6ad0987d22ca..94febee1d494 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -291,6 +291,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal,
@@ -287,6 +287,10 @@ void vte_terminal_set_cursor_shape(VteTerminal *terminal,
_VTE_PUBLIC
VteCursorShape vte_terminal_get_cursor_shape(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
@ -402,10 +402,10 @@ index ea5c9313162a..90e3e05153a3 100644
_VTE_PUBLIC
void vte_terminal_set_scrollback_lines(VteTerminal *terminal,
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 92ff9d07752d..eb754969ac40 100644
index 8c184da649cc..25a2fc8a2358 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -523,6 +523,9 @@ vte_terminal_get_property (GObject *object,
@@ -528,6 +528,9 @@ vte_terminal_get_property (GObject *object,
case PROP_REWRAP_ON_RESIZE:
g_value_set_boolean (value, vte_terminal_get_rewrap_on_resize (terminal));
break;
@ -415,7 +415,7 @@ index 92ff9d07752d..eb754969ac40 100644
case PROP_SCROLLBACK_LINES:
g_value_set_uint (value, vte_terminal_get_scrollback_lines(terminal));
break;
@@ -630,6 +633,9 @@ vte_terminal_set_property (GObject *object,
@@ -635,6 +638,9 @@ vte_terminal_set_property (GObject *object,
case PROP_REWRAP_ON_RESIZE:
vte_terminal_set_rewrap_on_resize (terminal, g_value_get_boolean (value));
break;
@ -425,7 +425,7 @@ index 92ff9d07752d..eb754969ac40 100644
case PROP_SCROLLBACK_LINES:
vte_terminal_set_scrollback_lines (terminal, g_value_get_uint (value));
break;
@@ -1693,6 +1699,21 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -1708,6 +1714,21 @@ vte_terminal_class_init(VteTerminalClass *klass)
TRUE,
(GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY));
@ -447,7 +447,7 @@ index 92ff9d07752d..eb754969ac40 100644
/**
* VteTerminal:scrollback-lines:
*
@@ -4335,6 +4356,30 @@ vte_terminal_get_row_count(VteTerminal *terminal)
@@ -4434,6 +4455,30 @@ vte_terminal_get_row_count(VteTerminal *terminal)
return IMPL(terminal)->m_row_count;
}
@ -479,7 +479,7 @@ index 92ff9d07752d..eb754969ac40 100644
* vte_terminal_set_scrollback_lines:
* @terminal: a #VteTerminal
diff --git a/src/vtegtk.hh b/src/vtegtk.hh
index c175f6d7b06f..5541e8a4f875 100644
index baf681e45b2c..a9c256635948 100644
--- a/src/vtegtk.hh
+++ b/src/vtegtk.hh
@@ -88,6 +88,7 @@ enum {
@ -491,33 +491,33 @@ index c175f6d7b06f..5541e8a4f875 100644
PROP_SCROLL_ON_KEYSTROKE,
PROP_SCROLL_ON_OUTPUT,
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 554a4506f49f..1dd2467c9bc7 100644
index 166bd627f202..b4a97c05dba9 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -423,6 +423,7 @@ public:
@@ -499,6 +499,7 @@ public:
/* Scrolling options. */
gboolean m_scroll_on_output;
gboolean m_scroll_on_keystroke;
bool m_scroll_on_output{false};
bool m_scroll_on_keystroke{true};
+ guint m_scroll_speed;
vte::grid::row_t m_scrollback_lines;
vte::grid::row_t m_scrollback_lines{0};
/* Restricted scrolling */
@@ -1191,6 +1192,7 @@ public:
bool set_pty(VtePty *pty,
bool proces_remaining = true);
@@ -1316,6 +1317,7 @@ public:
bool set_input_enabled(bool enabled);
bool set_mouse_autohide(bool autohide);
bool set_rewrap_on_resize(bool rewrap);
+ bool set_scroll_speed(unsigned int scroll_speed);
bool set_scrollback_lines(long lines);
bool set_scroll_on_keystroke(bool scroll);
bool set_scroll_on_output(bool scroll);
--
2.20.1
2.30.2
From 09dfe4cb1a05299526646b030be90647a88e6a7b Mon Sep 17 00:00:00 2001
From 7aa92908e1d1d072a7b197f3f392a9ac9d2055a6 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 13 May 2016 17:54:57 +0200
Subject: [PATCH 05/10] Test the scroll-speed property
Subject: [PATCH 05/12] Test the scroll-speed property
https://bugzilla.redhat.com/show_bug.cgi?id=1103380
---
@ -555,10 +555,10 @@ 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 90148baf34e3..2636defdef8f 100644
index 6086c0a65db2..0c7a70bf6da5 100644
--- a/src/app/app.cc
+++ b/src/app/app.cc
@@ -95,6 +95,7 @@ public:
@@ -98,6 +98,7 @@ public:
int verbosity{0};
double cell_height_scale{1.0};
double cell_width_scale{1.0};
@ -566,16 +566,16 @@ index 90148baf34e3..2636defdef8f 100644
VteCursorBlinkMode cursor_blink_mode{VTE_CURSOR_BLINK_SYSTEM};
VteCursorShape cursor_shape{VTE_CURSOR_SHAPE_BLOCK};
VteTextBlinkMode text_blink_mode{VTE_TEXT_BLINK_ALWAYS};
@@ -411,6 +412,8 @@ public:
"Save terminal contents to file at exit", nullptr },
{ "reverse", 0, 0, G_OPTION_ARG_NONE, &reverse,
@@ -418,6 +419,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 },
+ { "scroll-speed", 0, 0, G_OPTION_ARG_INT, &scroll_speed,
+ "Specify the scroll speed", nullptr },
{ "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,
@@ -1947,6 +1950,7 @@ vteapp_window_constructed(GObject *object)
@@ -1912,6 +1915,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,13 +584,13 @@ index 90148baf34e3..2636defdef8f 100644
vte_terminal_set_text_blink_mode(window->terminal, options.text_blink_mode);
--
2.20.1
2.30.2
From be6f135af60af8b2699d507d5a74d8753d4a61cc Mon Sep 17 00:00:00 2001
From df00884e5108d8518da113aa7a849b6820437205 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 7 Jan 2015 16:01:00 +0100
Subject: [PATCH 06/10] Support preexec notifications from an interactive shell
Subject: [PATCH 06/12] Support preexec notifications from an interactive shell
Add sequences
OSC 777 ; preexec BEL
@ -603,15 +603,11 @@ Examples of such hooks are Bash's PS0 and Zsh's preexec.
The OSC 777 escape sequence is taken from Enlightenment's Terminology:
https://phab.enlightenment.org/T1765
Currently, using C0 controls to emit OSC 777 from PS0 (ie.,
PS0=$(printf "\u009D777;preexec\u009C")) causes spurious characters to
show up. C1 controls don't seem to suffer from this problem.
https://bugzilla.gnome.org/show_bug.cgi?id=711059
https://bugzilla.gnome.org/show_bug.cgi?id=711060
---
src/vte.cc | 7 +++++++
src/vte.sh | 2 +-
src/vte.sh.in | 2 +-
src/vte/vteterminal.h | 3 ++-
src/vtegtk.cc | 18 ++++++++++++++++++
src/vtegtk.hh | 1 +
@ -620,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 8ca4ca03bcfb..eb3cd6b33c7f 100644
index 813634fc5119..d902627b101e 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10722,6 +10722,13 @@ Terminal::emit_pending_signals()
@@ -10273,6 +10273,13 @@ Terminal::emit_pending_signals()
m_notification_received = false;
}
@ -637,21 +633,21 @@ index 8ca4ca03bcfb..eb3cd6b33c7f 100644
if (m_window_title_changed) {
if (m_window_title != m_window_title_pending) {
m_window_title.swap(m_window_title_pending);
diff --git a/src/vte.sh b/src/vte.sh
index ee010aa36505..ee424ce70521 100644
--- a/src/vte.sh
+++ b/src/vte.sh
@@ -60,7 +60,7 @@ __vte_prompt_command() {
diff --git a/src/vte.sh.in b/src/vte.sh.in
index d6769de82766..c7a3b07f9ea4 100644
--- a/src/vte.sh.in
+++ b/src/vte.sh.in
@@ -38,7 +38,7 @@ __vte_prompt_command() {
case "$TERM" in
xterm*|vte*)
- [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command"
+ [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\u009D777;preexec\u009C")
+ [ -n "$BASH_VERSION" ] && PROMPT_COMMAND="__vte_prompt_command" && PS0=$(printf "\033]777;preexec\033\\")
[ -n "$ZSH_VERSION" ] && precmd_functions+=(__vte_osc7)
;;
esac
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index 90e3e05153a3..3db163051077 100644
index 94febee1d494..2d757afbdcc0 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -105,9 +105,10 @@ struct _VteTerminalClass {
@ -667,10 +663,10 @@ index 90e3e05153a3..3db163051077 100644
VteTerminalClassPrivate *priv;
};
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index eb754969ac40..cc502bf495d8 100644
index 25a2fc8a2358..840f6dd54c53 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -746,6 +746,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
klass->encoding_changed = NULL;
klass->char_size_changed = NULL;
klass->notification_received = NULL;
@ -678,7 +674,7 @@ index eb754969ac40..cc502bf495d8 100644
klass->window_title_changed = NULL;
klass->icon_title_changed = NULL;
klass->selection_changed = NULL;
@@ -847,6 +848,23 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -846,6 +847,23 @@ vte_terminal_class_init(VteTerminalClass *klass)
G_TYPE_NONE,
2, G_TYPE_STRING, G_TYPE_STRING);
@ -703,7 +699,7 @@ index eb754969ac40..cc502bf495d8 100644
* VteTerminal::window-title-changed:
* @vteterminal: the object which received the signal
diff --git a/src/vtegtk.hh b/src/vtegtk.hh
index 5541e8a4f875..a4d9ac8ae1c5 100644
index a9c256635948..79c528ea8243 100644
--- a/src/vtegtk.hh
+++ b/src/vtegtk.hh
@@ -52,6 +52,7 @@ enum {
@ -715,10 +711,10 @@ index 5541e8a4f875..a4d9ac8ae1c5 100644
SIGNAL_TEXT_INSERTED,
SIGNAL_TEXT_MODIFIED,
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 1dd2467c9bc7..d2c49becaeae 100644
index b4a97c05dba9..8f90d0c44e41 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -566,6 +566,8 @@ public:
@@ -727,6 +727,8 @@ public:
std::string m_notification_summary;
std::string m_notification_body;
@ -728,10 +724,10 @@ index 1dd2467c9bc7..d2c49becaeae 100644
std::string m_current_directory_uri{};
std::string m_current_file_uri{};
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 3688462478e5..28de93f5b3af 100644
index 4f1d8049726c..f6e32800dd6f 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -1423,6 +1423,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq,
@@ -1402,6 +1402,10 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq,
m_notification_body = *token;
return;
}
@ -743,13 +739,13 @@ index 3688462478e5..28de93f5b3af 100644
bool
--
2.20.1
2.30.2
From e2b0e5ead4c1512bf06c887ad6d4c1af537fa353 Mon Sep 17 00:00:00 2001
From 3b594b057f6a8fe530aeb0cc515ac17f8d6d5f20 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 20 Apr 2018 18:21:53 +0200
Subject: [PATCH 07/10] Test the shell-preexec signal
Subject: [PATCH 07/12] Test the shell-preexec signal
https://bugzilla.gnome.org/show_bug.cgi?id=711059
https://bugzilla.gnome.org/show_bug.cgi?id=711060
@ -783,10 +779,10 @@ index c984b868246d..83af686be106 100644
class App : Gtk.Application
diff --git a/src/app/app.cc b/src/app/app.cc
index 2636defdef8f..2d0c48576643 100644
index 0c7a70bf6da5..2dece3ddb724 100644
--- a/src/app/app.cc
+++ b/src/app/app.cc
@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal,
@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal,
g_print("[%s]: %s\n", summary, body);
}
@ -799,22 +795,22 @@ index 2636defdef8f..2d0c48576643 100644
static void
window_lower_window_cb(VteTerminal* terminal,
VteappWindow* window)
@@ -1919,6 +1925,7 @@ vteapp_window_constructed(GObject *object)
@@ -1883,6 +1889,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);
+ g_signal_connect(window->terminal, "shell-preexec", G_CALLBACK(shell_preexec_cb), NULL);
/* Settings */
if (options.no_double_buffer)
if (options.no_double_buffer) {
--
2.20.1
2.30.2
From bbec4f9fe8d0387be88edf6ef2f16ef029adfd59 Mon Sep 17 00:00:00 2001
From 1e48536994e2cec378fed060a389c13ed3aa32fa Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 2 May 2018 17:20:30 +0200
Subject: [PATCH 08/10] Support precmd notifications from an interactive shell
Subject: [PATCH 08/12] Support precmd notifications from an interactive shell
Add sequences
OSC 777 ; precmd BEL
@ -831,7 +827,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=711059
https://bugzilla.gnome.org/show_bug.cgi?id=711060
---
src/vte.cc | 7 +++++++
src/vte.sh | 2 +-
src/vte.sh.in | 2 +-
src/vte/vteterminal.h | 3 ++-
src/vtegtk.cc | 18 ++++++++++++++++++
src/vtegtk.hh | 1 +
@ -840,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 eb3cd6b33c7f..d427f0995b2b 100644
index d902627b101e..b914f79ff363 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10729,6 +10729,13 @@ Terminal::emit_pending_signals()
@@ -10280,6 +10280,13 @@ Terminal::emit_pending_signals()
m_shell_preexec = FALSE;
}
@ -857,21 +853,21 @@ index eb3cd6b33c7f..d427f0995b2b 100644
if (m_window_title_changed) {
if (m_window_title != m_window_title_pending) {
m_window_title.swap(m_window_title_pending);
diff --git a/src/vte.sh b/src/vte.sh
index ee424ce70521..331bfec3d3ba 100644
--- a/src/vte.sh
+++ b/src/vte.sh
@@ -55,7 +55,7 @@ __vte_prompt_command() {
diff --git a/src/vte.sh.in b/src/vte.sh.in
index c7a3b07f9ea4..4cff7dd1fb71 100644
--- a/src/vte.sh.in
+++ b/src/vte.sh.in
@@ -32,7 +32,7 @@ __vte_prompt_command() {
local pwd='~'
[ "$PWD" != "$HOME" ] && pwd=${PWD/#$HOME\//\~\/}
pwd="${pwd//[[:cntrl:]]}"
- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\%s' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}" "$(__vte_osc7)"
- printf '\033]777;notify;Command completed;%s\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}"
+ printf '\033]777;notify;Command completed;%s\033\\\033]777;precmd\033\\\033]0;%s@%s:%s\033\\' "${command}" "${USER}" "${HOSTNAME%%.*}" "${pwd}"
__vte_osc7
}
case "$TERM" in
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index 3db163051077..8ef9e1dcdeb4 100644
index 2d757afbdcc0..a75ae7ee2640 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -105,10 +105,11 @@ struct _VteTerminalClass {
@ -888,10 +884,10 @@ index 3db163051077..8ef9e1dcdeb4 100644
VteTerminalClassPrivate *priv;
};
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index cc502bf495d8..b93c76d00296 100644
index 840f6dd54c53..3059bdeddc09 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -746,6 +746,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
klass->encoding_changed = NULL;
klass->char_size_changed = NULL;
klass->notification_received = NULL;
@ -899,7 +895,7 @@ index cc502bf495d8..b93c76d00296 100644
klass->shell_preexec = NULL;
klass->window_title_changed = NULL;
klass->icon_title_changed = NULL;
@@ -848,6 +849,23 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -847,6 +848,23 @@ vte_terminal_class_init(VteTerminalClass *klass)
G_TYPE_NONE,
2, G_TYPE_STRING, G_TYPE_STRING);
@ -924,7 +920,7 @@ index cc502bf495d8..b93c76d00296 100644
* VteTerminal::shell-preexec:
* @vteterminal: the object which received the signal
diff --git a/src/vtegtk.hh b/src/vtegtk.hh
index a4d9ac8ae1c5..3d46483e3a56 100644
index 79c528ea8243..534298ada75c 100644
--- a/src/vtegtk.hh
+++ b/src/vtegtk.hh
@@ -52,6 +52,7 @@ enum {
@ -936,10 +932,10 @@ index a4d9ac8ae1c5..3d46483e3a56 100644
SIGNAL_TEXT_DELETED,
SIGNAL_TEXT_INSERTED,
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index d2c49becaeae..8dd59f237d20 100644
index 8f90d0c44e41..174b28070db2 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -566,6 +566,7 @@ public:
@@ -727,6 +727,7 @@ public:
std::string m_notification_summary;
std::string m_notification_body;
@ -948,10 +944,10 @@ index d2c49becaeae..8dd59f237d20 100644
std::string m_window_title{};
diff --git a/src/vteseq.cc b/src/vteseq.cc
index 28de93f5b3af..c0bce6995093 100644
index f6e32800dd6f..981bf0bba306 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -1424,7 +1424,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq,
@@ -1403,7 +1403,9 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq,
return;
}
@ -963,13 +959,13 @@ index 28de93f5b3af..c0bce6995093 100644
}
}
--
2.20.1
2.30.2
From 4767996ace813a6d5c8e1278cb5accd6005cfca1 Mon Sep 17 00:00:00 2001
From c8b80018249aa23576f9fbb75b78205841c47f12 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 2 May 2018 17:30:48 +0200
Subject: [PATCH 09/10] Test the shell-precmd signal
Subject: [PATCH 09/12] Test the shell-precmd signal
https://bugzilla.gnome.org/show_bug.cgi?id=711059
https://bugzilla.gnome.org/show_bug.cgi?id=711060
@ -1003,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 2d0c48576643..e3ec0026e1dc 100644
index 2dece3ddb724..960aadc3cdc8 100644
--- a/src/app/app.cc
+++ b/src/app/app.cc
@@ -1690,6 +1690,12 @@ notification_received_cb(VteTerminal *terminal,
@@ -1650,6 +1650,12 @@ notification_received_cb(VteTerminal *terminal,
g_print("[%s]: %s\n", summary, body);
}
@ -1019,7 +1015,7 @@ index 2d0c48576643..e3ec0026e1dc 100644
static void
shell_preexec_cb(VteTerminal *terminal)
{
@@ -1925,6 +1931,7 @@ vteapp_window_constructed(GObject *object)
@@ -1889,6 +1895,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);
@ -1028,13 +1024,13 @@ index 2d0c48576643..e3ec0026e1dc 100644
/* Settings */
--
2.20.1
2.30.2
From 1470d44065d81a0d8e093b012489ba60333e8d65 Mon Sep 17 00:00:00 2001
From dc936676792d001ab8070b3274bcf792592d73e5 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Mon, 10 Jun 2019 20:30:18 +0200
Subject: [PATCH 10/10] Support tracking the active container inside the
Subject: [PATCH 10/12] Support tracking the active container inside the
terminal
Add sequences
@ -1065,10 +1061,10 @@ agreed upon across multiple different terminal emulators [1].
6 files changed, 127 insertions(+)
diff --git a/src/vte.cc b/src/vte.cc
index d427f0995b2b..2a328a37022a 100644
index b914f79ff363..e65e33f31ceb 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10750,6 +10750,15 @@ Terminal::emit_pending_signals()
@@ -10301,6 +10301,15 @@ Terminal::emit_pending_signals()
m_window_title_changed = false;
}
@ -1085,10 +1081,10 @@ index d427f0995b2b..2a328a37022a 100644
if (m_current_directory_uri != m_current_directory_uri_pending) {
m_current_directory_uri.swap(m_current_directory_uri_pending);
diff --git a/src/vte/vteterminal.h b/src/vte/vteterminal.h
index 8ef9e1dcdeb4..a59a15a81766 100644
index a75ae7ee2640..53de9c737000 100644
--- a/src/vte/vteterminal.h
+++ b/src/vte/vteterminal.h
@@ -467,6 +467,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
@@ -458,6 +458,10 @@ glong vte_terminal_get_column_count(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
_VTE_PUBLIC
const char *vte_terminal_get_window_title(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
_VTE_PUBLIC
@ -1100,10 +1096,10 @@ index 8ef9e1dcdeb4..a59a15a81766 100644
_VTE_PUBLIC
const char *vte_terminal_get_current_file_uri(VteTerminal *terminal) _VTE_GNUC_NONNULL(1);
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index b93c76d00296..e0e50ae12907 100644
index 3059bdeddc09..53bc922fc6ed 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -478,6 +478,12 @@ vte_terminal_get_property (GObject *object,
@@ -483,6 +483,12 @@ vte_terminal_get_property (GObject *object,
case PROP_CURSOR_BLINK_MODE:
g_value_set_enum (value, vte_terminal_get_cursor_blink_mode (terminal));
break;
@ -1116,7 +1112,7 @@ index b93c76d00296..e0e50ae12907 100644
case PROP_CURRENT_DIRECTORY_URI:
g_value_set_string (value, vte_terminal_get_current_directory_uri (terminal));
break;
@@ -1812,6 +1818,27 @@ vte_terminal_class_init(VteTerminalClass *klass)
@@ -1827,6 +1833,27 @@ vte_terminal_class_init(VteTerminalClass *klass)
NULL,
(GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY));
@ -1144,7 +1140,7 @@ index b93c76d00296..e0e50ae12907 100644
/**
* VteTerminal:current-directory-uri:
*
@@ -3704,6 +3731,44 @@ vte_terminal_get_column_count(VteTerminal *terminal)
@@ -3811,6 +3838,44 @@ vte_terminal_get_column_count(VteTerminal *terminal)
return IMPL(terminal)->m_column_count;
}
@ -1190,7 +1186,7 @@ index b93c76d00296..e0e50ae12907 100644
* vte_terminal_get_current_directory_uri:
* @terminal: a #VteTerminal
diff --git a/src/vtegtk.hh b/src/vtegtk.hh
index 3d46483e3a56..24052b15f75c 100644
index 534298ada75c..66d2f1425fad 100644
--- a/src/vtegtk.hh
+++ b/src/vtegtk.hh
@@ -76,6 +76,8 @@ enum {
@ -1203,19 +1199,19 @@ index 3d46483e3a56..24052b15f75c 100644
PROP_CURRENT_FILE_URI,
PROP_DELETE_BINDING,
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 8dd59f237d20..be13f827a85c 100644
index 174b28070db2..3a773fccf206 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -41,6 +41,7 @@
@@ -61,6 +61,7 @@
#include <list>
#include <queue>
#include <optional>
+#include <stack>
#include <string>
#include <variant>
#include <vector>
@@ -118,6 +119,18 @@ typedef enum _VteCharacterReplacement {
VTE_CHARACTER_REPLACEMENT_BRITISH
@@ -110,6 +111,18 @@ typedef enum _VteCharacterReplacement {
VTE_CHARACTER_REPLACEMENT_LINE_DRAWING
} VteCharacterReplacement;
+struct VteContainer {
@ -1233,7 +1229,7 @@ index 8dd59f237d20..be13f827a85c 100644
typedef struct _VtePaletteColor {
struct {
vte::color::rgb color;
@@ -561,6 +574,9 @@ public:
@@ -722,6 +735,9 @@ public:
gboolean m_cursor_moved_pending;
gboolean m_contents_changed_pending;
@ -1244,10 +1240,10 @@ index 8dd59f237d20..be13f827a85c 100644
bool m_notification_received{false};
std::string m_notification_summary;
diff --git a/src/vteseq.cc b/src/vteseq.cc
index c0bce6995093..dd64310caaf7 100644
index 981bf0bba306..22f250a51499 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -1406,6 +1406,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq,
@@ -1385,6 +1385,37 @@ Terminal::handle_urxvt_extension(vte::parser::Sequence const& seq,
if (token == endtoken)
return;
@ -1286,5 +1282,154 @@ index c0bce6995093..dd64310caaf7 100644
++token;
--
2.20.1
2.30.2
From 3ef6f4e22870c5a572ada4ec0d462805b9a28a63 Mon Sep 17 00:00:00 2001
From: Jakub Steiner <jimmac@gmail.com>
Date: Thu, 2 Apr 2020 18:20:44 +0200
Subject: [PATCH 11/12] widget: Improve legibility when using colours from the
system theme
https://gitlab.gnome.org/GNOME/vte/-/issues/225
---
src/vtegtk.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 53bc922fc6ed..50b2c53644f2 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -1922,7 +1922,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
"VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n"
"padding: 1px 1px 1px 1px;\n"
"background-color: @theme_base_color;\n"
- "color: @theme_fg_color;\n"
+ "color: @theme_text_color;\n"
"}\n",
-1, NULL);
--
2.30.2
From debefa23ffec26b86d82a0f7080755c78f47c39f Mon Sep 17 00:00:00 2001
From: Jakub Steiner <jimmac@gmail.com>
Date: Tue, 31 Mar 2020 20:55:23 +0200
Subject: [PATCH 12/12] widget: Improve legibility by tweaking the system
theme's base colour
Some changes by Debarshi Ray.
https://gitlab.gnome.org/GNOME/vte/-/issues/226
---
src/vtegtk.cc | 67 ++++++++++++++++++++++++++++++++++++++++++++-------
1 file changed, 58 insertions(+), 9 deletions(-)
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 50b2c53644f2..f70e75f8b183 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -73,7 +73,8 @@
#define VTE_TERMINAL_CSS_NAME "vte-terminal"
struct _VteTerminalClassPrivate {
- GtkStyleProvider *style_provider;
+ GtkStyleProvider *style_provider_dark;
+ GtkStyleProvider *style_provider_light;
};
#ifdef VTE_DEBUG
@@ -127,6 +128,41 @@ valid_color(GdkRGBA const* color)
color->alpha >= 0. && color->alpha <= 1.;
}
+static void
+vte_terminal_theme_update (VteTerminal *terminal)
+{
+ GtkSettings *settings;
+ GtkStyleContext *context;
+ gboolean application_prefer_dark_theme;
+
+ settings = gtk_settings_get_default ();
+ g_object_get (settings, "gtk-application-prefer-dark-theme", &application_prefer_dark_theme, nullptr);
+
+ context = gtk_widget_get_style_context (&terminal->widget);
+
+ if (application_prefer_dark_theme) {
+ gtk_style_context_remove_provider (context,
+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_light);
+
+ gtk_style_context_add_provider (context,
+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_dark,
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ } else {
+ gtk_style_context_remove_provider (context,
+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_dark);
+
+ gtk_style_context_add_provider (context,
+ VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider_light,
+ GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ }
+}
+
+static void
+vte_terminal_theme_changed (VteTerminal *terminal)
+{
+ vte_terminal_theme_update (terminal);
+}
+
static void
vte_terminal_set_hadjustment(VteTerminal *terminal,
GtkAdjustment *adjustment)
@@ -392,14 +428,18 @@ static void
vte_terminal_init(VteTerminal *terminal)
{
void *place;
- GtkStyleContext *context;
+ GtkSettings *settings;
_vte_debug_print(VTE_DEBUG_LIFECYCLE, "vte_terminal_init()\n");
- context = gtk_widget_get_style_context(&terminal->widget);
- gtk_style_context_add_provider (context,
- VTE_TERMINAL_GET_CLASS (terminal)->priv->style_provider,
- GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+ vte_terminal_theme_update (terminal);
+
+ settings = gtk_settings_get_default ();
+ g_signal_connect_object (settings,
+ "notify::gtk-application-prefer-dark-theme",
+ G_CALLBACK (vte_terminal_theme_changed),
+ terminal,
+ G_CONNECT_SWAPPED);
/* Initialize private data. NOTE: place is zeroed */
place = vte_terminal_get_instance_private(terminal);
@@ -1917,11 +1957,20 @@ vte_terminal_class_init(VteTerminalClass *klass)
klass->priv = G_TYPE_CLASS_GET_PRIVATE (klass, VTE_TYPE_TERMINAL, VteTerminalClassPrivate);
- klass->priv->style_provider = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
- gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider),
+ klass->priv->style_provider_dark = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
+ gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider_dark),
+ "VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n"
+ "padding: 1px 1px 1px 1px;\n"
+ "background-color: shade(@theme_base_color, 0.67);\n"
+ "color: @theme_text_color;\n"
+ "}\n",
+ -1, NULL);
+
+ klass->priv->style_provider_light = GTK_STYLE_PROVIDER (gtk_css_provider_new ());
+ gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (klass->priv->style_provider_light),
"VteTerminal, " VTE_TERMINAL_CSS_NAME " {\n"
"padding: 1px 1px 1px 1px;\n"
- "background-color: @theme_base_color;\n"
+ "background-color: shade(@theme_base_color, 1.1);\n"
"color: @theme_text_color;\n"
"}\n",
-1, NULL);
--
2.30.2

View file

@ -1,23 +1,26 @@
%global apiver 2.91
%global fribidi_version 1.0.0
%global glib2_version 2.40.0
%global glib2_version 2.52.0
%global gnutls_version 3.2.7
%global gtk3_version 3.19.5
%global gtk3_version 3.20.0
%global icu_uc_version 4.8
%global libsystemd_version 220
%global pango_version 1.22.0
%global pcre2_version 10.21
Name: vte291
Version: 0.58.3
Release: 2%{?dist}
Version: 0.60.4
Release: 1%{?dist}
Summary: Terminal emulator library
License: LGPLv2+
URL: http://www.gnome.org/
Source0: http://download.gnome.org/sources/vte/0.58/vte-%{version}.tar.xz
Source0: http://download.gnome.org/sources/vte/0.60/vte-%{version}.tar.xz
# https://bugzilla.gnome.org/show_bug.cgi?id=711059
# https://bugzilla.redhat.com/show_bug.cgi?id=1103380
# https://gitlab.gnome.org/GNOME/vte/-/issues/226
Patch100: vte291-cntnr-precmd-preexec-scroll.patch
BuildRequires: gcc-c++
@ -32,16 +35,21 @@ BuildRequires: gperf
BuildRequires: gtk-doc
BuildRequires: meson
BuildRequires: pkgconfig(gtk+-3.0) >= %{gtk3_version}
BuildRequires: pkgconfig(icu-uc) >= %{icu_uc_version}
BuildRequires: pkgconfig(libpcre2-8) >= %{pcre2_version}
BuildRequires: pkgconfig(libsystemd) >= %{libsystemd_version}
BuildRequires: pkgconfig(pango) >= %{pango_version}
BuildRequires: systemd-rpm-macros
BuildRequires: vala
Requires: fribidi >= %{fribidi_version}
Requires: glib2 >= %{glib2_version}
Requires: gnutls%{?_isa} >= %{gnutls_version}
Requires: gtk3%{?_isa} >= %{gtk3_version}
Requires: libicu%{?_isa} >= %{icu_uc_version}
Requires: pango >= %{pango_version}
Requires: pcre2%{?_isa} >= %{pcre2_version}
Requires: systemd >= %{libsystemd_version}
Requires: vte-profile
Conflicts: gnome-terminal < 3.20.1-2
@ -76,6 +84,10 @@ emulator library.
%prep
%setup -q -n vte-%{version}
%patch100 -p1 -b .cntnr-precmd-preexec-scroll
%if 0%{?flatpak}
# Install user units where systemd macros expect them
sed -i -e "/^vte_systemduserunitdir =/s|vte_prefix|'/usr'|" meson.build
%endif
%build
# Avoid overriding vte's own -fno-exceptions
@ -95,6 +107,7 @@ emulator library.
%doc NEWS
%{_libdir}/libvte-%{apiver}.so.0*
%{_libdir}/girepository-1.0/
%{_userunitdir}/vte-spawn-.scope.d
%files devel
%{_bindir}/vte-%{apiver}
@ -106,9 +119,46 @@ emulator library.
%{_datadir}/vala/
%files -n vte-profile
%{_libexecdir}/vte-urlencode-cwd
%{_sysconfdir}/profile.d/vte.csh
%{_sysconfdir}/profile.d/vte.sh
%changelog
* Fri May 07 2021 Debarshi Ray <rishi@fedoraproject.org> - 0.60.4-1
- Update to 0.60.4
* Mon Jun 01 2020 Kalev Lember <klember@redhat.com> - 0.60.3-1
- Update to 0.60.3
* Mon Apr 27 2020 Kalev Lember <klember@redhat.com> - 0.60.2-1
- Update to 0.60.2
* Mon Apr 06 2020 Debarshi Ray <rishi@fedoraproject.org> - 0.60.1-2
- Improve legibility when using colours from the system theme
* Tue Mar 31 2020 Kalev Lember <klember@redhat.com> - 0.60.1-1
- Update to 0.60.1
* Sat Mar 21 2020 Kalev Lember <klember@redhat.com> - 0.60.0-2
- Move vte-urlencode-cwd to vte-profile subpackage (#1815769)
* Fri Mar 06 2020 Debarshi Ray <rishi@fedoraproject.org> - 0.60.0-1
- Update to 0.60.0
* Mon Mar 02 2020 Debarshi Ray <rishi@fedoraproject.org> - 0.59.92-2
- Replace C1 controls with C0 to emit OSC 777 from PS0 (RH #1783802)
* Mon Mar 02 2020 Debarshi Ray <rishi@fedoraproject.org> - 0.59.92-1
- Update to 0.59.92
* Thu Feb 20 2020 Debarshi Ray <rishi@fedoraproject.org> - 0.59.91-1
- Update to 0.59.91
- Rebase downstream patches
* Wed Feb 19 2020 Debarshi Ray <rishi@fedoraproject.org> - 0.59.0-1
- Update to 0.59.0
- Rebase downstream patches
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.58.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild