From 89a86276e6652c6c48fc1b7b8ab724e0cf0ee0fb Mon Sep 17 00:00:00 2001 From: Debarshi Ray Date: Tue, 31 Mar 2020 21:01:49 +0200 Subject: [PATCH] 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 --- vte291-cntnr-precmd-preexec-scroll.patch | 227 +++++++++++++++++++---- vte291.spec | 6 +- 2 files changed, 193 insertions(+), 40 deletions(-) diff --git a/vte291-cntnr-precmd-preexec-scroll.patch b/vte291-cntnr-precmd-preexec-scroll.patch index 144c8a9..5548b6c 100644 --- a/vte291-cntnr-precmd-preexec-scroll.patch +++ b/vte291-cntnr-precmd-preexec-scroll.patch @@ -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 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 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 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 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 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 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 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 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 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 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 +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 +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 + diff --git a/vte291.spec b/vte291.spec index 0e64e91..f01101a 100644 --- a/vte291.spec +++ b/vte291.spec @@ -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 - 0.60.1-2 +- Improve legibility when using colours from the system theme + * Tue Mar 31 2020 Kalev Lember - 0.60.1-1 - Update to 0.60.1