Add a "shell-command" flag for debugging

Backport yet-to-be-released patches from upstream to avoid translation
conflicts.
This commit is contained in:
Debarshi Ray 2020-02-24 18:14:40 +01:00
parent 0992d1fa54
commit bedbde95cb
3 changed files with 5954 additions and 211 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
From fc34114172d60f65ae7f4c663513ae37e0c3ebf2 Mon Sep 17 00:00:00 2001
From a1efb84aa43819a8c534245971e1a318a21ab3a5 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Mon, 12 May 2014 14:57:18 +0200
Subject: [PATCH 01/18] Restore transparency
Subject: [PATCH 01/17] Restore transparency
The transparency settings were removed as a side effect of
2bff4b63ed3ceef6055e35563e9b0b33ad57349d
@ -231,13 +231,13 @@ index 040fc4f4d71a..e1dca4a23bd0 100644
uuid_unparse (u, uuidstr);
priv->uuid = g_strdup (uuidstr);
--
2.23.0
2.24.1
From b554bcd63783e10a2051d80f995a7dccdd282d38 Mon Sep 17 00:00:00 2001
From 7d22a40705ae769f54e0afb29147dd8f786a67c7 Mon Sep 17 00:00:00 2001
From: Lars Uebernickel <lars.uebernickel@canonical.com>
Date: Wed, 28 May 2014 14:11:02 +0200
Subject: [PATCH 02/18] window: Make the drawing robust across all themes
Subject: [PATCH 02/17] window: Make the drawing robust across all themes
There are lots of themes out there in the wild that do not specify a
background-color for all widgets and the default is transparent. This
@ -293,13 +293,13 @@ index e1dca4a23bd0..525af2e80c1b 100644
widget_class->screen_changed = terminal_window_screen_changed;
widget_class->style_updated = terminal_window_style_updated;
--
2.23.0
2.24.1
From 3f72661d1b1690be201fdf0b55cab13c67163cad Mon Sep 17 00:00:00 2001
From 6e515192a27e2f130dc1bc1d316cf73e52c7749f Mon Sep 17 00:00:00 2001
From: "Owen W. Taylor" <otaylor@fishsoup.net>
Date: Fri, 13 Nov 2015 15:16:42 +0100
Subject: [PATCH 03/18] screen, window: Extra padding around transparent
Subject: [PATCH 03/17] screen, window: Extra padding around transparent
terminals in Wayland
https://bugzilla.redhat.com/show_bug.cgi?id=1207943
@ -420,13 +420,13 @@ index 525af2e80c1b..87d6d92ccdd7 100644
return GTK_WIDGET_CLASS (terminal_window_parent_class)->draw (widget, cr);
--
2.23.0
2.24.1
From 0cbcb0ceaaf5e82160a3cdc928a402d285377510 Mon Sep 17 00:00:00 2001
From e30b73cae9c58d4d3df54eb2948877a3e01b087c Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Mon, 27 Feb 2017 16:53:51 +0100
Subject: [PATCH 04/18] screen: Silence -Wunused variable
Subject: [PATCH 04/17] screen: Silence -Wunused variable
https://bugzilla.redhat.com/show_bug.cgi?id=1207943
---
@ -446,13 +446,13 @@ index ffa7b3239cae..6cb3e20c4f42 100644
gboolean use_theme_colors;
--
2.23.0
2.24.1
From 136dfad847d5951a5bbfa4e9da01241175792eb8 Mon Sep 17 00:00:00 2001
From a72cda3272628ad77e0ff748ef3191f850038689 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Fri, 18 May 2018 20:15:34 +0200
Subject: [PATCH 05/18] screen: Try harder to find a foreground process group
Subject: [PATCH 05/17] screen: Try harder to find a foreground process group
member
For pipelined commands, it's possible that the process group leader,
@ -516,13 +516,13 @@ index 6cb3e20c4f42..ae3254a10dcf 100644
#endif
--
2.23.0
2.24.1
From 8a50ec6d7943e6c2132032a2c617b967c6fce911 Mon Sep 17 00:00:00 2001
From 57a36c4ea3b5fafbe43b1ca38d3460853e1a6b99 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 3 May 2018 16:49:28 +0200
Subject: [PATCH 06/18] screen: Track the current foreground process
Subject: [PATCH 06/17] screen: Track the current foreground process
... using the interactive shell's precmd and preexec hooks, by
monitoring the contents of the terminal, and a combination of
@ -535,11 +535,39 @@ process.
https://bugzilla.gnome.org/show_bug.cgi?id=711059
---
src/terminal-screen.c | 130 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 130 insertions(+)
src/terminal-debug.c | 1 +
src/terminal-debug.h | 3 +-
src/terminal-screen.c | 147 ++++++++++++++++++++++++++++++++++++++++++
3 files changed, 150 insertions(+), 1 deletion(-)
diff --git a/src/terminal-debug.c b/src/terminal-debug.c
index d08829e93ff4..6d325b5aee9d 100644
--- a/src/terminal-debug.c
+++ b/src/terminal-debug.c
@@ -38,6 +38,7 @@ _terminal_debug_init(void)
{ "profile", TERMINAL_DEBUG_PROFILE },
{ "settings-list", TERMINAL_DEBUG_SETTINGS_LIST },
{ "search", TERMINAL_DEBUG_SEARCH },
+ { "shell-command", TERMINAL_DEBUG_SHELL_COMMAND },
};
_terminal_debug_flags = g_parse_debug_string (g_getenv ("GNOME_TERMINAL_DEBUG"),
diff --git a/src/terminal-debug.h b/src/terminal-debug.h
index 0fafcc3a846c..b0f2fc9df7f6 100644
--- a/src/terminal-debug.h
+++ b/src/terminal-debug.h
@@ -34,7 +34,8 @@ typedef enum {
TERMINAL_DEBUG_PROCESSES = 1 << 6,
TERMINAL_DEBUG_PROFILE = 1 << 7,
TERMINAL_DEBUG_SETTINGS_LIST = 1 << 8,
- TERMINAL_DEBUG_SEARCH = 1 << 9
+ TERMINAL_DEBUG_SEARCH = 1 << 9,
+ TERMINAL_DEBUG_SHELL_COMMAND = 1 << 10,
} TerminalDebugFlags;
void _terminal_debug_init(void);
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index ae3254a10dcf..7dda7a905156 100644
index ae3254a10dcf..45e3bd677bd9 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -87,13 +87,17 @@ struct _TerminalScreenPrivate
@ -616,7 +644,7 @@ index ae3254a10dcf..7dda7a905156 100644
g_free (priv->initial_working_directory);
g_strfreev (priv->override_command);
g_strfreev (priv->initial_env);
@@ -1767,6 +1793,110 @@ terminal_screen_child_exited (VteTerminal *terminal,
@@ -1767,6 +1793,123 @@ terminal_screen_child_exited (VteTerminal *terminal,
}
}
@ -629,6 +657,8 @@ index ae3254a10dcf..7dda7a905156 100644
+ g_return_val_if_fail (priv->between_preexec_and_precmd, G_SOURCE_REMOVE);
+ g_return_val_if_fail (priv->shell_preexec_source_id == 0, G_SOURCE_REMOVE);
+
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Contents changed [timeout]\n");
+
+ if (!terminal_screen_has_foreground_process (screen, NULL, &cmdline))
+ goto out;
+
@ -637,6 +667,7 @@ index ae3254a10dcf..7dda7a905156 100644
+
+ g_free (priv->current_cmdline);
+ priv->current_cmdline = g_steal_pointer (&cmdline);
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
+
+ out:
+ priv->contents_changed_source_id = 0;
@ -649,6 +680,8 @@ index ae3254a10dcf..7dda7a905156 100644
+ TerminalScreen *screen = TERMINAL_SCREEN (terminal);
+ TerminalScreenPrivate *priv = screen->priv;
+
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Contents changed\n");
+
+ if (!priv->between_preexec_and_precmd)
+ return;
+
@ -669,6 +702,8 @@ index ae3254a10dcf..7dda7a905156 100644
+ TerminalScreen *screen = TERMINAL_SCREEN (terminal);
+ TerminalScreenPrivate *priv = screen->priv;
+
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell precmd\n");
+
+ priv->between_preexec_and_precmd = FALSE;
+
+ if (priv->contents_changed_source_id != 0)
@ -684,6 +719,7 @@ index ae3254a10dcf..7dda7a905156 100644
+ }
+
+ g_clear_pointer (&priv->current_cmdline, g_free);
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: (none)\n");
+}
+
+static gboolean
@ -696,10 +732,13 @@ index ae3254a10dcf..7dda7a905156 100644
+ g_return_val_if_fail (priv->between_preexec_and_precmd, G_SOURCE_REMOVE);
+ g_return_val_if_fail (priv->current_cmdline == NULL, G_SOURCE_REMOVE);
+
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell preexec [timeout]\n");
+
+ if (!terminal_screen_has_foreground_process (screen, NULL, &cmdline))
+ goto out;
+
+ priv->current_cmdline = g_steal_pointer (&cmdline);
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
+
+ priv->shell_preexec_source_id = 0;
+ retval = G_SOURCE_REMOVE;
@ -719,6 +758,8 @@ index ae3254a10dcf..7dda7a905156 100644
+ g_return_if_fail (priv->current_cmdline == NULL);
+ g_return_if_fail (priv->shell_preexec_source_id == 0);
+
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell preexec\n");
+
+ priv->between_preexec_and_precmd = TRUE;
+
+ priv->shell_preexec_source_id = g_timeout_add (200, (GSourceFunc) terminal_screen_shell_preexec_cb, screen);
@ -727,14 +768,26 @@ index ae3254a10dcf..7dda7a905156 100644
static void
terminal_screen_drag_data_received (GtkWidget *widget,
GdkDragContext *context,
@@ -2112,7 +2255,11 @@ terminal_screen_has_foreground_process (TerminalScreen *screen,
if (fd == -1)
return FALSE;
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Child PID: %d\n", priv->child_pid);
+
fgpid = tcgetpgrp (fd);
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground process group [tcgetpgrp]: %d\n", fgpid);
+
if (fgpid == -1 || fgpid == priv->child_pid)
return FALSE;
--
2.23.0
2.24.1
From b99d082f7959e4e1ba49c7079cf43a66ba8744b2 Mon Sep 17 00:00:00 2001
From 3e3528583a410c016134cc637fb0677447ae7a04 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 10 May 2018 19:23:16 +0200
Subject: [PATCH 07/18] Notify when a long-running foreground process group
Subject: [PATCH 07/17] Notify when a long-running foreground process group
terminates
Notifications are only sent if the VteTerminal in which the process
@ -746,10 +799,10 @@ notification is sent.
https://bugzilla.gnome.org/show_bug.cgi?id=711059
---
src/terminal-app.c | 32 ++++++++++++
src/terminal-screen.c | 102 +++++++++++++++++++++++++++++++++++++++
src/terminal-tab-label.c | 30 +++++++++++-
src/terminal-screen.c | 106 +++++++++++++++++++++++++++++++++++++++
src/terminal-tab-label.c | 30 ++++++++++-
src/terminal-tab-label.h | 4 ++
4 files changed, 167 insertions(+), 1 deletion(-)
4 files changed, 171 insertions(+), 1 deletion(-)
diff --git a/src/terminal-app.c b/src/terminal-app.c
index ab1c81a6b554..34c53f40904b 100644
@ -809,7 +862,7 @@ index ab1c81a6b554..34c53f40904b 100644
app_load_css (application);
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 7dda7a905156..5d3ec19aa94d 100644
index 45e3bd677bd9..6b762f8c0c09 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -55,6 +55,7 @@
@ -853,7 +906,7 @@ index 7dda7a905156..5d3ec19aa94d 100644
/* Unset child PID so that when an eventual child-exited signal arrives,
* we don't emit "close".
@@ -1697,6 +1708,43 @@ terminal_screen_button_press (GtkWidget *widget,
@@ -1697,6 +1708,45 @@ terminal_screen_button_press (GtkWidget *widget,
return FALSE;
}
@ -865,6 +918,8 @@ index 7dda7a905156..5d3ec19aa94d 100644
+ TerminalApp *app;
+ TerminalWindow *window;
+
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Notification withdrawn\n");
+
+ window = terminal_screen_get_window (screen);
+ if (window != NULL)
+ {
@ -897,7 +952,7 @@ index 7dda7a905156..5d3ec19aa94d 100644
/**
* terminal_screen_get_current_dir:
* @screen:
@@ -1836,6 +1884,57 @@ terminal_screen_contents_changed (VteTerminal *terminal)
@@ -1841,6 +1891,59 @@ terminal_screen_contents_changed (VteTerminal *terminal)
screen);
}
@ -934,6 +989,7 @@ index 7dda7a905156..5d3ec19aa94d 100644
+ terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label),
+ "dialog-information-symbolic",
+ _("Command completed"));
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Notify tab\n");
+ }
+ }
+ else
@ -949,13 +1005,14 @@ index 7dda7a905156..5d3ec19aa94d 100644
+
+ app = terminal_app_get ();
+ g_application_send_notification (G_APPLICATION (app), priv->uuid, notification);
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Notify desktop\n");
+ }
+}
+
static void
terminal_screen_shell_precmd (VteTerminal *terminal)
{
@@ -1856,6 +1955,9 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
@@ -1863,6 +1966,9 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
priv->shell_preexec_source_id = 0;
}
@ -963,8 +1020,8 @@ index 7dda7a905156..5d3ec19aa94d 100644
+ terminal_screen_show_notification (screen);
+
g_clear_pointer (&priv->current_cmdline, g_free);
_terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: (none)\n");
}
diff --git a/src/terminal-tab-label.c b/src/terminal-tab-label.c
index cdd73d0653be..7f2026952510 100644
--- a/src/terminal-tab-label.c
@ -1043,107 +1100,13 @@ index 20cfbceb36b0..a987025e0524 100644
G_END_DECLS
--
2.23.0
2.24.1
From 02df2adccf752348385e7d3dd9f22de15afe956d Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Tue, 2 Apr 2019 16:37:48 +0200
Subject: [PATCH 08/18] Sprinkle debug messages for notifications
This can be useful for finding out whether the escape sequence wasn't
emitted or the filtering was faulty.
https://bugzilla.gnome.org/show_bug.cgi?id=711059
---
src/terminal-debug.c | 1 +
src/terminal-debug.h | 3 ++-
src/terminal-screen.c | 10 ++++++++++
3 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/terminal-debug.c b/src/terminal-debug.c
index d08829e93ff4..3748e7edebe7 100644
--- a/src/terminal-debug.c
+++ b/src/terminal-debug.c
@@ -38,6 +38,7 @@ _terminal_debug_init(void)
{ "profile", TERMINAL_DEBUG_PROFILE },
{ "settings-list", TERMINAL_DEBUG_SETTINGS_LIST },
{ "search", TERMINAL_DEBUG_SEARCH },
+ { "notifications", TERMINAL_DEBUG_NOTIFICATIONS },
};
_terminal_debug_flags = g_parse_debug_string (g_getenv ("GNOME_TERMINAL_DEBUG"),
diff --git a/src/terminal-debug.h b/src/terminal-debug.h
index 0fafcc3a846c..af1358683994 100644
--- a/src/terminal-debug.h
+++ b/src/terminal-debug.h
@@ -34,7 +34,8 @@ typedef enum {
TERMINAL_DEBUG_PROCESSES = 1 << 6,
TERMINAL_DEBUG_PROFILE = 1 << 7,
TERMINAL_DEBUG_SETTINGS_LIST = 1 << 8,
- TERMINAL_DEBUG_SEARCH = 1 << 9
+ TERMINAL_DEBUG_SEARCH = 1 << 9,
+ TERMINAL_DEBUG_NOTIFICATIONS = 1 << 10
} TerminalDebugFlags;
void _terminal_debug_init(void);
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 5d3ec19aa94d..59a957fa2d61 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -1716,6 +1716,8 @@ terminal_screen_focus_in (GtkWidget *widget,
TerminalApp *app;
TerminalWindow *window;
+ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notification withdrawn\n");
+
window = terminal_screen_get_window (screen);
if (window != NULL)
{
@@ -1858,6 +1860,9 @@ terminal_screen_contents_changed_cb (TerminalScreen *screen)
g_free (priv->current_cmdline);
priv->current_cmdline = g_steal_pointer (&cmdline);
+ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS,
+ "Current foreground command-line: %s\n",
+ priv->current_cmdline);
out:
priv->contents_changed_source_id = 0;
@@ -1917,6 +1922,7 @@ terminal_screen_show_notification (TerminalScreen *screen)
terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label),
"dialog-information-symbolic",
_("Command completed"));
+ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notify tab\n");
}
}
else
@@ -1932,6 +1938,7 @@ terminal_screen_show_notification (TerminalScreen *screen)
app = terminal_app_get ();
g_application_send_notification (G_APPLICATION (app), priv->uuid, notification);
+ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notify desktop\n");
}
}
@@ -1975,6 +1982,9 @@ terminal_screen_shell_preexec_cb (TerminalScreen *screen)
goto out;
priv->current_cmdline = g_steal_pointer (&cmdline);
+ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS,
+ "Current foreground command-line: %s\n",
+ priv->current_cmdline);
priv->shell_preexec_source_id = 0;
retval = G_SOURCE_REMOVE;
--
2.23.0
From b6a4673681fe0fb6fc0a54a99a0a0f5c696b4951 Mon Sep 17 00:00:00 2001
From a65796b0221df46b1feb546c2c7f05523a779c60 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Tue, 10 Apr 2018 15:39:35 +0200
Subject: [PATCH 09/18] profile: Split the Command tab into two nested GtkGrids
Subject: [PATCH 08/17] profile: Split the Command tab into two nested GtkGrids
This will let the subsequent patch add a "Command" sub-heading to keep
the command settings separate from the to-be-restored title settings.
@ -1344,13 +1307,13 @@ index 60ab5b253876..1ae8c67caeea 100644
</object>
<packing>
--
2.23.0
2.24.1
From 47f3da2e035005abed498a79a23f38a1df574950 Mon Sep 17 00:00:00 2001
From 86d52a9978c88720d133b897247fe899d024fb23 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Tue, 10 Apr 2018 16:01:51 +0200
Subject: [PATCH 10/18] Revert "profile: Remove the "Command" sub-heading"
Subject: [PATCH 09/17] Revert "profile: Remove the "Command" sub-heading"
This reverts commit 8e27479299d075df0a52d0e8e7baeab344dcaa6c.
@ -1568,13 +1531,13 @@ index 1ae8c67caeea..8417e6c5ba21 100644
</object>
<packing>
--
2.23.0
2.24.1
From bb5b92c964289711b8504ebeaa1c294c66eb0708 Mon Sep 17 00:00:00 2001
From 410fc055ab81437fb1bafd97727a482922640aa0 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 30 Jun 2016 16:02:13 +0200
Subject: [PATCH 11/18] Revert "screen: Remove unused description and
Subject: [PATCH 10/17] Revert "screen: Remove unused description and
user_title API"
This reverts commit 3bb41272b7509a16ec2a5cd93e44f73d5743b626.
@ -1586,7 +1549,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1296110
2 files changed, 68 insertions(+)
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 59a957fa2d61..455e3db54bf6 100644
index 6b762f8c0c09..a3adc95cf415 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -89,6 +89,7 @@ struct _TerminalScreenPrivate
@ -1747,13 +1710,13 @@ index ff77fcf78947..af9583e7cbaf 100644
char *terminal_screen_get_current_dir (TerminalScreen *screen);
--
2.23.0
2.24.1
From fe5a6c7782e18cdd43ed6094a8559ec384e66eae Mon Sep 17 00:00:00 2001
From bd0880fc14365ab00e9b3221f8802f21db19479b Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 30 Jun 2016 17:39:48 +0200
Subject: [PATCH 12/18] Revert "Remove the static title setting from profile
Subject: [PATCH 11/17] Revert "Remove the static title setting from profile
preferences"
This reverts commit e9cb8fea14a849704074c5d69f173bcf4dc2fb27.
@ -1768,21 +1731,21 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1296110
5 files changed, 91 insertions(+)
diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
index cd64124c1a6e..acd2a87702e8 100644
index cd64124c1a6e..84ac69f6ccd4 100644
--- a/src/org.gnome.Terminal.gschema.xml
+++ b/src/org.gnome.Terminal.gschema.xml
@@ -183,6 +183,11 @@
<summary>Highlight foreground colour</summary>
<description>Custom color for the foreground of the text character at the terminals highlight position, as a color specification (can be HTML-style hex digits, or a color name such as “red”). This is ignored if highlight-colors-set is false.</description>
@@ -193,6 +193,11 @@
<summary>Whether to perform Arabic shaping</summary>
<description>If true, shape Arabic text.</description>
</key>
+ <key name="title" type="s">
+ <default l10n="messages" context="title">'Terminal'</default>
+ <summary>Title for terminal</summary>
+ <description>Title to display for the terminal window or tab. This title may be replaced by or combined with the title set by the application inside the terminal, depending on the title_mode setting.</description>
+ </key>
<key name="enable-bidi" type="b">
<key name="allow-bold" type="b">
<default>true</default>
<summary>Whether to perform bidirectional text rendering</summary>
<summary>Whether to allow bold text</summary>
diff --git a/src/preferences.ui b/src/preferences.ui
index 8417e6c5ba21..2f1ba2811ca2 100644
--- a/src/preferences.ui
@ -1894,7 +1857,7 @@ index 82bbe45ade96..8b6b55be6188 100644
#define TERMINAL_PROFILE_USE_SKEY_KEY "use-skey"
#define TERMINAL_PROFILE_USE_SYSTEM_FONT_KEY "use-system-font"
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 455e3db54bf6..345549a07f44 100644
index a3adc95cf415..1bcce9c06aab 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -800,11 +800,14 @@ char *
@ -1926,13 +1889,13 @@ index 455e3db54bf6..345549a07f44 100644
(!prop_name ||
prop_name == I_(TERMINAL_PROFILE_USE_SYSTEM_FONT_KEY) ||
--
2.23.0
2.24.1
From d6d6d29ac8961f5014db5bb7505d33d09a8cfab3 Mon Sep 17 00:00:00 2001
From 24950d839c4bcb4493e8a747b22baa648e642265 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Tue, 17 Feb 2015 17:06:17 +0100
Subject: [PATCH 13/18] Restore translations for setting a title and
Subject: [PATCH 12/17] Restore translations for setting a title and
transparency
---
@ -1993,7 +1956,7 @@ Subject: [PATCH 13/18] Restore translations for setting a title and
po/ml.po | 3 +++
po/mn.po | 8 ++++----
po/mr.po | 16 ++++++++--------
po/ms.po | 8 ++++----
po/ms.po | 4 ++--
po/nb.po | 12 ++++++++++++
po/nds.po | 8 ++++----
po/ne.po | 12 ++++++------
@ -2028,7 +1991,7 @@ Subject: [PATCH 13/18] Restore translations for setting a title and
po/zh_CN.po | 15 +++++++++------
po/zh_HK.po | 15 +++++++++------
po/zh_TW.po | 15 +++++++++------
92 files changed, 712 insertions(+), 363 deletions(-)
92 files changed, 710 insertions(+), 361 deletions(-)
diff --git a/po/am.po b/po/am.po
index 3445d96da657..ee992f0712a5 100644
@ -3546,31 +3509,20 @@ index 61997dafbd03..9c7dc77abd22 100644
#~ msgid "Disabled"
#~ msgstr "अकार्यान्वीतित"
diff --git a/po/ms.po b/po/ms.po
index f2ebd4851d3b..f3d44c9c6294 100644
index 7d23cb3f4606..0126000443d1 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -227,8 +227,8 @@ msgstr "<b>LatarBelakang</b>"
# help-browser/toc-man.c:19
# help-browser/toc2-man.c:21
#: ../src/gnome-terminal.glade2.h:2
-msgid "<b>Command</b>"
-msgstr "<b>Arahan</b>"
+msgid "Command"
+msgstr "Arahan"
@@ -2521,8 +2521,8 @@ msgstr "T_utup Tetingkap"
#~ msgid "_Profile name:"
#~ msgstr "_Nama profil: "
#: ../src/gnome-terminal.glade2.h:3
msgid "<b>Compatibility</b>"
@@ -631,8 +631,8 @@ msgid "_Text color:"
msgstr "Warna _Teks:"
#: ../src/gnome-terminal.glade2.h:102
-msgid "_Transparent background"
-msgstr "LatarBelakang _Telus"
-#~ msgid "_Transparent background"
-#~ msgstr "LatarBelakang _Telus"
+msgid "Transparent background"
+msgstr "LatarBelakang Telus"
#: ../src/gnome-terminal.glade2.h:103
msgid "_Update login records when command is launched"
#~ msgid "_Update login records when command is launched"
#~ msgstr "_Kemaskini rekod logmasuk bila arahan dilancarkan"
diff --git a/po/nb.po b/po/nb.po
index 683acfe5221e..3dc97ee17fec 100644
--- a/po/nb.po
@ -4692,10 +4644,10 @@ index 61153529f0c7..c366abddd1af 100644
+msgid "Transparent background"
+msgstr "透明背景"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index e740ebc6df0b..2fa8c3236b8f 100644
index 6bfc204a20ee..a545f634257d 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -2584,17 +2584,17 @@ msgstr "關閉視窗(_L)"
@@ -2596,17 +2596,17 @@ msgstr "關閉視窗(_L)"
#~ msgid "Default size:"
#~ msgstr "預設大小:"
@ -4719,7 +4671,7 @@ index e740ebc6df0b..2fa8c3236b8f 100644
#~ msgid "Current Locale"
#~ msgstr "目前的地區設定"
@@ -2806,3 +2806,6 @@ msgstr "關閉視窗(_L)"
@@ -2818,3 +2818,6 @@ msgstr "關閉視窗(_L)"
#~ msgid "Show session management options"
#~ msgstr "顯示作業階段管理選項"
@ -4727,13 +4679,13 @@ index e740ebc6df0b..2fa8c3236b8f 100644
+msgid "Transparent background"
+msgstr "透明背景"
--
2.23.0
2.24.1
From 78a1b606494b56533026baa5fb0cb4a63516155d Mon Sep 17 00:00:00 2001
From 1641f0d6ed497d3e80c5dd6dcb59fa910dfa1949 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 25 May 2016 13:47:36 +0200
Subject: [PATCH 14/18] Restore the action and shortcut to set a static title
Subject: [PATCH 13/17] Restore the action and shortcut to set a static title
from the menus
This reverts 9bbe19e98f62aa3c9020913a3a5a8080a5177505 with various
@ -4747,7 +4699,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1296110
3 files changed, 81 insertions(+)
diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
index acd2a87702e8..a6b7673828e5 100644
index 84ac69f6ccd4..4a65438555db 100644
--- a/src/org.gnome.Terminal.gschema.xml
+++ b/src/org.gnome.Terminal.gschema.xml
@@ -485,6 +485,10 @@
@ -4875,13 +4827,13 @@ index 87d6d92ccdd7..55c45c34f685 100644
{ "tab-detach", action_tab_detach_cb, NULL, NULL, NULL },
{ "tab-move-left", action_tab_move_left_cb, NULL, NULL, NULL },
--
2.23.0
2.24.1
From c052461cefb4c6f01680eba1b972d077d8d6f908 Mon Sep 17 00:00:00 2001
From 8a4a6dc4bf17d0e13a4ef54e341aebf8b120cba7 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 30 Jun 2016 18:14:36 +0200
Subject: [PATCH 15/18] screen: Style fix
Subject: [PATCH 14/17] screen: Style fix
This brings the code in line with how it was before
de0dc7c2649c42e2aa02a66e4be27d262b34452d
@ -4892,7 +4844,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1296110
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 345549a07f44..a333e57097ef 100644
index 1bcce9c06aab..01bea430afc7 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -717,7 +717,7 @@ terminal_screen_new (GSettings *profile,
@ -4905,13 +4857,13 @@ index 345549a07f44..a333e57097ef 100644
const char *p;
--
2.23.0
2.24.1
From 495fb27aa9aa2265dd95589c1aae282e414a6494 Mon Sep 17 00:00:00 2001
From 5e6e8269dcd9f83ab0d2753402f1121437102141 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 30 Jun 2016 16:58:15 +0200
Subject: [PATCH 16/18] Restore the rest of the title handling options and make
Subject: [PATCH 15/17] Restore the rest of the title handling options and make
it all work
This reverts commit f27bf0135a2d18ba22158d28bf1f8c5f6ec066c8 and makes
@ -4930,7 +4882,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1296110
8 files changed, 265 insertions(+), 78 deletions(-)
diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
index a6b7673828e5..f9a7c730ada5 100644
index 4a65438555db..0885ea65a0b2 100644
--- a/src/org.gnome.Terminal.gschema.xml
+++ b/src/org.gnome.Terminal.gschema.xml
@@ -24,6 +24,13 @@
@ -4947,9 +4899,9 @@ index a6b7673828e5..f9a7c730ada5 100644
<enum id='org.gnome.Terminal.NewTerminalMode'>
<value nick='window' value='0'/>
<value nick='tab' value='1'/>
@@ -183,6 +190,11 @@
<summary>Highlight foreground colour</summary>
<description>Custom color for the foreground of the text character at the terminals highlight position, as a color specification (can be HTML-style hex digits, or a color name such as “red”). This is ignored if highlight-colors-set is false.</description>
@@ -193,6 +200,11 @@
<summary>Whether to perform Arabic shaping</summary>
<description>If true, shape Arabic text.</description>
</key>
+ <key name="title-mode" enum="org.gnome.Terminal.TitleMode">
+ <default>'replace'</default>
@ -5062,7 +5014,7 @@ index 8b6b55be6188..d0f08f559387 100644
#define TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY "use-custom-command"
#define TERMINAL_PROFILE_USE_SKEY_KEY "use-skey"
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index a333e57097ef..9c9b29f48c83 100644
index 01bea430afc7..2c7d889211d9 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -89,13 +89,16 @@ struct _TerminalScreenPrivate
@ -5540,23 +5492,23 @@ index 55c45c34f685..fa17fb261dca 100644
static void
--
2.23.0
2.24.1
From b12bb99ce2584f906443d0701b0093acc74b1f31 Mon Sep 17 00:00:00 2001
From ddd4fabdb1aead98368321362492a5499f02ba36 Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Wed, 3 Apr 2019 15:38:09 +0200
Subject: [PATCH 17/18] Update the title with the current foreground process
Subject: [PATCH 16/17] Update the title with the current foreground process
https://bugzilla.gnome.org/show_bug.cgi?id=711060
---
src/org.gnome.Terminal.gschema.xml | 5 +++++
src/terminal-schemas.h | 1 +
src/terminal-screen.c | 33 +++++++++++++++++++++++++++++-
3 files changed, 38 insertions(+), 1 deletion(-)
src/terminal-screen.c | 34 +++++++++++++++++++++++++++++-
3 files changed, 39 insertions(+), 1 deletion(-)
diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
index f9a7c730ada5..88459d78adcf 100644
index 0885ea65a0b2..55156b0b4207 100644
--- a/src/org.gnome.Terminal.gschema.xml
+++ b/src/org.gnome.Terminal.gschema.xml
@@ -264,6 +264,11 @@
@ -5584,7 +5536,7 @@ index d0f08f559387..6203c9ed21fa 100644
#define TERMINAL_PROFILE_TITLE_MODE_KEY "title-mode"
#define TERMINAL_PROFILE_TITLE_KEY "title"
diff --git a/src/terminal-screen.c b/src/terminal-screen.c
index 9c9b29f48c83..4d6d057f7fda 100644
index 2c7d889211d9..7279fdf19d20 100644
--- a/src/terminal-screen.c
+++ b/src/terminal-screen.c
@@ -97,7 +97,9 @@ struct _TerminalScreenPrivate
@ -5665,33 +5617,34 @@ index 9c9b29f48c83..4d6d057f7fda 100644
vte_terminal_get_window_title (vte_terminal),
FALSE);
@@ -2055,6 +2080,8 @@ terminal_screen_contents_changed_cb (TerminalScreen *screen)
"Current foreground command-line: %s\n",
priv->current_cmdline);
priv->current_cmdline = g_steal_pointer (&cmdline);
_terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
+ terminal_screen_cook_title (screen);
+
out:
priv->contents_changed_source_id = 0;
return G_SOURCE_REMOVE;
@@ -2139,6 +2166,7 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
TerminalScreen *screen = TERMINAL_SCREEN (terminal);
TerminalScreenPrivate *priv = screen->priv;
@@ -2143,6 +2170,7 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
_terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell precmd\n");
+ priv->application_title = FALSE;
priv->between_preexec_and_precmd = FALSE;
if (priv->contents_changed_source_id != 0)
@@ -2157,6 +2185,7 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
terminal_screen_show_notification (screen);
@@ -2162,6 +2190,8 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
g_clear_pointer (&priv->current_cmdline, g_free);
_terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: (none)\n");
+
+ terminal_screen_cook_title (screen);
}
static gboolean
@@ -2177,6 +2206,8 @@ terminal_screen_shell_preexec_cb (TerminalScreen *screen)
"Current foreground command-line: %s\n",
priv->current_cmdline);
@@ -2182,6 +2212,8 @@ terminal_screen_shell_preexec_cb (TerminalScreen *screen)
priv->current_cmdline = g_steal_pointer (&cmdline);
_terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
+ terminal_screen_cook_title (screen);
+
@ -5699,13 +5652,13 @@ index 9c9b29f48c83..4d6d057f7fda 100644
retval = G_SOURCE_REMOVE;
--
2.23.0
2.24.1
From 8006ed16051470d8c098faa66031d25fdabae385 Mon Sep 17 00:00:00 2001
From 231cb2b1fc588b9399464f765a02f480be822a9c Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Tue, 18 Jun 2019 19:47:14 +0200
Subject: [PATCH 18/18] window: Preserve current toolbox, if any, when opening
Subject: [PATCH 17/17] window: Preserve current toolbox, if any, when opening
a new terminal
This relies on toolbox(1) emitting a terminal escape sequence that
@ -5755,5 +5708,5 @@ index fa17fb261dca..8736859ed633 100644
terminal_screen_get_initial_environment (priv->active_screen),
1.0);
--
2.23.0
2.24.1

View File

@ -7,7 +7,7 @@
Name: gnome-terminal
Version: 3.34.2
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Terminal emulator for GNOME
License: GPLv3+ and GFDL and LGPLv2+
@ -15,6 +15,8 @@ URL: http://www.gnome.org/
Source0: http://download.gnome.org/sources/gnome-terminal/3.34/gnome-terminal-%{version}.tar.xz
Source1: org.gnome.Terminal.gschema.override
Patch0: gnome-terminal-backports-from-upstream.patch
Patch100: gnome-terminal-cntr-ntfy-autottl-ts.patch
Patch101: 0001-build-Don-t-treat-warnings-as-errors.patch
@ -59,6 +61,7 @@ option to the right-click context menu in Nautilus.
%prep
%setup -q
%patch0 -p1 -b .backports
%patch100 -p1 -b .cntr-ntfy-autottl-ts
%patch101 -p1 -b .warnings
@ -106,6 +109,11 @@ make check
%{_datadir}/metainfo/org.gnome.Terminal.Nautilus.metainfo.xml
%changelog
* Mon Feb 24 2020 Debarshi Ray <rishi@fedoraproject.org> - 3.34.2-3
- Add a "shell-command" flag for debugging.
- Backport yet-to-be-released patches from upstream to avoid translation
conflicts.
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 3.34.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild