summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD10
-rw-r--r--gnome-terminal-notify-open-title-transparency.patch5054
3 files changed, 5063 insertions, 9 deletions
diff --git a/.SRCINFO b/.SRCINFO
index a7c561b65f3c..5b886f1d292f 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,5 +1,5 @@
# Generated by mksrcinfo v8
-# Mon Nov 7 23:00:07 UTC 2016
+# Tue Nov 8 13:30:41 UTC 2016
pkgbase = gnome-terminal-fedora
pkgdesc = The GNOME Terminal Emulator with Fedora patches
pkgver = 3.22.1
@@ -20,7 +20,7 @@ pkgbase = gnome-terminal-fedora
makedepends = gconf
makedepends = vala
makedepends = yelp-tools
- depends = vte3-notification>=0.46.0
+ depends = vte3-notification>=0.46.1-2
depends = gsettings-desktop-schemas
depends = dconf
depends = gtk3>=3.12.0
@@ -30,11 +30,11 @@ pkgbase = gnome-terminal-fedora
options = !emptydirs
source = https://download.gnome.org/sources/gnome-terminal/3.22/gnome-terminal-3.22.1.tar.xz
source = 0001-build-Don-t-treat-warnings-as-errors.patch
- source = gnome-terminal-transparency-notify.patch
+ source = gnome-terminal-notify-open-title-transparency.patch
source = org.gnome.Terminal.gschema.override
sha256sums = b00752336eb22d6d9f10c863c166ac73dcbb2ce4b280abdc0c78337e261bb0d4
sha256sums = 83c42ed513e374c181b23da4f9fce39e197c1e09ae328147b2b2bcdfbc4c99d7
- sha256sums = d8f23d2e708e48744d6a730f9d695eec9f169d0e58313ff9a5b019aabcc9dbc0
+ sha256sums = 3b35e56a397aca2d92f49ae8cdcfbee8d73024c2c3342fb74a70c50fcee0a999
sha256sums = 5409b35d1940443d29d810de0560d3303eb74c009e661e8fbfa1030e5ffde92e
pkgname = gnome-terminal-fedora
diff --git a/PKGBUILD b/PKGBUILD
index cfa0dc4a47b9..678625918af6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,7 +11,7 @@ pkgdesc='The GNOME Terminal Emulator with Fedora patches'
arch=('i686' 'x86_64')
url='https://wiki.gnome.org/Apps/Terminal'
license=('GPL')
-depends=('vte3-notification>=0.46.0' 'gsettings-desktop-schemas' 'dconf' 'gtk3>=3.12.0' 'glib2>=2.42.0')
+depends=('vte3-notification>=0.46.1-2' 'gsettings-desktop-schemas' 'dconf' 'gtk3>=3.12.0' 'glib2>=2.42.0')
makedepends=('gnome-doc-utils' 'intltool' 'itstool' 'docbook-xsl' 'desktop-file-utils'
'libnautilus-extension' 'appdata-tools' 'gnome-shell' 'gconf' 'vala' 'yelp-tools')
provides=("${_pkgname}=${pkgver}")
@@ -22,21 +22,21 @@ groups=('gnome')
source=(
"https://download.gnome.org/sources/${_pkgname}/${pkgver::4}/${_pkgname}-${pkgver}.tar.xz"
'0001-build-Don-t-treat-warnings-as-errors.patch'
- 'gnome-terminal-transparency-notify.patch'
+ 'gnome-terminal-notify-open-title-transparency.patch'
'org.gnome.Terminal.gschema.override'
)
sha256sums=(
'b00752336eb22d6d9f10c863c166ac73dcbb2ce4b280abdc0c78337e261bb0d4'
'83c42ed513e374c181b23da4f9fce39e197c1e09ae328147b2b2bcdfbc4c99d7'
- 'd8f23d2e708e48744d6a730f9d695eec9f169d0e58313ff9a5b019aabcc9dbc0'
+ '3b35e56a397aca2d92f49ae8cdcfbee8d73024c2c3342fb74a70c50fcee0a999'
'5409b35d1940443d29d810de0560d3303eb74c009e661e8fbfa1030e5ffde92e'
)
prepare () {
cd "${_pkgname}-${pkgver}"
- patch -Np1 -i '../0001-build-Don-t-treat-warnings-as-errors.patch'
- patch -Np1 -i '../gnome-terminal-transparency-notify.patch'
+ patch -p1 -i '../0001-build-Don-t-treat-warnings-as-errors.patch'
+ patch -p1 -i '../gnome-terminal-notify-open-title-transparency.patch'
autoreconf -fvi
}
diff --git a/gnome-terminal-notify-open-title-transparency.patch b/gnome-terminal-notify-open-title-transparency.patch
new file mode 100644
index 000000000000..73c810f94c4a
--- /dev/null
+++ b/gnome-terminal-notify-open-title-transparency.patch
@@ -0,0 +1,5054 @@
+From f0da9cf1b54795970b1997921157e059be6900ff 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/14] Restore transparency
+
+The transparency settings were removed as a side effect of
+2bff4b63ed3ceef6055e35563e9b0b33ad57349d
+
+This restores them and you will need a compositing window manager to
+use it. The background image setting, also known as faux transparency,
+was not restored.
+
+The transparency checkbox lost its mnemonic accelerator because 't'
+is already taken and using any other letter would make it hard to
+restore the translations of the string.
+---
+ src/org.gnome.Terminal.gschema.xml | 10 +++++
+ src/profile-editor.c | 11 +++++
+ src/profile-preferences.ui | 92 ++++++++++++++++++++++++++++++++++++++
+ src/terminal-schemas.h | 3 ++
+ src/terminal-screen.c | 22 ++++++++-
+ src/terminal-window.c | 7 +++
+ 6 files changed, 144 insertions(+), 1 deletion(-)
+
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index c031c8ace24a..7bdd156e36aa 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -370,6 +370,16 @@
+ <default>'narrow'</default>
+ <summary>Whether ambiguous-width characters are narrow or wide when using UTF-8 encoding</summary>
+ </key>
++ <key name="use-transparent-background" type="b">
++ <default>false</default>
++ <summary>Whether to use a transparent background</summary>
++ </key>
++ <key name="background-transparency-percent" type="i">
++ <default>50</default>
++ <range min="0" max="100"/>
++ <summary>Adjust the amount of transparency</summary>
++ <description>A value between 0 and 100, where 0 is opaque and 100 is fully transparent.</description>
++ </key>
+ </schema>
+
+ <!-- Keybinding settings -->
+diff --git a/src/profile-editor.c b/src/profile-editor.c
+index 002561d77dcb..1a758a9243ec 100644
+--- a/src/profile-editor.c
++++ b/src/profile-editor.c
+@@ -1215,7 +1215,18 @@ terminal_profile_edit (GSettings *profile,
+ "active-id",
+ G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
+
++ g_settings_bind (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND,
++ gtk_builder_get_object (builder, "use-transparent-background"),
++ "active", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
++ g_settings_bind (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND,
++ gtk_builder_get_object (builder, "background-transparent-scale-box"),
++ "sensitive", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_NO_SENSITIVITY);
++ g_settings_bind (profile, TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT,
++ gtk_builder_get_object (builder, "background-transparent-adjustment"),
++ "value", G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
++
+ /* Finished! */
++
+ terminal_util_bind_mnemonic_label_sensitivity (editor);
+
+ terminal_util_dialog_focus_widget (editor, widget_name);
+diff --git a/src/profile-preferences.ui b/src/profile-preferences.ui
+index 5adcb5317e01..b7decb284946 100644
+--- a/src/profile-preferences.ui
++++ b/src/profile-preferences.ui
+@@ -23,6 +23,11 @@
+ <property name="step_increment">1</property>
+ <property name="page_increment">100</property>
+ </object>
++ <object class="GtkAdjustment" id="background-transparent-adjustment">
++ <property name="upper">100</property>
++ <property name="step_increment">1</property>
++ <property name="page_increment">10</property>
++ </object>
+ <object class="GtkListStore" id="cjk-ambiguous-width-model">
+ <columns>
+ <!-- column-name gchararray -->
+@@ -1036,6 +1041,93 @@
+ <property name="position">1</property>
+ </packing>
+ </child>
++ <child>
++ <object class="GtkBox" id="use-transparent-background-box">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">horizontal</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkCheckButton" id="use-transparent-background">
++ <property name="label" translatable="yes">Transparent background</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="use_underline">True</property>
++ <property name="xalign">0</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkBox" id="background-transparent-scale-box">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="orientation">horizontal</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkLabel" id="background-transparent-min-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0.5</property>
++ <property name="label" translatable="yes">none</property>
++ <style>
++ <class name="dim-label"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkScale" id="background-transparent-scale">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="adjustment">background-transparent-adjustment</property>
++ <property name="draw_value">False</property>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="background-transparent-max-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0.5</property>
++ <property name="label" translatable="yes">full</property>
++ <style>
++ <class name="dim-label"/>
++ </style>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
+ </object>
+ </child>
+ </object>
+diff --git a/src/terminal-schemas.h b/src/terminal-schemas.h
+index 4b734a3961d1..e434075d86af 100644
+--- a/src/terminal-schemas.h
++++ b/src/terminal-schemas.h
+@@ -69,6 +69,9 @@ G_BEGIN_DECLS
+ #define TERMINAL_PROFILE_VISIBLE_NAME_KEY "visible-name"
+ #define TERMINAL_PROFILE_WORD_CHAR_EXCEPTIONS_KEY "word-char-exceptions"
+
++#define TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND "use-transparent-background"
++#define TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT "background-transparency-percent"
++
+ #define TERMINAL_SETTING_CONFIRM_CLOSE_KEY "confirm-close"
+ #define TERMINAL_SETTING_DEFAULT_SHOW_MENUBAR_KEY "default-show-menubar"
+ #define TERMINAL_SETTING_ENABLE_MENU_BAR_ACCEL_KEY "menu-accelerator-enabled"
+diff --git a/src/terminal-screen.c b/src/terminal-screen.c
+index 017a38ba8365..682b73644179 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -827,7 +827,9 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ prop_name == I_(TERMINAL_PROFILE_HIGHLIGHT_COLORS_SET_KEY) ||
+ prop_name == I_(TERMINAL_PROFILE_HIGHLIGHT_BACKGROUND_COLOR_KEY) ||
+ prop_name == I_(TERMINAL_PROFILE_HIGHLIGHT_FOREGROUND_COLOR_KEY) ||
+- prop_name == I_(TERMINAL_PROFILE_PALETTE_KEY))
++ prop_name == I_(TERMINAL_PROFILE_PALETTE_KEY) ||
++ prop_name == I_(TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND) ||
++ prop_name == I_(TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT))
+ update_color_scheme (screen);
+
+ if (!prop_name || prop_name == I_(TERMINAL_PROFILE_AUDIBLE_BELL_KEY))
+@@ -897,6 +899,8 @@ update_color_scheme (TerminalScreen *screen)
+ GdkRGBA *cursor_bgp = NULL, *cursor_fgp = NULL;
+ GdkRGBA *highlight_bgp = NULL, *highlight_fgp = NULL;
+ GtkStyleContext *context;
++ GtkWidget *toplevel;
++ gboolean transparent;
+ gboolean use_theme_colors;
+
+ context = gtk_widget_get_style_context (widget);
+@@ -938,6 +942,18 @@ update_color_scheme (TerminalScreen *screen)
+ }
+
+ colors = terminal_g_settings_get_rgba_palette (priv->profile, TERMINAL_PROFILE_PALETTE_KEY, &n_colors);
++
++ transparent = g_settings_get_boolean (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND);
++ if (transparent)
++ {
++ gint transparency_percent;
++
++ transparency_percent = g_settings_get_int (profile, TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT);
++ bg.alpha = (100 - transparency_percent) / 100.0;
++ }
++ else
++ bg.alpha = 1.0;
++
+ vte_terminal_set_colors (VTE_TERMINAL (screen), &fg, &bg,
+ colors, n_colors);
+ vte_terminal_set_color_bold (VTE_TERMINAL (screen), boldp);
+@@ -945,6 +961,10 @@ update_color_scheme (TerminalScreen *screen)
+ vte_terminal_set_color_cursor_foreground (VTE_TERMINAL (screen), cursor_fgp);
+ vte_terminal_set_color_highlight (VTE_TERMINAL (screen), highlight_bgp);
+ vte_terminal_set_color_highlight_foreground (VTE_TERMINAL (screen), highlight_fgp);
++
++ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (screen));
++ if (toplevel != NULL && gtk_widget_is_toplevel (toplevel))
++ gtk_widget_set_app_paintable (toplevel, transparent);
+ }
+
+ static void
+diff --git a/src/terminal-window.c b/src/terminal-window.c
+index a290d9fda733..020c6f00787f 100644
+--- a/src/terminal-window.c
++++ b/src/terminal-window.c
+@@ -2621,6 +2621,8 @@ terminal_window_init (TerminalWindow *window)
+ TerminalWindowPrivate *priv;
+ TerminalApp *app;
+ TerminalSettingsList *profiles_list;
++ GdkScreen *screen;
++ GdkVisual *visual;
+ GSettings *gtk_debug_settings;
+ GtkActionGroup *action_group;
+ GtkAction *action;
+@@ -2637,6 +2639,11 @@ terminal_window_init (TerminalWindow *window)
+
+ gtk_widget_init_template (GTK_WIDGET (window));
+
++ screen = gtk_widget_get_screen (GTK_WIDGET (window));
++ visual = gdk_screen_get_rgba_visual (screen);
++ if (visual != NULL)
++ gtk_widget_set_visual (GTK_WIDGET (window), visual);
++
+ uuid_generate (u);
+ uuid_unparse (u, uuidstr);
+ priv->uuid = g_strdup (uuidstr);
+--
+2.9.3
+
+
+From 2a5f5cac4d06ab927819c79d2255df3252f070b8 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/14] 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
+is usually not a problem because GTK+ sets an opaque region on the
+whole window and things without a background-color get drawn with the
+theme's default background colour. However, to achieve transparency
+we disable the opaque region by making the window app-paintable. This
+can lead to transparent menubars or notebook tabs in some themes. We
+can avoid this by ensuring that the window always renders a background.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=730016
+---
+ src/terminal-window.c | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/src/terminal-window.c b/src/terminal-window.c
+index 020c6f00787f..a9f3ff7d67e2 100644
+--- a/src/terminal-window.c
++++ b/src/terminal-window.c
+@@ -2295,6 +2295,26 @@ terminal_window_realize (GtkWidget *widget)
+ }
+
+ static gboolean
++terminal_window_draw (GtkWidget *widget,
++ cairo_t *cr)
++{
++ if (gtk_widget_get_app_paintable (widget))
++ {
++ GtkStyleContext *context;
++ int width;
++ int height;
++
++ context = gtk_widget_get_style_context (widget);
++ width = gtk_widget_get_allocated_width (widget);
++ height = gtk_widget_get_allocated_height (widget);
++ gtk_render_background (context, cr, 0, 0, width, height);
++ gtk_render_frame (context, cr, 0, 0, width, height);
++ }
++
++ return GTK_WIDGET_CLASS (terminal_window_parent_class)->draw (widget, cr);
++}
++
++static gboolean
+ terminal_window_state_event (GtkWidget *widget,
+ GdkEventWindowState *event)
+ {
+@@ -2832,6 +2852,7 @@ terminal_window_class_init (TerminalWindowClass *klass)
+
+ widget_class->show = terminal_window_show;
+ widget_class->realize = terminal_window_realize;
++ widget_class->draw = terminal_window_draw;
+ widget_class->window_state_event = terminal_window_state_event;
+ widget_class->screen_changed = terminal_window_screen_changed;
+ widget_class->style_updated = terminal_window_style_updated;
+--
+2.9.3
+
+
+From 1547a94fc53d6598dd1885295edf24a44917bc00 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/14] screen, window: Extra padding around transparent
+ terminals in Wayland
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1207943
+---
+ src/terminal-screen.c | 40 +++++++++++++++++++++++++++++++++++++---
+ src/terminal-window.c | 18 ++++++++++++------
+ 2 files changed, 49 insertions(+), 9 deletions(-)
+
+diff --git a/src/terminal-screen.c b/src/terminal-screen.c
+index 682b73644179..be0863b78544 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -137,6 +137,8 @@ static void terminal_screen_system_font_changed_cb (GSettings *,
+ static gboolean terminal_screen_popup_menu (GtkWidget *widget);
+ static gboolean terminal_screen_button_press (GtkWidget *widget,
+ GdkEventButton *event);
++static void terminal_screen_hierarchy_changed (GtkWidget *widget,
++ GtkWidget *previous_toplevel);
+ static gboolean terminal_screen_do_exec (TerminalScreen *screen,
+ FDSetupData *data,
+ GError **error);
+@@ -482,6 +484,7 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ widget_class->drag_data_received = terminal_screen_drag_data_received;
+ widget_class->button_press_event = terminal_screen_button_press;
+ widget_class->popup_menu = terminal_screen_popup_menu;
++ widget_class->hierarchy_changed = terminal_screen_hierarchy_changed;
+
+ terminal_class->child_exited = terminal_screen_child_exited;
+
+@@ -885,6 +888,32 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ }
+
+ static void
++update_toplevel_transparency (TerminalScreen *screen)
++{
++ GtkWidget *widget = GTK_WIDGET (screen);
++ TerminalScreenPrivate *priv = screen->priv;
++ GSettings *profile = priv->profile;
++ GtkWidget *toplevel;
++
++ toplevel = gtk_widget_get_toplevel (widget);
++ if (toplevel != NULL && gtk_widget_is_toplevel (toplevel))
++ {
++ gboolean transparent;
++
++ transparent = g_settings_get_boolean (profile, TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND);
++ if (gtk_widget_get_app_paintable (toplevel) != transparent)
++ {
++ gtk_widget_set_app_paintable (toplevel, transparent);
++
++ /* The opaque region of the toplevel isn't updated until the toplevel is allocated;
++ * set_app_paintable() doesn't force an allocation, so do that manually.
++ */
++ gtk_widget_queue_resize (toplevel);
++ }
++ }
++}
++
++static void
+ update_color_scheme (TerminalScreen *screen)
+ {
+ GtkWidget *widget = GTK_WIDGET (screen);
+@@ -962,9 +991,7 @@ update_color_scheme (TerminalScreen *screen)
+ vte_terminal_set_color_highlight (VTE_TERMINAL (screen), highlight_bgp);
+ vte_terminal_set_color_highlight_foreground (VTE_TERMINAL (screen), highlight_fgp);
+
+- toplevel = gtk_widget_get_toplevel (GTK_WIDGET (screen));
+- if (toplevel != NULL && gtk_widget_is_toplevel (toplevel))
+- gtk_widget_set_app_paintable (toplevel, transparent);
++ update_toplevel_transparency (screen);
+ }
+
+ static void
+@@ -1569,6 +1596,13 @@ terminal_screen_do_popup (TerminalScreen *screen,
+ terminal_screen_popup_info_unref (info);
+ }
+
++static void
++terminal_screen_hierarchy_changed (GtkWidget *widget,
++ GtkWidget *previous_toplevel)
++{
++ update_toplevel_transparency (TERMINAL_SCREEN (widget));
++}
++
+ static gboolean
+ terminal_screen_button_press (GtkWidget *widget,
+ GdkEventButton *event)
+diff --git a/src/terminal-window.c b/src/terminal-window.c
+index a9f3ff7d67e2..d09484e40e66 100644
+--- a/src/terminal-window.c
++++ b/src/terminal-window.c
+@@ -2300,15 +2300,21 @@ terminal_window_draw (GtkWidget *widget,
+ {
+ if (gtk_widget_get_app_paintable (widget))
+ {
++ GtkAllocation child_allocation;
+ GtkStyleContext *context;
+- int width;
+- int height;
++ GtkWidget *child;
++
++ /* Get the *child* allocation, so we don't overwrite window borders */
++ child = gtk_bin_get_child (GTK_BIN (widget));
++ gtk_widget_get_allocation (child, &child_allocation);
+
+ context = gtk_widget_get_style_context (widget);
+- width = gtk_widget_get_allocated_width (widget);
+- height = gtk_widget_get_allocated_height (widget);
+- gtk_render_background (context, cr, 0, 0, width, height);
+- gtk_render_frame (context, cr, 0, 0, width, height);
++ gtk_render_background (context, cr,
++ child_allocation.x, child_allocation.y,
++ child_allocation.width, child_allocation.height);
++ gtk_render_frame (context, cr,
++ child_allocation.x, child_allocation.y,
++ child_allocation.width, child_allocation.height);
+ }
+
+ return GTK_WIDGET_CLASS (terminal_window_parent_class)->draw (widget, cr);
+--
+2.9.3
+
+
+From 3c9bfb4c03c8ccd55914041295d5e0460593b310 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Tue, 27 Jan 2015 18:40:13 +0100
+Subject: [PATCH 04/14] Support desktop notifications from OSC 777
+
+https://bugzilla.gnome.org/show_bug.cgi?id=711059
+---
+ src/terminal-app.c | 32 ++++++++++++++
+ src/terminal-screen.c | 108 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/terminal-tab-label.c | 28 +++++++++++-
+ src/terminal-tab-label.h | 4 ++
+ 4 files changed, 171 insertions(+), 1 deletion(-)
+
+diff --git a/src/terminal-app.c b/src/terminal-app.c
+index 6c783bc1df79..6a79e98183b3 100644
+--- a/src/terminal-app.c
++++ b/src/terminal-app.c
+@@ -374,6 +374,31 @@ app_menu_quit_cb (GSimpleAction *action,
+ gtk_widget_destroy (GTK_WIDGET (window));
+ }
+
++/* Other action callbacks */
++
++static void
++action_activate_tab_cb (GSimpleAction *action,
++ GVariant *parameter,
++ gpointer user_data)
++{
++ GtkApplication *application = user_data;
++ GtkWidget *toplevel;
++ TerminalScreen *screen;
++ const char *uuid;
++
++ g_variant_get (parameter, "&s", &uuid);
++ screen = terminal_app_get_screen_by_uuid (TERMINAL_APP (application), uuid);
++ if (screen == NULL)
++ return;
++
++ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (screen));
++ if (!gtk_widget_is_toplevel (toplevel))
++ return;
++
++ terminal_window_switch_screen (TERMINAL_WINDOW (toplevel), screen);
++ gtk_window_present (GTK_WINDOW (toplevel));
++}
++
+ /* Class implementation */
+
+ G_DEFINE_TYPE (TerminalApp, terminal_app, GTK_TYPE_APPLICATION)
+@@ -396,6 +421,10 @@ terminal_app_startup (GApplication *application)
+ { "quit", app_menu_quit_cb, NULL, NULL, NULL }
+ };
+
++ const GActionEntry other_actions[] = {
++ { "activate-tab", action_activate_tab_cb, "s", NULL, NULL }
++ };
++
+ g_application_set_resource_base_path (application, TERMINAL_RESOURCES_PATH_PREFIX);
+
+ G_APPLICATION_CLASS (terminal_app_parent_class)->startup (application);
+@@ -406,6 +435,9 @@ terminal_app_startup (GApplication *application)
+ g_action_map_add_action_entries (G_ACTION_MAP (application),
+ app_menu_actions, G_N_ELEMENTS (app_menu_actions),
+ application);
++ g_action_map_add_action_entries (G_ACTION_MAP (application),
++ other_actions, G_N_ELEMENTS (other_actions),
++ application);
+
+
+ app_load_css (application);
+diff --git a/src/terminal-screen.c b/src/terminal-screen.c
+index be0863b78544..1195cf10d71d 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -54,6 +54,7 @@
+ #include "terminal-marshal.h"
+ #include "terminal-schemas.h"
+ #include "terminal-screen-container.h"
++#include "terminal-tab-label.h"
+ #include "terminal-util.h"
+ #include "terminal-window.h"
+ #include "terminal-info-bar.h"
+@@ -87,6 +88,7 @@ struct _TerminalScreenPrivate
+ char **initial_env;
+ char **override_command;
+ gboolean shell;
++ gboolean shell_prompt_shown;
+ int child_pid;
+ GSList *match_tags;
+ guint launch_child_source_id;
+@@ -139,11 +141,16 @@ static gboolean terminal_screen_button_press (GtkWidget *widget,
+ GdkEventButton *event);
+ static void terminal_screen_hierarchy_changed (GtkWidget *widget,
+ GtkWidget *previous_toplevel);
++static gboolean terminal_screen_focus_in (GtkWidget *widget,
++ GdkEventFocus *event);
+ static gboolean terminal_screen_do_exec (TerminalScreen *screen,
+ FDSetupData *data,
+ GError **error);
+ static void terminal_screen_child_exited (VteTerminal *terminal,
+ int status);
++static void terminal_screen_notification_received (VteTerminal *terminal,
++ const char *summary,
++ const char *body);
+
+ static void terminal_screen_window_title_changed (VteTerminal *vte_terminal,
+ TerminalScreen *screen);
+@@ -479,6 +486,7 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ object_class->get_property = terminal_screen_get_property;
+ object_class->set_property = terminal_screen_set_property;
+
++ widget_class->focus_in_event = terminal_screen_focus_in;
+ widget_class->realize = terminal_screen_realize;
+ widget_class->style_updated = terminal_screen_style_updated;
+ widget_class->drag_data_received = terminal_screen_drag_data_received;
+@@ -487,6 +495,7 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ widget_class->hierarchy_changed = terminal_screen_hierarchy_changed;
+
+ terminal_class->child_exited = terminal_screen_child_exited;
++ terminal_class->notification_received = terminal_screen_notification_received;
+
+ signals[PROFILE_SET] =
+ g_signal_new (I_("profile-set"),
+@@ -596,6 +605,10 @@ terminal_screen_dispose (GObject *object)
+ TerminalScreen *screen = TERMINAL_SCREEN (object);
+ TerminalScreenPrivate *priv = screen->priv;
+ GtkSettings *settings;
++ TerminalApp *app;
++
++ app = terminal_app_get ();
++ g_application_withdraw_notification (G_APPLICATION (app), priv->uuid);
+
+ settings = gtk_widget_get_settings (GTK_WIDGET (screen));
+ g_signal_handlers_disconnect_matched (settings, G_SIGNAL_MATCH_DATA,
+@@ -1666,6 +1679,43 @@ terminal_screen_button_press (GtkWidget *widget,
+ return FALSE;
+ }
+
++static gboolean
++terminal_screen_focus_in (GtkWidget *widget,
++ GdkEventFocus *event)
++{
++ TerminalScreen *screen = TERMINAL_SCREEN (widget);
++ TerminalApp *app;
++ TerminalWindow *window;
++
++ window = terminal_screen_get_window (screen);
++ if (window != NULL)
++ {
++ TerminalScreenContainer *screen_container;
++
++ screen_container = terminal_screen_container_get_from_screen (screen);
++ if (screen_container != NULL)
++ {
++ GtkWidget *mdi_container;
++
++ mdi_container = terminal_window_get_mdi_container (window);
++ /* FIXME: add interface method to retrieve tab label */
++ if (GTK_IS_NOTEBOOK (mdi_container))
++ {
++ GtkWidget *tab_label;
++
++ tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (mdi_container), GTK_WIDGET (screen_container));
++ terminal_tab_label_set_bold (TERMINAL_TAB_LABEL (tab_label), FALSE);
++ terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label), NULL, NULL);
++ }
++ }
++ }
++
++ app = terminal_app_get ();
++ g_application_withdraw_notification (G_APPLICATION (app), screen->priv->uuid);
++
++ return GTK_WIDGET_CLASS (terminal_screen_parent_class)->focus_in_event (widget, event);
++}
++
+ /**
+ * terminal_screen_get_current_dir:
+ * @screen:
+@@ -1767,6 +1817,64 @@ terminal_screen_child_exited (VteTerminal *terminal,
+ }
+
+ static void
++terminal_screen_notification_received (VteTerminal *terminal,
++ const char *summary,
++ const char *body)
++{
++ TerminalScreen *screen = TERMINAL_SCREEN (terminal);
++ TerminalScreenPrivate *priv = screen->priv;
++ TerminalWindow *window;
++
++ if (G_UNLIKELY (!priv->shell_prompt_shown))
++ {
++ priv->shell_prompt_shown = TRUE;
++ return;
++ }
++
++ window = terminal_screen_get_window (screen);
++ if (window == NULL)
++ return;
++
++ if (gtk_window_is_active (GTK_WINDOW (window)))
++ {
++ GtkWidget *mdi_container;
++ TerminalScreenContainer *screen_container;
++
++ if (screen == terminal_window_get_active (window))
++ return;
++
++ screen_container = terminal_screen_container_get_from_screen (screen);
++ if (screen_container == NULL)
++ return;
++
++ mdi_container = terminal_window_get_mdi_container (window);
++ /* FIXME: add interface method to retrieve tab label */
++ if (GTK_IS_NOTEBOOK (mdi_container))
++ {
++ GtkWidget *tab_label;
++
++ tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (mdi_container), GTK_WIDGET (screen_container));
++ terminal_tab_label_set_bold (TERMINAL_TAB_LABEL (tab_label), TRUE);
++ terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label), "dialog-information-symbolic", summary);
++ }
++ }
++ else
++ {
++ gs_unref_object GNotification *notification = NULL;
++ TerminalApp *app;
++ gs_free char *detailed_action = NULL;
++
++ notification = g_notification_new (summary);
++ g_notification_set_body (notification, body);
++ detailed_action = g_strdup_printf ("app.activate-tab::%s", priv->uuid);
++ g_notification_set_default_action (notification, detailed_action);
++
++ app = terminal_app_get ();
++ g_application_send_notification (G_APPLICATION (app), priv->uuid, notification);
++ }
++}
++
++static void
+ terminal_screen_drag_data_received (GtkWidget *widget,
+ GdkDragContext *context,
+ gint x,
+diff --git a/src/terminal-tab-label.c b/src/terminal-tab-label.c
+index cdd73d0653be..d6909a13ca65 100644
+--- a/src/terminal-tab-label.c
++++ b/src/terminal-tab-label.c
+@@ -34,6 +34,7 @@
+ struct _TerminalTabLabelPrivate
+ {
+ TerminalScreen *screen;
++ GtkWidget *icon;
+ GtkWidget *label;
+ GtkWidget *close_button;
+ gboolean bold;
+@@ -179,7 +180,7 @@ terminal_tab_label_constructed (GObject *object)
+ {
+ TerminalTabLabel *tab_label = TERMINAL_TAB_LABEL (object);
+ TerminalTabLabelPrivate *priv = tab_label->priv;
+- GtkWidget *hbox, *label, *close_button;
++ GtkWidget *hbox, *icon, *label, *close_button;
+
+ G_OBJECT_CLASS (terminal_tab_label_parent_class)->constructed (object);
+
+@@ -189,6 +190,10 @@ terminal_tab_label_constructed (GObject *object)
+
+ gtk_box_set_spacing (GTK_BOX (hbox), SPACING);
+
++ priv->icon = icon = gtk_image_new ();
++ gtk_widget_set_no_show_all (icon, TRUE);
++ gtk_box_pack_start (GTK_BOX (hbox), icon, FALSE, FALSE, 0);
++
+ priv->label = label = gtk_label_new (NULL);
+ gtk_widget_set_halign (label, GTK_ALIGN_CENTER);
+ gtk_widget_set_valign (label, GTK_ALIGN_BASELINE);
+@@ -377,6 +382,27 @@ terminal_tab_label_set_bold (TerminalTabLabel *tab_label,
+ }
+
+ /**
++ * terminal_tab_label_set_icon:
++ * @tab_label: a #TerminalTabLabel
++ * @icon_name: (allow-none): an icon name
++ * @tooltip: (allow-none): text to be used as tooltip
++ *
++ * Shows an icon at the beginning of @tab_label. If @icon_name is
++ * %NULL, then the icon will be hidden.
++ */
++void
++terminal_tab_label_set_icon (TerminalTabLabel *tab_label,
++ const char *icon_name,
++ const char *tooltip)
++{
++ TerminalTabLabelPrivate *priv = tab_label->priv;
++
++ gtk_widget_set_visible (priv->icon, icon_name != NULL);
++ gtk_image_set_from_icon_name (GTK_IMAGE (priv->icon), icon_name, GTK_ICON_SIZE_MENU);
++ gtk_widget_set_tooltip_text (GTK_WIDGET (priv->icon), tooltip);
++}
++
++/**
+ * terminal_tab_label_get_screen:
+ * @tab_label: a #TerminalTabLabel
+ *
+diff --git a/src/terminal-tab-label.h b/src/terminal-tab-label.h
+index 20cfbceb36b0..a987025e0524 100644
+--- a/src/terminal-tab-label.h
++++ b/src/terminal-tab-label.h
+@@ -59,6 +59,10 @@ GtkWidget * terminal_tab_label_new (TerminalScreen *screen);
+ void terminal_tab_label_set_bold (TerminalTabLabel *tab_label,
+ gboolean bold);
+
++void terminal_tab_label_set_icon (TerminalTabLabel *tab_label,
++ const char *icon_name,
++ const char *tooltip);
++
+ TerminalScreen *terminal_tab_label_get_screen (TerminalTabLabel *tab_label);
+
+ G_END_DECLS
+--
+2.9.3
+
+
+From 263efa555d6b866586dddd979f6e356e5997ce2c Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 29 Jan 2015 11:47:21 +0100
+Subject: [PATCH 05/14] 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 | 6 ++++++
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/src/terminal-debug.c b/src/terminal-debug.c
+index 0ff321f1f0e2..dac79c38d82b 100644
+--- a/src/terminal-debug.c
++++ b/src/terminal-debug.c
+@@ -38,6 +38,7 @@ _terminal_debug_init(void)
+ { "settings-list", TERMINAL_DEBUG_SETTINGS_LIST },
+ { "appmenu", TERMINAL_DEBUG_APPMENU },
+ { "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 5dc3ca4f3df0..7499ebe06c88 100644
+--- a/src/terminal-debug.h
++++ b/src/terminal-debug.h
+@@ -34,7 +34,8 @@ typedef enum {
+ TERMINAL_DEBUG_PROFILE = 1 << 6,
+ TERMINAL_DEBUG_SETTINGS_LIST = 1 << 7,
+ TERMINAL_DEBUG_APPMENU = 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 1195cf10d71d..0fd57074930b 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -1687,6 +1687,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)
+ {
+@@ -1825,6 +1827,8 @@ terminal_screen_notification_received (VteTerminal *terminal,
+ TerminalScreenPrivate *priv = screen->priv;
+ TerminalWindow *window;
+
++ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notification received: [%s]: %s\n", summary, body);
++
+ if (G_UNLIKELY (!priv->shell_prompt_shown))
+ {
+ priv->shell_prompt_shown = TRUE;
+@@ -1856,6 +1860,7 @@ terminal_screen_notification_received (VteTerminal *terminal,
+ tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (mdi_container), GTK_WIDGET (screen_container));
+ terminal_tab_label_set_bold (TERMINAL_TAB_LABEL (tab_label), TRUE);
+ terminal_tab_label_set_icon (TERMINAL_TAB_LABEL (tab_label), "dialog-information-symbolic", summary);
++ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notify tab\n");
+ }
+ }
+ else
+@@ -1871,6 +1876,7 @@ terminal_screen_notification_received (VteTerminal *terminal,
+
+ app = terminal_app_get ();
+ g_application_send_notification (G_APPLICATION (app), priv->uuid, notification);
++ _terminal_debug_print (TERMINAL_DEBUG_NOTIFICATIONS, "Notify desktop\n");
+ }
+ }
+
+--
+2.9.3
+
+
+From fda30e766cd72e1f863b8de207cc48126ac81a47 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Mon, 31 Oct 2016 18:41:25 +0100
+Subject: [PATCH 06/14] profile: Drop the 'none' & 'full' markings from the
+ transparency scale
+
+We didn't have translations for those strings and the scale should be
+obvious in itself.
+---
+ src/profile-preferences.ui | 53 ++++------------------------------------------
+ 1 file changed, 4 insertions(+), 49 deletions(-)
+
+diff --git a/src/profile-preferences.ui b/src/profile-preferences.ui
+index b7decb284946..e1cb3470d0ee 100644
+--- a/src/profile-preferences.ui
++++ b/src/profile-preferences.ui
+@@ -1064,56 +1064,11 @@
+ </packing>
+ </child>
+ <child>
+- <object class="GtkBox" id="background-transparent-scale-box">
++ <object class="GtkScale" id="background-transparent-scale">
+ <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="orientation">horizontal</property>
+- <property name="spacing">6</property>
+- <child>
+- <object class="GtkLabel" id="background-transparent-min-label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="xalign">0.5</property>
+- <property name="label" translatable="yes">none</property>
+- <style>
+- <class name="dim-label"/>
+- </style>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkScale" id="background-transparent-scale">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="adjustment">background-transparent-adjustment</property>
+- <property name="draw_value">False</property>
+- </object>
+- <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel" id="background-transparent-max-label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="xalign">0.5</property>
+- <property name="label" translatable="yes">full</property>
+- <style>
+- <class name="dim-label"/>
+- </style>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
++ <property name="can_focus">True</property>
++ <property name="adjustment">background-transparent-adjustment</property>
++ <property name="draw_value">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+--
+2.9.3
+
+
+From e2f6ec56ea96deaeaa491d903eaeef351d635f2d Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Tue, 17 May 2016 21:08:55 +0200
+Subject: [PATCH 07/14] Restore separate menuitems for opening tabs and windows
+
+Without the separate menuitems, it was not possible to open new tabs or
+windows solely by using the mouse if the preference was set to windows
+or tabs respectively. This isn't ideal for accessibility.
+
+The preference is also hard to discover and there was simply no strong
+justification for unifying the menuitems in the first place.
+
+The org.gnome.Terminal.Legacy.Settings:new-terminal-mode preference is
+now ignored.
+
+This effectively reverts 99fc0136a5be6323b81b8b339482bc699b53e1f9 and
+1fecaa3685a8a4d4e7027fc6c9e60df2ca69f5b6
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1300826
+---
+ src/preferences.ui | 53 --------------------------------------------------
+ src/terminal-menus.ui | 7 -------
+ src/terminal-prefs.c | 9 +--------
+ src/terminal-schemas.h | 1 -
+ src/terminal-window.c | 49 +++++++++++++++++++++++-----------------------
+ src/terminal.xml | 7 +++++--
+ 6 files changed, 31 insertions(+), 95 deletions(-)
+
+diff --git a/src/preferences.ui b/src/preferences.ui
+index 6acab386512b..5c5a1aed3560 100644
+--- a/src/preferences.ui
++++ b/src/preferences.ui
+@@ -2,24 +2,6 @@
+ <!-- Generated with glade 3.19.0 -->
+ <interface>
+ <requires lib="gtk+" version="3.0"/>
+- <object class="GtkListStore" id="new-terminal-mode-liststore">
+- <columns>
+- <!-- column-name label -->
+- <column type="gchararray"/>
+- <!-- column-name id -->
+- <column type="gchararray"/>
+- </columns>
+- <data>
+- <row>
+- <col id="0" translatable="yes" comments="Open new terminal in new window">Window</col>
+- <col id="1">window</col>
+- </row>
+- <row>
+- <col id="0" translatable="yes" comments="Open new terminal in new tab">Tab</col>
+- <col id="1">tab</col>
+- </row>
+- </data>
+- </object>
+ <object class="GtkListStore" id="theme-variant-liststore">
+ <columns>
+ <!-- column-name label -->
+@@ -143,21 +125,6 @@
+ </packing>
+ </child>
+ <child>
+- <object class="GtkLabel" id="label480">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="halign">start</property>
+- <property name="valign">center</property>
+- <property name="label" translatable="yes">Open _new terminals in:</property>
+- <property name="use_underline">True</property>
+- <property name="mnemonic_widget">new-terminal-mode-combobox</property>
+- </object>
+- <packing>
+- <property name="left_attach">0</property>
+- <property name="top_attach">1</property>
+- </packing>
+- </child>
+- <child>
+ <object class="GtkComboBox" id="theme-variant-combobox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+@@ -177,26 +144,6 @@
+ <property name="top_attach">0</property>
+ </packing>
+ </child>
+- <child>
+- <object class="GtkComboBox" id="new-terminal-mode-combobox">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="halign">start</property>
+- <property name="valign">center</property>
+- <property name="model">new-terminal-mode-liststore</property>
+- <property name="id_column">1</property>
+- <child>
+- <object class="GtkCellRendererText" id="renderer2"/>
+- <attributes>
+- <attribute name="text">0</attribute>
+- </attributes>
+- </child>
+- </object>
+- <packing>
+- <property name="left_attach">1</property>
+- <property name="top_attach">1</property>
+- </packing>
+- </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+diff --git a/src/terminal-menus.ui b/src/terminal-menus.ui
+index e248590084d8..fa67540162d5 100644
+--- a/src/terminal-menus.ui
++++ b/src/terminal-menus.ui
+@@ -19,13 +19,6 @@
+ <menu id="app-menu">
+ <section>
+ <item>
+- <attribute name="label" translatable="yes">_New Terminal</attribute>
+- <attribute name="action">win.new-terminal</attribute>
+- <attribute name="target" type="(ss)">('default','default')</attribute>
+- </item>
+- </section>
+- <section>
+- <item>
+ <attribute name="label" translatable="yes">_Preferences</attribute>
+ <attribute name="action">app.preferences</attribute>
+ </item>
+diff --git a/src/terminal-prefs.c b/src/terminal-prefs.c
+index cd7b0d94f18b..d88bf8885cf6 100644
+--- a/src/terminal-prefs.c
++++ b/src/terminal-prefs.c
+@@ -560,7 +560,7 @@ terminal_prefs_show_preferences (GtkWindow *transient_parent,
+ GtkWidget *show_menubar_button, *disable_mnemonics_button, *disable_menu_accel_button;
+ GtkWidget *disable_shortcuts_button;
+ GtkWidget *tree_view_container, *new_button, *edit_button, *clone_button, *remove_button;
+- GtkWidget *theme_variant_label, *theme_variant_combo, *new_terminal_mode_combo;
++ GtkWidget *theme_variant_label, *theme_variant_combo;
+ GtkWidget *default_hbox, *default_label;
+ GtkWidget *close_button, *help_button;
+ GtkTreeSelection *selection;
+@@ -586,7 +586,6 @@ terminal_prefs_show_preferences (GtkWindow *transient_parent,
+ "default-show-menubar-checkbutton", &show_menubar_button,
+ "theme-variant-label", &theme_variant_label,
+ "theme-variant-combobox", &theme_variant_combo,
+- "new-terminal-mode-combobox", &new_terminal_mode_combo,
+ "disable-mnemonics-checkbutton", &disable_mnemonics_button,
+ "disable-shortcuts-checkbutton", &disable_shortcuts_button,
+ "disable-menu-accel-checkbutton", &disable_menu_accel_button,
+@@ -628,12 +627,6 @@ terminal_prefs_show_preferences (GtkWindow *transient_parent,
+ gtk_widget_set_visible (theme_variant_combo, FALSE);
+ #endif /* GTK+ 3.19 */
+
+- g_settings_bind (settings,
+- TERMINAL_SETTING_NEW_TERMINAL_MODE_KEY,
+- new_terminal_mode_combo,
+- "active-id",
+- G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
+-
+ /* Keybindings tab */
+
+ g_settings_bind (settings,
+diff --git a/src/terminal-schemas.h b/src/terminal-schemas.h
+index e434075d86af..a4ba4a6fae66 100644
+--- a/src/terminal-schemas.h
++++ b/src/terminal-schemas.h
+@@ -78,7 +78,6 @@ G_BEGIN_DECLS
+ #define TERMINAL_SETTING_ENABLE_MNEMONICS_KEY "mnemonics-enabled"
+ #define TERMINAL_SETTING_ENABLE_SHORTCUTS_KEY "shortcuts-enabled"
+ #define TERMINAL_SETTING_ENCODINGS_KEY "encodings"
+-#define TERMINAL_SETTING_NEW_TERMINAL_MODE_KEY "new-terminal-mode"
+ #define TERMINAL_SETTING_SCHEMA_VERSION "schema-version"
+ #define TERMINAL_SETTING_SHELL_INTEGRATION_KEY "shell-integration-enabled"
+ #define TERMINAL_SETTING_TAB_POLICY_KEY "tab-policy"
+diff --git a/src/terminal-window.c b/src/terminal-window.c
+index d09484e40e66..fd8e33b20bfd 100644
+--- a/src/terminal-window.c
++++ b/src/terminal-window.c
+@@ -117,7 +117,8 @@ struct _TerminalWindowPrivate
+
+ #define PROFILE_DATA_KEY "GT::Profile"
+
+-#define FILE_NEW_TERMINAL_UI_PATH "/menubar/File/FileNewTerminalProfiles"
++#define FILE_NEW_TERMINAL_TAB_UI_PATH "/menubar/File/FileNewTabProfiles"
++#define FILE_NEW_TERMINAL_WINDOW_UI_PATH "/menubar/File/FileNewWindowProfiles"
+ #define SET_ENCODING_UI_PATH "/menubar/Terminal/TerminalSetEncoding/EncodingsPH"
+ #define SET_ENCODING_ACTION_NAME_PREFIX "TerminalSetEncoding"
+
+@@ -385,7 +386,6 @@ action_new_terminal_cb (GSimpleAction *action,
+ gs_free char *new_working_directory = NULL;
+ const char *mode_str, *uuid_str;
+ TerminalNewTerminalMode mode;
+- GdkModifierType modifiers;
+
+ g_assert (TERMINAL_IS_WINDOW (window));
+
+@@ -397,18 +397,8 @@ action_new_terminal_cb (GSimpleAction *action,
+ mode = TERMINAL_NEW_TERMINAL_MODE_TAB;
+ else if (g_str_equal (mode_str, "window"))
+ mode = TERMINAL_NEW_TERMINAL_MODE_WINDOW;
+- else {
+- mode = g_settings_get_enum (terminal_app_get_global_settings (app),
+- TERMINAL_SETTING_NEW_TERMINAL_MODE_KEY);
+- if (gtk_get_current_event_state (&modifiers) &&
+- (modifiers & gtk_accelerator_get_default_mod_mask () & GDK_CONTROL_MASK)) {
+- /* Invert */
+- if (mode == TERMINAL_NEW_TERMINAL_MODE_WINDOW)
+- mode = TERMINAL_NEW_TERMINAL_MODE_TAB;
+- else
+- mode = TERMINAL_NEW_TERMINAL_MODE_WINDOW;
+- }
+- }
++ else
++ return;
+
+ profiles_list = terminal_app_get_profiles_list (app);
+ if (g_str_equal (uuid_str, "current"))
+@@ -451,9 +441,9 @@ file_new_terminal_callback (GtkAction *action,
+ uuid = g_strdup ("current");
+
+ name = gtk_action_get_name (action);
+- if (g_str_has_prefix (name, "FileNewTab"))
++ if (g_str_has_prefix (name, "FileNewTab") || g_str_has_prefix (name, "PopupNewTab"))
+ param = g_variant_new ("(ss)", "tab", uuid);
+- else if (g_str_has_prefix (name, "FileNewWindow"))
++ else if (g_str_has_prefix (name, "FileNewWindow") || g_str_has_prefix (name, "PopupNewTerminal"))
+ param = g_variant_new ("(ss)", "window", uuid);
+ else
+ param = g_variant_new ("(ss)", "default", uuid);
+@@ -1485,8 +1475,6 @@ terminal_window_update_new_terminal_menus (TerminalWindow *window)
+ gtk_action_set_visible (action, have_single_profile);
+ action = gtk_action_group_get_action (priv->action_group, "FileNewWindow");
+ gtk_action_set_visible (action, have_single_profile);
+- action = gtk_action_group_get_action (priv->action_group, "FileNewTerminal");
+- gtk_action_set_visible (action, have_single_profile);
+
+ if (have_single_profile)
+ {
+@@ -1508,7 +1496,19 @@ terminal_window_update_new_terminal_menus (TerminalWindow *window)
+ GSettings *profile = (GSettings *) p->data;
+ char name[32];
+
+- g_snprintf (name, sizeof (name), "FileNewTerminal.%u", n);
++ g_snprintf (name, sizeof (name), "FileNewTab.%u", n);
++ terminal_window_create_new_terminal_action (window,
++ profile,
++ name,
++ n,
++ G_CALLBACK (file_new_terminal_callback));
++
++ gtk_ui_manager_add_ui (priv->ui_manager, priv->new_terminal_ui_id,
++ FILE_NEW_TERMINAL_TAB_UI_PATH,
++ name, name,
++ GTK_UI_MANAGER_MENUITEM, FALSE);
++
++ g_snprintf (name, sizeof (name), "FileNewWindow.%u", n);
+ terminal_window_create_new_terminal_action (window,
+ profile,
+ name,
+@@ -1516,7 +1516,7 @@ terminal_window_update_new_terminal_menus (TerminalWindow *window)
+ G_CALLBACK (file_new_terminal_callback));
+
+ gtk_ui_manager_add_ui (priv->ui_manager, priv->new_terminal_ui_id,
+- FILE_NEW_TERMINAL_UI_PATH,
++ FILE_NEW_TERMINAL_WINDOW_UI_PATH,
+ name, name,
+ GTK_UI_MANAGER_MENUITEM, FALSE);
+
+@@ -2457,7 +2457,8 @@ terminal_window_init (TerminalWindow *window)
+ {
+ /* Toplevel */
+ { "File", NULL, N_("_File") },
+- { "FileNewTerminalProfiles", STOCK_NEW_WINDOW, N_("Open _Terminal")},
++ { "FileNewWindowProfiles", STOCK_NEW_WINDOW, N_("Open _Terminal")},
++ { "FileNewTabProfiles", STOCK_NEW_TAB, N_("Open Ta_b")},
+ { "Edit", NULL, N_("_Edit") },
+ { "View", NULL, N_("_View") },
+ { "Search", NULL, N_("_Search") },
+@@ -2475,9 +2476,6 @@ terminal_window_init (TerminalWindow *window)
+ { "FileNewTab", STOCK_NEW_TAB, N_("Open Ta_b"), "<shift><control>T",
+ NULL,
+ G_CALLBACK (file_new_terminal_callback) },
+- { "FileNewTerminal", STOCK_NEW_TAB, N_("Open _Terminal"), NULL,
+- NULL,
+- G_CALLBACK (file_new_terminal_callback) },
+ { "FileNewProfile", "document-open", N_("New _Profile"), "",
+ NULL,
+ G_CALLBACK (file_new_profile_callback) },
+@@ -2622,6 +2620,9 @@ terminal_window_init (TerminalWindow *window)
+ { "PopupNewTerminal", NULL, N_("Open _Terminal"), NULL,
+ NULL,
+ G_CALLBACK (file_new_terminal_callback) },
++ { "PopupNewTab", NULL, N_("Open Ta_b"), NULL,
++ NULL,
++ G_CALLBACK (file_new_terminal_callback) },
+ { "PopupLeaveFullscreen", NULL, N_("L_eave Full Screen"), NULL,
+ NULL,
+ G_CALLBACK (popup_leave_fullscreen_callback) },
+diff --git a/src/terminal.xml b/src/terminal.xml
+index d830149a4738..242ebe13e240 100644
+--- a/src/terminal.xml
++++ b/src/terminal.xml
+@@ -1,8 +1,10 @@
+ <ui>
+ <menubar>
+ <menu action="File">
+- <menuitem action="FileNewTerminal" />
+- <menu action="FileNewTerminalProfiles" />
++ <menuitem action="FileNewWindow" />
++ <menu action="FileNewWindowProfiles" />
++ <menuitem action="FileNewTab" />
++ <menu action="FileNewTabProfiles" />
+ <separator />
+ <menuitem action="FileNewProfile" />
+ <menuitem action="FileSaveContents" />
+@@ -87,6 +89,7 @@
+ <menuitem action="PopupNumberInfo" />
+ <separator />
+ <menuitem action="PopupNewTerminal" />
++ <menuitem action="PopupNewTab" />
+ <separator />
+ <menuitem action="PopupCopy" />
+ <menuitem action="PopupPaste" />
+--
+2.9.3
+
+
+From 548ddf372d1281d51d85b7e7568461f1d9519082 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Tue, 1 Nov 2016 13:10:01 +0100
+Subject: [PATCH 08/14] Revert "profile: Remove the "Command" sub-heading"
+
+This reverts commit 8e27479299d075df0a52d0e8e7baeab344dcaa6c.
+---
+ src/profile-preferences.ui | 214 +++++++++++++++++++++++++--------------------
+ 1 file changed, 121 insertions(+), 93 deletions(-)
+
+diff --git a/src/profile-preferences.ui b/src/profile-preferences.ui
+index e1cb3470d0ee..0c09bb08c202 100644
+--- a/src/profile-preferences.ui
++++ b/src/profile-preferences.ui
+@@ -538,65 +538,127 @@
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <object class="GtkVBox" id="vbox81">
++ <object class="GtkLabel" id="label36">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">Command</property>
++ <attributes>
++ <attribute name="weight" value="bold"/>
++ </attributes>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkAlignment" id="alignment10107">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="left_padding">12</property>
+ <child>
+- <object class="GtkVBox" id="vbox92">
++ <object class="GtkVBox" id="vbox81">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="spacing">6</property>
+ <child>
+- <object class="GtkCheckButton" id="login-shell-checkbutton">
+- <property name="label" translatable="yes">_Run command as a login shell</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">False</property>
+- <property name="use_underline">True</property>
+- <property name="xalign">0.5</property>
+- <property name="draw_indicator">True</property>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkCheckButton" id="use-custom-command-checkbutton">
+- <property name="label" translatable="yes">Ru_n a custom command instead of my shell</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">False</property>
+- <property name="use_underline">True</property>
+- <property name="xalign">0.5</property>
+- <property name="draw_indicator">True</property>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkAlignment" id="custom-command-box">
++ <object class="GtkVBox" id="vbox92">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="left_padding">12</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkCheckButton" id="login-shell-checkbutton">
++ <property name="label" translatable="yes">_Run command as a login shell</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="use_underline">True</property>
++ <property name="xalign">0.5</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkCheckButton" id="use-custom-command-checkbutton">
++ <property name="label" translatable="yes">Ru_n a custom command instead of my shell</property>
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="use_underline">True</property>
++ <property name="xalign">0.5</property>
++ <property name="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
+ <child>
+- <object class="GtkHBox" id="hbox134">
++ <object class="GtkAlignment" id="custom-command-box">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="left_padding">12</property>
++ <child>
++ <object class="GtkHBox" id="hbox134">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkLabel" id="custom-command-entry-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">Custom co_mmand:</property>
++ <property name="use_underline">True</property>
++ <property name="justify">center</property>
++ <property name="mnemonic_widget">custom-command-entry</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="custom-command-entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkHBox" id="hbox27">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <object class="GtkLabel" id="custom-command-entry-label">
++ <object class="GtkLabel" id="exit-action-combobox-label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Custom co_mmand:</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">When command _exits:</property>
+ <property name="use_underline">True</property>
+ <property name="justify">center</property>
+- <property name="mnemonic_widget">custom-command-entry</property>
+- <property name="xalign">0</property>
++ <property name="mnemonic_widget">exit-action-combobox</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+@@ -605,70 +667,36 @@
+ </packing>
+ </child>
+ <child>
+- <object class="GtkEntry" id="custom-command-entry">
++ <object class="GtkComboBox" id="exit-action-combobox">
+ <property name="visible">True</property>
+- <property name="can_focus">True</property>
++ <property name="can_focus">False</property>
++ <property name="model">model3</property>
++ <property name="focus_on_click">False</property>
++ <child>
++ <object class="GtkCellRendererText" id="renderer3"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
+ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+- </child>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">2</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkHBox" id="hbox27">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="spacing">12</property>
+- <child>
+- <object class="GtkLabel" id="exit-action-combobox-label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">When command _exits:</property>
+- <property name="use_underline">True</property>
+- <property name="justify">center</property>
+- <property name="mnemonic_widget">exit-action-combobox</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkComboBox" id="exit-action-combobox">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="model">model3</property>
+- <property name="focus_on_click">False</property>
+- <child>
+- <object class="GtkCellRendererText" id="renderer3"/>
+- <attributes>
+- <attribute name="text">0</attribute>
+- </attributes>
+- </child>
+- </object>
+ <packing>
+ <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">1</property>
++ <property name="fill">True</property>
++ <property name="position">3</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">3</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
+ </packing>
+ </child>
+ </object>
+@@ -680,9 +708,9 @@
+ </child>
+ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+- <property name="position">0</property>
++ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+--
+2.9.3
+
+
+From 5dcf98af89fc6a351272f590db7e539efeedca23 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 16:02:13 +0200
+Subject: [PATCH 09/14] Revert "screen: Remove unused description and
+ user_title API"
+
+This reverts commit 3bb41272b7509a16ec2a5cd93e44f73d5743b626.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/terminal-screen.c | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/terminal-screen.h | 6 +++++
+ 2 files changed, 69 insertions(+)
+
+diff --git a/src/terminal-screen.c b/src/terminal-screen.c
+index 0fd57074930b..2e08351d71cc 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -84,6 +84,7 @@ struct _TerminalScreenPrivate
+ GSettings *profile; /* never NULL */
+ guint profile_changed_id;
+ guint profile_forgotten_id;
++ char *title;
+ char *initial_working_directory;
+ char **initial_env;
+ char **override_command;
+@@ -109,6 +110,7 @@ enum {
+ PROP_ICON_TITLE,
+ PROP_ICON_TITLE_SET,
+ PROP_TITLE,
++ PROP_DESCRIPTION,
+ PROP_INITIAL_ENVIRONMENT
+ };
+
+@@ -440,6 +442,9 @@ terminal_screen_get_property (GObject *object,
+ case PROP_TITLE:
+ g_value_set_string (value, terminal_screen_get_title (screen));
+ break;
++ case PROP_DESCRIPTION:
++ g_value_take_string (value, terminal_screen_get_description (screen));
++ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -465,6 +470,7 @@ terminal_screen_set_property (GObject *object,
+ case PROP_ICON_TITLE:
+ case PROP_ICON_TITLE_SET:
+ case PROP_TITLE:
++ case PROP_DESCRIPTION:
+ /* not writable */
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+@@ -566,6 +572,13 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ NULL,
+ G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+
++ g_object_class_install_property (object_class,
++ PROP_DESCRIPTION,
++ g_param_spec_string ("description", NULL, NULL,
++ NULL,
++ G_PARAM_READABLE |
++ G_PARAM_STATIC_STRINGS));
++
+ g_object_class_install_property
+ (object_class,
+ PROP_INITIAL_ENVIRONMENT,
+@@ -640,6 +653,7 @@ terminal_screen_finalize (GObject *object)
+
+ terminal_screen_set_profile (screen, NULL);
+
++ g_free (priv->title);
+ g_free (priv->initial_working_directory);
+ g_strfreev (priv->override_command);
+ g_strfreev (priv->initial_env);
+@@ -782,6 +796,21 @@ terminal_screen_get_icon_title_set (TerminalScreen *screen)
+ return vte_terminal_get_icon_title (VTE_TERMINAL (screen)) != NULL;
+ }
+
++char *
++terminal_screen_get_description (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++ const char *title;
++
++ /* use --title argument if one was supplied, otherwise ask the profile */
++ if (priv->title)
++ title = priv->title;
++
++ return g_strdup_printf ("%s — %d",
++ title && title[0] ? title : _("Terminal"),
++ screen->priv->child_pid);
++}
++
+ static void
+ terminal_screen_profile_changed_cb (GSettings *profile,
+ const char *prop_name,
+@@ -1091,6 +1120,7 @@ terminal_screen_set_profile (TerminalScreen *screen,
+ g_object_unref (old_profile);
+
+ g_object_notify (G_OBJECT (screen), "profile");
++ g_object_notify (G_OBJECT (screen), "description");
+ }
+
+ GSettings*
+@@ -1495,6 +1525,8 @@ out:
+ g_strfreev (env);
+ free_fd_setup_data (data);
+
++ g_object_notify (G_OBJECT (screen), "description");
++
+ return result;
+ }
+
+@@ -1718,6 +1750,35 @@ terminal_screen_focus_in (GtkWidget *widget,
+ return GTK_WIDGET_CLASS (terminal_screen_parent_class)->focus_in_event (widget, event);
+ }
+
++void
++terminal_screen_set_user_title (TerminalScreen *screen,
++ const char *title)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++
++ g_return_if_fail (TERMINAL_IS_SCREEN (screen));
++
++ if (g_strcmp0 (priv->title, title) == 0)
++ return;
++
++ g_free (priv->title);
++ priv->title = title && title[0] ? g_strdup (title) : NULL;
++
++ g_object_notify (G_OBJECT (screen), "description");
++}
++
++const char*
++terminal_screen_get_user_title (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv;
++
++ g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL);
++
++ priv = screen->priv;
++
++ return priv->title ? priv->title : _("Terminal");
++}
++
+ /**
+ * terminal_screen_get_current_dir:
+ * @screen:
+@@ -1775,6 +1836,8 @@ terminal_screen_child_exited (VteTerminal *terminal,
+
+ priv->child_pid = -1;
+
++ g_object_notify (G_OBJECT (screen), "description");
++
+ action = g_settings_get_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION_KEY);
+
+ switch (action)
+diff --git a/src/terminal-screen.h b/src/terminal-screen.h
+index f3b4013d6157..133c2309e8a8 100644
+--- a/src/terminal-screen.h
++++ b/src/terminal-screen.h
+@@ -103,9 +103,15 @@ void terminal_screen_set_initial_environment (TerminalScreen *screen,
+ char **argv);
+ char ** terminal_screen_get_initial_environment (TerminalScreen *screen);
+
++const char *terminal_screen_get_user_title (TerminalScreen *screen);
+ const char* terminal_screen_get_title (TerminalScreen *screen);
+ const char* terminal_screen_get_icon_title (TerminalScreen *screen);
+ gboolean terminal_screen_get_icon_title_set (TerminalScreen *screen);
++char * terminal_screen_get_description (TerminalScreen *screen);
++
++void terminal_screen_set_user_title (TerminalScreen *screen,
++ const char *text);
++
+
+ char *terminal_screen_get_current_dir (TerminalScreen *screen);
+
+--
+2.9.3
+
+
+From 324ec0e92f8514696bb49a279308ef7d3790677a Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 17:39:48 +0200
+Subject: [PATCH 10/14] Revert "Remove the static title setting from profile
+ preferences"
+
+This reverts commit e9cb8fea14a849704074c5d69f173bcf4dc2fb27.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/migration.c | 3 ++
+ src/org.gnome.Terminal.gschema.xml | 5 +++
+ src/profile-editor.c | 3 ++
+ src/profile-preferences.ui | 86 ++++++++++++++++++++++++++++++++++++++
+ src/terminal-schemas.h | 1 +
+ src/terminal-screen.c | 9 ++++
+ 6 files changed, 107 insertions(+)
+
+diff --git a/src/migration.c b/src/migration.c
+index 34401c75b0a4..6ac53badcb26 100644
+--- a/src/migration.c
++++ b/src/migration.c
+@@ -89,6 +89,7 @@ enum {
+ #define KEY_SCROLL_ON_KEYSTROKE "scroll_on_keystroke"
+ #define KEY_SCROLL_ON_OUTPUT "scroll_on_output"
+ #define KEY_SILENT_BELL "silent_bell"
++#define KEY_TITLE "title"
+ #define KEY_USE_CUSTOM_COMMAND "use_custom_command"
+ #define KEY_USE_SYSTEM_FONT "use_system_font"
+ #define KEY_USE_THEME_COLORS "use_theme_colors"
+@@ -411,6 +412,8 @@ migrate_profile (TerminalSettingsList *list,
+ migrate_bool (client, path, KEY_BOLD_COLOR_SAME_AS_FG,
+ settings, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG_KEY,
+ FALSE);
++ migrate_string (client, path, KEY_TITLE,
++ settings, TERMINAL_PROFILE_TITLE_KEY);
+ migrate_bool (client, path, KEY_ALLOW_BOLD,
+ settings, TERMINAL_PROFILE_ALLOW_BOLD_KEY,
+ FALSE);
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index 7bdd156e36aa..d117b41c1685 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -167,6 +167,11 @@
+ <summary>Highlight foreground colour</summary>
+ <description>Custom color for the foreground of the text character at the terminal's 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>
+ </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="allow-bold" type="b">
+ <default>true</default>
+ <summary>Whether to allow bold text</summary>
+diff --git a/src/profile-editor.c b/src/profile-editor.c
+index 1a758a9243ec..09dc79c94ed5 100644
+--- a/src/profile-editor.c
++++ b/src/profile-editor.c
+@@ -1161,6 +1161,9 @@ terminal_profile_edit (GSettings *profile,
+ "active",
+ G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET |
+ G_SETTINGS_BIND_INVERT_BOOLEAN);
++ g_settings_bind (profile, TERMINAL_PROFILE_TITLE_KEY,
++ gtk_builder_get_object (builder, "title-entry"), "text",
++ G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
+ g_settings_bind (profile, TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY,
+ gtk_builder_get_object (builder,
+ "use-custom-command-checkbutton"),
+diff --git a/src/profile-preferences.ui b/src/profile-preferences.ui
+index 0c09bb08c202..fdae0ae245cf 100644
+--- a/src/profile-preferences.ui
++++ b/src/profile-preferences.ui
+@@ -533,6 +533,92 @@
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
++ <object class="GtkVBox" id="vbox79">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkLabel" id="label33">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">Title</property>
++ <attributes>
++ <attribute name="weight" value="bold"/>
++ </attributes>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkAlignment" id="alignment10108">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="left_padding">12</property>
++ <child>
++ <object class="GtkVBox" id="vbox93">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="spacing">6</property>
++ <child>
++ <object class="GtkHBox" id="hbox137">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkLabel" id="title-entry-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">_Title:</property>
++ <property name="use_underline">True</property>
++ <property name="justify">center</property>
++ <property name="mnemonic_widget">title-entry</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="title-entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ </object>
++ <packing>
++ <property name="expand">True</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
+ <object class="GtkVBox" id="vbox80">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+diff --git a/src/terminal-schemas.h b/src/terminal-schemas.h
+index a4ba4a6fae66..eb2aa7f8448e 100644
+--- a/src/terminal-schemas.h
++++ b/src/terminal-schemas.h
+@@ -62,6 +62,7 @@ G_BEGIN_DECLS
+ #define TERMINAL_PROFILE_SCROLLBAR_POLICY_KEY "scrollbar-policy"
+ #define TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE_KEY "scroll-on-keystroke"
+ #define TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY "scroll-on-output"
++#define TERMINAL_PROFILE_TITLE_KEY "title"
+ #define TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY "use-custom-command"
+ #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 2e08351d71cc..f45383ab54cd 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -800,11 +800,14 @@ char *
+ terminal_screen_get_description (TerminalScreen *screen)
+ {
+ TerminalScreenPrivate *priv = screen->priv;
++ gs_free char *title_string = NULL;
+ const char *title;
+
+ /* use --title argument if one was supplied, otherwise ask the profile */
+ if (priv->title)
+ title = priv->title;
++ else
++ title = title_string = g_settings_get_string (priv->profile, TERMINAL_PROFILE_TITLE_KEY);
+
+ return g_strdup_printf ("%s — %d",
+ title && title[0] ? title : _("Terminal"),
+@@ -854,6 +857,12 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ vte_terminal_set_cjk_ambiguous_width (vte_terminal, (int) width);
+ }
+
++ if (!prop_name ||
++ prop_name == I_(TERMINAL_PROFILE_TITLE_KEY))
++ {
++ g_object_notify (object, "description");
++ }
++
+ if (gtk_widget_get_realized (GTK_WIDGET (screen)) &&
+ (!prop_name ||
+ prop_name == I_(TERMINAL_PROFILE_USE_SYSTEM_FONT_KEY) ||
+--
+2.9.3
+
+
+From d2cdce6bd77e1d17ce47823ffaa1eb8680b2805f Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Tue, 17 Feb 2015 17:06:17 +0100
+Subject: [PATCH 11/14] Restore translations for setting a title and
+ transparency
+
+---
+ po/am.po | 4 ++--
+ po/an.po | 8 ++++----
+ po/ar.po | 12 ++++++------
+ po/as.po | 12 ++++++------
+ po/ast.po | 4 ++--
+ po/az.po | 4 ++--
+ po/be.po | 3 +++
+ po/be@latin.po | 4 ++--
+ po/bg.po | 6 ++++++
+ po/bn_IN.po | 7 +++++--
+ po/bs.po | 7 +++++++
+ po/ca.po | 9 +++++++++
+ po/ca@valencia.po | 9 +++++++++
+ po/cs.po | 9 +++++++++
+ po/cy.po | 4 ++--
+ po/da.po | 12 ++++++------
+ po/de.po | 12 ++++++------
+ po/dz.po | 4 ++--
+ po/el.po | 11 +++++++----
+ po/en@shaw.po | 4 ++--
+ po/en_CA.po | 4 ++--
+ po/en_GB.po | 12 ++++++------
+ po/eo.po | 4 ++--
+ po/es.po | 12 ++++++------
+ po/et.po | 3 +++
+ po/eu.po | 12 ++++++------
+ po/fa.po | 11 +++++++----
+ po/fi.po | 9 +++++++++
+ po/fr.po | 9 +++++++++
+ po/fur.po | 8 ++++++--
+ po/ga.po | 3 +++
+ po/gl.po | 12 ++++++------
+ po/gu.po | 12 ++++++------
+ po/he.po | 12 ++++++------
+ po/hi.po | 13 ++++++-------
+ po/hr.po | 7 +++++++
+ po/hu.po | 11 +++++++----
+ po/hy.po | 4 ++--
+ po/id.po | 9 +++++++++
+ po/it.po | 9 +++++++++
+ po/ja.po | 9 +++++++++
+ po/ka.po | 2 +-
+ po/kk.po | 9 +++++++++
+ po/kn.po | 11 +++++++----
+ po/ko.po | 9 +++++++++
+ po/ku.po | 4 ++--
+ po/lt.po | 9 +++++++++
+ po/lv.po | 12 ++++++++++++
+ po/mai.po | 4 ++--
+ po/mg.po | 4 ++--
+ po/mk.po | 4 ++--
+ po/ml.po | 4 ++--
+ po/mn.po | 4 ++--
+ po/mr.po | 12 ++++++------
+ po/ms.po | 4 ++--
+ po/nb.po | 9 +++++++++
+ po/nds.po | 4 ++--
+ po/ne.po | 8 ++++----
+ po/nl.po | 11 +++++++----
+ po/nn.po | 4 ++--
+ po/oc.po | 8 ++++----
+ po/or.po | 4 ++--
+ po/pa.po | 19 +++++++++----------
+ po/pl.po | 6 ++++++
+ po/ps.po | 4 ++--
+ po/pt.po | 12 ++++++------
+ po/pt_BR.po | 11 +++++++----
+ po/ro.po | 4 ++--
+ po/ru.po | 13 +++++++++++++
+ po/rw.po | 3 +--
+ po/si.po | 4 ++--
+ po/sk.po | 9 +++++++++
+ po/sl.po | 11 +++++++----
+ po/sq.po | 4 ++--
+ po/sr.po | 18 ++++++++++--------
+ po/sr@latin.po | 18 ++++++++++--------
+ po/sv.po | 6 ++++++
+ po/ta.po | 19 +++++++++----------
+ po/te.po | 19 +++++++++----------
+ po/tg.po | 8 ++++----
+ po/th.po | 12 ++++++------
+ po/tr.po | 6 ++++++
+ po/ug.po | 4 ++--
+ po/uk.po | 12 ++++++------
+ po/vi.po | 11 +++++++----
+ po/wa.po | 4 ++--
+ po/xh.po | 4 ++--
+ po/zh_CN.po | 11 +++++++----
+ po/zh_HK.po | 11 +++++++----
+ po/zh_TW.po | 11 +++++++----
+ 90 files changed, 486 insertions(+), 258 deletions(-)
+
+diff --git a/po/am.po b/po/am.po
+index 3445d96da657..a5fadb3a8d48 100644
+--- a/po/am.po
++++ b/po/am.po
+@@ -614,8 +614,8 @@ msgid "_Text color:"
+ msgstr "የ_ጽሑፍ ቀለም፦"
+
+ #: ../src/gnome-terminal.glade2.h:102
+-msgid "_Transparent background"
+-msgstr "_የሚያሳይ መደብ"
++msgid "Transparent background"
++msgstr "የሚያሳይ መደብ"
+
+ #: ../src/gnome-terminal.glade2.h:103
+ msgid "_Update login records when command is launched"
+diff --git a/po/an.po b/po/an.po
+index fcec2668aa11..2c6be805b598 100644
+--- a/po/an.po
++++ b/po/an.po
+@@ -2241,8 +2241,8 @@ msgstr "_Zarrar a finestra"
+ #~ msgid "Use custom default terminal si_ze"
+ #~ msgstr "Emplegar grandaria predeterminada presonali_zada de terminal"
+
+-#~ msgid "Title"
+-#~ msgstr "Titol"
++msgid "Title"
++msgstr "Titol"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr ""
+@@ -2340,8 +2340,8 @@ msgstr "_Zarrar a finestra"
+ #~ msgid "_Input Methods"
+ #~ msgstr "Me_todos de dentrada"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Titol:"
++msgid "_Title:"
++msgstr "_Titol:"
+
+ #~ msgid "Keyboard Shortcuts"
+ #~ msgstr "Alcorces de teclau"
+diff --git a/po/ar.po b/po/ar.po
+index fa2b4b54ff13..f68b20a5b826 100644
+--- a/po/ar.po
++++ b/po/ar.po
+@@ -2313,11 +2313,11 @@ msgstr "أغ_لق النافذة"
+ #~ msgid "Default size:"
+ #~ msgstr "الحجم المبدئي:"
+
+-#~ msgid "Title"
+-#~ msgstr "العنوان"
++msgid "Title"
++msgstr "العنوان"
+
+-#~ msgid "_Title:"
+-#~ msgstr "ال_عنوان:"
++msgid "_Title:"
++msgstr "ال_عنوان:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "العنوان والأمر"
+@@ -3108,8 +3108,8 @@ msgstr "أغ_لق النافذة"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "صورة الخلفية ت_لتف"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "خلفية _شفافة"
++msgid "Transparent background"
++msgstr "خلفية شفافة"
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "_ظلل شفافية أو صورة الخلفية:"
+diff --git a/po/as.po b/po/as.po
+index 3fade2b8cb12..7efcd44ab4bb 100644
+--- a/po/as.po
++++ b/po/as.po
+@@ -2163,11 +2163,11 @@ msgstr "উইন্ডো বন্ধ কৰক (_l)"
+ #~ msgid "Default size:"
+ #~ msgstr "অবিকল্পিত আকাৰ:"
+
+-#~ msgid "Title"
+-#~ msgstr "শীৰ্ষক"
++msgid "Title"
++msgstr "শীৰ্ষক"
+
+-#~ msgid "_Title:"
+-#~ msgstr "শীৰ্ষক (_T):"
++msgid "_Title:"
++msgstr "শীৰ্ষক (_T):"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "শীৰ্ষক আৰু কমান্ড"
+@@ -2979,8 +2979,8 @@ msgstr "উইন্ডো বন্ধ কৰক (_l)"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "পটভূমিৰ ছবি স্ক্ৰল কৰক (_s)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "স্বচ্চ পটভূমি (_T)"
++msgid "Transparent background"
++msgstr "স্বচ্চ পটভূমি "
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "স্বচ্ছ বা ছবিৰ সৈতে পটভূমি ছায়া আচ্ছন্ন কৰক (_h):"
+diff --git a/po/ast.po b/po/ast.po
+index d1c6e7b8174a..4210820a1429 100644
+--- a/po/ast.po
++++ b/po/ast.po
+@@ -1598,8 +1598,8 @@ msgid "_Text color:"
+ msgstr "Color del _testu:"
+
+ #: ../src/profile-preferences.glade.h:77
+-msgid "_Transparent background"
+-msgstr "Fondu _tresparente"
++msgid "Transparent background"
++msgstr "Fondu tresparente"
+
+ #: ../src/profile-preferences.glade.h:78
+ msgid "_Underline color:"
+diff --git a/po/az.po b/po/az.po
+index 586c1e4d827b..6bed64a15ddc 100644
+--- a/po/az.po
++++ b/po/az.po
+@@ -620,8 +620,8 @@ msgid "_Text color:"
+ msgstr "_Mətn rəngi:"
+
+ #: ../src/gnome-terminal.glade2.h:102
+-msgid "_Transparent background"
+-msgstr "_Şəffaf arxa plan"
++msgid "Transparent background"
++msgstr "Şəffaf arxa plan"
+
+ #: ../src/gnome-terminal.glade2.h:103
+ msgid "_Update login records when command is launched"
+diff --git a/po/be.po b/po/be.po
+index 1e45906547be..cd3fe0b7b6b2 100644
+--- a/po/be.po
++++ b/po/be.po
+@@ -2015,3 +2015,6 @@ msgstr ""
+ msgid "C_lose Window"
+ msgstr "_Закрыць акно"
+
++msgid "Transparent background"
++msgstr "Празрысты фон"
++
+diff --git a/po/be@latin.po b/po/be@latin.po
+index 82ef0664ae1e..73d74fbeb124 100644
+--- a/po/be@latin.po
++++ b/po/be@latin.po
+@@ -1426,8 +1426,8 @@ msgid "_Text color:"
+ msgstr "Koler _tekstu:"
+
+ #: ../src/profile-preferences.glade.h:73
+-msgid "_Transparent background"
+-msgstr "_Prazrysty fon"
++msgid "Transparent background"
++msgstr "Prazrysty fon"
+
+ #: ../src/profile-preferences.glade.h:74
+ msgid "_Update login records when command is launched"
+diff --git a/po/bg.po b/po/bg.po
+index f42c22c94678..e224d3800304 100644
+--- a/po/bg.po
++++ b/po/bg.po
+@@ -2281,3 +2281,9 @@ msgstr ""
+ #: ../src/terminal-window.c:3727
+ msgid "C_lose Window"
+ msgstr "_Затваряне на този прозорец"
++
++msgid "Transparent background"
++msgstr "Прозрачен фон"
++
++msgid "_Title:"
++msgstr "_Заглавие:"
+\ No newline at end of file
+diff --git a/po/bn_IN.po b/po/bn_IN.po
+index f196e5084797..55989e165566 100644
+--- a/po/bn_IN.po
++++ b/po/bn_IN.po
+@@ -2356,5 +2356,8 @@ msgstr "উইন্ডো বন্ধ করুন (_l)"
+ #~ msgid "_Input Methods"
+ #~ msgstr "ইনপুট পদ্ধতি (_I)"
+
+-#~ msgid "_Title:"
+-#~ msgstr "শিরোনাম: (_T)"
++msgid "_Title:"
++msgstr "শিরোনাম: (_T)"
++
++msgid "Transparent background"
++msgstr "স্বচ্চ পটভূমি "
+diff --git a/po/bs.po b/po/bs.po
+index 49e710859ac9..6c06b272eacf 100644
+--- a/po/bs.po
++++ b/po/bs.po
+@@ -680,6 +680,10 @@ msgstr "Kratica tastature za povećavanje fonta"
+ msgid "Keyboard shortcut to make font smaller"
+ msgstr "Kratica tastature za smanjivanje fonta"
+
++#: ../src/gnome-terminal.glade2.h:102
++msgid "Transparent background"
++msgstr "Providna pozadina"
++
+ #: ../src/org.gnome.Terminal.gschema.xml.h:78
+ msgid "Keyboard shortcut to make font normal-size"
+ msgstr "Kratica tastature za postavljanje fonta na normalnu veličinu"
+@@ -2054,3 +2058,6 @@ msgstr ""
+ #: ../src/terminal-window.c:3652
+ msgid "C_lose Window"
+ msgstr "_Zatvori prozor"
++
++msgid "_Title:"
++msgstr "_Naslov:"
+diff --git a/po/ca.po b/po/ca.po
+index c80c2572d11e..b39546b26fcf 100644
+--- a/po/ca.po
++++ b/po/ca.po
+@@ -2304,3 +2304,12 @@ msgstr "Tanca la _finestra"
+
+ #~ msgid "Whether to use a dark theme variant"
+ #~ msgstr "Si s'ha d'utilitzar la variant de tema fosc"
++
++msgid "Transparent background"
++msgstr "Fons transparent"
++
++msgid "Title"
++msgstr "Títol"
++
++msgid "_Title:"
++msgstr "Tít_ol:"
+\ No newline at end of file
+diff --git a/po/ca@valencia.po b/po/ca@valencia.po
+index 2dafab8ca90d..e9752ab36882 100644
+--- a/po/ca@valencia.po
++++ b/po/ca@valencia.po
+@@ -2092,3 +2092,12 @@ msgstr ""
+ #: ../src/terminal-window.c:3645
+ msgid "C_lose Window"
+ msgstr "Tanca la _finestra"
++
++msgid "Transparent background"
++msgstr "Fons transparent"
++
++msgid "Title"
++msgstr "Títol"
++
++msgid "_Title:"
++msgstr "Tít_ol:"
+diff --git a/po/cs.po b/po/cs.po
+index f87b88f9bb3a..d2e90ddc7068 100644
+--- a/po/cs.po
++++ b/po/cs.po
+@@ -2253,3 +2253,12 @@ msgstr ""
+ #: ../src/terminal-window.c:3849
+ msgid "C_lose Window"
+ msgstr "_Zavřít okno"
++
++msgid "Transparent background"
++msgstr "Průsvitné pozadí"
++
++msgid "Title"
++msgstr "Záhlaví"
++
++msgid "_Title:"
++msgstr "Zá_hlaví:"
+\ No newline at end of file
+diff --git a/po/cy.po b/po/cy.po
+index 644df82363f1..f0c96e7aa85b 100644
+--- a/po/cy.po
++++ b/po/cy.po
+@@ -1448,8 +1448,8 @@ msgid "_Text color:"
+ msgstr "Lliw'r _testun:"
+
+ #: ../src/profile-preferences.glade.h:73
+-msgid "_Transparent background"
+-msgstr "Cefndir _tryloyw"
++msgid "Transparent background"
++msgstr "Cefndir tryloyw"
+
+ #: ../src/profile-preferences.glade.h:74
+ msgid "_Update login records when command is launched"
+diff --git a/po/da.po b/po/da.po
+index 193a58c0fd14..f957d0c7cf1f 100644
+--- a/po/da.po
++++ b/po/da.po
+@@ -2368,11 +2368,11 @@ msgstr "_Luk vindue"
+ #~ msgid "Default size:"
+ #~ msgstr "Standardstørrelse:"
+
+-#~ msgid "Title"
+-#~ msgstr "Titel"
++msgid "Title"
++msgstr "Titel"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Titel:"
++msgid "_Title:"
++msgstr "_Titel:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Titel og kommando"
+@@ -3183,8 +3183,8 @@ msgstr "_Luk vindue"
+ #~ msgid "_Solid color"
+ #~ msgstr "_Ensfarvet"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "_Gennemsigtig baggrund"
++msgid "Transparent background"
++msgstr "Gennemsigtig baggrund"
+
+ #~ msgid ""
+ #~ "You already have a profile called “%s”. Do you want to create another "
+diff --git a/po/de.po b/po/de.po
+index 7e098bd312ac..c38bc2854549 100644
+--- a/po/de.po
++++ b/po/de.po
+@@ -2428,11 +2428,11 @@ msgstr "Fenster _schließen"
+ #~ msgid "Default size:"
+ #~ msgstr "Vorgabegröße:"
+
+-#~ msgid "Title"
+-#~ msgstr "Titel"
++msgid "Title"
++msgstr "Titel"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Titel:"
++msgid "_Title:"
++msgstr "_Titel:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Titel und Befehl"
+@@ -3263,8 +3263,8 @@ msgstr "Fenster _schließen"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "Hintergrundbild _folgt Bildlauf"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "_Transparenter Hintergrund"
++msgid "Transparent background"
++msgstr "Transparenter Hintergrund"
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "Transparenz und Bildhintergründe _abdunkeln:"
+diff --git a/po/dz.po b/po/dz.po
+index d97e6102b850..061a09dc9edb 100644
+--- a/po/dz.po
++++ b/po/dz.po
+@@ -1551,8 +1551,8 @@ msgid "_Text color:"
+ msgstr "ཚིག་ཡིག་ཚོས་གཞི་:(_T)"
+
+ #: ../src/profile-preferences.glade.h:77
+-msgid "_Transparent background"
+-msgstr "དྭངས་གསལ་རྒྱབ་གཞི།(_T)"
++msgid "Transparent background"
++msgstr "དྭངས་གསལ་རྒྱབ་གཞི།"
+
+ #: ../src/profile-preferences.glade.h:78
+ #, fuzzy
+diff --git a/po/el.po b/po/el.po
+index 911f7bd0483b..dc8ebc1e7f45 100644
+--- a/po/el.po
++++ b/po/el.po
+@@ -2440,11 +2440,11 @@ msgstr "Κ_λείσιμο παραθύρου"
+ #~ msgid "Default size:"
+ #~ msgstr "Προεπιλεγμένο μέγεθος:"
+
+-#~ msgid "Title"
+-#~ msgstr "Τίτλος"
++msgid "Title"
++msgstr "Τίτλος"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Τίτλος:"
++msgid "_Title:"
++msgstr "_Τίτλος:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Τίτλος και εντολή"
+@@ -2515,3 +2515,6 @@ msgstr "Κ_λείσιμο παραθύρου"
+
+ #~ msgid "_Input Methods"
+ #~ msgstr "_Μέθοδοι εισαγωγής"
++
++msgid "Transparent background"
++msgstr "Διάφανο παρασκήνιο"
+diff --git a/po/en@shaw.po b/po/en@shaw.po
+index 82b2d53401b2..67b429810d40 100644
+--- a/po/en@shaw.po
++++ b/po/en@shaw.po
+@@ -1468,8 +1468,8 @@ msgid "_Text color:"
+ msgstr "_𐑑𐑧𐑒𐑕𐑑 𐑒𐑳𐑤𐑼:"
+
+ #: ../src/profile-preferences.glade.h:78
+-msgid "_Transparent background"
+-msgstr "_𐑑𐑮𐑨𐑯𐑕𐑐𐑸𐑩𐑯𐑑 𐑚𐑨𐑒𐑜𐑮𐑬𐑯𐑛"
++msgid "Transparent background"
++msgstr "𐑑𐑮𐑨𐑯𐑕𐑐𐑸𐑩𐑯𐑑 𐑚𐑨𐑒𐑜𐑮𐑬𐑯𐑛"
+
+ #: ../src/profile-preferences.glade.h:79
+ msgid "_Underline color:"
+diff --git a/po/en_CA.po b/po/en_CA.po
+index 6c9e0cd73d63..3ffa89b7cfee 100644
+--- a/po/en_CA.po
++++ b/po/en_CA.po
+@@ -557,8 +557,8 @@ msgid "_Text color:"
+ msgstr "_Text colour:"
+
+ #: ../src/gnome-terminal.glade2.h:86
+-msgid "_Transparent background"
+-msgstr "_Transparent background"
++msgid "Transparent background"
++msgstr "Transparent background"
+
+ #: ../src/gnome-terminal.glade2.h:87
+ msgid "_Update login records when command is launched"
+diff --git a/po/en_GB.po b/po/en_GB.po
+index 2fb1448eccbe..59a617aaa48b 100644
+--- a/po/en_GB.po
++++ b/po/en_GB.po
+@@ -2386,8 +2386,8 @@ msgstr "C_lose Window"
+ #~ msgid "Default size:"
+ #~ msgstr "Default size:"
+
+-#~ msgid "Title"
+-#~ msgstr "Title"
++msgid "Title"
++msgstr "Title"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "When terminal commands set their o_wn titles:"
+@@ -2473,8 +2473,8 @@ msgstr "C_lose Window"
+ #~ msgid "_Input Methods"
+ #~ msgstr "_Input Methods"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Title:"
++msgid "_Title:"
++msgstr "_Title:"
+
+ #~ msgid "Add or Remove Terminal Encodings"
+ #~ msgstr "Add or Remove Terminal Encodings"
+@@ -3176,8 +3176,8 @@ msgstr "C_lose Window"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "Background image _scrolls"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "_Transparent background"
++msgid "Transparent background"
++msgstr "Transparent background"
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "S_hade transparent or image background:"
+diff --git a/po/eo.po b/po/eo.po
+index 567c08dc1da8..d067c0e9a7b9 100644
+--- a/po/eo.po
++++ b/po/eo.po
+@@ -2299,8 +2299,8 @@ msgstr "_Fermi la fenestron"
+ #~ msgid "_Input Methods"
+ #~ msgstr "_Enigmetodoj"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Titolo:"
++msgid "_Title:"
++msgstr "_Titolo:"
+
+ #~ msgid "On the left side"
+ #~ msgstr "Maldekstre"
+diff --git a/po/es.po b/po/es.po
+index 70fc6fcf9a88..4bd3c0cdbe71 100644
+--- a/po/es.po
++++ b/po/es.po
+@@ -2410,11 +2410,11 @@ msgstr "_Cerrar ventana"
+ #~ msgid "Default size:"
+ #~ msgstr "Tamaño predeterminado:"
+
+-#~ msgid "Title"
+-#~ msgstr "Título"
++msgid "Title"
++msgstr "Título"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Título:"
++msgid "_Title:"
++msgstr "_Título:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Título y comando"
+@@ -3291,8 +3291,8 @@ msgstr "_Cerrar ventana"
+ #~ msgid "_Solid color"
+ #~ msgstr "Color _sólido"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "Fondo _transparente"
++msgid "Transparent background"
++msgstr "Fondo transparente"
+
+ #~ msgid "No such profile \"%s\", using default profile\n"
+ #~ msgstr "No existe el perfil «%s», usando el perfil predeterminado\n"
+diff --git a/po/et.po b/po/et.po
+index 4b1c2a7c67e4..770761168806 100644
+--- a/po/et.po
++++ b/po/et.po
+@@ -1747,3 +1747,6 @@ msgstr "Su_lge aken"
+
+ #~ msgid "Choose base profile"
+ #~ msgstr "Vali põhiprofiil"
++
++msgid "Transparent background"
++msgstr "Läbipaistev taust"
+diff --git a/po/eu.po b/po/eu.po
+index c7b9e2b4529e..b6619c68ddd6 100644
+--- a/po/eu.po
++++ b/po/eu.po
+@@ -2369,11 +2369,11 @@ msgstr "It_xi leihoa"
+ #~ msgid "Default size:"
+ #~ msgstr "Tamaina lehenetsia:"
+
+-#~ msgid "Title"
+-#~ msgstr "Titulua"
++msgid "Title"
++msgstr "Titulua"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Titulua:"
++msgid "_Title:"
++msgstr "_Titulua:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Titulua eta komandoa"
+@@ -3169,8 +3169,8 @@ msgstr "It_xi leihoa"
+ #~ msgid "_Solid color"
+ #~ msgstr "_Kolore solidoa"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "_Atzeko plano gardena"
++msgid "Transparent background"
++msgstr "Atzeko plano gardena"
+
+ #~ msgid ""
+ #~ "You already have a profile called “%s”. Do you want to create another "
+diff --git a/po/fa.po b/po/fa.po
+index cb551a1ecd07..1dbf53896b80 100644
+--- a/po/fa.po
++++ b/po/fa.po
+@@ -2363,8 +2363,8 @@ msgstr "_بستن پنجره"
+ #~ msgid "Use custom default terminal si_ze"
+ #~ msgstr "استفاده از اندازه‌ی _سفارشی پایانه‌ی پیش‌فرض"
+
+-#~ msgid "Title"
+-#~ msgstr "عنوان"
++msgid "Title"
++msgstr "عنوان"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "وقتی که فرمان‌های پایانه عنوان‌های _خودشان را تنظیم می‌کنند:"
+@@ -2447,5 +2447,8 @@ msgstr "_بستن پنجره"
+ #~ msgid "_Input Methods"
+ #~ msgstr "روش‌های _ورودی"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_عنوان:"
++msgid "_Title:"
++msgstr "_عنوان:"
++
++msgid "Transparent background"
++msgstr "پس‌زمینه‌ی شفاف"
+diff --git a/po/fi.po b/po/fi.po
+index a8cd6e1cb1f1..d6bbef3dbe0b 100644
+--- a/po/fi.po
++++ b/po/fi.po
+@@ -2294,9 +2294,18 @@ msgstr "_Sulje ikkuna"
+ #~ msgid "_Update login records when command is launched"
+ #~ msgstr "_Päivitä kirjautumistallenne kun komento käynnistetään"
+
++msgid "Transparent background"
++msgstr "Läpinäkyvä tausta"
++
+ #~| msgid "Error parsing command: %s"
+ #~ msgid "Missing command"
+ #~ msgstr "Puuttuva komento"
+
+ #~ msgid "Whether to use a dark theme variant"
+ #~ msgstr "Käytetäänkö teeman tummaan muunnelmaa"
++
++msgid "Title"
++msgstr "Otsikko"
++
++msgid "_Title:"
++msgstr "_Otsikko:"
+\ No newline at end of file
+diff --git a/po/fr.po b/po/fr.po
+index 40019d1a82ec..7fc7cebb5281 100644
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -2309,3 +2309,12 @@ msgstr "Fermer _la fenêtre"
+
+ #~ msgid "_Same as text color"
+ #~ msgstr "_Même couleur que le texte"
++
++msgid "Transparent background"
++msgstr "Arrière-plan transparent"
++
++msgid "Title"
++msgstr "Titre"
++
++msgid "_Title:"
++msgstr "_Titre :"
+diff --git a/po/fur.po b/po/fur.po
+index 226600854fcd..908d9f6fb127 100644
+--- a/po/fur.po
++++ b/po/fur.po
+@@ -634,6 +634,10 @@ msgstr ""
+ msgid "Which encoding to use"
+ msgstr "Codifiche di doprâ"
+
++#: ../src/gnome-terminal.glade2.h:86
++msgid "Transparent background"
++msgstr "Fondâl trasparent"
++
+ #: ../src/org.gnome.Terminal.gschema.xml.h:63
+ msgid ""
+ "Whether ambiguous-width characters are narrow or wide when using UTF-8 "
+@@ -3145,8 +3149,8 @@ msgstr "_Siere barcon"
+ #~ msgid "_Input Methods"
+ #~ msgstr "_Cemût inserî test"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Titul:"
++msgid "_Title:"
++msgstr "_Titul:"
+
+ #~ msgid ""
+ #~ "text/plain dropped on terminal had wrong format (%d) or length (%d)\n"
+diff --git a/po/ga.po b/po/ga.po
+index 93d5fa9d1481..feb87dce3d6b 100644
+--- a/po/ga.po
++++ b/po/ga.po
+@@ -1925,3 +1925,6 @@ msgstr "_Dún Fuinneog"
+ #: ../src/terminal-window.c:3582
+ msgid "C_lose Terminal"
+ msgstr "_Dún Teirminéal"
++
++msgid "Transparent background"
++msgstr "Cúlra trédhearcach"
+diff --git a/po/gl.po b/po/gl.po
+index 910f98611ab5..4047f7f8f26a 100644
+--- a/po/gl.po
++++ b/po/gl.po
+@@ -2383,11 +2383,11 @@ msgstr "P_echar a xanela"
+ #~ msgid "Default size:"
+ #~ msgstr "Tamaño predeterminado:"
+
+-#~ msgid "Title"
+-#~ msgstr "Título"
++msgid "Title"
++msgstr "Título"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Título:"
++msgid "_Title:"
++msgstr "_Título:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Título e orde"
+@@ -3246,8 +3246,8 @@ msgstr "P_echar a xanela"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "A imaxe de fondo _desprázase"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "Fondo _transparente"
++msgid "Transparent background"
++msgstr "Fondo transparente"
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "_Sombra transparente ou imaxe de fondo:"
+diff --git a/po/gu.po b/po/gu.po
+index 76b459cf8dc5..153ab9177385 100644
+--- a/po/gu.po
++++ b/po/gu.po
+@@ -2155,8 +2155,8 @@ msgstr "વિન્ડો બંધ કરો (_l)"
+ #~ msgid "Default size:"
+ #~ msgstr "મૂળભૂત માપ:"
+
+-#~ msgid "Title"
+-#~ msgstr "શીર્ષક"
++msgid "Title"
++msgstr "શીર્ષક"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "જ્યારે આદેશો તેમના પોતાના શીર્ષકો સુયોજીત કરે (_w):"
+@@ -2203,8 +2203,8 @@ msgstr "વિન્ડો બંધ કરો (_l)"
+ #~ msgid "_Input Methods"
+ #~ msgstr "ઈનપુટ માટેની પધ્ધિતિઓ (_I)"
+
+-#~ msgid "_Title:"
+-#~ msgstr "શીર્ષક (_T):"
++msgid "_Title:"
++msgstr "શીર્ષક (_T):"
+
+ #~ msgid "Keyboard shortcut to switch to tab 1"
+ #~ msgstr "ટૅબ ૧ પર જવા માટે કીબોર્ડનું ટુંકાણ"
+@@ -2944,8 +2944,8 @@ msgstr "વિન્ડો બંધ કરો (_l)"
+ #~ msgid "_Solid color"
+ #~ msgstr "ઘટ્ટ રંગ (_S)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "પારદર્શક પાશ્વ ભાગનો ભાગ (_T)"
++msgid "Transparent background"
++msgstr "પારદર્શક પાશ્વ ભાગનો ભાગ"
+
+ #~ msgid "No such profile \"%s\", using default profile\n"
+ #~ msgstr "\"%s\" જેવી કોઈ રૂપરેખા નથી, મૂળભૂત રૂપરેખા વાપરી રહ્યા છે\n"
+diff --git a/po/he.po b/po/he.po
+index 57cb2d0d110f..618cc5a878b3 100644
+--- a/po/he.po
++++ b/po/he.po
+@@ -2333,11 +2333,11 @@ msgstr "סגירת ה_חלון"
+ #~ msgid "Default size:"
+ #~ msgstr "גודל בררת מחדל:"
+
+-#~ msgid "Title"
+-#~ msgstr "כותרת"
++msgid "Title"
++msgstr "כותרת"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_כותרת:"
++msgid "_Title:"
++msgstr "_כותרת:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "כותרת ופקודה"
+@@ -3194,8 +3194,8 @@ msgstr "סגירת ה_חלון"
+ #~ msgid "_Solid color"
+ #~ msgstr "צבע _אחיד"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "רקע _שקוף"
++msgid "Transparent background"
++msgstr "רקע שקוף"
+
+ #~ msgid "No such profile \"%s\", using default profile\n"
+ #~ msgstr "No such profile \"%s\", using default profile\n"
+diff --git a/po/hi.po b/po/hi.po
+index 2d7dc5b14008..4a0a03194bab 100644
+--- a/po/hi.po
++++ b/po/hi.po
+@@ -2267,9 +2267,8 @@ msgstr "विंडो बंद करें (_l)"
+ #~ msgid "Use custom default terminal si_ze"
+ #~ msgstr "कस्टम डिफ़ॉल्ट टर्मिनल आकार का उपयोग करें (_z)"
+
+-#~| msgid "_Title:"
+-#~ msgid "Title"
+-#~ msgstr "शीर्षक"
++msgid "Title"
++msgstr "शीर्षक"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "जब टर्मिनल कमांड उनका अपना शीर्षक सेट करता है (_w):"
+@@ -2349,8 +2348,8 @@ msgstr "विंडो बंद करें (_l)"
+ #~ msgid "_Input Methods"
+ #~ msgstr "इनपुट विधियाँ (_I)"
+
+-#~ msgid "_Title:"
+-#~ msgstr "शीर्षक (_T):"
++msgid "_Title:"
++msgstr "शीर्षक (_T):"
+
+ #~ msgid "Disable connection to session manager"
+ #~ msgstr "सत्र प्रबंधक में कनेक्शन निष्क्रिय करें"
+@@ -2979,8 +2978,8 @@ msgstr "विंडो बंद करें (_l)"
+ #~ msgid "_Background image"
+ #~ msgstr "पृष्ठभूमि छवि (_B)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "पारदर्शी पृष्ठभूमि (_T)"
++msgid "Transparent background"
++msgstr "पारदर्शी पृष्ठभूमि"
+
+ #~ msgid "S/Key Challenge Response"
+ #~ msgstr "एस/कुंजी चैलेंज प्रतिक्रिया"
+diff --git a/po/hr.po b/po/hr.po
+index 099791b7db35..af9e6ad78c86 100644
+--- a/po/hr.po
++++ b/po/hr.po
+@@ -2287,3 +2287,10 @@ msgstr ""
+ #: ../src/terminal-window.c:3864
+ msgid "C_lose Window"
+ msgstr "_Zatvori prozor"
++
++#: ../src/profile-preferences.glade.h:69
++msgid "Transparent background"
++msgstr "Prozirna pozadina"
++
++msgid "_Title:"
++msgstr "_Naslov:"
+diff --git a/po/hu.po b/po/hu.po
+index 8fc02debf569..516bbee9dd89 100644
+--- a/po/hu.po
++++ b/po/hu.po
+@@ -2375,11 +2375,11 @@ msgstr "_Ablak bezárása"
+ #~ msgid "Default size:"
+ #~ msgstr "Alapértelmezett méret:"
+
+-#~ msgid "Title"
+-#~ msgstr "Cím"
++msgid "Title"
++msgstr "Cím"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Cím:"
++msgid "_Title:"
++msgstr "_Cím:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Cím és parancs"
+@@ -2699,3 +2699,6 @@ msgstr "_Ablak bezárása"
+
+ #~ msgid "Background image"
+ #~ msgstr "Háttérkép"
++
++msgid "Transparent background"
++msgstr "Áttetsző háttér"
+diff --git a/po/hy.po b/po/hy.po
+index aaf2d9b292da..c8f14dfd4280 100644
+--- a/po/hy.po
++++ b/po/hy.po
+@@ -1012,8 +1012,8 @@ msgid "_Text color:"
+ msgstr "_Տեքստի գույնը՝"
+
+ #: ../src/profile-preferences.glade.h:73
+-msgid "_Transparent background"
+-msgstr "_Թափանցիկ նախադրյալ"
++msgid "Transparent background"
++msgstr "Թափանցիկ նախադրյալ"
+
+ #: ../src/profile-preferences.glade.h:74
+ msgid "_Update login records when command is launched"
+diff --git a/po/id.po b/po/id.po
+index b27605c49b9b..c4c4163b2db1 100644
+--- a/po/id.po
++++ b/po/id.po
+@@ -2252,3 +2252,12 @@ msgstr ""
+ #: ../src/terminal-window.c:3849
+ msgid "C_lose Window"
+ msgstr "Tutup Jende_la"
++
++msgid "Transparent background"
++msgstr "Latar belakang transparan"
++
++msgid "Title"
++msgstr "Judul"
++
++msgid "_Title:"
++msgstr "_Judul:"
+\ No newline at end of file
+diff --git a/po/it.po b/po/it.po
+index b7bdc71451b0..b959dedb654c 100644
+--- a/po/it.po
++++ b/po/it.po
+@@ -2289,3 +2289,12 @@ msgstr ""
+ #: ../src/terminal-window.c:3849
+ msgid "C_lose Window"
+ msgstr "Chiudi _finestra"
++
++msgid "Transparent background"
++msgstr "Sfondo trasparente"
++
++msgid "Title"
++msgstr "Titolo"
++
++msgid "_Title:"
++msgstr "_Titolo:"
+\ No newline at end of file
+diff --git a/po/ja.po b/po/ja.po
+index f7235d9f4a0b..2d009188a320 100644
+--- a/po/ja.po
++++ b/po/ja.po
+@@ -1907,3 +1907,12 @@ msgstr "ウィンドウを閉じる(_L)"
+
+ #~ msgid "_Update login records when command is launched"
+ #~ msgstr "コマンドを実行した時にログイン記録を更新する(_U)"
++
++msgid "Transparent background"
++msgstr "透過な画像にする"
++
++msgid "Title"
++msgstr "タイトル"
++
++msgid "_Title:"
++msgstr "タイトル(_T):"
+\ No newline at end of file
+diff --git a/po/ka.po b/po/ka.po
+index 2a0bc91fad40..10a833ad4cad 100644
+--- a/po/ka.po
++++ b/po/ka.po
+@@ -569,7 +569,7 @@ msgstr "_ტექსტის ფერი:"
+
+ #: ../src/gnome-terminal.glade2.h:86
+ #, fuzzy
+-msgid "_Transparent background"
++msgid "Transparent background"
+ msgstr "გამჭირვალე"
+
+ #: ../src/gnome-terminal.glade2.h:87
+diff --git a/po/kk.po b/po/kk.po
+index 70caf943e846..d41be34c99ae 100644
+--- a/po/kk.po
++++ b/po/kk.po
+@@ -2213,3 +2213,12 @@ msgstr "Терезені жа_бу"
+
+ #~ msgid "Be quiet"
+ #~ msgstr "Тыныш болу"
++
++msgid "Transparent background"
++msgstr "Мөлдір фон"
++
++msgid "Title"
++msgstr "Атауы"
++
++msgid "_Title:"
++msgstr "А_тауы:"
+\ No newline at end of file
+diff --git a/po/kn.po b/po/kn.po
+index c887f88a2c87..dc14ae31ce76 100644
+--- a/po/kn.po
++++ b/po/kn.po
+@@ -2261,8 +2261,8 @@ msgstr "ಕಿಟಕಿಯನ್ನು ಮುಚ್ಚು (_l)"
+ #~ msgid "Use custom default terminal si_ze"
+ #~ msgstr "ಅಗತ್ಯಾನುಗುಣ ಆದೇಶತೆರೆ ಗಾತ್ರವನ್ನು ಬಳಸು (_z)"
+
+-#~ msgid "Title"
+-#~ msgstr "ಶೀರ್ಷಿಕೆ"
++msgid "Title"
++msgstr "ಶೀರ್ಷಿಕೆ"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "ಆದೇಶಗಳು ತಮ್ಮದೆ ಆದ ಹೆಸರಗಳನ್ನು ಇರಿಸಿಕೊಂಡಾಗ (_w):"
+@@ -2342,5 +2342,8 @@ msgstr "ಕಿಟಕಿಯನ್ನು ಮುಚ್ಚು (_l)"
+ #~ msgid "_Input Methods"
+ #~ msgstr "ಇನ್‌ಪುಟ್ ಕ್ರಮಗಳು (_I)"
+
+-#~ msgid "_Title:"
+-#~ msgstr "ಶೀರ್ಷಿಕೆ(_T):"
++msgid "_Title:"
++msgstr "ಶೀರ್ಷಿಕೆ(_T):"
++
++msgid "Transparent background"
++msgstr "ಪಾರದರ್ಶಕ ಹಿನ್ನಲೆ"
+diff --git a/po/ko.po b/po/ko.po
+index 366a5122c251..1369c9dcebe4 100644
+--- a/po/ko.po
++++ b/po/ko.po
+@@ -2281,3 +2281,12 @@ msgstr "창 닫기(_L)"
+
+ #~ msgid "Whether to use a dark theme variant"
+ #~ msgstr "어두운 테마를 사용할 지 여부"
++
++msgid "Transparent background"
++msgstr "투명한 배경"
++
++msgid "Title"
++msgstr "제목"
++
++msgid "_Title:"
++msgstr "제목(_T):"
+\ No newline at end of file
+diff --git a/po/ku.po b/po/ku.po
+index bc2bb7f03de4..226d9942f23a 100644
+--- a/po/ku.po
++++ b/po/ku.po
+@@ -558,8 +558,8 @@ msgid "_Text color:"
+ msgstr "Rengê _nivîsê:"
+
+ #: ../src/gnome-terminal.glade2.h:86
+-msgid "_Transparent background"
+-msgstr "Rûerdê _transparan"
++msgid "Transparent background"
++msgstr "Rûerdê transparan"
+
+ #: ../src/gnome-terminal.glade2.h:87
+ msgid "_Update login records when command is launched"
+diff --git a/po/lt.po b/po/lt.po
+index c1c3ce0bfbab..c333d1fae7af 100644
+--- a/po/lt.po
++++ b/po/lt.po
+@@ -2280,3 +2280,12 @@ msgstr "_Užverti langą"
+
+ #~ msgid "Whether to use a dark theme variant"
+ #~ msgstr "Ar naudoti tamsų temos variantą"
++
++msgid "Transparent background"
++msgstr "Permatomas fonas"
++
++msgid "Title"
++msgstr "Pavadinimas"
++
++msgid "_Title:"
++msgstr "_Pavadinimas:"
+diff --git a/po/lv.po b/po/lv.po
+index 959d1c3531fd..4cb16771d28b 100644
+--- a/po/lv.po
++++ b/po/lv.po
+@@ -2236,3 +2236,15 @@ msgstr ""
+ msgid "C_lose Window"
+ msgstr "Aizvērt _logu"
+
++msgid "Transparent background"
++msgstr "Caurspīdīgs fons"
++
++msgid "Title"
++msgstr "Nosaukums"
++
++msgid "_Title:"
++msgstr "_Nosaukums:"
++
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "“Terminālis”"
+\ No newline at end of file
+diff --git a/po/mai.po b/po/mai.po
+index 715d0b9e1c82..881fd5a2cce9 100644
+--- a/po/mai.po
++++ b/po/mai.po
+@@ -1291,8 +1291,8 @@ msgid "_Text color:"
+ msgstr "पाठ रँग (_T):"
+
+ #: ../src/profile-preferences.glade.h:69
+-msgid "_Transparent background"
+-msgstr "पारदर्शी पृष्ठभूमि (_T)"
++msgid "Transparent background"
++msgstr "पारदर्शी पृष्ठभूमि"
+
+ #: ../src/profile-preferences.glade.h:70
+ msgid "_Update login records when command is launched"
+diff --git a/po/mg.po b/po/mg.po
+index 99fa0f5e4059..bf4ac34d09c1 100644
+--- a/po/mg.po
++++ b/po/mg.po
+@@ -567,8 +567,8 @@ msgid "_Text color:"
+ msgstr "Lokon'ny _soratra:"
+
+ #: ../src/gnome-terminal.glade2.h:86
+-msgid "_Transparent background"
+-msgstr "_Afara tatera-pahazavana"
++msgid "Transparent background"
++msgstr "Afara tatera-pahazavana"
+
+ #: ../src/gnome-terminal.glade2.h:87
+ msgid "_Update login records when command is launched"
+diff --git a/po/mk.po b/po/mk.po
+index 4fe43192fe57..6160ede0d0d3 100644
+--- a/po/mk.po
++++ b/po/mk.po
+@@ -1167,8 +1167,8 @@ msgid "_Text color:"
+ msgstr "_Боја на текстот:"
+
+ #: ../src/profile-preferences.glade.h:77
+-msgid "_Transparent background"
+-msgstr "_Транспарентна позадина"
++msgid "Transparent background"
++msgstr "Транспарентна позадина"
+
+ #: ../src/profile-preferences.glade.h:78
+ #| msgid "_Text color:"
+diff --git a/po/ml.po b/po/ml.po
+index cc1928dcda63..62abd2131499 100644
+--- a/po/ml.po
++++ b/po/ml.po
+@@ -2751,8 +2751,8 @@ msgstr "ടെര്‍മിനല്‍ അ_ടയ്ക്കുക"
+ #~ msgid "_Solid color"
+ #~ msgstr "_സോളിഡ് നിറം"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "_പുറകിലുള്ളവ കാണാവുന്ന പശ്ചാത്തലം"
++msgid "Transparent background"
++msgstr "പുറകിലുള്ളവ കാണാവുന്ന പശ്ചാത്തലം"
+
+ #~ msgid "S/Key Challenge Response"
+ #~ msgstr "S/Key ചാലഞ്ച് മറുപടി"
+diff --git a/po/mn.po b/po/mn.po
+index 2f9d86072d1c..8f8850b7ec0b 100644
+--- a/po/mn.po
++++ b/po/mn.po
+@@ -618,8 +618,8 @@ msgid "_Text color:"
+ msgstr "_Текстийн өнгө:"
+
+ #: ../src/gnome-terminal.glade2.h:102
+-msgid "_Transparent background"
+-msgstr "_Тунгалаг дэвсгэр"
++msgid "Transparent background"
++msgstr "Тунгалаг дэвсгэр"
+
+ #: ../src/gnome-terminal.glade2.h:103
+ msgid "_Update login records when command is launched"
+diff --git a/po/mr.po b/po/mr.po
+index 61997dafbd03..ea064191be0d 100644
+--- a/po/mr.po
++++ b/po/mr.po
+@@ -2219,8 +2219,8 @@ msgstr "चौकट बंद करा (_l)"
+ #~ msgid "Default size:"
+ #~ msgstr "पूर्वनिर्धारीत आकार:"
+
+-#~ msgid "Title"
+-#~ msgstr "शीर्षक"
++msgid "Title"
++msgstr "शीर्षक"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "जेव्हा टर्मिनल आदेश स्वतःचे शिर्षक निश्चित करते (_w):"
+@@ -2267,8 +2267,8 @@ msgstr "चौकट बंद करा (_l)"
+ #~ msgid "_Input Methods"
+ #~ msgstr "इनपुट पध्दती (_I)"
+
+-#~ msgid "_Title:"
+-#~ msgstr "शिर्षक (_T):"
++msgid "_Title:"
++msgstr "शिर्षक (_T):"
+
+ #~ msgid "Keyboard shortcut to switch to tab 1"
+ #~ msgstr "टॅब 1 वापरण्याकरीता कळफलक शॉर्टकट"
+@@ -3015,8 +3015,8 @@ msgstr "चौकट बंद करा (_l)"
+ #~ msgid "_Solid color"
+ #~ msgstr "गडद रंग (_S)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "पारदर्शी पार्श्वभूमी(_T)"
++msgid "Transparent background"
++msgstr "पारदर्शी पार्श्वभूमी"
+
+ #~ msgid "Disabled"
+ #~ msgstr "अकार्यान्वीतित"
+diff --git a/po/ms.po b/po/ms.po
+index f2ebd4851d3b..a20bae29a8e8 100644
+--- a/po/ms.po
++++ b/po/ms.po
+@@ -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"
+
+ #: ../src/gnome-terminal.glade2.h:103
+ msgid "_Update login records when command is launched"
+diff --git a/po/nb.po b/po/nb.po
+index 5be6c5bd71c9..537692980cfd 100644
+--- a/po/nb.po
++++ b/po/nb.po
+@@ -2238,3 +2238,12 @@ msgstr ""
+ #: ../src/terminal-window.c:3852
+ msgid "C_lose Window"
+ msgstr "_Lukk vindu"
++
++msgid "Transparent background"
++msgstr "Gjennomsiktig bakgrunn"
++
++msgid "Title"
++msgstr "Tittel"
++
++msgid "_Title:"
++msgstr "_Tittel:"
+diff --git a/po/nds.po b/po/nds.po
+index 82f930b1cc0c..da1d6d0c9342 100644
+--- a/po/nds.po
++++ b/po/nds.po
+@@ -996,8 +996,8 @@ msgid "_Text color:"
+ msgstr "_Textklöör:"
+
+ #: ../src/profile-preferences.glade.h:73
+-msgid "_Transparent background"
+-msgstr "_Döörschienenachtergrund:"
++msgid "Transparent background"
++msgstr "Döörschienenachtergrund:"
+
+ #: ../src/profile-preferences.glade.h:74
+ msgid "_Update login records when command is launched"
+diff --git a/po/ne.po b/po/ne.po
+index 4fe16cc88a9a..e204ec9d646c 100644
+--- a/po/ne.po
++++ b/po/ne.po
+@@ -2398,8 +2398,8 @@ msgstr "सञ्झ्याल बन्द गर्नुहोस्"
+ #~ msgid "_None (use solid color)"
+ #~ msgstr "कुनै पनि होइन (एउटै रङ प्रयोग गर्नुहोस्)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "पारदर्शी पृष्ठभूमि"
++msgid "Transparent background"
++msgstr "पारदर्शी पृष्ठभूमि"
+
+ #~ msgid "_Use the system fixed width font"
+ #~ msgstr "प्रणाली निश्चित गरिएको फन्ट चौडाइ प्रयोग गर्नुहोस्"
+@@ -3232,8 +3232,8 @@ msgstr "सञ्झ्याल बन्द गर्नुहोस्"
+ #~ msgid "_Input Methods"
+ #~ msgstr "आगत विधि"
+
+-#~ msgid "_Title:"
+-#~ msgstr "शीर्षक:"
++msgid "_Title:"
++msgstr "शीर्षक:"
+
+ #~ msgid ""
+ #~ "text/plain dropped on terminal had wrong format (%d) or length (%d)\n"
+diff --git a/po/nl.po b/po/nl.po
+index a51720be1610..94eae523d2e6 100644
+--- a/po/nl.po
++++ b/po/nl.po
+@@ -2218,11 +2218,11 @@ msgstr "Venster sl_uiten"
+ #~ msgid "Default size:"
+ #~ msgstr "Standaardgrootte:"
+
+-#~ msgid "Title"
+-#~ msgstr "Titel"
++msgid "Title"
++msgstr "Titel"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Titel:"
++msgid "_Title:"
++msgstr "_Titel:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Titel en opdracht"
+@@ -2352,3 +2352,6 @@ msgstr "Venster sl_uiten"
+
+ #~ msgid "Switch to Tab 12"
+ #~ msgstr "Ga naar tab 12"
++
++msgid "Transparent background"
++msgstr "Transparante achtergrond"
+diff --git a/po/nn.po b/po/nn.po
+index 5aa43b113ed9..33aff8b1d52a 100644
+--- a/po/nn.po
++++ b/po/nn.po
+@@ -1429,8 +1429,8 @@ msgid "_Text color:"
+ msgstr "_Tekstfarge:"
+
+ #: ../src/profile-preferences.glade.h:73
+-msgid "_Transparent background"
+-msgstr "_Gjennomskinleg bakgrunn"
++msgid "Transparent background"
++msgstr "Gjennomskinleg bakgrunn"
+
+ #: ../src/profile-preferences.glade.h:74
+ msgid "_Update login records when command is launched"
+diff --git a/po/oc.po b/po/oc.po
+index b1befba5b372..26d47642925e 100644
+--- a/po/oc.po
++++ b/po/oc.po
+@@ -2549,8 +2549,8 @@ msgstr "Tampar _la fenèstra"
+ #~ msgid "Save as..."
+ #~ msgstr "Enregistrar jos..."
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Títol :"
++msgid "_Title:"
++msgstr "_Títol :"
+
+ #~ msgid "Move Tab _Right"
+ #~ msgstr "Desplaçar l'onglet cap a _dreita"
+@@ -3352,8 +3352,8 @@ msgstr "Tampar _la fenèstra"
+ #~ msgid "Run;"
+ #~ msgstr "Executar;Consòla;Shell;"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "Rèireplan _transparent"
++msgid "Transparent background"
++msgstr "Rèireplan transparent"
+
+ #~ msgid ""
+ #~ "A subset of possible encodings are presented in the Encoding submenu. "
+diff --git a/po/or.po b/po/or.po
+index ec1e6bfb9a28..218acd712df6 100644
+--- a/po/or.po
++++ b/po/or.po
+@@ -2705,8 +2705,8 @@ msgstr "ଶୀର୍ଷକ (_T):"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "ପୃଷ୍ଠଭୂମି ଚିତ୍ର ସ୍କ୍ରୋଲଗୁଡିକ (_s)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "ସ୍ବଚ୍ଛ ପୃଷ୍ଠଭୂମି (_T)"
++msgid "Transparent background"
++msgstr "ସ୍ବଚ୍ଛ ପୃଷ୍ଠଭୂମି"
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "ଛାୟା ସ୍ବଚ୍ଛ କିମ୍ବା ଚିତ୍ର ପୃଷ୍ଠଭୂମି (_h):"
+diff --git a/po/pa.po b/po/pa.po
+index 9c95b66e7185..ea4c570cf06c 100644
+--- a/po/pa.po
++++ b/po/pa.po
+@@ -2122,10 +2122,9 @@ msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ(_l)"
+ #~ msgid "Show server options"
+ #~ msgstr "ਸਰਵਰ ਚੋਣਾਂ ਵੇਖੋ"
+
+-#~| msgid "Terminal"
+-#~ msgctxt "title"
+-#~ msgid "'Terminal'"
+-#~ msgstr "'ਟਰਮੀਨਲ'"
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "'ਟਰਮੀਨਲ'"
+
+ #~ msgid "Title for terminal"
+ #~ msgstr "ਟਰਮੀਨਲ ਲਈ ਟਾਈਟਲ"
+@@ -2176,11 +2175,11 @@ msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ(_l)"
+ #~ msgid "Default size:"
+ #~ msgstr "ਡਿਫਾਲਟ ਸਾਈਜ਼:"
+
+-#~ msgid "Title"
+-#~ msgstr "ਟਾਈਟਲ"
++msgid "Title"
++msgstr "ਟਾਈਟਲ"
+
+-#~ msgid "_Title:"
+-#~ msgstr "ਟਾਈਟਲ(_T):"
++msgid "_Title:"
++msgstr "ਟਾਈਟਲ(_T):"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "ਟਾਈਟਲ ਅਤੇ ਕਮਾਂਡ"
+@@ -3008,8 +3007,8 @@ msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ(_l)"
+ #~ msgid "_Solid color"
+ #~ msgstr "ਇੱਕ ਰੰਗ ਵਰਤੋਂ(_S)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "ਪਾਰਦਰਸ਼ੀ ਬੈਕਗਰਾਊਂਡ(_T)"
++msgid "Transparent background"
++msgstr "ਪਾਰਦਰਸ਼ੀ ਬੈਕਗਰਾਊਂਡ"
+
+ #~ msgid "S/Key Challenge Response"
+ #~ msgstr "S/ਸਵਿੱਚ ਚੈਲੰਜ਼ ਜਵਾਬ"
+diff --git a/po/pl.po b/po/pl.po
+index baa03a7f5f67..c81a3157cd79 100644
+--- a/po/pl.po
++++ b/po/pl.po
+@@ -2293,3 +2293,9 @@ msgid ""
+ msgstr ""
+ "Wartość między 0 a 100, gdzie 0 oznacza nieprzezroczystość, a 100 oznacza "
+ "całkowitą przezroczystość."
++
++msgid "Title"
++msgstr "Tytuł"
++
++msgid "_Title:"
++msgstr "_Tytuł:"
+\ No newline at end of file
+diff --git a/po/ps.po b/po/ps.po
+index b25a2cb41712..dcbaf0bc6c8c 100644
+--- a/po/ps.po
++++ b/po/ps.po
+@@ -1053,8 +1053,8 @@ msgid "_Text color:"
+ msgstr ":د ليکنې رنګ_"
+
+ #: ../src/profile-preferences.glade.h:69
+-msgid "_Transparent background"
+-msgstr "روڼ شاليد_"
++msgid "Transparent background"
++msgstr "روڼ شاليد"
+
+ #: ../src/profile-preferences.glade.h:70
+ msgid "_Update login records when command is launched"
+diff --git a/po/pt.po b/po/pt.po
+index 5181419ad973..82d8f9e56569 100644
+--- a/po/pt.po
++++ b/po/pt.po
+@@ -2360,11 +2360,11 @@ msgstr "Fechar jane_la"
+ #~ msgid "Default size:"
+ #~ msgstr "Tamanho predefinido:"
+
+-#~ msgid "Title"
+-#~ msgstr "Título"
++msgid "Title"
++msgstr "Título"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Título:"
++msgid "_Title:"
++msgstr "_Título:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Título e comando"
+@@ -3160,8 +3160,8 @@ msgstr "Fechar jane_la"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "Imagem de fundo _rola"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "Fundo _transparente"
++msgid "Transparent background"
++msgstr "Fundo transparente"
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "Transparente som_breado ou imagem de fundo:"
+diff --git a/po/pt_BR.po b/po/pt_BR.po
+index d3e6c538a640..3c8320206b20 100644
+--- a/po/pt_BR.po
++++ b/po/pt_BR.po
+@@ -2389,11 +2389,11 @@ msgstr "_Fechar janela"
+ #~ msgid "Default size:"
+ #~ msgstr "Tamanho padrão:"
+
+-#~ msgid "Title"
+-#~ msgstr "Título"
++msgid "Title"
++msgstr "Título"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Título:"
++msgid "_Title:"
++msgstr "_Título:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Título e comando"
+@@ -3057,3 +3057,6 @@ msgstr "_Fechar janela"
+ #~ "poderão usar. Essa é a paleta, na forma de uma lista de nomes de cores "
+ #~ "separada por dois pontos. Os nomes de cores devem estar no formato "
+ #~ "hexadecimal. Exemplo: \"#FF00FF\""
++
++msgid "Transparent background"
++msgstr "Fundo transparente"
+diff --git a/po/ro.po b/po/ro.po
+index 179dd77fd166..f7fc7ae070cf 100644
+--- a/po/ro.po
++++ b/po/ro.po
+@@ -1576,8 +1576,8 @@ msgid "_Text color:"
+ msgstr "Culoare _text:"
+
+ #: ../src/profile-preferences.glade.h:77
+-msgid "_Transparent background"
+-msgstr "Fundal _transparent"
++msgid "Transparent background"
++msgstr "Fundal transparent"
+
+ #: ../src/profile-preferences.glade.h:78
+ msgid "_Underline color:"
+diff --git a/po/ru.po b/po/ru.po
+index 6cd2cd49fb12..65a78a070a9d 100644
+--- a/po/ru.po
++++ b/po/ru.po
+@@ -2271,3 +2271,16 @@ msgstr "_Закрыть окно"
+
+ #~ msgid "_Same as text color"
+ #~ msgstr "_Цвет как у обычного текста"
++
++msgid "Transparent background"
++msgstr "Прозрачный фон"
++
++msgid "Title"
++msgstr "Заголовок"
++
++msgid "_Title:"
++msgstr "За_головок:"
++
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "'Терминал'"
+\ No newline at end of file
+diff --git a/po/rw.po b/po/rw.po
+index 012f64e325c3..5ff633f8b3c2 100644
+--- a/po/rw.po
++++ b/po/rw.po
+@@ -749,7 +749,7 @@ msgstr "Ibara ry'Inyandiko..."
+
+ #: ../src/gnome-terminal.glade2.h:102
+ #, fuzzy
+-msgid "_Transparent background"
++msgid "Transparent background"
+ msgstr "Mbuganyuma"
+
+ #: ../src/gnome-terminal.glade2.h:103
+@@ -2398,7 +2398,6 @@ msgstr ""
+
+ # sch/source\ui\app\menu.src:RID_MENU.WORKAROUND_22.SID_INSERT_TITLE.text
+ #: ../src/terminal-screen.c:2005
+-#, fuzzy
+ msgid "_Title:"
+ msgstr "Umutwe..."
+
+diff --git a/po/si.po b/po/si.po
+index adca7d5acba9..64c05665429b 100644
+--- a/po/si.po
++++ b/po/si.po
+@@ -538,8 +538,8 @@ msgid "_Text color:"
+ msgstr "පෙළ වර්‍ණ: (_T)"
+
+ #: ../src/gnome-terminal.glade2.h:86
+-msgid "_Transparent background"
+-msgstr "විනිවිද පෙනෙන පසුබිම (_T)"
++msgid "Transparent background"
++msgstr "විනිවිද පෙනෙන පසුබිම"
+
+ #: ../src/gnome-terminal.glade2.h:87
+ msgid "_Update login records when command is launched"
+diff --git a/po/sk.po b/po/sk.po
+index 34ced44920c5..00183da72a54 100644
+--- a/po/sk.po
++++ b/po/sk.po
+@@ -2590,3 +2590,12 @@ msgstr "_Zavrieť okno"
+ #~ "\n"
+ #~ "Viac informácii o jednotlivých príkazoch získate pomocou „%s PRÍKAZ --"
+ #~ "help“.\n"
++
++msgid "Transparent background"
++msgstr "Priehľadné pozadie"
++
++msgid "Title"
++msgstr "Titulok"
++
++msgid "_Title:"
++msgstr "_Titulok:"
+\ No newline at end of file
+diff --git a/po/sl.po b/po/sl.po
+index 754abb4ba4a2..8f3674ac72c1 100644
+--- a/po/sl.po
++++ b/po/sl.po
+@@ -2364,11 +2364,11 @@ msgstr "_Zapri okno"
+ #~ msgid "Default size:"
+ #~ msgstr "Privzeta velikost:"
+
+-#~ msgid "Title"
+-#~ msgstr "Naslov"
++msgid "Title"
++msgstr "Naslov"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Naziv:"
++msgid "_Title:"
++msgstr "_Naziv:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Naziv in ukaz"
+@@ -2525,3 +2525,6 @@ msgstr "_Zapri okno"
+
+ #~ msgid "_Profile Preferences…"
+ #~ msgstr "Možnosti _profila ..."
++
++msgid "Transparent background"
++msgstr "Prosojno ozadje"
+diff --git a/po/sq.po b/po/sq.po
+index 158f6cb167cc..96afc9b98fd4 100644
+--- a/po/sq.po
++++ b/po/sq.po
+@@ -568,8 +568,8 @@ msgstr "Ngjyra e _tekstit:"
+
+ # (pofilter) simplecaps: checks the capitalisation of two strings isn't wildly different
+ #: ../src/gnome-terminal.glade2.h:85
+-msgid "_Transparent background"
+-msgstr "Sfond _Trasparent"
++msgid "Transparent background"
++msgstr "Sfond Trasparent"
+
+ #: ../src/gnome-terminal.glade2.h:86
+ msgid "_Update login records when command is launched"
+diff --git a/po/sr.po b/po/sr.po
+index e229e742a550..b34b1723acee 100644
+--- a/po/sr.po
++++ b/po/sr.po
+@@ -2297,10 +2297,9 @@ msgstr "_Затвори прозор"
+ #~ msgid "GNOME Terminal Client"
+ #~ msgstr "Клијент Гномовог терминала"
+
+-#~| msgid "Terminal"
+-#~ msgctxt "title"
+-#~ msgid "'Terminal'"
+-#~ msgstr "„Терминал“"
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "„Терминал“"
+
+ #~ msgid "Title for terminal"
+ #~ msgstr "Наслов за терминал"
+@@ -2346,11 +2345,11 @@ msgstr "_Затвори прозор"
+ #~ msgid "Default size:"
+ #~ msgstr "Основна величина:"
+
+-#~ msgid "Title"
+-#~ msgstr "Наслов"
++msgid "Title"
++msgstr "Наслов"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Наслов:"
++msgid "_Title:"
++msgstr "_Наслов:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Наслов и наредба"
+@@ -2387,3 +2386,6 @@ msgstr "_Затвори прозор"
+
+ #~ msgid "Close Window"
+ #~ msgstr "Затвори прозор"
++
++msgid "Transparent background"
++msgstr "Провидна позадина"
+diff --git a/po/sr@latin.po b/po/sr@latin.po
+index c1d3f5c94811..f009bcd0c43a 100644
+--- a/po/sr@latin.po
++++ b/po/sr@latin.po
+@@ -2297,10 +2297,9 @@ msgstr "_Zatvori prozor"
+ #~ msgid "GNOME Terminal Client"
+ #~ msgstr "Klijent Gnomovog terminala"
+
+-#~| msgid "Terminal"
+-#~ msgctxt "title"
+-#~ msgid "'Terminal'"
+-#~ msgstr "„Terminal“"
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "„Terminal“"
+
+ #~ msgid "Title for terminal"
+ #~ msgstr "Naslov za terminal"
+@@ -2346,11 +2345,11 @@ msgstr "_Zatvori prozor"
+ #~ msgid "Default size:"
+ #~ msgstr "Osnovna veličina:"
+
+-#~ msgid "Title"
+-#~ msgstr "Naslov"
++msgid "Title"
++msgstr "Naslov"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Naslov:"
++msgid "_Title:"
++msgstr "_Naslov:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Naslov i naredba"
+@@ -2387,3 +2386,6 @@ msgstr "_Zatvori prozor"
+
+ #~ msgid "Close Window"
+ #~ msgstr "Zatvori prozor"
++
++msgid "Transparent background"
++msgstr "Providna pozadina"
+diff --git a/po/sv.po b/po/sv.po
+index c5da2a0487a8..db177e80f9fd 100644
+--- a/po/sv.po
++++ b/po/sv.po
+@@ -2288,5 +2288,11 @@ msgstr "Stän_g fönster"
+ #~ msgid "Unknown completion request for \"%s\""
+ #~ msgstr "Okänd kompletteringsbegäran för \"%s\""
+
++msgid "Transparent background"
++msgstr "Genomskinlig bakgrund"
++
+ #~ msgid "Missing command"
+ #~ msgstr "Kommando saknas"
++
++msgid "_Title:"
++msgstr "_Titel:"
+diff --git a/po/ta.po b/po/ta.po
+index 80aa2f684eec..8768cf7fc501 100644
+--- a/po/ta.po
++++ b/po/ta.po
+@@ -2171,10 +2171,9 @@ msgstr "_l சாளரத்தை மூடவும்"
+ #~ msgid "Show server options"
+ #~ msgstr "சேவையக தேர்வுகளை காட்டுக"
+
+-#~| msgid "Terminal"
+-#~ msgctxt "title"
+-#~ msgid "'Terminal'"
+-#~ msgstr "'முனையம்'"
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "'முனையம்'"
+
+ #~ msgid "Title for terminal"
+ #~ msgstr "முனையத்தின் தலைப்பு"
+@@ -2221,11 +2220,11 @@ msgstr "_l சாளரத்தை மூடவும்"
+ #~ msgid "Default size:"
+ #~ msgstr "முன்னிருப்பு அளவு:"
+
+-#~ msgid "Title"
+-#~ msgstr "தலைப்பு"
++msgid "Title"
++msgstr "தலைப்பு"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_T தலைப்பு:"
++msgid "_Title:"
++msgstr "_T தலைப்பு:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "தலைப்பும் கட்டளையும்"
+@@ -3028,8 +3027,8 @@ msgstr "_l சாளரத்தை மூடவும்"
+ #~ msgid "_Solid color"
+ #~ msgstr "(_S) ஒரே வண்ணம்"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "_T புலப்பாடு பின்னணி"
++msgid "Transparent background"
++msgstr "புலப்பாடு பின்னணி"
+
+ #~ msgid "No such profile \"%s\", using default profile\n"
+ #~ msgstr "\"%s\" என்ற வரியுரு கிடையாது, முன்னிருப்பு வரியுரு பயன்படுத்தப்படும்\n"
+diff --git a/po/te.po b/po/te.po
+index 82c0e0fc8f54..74c293d671f1 100644
+--- a/po/te.po
++++ b/po/te.po
+@@ -2055,10 +2055,9 @@ msgstr "కిటికీని మూసివేయి (_l)"
+ #~ msgid "Show server options"
+ #~ msgstr "సేవకము ఐచ్చికాలను చూపించు"
+
+-#, fuzzy
+-#~ msgctxt "title"
+-#~ msgid "'Terminal'"
+-#~ msgstr "టెర్మినల్"
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "టెర్మినల్"
+
+ #~ msgid "Title for terminal"
+ #~ msgstr "టెర్మినల్ కు శీర్షిక"
+@@ -2104,11 +2103,11 @@ msgstr "కిటికీని మూసివేయి (_l)"
+ #~ msgid "Default size:"
+ #~ msgstr "అప్రమేయ పరిమాణం:"
+
+-#~ msgid "Title"
+-#~ msgstr "శీర్షిక:"
++msgid "Title"
++msgstr "శీర్షిక:"
+
+-#~ msgid "_Title:"
+-#~ msgstr "శీర్షిక (_T):"
++msgid "_Title:"
++msgstr "శీర్షిక (_T):"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "శీర్షిక మరియు ఆదేశం"
+@@ -2898,8 +2897,8 @@ msgstr "కిటికీని మూసివేయి (_l)"
+ #~ msgid "Background image _scrolls"
+ #~ msgstr "నేపథ్యచిత్రము స్క్రాల్స్ (_s)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "పారదర్శక నేపథ్యం (_T)"
++msgid "Transparent background"
++msgstr "పారదర్శక నేపథ్యం"
+
+ #~ msgid "S_hade transparent or image background:"
+ #~ msgstr "పారదర్శకంగా మారు లేదా చిత్రము బ్యాక్‌గ్రౌండ్ కు మారు(_h):"
+diff --git a/po/tg.po b/po/tg.po
+index e3feef658e1e..782a90e6e40a 100644
+--- a/po/tg.po
++++ b/po/tg.po
+@@ -2158,11 +2158,11 @@ msgstr "П_ӯшонидани равзана"
+ #~ msgid "Default size:"
+ #~ msgstr "Андозаи пешфарз:"
+
+-#~ msgid "Title"
+-#~ msgstr "Сарлавҳа"
++msgid "Title"
++msgstr "Сарлавҳа"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Вазифа:"
++msgid "_Title:"
++msgstr "_Вазифа:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Унвон ва Фармон"
+diff --git a/po/th.po b/po/th.po
+index 63263749655c..d8d6be9dd890 100644
+--- a/po/th.po
++++ b/po/th.po
+@@ -2308,11 +2308,11 @@ msgstr "ปิ_ดหน้าต่าง"
+ #~ msgid "Default size:"
+ #~ msgstr "ขนาดปริยาย:"
+
+-#~ msgid "Title"
+-#~ msgstr "หัวเรื่อง"
++msgid "Title"
++msgstr "หัวเรื่อง"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_หัวเรื่อง:"
++msgid "_Title:"
++msgstr "_หัวเรื่อง:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "หัวเรื่องและคำสั่ง"
+@@ -2803,8 +2803,8 @@ msgstr "ปิ_ดหน้าต่าง"
+ #~ msgid "_Solid color"
+ #~ msgstr "สี_ทึบ"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "พื้นหลังโปร่งแ_สง"
++msgid "Transparent background"
++msgstr "พื้นหลังโปร่งแสง"
+
+ #~ msgid ""
+ #~ "You already have a profile called “%s”. Do you want to create another "
+diff --git a/po/tr.po b/po/tr.po
+index 85a5c59ed059..073fdea561b9 100644
+--- a/po/tr.po
++++ b/po/tr.po
+@@ -2307,3 +2307,9 @@ msgstr "_Pencereyi Kapat"
+
+ #~ msgid "_Same as text color"
+ #~ msgstr "_Metin rengiyle aynı"
++
++msgid "Transparent background"
++msgstr "Şeffaf arkaplan"
++
++msgid "_Title:"
++msgstr "_Başlık:"
+diff --git a/po/ug.po b/po/ug.po
+index 313f76b98eae..be6089762082 100644
+--- a/po/ug.po
++++ b/po/ug.po
+@@ -2616,8 +2616,8 @@ msgstr "ماۋزۇ (_T):"
+ #~ msgid "_Solid color"
+ #~ msgstr "ساپ رەڭ(_S)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "سۈزۈك تەگلىك(_T)"
++msgid "Transparent background"
++msgstr "سۈزۈك تەگلىك"
+
+ #~ msgid ""
+ #~ "You already have a profile called “%s”. Do you want to create another "
+diff --git a/po/uk.po b/po/uk.po
+index a08f25914d12..306d532caf1a 100644
+--- a/po/uk.po
++++ b/po/uk.po
+@@ -2353,11 +2353,11 @@ msgstr "Закр_ити вікно"
+ #~ msgid "Default size:"
+ #~ msgstr "Типовий розмір:"
+
+-#~ msgid "Title"
+-#~ msgstr "Заголовок"
++msgid "Title"
++msgstr "Заголовок"
+
+-#~ msgid "_Title:"
+-#~ msgstr "За_головок:"
++msgid "_Title:"
++msgstr "За_головок:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Заголовок та команда"
+@@ -3134,8 +3134,8 @@ msgstr "Закр_ити вікно"
+ #~ msgid "_Solid color"
+ #~ msgstr "_Суцільний колір"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "П_розоре тло"
++msgid "Transparent background"
++msgstr "Прозоре тло"
+
+ #~ msgid "Switch to Tab 2"
+ #~ msgstr "До вкладки 2"
+diff --git a/po/vi.po b/po/vi.po
+index 01db48d95bf2..64d50a4453dd 100644
+--- a/po/vi.po
++++ b/po/vi.po
+@@ -2400,8 +2400,8 @@ msgstr "Đón_g cửa sổ"
+ #~ msgid "Default size:"
+ #~ msgstr "Cỡ mặc định:"
+
+-#~ msgid "Title"
+-#~ msgstr "Tựa đề"
++msgid "Title"
++msgstr "Tựa đề"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "Khi câu lệnh thiết bị cuối tự đặt tựa đề _mình:"
+@@ -2481,8 +2481,8 @@ msgstr "Đón_g cửa sổ"
+ #~ msgid "_Input Methods"
+ #~ msgstr "K_iểu gõ"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Tựa đề:"
++msgid "_Title:"
++msgstr "_Tựa đề:"
+
+ #~ msgid "Disable connection to session manager"
+ #~ msgstr "Tắt kết nối đến trình quản lý phiên làm việc"
+@@ -2867,3 +2867,6 @@ msgstr "Đón_g cửa sổ"
+ #~ "Phím tắt để đặt lại thiết bị cuối. Dùng dạng chuỗi có cùng một khuôn dạng "
+ #~ "với tập tin tài nguyên GTK+. Nếu bạn đặt tùy chọn là chuỗi “disabled” (bị "
+ #~ "tắt), nghĩa là không có phím tắt cho hành động này."
++
++msgid "Transparent background"
++msgstr "Nền trong suốt"
+diff --git a/po/wa.po b/po/wa.po
+index 0e0a6a752b6d..7be7bcc04a93 100644
+--- a/po/wa.po
++++ b/po/wa.po
+@@ -564,8 +564,8 @@ msgid "_Text color:"
+ msgstr "Coleur pol _tecse:"
+
+ #: ../src/gnome-terminal.glade2.h:86
+-msgid "_Transparent background"
+-msgstr "Fond k' on voet _houte"
++msgid "Transparent background"
++msgstr "Fond k' on voet houte"
+
+ #: ../src/gnome-terminal.glade2.h:87
+ msgid "_Update login records when command is launched"
+diff --git a/po/xh.po b/po/xh.po
+index 44a8e21c7842..999efa7b4322 100644
+--- a/po/xh.po
++++ b/po/xh.po
+@@ -621,8 +621,8 @@ msgid "_Text color:"
+ msgstr "_Umbala wombhalo:"
+
+ #: ../src/gnome-terminal.glade2.h:102
+-msgid "_Transparent background"
+-msgstr "_Okungasemva okucace gca"
++msgid "Transparent background"
++msgstr "Okungasemva okucace gca"
+
+ #: ../src/gnome-terminal.glade2.h:103
+ msgid "_Update login records when command is launched"
+diff --git a/po/zh_CN.po b/po/zh_CN.po
+index f6ea45e6110a..f0b18eff7e10 100644
+--- a/po/zh_CN.po
++++ b/po/zh_CN.po
+@@ -2314,11 +2314,11 @@ msgstr "关闭窗口(_L)"
+ #~ msgid "Default size:"
+ #~ msgstr "默认大小:"
+
+-#~ msgid "Title"
+-#~ msgstr "标题"
++msgid "Title"
++msgstr "标题"
+
+-#~ msgid "_Title:"
+-#~ msgstr "标题(_T):"
++msgid "_Title:"
++msgstr "标题(_T):"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "标题和命令"
+@@ -2470,3 +2470,6 @@ msgstr "关闭窗口(_L)"
+
+ #~ msgid "_Find..."
+ #~ msgstr "查找(_F)..."
++
++msgid "Transparent background"
++msgstr "透明背景"
+diff --git a/po/zh_HK.po b/po/zh_HK.po
+index 61153529f0c7..119f7b9d3b84 100644
+--- a/po/zh_HK.po
++++ b/po/zh_HK.po
+@@ -2114,11 +2114,11 @@ msgstr "關閉視窗(_L)"
+ #~ msgid "Default size:"
+ #~ msgstr "預設大小:"
+
+-#~ msgid "Title"
+-#~ msgstr "標題"
++msgid "Title"
++msgstr "標題"
+
+-#~ msgid "_Title:"
+-#~ msgstr "標題(_T):"
++msgid "_Title:"
++msgstr "標題(_T):"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "標題及指令"
+@@ -2376,3 +2376,6 @@ msgstr "關閉視窗(_L)"
+
+ #~ msgid "Show session management options"
+ #~ msgstr "顯示作業階段管理選項"
++
++msgid "Transparent background"
++msgstr "透明背景"
+diff --git a/po/zh_TW.po b/po/zh_TW.po
+index e85dda1047a6..40dda98fa89a 100644
+--- a/po/zh_TW.po
++++ b/po/zh_TW.po
+@@ -2297,11 +2297,11 @@ msgstr "關閉視窗(_L)"
+ #~ msgid "Default size:"
+ #~ msgstr "預設大小:"
+
+-#~ msgid "Title"
+-#~ msgstr "標題"
++msgid "Title"
++msgstr "標題"
+
+-#~ msgid "_Title:"
+-#~ msgstr "標題(_T):"
++msgid "_Title:"
++msgstr "標題(_T):"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "標題及指令"
+@@ -2558,3 +2558,6 @@ msgstr "關閉視窗(_L)"
+
+ #~ msgid "Show session management options"
+ #~ msgstr "顯示作業階段管理選項"
++
++msgid "Transparent background"
++msgstr "透明背景"
+--
+2.9.3
+
+
+From 700c742cb27ef72c7bc117c82463cd19cab00980 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Wed, 25 May 2016 13:47:36 +0200
+Subject: [PATCH 12/14] Restore the action and shortcut to set a static title
+ from the menus
+
+This reverts 9bbe19e98f62aa3c9020913a3a5a8080a5177505 with a minor
+adjustment to the accelerator handling to keep up with later changes.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/migration.c | 1 +
+ src/org.gnome.Terminal.gschema.xml | 4 ++
+ src/terminal-accels.c | 3 ++
+ src/terminal-window.c | 88 ++++++++++++++++++++++++++++++++++++++
+ src/terminal.xml | 2 +
+ 5 files changed, 98 insertions(+)
+
+diff --git a/src/migration.c b/src/migration.c
+index 6ac53badcb26..6b270284dc72 100644
+--- a/src/migration.c
++++ b/src/migration.c
+@@ -552,6 +552,7 @@ migrate_accels (GSettings *global_settings,
+ { "zoom_in", "zoom-in" },
+ { "zoom_out", "zoom-out" },
+ { "zoom_normal", "zoom-normal" },
++ { "set_window_title", "set-terminal-title" },
+ { "reset", "reset" },
+ { "reset_and_clear", "reset-and-clear" },
+ { "prev_tab", "prev-tab" },
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index d117b41c1685..31376be934cb 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -446,6 +446,10 @@
+ <default>'disabled'</default>
+ <summary>Keyboard shortcut to toggle the read-only state</summary>
+ </key>
++ <key name="set-terminal-title" type="s">
++ <default>'disabled'</default>
++ <summary>Keyboard shortcut to set the terminal title</summary>
++ </key>
+ <key name="reset" type="s">
+ <default>'disabled'</default>
+ <summary>Keyboard shortcut to reset the terminal</summary>
+diff --git a/src/terminal-accels.c b/src/terminal-accels.c
+index 3bf8f4b8e3ed..89c73d4783ac 100644
+--- a/src/terminal-accels.c
++++ b/src/terminal-accels.c
+@@ -74,6 +74,7 @@
+ #define KEY_RESET "reset"
+ #define KEY_SAVE_CONTENTS "save-contents"
+ #define KEY_SELECT_ALL "select-all"
++#define KEY_SET_TERMINAL_TITLE "set-terminal-title"
+ #define KEY_TOGGLE_MENUBAR "toggle-menubar"
+ #define KEY_ZOOM_IN "zoom-in"
+ #define KEY_ZOOM_NORMAL "zoom-normal"
+@@ -107,6 +108,7 @@
+ #define ACCEL_PATH_KEY_RESET_AND_CLEAR ACCEL_PATH_ROOT "TerminalResetClear"
+ #define ACCEL_PATH_KEY_SAVE_CONTENTS ACCEL_PATH_ROOT "FileSaveContents"
+ #define ACCEL_PATH_KEY_SELECT_ALL ACCEL_PATH_ROOT "EditSelectAll"
++#define ACCEL_PATH_KEY_SET_TERMINAL_TITLE ACCEL_PATH_ROOT "TerminalSetTitle"
+ #define ACCEL_PATH_KEY_TOGGLE_MENUBAR ACCEL_PATH_ROOT "ViewMenubar"
+ #define ACCEL_PATH_KEY_ZOOM_IN ACCEL_PATH_ROOT "ViewZoomIn"
+ #define ACCEL_PATH_KEY_ZOOM_NORMAL ACCEL_PATH_ROOT "ViewZoom100"
+@@ -190,6 +192,7 @@ static KeyEntry terminal_entries[] = {
+ ENTRY (N_("Read-Only"), KEY_READ_ONLY, "read-only", NULL, NULL ),
+ ENTRY (N_("Reset"), KEY_RESET, "reset", "b", "false"),
+ ENTRY (N_("Reset and Clear"), KEY_RESET_AND_CLEAR, "reset", "b", "true" ),
++ ENTRY (N_("Set Title"), KEY_SET_TERMINAL_TITLE, "set-title", NULL, NULL ),
+ };
+
+ static KeyEntry tabs_entries[] = {
+diff --git a/src/terminal-window.c b/src/terminal-window.c
+index fd8e33b20bfd..3988382555aa 100644
+--- a/src/terminal-window.c
++++ b/src/terminal-window.c
+@@ -206,6 +206,8 @@ static void view_zoom_out_callback (GtkAction *action,
+ TerminalWindow *window);
+ static void view_zoom_normal_callback (GtkAction *action,
+ TerminalWindow *window);
++static void terminal_set_title_callback (GtkAction *action,
++ TerminalWindow *window);
+ static void terminal_add_encoding_callback (GtkAction *action,
+ TerminalWindow *window);
+ static void terminal_reset_callback (GtkAction *action,
+@@ -734,6 +736,88 @@ action_move_tab_cb (GSimpleAction *action,
+ }
+
+ static void
++terminal_set_title_dialog_response_cb (GtkWidget *dialog,
++ int response,
++ TerminalScreen *screen)
++{
++ if (response == GTK_RESPONSE_OK)
++ {
++ GtkEntry *entry;
++ const char *text;
++
++ entry = GTK_ENTRY (g_object_get_data (G_OBJECT (dialog), "title-entry"));
++ text = gtk_entry_get_text (entry);
++ terminal_screen_set_user_title (screen, text);
++ }
++
++ gtk_widget_destroy (dialog);
++}
++
++static void
++action_set_title_cb (GSimpleAction *action,
++ GVariant *parameter,
++ gpointer user_data)
++{
++ TerminalWindow *window = user_data;
++ TerminalWindowPrivate *priv = window->priv;
++ GtkWidget *dialog, *message_area, *hbox, *label, *entry;
++
++ if (priv->active_screen == NULL)
++ return;
++
++ /* FIXME: hook the screen up so this dialogue closes if the terminal screen closes */
++
++ dialog = gtk_message_dialog_new (GTK_WINDOW (window),
++ GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
++ GTK_MESSAGE_OTHER,
++ GTK_BUTTONS_OK_CANCEL,
++ "%s", "");
++
++ gtk_window_set_title (GTK_WINDOW (dialog), _("Set Title"));
++ gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
++ gtk_window_set_role (GTK_WINDOW (dialog), "gnome-terminal-change-title");
++ gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
++ /* Alternative button order was set automatically by GtkMessageDialog */
++
++ g_signal_connect (dialog, "response",
++ G_CALLBACK (terminal_set_title_dialog_response_cb), priv->active_screen);
++ g_signal_connect (dialog, "delete-event",
++ G_CALLBACK (terminal_util_dialog_response_on_delete), NULL);
++
++ message_area = gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (dialog));
++ gtk_container_foreach (GTK_CONTAINER (message_area), (GtkCallback) gtk_widget_hide, NULL);
++
++ hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12);
++ gtk_box_pack_start (GTK_BOX (message_area), hbox, FALSE, FALSE, 0);
++
++ label = gtk_label_new_with_mnemonic (_("_Title:"));
++ gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
++ gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
++
++ entry = gtk_entry_new ();
++ gtk_entry_set_width_chars (GTK_ENTRY (entry), 32);
++ gtk_entry_set_activates_default (GTK_ENTRY (entry), TRUE);
++ gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
++ gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
++ gtk_widget_show_all (hbox);
++
++ gtk_widget_grab_focus (entry);
++ gtk_entry_set_text (GTK_ENTRY (entry), terminal_screen_get_user_title (priv->active_screen));
++ gtk_editable_select_region (GTK_EDITABLE (entry), 0, -1);
++ g_object_set_data (G_OBJECT (dialog), "title-entry", entry);
++
++ gtk_window_present (GTK_WINDOW (dialog));
++}
++
++static void
++terminal_set_title_callback (GtkAction *action,
++ TerminalWindow *window)
++{
++ g_action_activate (g_action_map_lookup_action (G_ACTION_MAP (window), "set-title"),
++ NULL);
++}
++
++static void
+ action_zoom_cb (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+@@ -2441,6 +2525,7 @@ terminal_window_init (TerminalWindow *window)
+ { "reset", action_reset_cb, "b", NULL, NULL },
+ { "switch-tab", action_switch_tab_cb, "i", NULL, NULL },
+ { "move-tab", action_move_tab_cb, "i", NULL, NULL },
++ { "set-title", action_set_title_cb, NULL, NULL, NULL },
+ { "zoom", action_zoom_cb, "i", NULL, NULL },
+ { "detach-tab", action_detach_tab_cb, NULL, NULL, NULL },
+ { "find", action_find_cb, "s", NULL, NULL },
+@@ -2544,6 +2629,9 @@ terminal_window_init (TerminalWindow *window)
+
+ /* Terminal menu */
+ { "TerminalProfiles", NULL, N_("Change _Profile") },
++ { "TerminalSetTitle", NULL, N_("_Set Title…"), NULL,
++ NULL,
++ G_CALLBACK (terminal_set_title_callback) },
+ { "TerminalSetEncoding", NULL, N_("Set _Character Encoding") },
+ { "TerminalReset", NULL, N_("_Reset"), NULL,
+ NULL,
+diff --git a/src/terminal.xml b/src/terminal.xml
+index 242ebe13e240..d56b82f0301d 100644
+--- a/src/terminal.xml
++++ b/src/terminal.xml
+@@ -48,6 +48,7 @@
+ </menu>
+ <menu action="Terminal">
+ <menu action="TerminalProfiles" />
++ <menuitem action="TerminalSetTitle" />
+ <menu action="TerminalSetEncoding" >
+ <placeholder name="EncodingsPH" />
+ <separator />
+@@ -111,6 +112,7 @@
+ <menuitem action="TabsMoveRight"/>
+ <separator />
+ <menuitem action="TabsDetach"/>
++ <menuitem action="TerminalSetTitle" />
+ <separator />
+ <menuitem action="FileCloseTab"/>
+ </popup>
+--
+2.9.3
+
+
+From d9311d8557ce032d4d627117e5c49e5b14ba6c60 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 18:14:36 +0200
+Subject: [PATCH 13/14] screen: Style fix
+
+This brings the code in line with how it was before
+de0dc7c2649c42e2aa02a66e4be27d262b34452d
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/terminal-screen.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/terminal-screen.c b/src/terminal-screen.c
+index f45383ab54cd..feffc36cdf18 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -705,7 +705,7 @@ terminal_screen_new (GSettings *profile,
+ /* If given an initial title, strip it of control characters and
+ * feed it to the terminal.
+ */
+- if (title != NULL) {
++ if (title) {
+ GString *seq;
+ const char *p;
+
+--
+2.9.3
+
+
+From 1d0a0e0e5e5d2fcaf5750e270a550ecdc6484ebe Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 16:58:15 +0200
+Subject: [PATCH 14/14] Restore the rest of the title handling options and make
+ it all work
+
+This reverts commit f27bf0135a2d18ba22158d28bf1f8c5f6ec066c8 and makes
+it use the user_title API instead of sending an escape sequence.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/migration.c | 4 +
+ src/org.gnome.Terminal.gschema.xml | 12 ++
+ src/profile-editor.c | 8 +
+ src/profile-preferences.ui | 48 +++++-
+ src/terminal-enums.h | 8 +
+ src/terminal-schemas.h | 1 +
+ src/terminal-screen.c | 327 ++++++++++++++++++++++++++++---------
+ src/terminal-screen.h | 8 +-
+ src/terminal-window.c | 11 +-
+ 9 files changed, 347 insertions(+), 80 deletions(-)
+
+diff --git a/src/migration.c b/src/migration.c
+index 6b270284dc72..1bd03ae9dcbf 100644
+--- a/src/migration.c
++++ b/src/migration.c
+@@ -89,6 +89,7 @@ enum {
+ #define KEY_SCROLL_ON_KEYSTROKE "scroll_on_keystroke"
+ #define KEY_SCROLL_ON_OUTPUT "scroll_on_output"
+ #define KEY_SILENT_BELL "silent_bell"
++#define KEY_TITLE_MODE "title_mode"
+ #define KEY_TITLE "title"
+ #define KEY_USE_CUSTOM_COMMAND "use_custom_command"
+ #define KEY_USE_SYSTEM_FONT "use_system_font"
+@@ -412,6 +413,9 @@ migrate_profile (TerminalSettingsList *list,
+ migrate_bool (client, path, KEY_BOLD_COLOR_SAME_AS_FG,
+ settings, TERMINAL_PROFILE_BOLD_COLOR_SAME_AS_FG_KEY,
+ FALSE);
++ migrate_genum (client, path, KEY_TITLE_MODE,
++ settings, TERMINAL_PROFILE_TITLE_MODE_KEY,
++ TERMINAL_TYPE_TITLE_MODE);
+ migrate_string (client, path, KEY_TITLE,
+ settings, TERMINAL_PROFILE_TITLE_KEY);
+ migrate_bool (client, path, KEY_ALLOW_BOLD,
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index 31376be934cb..14cfacdb40cb 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -24,6 +24,13 @@
+ -->
+ <schemalist gettext-domain="gnome-terminal">
+
++ <enum id='org.gnome.Terminal.TitleMode'>
++ <value nick='replace' value='0'/>
++ <value nick='before' value='1'/>
++ <value nick='after' value='2'/>
++ <value nick='ignore' value='3'/>
++ </enum>
++
+ <enum id='org.gnome.Terminal.NewTerminalMode'>
+ <value nick='window' value='0'/>
+ <value nick='tab' value='1'/>
+@@ -167,6 +174,11 @@
+ <summary>Highlight foreground colour</summary>
+ <description>Custom color for the foreground of the text character at the terminal's 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>
+ </key>
++ <key name="title-mode" enum="org.gnome.Terminal.TitleMode">
++ <default>'replace'</default>
++ <summary>What to do with dynamic title</summary>
++ <description>If the application in the terminal sets the title (most typically people have their shell set up to do this), the dynamically-set title can erase the configured title, go before it, go after it, or replace it. The possible values are "replace", "before", "after", and "ignore".</description>
++ </key>
+ <key name="title" type="s">
+ <default l10n="messages" context="title">'Terminal'</default>
+ <summary>Title for terminal</summary>
+diff --git a/src/profile-editor.c b/src/profile-editor.c
+index 09dc79c94ed5..1995bae5896e 100644
+--- a/src/profile-editor.c
++++ b/src/profile-editor.c
+@@ -1164,6 +1164,14 @@ terminal_profile_edit (GSettings *profile,
+ g_settings_bind (profile, TERMINAL_PROFILE_TITLE_KEY,
+ gtk_builder_get_object (builder, "title-entry"), "text",
+ G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET);
++ g_settings_bind_with_mapping (profile, TERMINAL_PROFILE_TITLE_MODE_KEY,
++ gtk_builder_get_object (builder,
++ "title-mode-combobox"),
++ "active",
++ G_SETTINGS_BIND_GET | G_SETTINGS_BIND_SET,
++ (GSettingsBindGetMapping) string_to_enum,
++ (GSettingsBindSetMapping) enum_to_string,
++ terminal_title_mode_get_type, NULL);
+ g_settings_bind (profile, TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY,
+ gtk_builder_get_object (builder,
+ "use-custom-command-checkbutton"),
+diff --git a/src/profile-preferences.ui b/src/profile-preferences.ui
+index fdae0ae245cf..e16ee4332e99 100644
+--- a/src/profile-preferences.ui
++++ b/src/profile-preferences.ui
+@@ -573,7 +573,7 @@
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+- <property name="label" translatable="yes">_Title:</property>
++ <property name="label" translatable="yes">Initial _title:</property>
+ <property name="use_underline">True</property>
+ <property name="justify">center</property>
+ <property name="mnemonic_widget">title-entry</property>
+@@ -602,6 +602,52 @@
+ <property name="position">0</property>
+ </packing>
+ </child>
++ <child>
++ <object class="GtkHBox" id="hbox138">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkLabel" id="title-mode-combobox-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="xalign">0</property>
++ <property name="label" translatable="yes">When terminal commands set their o_wn titles:</property>
++ <property name="use_underline">True</property>
++ <property name="justify">center</property>
++ <property name="mnemonic_widget">title-mode-combobox</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkComboBox" id="title-mode-combobox">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="model">model2</property>
++ <child>
++ <object class="GtkCellRendererText" id="renderer2"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">True</property>
++ <property name="position">1</property>
++ </packing>
++ </child>
+ </object>
+ </child>
+ </object>
+diff --git a/src/terminal-enums.h b/src/terminal-enums.h
+index bdd354e38360..731dcf2aaebc 100644
+--- a/src/terminal-enums.h
++++ b/src/terminal-enums.h
+@@ -31,6 +31,14 @@ typedef enum {
+
+ typedef enum
+ {
++ TERMINAL_TITLE_REPLACE,
++ TERMINAL_TITLE_BEFORE,
++ TERMINAL_TITLE_AFTER,
++ TERMINAL_TITLE_IGNORE
++} TerminalTitleMode;
++
++typedef enum
++{
+ TERMINAL_EXIT_CLOSE,
+ TERMINAL_EXIT_RESTART,
+ TERMINAL_EXIT_HOLD
+diff --git a/src/terminal-schemas.h b/src/terminal-schemas.h
+index eb2aa7f8448e..a6d2a92ee816 100644
+--- a/src/terminal-schemas.h
++++ b/src/terminal-schemas.h
+@@ -62,6 +62,7 @@ G_BEGIN_DECLS
+ #define TERMINAL_PROFILE_SCROLLBAR_POLICY_KEY "scrollbar-policy"
+ #define TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE_KEY "scroll-on-keystroke"
+ #define TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY "scroll-on-output"
++#define TERMINAL_PROFILE_TITLE_MODE_KEY "title-mode"
+ #define TERMINAL_PROFILE_TITLE_KEY "title"
+ #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 feffc36cdf18..5f683b924ea4 100644
+--- a/src/terminal-screen.c
++++ b/src/terminal-screen.c
+@@ -84,13 +84,17 @@ struct _TerminalScreenPrivate
+ GSettings *profile; /* never NULL */
+ guint profile_changed_id;
+ guint profile_forgotten_id;
+- char *title;
++ char *raw_title, *raw_icon_title;
++ char *cooked_title, *cooked_icon_title;
++ char *override_title;
++ gboolean icon_title_set;
+ char *initial_working_directory;
+ char **initial_env;
+ char **override_command;
+ gboolean shell;
+ gboolean shell_prompt_shown;
+ int child_pid;
++ gboolean user_title; /* title was manually set */
+ GSList *match_tags;
+ guint launch_child_source_id;
+ };
+@@ -110,7 +114,6 @@ enum {
+ PROP_ICON_TITLE,
+ PROP_ICON_TITLE_SET,
+ PROP_TITLE,
+- PROP_DESCRIPTION,
+ PROP_INITIAL_ENVIRONMENT
+ };
+
+@@ -161,6 +164,11 @@ static void terminal_screen_icon_title_changed (VteTerminal *vte_terminal
+
+ static void update_color_scheme (TerminalScreen *screen);
+
++static gboolean terminal_screen_format_title (TerminalScreen *screen, const char *raw_title, char **old_cooked_title);
++
++static void terminal_screen_cook_title (TerminalScreen *screen);
++static void terminal_screen_cook_icon_title (TerminalScreen *screen);
++
+ static void terminal_screen_check_extra (TerminalScreen *screen,
+ GdkEvent *event,
+ char **number_info);
+@@ -397,6 +405,9 @@ terminal_screen_init (TerminalScreen *screen)
+ gtk_target_table_free (targets, n_targets);
+ gtk_target_list_unref (target_list);
+
++ priv->override_title = NULL;
++ priv->user_title = FALSE;
++
+ g_signal_connect (screen, "window-title-changed",
+ G_CALLBACK (terminal_screen_window_title_changed),
+ screen);
+@@ -442,9 +453,6 @@ terminal_screen_get_property (GObject *object,
+ case PROP_TITLE:
+ g_value_set_string (value, terminal_screen_get_title (screen));
+ break;
+- case PROP_DESCRIPTION:
+- g_value_take_string (value, terminal_screen_get_description (screen));
+- break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+@@ -470,7 +478,6 @@ terminal_screen_set_property (GObject *object,
+ case PROP_ICON_TITLE:
+ case PROP_ICON_TITLE_SET:
+ case PROP_TITLE:
+- case PROP_DESCRIPTION:
+ /* not writable */
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+@@ -572,13 +579,6 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ NULL,
+ G_PARAM_READABLE | G_PARAM_STATIC_NAME | G_PARAM_STATIC_NICK | G_PARAM_STATIC_BLURB));
+
+- g_object_class_install_property (object_class,
+- PROP_DESCRIPTION,
+- g_param_spec_string ("description", NULL, NULL,
+- NULL,
+- G_PARAM_READABLE |
+- G_PARAM_STATIC_STRINGS));
+-
+ g_object_class_install_property
+ (object_class,
+ PROP_INITIAL_ENVIRONMENT,
+@@ -653,7 +653,11 @@ terminal_screen_finalize (GObject *object)
+
+ terminal_screen_set_profile (screen, NULL);
+
+- g_free (priv->title);
++ g_free (priv->raw_title);
++ g_free (priv->cooked_title);
++ g_free (priv->override_title);
++ g_free (priv->raw_icon_title);
++ g_free (priv->cooked_icon_title);
+ g_free (priv->initial_working_directory);
+ g_strfreev (priv->override_command);
+ g_strfreev (priv->initial_env);
+@@ -702,28 +706,8 @@ terminal_screen_new (GSettings *profile,
+ g_settings_get_int (profile, TERMINAL_PROFILE_DEFAULT_SIZE_COLUMNS_KEY),
+ g_settings_get_int (profile, TERMINAL_PROFILE_DEFAULT_SIZE_ROWS_KEY));
+
+- /* If given an initial title, strip it of control characters and
+- * feed it to the terminal.
+- */
+- if (title) {
+- GString *seq;
+- const char *p;
+-
+- seq = g_string_new ("\033]0;");
+- for (p = title; *p; p = g_utf8_next_char (p)) {
+- gunichar c = g_utf8_get_char (p);
+- if (c < 0x20 || (c >= 0x7f && c <= 0x9f))
+- continue;
+- else if (c == ';')
+- break;
+-
+- g_string_append_unichar (seq, c);
+- }
+- g_string_append (seq, "\033\\");
+-
+- vte_terminal_feed (VTE_TERMINAL (screen), seq->str, seq->len);
+- g_string_free (seq, TRUE);
+- }
++ if (title)
++ terminal_screen_set_override_title (screen, title);
+
+ priv->initial_working_directory = g_strdup (working_dir);
+
+@@ -779,45 +763,174 @@ terminal_screen_exec (TerminalScreen *screen,
+ }
+
+ const char*
++terminal_screen_get_raw_title (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++
++ if (priv->raw_title)
++ return priv->raw_title;
++
++ return "";
++}
++
++const char*
+ terminal_screen_get_title (TerminalScreen *screen)
+ {
+- return vte_terminal_get_window_title (VTE_TERMINAL (screen));
++ TerminalScreenPrivate *priv = screen->priv;
++
++ if (priv->cooked_title == NULL)
++ terminal_screen_cook_title (screen);
++
++ /* cooked_title may still be NULL */
++ if (priv->cooked_title != NULL)
++ return priv->cooked_title;
++ else
++ return "";
+ }
+
+ const char*
+ terminal_screen_get_icon_title (TerminalScreen *screen)
+ {
+- return vte_terminal_get_icon_title (VTE_TERMINAL (screen));
++ TerminalScreenPrivate *priv = screen->priv;
++
++ if (priv->cooked_icon_title == NULL)
++ terminal_screen_cook_icon_title (screen);
++
++ /* cooked_icon_title may still be NULL */
++ if (priv->cooked_icon_title != NULL)
++ return priv->cooked_icon_title;
++ else
++ return "";
+ }
+
+ gboolean
+ terminal_screen_get_icon_title_set (TerminalScreen *screen)
+ {
+- return vte_terminal_get_icon_title (VTE_TERMINAL (screen)) != NULL;
++ return screen->priv->icon_title_set;
+ }
+
+-char *
+-terminal_screen_get_description (TerminalScreen *screen)
++/* Supported format specifiers:
++ * %S = static title
++ * %D = dynamic title
++ * %A = dynamic title, falling back to static title if empty
++ * %- = separator, if not at start or end of string (excluding whitespace)
++ */
++static const char *
++terminal_screen_get_title_format (TerminalScreen *screen)
+ {
+ TerminalScreenPrivate *priv = screen->priv;
+- gs_free char *title_string = NULL;
+- const char *title;
++ static const char *formats[] = {
++ "%A" /* TERMINAL_TITLE_REPLACE */,
++ "%D%-%S" /* TERMINAL_TITLE_BEFORE */,
++ "%S%-%D" /* TERMINAL_TITLE_AFTER */,
++ "%S" /* TERMINAL_TITLE_IGNORE */
++ };
++
++ return formats[g_settings_get_enum (priv->profile, TERMINAL_PROFILE_TITLE_MODE_KEY)];
++}
++
++/**
++ * terminal_screen_format_title::
++ * @screen:
++ * @raw_title: main ingredient
++ * @titleptr <inout>: pointer of the current title string
++ *
++ * Format title according @format, and stores it in <literal>*titleptr</literal>.
++ * Always ensures that *titleptr will be non-NULL.
++ *
++ * Returns: %TRUE iff the title changed
++ */
++static gboolean
++terminal_screen_format_title (TerminalScreen *screen,
++ const char *raw_title,
++ char **titleptr)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++ gs_free char *static_title_string = NULL;
++ const char *format, *arg;
++ const char *static_title = NULL;
++ GString *title;
++ gboolean add_sep = FALSE;
++
++ g_assert (titleptr);
+
+ /* use --title argument if one was supplied, otherwise ask the profile */
+- if (priv->title)
+- title = priv->title;
++ if (priv->override_title)
++ static_title = priv->override_title;
+ else
+- title = title_string = g_settings_get_string (priv->profile, TERMINAL_PROFILE_TITLE_KEY);
++ static_title = static_title_string = g_settings_get_string (priv->profile, TERMINAL_PROFILE_TITLE_KEY);
++
++ title = g_string_sized_new (128);
++
++ format = terminal_screen_get_title_format (screen);
++ for (arg = format; *arg; arg += 2)
++ {
++ const char *text_to_append = NULL;
+
+- return g_strdup_printf ("%s — %d",
+- title && title[0] ? title : _("Terminal"),
+- screen->priv->child_pid);
++ g_assert (arg[0] == '%');
++
++ switch (arg[1])
++ {
++ case 'A':
++ text_to_append = raw_title ? raw_title : static_title;
++ break;
++ case 'D':
++ text_to_append = raw_title;
++ break;
++ case 'S':
++ text_to_append = static_title;
++ break;
++ case '-':
++ text_to_append = NULL;
++ add_sep = TRUE;
++ break;
++ default:
++ g_assert_not_reached ();
++ }
++
++ if (!text_to_append || !text_to_append[0])
++ continue;
++
++ if (add_sep && title->len > 0)
++ g_string_append (title, " - ");
++
++ g_string_append (title, text_to_append);
++ add_sep = FALSE;
++ }
++
++ if (*titleptr == NULL || strcmp (title->str, *titleptr) != 0)
++ {
++ g_free (*titleptr);
++ *titleptr = g_string_free (title, FALSE);
++ return TRUE;
++ }
++
++ g_string_free (title, TRUE);
++ return FALSE;
++}
++
++static void
++terminal_screen_cook_title (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++
++ if (terminal_screen_format_title (screen, priv->raw_title, &priv->cooked_title))
++ g_object_notify (G_OBJECT (screen), "title");
++}
++
++static void
++terminal_screen_cook_icon_title (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++
++ if (terminal_screen_format_title (screen, priv->raw_icon_title, &priv->cooked_icon_title))
++ g_object_notify (G_OBJECT (screen), "icon-title");
+ }
+
+ static void
+ terminal_screen_profile_changed_cb (GSettings *profile,
+ const char *prop_name,
+- TerminalScreen *screen)
++ TerminalScreen *screen)
+ {
+ TerminalScreenPrivate *priv = screen->priv;
+ GObject *object = G_OBJECT (screen);
+@@ -858,9 +971,11 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ }
+
+ if (!prop_name ||
++ prop_name == I_(TERMINAL_PROFILE_TITLE_MODE_KEY) ||
+ prop_name == I_(TERMINAL_PROFILE_TITLE_KEY))
+ {
+- g_object_notify (object, "description");
++ terminal_screen_cook_title (screen);
++ terminal_screen_cook_icon_title (screen);
+ }
+
+ if (gtk_widget_get_realized (GTK_WIDGET (screen)) &&
+@@ -1129,7 +1244,6 @@ terminal_screen_set_profile (TerminalScreen *screen,
+ g_object_unref (old_profile);
+
+ g_object_notify (G_OBJECT (screen), "profile");
+- g_object_notify (G_OBJECT (screen), "description");
+ }
+
+ GSettings*
+@@ -1534,8 +1648,6 @@ out:
+ g_strfreev (env);
+ free_fd_setup_data (data);
+
+- g_object_notify (G_OBJECT (screen), "description");
+-
+ return result;
+ }
+
+@@ -1759,33 +1871,83 @@ terminal_screen_focus_in (GtkWidget *widget,
+ return GTK_WIDGET_CLASS (terminal_screen_parent_class)->focus_in_event (widget, event);
+ }
+
+-void
+-terminal_screen_set_user_title (TerminalScreen *screen,
+- const char *title)
++static void
++terminal_screen_set_dynamic_title (TerminalScreen *screen,
++ const char *title,
++ gboolean userset)
+ {
+ TerminalScreenPrivate *priv = screen->priv;
+
+- g_return_if_fail (TERMINAL_IS_SCREEN (screen));
++ g_assert (TERMINAL_IS_SCREEN (screen));
++
++ if ((priv->user_title && !userset) ||
++ (priv->raw_title && title &&
++ strcmp (priv->raw_title, title) == 0))
++ return;
++
++ g_free (priv->raw_title);
++ priv->raw_title = g_strdup (title);
++ terminal_screen_cook_title (screen);
++}
++
++static void
++terminal_screen_set_dynamic_icon_title (TerminalScreen *screen,
++ const char *icon_title,
++ gboolean userset)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++ GObject *object = G_OBJECT (screen);
++
++ g_assert (TERMINAL_IS_SCREEN (screen));
+
+- if (g_strcmp0 (priv->title, title) == 0)
++ if ((priv->user_title && !userset) ||
++ (priv->icon_title_set &&
++ priv->raw_icon_title &&
++ icon_title &&
++ strcmp (priv->raw_icon_title, icon_title) == 0))
+ return;
+
+- g_free (priv->title);
+- priv->title = title && title[0] ? g_strdup (title) : NULL;
++ g_object_freeze_notify (object);
++
++ g_free (priv->raw_icon_title);
++ priv->raw_icon_title = g_strdup (icon_title);
++ priv->icon_title_set = TRUE;
++
++ g_object_notify (object, "icon-title-set");
++ terminal_screen_cook_icon_title (screen);
+
+- g_object_notify (G_OBJECT (screen), "description");
++ g_object_thaw_notify (object);
+ }
+
+-const char*
+-terminal_screen_get_user_title (TerminalScreen *screen)
++void
++terminal_screen_set_override_title (TerminalScreen *screen,
++ const char *title)
+ {
+- TerminalScreenPrivate *priv;
++ TerminalScreenPrivate *priv = screen->priv;
++ char *old_title;
+
+- g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL);
++ old_title = priv->override_title;
++ priv->override_title = g_strdup (title);
++ g_free (old_title);
+
+- priv = screen->priv;
++ terminal_screen_set_dynamic_title (screen, title, FALSE);
++ terminal_screen_set_dynamic_icon_title (screen, title, FALSE);
++}
+
+- return priv->title ? priv->title : _("Terminal");
++const char*
++terminal_screen_get_dynamic_title (TerminalScreen *screen)
++{
++ g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL);
++
++ return screen->priv->raw_title;
++}
++
++const char*
++terminal_screen_get_dynamic_icon_title (TerminalScreen *screen)
++{
++ g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), NULL);
++
++ return screen->priv->raw_icon_title;
+ }
+
+ /**
+@@ -1818,15 +1980,18 @@ static void
+ terminal_screen_window_title_changed (VteTerminal *vte_terminal,
+ TerminalScreen *screen)
+ {
+- g_object_notify (G_OBJECT (screen), "title");
++ terminal_screen_set_dynamic_title (screen,
++ vte_terminal_get_window_title (vte_terminal),
++ FALSE);
+ }
+
+ static void
+ terminal_screen_icon_title_changed (VteTerminal *vte_terminal,
+ TerminalScreen *screen)
+ {
+- g_object_notify (G_OBJECT (screen), "icon-title");
+- g_object_notify (G_OBJECT (screen), "icon-title-set");
++ terminal_screen_set_dynamic_icon_title (screen,
++ vte_terminal_get_icon_title (vte_terminal),
++ FALSE);
+ }
+
+ static void
+@@ -1845,8 +2010,6 @@ terminal_screen_child_exited (VteTerminal *terminal,
+
+ priv->child_pid = -1;
+
+- g_object_notify (G_OBJECT (screen), "description");
+-
+ action = g_settings_get_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION_KEY);
+
+ switch (action)
+@@ -1890,6 +2053,24 @@ terminal_screen_child_exited (VteTerminal *terminal,
+ }
+ }
+
++void
++terminal_screen_set_user_title (TerminalScreen *screen,
++ const char *text)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++
++ /* The user set the title to nothing, let's understand that as a
++ request to revert to dynamically setting the title again. */
++ if (!text || !text[0])
++ priv->user_title = FALSE;
++ else
++ {
++ priv->user_title = TRUE;
++ terminal_screen_set_dynamic_title (screen, text, TRUE);
++ terminal_screen_set_dynamic_icon_title (screen, text, TRUE);
++ }
++}
++
+ static void
+ terminal_screen_notification_received (VteTerminal *terminal,
+ const char *summary,
+diff --git a/src/terminal-screen.h b/src/terminal-screen.h
+index 133c2309e8a8..2e6406c24670 100644
+--- a/src/terminal-screen.h
++++ b/src/terminal-screen.h
+@@ -103,15 +103,19 @@ void terminal_screen_set_initial_environment (TerminalScreen *screen,
+ char **argv);
+ char ** terminal_screen_get_initial_environment (TerminalScreen *screen);
+
+-const char *terminal_screen_get_user_title (TerminalScreen *screen);
++const char* terminal_screen_get_raw_title (TerminalScreen *screen);
+ const char* terminal_screen_get_title (TerminalScreen *screen);
+ const char* terminal_screen_get_icon_title (TerminalScreen *screen);
+ gboolean terminal_screen_get_icon_title_set (TerminalScreen *screen);
+-char * terminal_screen_get_description (TerminalScreen *screen);
+
+ void terminal_screen_set_user_title (TerminalScreen *screen,
+ const char *text);
+
++void terminal_screen_set_override_title (TerminalScreen *screen,
++ const char *title);
++
++const char *terminal_screen_get_dynamic_title (TerminalScreen *screen);
++const char *terminal_screen_get_dynamic_icon_title (TerminalScreen *screen);
+
+ char *terminal_screen_get_current_dir (TerminalScreen *screen);
+
+diff --git a/src/terminal-window.c b/src/terminal-window.c
+index 3988382555aa..24576692ad68 100644
+--- a/src/terminal-window.c
++++ b/src/terminal-window.c
+@@ -753,6 +753,12 @@ terminal_set_title_dialog_response_cb (GtkWidget *dialog,
+ gtk_widget_destroy (dialog);
+ }
+
++static const char *
++terminal_screen_get_user_title (TerminalScreen *screen)
++{
++ return terminal_screen_get_raw_title (screen);
++}
++
+ static void
+ action_set_title_cb (GSimpleAction *action,
+ GVariant *parameter,
+@@ -3127,14 +3133,11 @@ sync_screen_title (TerminalScreen *screen,
+ TerminalWindow *window)
+ {
+ TerminalWindowPrivate *priv = window->priv;
+- const char *title;
+
+ if (screen != priv->active_screen)
+ return;
+
+- title = terminal_screen_get_title (screen);
+- gtk_window_set_title (GTK_WINDOW (window),
+- title && title[0] ? title : _("Terminal"));
++ gtk_window_set_title (GTK_WINDOW (window), terminal_screen_get_title (screen));
+ }
+
+ static void
+--
+2.9.3
+