Debarshi Ray 2020-03-31 21:01:49 +02:00
parent 104f60b53e
commit 89a86276e6
2 changed files with 193 additions and 40 deletions

View File

@ -1,7 +1,7 @@
From c8ba0093065c94914b89a3f9fb9e4376ad58b7f2 Mon Sep 17 00:00:00 2001
From 100b3f8acecf8c68201d6bbb7fc05e9475d8d401 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 0977ff6c3c19..838cb6523c5c 100644
index cba606e853a4..ae49a07d7376 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10238,6 +10238,15 @@ Terminal::emit_pending_signals()
@@ -10239,6 +10239,15 @@ Terminal::emit_pending_signals()
emit_adjustment_changed();
@ -72,7 +72,7 @@ index 31012518362e..6ad0987d22ca 100644
VteTerminalClassPrivate *priv;
};
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 8edb9d9bec08..11875dfee613 100644
index 5808a210d3d4..005423567073 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -738,6 +738,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
@ -209,10 +209,10 @@ index 2d00ceec5509..2b69ca2c14f0 100644
2.24.1
From c7e4f1adf7865025daa196ccb6b4344d6a79db55 Mon Sep 17 00:00:00 2001
From 2a509fab63f42995d4b0f77bac4a9d79e508880e 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
@ -245,10 +245,10 @@ index 8b3153da0f1a..d6769de82766 100644
2.24.1
From 25d0ab5656a5daeac72514c9f1c92ece170e1b19 Mon Sep 17 00:00:00 2001
From 268e1f1f5e71822b9e43ae4bfeea43710de32152 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 +++++++
@ -312,10 +312,10 @@ index 0c7eed5d18f1..6086c0a65db2 100644
2.24.1
From 9c4c531996654981621bfcd781402e9c9ababc5f Mon Sep 17 00:00:00 2001
From 4756e38cc2678467d08245c192fd86b3b01049da 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.
@ -343,10 +343,10 @@ index 20067c88bae3..2cc8d70ca4f9 100644
vte_terminal_get_scrollback_lines
vte_terminal_set_font
diff --git a/src/vte.cc b/src/vte.cc
index 838cb6523c5c..8123db6b2c65 100644
index ae49a07d7376..8fad2b477950 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -9442,6 +9442,7 @@ void
@@ -9443,6 +9443,7 @@ void
Terminal::widget_scroll(GdkEventScroll *event)
{
gdouble delta_x, delta_y;
@ -354,7 +354,7 @@ index 838cb6523c5c..8123db6b2c65 100644
gdouble v;
gint cnt, i;
int button;
@@ -9498,7 +9499,13 @@ Terminal::widget_scroll(GdkEventScroll *event)
@@ -9499,7 +9500,13 @@ Terminal::widget_scroll(GdkEventScroll *event)
return;
}
@ -369,7 +369,7 @@ index 838cb6523c5c..8123db6b2c65 100644
_vte_debug_print(VTE_DEBUG_EVENTS,
"Scroll speed is %d lines per non-smooth scroll unit\n",
(int) v);
@@ -9795,6 +9802,16 @@ Terminal::decscusr_cursor_shape() const noexcept
@@ -9796,6 +9803,16 @@ Terminal::decscusr_cursor_shape() const noexcept
}
}
@ -402,7 +402,7 @@ index 6ad0987d22ca..94febee1d494 100644
_VTE_PUBLIC
void vte_terminal_set_scrollback_lines(VteTerminal *terminal,
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 11875dfee613..c6051aa7ae7f 100644
index 005423567073..ecd004a814e7 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -528,6 +528,9 @@ vte_terminal_get_property (GObject *object,
@ -447,7 +447,7 @@ index 11875dfee613..c6051aa7ae7f 100644
/**
* VteTerminal:scrollback-lines:
*
@@ -4428,6 +4449,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;
}
@ -514,10 +514,10 @@ index ae4f705ea80d..9c0b8b454468 100644
2.24.1
From c7f5fe00027643b36beb0c2908bd63cfa03a3266 Mon Sep 17 00:00:00 2001
From 4a319241ad18071b85acea28f929b332d00e24da 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
---
@ -587,10 +587,10 @@ index 6086c0a65db2..0c7a70bf6da5 100644
2.24.1
From 58a73ba12f34b285c4170eabf38d2b6dd0fc6fe3 Mon Sep 17 00:00:00 2001
From 1df88d4cb8ebdbcac0ad55c43ed17e91b7396ea6 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
@ -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 8123db6b2c65..f6a3989cbd79 100644
index 8fad2b477950..b103f3cee0ce 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10264,6 +10264,13 @@ Terminal::emit_pending_signals()
@@ -10265,6 +10265,13 @@ Terminal::emit_pending_signals()
m_notification_received = false;
}
@ -663,7 +663,7 @@ index 94febee1d494..2d757afbdcc0 100644
VteTerminalClassPrivate *priv;
};
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index c6051aa7ae7f..888da0c188d8 100644
index ecd004a814e7..1b3e2690164f 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
@ -742,10 +742,10 @@ index 2b69ca2c14f0..d8866cbeb225 100644
2.24.1
From 96eae43fc1a6a767744c261ad7184ebf03d70a6d Mon Sep 17 00:00:00 2001
From f2581b1532eebc4bcfc2337eb367abfd5599dd0c 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
@ -807,10 +807,10 @@ index 0c7a70bf6da5..2dece3ddb724 100644
2.24.1
From 700985c7f169165329f44274636c048151c80d92 Mon Sep 17 00:00:00 2001
From cee3f876af49aa199955e557001a57b317f93634 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
@ -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 f6a3989cbd79..4d51005fb6c4 100644
index b103f3cee0ce..1bda2bfbca39 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10271,6 +10271,13 @@ Terminal::emit_pending_signals()
@@ -10272,6 +10272,13 @@ Terminal::emit_pending_signals()
m_shell_preexec = FALSE;
}
@ -884,7 +884,7 @@ index 2d757afbdcc0..a75ae7ee2640 100644
VteTerminalClassPrivate *priv;
};
diff --git a/src/vtegtk.cc b/src/vtegtk.cc
index 888da0c188d8..47b7df4febf2 100644
index 1b3e2690164f..0d61f90cda76 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -745,6 +745,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
@ -962,10 +962,10 @@ index d8866cbeb225..f6669f853204 100644
2.24.1
From 2f4739dc840d8acddf15d7fa60594e04c24a17b2 Mon Sep 17 00:00:00 2001
From 827f0406565cad98f835909451a854c7f8f3ead1 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
@ -1027,10 +1027,10 @@ index 2dece3ddb724..960aadc3cdc8 100644
2.24.1
From 89b06b1062b1af6fa43d6ea34d8da57f8038abcc Mon Sep 17 00:00:00 2001
From 55c7d02eaad2bc37bc18c46152825fb2959f2db0 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
@ -1061,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 4d51005fb6c4..f83ef111b9d9 100644
index 1bda2bfbca39..aeca73d55934 100644
--- a/src/vte.cc
+++ b/src/vte.cc
@@ -10292,6 +10292,15 @@ Terminal::emit_pending_signals()
@@ -10293,6 +10293,15 @@ Terminal::emit_pending_signals()
m_window_title_changed = false;
}
@ -1096,7 +1096,7 @@ index a75ae7ee2640..53de9c737000 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 47b7df4febf2..2e4bd1a692dc 100644
index 0d61f90cda76..15a7f1ab1ce0 100644
--- a/src/vtegtk.cc
+++ b/src/vtegtk.cc
@@ -483,6 +483,12 @@ vte_terminal_get_property (GObject *object,
@ -1140,7 +1140,7 @@ index 47b7df4febf2..2e4bd1a692dc 100644
/**
* VteTerminal:current-directory-uri:
*
@@ -3805,6 +3832,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;
}
@ -1284,3 +1284,152 @@ index f6669f853204..2b9dd9df820a 100644
--
2.24.1
From e2c44d1e7cf544f26dddfe7ea21452eb53800b83 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 15a7f1ab1ce0..5999272c0648 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.24.1
From 68d735ef2649df34f4a283d70555a88f04231ecc 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 5999272c0648..a54c85b42e9d 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.24.1

View File

@ -11,7 +11,7 @@
Name: vte291
Version: 0.60.1
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Terminal emulator library
License: LGPLv2+
@ -20,6 +20,7 @@ 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++
@ -119,6 +120,9 @@ emulator library.
%{_sysconfdir}/profile.d/vte.sh
%changelog
* 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