summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Edson2022-08-09 06:42:10 -0700
committerJason Edson2022-08-09 06:44:46 -0700
commit60656aca4081bbb1d72679b0032e6fd69f8a4b5a (patch)
tree7b3b16d5ae7e4e40528cb5f0df90ad3b39f987d4
parentf0bd41ddaec15aa91259f29e8d8b009b81f60ae9 (diff)
downloadaur-60656aca4081bbb1d72679b0032e6fd69f8a4b5a.tar.gz
Update to 3.45.90 with fixed patch
Fixed the patch and added it to source until Fedora updates
-rw-r--r--.SRCINFO8
-rw-r--r--.gitignore1
-rw-r--r--PKGBUILD7
-rw-r--r--gnome-terminal-fedora_3.45.90.patch6113
4 files changed, 6124 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 956fcc0385d3..79d37b548e6c 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = gnome-terminal-fedora
pkgdesc = The GNOME Terminal Emulator with Fedora patches
- pkgver = 3.44.1
+ pkgver = 3.45.90
pkgrel = 1
url = https://wiki.gnome.org/Apps/Terminal
arch = i686
@@ -17,14 +17,16 @@ pkgbase = gnome-terminal-fedora
depends = gsettings-desktop-schemas
optdepends = gconf: for gnome-terminal-migration
optdepends = libnautilus-extension: for "Open Terminal Here" in GNOME Files
- provides = gnome-terminal=3.44.1
+ provides = gnome-terminal=3.45.90
conflicts = gnome-terminal
options = !emptydirs
- source = git+https://gitlab.gnome.org/GNOME/gnome-terminal.git#tag=3.44.1
+ source = git+https://gitlab.gnome.org/GNOME/gnome-terminal.git#tag=3.45.90
source = gnome-terminal-cntr-ntfy-autottl-ts.patch-f861af05934c00673324840140004b0a5c9197f7::https://src.fedoraproject.org/rpms/gnome-terminal/raw/f861af05934c00673324840140004b0a5c9197f7/f/gnome-terminal-cntr-ntfy-autottl-ts.patch
source = org.gnome.Terminal.gschema.override-f861af05934c00673324840140004b0a5c9197f7::https://src.fedoraproject.org/rpms/gnome-terminal/raw/f861af05934c00673324840140004b0a5c9197f7/f/org.gnome.Terminal.gschema.override
+ source = gnome-terminal-fedora_3.45.90.patch
sha256sums = SKIP
sha256sums = cf8c1ccc822e7198bf9a9598b7e0cc3c958c542ba138a5874302b730f0d76eec
sha256sums = a4a22834d6524fb697a8edf91c9489617d5ab2e513413fc84c6b8575320938f9
+ sha256sums = e54426ce4ebc2c93dc96b566e7867f4a2b06b6d52f68271029a34d0faf20609b
pkgname = gnome-terminal-fedora
diff --git a/.gitignore b/.gitignore
index ed6fb45a5386..e041c010b317 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
!PKGBUILD
!.SRCINFO
!.gitignore
+!gnome-terminal-fedora_3.45.90.patch
diff --git a/PKGBUILD b/PKGBUILD
index 4ef0e0839b1b..f8c2c183d46b 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -6,7 +6,7 @@
_pkgname='gnome-terminal'
pkgname="${_pkgname}-fedora"
-pkgver=3.44.1
+pkgver=3.45.90
pkgrel=1
pkgdesc='The GNOME Terminal Emulator with Fedora patches'
url='https://wiki.gnome.org/Apps/Terminal'
@@ -47,18 +47,21 @@ source=(
"git+https://gitlab.gnome.org/GNOME/gnome-terminal.git#tag=${pkgver}"
"${_fpatchfile100}-${_fcommit}::${_frepourl}/raw/${_fcommit}/f/${_fpatchfile100}"
"${_fgsoverridefile}-${_fcommit}::${_frepourl}/raw/${_fcommit}/f/${_fgsoverridefile}"
+ "gnome-terminal-fedora_3.45.90.patch"
)
sha256sums=(
'SKIP'
'cf8c1ccc822e7198bf9a9598b7e0cc3c958c542ba138a5874302b730f0d76eec'
'a4a22834d6524fb697a8edf91c9489617d5ab2e513413fc84c6b8575320938f9'
+ 'e54426ce4ebc2c93dc96b566e7867f4a2b06b6d52f68271029a34d0faf20609b'
)
prepare () {
cd ${_pkgname}
# Apply patches
- patch -p1 -i "../${_fpatchfile100}-${_fcommit}"
+ #patch -p1 -i "../${_fpatchfile100}-${_fcommit}"
+ patch -p1 -i "${srcdir}/gnome-terminal-fedora_3.45.90.patch" # Fixed patch
}
build() {
diff --git a/gnome-terminal-fedora_3.45.90.patch b/gnome-terminal-fedora_3.45.90.patch
new file mode 100644
index 000000000000..061b9943814f
--- /dev/null
+++ b/gnome-terminal-fedora_3.45.90.patch
@@ -0,0 +1,6113 @@
+From d45f7110f6774c1eaf334fc11bae1311e7e36ac1 Mon Sep 17 00:00:00 2001
+From: Christian Persch <chpe@src.gnome.org>
+Date: Mon, 13 Sep 2021 00:17:00 +0200
+Subject: [PATCH 01/18] metainfo: Remove XML namespaces
+
+They breaks merging translations due to gettext bug
+https://savannah.gnu.org/bugs/?54472 .
+
+https://gitlab.gnome.org/GNOME/gnome-terminal/-/issues/356
+---
+ data/org.gnome.Terminal.Nautilus.metainfo.xml.in | 6 +-----
+ data/org.gnome.Terminal.metainfo.xml.in | 6 +-----
+ 2 files changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/data/org.gnome.Terminal.Nautilus.metainfo.xml.in b/data/org.gnome.Terminal.Nautilus.metainfo.xml.in
+index bce73491..a28b79f8 100644
+--- a/data/org.gnome.Terminal.Nautilus.metainfo.xml.in
++++ b/data/org.gnome.Terminal.Nautilus.metainfo.xml.in
+@@ -27,11 +27,7 @@
+ of the GNU Free Documentation License along with this program.
+ If not, see <https://www.gnu.org/licenses/>.
+ -->
+-<component
+- xmlns="https://specifications.freedesktop.org/metainfo/1.0"
+- xmlns:xi="http://www.w3.org/2001/XInclude"
+- xmlns:its="http://www.w3.org/2005/11/its"
+- type="addon">
++<component type="addon">
+ <id>org.gnome.Terminal.Nautilus</id>
+ <extends>org.gnome.Nautilus.desktop</extends>
+ <metadata_license>GPL-3.0+ or GFDL-1.3-only</metadata_license>
+diff --git a/data/org.gnome.Terminal.metainfo.xml.in b/data/org.gnome.Terminal.metainfo.xml.in
+index 6a4e7de5..da5e7d2b 100644
+--- a/data/org.gnome.Terminal.metainfo.xml.in
++++ b/data/org.gnome.Terminal.metainfo.xml.in
+@@ -27,11 +27,7 @@
+ of the GNU Free Documentation License along with this program.
+ If not, see <https://www.gnu.org/licenses/>.
+ -->
+-<component
+- xmlns="https://specifications.freedesktop.org/metainfo/1.0"
+- xmlns:xi="http://www.w3.org/2001/XInclude"
+- xmlns:its="http://www.w3.org/2005/11/its"
+- type="desktop-application">
++<component type="desktop-application">
+ <id>org.gnome.Terminal.desktop</id>
+ <metadata_license>GPL-3.0+ or GFDL-1.3-only</metadata_license>
+ <project_license>GPL-3.0+</project_license>
+--
+2.35.1
+
+
+From 79ff1e786c63a7e40dc433499949b2ae7112c47f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20=C4=8Cernock=C3=BD?= <marek@manet.cz>
+Date: Fri, 24 Sep 2021 15:06:52 +0200
+Subject: [PATCH 02/18] Updated Czech translation
+
+---
+ po/cs.po | 120 +++++++++++--------------------------------------------
+ 1 file changed, 23 insertions(+), 97 deletions(-)
+
+diff --git a/po/cs.po b/po/cs.po
+index 1beaf216..5a4d02a4 100644
+--- a/po/cs.po
++++ b/po/cs.po
+@@ -14,10 +14,10 @@
+ #
+ msgid ""
+ msgstr ""
+-"Project-Id-Version: gnome-terminal\n"
++"Project-Id-Version: gnome-terminal gnome-41\n"
+ "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-terminal/issues\n"
+-"POT-Creation-Date: 2021-07-31 12:57+0000\n"
+-"PO-Revision-Date: 2021-02-07 19:52+0100\n"
++"POT-Creation-Date: 2021-09-22 16:39+0000\n"
++"PO-Revision-Date: 2021-09-24 15:05+0200\n"
+ "Last-Translator: Marek Černocký <marek@manet.cz>\n"
+ "Language-Team: čeština <gnome-cs-list@gnome.org>\n"
+ "Language: cs\n"
+@@ -28,32 +28,14 @@ msgstr ""
+ "X-Generator: Gtranslator 2.91.7\n"
+
+ #: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:35
+-msgid "org.gnome.Terminal.Nautilus"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:36
+-msgid "org.gnome.Nautilus.desktop"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:37
+-#: data/org.gnome.Terminal.metainfo.xml.in:36
+-msgid "GPL-3.0+ or GFDL-1.3-only"
+-msgstr "GPL-3.0+ nebo GFDL-1.3 výhradně"
+-
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:38
+-#: data/org.gnome.Terminal.metainfo.xml.in:37
+-msgid "GPL-3.0+"
+-msgstr "GPL-3.0+"
+-
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:39
+ msgid "Terminal plugin for Files"
+ msgstr "Zásuvný modul Terminál pro Soubory"
+
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:40
++#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:36
+ msgid "Open a terminal from Files"
+ msgstr "Otevírá terminál z aplikace Soubory"
+
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:42
++#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:38
+ msgid ""
+ "Open Terminal is a plugin for the Files application that adds a menu item to "
+ "the context menu to open a terminal in the currently browsed directory."
+@@ -61,28 +43,8 @@ msgstr ""
+ "Otevřít terminál je zásuvný modul pro aplikaci Soubory, který přidává do "
+ "kontextové nabídky položku pro otevření terminálu v právě procházené složce."
+
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:44
+-#: data/org.gnome.Terminal.metainfo.xml.in:59
+-msgid "https://wiki.gnome.org/Apps/Terminal"
+-msgstr "https://wiki.gnome.org/Apps/Terminal"
+-
+-#. This is the name of a colour scheme
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:45
+-#: data/org.gnome.Terminal.metainfo.xml.in:60 src/preferences.ui:214
+-msgid "GNOME"
+-msgstr "GNOME"
+-
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:46
+-#: data/org.gnome.Terminal.metainfo.xml.in:61
+-msgid "https://wiki.gnome.org/Apps/Terminal/ReportingBugs"
+-msgstr "https://wiki.gnome.org/Apps/Terminal/ReportingBugs"
+-
+-#: data/org.gnome.Terminal.Nautilus.metainfo.xml.in:47
+-msgid "gnome-terminal"
+-msgstr ""
+-
+ #: data/org.gnome.Terminal.desktop.in:3
+-#: data/org.gnome.Terminal.metainfo.xml.in:38 src/server.cc:150
++#: data/org.gnome.Terminal.metainfo.xml.in:34 src/server.cc:150
+ #: src/terminal-accels.cc:232 src/terminal-menubar.ui.in:144
+ #: src/terminal-tab-label.cc:81 src/terminal-window.cc:1894
+ #: src/terminal-window.cc:2160 src/terminal-window.cc:2443 src/terminal.cc:570
+@@ -90,7 +52,7 @@ msgid "Terminal"
+ msgstr "Terminál"
+
+ #: data/org.gnome.Terminal.desktop.in:4
+-#: data/org.gnome.Terminal.metainfo.xml.in:39
++#: data/org.gnome.Terminal.metainfo.xml.in:35
+ msgid "Use the command line"
+ msgstr "Používejte příkazový řádek"
+
+@@ -100,7 +62,7 @@ msgstr "shell;prompt;výzva;příkaz;příkazový řádek;příkazová řádka;"
+
+ #: data/org.gnome.Terminal.desktop.in:8
+ msgid "org.gnome.Terminal"
+-msgstr ""
++msgstr "org.gnome.Terminal"
+
+ #: data/org.gnome.Terminal.desktop.in:17 src/terminal-accels.cc:127
+ msgid "New Window"
+@@ -110,11 +72,7 @@ msgstr "Nové okno"
+ msgid "Preferences"
+ msgstr "Předvolby"
+
+-#: data/org.gnome.Terminal.metainfo.xml.in:35
+-msgid "org.gnome.Terminal.desktop"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:41
++#: data/org.gnome.Terminal.metainfo.xml.in:37
+ msgid ""
+ "GNOME Terminal is a terminal emulator application for accessing a UNIX shell "
+ "environment which can be used to run programs available on your system."
+@@ -123,51 +81,13 @@ msgstr ""
+ "UNIXového shellu a v něm umožňuje spouštět programy dostupné ve vašem "
+ "systému."
+
+-#: data/org.gnome.Terminal.metainfo.xml.in:42
++#: data/org.gnome.Terminal.metainfo.xml.in:38
+ msgid ""
+ "It supports several profiles, multiple tabs and implements several keyboard "
+ "shortcuts."
+ msgstr ""
+ "Podporuje více profilů, více terminálů v kartách a řadu klávesových zkratek."
+
+-#: data/org.gnome.Terminal.metainfo.xml.in:45
+-msgid "console"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:46
+-msgid "keyboard"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:47
+-msgid "pointing"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:50
+-msgid ""
+-"https://help.gnome.org/users/gnome-terminal/stable/figures/gnome-terminal.png"
+-msgstr ""
+-"https://help.gnome.org/users/gnome-terminal/stable/figures/gnome-terminal.png"
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:53
+-msgid "HiDpiIcon"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:54
+-msgid "HighContrast"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:55
+-msgid "ModernToolkit"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:56
+-msgid "SearchProvider"
+-msgstr ""
+-
+-#: data/org.gnome.Terminal.metainfo.xml.in:57
+-msgid "UserDocs"
+-msgstr ""
+-
+ #. Translators: Keep single quote please!
+ #: src/org.gnome.Terminal.gschema.xml:133
+ msgctxt "visible-name"
+@@ -959,6 +879,11 @@ msgstr "spustit příkaz znovu"
+ msgid "Hold the terminal open"
+ msgstr "nechat terminál otevřený"
+
++#. This is the name of a colour scheme
++#: src/preferences.ui:214
++msgid "GNOME"
++msgstr "GNOME"
++
+ #. This is the name of a colour scheme
+ #: src/preferences.ui:217
+ msgid "Tango"
+@@ -1760,7 +1685,7 @@ msgstr "_4. 132 × 42"
+ msgid "_Inspector"
+ msgstr "_Inspektor"
+
+-#: src/terminal-headermenu.ui:106 src/terminal-screen.cc:1540
++#: src/terminal-headermenu.ui:106 src/terminal-screen.cc:1543
+ #: src/terminal-window.cc:1788
+ msgid "_Preferences"
+ msgstr "_Předvolby"
+@@ -2257,29 +2182,29 @@ msgstr "Klávesové zkratky"
+ msgid "Profiles"
+ msgstr "Profily"
+
+-#: src/terminal-screen.cc:1425
++#: src/terminal-screen.cc:1428
+ msgid "No command supplied nor shell requested"
+ msgstr "Není ani zadán příkaz ani požadován shell"
+
+-#: src/terminal-screen.cc:1541 src/terminal-screen.cc:1888
++#: src/terminal-screen.cc:1544 src/terminal-screen.cc:1891
+ msgid "_Relaunch"
+ msgstr "_Spustit znovu"
+
+-#: src/terminal-screen.cc:1544
++#: src/terminal-screen.cc:1547
+ msgid "There was an error creating the child process for this terminal"
+ msgstr "Při vytváření procesu potomka pro tento terminál došlo k chybě"
+
+-#: src/terminal-screen.cc:1892
++#: src/terminal-screen.cc:1895
+ #, c-format
+ msgid "The child process exited normally with status %d."
+ msgstr "Proces potomka skončil normálně se stavovým kódem %d."
+
+-#: src/terminal-screen.cc:1895
++#: src/terminal-screen.cc:1898
+ #, c-format
+ msgid "The child process was aborted by signal %d."
+ msgstr "Proces potomka byl zrušen na základě signálu %d."
+
+-#: src/terminal-screen.cc:1898
++#: src/terminal-screen.cc:1901
+ msgid "The child process was aborted."
+ msgstr "Proces potomka byl zrušen."
+
+@@ -2452,3 +2377,4 @@ msgstr "_Zavřít okno"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Selhala analýza argumentů: %s\n"
++
+--
+2.35.1
+
+
+From 6ec2b129581d7f381e98a5a6d5a432c40f7ff339 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Mon, 12 May 2014 14:57:18 +0200
+Subject: [PATCH 03/18] 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.
+
+Some changes by Peter Weber <peter.weber@mailbox.org>
+---
+ src/org.gnome.Terminal.gschema.xml | 10 +++++++
+ src/preferences.ui | 47 ++++++++++++++++++++++++++++++
+ src/profile-editor.cc | 19 ++++++++++++
+ src/terminal-schemas.hh | 3 ++
+ src/terminal-screen.cc | 22 +++++++++++++-
+ src/terminal-window.cc | 7 +++++
+ 6 files changed, 107 insertions(+), 1 deletion(-)
+
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index 26b96acf..b6c42ec6 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -349,6 +349,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/preferences.ui b/src/preferences.ui
+index d1aca7b2..64f8295b 100644
+--- a/src/preferences.ui
++++ b/src/preferences.ui
+@@ -95,6 +95,11 @@
+ <property name="step_increment">0.05</property>
+ <property name="page_increment">0.25</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 -->
+@@ -1402,6 +1407,48 @@
+ <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="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>
++ </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/profile-editor.cc b/src/profile-editor.cc
+index a99fb892..3d50524d 100644
+--- a/src/profile-editor.cc
++++ b/src/profile-editor.cc
+@@ -1492,6 +1492,25 @@ profile_prefs_load (const char *uuid, GSettings *profile)
+ GSettingsBindFlags(G_SETTINGS_BIND_GET |
+ G_SETTINGS_BIND_SET));
+ gtk_widget_set_visible (w, (vte_get_feature_flags() & VTE_FEATURE_FLAG_SIXEL) != 0);
++
++ profile_prefs_settings_bind (profile,
++ TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND,
++ gtk_builder_get_object (builder, "use-transparent-background"),
++ "active",
++ GSettingsBindFlags(G_SETTINGS_BIND_GET |
++ G_SETTINGS_BIND_SET));
++ profile_prefs_settings_bind (profile,
++ TERMINAL_PROFILE_USE_TRANSPARENT_BACKGROUND,
++ gtk_builder_get_object (builder, "background-transparent-scale"),
++ "sensitive",
++ GSettingsBindFlags(G_SETTINGS_BIND_GET |
++ G_SETTINGS_BIND_NO_SENSITIVITY));
++ profile_prefs_settings_bind (profile,
++ TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT,
++ gtk_builder_get_object (builder, "background-transparent-adjustment"),
++ "value",
++ GSettingsBindFlags(G_SETTINGS_BIND_GET |
++ G_SETTINGS_BIND_SET));
+ }
+
+ /* Called once per Preferences window, to destroy stuff that doesn't depend on the profile being edited */
+diff --git a/src/terminal-schemas.hh b/src/terminal-schemas.hh
+index b146ba82..d2917fac 100644
+--- a/src/terminal-schemas.hh
++++ b/src/terminal-schemas.hh
+@@ -78,6 +78,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_CONTEXT_INFO_KEY "context-info"
+ #define TERMINAL_SETTING_DEFAULT_SHOW_MENUBAR_KEY "default-show-menubar"
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index f60b0e32..edca6cde 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -1055,7 +1055,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))
+@@ -1140,6 +1142,8 @@ update_color_scheme (TerminalScreen *screen)
+ GdkRGBA *cursor_bgp = nullptr, *cursor_fgp = nullptr;
+ GdkRGBA *highlight_bgp = nullptr, *highlight_fgp = nullptr;
+ GtkStyleContext *context;
++ GtkWidget *toplevel;
++ gboolean transparent;
+ gboolean use_theme_colors;
+
+ context = gtk_widget_get_style_context (widget);
+@@ -1183,6 +1187,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);
+@@ -1190,6 +1206,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 != nullptr && gtk_widget_is_toplevel (toplevel))
++ gtk_widget_set_app_paintable (toplevel, transparent);
+ }
+
+ static void
+diff --git a/src/terminal-window.cc b/src/terminal-window.cc
+index 76f18000..d739f693 100644
+--- a/src/terminal-window.cc
++++ b/src/terminal-window.cc
+@@ -2133,6 +2133,8 @@ terminal_window_init (TerminalWindow *window)
+ };
+ TerminalWindowPrivate *priv;
+ TerminalApp *app;
++ GdkScreen *screen;
++ GdkVisual *visual;
+ GSettings *gtk_debug_settings;
+ GtkWindowGroup *window_group;
+ // GtkAccelGroup *accel_group;
+@@ -2148,6 +2150,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 != nullptr)
++ gtk_widget_set_visual (GTK_WIDGET (window), visual);
++
+ uuid_generate (u);
+ uuid_unparse (u, uuidstr);
+ priv->uuid = g_strdup (uuidstr);
+--
+2.35.1
+
+
+From b68e27ddaf60a38df73130f7752a011b5f888acd 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 04/18] 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.cc | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/src/terminal-window.cc b/src/terminal-window.cc
+index d739f693..04d977ed 100644
+--- a/src/terminal-window.cc
++++ b/src/terminal-window.cc
+@@ -1963,6 +1963,26 @@ terminal_window_realize (GtkWidget *widget)
+ terminal_window_update_size (window);
+ }
+
++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)
+@@ -2303,6 +2323,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.35.1
+
+
+From 989d8498a308cccfbab166d8161c9b6bc75b5d49 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 05/18] screen, window: Extra padding around transparent
+ terminals in Wayland
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1207943
+---
+ src/terminal-screen.cc | 41 +++++++++++++++++++++++++++++++++++++----
+ src/terminal-window.cc | 18 ++++++++++++------
+ 2 files changed, 49 insertions(+), 10 deletions(-)
+
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index edca6cde..9ca83c3e 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -152,6 +152,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 void terminal_screen_child_exited (VteTerminal *terminal,
+ int status);
+
+@@ -595,6 +597,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;
+
+@@ -1127,6 +1130,32 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ g_object_thaw_notify (object);
+ }
+
++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 != nullptr && 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)
+ {
+@@ -1142,7 +1171,6 @@ update_color_scheme (TerminalScreen *screen)
+ GdkRGBA *cursor_bgp = nullptr, *cursor_fgp = nullptr;
+ GdkRGBA *highlight_bgp = nullptr, *highlight_fgp = nullptr;
+ GtkStyleContext *context;
+- GtkWidget *toplevel;
+ gboolean transparent;
+ gboolean use_theme_colors;
+
+@@ -1207,9 +1235,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 != nullptr && gtk_widget_is_toplevel (toplevel))
+- gtk_widget_set_app_paintable (toplevel, transparent);
++ update_toplevel_transparency (screen);
+ }
+
+ static void
+@@ -1729,6 +1755,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.cc b/src/terminal-window.cc
+index 04d977ed..be8533e6 100644
+--- a/src/terminal-window.cc
++++ b/src/terminal-window.cc
+@@ -1969,15 +1969,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.35.1
+
+
+From 590cbd296eb594118ea875fa78e5fb8abe4852d9 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Fri, 18 May 2018 20:15:34 +0200
+Subject: [PATCH 06/18] screen: Try harder to find a foreground process group
+ member
+
+For pipelined commands, it's possible that the process group leader,
+whose PID is used as the group ID, has terminated but not the entire
+group. eg., $ cat <file> | less. Sadly, there's no nice user-space
+API to list the members of a group, and crawling the entire /proc like
+pgrep might be overkill if the system is overloaded.
+
+Therefore, the next 20 PIDs after the group ID and the first 20 PIDs
+starting from 2 are checked in the hope that one of them would belong
+to the foreground process group.
+
+Subsequent commits will use this to track the current foreground
+process, instead of using the shell's history, to notify when a
+long-running foreground process group terminates.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=711059
+---
+ src/terminal-screen.cc | 30 +++++++++++++++++++++++++++++-
+ 1 file changed, 29 insertions(+), 1 deletion(-)
+
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index 9ca83c3e..8a06c6cb 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -2320,7 +2320,35 @@ terminal_screen_has_foreground_process (TerminalScreen *screen,
+ #else
+ g_snprintf (filename, sizeof (filename), "/proc/%d/cmdline", fgpid);
+ if (!g_file_get_contents (filename, &data_buf, &len, nullptr))
+- return TRUE;
++ {
++ int j;
++
++ for (j = 0; j < 20; j++)
++ {
++ pid_t pgid;
++ pid_t pid;
++
++ pid = (pid_t) (fgpid + 1 + j);
++ pgid = getpgid (pid);
++ if (pgid != fgpid)
++ {
++ pid = (pid_t) (2 + j);
++ pgid = getpgid (pid);
++ if (pgid != fgpid)
++ continue;
++ }
++
++ g_snprintf (filename, sizeof (filename), "/proc/%d/cmdline", (int) pid);
++
++ g_clear_pointer (&data_buf, g_free);
++ if (g_file_get_contents (filename, &data_buf, &len, nullptr))
++ break;
++ }
++
++ if (j == 20)
++ return TRUE;
++ }
++
+ data = data_buf;
+ #endif
+
+--
+2.35.1
+
+
+From eea4cb07d3bc107960b7d5ae6233ce42649352d9 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 3 May 2018 16:49:28 +0200
+Subject: [PATCH 07/18] screen: Track the current foreground process
+
+... using the interactive shell's precmd and preexec hooks, by
+monitoring the contents of the terminal, and a combination of
+tcgetpgrp(3) and /proc, instead of relying on the shell's history.
+
+The shell's history cannot be reliably used to find out the current
+foreground process. The history can be optionally turned off, and when
+job control is in play, it will mistakenly record 'fg' as the current
+process.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=711059
+---
+ src/terminal-debug.cc | 1 +
+ src/terminal-debug.hh | 3 +-
+ src/terminal-screen.cc | 150 +++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 153 insertions(+), 1 deletion(-)
+
+diff --git a/src/terminal-debug.cc b/src/terminal-debug.cc
+index 52acc70c..6324cbce 100644
+--- a/src/terminal-debug.cc
++++ b/src/terminal-debug.cc
+@@ -38,6 +38,7 @@ _terminal_debug_init(void)
+ { "profile", TERMINAL_DEBUG_PROFILE },
+ { "settings-list", TERMINAL_DEBUG_SETTINGS_LIST },
+ { "search", TERMINAL_DEBUG_SEARCH },
++ { "shell-command", TERMINAL_DEBUG_SHELL_COMMAND },
+ };
+
+ _terminal_debug_flags = TerminalDebugFlags(g_parse_debug_string (g_getenv ("GNOME_TERMINAL_DEBUG"),
+diff --git a/src/terminal-debug.hh b/src/terminal-debug.hh
+index 0fafcc3a..b0f2fc9d 100644
+--- a/src/terminal-debug.hh
++++ b/src/terminal-debug.hh
+@@ -34,7 +34,8 @@ typedef enum {
+ TERMINAL_DEBUG_PROCESSES = 1 << 6,
+ TERMINAL_DEBUG_PROFILE = 1 << 7,
+ TERMINAL_DEBUG_SETTINGS_LIST = 1 << 8,
+- TERMINAL_DEBUG_SEARCH = 1 << 9
++ TERMINAL_DEBUG_SEARCH = 1 << 9,
++ TERMINAL_DEBUG_SHELL_COMMAND = 1 << 10,
+ } TerminalDebugFlags;
+
+ void _terminal_debug_init(void);
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index 8a06c6cb..ecb5028c 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -108,6 +108,11 @@ struct _TerminalScreenPrivate
+ gboolean exec_on_realize;
+ guint idle_exec_source;
+ ExecData *exec_data;
++
++ gboolean between_preexec_and_precmd;
++ char *current_cmdline;
++ guint contents_changed_source_id;
++ guint shell_preexec_source_id;
+ };
+
+ enum
+@@ -157,6 +162,12 @@ static void terminal_screen_hierarchy_changed (GtkWidget *widget,
+ static void terminal_screen_child_exited (VteTerminal *terminal,
+ int status);
+
++static void terminal_screen_contents_changed (VteTerminal *terminal);
++
++static void terminal_screen_shell_precmd (VteTerminal *terminal);
++
++static void terminal_screen_shell_preexec (VteTerminal *terminal);
++
+ static void terminal_screen_window_title_changed (VteTerminal *vte_terminal,
+ TerminalScreen *screen);
+
+@@ -600,6 +611,9 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ widget_class->hierarchy_changed = terminal_screen_hierarchy_changed;
+
+ terminal_class->child_exited = terminal_screen_child_exited;
++ terminal_class->contents_changed = terminal_screen_contents_changed;
++ terminal_class->shell_precmd = terminal_screen_shell_precmd;
++ terminal_class->shell_preexec = terminal_screen_shell_preexec;
+
+ signals[PROFILE_SET] =
+ g_signal_new (I_("profile-set"),
+@@ -705,6 +719,18 @@ terminal_screen_dispose (GObject *object)
+ 0, 0, nullptr, nullptr,
+ screen);
+
++ if (priv->contents_changed_source_id != 0)
++ {
++ g_source_remove (priv->contents_changed_source_id);
++ priv->contents_changed_source_id = 0;
++ }
++
++ if (priv->shell_preexec_source_id != 0)
++ {
++ g_source_remove (priv->shell_preexec_source_id);
++ priv->shell_preexec_source_id = 0;
++ }
++
+ if (priv->idle_exec_source != 0)
+ {
+ g_source_remove (priv->idle_exec_source);
+@@ -741,6 +767,7 @@ terminal_screen_finalize (GObject *object)
+ g_slist_free_full (priv->match_tags, (GDestroyNotify) free_tag_data);
+
+ g_free (priv->uuid);
++ g_free (priv->current_cmdline);
+
+ G_OBJECT_CLASS (terminal_screen_parent_class)->finalize (object);
+ }
+@@ -1943,6 +1970,125 @@ terminal_screen_child_exited (VteTerminal *terminal,
+ }
+ }
+
++static gboolean
++terminal_screen_contents_changed_cb (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++ gs_free char *cmdline = nullptr;
++
++ g_return_val_if_fail (priv->between_preexec_and_precmd, G_SOURCE_REMOVE);
++ g_return_val_if_fail (priv->shell_preexec_source_id == 0, G_SOURCE_REMOVE);
++
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Contents changed [timeout]\n");
++
++ if (!terminal_screen_has_foreground_process (screen, nullptr, &cmdline))
++ goto out;
++
++ if (g_strcmp0 (priv->current_cmdline, cmdline) == 0)
++ goto out;
++
++ g_free (priv->current_cmdline);
++ priv->current_cmdline = cmdline;
++ cmdline = nullptr;
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
++
++ out:
++ priv->contents_changed_source_id = 0;
++ return G_SOURCE_REMOVE;
++}
++
++static void
++terminal_screen_contents_changed (VteTerminal *terminal)
++{
++ TerminalScreen *screen = TERMINAL_SCREEN (terminal);
++ TerminalScreenPrivate *priv = screen->priv;
++
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Contents changed\n");
++
++ if (!priv->between_preexec_and_precmd)
++ return;
++
++ if (priv->shell_preexec_source_id != 0)
++ return;
++
++ if (priv->contents_changed_source_id != 0)
++ return;
++
++ priv->contents_changed_source_id = g_timeout_add (500,
++ (GSourceFunc) terminal_screen_contents_changed_cb,
++ screen);
++}
++
++static void
++terminal_screen_shell_precmd (VteTerminal *terminal)
++{
++ TerminalScreen *screen = TERMINAL_SCREEN (terminal);
++ TerminalScreenPrivate *priv = screen->priv;
++
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell precmd\n");
++
++ priv->between_preexec_and_precmd = FALSE;
++
++ if (priv->contents_changed_source_id != 0)
++ {
++ g_source_remove (priv->contents_changed_source_id);
++ priv->contents_changed_source_id = 0;
++ }
++
++ if (priv->shell_preexec_source_id != 0)
++ {
++ g_source_remove (priv->shell_preexec_source_id);
++ priv->shell_preexec_source_id = 0;
++ }
++
++ g_clear_pointer (&priv->current_cmdline, g_free);
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: (none)\n");
++}
++
++static gboolean
++terminal_screen_shell_preexec_cb (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++ gboolean retval = G_SOURCE_CONTINUE;
++ gs_free char *cmdline = nullptr;
++
++ g_return_val_if_fail (priv->between_preexec_and_precmd, G_SOURCE_REMOVE);
++ g_return_val_if_fail (priv->current_cmdline == nullptr, G_SOURCE_REMOVE);
++
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell preexec [timeout]\n");
++
++ if (!terminal_screen_has_foreground_process (screen, nullptr, &cmdline))
++ goto out;
++
++ priv->current_cmdline = cmdline;
++ cmdline = nullptr;
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
++
++ priv->shell_preexec_source_id = 0;
++ retval = G_SOURCE_REMOVE;
++
++ out:
++ return retval;
++}
++
++static void
++terminal_screen_shell_preexec (VteTerminal *terminal)
++{
++ TerminalScreen *screen = TERMINAL_SCREEN (terminal);
++ TerminalScreenPrivate *priv = screen->priv;
++
++ g_return_if_fail (!priv->between_preexec_and_precmd);
++ g_return_if_fail (priv->contents_changed_source_id == 0);
++ g_return_if_fail (priv->current_cmdline == nullptr);
++ g_return_if_fail (priv->shell_preexec_source_id == 0);
++
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell preexec\n");
++
++ priv->between_preexec_and_precmd = TRUE;
++
++ priv->shell_preexec_source_id = g_timeout_add (200, (GSourceFunc) terminal_screen_shell_preexec_cb, screen);
++}
++
+ static void
+ terminal_screen_drag_data_received (GtkWidget *widget,
+ GdkDragContext *context,
+@@ -2289,7 +2435,11 @@ terminal_screen_has_foreground_process (TerminalScreen *screen,
+ if (fd == -1)
+ return FALSE;
+
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Child PID: %d\n", priv->child_pid);
++
+ fgpid = tcgetpgrp (fd);
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground process group [tcgetpgrp]: %d\n", fgpid);
++
+ if (fgpid == -1 || fgpid == priv->child_pid)
+ return FALSE;
+
+--
+2.35.1
+
+
+From 9fe08b322ad76ec85bbc078d9b5e8ce953c97034 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 10 May 2018 19:23:16 +0200
+Subject: [PATCH 08/18] Notify when a long-running foreground process group
+ terminates
+
+Notifications are only sent if the VteTerminal in which the process
+was running doesn't have the keyboard focus. If it's a tab in the
+currently active window then the dialog-information-symbolic icon is
+used to highlight the tab's label; otherwise a desktop-wide
+notification is sent.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=711059
+---
+ src/terminal-app.cc | 32 +++++++++++
+ src/terminal-screen.cc | 109 ++++++++++++++++++++++++++++++++++++++
+ src/terminal-tab-label.cc | 30 ++++++++++-
+ src/terminal-tab-label.hh | 4 ++
+ 4 files changed, 174 insertions(+), 1 deletion(-)
+
+diff --git a/src/terminal-app.cc b/src/terminal-app.cc
+index a06485cf..3eae3b29 100644
+--- a/src/terminal-app.cc
++++ b/src/terminal-app.cc
+@@ -742,6 +742,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 = (GtkApplication*)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 == nullptr)
++ 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)
+@@ -765,6 +790,10 @@ terminal_app_startup (GApplication *application)
+ { "quit", app_menu_quit_cb, nullptr, nullptr, nullptr }
+ };
+
++ const GActionEntry other_actions[] = {
++ { "activate-tab", action_activate_tab_cb, "s", nullptr, nullptr }
++ };
++
+ g_application_set_resource_base_path (application, TERMINAL_RESOURCES_PATH_PREFIX);
+
+ G_APPLICATION_CLASS (terminal_app_parent_class)->startup (application);
+@@ -775,6 +804,9 @@ terminal_app_startup (GApplication *application)
+ g_action_map_add_action_entries (G_ACTION_MAP (application),
+ action_entries, G_N_ELEMENTS (action_entries),
+ 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.cc b/src/terminal-screen.cc
+index ecb5028c..fe440a42 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -55,6 +55,7 @@
+ #include "terminal-marshal.h"
+ #include "terminal-schemas.hh"
+ #include "terminal-screen-container.hh"
++#include "terminal-tab-label.hh"
+ #include "terminal-util.hh"
+ #include "terminal-window.hh"
+ #include "terminal-info-bar.hh"
+@@ -157,6 +158,10 @@ 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 gboolean terminal_screen_focus_in (GtkWidget *widget,
++ GdkEventFocus *event);
++
+ static void terminal_screen_hierarchy_changed (GtkWidget *widget,
+ GtkWidget *previous_toplevel);
+ static void terminal_screen_child_exited (VteTerminal *terminal,
+@@ -603,6 +608,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;
+@@ -708,6 +714,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);
+
+ /* Unset child PID so that when an eventual child-exited signal arrives,
+ * we don't emit "close".
+@@ -1874,6 +1884,45 @@ 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;
++
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Notification withdrawn\n");
++
++ window = terminal_screen_get_window (screen);
++ if (window != nullptr)
++ {
++ TerminalScreenContainer *screen_container;
++
++ screen_container = terminal_screen_container_get_from_screen (screen);
++ if (screen_container != nullptr)
++ {
++ 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), nullptr, nullptr);
++ }
++ }
++ }
++
++ 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:
+@@ -2019,6 +2068,63 @@ terminal_screen_contents_changed (VteTerminal *terminal)
+ screen);
+ }
+
++static void
++terminal_screen_show_notification (TerminalScreen *screen)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++ TerminalWindow *window;
++
++ window = terminal_screen_get_window (screen);
++ if (window == nullptr)
++ 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 == nullptr)
++ 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",
++ _("Command completed"));
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Notify tab\n");
++ }
++ }
++ else
++ {
++ gs_unref_object GNotification *notification = nullptr;
++ TerminalApp *app;
++ gs_free char *current_cmdline_valid = nullptr;
++ gs_free char *detailed_action = nullptr;
++
++ notification = g_notification_new (_("Command completed"));
++
++ current_cmdline_valid = g_utf8_make_valid (priv->current_cmdline, -1);
++ g_notification_set_body (notification, current_cmdline_valid);
++
++ 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);
++ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Notify desktop\n");
++ }
++}
++
+ static void
+ terminal_screen_shell_precmd (VteTerminal *terminal)
+ {
+@@ -2041,6 +2147,9 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
+ priv->shell_preexec_source_id = 0;
+ }
+
++ if (priv->current_cmdline != nullptr)
++ terminal_screen_show_notification (screen);
++
+ g_clear_pointer (&priv->current_cmdline, g_free);
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: (none)\n");
+ }
+diff --git a/src/terminal-tab-label.cc b/src/terminal-tab-label.cc
+index 88af5d41..d6423f11 100644
+--- a/src/terminal-tab-label.cc
++++ b/src/terminal-tab-label.cc
+@@ -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 (nullptr);
+ gtk_widget_set_halign (label, GTK_ALIGN_CENTER);
+ gtk_widget_set_valign (label, GTK_ALIGN_BASELINE);
+@@ -380,6 +385,29 @@ terminal_tab_label_set_bold (TerminalTabLabel *tab_label,
+ pango_attr_list_unref (attr_list);
+ }
+
++/**
++ * 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
++ * %nullptr, 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;
++
++ g_return_if_fail (TERMINAL_IS_TAB_LABEL (tab_label));
++
++ gtk_widget_set_visible (priv->icon, icon_name != nullptr);
++ 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.hh b/src/terminal-tab-label.hh
+index 91b7e617..37e808a7 100644
+--- a/src/terminal-tab-label.hh
++++ b/src/terminal-tab-label.hh
+@@ -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.35.1
+
+
+From 994582f739461490e6e5031e9a8180d5b96733fd Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Tue, 10 Apr 2018 15:39:35 +0200
+Subject: [PATCH 09/18] profile: Split the Command tab into two nested GtkGrids
+
+This will let the subsequent patch add a "Command" sub-heading to keep
+the command settings separate from the to-be-restored title settings.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/preferences.ui | 239 +++++++++++++++++++++++----------------------
+ 1 file changed, 123 insertions(+), 116 deletions(-)
+
+diff --git a/src/preferences.ui b/src/preferences.ui
+index 64f8295b..426993a4 100644
+--- a/src/preferences.ui
++++ b/src/preferences.ui
+@@ -1965,130 +1965,137 @@
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+- <property name="column_spacing">12</property>
+- <property name="row_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="draw_indicator">True</property>
+- </object>
+- <packing>
+- <property name="top_attach">0</property>
+- <property name="left_attach">0</property>
+- <property name="width">2</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="draw_indicator">True</property>
+- </object>
+- <packing>
+- <property name="top_attach">1</property>
+- <property name="left_attach">0</property>
+- <property name="width">2</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel" id="custom-command-entry-label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Custom co_mmand:</property>
+- <property name="use_underline">True</property>
+- <property name="mnemonic_widget">custom-command-entry</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="top_attach">2</property>
+- <property name="left_attach">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkEntry" id="custom-command-entry">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="hexpand">True</property>
+- <property name="input_hints">GTK_INPUT_HINT_NO_EMOJI</property>
+- </object>
+- <packing>
+- <property name="top_attach">2</property>
+- <property name="left_attach">1</property>
+- </packing>
+- </child>
++ <property name="row_spacing">18</property>
+ <child>
+- <object class="GtkLabel" id="preserve-working-directory-checkbutton-label">
++ <object class="GtkGrid">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="label" translatable="yes">_Preserve working directory:</property>
+- <property name="use_underline">True</property>
+- <property name="justify">center</property>
+- <property name="mnemonic_widget">preserve-working-directory-combobox</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="top_attach">3</property>
+- <property name="left_attach">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkComboBox" id="preserve-working-directory-combobox">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="model">preserve-working-directory-model</property>
+- <property name="focus_on_click">False</property>
+- <property name="halign">start</property>
++ <property name="column_spacing">12</property>
++ <property name="row_spacing">6</property>
+ <child>
+- <object class="GtkCellRendererText" id="preserve-working-directory-renderer"/>
+- <attributes>
+- <attribute name="text">0</attribute>
+- </attributes>
++ <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="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="top_attach">0</property>
++ <property name="left_attach">0</property>
++ <property name="width">2</property>
++ </packing>
+ </child>
+- </object>
+- <packing>
+- <property name="top_attach">3</property>
+- <property name="left_attach">1</property>
+- </packing>
+- </child>
+- <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="mnemonic_widget">exit-action-combobox</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="top_attach">4</property>
+- <property name="left_attach">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>
+- <property name="halign">start</property>
+ <child>
+- <object class="GtkCellRendererText" id="renderer3"/>
+- <attributes>
+- <attribute name="text">0</attribute>
+- </attributes>
++ <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="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="top_attach">1</property>
++ <property name="left_attach">0</property>
++ <property name="width">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="custom-command-entry-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Custom co_mmand:</property>
++ <property name="use_underline">True</property>
++ <property name="mnemonic_widget">custom-command-entry</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="top_attach">2</property>
++ <property name="left_attach">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="custom-command-entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="hexpand">True</property>
++ <property name="input_hints">GTK_INPUT_HINT_NO_EMOJI</property>
++ </object>
++ <packing>
++ <property name="top_attach">2</property>
++ <property name="left_attach">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="preserve-working-directory-checkbutton-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">_Preserve working directory:</property>
++ <property name="use_underline">True</property>
++ <property name="justify">center</property>
++ <property name="mnemonic_widget">preserve-working-directory-combobox</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="top_attach">3</property>
++ <property name="left_attach">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkComboBox" id="preserve-working-directory-combobox">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="model">preserve-working-directory-model</property>
++ <property name="focus_on_click">False</property>
++ <property name="halign">start</property>
++ <child>
++ <object class="GtkCellRendererText" id="preserve-working-directory-renderer"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">3</property>
++ <property name="left_attach">1</property>
++ </packing>
++ </child>
++ <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="mnemonic_widget">exit-action-combobox</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="top_attach">4</property>
++ <property name="left_attach">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>
++ <property name="halign">start</property>
++ <child>
++ <object class="GtkCellRendererText" id="renderer3"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">4</property>
++ <property name="left_attach">1</property>
++ </packing>
+ </child>
+ </object>
+- <packing>
+- <property name="top_attach">4</property>
+- <property name="left_attach">1</property>
+- </packing>
+ </child>
+ </object>
+ <packing>
+--
+2.35.1
+
+
+From a52c4e1b1ee97ce9ec740f8917e02e842f4e51e6 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Tue, 10 Apr 2018 16:01:51 +0200
+Subject: [PATCH 10/18] Revert "profile: Remove the "Command" sub-heading"
+
+This reverts commit 8e27479299d075df0a52d0e8e7baeab344dcaa6c.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/preferences.ui | 247 ++++++++++++++++++++++++++-------------------
+ 1 file changed, 143 insertions(+), 104 deletions(-)
+
+diff --git a/src/preferences.ui b/src/preferences.ui
+index 426993a4..7f4a94c8 100644
+--- a/src/preferences.ui
++++ b/src/preferences.ui
+@@ -1973,129 +1973,168 @@
+ <property name="column_spacing">12</property>
+ <property name="row_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="draw_indicator">True</property>
+- </object>
+- <packing>
+- <property name="top_attach">0</property>
+- <property name="left_attach">0</property>
+- <property name="width">2</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="draw_indicator">True</property>
+- </object>
+- <packing>
+- <property name="top_attach">1</property>
+- <property name="left_attach">0</property>
+- <property name="width">2</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel" id="custom-command-entry-label">
++ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="label" translatable="yes">Custom co_mmand:</property>
+- <property name="use_underline">True</property>
+- <property name="mnemonic_widget">custom-command-entry</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="top_attach">2</property>
+- <property name="left_attach">0</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkEntry" id="custom-command-entry">
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="hexpand">True</property>
+- <property name="input_hints">GTK_INPUT_HINT_NO_EMOJI</property>
+- </object>
+- <packing>
+- <property name="top_attach">2</property>
+- <property name="left_attach">1</property>
+- </packing>
+- </child>
+- <child>
+- <object class="GtkLabel" id="preserve-working-directory-checkbutton-label">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="label" translatable="yes">_Preserve working directory:</property>
+- <property name="use_underline">True</property>
+- <property name="justify">center</property>
+- <property name="mnemonic_widget">preserve-working-directory-combobox</property>
+ <property name="xalign">0</property>
++ <property name="label" translatable="yes">Command</property>
++ <attributes>
++ <attribute name="weight" value="bold"/>
++ </attributes>
+ </object>
+ <packing>
+- <property name="top_attach">3</property>
++ <property name="top_attach">0</property>
+ <property name="left_attach">0</property>
+ </packing>
+ </child>
+ <child>
+- <object class="GtkComboBox" id="preserve-working-directory-combobox">
++ <object class="GtkAlignment">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- <property name="model">preserve-working-directory-model</property>
+- <property name="focus_on_click">False</property>
+- <property name="halign">start</property>
++ <property name="left_padding">12</property>
+ <child>
+- <object class="GtkCellRendererText" id="preserve-working-directory-renderer"/>
+- <attributes>
+- <attribute name="text">0</attribute>
+- </attributes>
++ <object class="GtkGrid">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="column_spacing">12</property>
++ <property name="row_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="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="top_attach">0</property>
++ <property name="left_attach">0</property>
++ <property name="width">2</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="draw_indicator">True</property>
++ </object>
++ <packing>
++ <property name="top_attach">1</property>
++ <property name="left_attach">0</property>
++ <property name="width">2</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="custom-command-entry-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">Custom co_mmand:</property>
++ <property name="use_underline">True</property>
++ <property name="mnemonic_widget">custom-command-entry</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="top_attach">2</property>
++ <property name="left_attach">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="custom-command-entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="hexpand">True</property>
++ <property name="input_hints">GTK_INPUT_HINT_NO_EMOJI</property>
++ </object>
++ <packing>
++ <property name="top_attach">2</property>
++ <property name="left_attach">1</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkLabel" id="preserve-working-directory-checkbutton-label">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="label" translatable="yes">_Preserve working directory:</property>
++ <property name="use_underline">True</property>
++ <property name="justify">center</property>
++ <property name="mnemonic_widget">preserve-working-directory-combobox</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="top_attach">3</property>
++ <property name="left_attach">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkComboBox" id="preserve-working-directory-combobox">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="model">preserve-working-directory-model</property>
++ <property name="focus_on_click">False</property>
++ <property name="halign">start</property>
++ <child>
++ <object class="GtkCellRendererText" id="preserve-working-directory-renderer"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">3</property>
++ <property name="left_attach">1</property>
++ </packing>
++ </child>
++ <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="mnemonic_widget">exit-action-combobox</property>
++ <property name="xalign">0</property>
++ </object>
++ <packing>
++ <property name="top_attach">4</property>
++ <property name="left_attach">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>
++ <property name="halign">start</property>
++ <child>
++ <object class="GtkCellRendererText" id="renderer3"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">4</property>
++ <property name="left_attach">1</property>
++ </packing>
++ </child>
++ </object>
+ </child>
+ </object>
+ <packing>
+- <property name="top_attach">3</property>
+- <property name="left_attach">1</property>
+- </packing>
+- </child>
+- <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="mnemonic_widget">exit-action-combobox</property>
+- <property name="xalign">0</property>
+- </object>
+- <packing>
+- <property name="top_attach">4</property>
++ <property name="top_attach">1</property>
+ <property name="left_attach">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>
+- <property name="halign">start</property>
+- <child>
+- <object class="GtkCellRendererText" id="renderer3"/>
+- <attributes>
+- <attribute name="text">0</attribute>
+- </attributes>
+- </child>
+- </object>
+- <packing>
+- <property name="top_attach">4</property>
+- <property name="left_attach">1</property>
++ <property name="width">3</property>
+ </packing>
+ </child>
+ </object>
++ <packing>
++ <property name="top_attach">1</property>
++ <property name="left_attach">0</property>
++ </packing>
+ </child>
+ </object>
+ <packing>
+--
+2.35.1
+
+
+From 76d6b9d8531fbc8c25006b12b3a3426e48bf3e66 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 16:02:13 +0200
+Subject: [PATCH 11/18] Revert "screen: Remove unused description and
+ user_title API"
+
+This reverts commit 3bb41272b7509a16ec2a5cd93e44f73d5743b626.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/terminal-screen.cc | 64 ++++++++++++++++++++++++++++++++++++++++++
+ src/terminal-screen.hh | 5 ++++
+ 2 files changed, 69 insertions(+)
+
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index fe440a42..39155e1c 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -112,6 +112,7 @@ struct _TerminalScreenPrivate
+
+ gboolean between_preexec_and_precmd;
+ char *current_cmdline;
++ char *title;
+ guint contents_changed_source_id;
+ guint shell_preexec_source_id;
+ };
+@@ -129,6 +130,7 @@ enum {
+ PROP_0,
+ PROP_PROFILE,
+ PROP_TITLE,
++ PROP_DESCRIPTION
+ };
+
+ enum
+@@ -567,6 +569,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;
+@@ -587,6 +592,7 @@ terminal_screen_set_property (GObject *object,
+ terminal_screen_set_profile (screen, (GSettings*)g_value_get_object (value));
+ break;
+ case PROP_TITLE:
++ case PROP_DESCRIPTION:
+ /* not writable */
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+@@ -682,6 +688,14 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ G_PARAM_STATIC_NICK |
+ G_PARAM_STATIC_BLURB)));
+
++ g_object_class_install_property
++ (object_class,
++ PROP_DESCRIPTION,
++ g_param_spec_string ("description", nullptr, nullptr,
++ nullptr,
++ GParamFlags(G_PARAM_READABLE |
++ G_PARAM_STATIC_STRINGS)));
++
+ g_type_class_add_private (object_class, sizeof (TerminalScreenPrivate));
+
+ n_url_regexes = G_N_ELEMENTS (url_regex_patterns);
+@@ -778,6 +792,7 @@ terminal_screen_finalize (GObject *object)
+
+ g_free (priv->uuid);
+ g_free (priv->current_cmdline);
++ g_free (priv->title);
+
+ G_OBJECT_CLASS (terminal_screen_parent_class)->finalize (object);
+ }
+@@ -1036,6 +1051,21 @@ terminal_screen_get_title (TerminalScreen *screen)
+ return vte_terminal_get_window_title (VTE_TERMINAL (screen));
+ }
+
++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,
+@@ -1364,6 +1394,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*
+@@ -1632,6 +1663,8 @@ spawn_result_cb (VteTerminal *terminal,
+
+ priv->child_pid = pid;
+
++ g_object_notify (G_OBJECT (screen), "description");
++
+ if (error) {
+ // FIXMEchpe should be unnecessary, vte already does this internally
+ vte_terminal_set_pty (terminal, nullptr);
+@@ -1923,6 +1956,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) : nullptr;
++
++ 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), nullptr);
++
++ priv = screen->priv;
++
++ return priv->title ? priv->title : _("Terminal");
++}
++
+ /**
+ * terminal_screen_get_current_dir:
+ * @screen:
+@@ -1976,6 +2038,8 @@ terminal_screen_child_exited (VteTerminal *terminal,
+
+ priv->child_pid = -1;
+
++ g_object_notify (G_OBJECT (screen), "description");
++
+ action = TerminalExitAction(g_settings_get_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION_KEY));
+
+ switch (action)
+diff --git a/src/terminal-screen.hh b/src/terminal-screen.hh
+index ded6b8ca..f4ec9047 100644
+--- a/src/terminal-screen.hh
++++ b/src/terminal-screen.hh
+@@ -113,7 +113,12 @@ void terminal_screen_set_profile (TerminalScreen *screen,
+ GSettings* terminal_screen_get_profile (TerminalScreen *screen);
+ GSettings* terminal_screen_ref_profile (TerminalScreen *screen);
+
++const char *terminal_screen_get_user_title (TerminalScreen *screen);
+ const char* terminal_screen_get_title (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.35.1
+
+
+From c925a1a52ed345942b317b3ce3e61ae43d288b2b Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 17:39:48 +0200
+Subject: [PATCH 12/18] Revert "Remove the static title setting from profile
+ preferences"
+
+This reverts commit e9cb8fea14a849704074c5d69f173bcf4dc2fb27.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/org.gnome.Terminal.gschema.xml | 5 +++
+ src/preferences.ui | 71 ++++++++++++++++++++++++++++++
+ src/profile-editor.cc | 6 +++
+ src/terminal-schemas.hh | 1 +
+ src/terminal-screen.cc | 9 ++++
+ 5 files changed, 92 insertions(+)
+
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index b6c42ec6..3ef53b8b 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -209,6 +209,11 @@
+ <summary>Whether to enable SIXEL images</summary>
+ <description>If true, SIXEL sequences are parsed and images are rendered.</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="bold-is-bright" type="b">
+ <default>false</default>
+ <summary>Whether bold is also bright</summary>
+diff --git a/src/preferences.ui b/src/preferences.ui
+index 7f4a94c8..f86f8c98 100644
+--- a/src/preferences.ui
++++ b/src/preferences.ui
+@@ -1966,6 +1966,77 @@
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="row_spacing">18</property>
++ <child>
++ <object class="GtkGrid">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="row_spacing">6</property>
++ <child>
++ <object class="GtkLabel">
++ <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="top_attach">0</property>
++ <property name="left_attach">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkAlignment">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="left_padding">12</property>
++ <child>
++ <object class="GtkGrid">
++ <property name="visible">True</property>
++ <property name="can_focus">False</property>
++ <property name="column_spacing">12</property>
++ <property name="row_spacing">6</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="mnemonic_widget">title-entry</property>
++ </object>
++ <packing>
++ <property name="top_attach">0</property>
++ <property name="left_attach">0</property>
++ </packing>
++ </child>
++ <child>
++ <object class="GtkEntry" id="title-entry">
++ <property name="visible">True</property>
++ <property name="can_focus">True</property>
++ <property name="hexpand">True</property>
++ </object>
++ <packing>
++ <property name="top_attach">0</property>
++ <property name="left_attach">1</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">1</property>
++ <property name="left_attach">0</property>
++ <property name="width">3</property>
++ </packing>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">0</property>
++ <property name="left_attach">0</property>
++ </packing>
++ </child>
+ <child>
+ <object class="GtkGrid">
+ <property name="visible">True</property>
+diff --git a/src/profile-editor.cc b/src/profile-editor.cc
+index 3d50524d..1a4ab30d 100644
+--- a/src/profile-editor.cc
++++ b/src/profile-editor.cc
+@@ -1417,6 +1417,12 @@ profile_prefs_load (const char *uuid, GSettings *profile)
+ (GSettingsBindSetMapping) enum_to_string,
+ terminal_preserve_working_directory_get_type, nullptr);
+
++ profile_prefs_settings_bind (profile,
++ TERMINAL_PROFILE_TITLE_KEY,
++ gtk_builder_get_object (builder, "title-entry"),
++ "text",
++ GSettingsBindFlags(G_SETTINGS_BIND_GET |
++ G_SETTINGS_BIND_SET));
+ profile_prefs_settings_bind (profile, TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY,
+ gtk_builder_get_object (builder,
+ "use-custom-command-checkbutton"),
+diff --git a/src/terminal-schemas.hh b/src/terminal-schemas.hh
+index d2917fac..16e5c326 100644
+--- a/src/terminal-schemas.hh
++++ b/src/terminal-schemas.hh
+@@ -71,6 +71,7 @@ G_BEGIN_DECLS
+ #define TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE_KEY "scroll-on-keystroke"
+ #define TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY "scroll-on-output"
+ #define TERMINAL_PROFILE_TEXT_BLINK_MODE_KEY "text-blink-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"
+ #define TERMINAL_PROFILE_USE_SYSTEM_FONT_KEY "use-system-font"
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index 39155e1c..f95a545c 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -1055,11 +1055,14 @@ char *
+ terminal_screen_get_description (TerminalScreen *screen)
+ {
+ TerminalScreenPrivate *priv = screen->priv;
++ gs_free char *title_string = nullptr;
+ 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"),
+@@ -1105,6 +1108,12 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ vte_terminal_set_cjk_ambiguous_width (vte_terminal, 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.35.1
+
+
+From d15ca046ffcf00a05966b833c5b321d235e50e25 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Tue, 17 Feb 2015 17:06:17 +0100
+Subject: [PATCH 13/18] Restore translations for setting a title and
+ transparency
+
+---
+ po/am.po | 8 ++++----
+ po/an.po | 12 ++++++------
+ po/ar.po | 16 ++++++++--------
+ po/as.po | 16 ++++++++--------
+ po/ast.po | 8 ++++----
+ po/az.po | 8 ++++----
+ po/be.po | 3 +++
+ po/be@latin.po | 8 ++++----
+ po/bg.po | 9 +++++++++
+ po/bn.po | 8 ++++----
+ po/bn_IN.po | 11 +++++++----
+ po/br.po | 6 +++---
+ po/bs.po | 10 ++++++++++
+ po/ca.po | 12 ++++++++++++
+ po/ca@valencia.po | 12 ++++++++++++
+ po/cs.po | 11 +++++++++++
+ po/cy.po | 8 ++++----
+ po/da.po | 12 ++++++++++++
+ po/de.po | 12 ++++++++++++
+ po/dz.po | 8 ++++----
+ po/el.po | 15 +++++++++------
+ po/en@shaw.po | 8 ++++----
+ po/en_CA.po | 8 ++++----
+ po/en_GB.po | 16 ++++++++--------
+ po/eo.po | 8 ++++----
+ po/es.po | 16 ++++++++--------
+ po/et.po | 3 +++
+ po/eu.po | 12 ++++++++++++
+ po/fa.po | 15 +++++++++------
+ po/fi.po | 12 ++++++++++++
+ po/fr.po | 24 ++++++++++++++++++++++++
+ po/fur.po | 11 +++++++++--
+ po/ga.po | 3 +++
+ po/gl.po | 12 ++++++++++++
+ po/gu.po | 16 ++++++++--------
+ po/he.po | 16 ++++++++--------
+ po/hi.po | 17 ++++++++---------
+ po/hr.po | 10 ++++++++++
+ po/hu.po | 12 ++++++++++++
+ po/hy.po | 8 ++++----
+ po/id.po | 12 ++++++++++++
+ po/it.po | 12 ++++++++++++
+ po/ja.po | 12 ++++++++++++
+ po/kk.po | 12 ++++++++++++
+ po/km.po | 4 ++--
+ po/kn.po | 15 +++++++++------
+ po/ko.po | 12 ++++++++++++
+ po/ku.po | 8 ++++----
+ po/lt.po | 12 ++++++++++++
+ po/lv.po | 16 ++++++++++++++++
+ po/mai.po | 8 ++++----
+ po/mg.po | 8 ++++----
+ po/mk.po | 8 ++++----
+ po/ml.po | 3 +++
+ po/mn.po | 8 ++++----
+ po/mr.po | 16 ++++++++--------
+ po/ms.po | 4 ++--
+ po/nb.po | 12 ++++++++++++
+ po/nds.po | 8 ++++----
+ po/ne.po | 11 +++++++----
+ po/nl.po | 12 ++++++++++++
+ po/nn.po | 8 ++++----
+ po/oc.po | 12 ++++++------
+ po/or.po | 4 ++--
+ po/pa.po | 23 +++++++++++------------
+ po/ps.po | 8 ++++----
+ po/pt.po | 16 ++++++++--------
+ po/pt_BR.po | 12 ++++++++++++
+ po/ro.po | 4 ++--
+ po/ru.po | 16 ++++++++++++++++
+ po/rw.po | 3 +--
+ po/si.po | 8 ++++----
+ po/sk.po | 12 ++++++++++++
+ po/sl.po | 15 +++++++++------
+ po/sq.po | 8 ++++----
+ po/sr.po | 22 ++++++++++++----------
+ po/sr@latin.po | 22 ++++++++++++----------
+ po/sv.po | 12 ++++++++++++
+ po/ta.po | 27 +++++++++++++--------------
+ po/te.po | 27 +++++++++++++--------------
+ po/tg.po | 16 ++++++++--------
+ po/th.po | 20 ++++++++++----------
+ po/tr.po | 12 ++++++++++++
+ po/ug.po | 4 ++--
+ po/uk.po | 15 +++++++++++++++
+ po/vi.po | 15 +++++++++------
+ po/wa.po | 12 ++++++------
+ po/xh.po | 12 ++++++------
+ po/zh_CN.po | 15 +++++++++------
+ po/zh_HK.po | 15 +++++++++------
+ po/zh_TW.po | 15 +++++++++------
+ 92 files changed, 734 insertions(+), 335 deletions(-)
+
+diff --git a/po/am.po b/po/am.po
+index 3445d96d..ee992f07 100644
+--- a/po/am.po
++++ b/po/am.po
+@@ -214,8 +214,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>መደብ</b>"
+
+ #: ../src/gnome-terminal.glade2.h:2
+-msgid "<b>Command</b>"
+-msgstr "<b>ትእዛዝ</b>"
++msgid "Command"
++msgstr "ትእዛዝ"
+
+ #: ../src/gnome-terminal.glade2.h:3
+ msgid "<b>Compatibility</b>"
+@@ -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 fcec2668..9e07cb68 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 ""
+@@ -2266,8 +2266,8 @@ msgstr "_Zarrar a finestra"
+ #~ msgid "Close Window"
+ #~ msgstr "Zarrar a finestra"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Establir titol"
++msgid "Set Title"
++msgstr "Establir titol"
+
+ #~ msgid "Switch to Tab 2"
+ #~ msgstr "Cambiar a la pestanya 2"
+@@ -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 fac62fd1..f77804d8 100644
+--- a/po/ar.po
++++ b/po/ar.po
+@@ -2574,11 +2574,11 @@ msgstr "أغ_لق النافذة"
+ #~ msgid "Default size:"
+ #~ msgstr "الحجم المبدئي:"
+
+-#~ msgid "Title"
+-#~ msgstr "العنوان"
++msgid "Title"
++msgstr "العنوان"
+
+-#~ msgid "_Title:"
+-#~ msgstr "ال_عنوان:"
++msgid "_Title:"
++msgstr "ال_عنوان:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "العنوان والأمر"
+@@ -2586,8 +2586,8 @@ msgstr "أغ_لق النافذة"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_غير محدود"
+
+-#~ msgid "Set Title"
+-#~ msgstr "حدد العنوان"
++msgid "Set Title"
++msgstr "حدد العنوان"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "المحليّة الحالية"
+@@ -3330,8 +3330,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 3fade2b8..5b905340 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 "শীৰ্ষক আৰু কমান্ড"
+@@ -2175,8 +2175,8 @@ msgstr "উইন্ডো বন্ধ কৰক (_l)"
+ #~ msgid "_Unlimited"
+ #~ msgstr "অসীমিত (_U)"
+
+-#~ msgid "Set Title"
+-#~ msgstr "শীৰ্ষক নিৰ্ধাৰণ কৰক"
++msgid "Set Title"
++msgstr "শীৰ্ষক নিৰ্ধাৰণ কৰক"
+
+ #~ msgid "Current Locale"
+ #~ 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 d1c6e7b8..4dc0892e 100644
+--- a/po/ast.po
++++ b/po/ast.po
+@@ -1304,8 +1304,8 @@ msgid "_Base on:"
+ msgstr "_Basáu en:"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Comandu</b>"
++msgid "Command"
++msgstr "Comandu"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground, Background, Bold and Underline</b>"
+@@ -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 586c1e4d..4bd84679 100644
+--- a/po/az.po
++++ b/po/az.po
+@@ -218,8 +218,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Arxa plan</b>"
+
+ #: ../src/gnome-terminal.glade2.h:2
+-msgid "<b>Command</b>"
+-msgstr "<b>Əmr</b>"
++msgid "Command"
++msgstr "Əmr"
+
+ #: ../src/gnome-terminal.glade2.h:3
+ msgid "<b>Compatibility</b>"
+@@ -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 298ec2d6..50f46093 100644
+--- a/po/be.po
++++ b/po/be.po
+@@ -2635,3 +2635,6 @@ msgstr "_Закрыць акно"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Дзейная лакальнасць"
++
++msgid "Transparent background"
++msgstr "Празрысты фон"
+diff --git a/po/be@latin.po b/po/be@latin.po
+index 82ef0664..27e9877f 100644
+--- a/po/be@latin.po
++++ b/po/be@latin.po
+@@ -1146,8 +1146,8 @@ msgid "_Base on:"
+ msgstr "Na _bazie:"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Zahad</b>"
++msgid "Command"
++msgstr "Zahad"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -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 920deb57..ceecc323 100644
+--- a/po/bg.po
++++ b/po/bg.po
+@@ -2459,3 +2459,12 @@ msgstr "_Затваряне на този прозорец"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Аргументите не могат да бъдат анализирани: %s\n"
++
++msgid "Transparent background"
++msgstr "Прозрачен фон"
++
++msgid "_Title:"
++msgstr "_Заглавие:"
++
++msgid "Set Title"
++msgstr "Задаване на заглавие"
+diff --git a/po/bn.po b/po/bn.po
+index 4906009c..f97d43b0 100644
+--- a/po/bn.po
++++ b/po/bn.po
+@@ -1217,8 +1217,8 @@ msgid "_Base on:"
+ msgstr "চিহ্নিত বস্তুর উপর ভিত্তি করে: (_B)"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>কমান্ড</b>"
++msgid "Command"
++msgstr "কমান্ড"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground, Background, and Bold</b>"
+@@ -1524,8 +1524,8 @@ msgid "_Text color:"
+ msgstr "পাঠ্যের রং: (_T)"
+
+ #: ../src/profile-preferences.glade.h:76
+-msgid "_Transparent background"
+-msgstr "স্বচ্ছ পটভূমি (_T)"
++msgid "Transparent background"
++msgstr "স্বচ্ছ পটভূমি "
+
+ #: ../src/profile-preferences.glade.h:77
+ msgid "_Unlimited"
+diff --git a/po/bn_IN.po b/po/bn_IN.po
+index 96f28aae..fdd0ef72 100644
+--- a/po/bn_IN.po
++++ b/po/bn_IN.po
+@@ -2894,8 +2894,8 @@ msgstr "উইন্ডো বন্ধ করুন (_l)"
+ #~ msgid "_Unlimited"
+ #~ msgstr "সীমাহীন (_U)"
+
+-#~ msgid "Set Title"
+-#~ msgstr "শিরোনাম নির্ধারণ করুন"
++msgid "Set Title"
++msgstr "শিরোনাম নির্ধারণ করুন"
+
+ #~ msgid "Switch to Tab 3"
+ #~ msgstr "ট্যাব ৩-এ পরিবর্তন করুন"
+@@ -2936,5 +2936,8 @@ msgstr "উইন্ডো বন্ধ করুন (_l)"
+ #~ msgid "_Input Methods"
+ #~ msgstr "ইনপুট পদ্ধতি (_I)"
+
+-#~ msgid "_Title:"
+-#~ msgstr "শিরোনাম: (_T)"
++msgid "_Title:"
++msgstr "শিরোনাম: (_T)"
++
++msgid "Transparent background"
++msgstr "স্বচ্চ পটভূমি "
+diff --git a/po/br.po b/po/br.po
+index e16ea07d..f4cbe857 100644
+--- a/po/br.po
++++ b/po/br.po
+@@ -958,8 +958,8 @@ msgid "_Base on:"
+ msgstr ""
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Arc'had</b>"
++msgid "Command"
++msgstr "Arc'had"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -1211,7 +1211,7 @@ msgid "_Text color:"
+ msgstr "Liv an destenn :"
+
+ #: ../src/profile-preferences.glade.h:73
+-msgid "_Transparent background"
++msgid "Transparent background"
+ msgstr ""
+
+ #: ../src/profile-preferences.glade.h:74
+diff --git a/po/bs.po b/po/bs.po
+index 49e71085..87035529 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,9 @@ msgstr ""
+ #: ../src/terminal-window.c:3652
+ msgid "C_lose Window"
+ msgstr "_Zatvori prozor"
++
++msgid "_Title:"
++msgstr "_Naslov:"
++
++msgid "Set Title"
++msgstr "Postavi naslov"
+diff --git a/po/ca.po b/po/ca.po
+index 6cee9a84..a18941db 100644
+--- a/po/ca.po
++++ b/po/ca.po
+@@ -2512,3 +2512,15 @@ msgstr "Ha fallat l'anàlisi dels arguments: %s\n"
+
+ #~ msgid "_Detach Tab"
+ #~ msgstr "_Separa la pestanya"
++
++msgid "Transparent background"
++msgstr "Fons transparent"
++
++msgid "Title"
++msgstr "Títol"
++
++msgid "_Title:"
++msgstr "Tít_ol:"
++
++msgid "Set Title"
++msgstr "Estableix el títol"
+diff --git a/po/ca@valencia.po b/po/ca@valencia.po
+index a6e8fb42..c9ed8508 100644
+--- a/po/ca@valencia.po
++++ b/po/ca@valencia.po
+@@ -2357,3 +2357,15 @@ 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:"
++
++msgid "Set Title"
++msgstr "Estableix el títol"
+diff --git a/po/cs.po b/po/cs.po
+index 5a4d02a4..6e46af21 100644
+--- a/po/cs.po
++++ b/po/cs.po
+@@ -2378,3 +2378,14 @@ msgstr "_Zavřít okno"
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Selhala analýza argumentů: %s\n"
+
++msgid "Transparent background"
++msgstr "Průsvitné pozadí"
++
++msgid "Title"
++msgstr "Záhlaví"
++
++msgid "_Title:"
++msgstr "Zá_hlaví:"
++
++msgid "Set Title"
++msgstr "Nastavit záhlaví"
+diff --git a/po/cy.po b/po/cy.po
+index 644df823..cd862feb 100644
+--- a/po/cy.po
++++ b/po/cy.po
+@@ -1167,8 +1167,8 @@ msgid "_Base on:"
+ msgstr "Ei _seilio ar:"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Gorchymyn</b>"
++msgid "Command"
++msgstr "Gorchymyn"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -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 8ca75914..a27a354f 100644
+--- a/po/da.po
++++ b/po/da.po
+@@ -2488,3 +2488,15 @@ msgstr "Kunne ikke fortolke argumenter: %s\n"
+
+ #~ msgid "_Detach Tab"
+ #~ msgstr "_Løsriv faneblad"
++
++msgid "Title"
++msgstr "Titel"
++
++msgid "_Title:"
++msgstr "_Titel:"
++
++msgid "Set Title"
++msgstr "Sæt titel"
++
++msgid "Transparent background"
++msgstr "Gennemsigtig baggrund"
+diff --git a/po/de.po b/po/de.po
+index 7bb9024d..86619d52 100644
+--- a/po/de.po
++++ b/po/de.po
+@@ -2572,3 +2572,15 @@ msgstr "Einlesen der Argumente schlug fehl: %s\n"
+
+ #~ msgid "_Quit"
+ #~ msgstr "_Beenden"
++
++msgid "Title"
++msgstr "Titel"
++
++msgid "_Title:"
++msgstr "_Titel:"
++
++msgid "Set Title"
++msgstr "Titel festlegen"
++
++msgid "Transparent background"
++msgstr "Transparenter Hintergrund"
+diff --git a/po/dz.po b/po/dz.po
+index d97e6102..a768fe4a 100644
+--- a/po/dz.po
++++ b/po/dz.po
+@@ -1255,8 +1255,8 @@ msgid "_Base on:"
+ msgstr "གཞི་བཞག་སྟེ་:(_B)"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>བརྡ་བཀོད་</b>"
++msgid "Command"
++msgstr "བརྡ་བཀོད་"
+
+ #: ../src/profile-preferences.glade.h:2
+ #, fuzzy
+@@ -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 a82659e6..d814147c 100644
+--- a/po/el.po
++++ b/po/el.po
+@@ -2915,17 +2915,17 @@ msgstr "Αποτυχία ανάλυσης των ορισμάτων: %s\n"
+ #~ msgid "Default size:"
+ #~ msgstr "Προεπιλεγμένο μέγεθος:"
+
+-#~ msgid "Title"
+-#~ msgstr "Τίτλος"
++msgid "Title"
++msgstr "Τίτλος"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Τίτλος:"
++msgid "_Title:"
++msgstr "_Τίτλος:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Τίτλος και εντολή"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Ορισμός τίτλου"
++msgid "Set Title"
++msgstr "Ορισμός τίτλου"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Τρέχουσα τοπική ρύθμιση"
+@@ -2963,3 +2963,6 @@ msgstr "Αποτυχία ανάλυσης των ορισμάτων: %s\n"
+
+ #~ msgid "_Input Methods"
+ #~ msgstr "_Μέθοδοι εισαγωγής"
++
++msgid "Transparent background"
++msgstr "Διάφανο παρασκήνιο"
+diff --git a/po/en@shaw.po b/po/en@shaw.po
+index 5bdb3925..6fb8a7e1 100644
+--- a/po/en@shaw.po
++++ b/po/en@shaw.po
+@@ -1212,8 +1212,8 @@ msgid "_Base on:"
+ msgstr "_𐑚𐑱𐑕 𐑪𐑯:"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>𐑒𐑩𐑥𐑭𐑯𐑛</b>"
++msgid "Command"
++msgstr "𐑒𐑩𐑥𐑭𐑯𐑛"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground, Background, Bold and Underline</b>"
+@@ -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 6c9e0cd7..db4aa891 100644
+--- a/po/en_CA.po
++++ b/po/en_CA.po
+@@ -219,8 +219,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Background</b>"
+
+ #: ../src/gnome-terminal.glade2.h:3
+-msgid "<b>Command</b>"
+-msgstr "<b>Command</b>"
++msgid "Command"
++msgstr "Command"
+
+ #: ../src/gnome-terminal.glade2.h:4
+ msgid "<b>Compatibility</b>"
+@@ -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 2d112348..675cdb3d 100644
+--- a/po/en_GB.po
++++ b/po/en_GB.po
+@@ -2858,8 +2858,8 @@ msgstr "Failed to parse arguments: %s\n"
+ #~ 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:"
+@@ -2876,8 +2876,8 @@ msgstr "Failed to parse arguments: %s\n"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_Unlimited"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Set Title"
++msgid "Set Title"
++msgstr "Set Title"
+
+ #~ msgid "Switch to Tab 3"
+ #~ msgstr "Switch to Tab 3"
+@@ -2918,8 +2918,8 @@ msgstr "Failed to parse arguments: %s\n"
+ #~ 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"
+@@ -3614,8 +3614,8 @@ msgstr "Failed to parse arguments: %s\n"
+ #~ 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 0e83b981..0d98ea57 100644
+--- a/po/eo.po
++++ b/po/eo.po
+@@ -2827,8 +2827,8 @@ msgstr "_Fermi la fenestron"
+ #~ msgid "_Font:"
+ #~ msgstr "_Tiparo:"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Agordi titolon"
++msgid "Set Title"
++msgstr "Agordi titolon"
+
+ #~ msgid "Switch to Tab 3"
+ #~ msgstr "Ŝalti al langeto 3"
+@@ -2890,8 +2890,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 3e9b3d37..905a24f5 100644
+--- a/po/es.po
++++ b/po/es.po
+@@ -2921,17 +2921,17 @@ msgstr "Falló al analizar los argumentos: %s\n"
+ #~ 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"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Establecer título"
++msgid "Set Title"
++msgstr "Establecer título"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Configuración regional actual"
+@@ -3757,8 +3757,8 @@ msgstr "Falló al analizar los argumentos: %s\n"
+ #~ 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 4b1c2a7c..77076116 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 528fc21d..2be39ac1 100644
+--- a/po/eu.po
++++ b/po/eu.po
+@@ -2362,3 +2362,15 @@ msgstr "Huts egin du argumentuak analizatzean: %s\n"
+
+ #~ msgid "_Detach Tab"
+ #~ msgstr "_Desuztartu fitxa"
++
++msgid "Title"
++msgstr "Titulua"
++
++msgid "_Title:"
++msgstr "_Titulua:"
++
++msgid "Set Title"
++msgstr "Ezarri titulua"
++
++msgid "Transparent background"
++msgstr "Atzeko plano gardena"
+diff --git a/po/fa.po b/po/fa.po
+index 70ffa07d..8b746710 100644
+--- a/po/fa.po
++++ b/po/fa.po
+@@ -2793,8 +2793,8 @@ msgstr "تجزیهٔ آرگومان‌ها ممکن نبود: %s\n"
+ #~ msgid "Use custom default terminal si_ze"
+ #~ msgstr "استفاده از اندازه‌ی _سفارشی پایانه‌ی پیش‌فرض"
+
+-#~ msgid "Title"
+-#~ msgstr "عنوان"
++msgid "Title"
++msgstr "عنوان"
+
+ #~ msgid "When terminal commands set their o_wn titles:"
+ #~ msgstr "وقتی که فرمان‌های پایانه عنوان‌های _خودشان را تنظیم می‌کنند:"
+@@ -2808,8 +2808,8 @@ msgstr "تجزیهٔ آرگومان‌ها ممکن نبود: %s\n"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_نامحدود"
+
+-#~ msgid "Set Title"
+-#~ msgstr "تنظیم عنوان"
++msgid "Set Title"
++msgstr "تنظیم عنوان"
+
+ #~ msgid "Switch to Tab 3"
+ #~ msgstr "تعویض به زبانه‌ی ۳"
+@@ -2850,5 +2850,8 @@ msgstr "تجزیهٔ آرگومان‌ها ممکن نبود: %s\n"
+ #~ 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 28f05dbd..ba5995c9 100644
+--- a/po/fi.po
++++ b/po/fi.po
+@@ -2782,9 +2782,21 @@ msgstr "Virhe tulkittaessa argumentteja: %s\n"
+ #~ 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:"
++
++msgid "Set Title"
++msgstr "Aseta otsikko"
+diff --git a/po/fr.po b/po/fr.po
+index 3a9ee71e..64d56414 100644
+--- a/po/fr.po
++++ b/po/fr.po
+@@ -2533,3 +2533,27 @@ msgstr "Impossible d’analyser les paramètres : %s\n"
+
+ #~ msgid "Icelandic"
+ #~ msgstr "Islandais"
++
++#~ msgid "Set _Character Encoding"
++#~ msgstr "_Définir le codage des caractères"
++
++#~ msgid "Move Tab _Left"
++#~ msgstr "Déplacer l’onglet vers la _gauche"
++
++#~ msgid "Move Tab _Right"
++#~ msgstr "Déplacer l’onglet vers la _droite"
++
++#~ msgid "_Detach Tab"
++#~ msgstr "_Détacher l’onglet"
++
++msgid "Transparent background"
++msgstr "Arrière-plan transparent"
++
++msgid "Title"
++msgstr "Titre"
++
++msgid "_Title:"
++msgstr "_Titre :"
++
++msgid "Set Title"
++msgstr "Définir le titre"
+diff --git a/po/fur.po b/po/fur.po
+index edbba329..87755fc1 100644
+--- a/po/fur.po
++++ b/po/fur.po
+@@ -557,6 +557,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:350
+ msgid ""
+ "Whether ambiguous-width characters are narrow or wide when using UTF-8 "
+@@ -3576,6 +3580,9 @@ msgstr "Analisi dai argoments falide: %s\n"
+ #~ msgid "The text you clicked on doesn't seem to be a valid OTP challenge."
+ #~ msgstr "Il test fracât nol samee jessi un OTP challenge."
+
++msgid "Set Title"
++msgstr "Imposte titul"
++
+ #~ msgid "Switch to Tab 3"
+ #~ msgstr "Passe a la schede 3"
+
+@@ -3631,8 +3638,8 @@ msgstr "Analisi dai argoments falide: %s\n"
+ #~ 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 93d5fa9d..feb87dce 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 00325496..8c6f3472 100644
+--- a/po/gl.po
++++ b/po/gl.po
+@@ -2480,3 +2480,15 @@ msgstr "P_echar a xanela"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Produciuse un erro ao analizar os argumentos: %s\n"
++
++msgid "Title"
++msgstr "Título"
++
++msgid "_Title:"
++msgstr "_Título:"
++
++msgid "Set Title"
++msgstr "Definir o título"
++
++msgid "Transparent background"
++msgstr "Fondo transparente"
+diff --git a/po/gu.po b/po/gu.po
+index 76b459cf..485beeac 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):"
+@@ -2176,8 +2176,8 @@ msgstr "વિન્ડો બંધ કરો (_l)"
+ #~ msgid "Close Window"
+ #~ msgstr "વિન્ડો બંધ કરો"
+
+-#~ msgid "Set Title"
+-#~ msgstr "શીર્ષકની ગોઠવણી કરો"
++msgid "Set Title"
++msgstr "શીર્ષકની ગોઠવણી કરો"
+
+ #~ msgid "The shortcut key “%s” is already bound to the “%s” action"
+ #~ msgstr "ટુંકાણ કી “%s“ એ પહેલાથી ક્રિયા “%s“ સાથે બંધાયેલી છે"
+@@ -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 aeaf3993..54b763d4 100644
+--- a/po/he.po
++++ b/po/he.po
+@@ -2794,17 +2794,17 @@ msgstr "Failed to parse arguments: %s\n"
+ #~ msgid "Default size:"
+ #~ msgstr "גודל בררת מחדל:"
+
+-#~ msgid "Title"
+-#~ msgstr "כותרת"
++msgid "Title"
++msgstr "כותרת"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_כותרת:"
++msgid "_Title:"
++msgstr "_כותרת:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "כותרת ופקודה"
+
+-#~ msgid "Set Title"
+-#~ msgstr "הגדרת כותרת"
++msgid "Set Title"
++msgstr "הגדרת כותרת"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "השפה הנוכחית"
+@@ -3616,8 +3616,8 @@ msgstr "Failed to parse arguments: %s\n"
+ #~ 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 2d7dc5b1..8d3d0529 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):"
+@@ -2289,8 +2288,8 @@ msgstr "विंडो बंद करें (_l)"
+ #~ msgid "Close Window"
+ #~ msgstr "विंडो बंद करें"
+
+-#~ msgid "Set Title"
+-#~ msgstr "शीर्षक नियत करें"
++msgid "Set Title"
++msgstr "शीर्षक नियत करें"
+
+ #~ msgid "Switch to Tab 2"
+ #~ msgstr "टैब 2 पर जाएँ"
+@@ -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 92792203..9f4862ca 100644
+--- a/po/hr.po
++++ b/po/hr.po
+@@ -2768,3 +2768,13 @@ msgstr "Greška u obradi argumenata: %s\n"
+
+ #~ msgid "Use transparency from system theme"
+ #~ msgstr "Koristi prozirnost iz teme sustava"
++
++#: ../src/profile-preferences.glade.h:69
++msgid "Transparent background"
++msgstr "Prozirna pozadina"
++
++msgid "_Title:"
++msgstr "_Naslov:"
++
++msgid "Set Title"
++msgstr "Postavi naslov"
+diff --git a/po/hu.po b/po/hu.po
+index 66793a82..1595a86b 100644
+--- a/po/hu.po
++++ b/po/hu.po
+@@ -2463,3 +2463,15 @@ msgstr "_Ablak bezárása"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "A paraméterek feldolgozása meghiúsult: %s\n"
++
++msgid "Title"
++msgstr "Cím"
++
++msgid "_Title:"
++msgstr "_Cím:"
++
++msgid "Set Title"
++msgstr "Cím beállítása"
++
++msgid "Transparent background"
++msgstr "Áttetsző háttér"
+diff --git a/po/hy.po b/po/hy.po
+index aaf2d9b2..4d466f16 100644
+--- a/po/hy.po
++++ b/po/hy.po
+@@ -757,8 +757,8 @@ msgid "_Base on:"
+ msgstr ""
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Հրաման</b>"
++msgid "Command"
++msgstr "Հրաման"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -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 868795ca..04459302 100644
+--- a/po/id.po
++++ b/po/id.po
+@@ -2471,3 +2471,15 @@ msgstr "Gagal mengurai argumen: \"%s\"\n"
+
+ #~ msgid "_Detach Tab"
+ #~ msgstr "_Pisahkan Tab"
++
++msgid "Transparent background"
++msgstr "Latar belakang transparan"
++
++msgid "Title"
++msgstr "Judul"
++
++msgid "_Title:"
++msgstr "_Judul:"
++
++msgid "Set Title"
++msgstr "Atur Judul"
+diff --git a/po/it.po b/po/it.po
+index 3daa8263..94b0093c 100644
+--- a/po/it.po
++++ b/po/it.po
+@@ -2485,3 +2485,15 @@ msgstr "Chiudi _finestra"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Analisi degli argomenti non riuscita: %s\n"
++
++msgid "Transparent background"
++msgstr "Sfondo trasparente"
++
++msgid "Title"
++msgstr "Titolo"
++
++msgid "_Title:"
++msgstr "_Titolo:"
++
++msgid "Set Title"
++msgstr "Imposta titolo"
+diff --git a/po/ja.po b/po/ja.po
+index ab72bc42..690281a6 100644
+--- a/po/ja.po
++++ b/po/ja.po
+@@ -2534,3 +2534,15 @@ msgstr "ウィンドウを閉じる(_L)"
+
+ #~ msgid "_Incremental Search…"
+ #~ msgstr "インクリメンタル検索(_I)…"
++
++msgid "Transparent background"
++msgstr "透過な画像にする"
++
++msgid "Title"
++msgstr "タイトル"
++
++msgid "_Title:"
++msgstr "タイトル(_T):"
++
++msgid "Set Title"
++msgstr "タイトルを設定する"
+diff --git a/po/kk.po b/po/kk.po
+index 34ce6b2a..5d415eb3 100644
+--- a/po/kk.po
++++ b/po/kk.po
+@@ -2741,3 +2741,15 @@ msgstr "Аргументтерді өндеу қатемен аяқталды: %
+
+ #~ msgid "Be quiet"
+ #~ msgstr "Тыныш болу"
++
++msgid "Transparent background"
++msgstr "Мөлдір фон"
++
++msgid "Title"
++msgstr "Атауы"
++
++msgid "_Title:"
++msgstr "А_тауы:"
++
++msgid "Set Title"
++msgstr "Атауын орнату"
+diff --git a/po/km.po b/po/km.po
+index 352897d2..b6db9394 100644
+--- a/po/km.po
++++ b/po/km.po
+@@ -2909,8 +2909,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/kn.po b/po/kn.po
+index c887f88a..0fc1c313 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):"
+@@ -2282,8 +2282,8 @@ msgstr "ಕಿಟಕಿಯನ್ನು ಮುಚ್ಚು (_l)"
+ #~ msgid "Close Window"
+ #~ msgstr "ಕಿಟಕಿಯನ್ನು ಮುಚ್ಚು"
+
+-#~ msgid "Set Title"
+-#~ msgstr "ಶೀರ್ಷಿಕೆಯನ್ನು ನೀಡು"
++msgid "Set Title"
++msgstr "ಶೀರ್ಷಿಕೆಯನ್ನು ನೀಡು"
+
+ #~ msgid "Switch to Tab 2"
+ #~ msgstr "2 ನೆ ಟ್ಯಾಬ್‌ಗೆ ಬದಲಾಯಿಸಿ"
+@@ -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 69cb4516..b9b7d7de 100644
+--- a/po/ko.po
++++ b/po/ko.po
+@@ -2508,3 +2508,15 @@ msgstr "인자 파싱에 실패했습니다: %s\n"
+
+ #~ msgid "Verbose output"
+ #~ msgstr "많이 출력"
++
++msgid "Transparent background"
++msgstr "투명한 배경"
++
++msgid "Title"
++msgstr "제목"
++
++msgid "_Title:"
++msgstr "제목(_T):"
++
++msgid "Set Title"
++msgstr "제목 설정"
+diff --git a/po/ku.po b/po/ku.po
+index bc2bb7f0..d2a83a00 100644
+--- a/po/ku.po
++++ b/po/ku.po
+@@ -223,8 +223,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Zemîn</b>"
+
+ #: ../src/gnome-terminal.glade2.h:3
+-msgid "<b>Command</b>"
+-msgstr "<b>Ferman</b>"
++msgid "Command"
++msgstr "Ferman"
+
+ #: ../src/gnome-terminal.glade2.h:4
+ msgid "<b>Compatibility</b>"
+@@ -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 c2729c2f..55165274 100644
+--- a/po/lt.po
++++ b/po/lt.po
+@@ -2770,3 +2770,15 @@ msgstr "Nepavyko apdoroti argumentų: %s\n"
+
+ #~ 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:"
++
++msgid "Set Title"
++msgstr "Nustatyti pavadinimą"
+diff --git a/po/lv.po b/po/lv.po
+index dd601873..1544e268 100644
+--- a/po/lv.po
++++ b/po/lv.po
+@@ -2715,3 +2715,19 @@ msgstr "Neizdevās parsēt parametrus — “%s”\n"
+
+ #~ msgid "_Add or Remove…"
+ #~ msgstr "_Pievienot vai izņemt…"
++
++msgid "Transparent background"
++msgstr "Caurspīdīgs fons"
++
++msgid "Title"
++msgstr "Nosaukums"
++
++msgid "_Title:"
++msgstr "_Nosaukums:"
++
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "“Terminālis”"
++
++msgid "Set Title"
++msgstr "Iestatīt nosaukumu"
+diff --git a/po/mai.po b/po/mai.po
+index 715d0b9e..0f31634e 100644
+--- a/po/mai.po
++++ b/po/mai.po
+@@ -1044,8 +1044,8 @@ msgid "_Base on:"
+ msgstr "आधार पर: (_B)"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>कमांड</b>"
++msgid "Command"
++msgstr "कमांड"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -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 99fa0f5e..a2166025 100644
+--- a/po/mg.po
++++ b/po/mg.po
+@@ -220,8 +220,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Afara</b>"
+
+ #: ../src/gnome-terminal.glade2.h:3
+-msgid "<b>Command</b>"
+-msgstr "<b>Baiko</b>"
++msgid "Command"
++msgstr "Baiko"
+
+ #: ../src/gnome-terminal.glade2.h:4
+ msgid "<b>Compatibility</b>"
+@@ -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 4fe43192..a5a874b4 100644
+--- a/po/mk.po
++++ b/po/mk.po
+@@ -863,8 +863,8 @@ msgid "_Base on:"
+ msgstr "_Базирано на:"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Команда</b>"
++msgid "Command"
++msgstr "Команда"
+
+ #: ../src/profile-preferences.glade.h:2
+ #| msgid "<b>Foreground and Background</b>"
+@@ -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 29614970..e3bce122 100644
+--- a/po/ml.po
++++ b/po/ml.po
+@@ -2577,3 +2577,6 @@ msgstr "ജാലകം അടയ്ക്കുക (_l)"
+
+ #~ msgid "_Unlimited"
+ #~ msgstr "പരിധിയില്ല (_U)"
++
++msgid "Transparent background"
++msgstr "പുറകിലുള്ളവ കാണാവുന്ന പശ്ചാത്തലം"
+diff --git a/po/mn.po b/po/mn.po
+index 2f9d8607..09c4437d 100644
+--- a/po/mn.po
++++ b/po/mn.po
+@@ -217,8 +217,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Дэвсгэр</b>"
+
+ #: ../src/gnome-terminal.glade2.h:2
+-msgid "<b>Command</b>"
+-msgstr "<b>Тушаал</b>"
++msgid "Command"
++msgstr "Тушаал"
+
+ #: ../src/gnome-terminal.glade2.h:3
+ msgid "<b>Compatibility</b>"
+@@ -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 61997daf..9c7dc77a 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):"
+@@ -2240,8 +2240,8 @@ msgstr "चौकट बंद करा (_l)"
+ #~ msgid "Close Window"
+ #~ msgstr "चौकट बंद करा"
+
+-#~ msgid "Set Title"
+-#~ msgstr "शिर्षक निश्चित करा"
++msgid "Set Title"
++msgstr "शिर्षक निश्चित करा"
+
+ #~ msgid "The shortcut key “%s” is already bound to the “%s” action"
+ #~ msgstr "“%s” ही शार्टकट कि “%s” या कृतीशी संलग्न आहे"
+@@ -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 114f0d4e..5d3f2e01 100644
+--- a/po/ms.po
++++ b/po/ms.po
+@@ -2717,8 +2717,8 @@ msgstr "T_utup Tetingkap"
+ #~ msgid "_Profile name:"
+ #~ msgstr "_Nama profil: "
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "LatarBelakang _Telus"
++msgid "Transparent background"
++msgstr "LatarBelakang Telus"
+
+ #~ msgid "_Update login records when command is launched"
+ #~ msgstr "_Kemaskini rekod logmasuk bila arahan dilancarkan"
+diff --git a/po/nb.po b/po/nb.po
+index 99cb5599..5b1a79ad 100644
+--- a/po/nb.po
++++ b/po/nb.po
+@@ -2436,3 +2436,15 @@ msgstr "_Lukk vindu"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Klarte ikke å lese argumenter: %s\n"
++
++msgid "Transparent background"
++msgstr "Gjennomsiktig bakgrunn"
++
++msgid "Title"
++msgstr "Tittel"
++
++msgid "_Title:"
++msgstr "_Tittel:"
++
++msgid "Set Title"
++msgstr "Sett tittel"
+diff --git a/po/nds.po b/po/nds.po
+index 82f930b1..d52fbd94 100644
+--- a/po/nds.po
++++ b/po/nds.po
+@@ -748,8 +748,8 @@ msgid "_Base on:"
+ msgstr "_Steiht op:"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Order</b>"
++msgid "Command"
++msgstr "Order"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -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 901aa954..48b9b219 100644
+--- a/po/ne.po
++++ b/po/ne.po
+@@ -2769,8 +2769,8 @@ msgstr "सञ्झ्याल बन्द गर्नुहोस्"
+ #~ msgid "_None (use solid color)"
+ #~ msgstr "कुनै पनि होइन (एउटै रङ प्रयोग गर्नुहोस्)"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "पारदर्शी पृष्ठभूमि"
++msgid "Transparent background"
++msgstr "पारदर्शी पृष्ठभूमि"
+
+ #~ msgid "_Use the system fixed width font"
+ #~ msgstr "प्रणाली निश्चित गरिएको फन्ट चौडाइ प्रयोग गर्नुहोस्"
+@@ -3251,6 +3251,9 @@ msgstr "सञ्झ्याल बन्द गर्नुहोस्"
+ #~ msgid "The text you clicked on doesn't seem to be a valid OTP challenge."
+ #~ msgstr "तपाईँले क्लिक गरेको पाठ वैध OTP चुनौती नहुने देखिन्छ ।"
+
++msgid "Set Title"
++msgstr "शीर्षक सेट गर्नुहोस्"
++
+ #~ msgid "Switch to Tab 3"
+ #~ msgstr "ट्याब ३ मा स्विच गर्नुहोस्"
+
+@@ -3388,8 +3391,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"
+ #~ msgstr "टर्मिनलमा छोडिएको पाठ/सादा गलत ढाँचा (%d) वा लम्बाइ (%d)को थियो\n"
+diff --git a/po/nl.po b/po/nl.po
+index 6c433a25..fd3be16e 100644
+--- a/po/nl.po
++++ b/po/nl.po
+@@ -2806,3 +2806,15 @@ msgstr "Argumenten ontleden is mislukt: %s\n"
+
+ #~ msgid "_Add or Remove…"
+ #~ msgstr "_Toevoegen of verwijderen…"
++
++msgid "Title"
++msgstr "Titel"
++
++msgid "_Title:"
++msgstr "_Titel:"
++
++msgid "Set Title"
++msgstr "Titel instellen"
++
++msgid "Transparent background"
++msgstr "Transparante achtergrond"
+diff --git a/po/nn.po b/po/nn.po
+index 5aa43b11..f892290c 100644
+--- a/po/nn.po
++++ b/po/nn.po
+@@ -1149,8 +1149,8 @@ msgid "_Base on:"
+ msgstr "_Tuft på:"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>Kommando</b>"
++msgid "Command"
++msgstr "Kommando"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -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 d7cddaec..7eab4a47 100644
+--- a/po/oc.po
++++ b/po/oc.po
+@@ -3031,8 +3031,8 @@ msgstr "Impossible d'analisar los paramètres : %s\n"
+ #~ msgid "Save as..."
+ #~ msgstr "Enregistrar jos..."
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Títol :"
++msgid "_Title:"
++msgstr "_Títol :"
+
+ #~ msgid "_Detach tab"
+ #~ msgstr "Des_tacar l'onglet"
+@@ -3492,8 +3492,8 @@ msgstr "Impossible d'analisar los paramètres : %s\n"
+ #~ msgid "_Use the system fixed width font"
+ #~ msgstr "_Utilizar la poliça de chassa fixa del sistèma"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Definir lo títol"
++msgid "Set Title"
++msgstr "Definir lo títol"
+
+ #~ msgid "The shortcut key “%s” is already bound to the “%s” action"
+ #~ msgstr "L'acorchi de clavièr « %s » es ja atribuit a l'accion « %s »"
+@@ -3810,8 +3810,8 @@ msgstr "Impossible d'analisar los paramètres : %s\n"
+ #~ 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 ec1e6bfb..218acd71 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 1cb4b46d..2bdd01fe 100644
+--- a/po/pa.po
++++ b/po/pa.po
+@@ -2718,10 +2718,9 @@ msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ(_l)"
+ #~ msgid "GNOME Terminal Client"
+ #~ msgstr "ਗਨੋਮ ਟਰਮੀਨਲ ਕਲਾਇਟ"
+
+-#~| msgid "Terminal"
+-#~ msgctxt "title"
+-#~ msgid "'Terminal'"
+-#~ msgstr "'ਟਰਮੀਨਲ'"
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "'ਟਰਮੀਨਲ'"
+
+ #~ msgid "Title for terminal"
+ #~ msgstr "ਟਰਮੀਨਲ ਲਈ ਟਾਈਟਲ"
+@@ -2766,11 +2765,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 "ਟਾਈਟਲ ਅਤੇ ਕਮਾਂਡ"
+@@ -2778,8 +2777,8 @@ msgstr "ਵਿੰਡੋ ਬੰਦ ਕਰੋ(_l)"
+ #~ msgid "_Unlimited"
+ #~ msgstr "ਬੇਅੰਤ(_U)"
+
+-#~ msgid "Set Title"
+-#~ msgstr "ਟਾਈਟਲ ਸੈੱਟ ਕਰੋ"
++msgid "Set Title"
++msgstr "ਟਾਈਟਲ ਸੈੱਟ ਕਰੋ"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "ਮੌਜੂਦ ਲੋਕੇਲ"
+@@ -3559,8 +3558,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/ps.po b/po/ps.po
+index b25a2cb4..3855b2f3 100644
+--- a/po/ps.po
++++ b/po/ps.po
+@@ -810,8 +810,8 @@ msgid "_Base on:"
+ msgstr ":پر بنسټ د_"
+
+ #: ../src/profile-preferences.glade.h:1
+-msgid "<b>Command</b>"
+-msgstr "<b>بولۍ</b>"
++msgid "Command"
++msgstr "بولۍ"
+
+ #: ../src/profile-preferences.glade.h:2
+ msgid "<b>Foreground and Background</b>"
+@@ -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 6b3188d1..2f78ed6d 100644
+--- a/po/pt.po
++++ b/po/pt.po
+@@ -2842,11 +2842,11 @@ msgstr "Falha ao processar argumentos: %s\n"
+ #~ 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"
+@@ -2854,8 +2854,8 @@ msgstr "Falha ao processar argumentos: %s\n"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_Ilimitado"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Definir o Título"
++msgid "Set Title"
++msgstr "Definir o Título"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Configuração Regional Atual"
+@@ -3609,8 +3609,8 @@ msgstr "Falha ao processar argumentos: %s\n"
+ #~ 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 dbdfda9e..f44ff3e7 100644
+--- a/po/pt_BR.po
++++ b/po/pt_BR.po
+@@ -2482,3 +2482,15 @@ msgstr "_Fechar janela"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Falha ao analisar os argumentos: %s\n"
++
++msgid "Title"
++msgstr "Título"
++
++msgid "_Title:"
++msgstr "_Título:"
++
++msgid "Set Title"
++msgstr "Definir título"
++
++msgid "Transparent background"
++msgstr "Fundo transparente"
+diff --git a/po/ro.po b/po/ro.po
+index 627aea90..14d04172 100644
+--- a/po/ro.po
++++ b/po/ro.po
+@@ -3545,8 +3545,8 @@ msgstr "Parsarea argumentelor a eșuat: %s\n"
+ #~ msgid "_Solid color"
+ #~ msgstr "Culoare _solidă"
+
+-#~ msgid "_Transparent background"
+-#~ msgstr "Fundal _transparent"
++msgid "Transparent background"
++msgstr "Fundal transparent"
+
+ #~ msgid "_Unlimited"
+ #~ msgstr "_Neliminat"
+diff --git a/po/ru.po b/po/ru.po
+index efd96c4e..1af341b0 100644
+--- a/po/ru.po
++++ b/po/ru.po
+@@ -2746,3 +2746,19 @@ msgstr "Не удалось разобрать аргументы: %s\n"
+
+ #~ msgid "_Add or Remove…"
+ #~ msgstr "_Добавить или удалить…"
++
++msgid "Transparent background"
++msgstr "Прозрачный фон"
++
++msgid "Title"
++msgstr "Заголовок"
++
++msgid "_Title:"
++msgstr "За_головок:"
++
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "'Терминал'"
++
++msgid "Set Title"
++msgstr "Установить заголовок"
+diff --git a/po/rw.po b/po/rw.po
+index 012f64e3..5ff633f8 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 adca7d5a..6379cee7 100644
+--- a/po/si.po
++++ b/po/si.po
+@@ -218,8 +218,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>පසුබිම</b>"
+
+ #: ../src/gnome-terminal.glade2.h:3
+-msgid "<b>Command</b>"
+-msgstr "<b>විධානය</b>"
++msgid "Command"
++msgstr "විධානය"
+
+ #: ../src/gnome-terminal.glade2.h:4
+ msgid "<b>Compatibility</b>"
+@@ -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 e6745075..20d303c8 100644
+--- a/po/sk.po
++++ b/po/sk.po
+@@ -3086,3 +3086,15 @@ 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:"
++
++msgid "Set Title"
++msgstr "Nastaviť titulok"
+diff --git a/po/sl.po b/po/sl.po
+index 3db69906..901b475a 100644
+--- a/po/sl.po
++++ b/po/sl.po
+@@ -2866,17 +2866,17 @@ msgstr "Napaka med razčlenjevanjem argumentov: %s\n"
+ #~ 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"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Določitev naziva okna"
++msgid "Set Title"
++msgstr "Določitev naziva okna"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Trenutne jezikovne nastavitve"
+@@ -2991,3 +2991,6 @@ msgstr "Napaka med razčlenjevanjem argumentov: %s\n"
+
+ #~ msgid "_Profile Preferences…"
+ #~ msgstr "Možnosti _profila ..."
++
++msgid "Transparent background"
++msgstr "Prosojno ozadje"
+diff --git a/po/sq.po b/po/sq.po
+index 158f6cb1..a3494fb7 100644
+--- a/po/sq.po
++++ b/po/sq.po
+@@ -225,8 +225,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Sfondi</b>"
+
+ #: ../src/gnome-terminal.glade2.h:3
+-msgid "<b>Command</b>"
+-msgstr "<b>Komanda</b>"
++msgid "Command"
++msgstr "Komanda"
+
+ #: ../src/gnome-terminal.glade2.h:4
+ msgid "<b>Compatibility</b>"
+@@ -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 a5998996..ff19c5b9 100644
+--- a/po/sr.po
++++ b/po/sr.po
+@@ -2776,10 +2776,9 @@ msgstr "Нисам успео да обрадим аргументе: %s\n"
+ #~ msgid "GNOME Terminal Client"
+ #~ msgstr "Клијент Гномовог терминала"
+
+-#~| msgid "Terminal"
+-#~ msgctxt "title"
+-#~ msgid "'Terminal'"
+-#~ msgstr "„Терминал“"
++msgctxt "title"
++msgid "'Terminal'"
++msgstr "„Терминал“"
+
+ #~ msgid "Title for terminal"
+ #~ msgstr "Наслов за терминал"
+@@ -2825,11 +2824,11 @@ msgstr "Нисам успео да обрадим аргументе: %s\n"
+ #~ msgid "Default size:"
+ #~ msgstr "Основна величина:"
+
+-#~ msgid "Title"
+-#~ msgstr "Наслов"
++msgid "Title"
++msgstr "Наслов"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Наслов:"
++msgid "_Title:"
++msgstr "_Наслов:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Наслов и наредба"
+@@ -2837,8 +2836,8 @@ msgstr "Нисам успео да обрадим аргументе: %s\n"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_Неограничено"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Постави наслов"
++msgid "Set Title"
++msgstr "Постави наслов"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Текући локалитет"
+@@ -2848,3 +2847,6 @@ msgstr "Нисам успео да обрадим аргументе: %s\n"
+
+ #~ msgid "Hidden"
+ #~ msgstr "Скривен"
++
++msgid "Transparent background"
++msgstr "Провидна позадина"
+diff --git a/po/sr@latin.po b/po/sr@latin.po
+index 45dbad07..852c47cc 100644
+--- a/po/sr@latin.po
++++ b/po/sr@latin.po
+@@ -2576,10 +2576,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"
+@@ -2625,11 +2624,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"
+@@ -2637,8 +2636,8 @@ msgstr "_Zatvori prozor"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_Neograničeno"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Postavi naslov"
++msgid "Set Title"
++msgstr "Postavi naslov"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Tekući lokalitet"
+@@ -2648,3 +2647,6 @@ msgstr "_Zatvori prozor"
+
+ #~ msgid "Hidden"
+ #~ msgstr "Skriven"
++
++msgid "Transparent background"
++msgstr "Providna pozadina"
+diff --git a/po/sv.po b/po/sv.po
+index ab9667fe..d7826a4c 100644
+--- a/po/sv.po
++++ b/po/sv.po
+@@ -2775,5 +2775,17 @@ msgstr "Misslyckades med att tolka argument: %s\n"
+ #~ 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:"
++
++msgid "Set Title"
++msgstr "Ställ in titel"
++
++msgid "_Set Title…"
++msgstr "A_nge titel..."
+diff --git a/po/ta.po b/po/ta.po
+index 80aa2f68..afd335b0 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 "தலைப்பும் கட்டளையும்"
+@@ -2233,8 +2232,8 @@ msgstr "_l சாளரத்தை மூடவும்"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_U வரையரை இல்லாத"
+
+-#~ msgid "Set Title"
+-#~ msgstr "தலைப்பை அமைக்க"
++msgid "Set Title"
++msgstr "தலைப்பை அமைக்க"
+
+ #~| msgid "_Terminal"
+ #~ msgid "_About Terminal"
+@@ -2243,8 +2242,8 @@ msgstr "_l சாளரத்தை மூடவும்"
+ #~ msgid "Current Locale"
+ #~ msgstr "தற்போதைய மொழி"
+
+-#~ msgid "_Set Title…"
+-#~ msgstr "(_S) தலைப்பை அமைக்க..."
++msgid "_Set Title…"
++msgstr "(_S) தலைப்பை அமைக்க..."
+
+ #~ msgid "_Next Tab"
+ #~ msgstr "அடுத்த கீற்று (_N)"
+@@ -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 82c0e0fc..0dd3d871 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 "శీర్షిక మరియు ఆదేశం"
+@@ -2116,14 +2115,14 @@ msgstr "కిటికీని మూసివేయి (_l)"
+ #~ msgid "_Unlimited"
+ #~ msgstr "అపరిమితమైన (_U)"
+
+-#~ msgid "Set Title"
+-#~ msgstr "శీర్షికను అమర్చు"
++msgid "Set Title"
++msgstr "శీర్షికను అమర్చు"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "ప్రస్తుత స్థానికం"
+
+-#~ msgid "_Set Title…"
+-#~ msgstr "శీర్షికను అమర్చు... (_S)"
++msgid "_Set Title…"
++msgstr "శీర్షికను అమర్చు... (_S)"
+
+ #~ msgid "_Next Tab"
+ #~ msgstr "తరువాతి ట్యాబ్(_N)"
+@@ -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 e3feef65..6371c036 100644
+--- a/po/tg.po
++++ b/po/tg.po
+@@ -2158,23 +2158,23 @@ msgstr "П_ӯшонидани равзана"
+ #~ msgid "Default size:"
+ #~ msgstr "Андозаи пешфарз:"
+
+-#~ msgid "Title"
+-#~ msgstr "Сарлавҳа"
++msgid "Title"
++msgstr "Сарлавҳа"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_Вазифа:"
++msgid "_Title:"
++msgstr "_Вазифа:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "Унвон ва Фармон"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Таъин кардани сарлавҳа"
++msgid "Set Title"
++msgstr "Таъин кардани сарлавҳа"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "Маҳаллигардонии ҷорӣ"
+
+-#~ msgid "_Set Title…"
+-#~ msgstr "_Танзими сарлавҳа..."
++msgid "_Set Title…"
++msgstr "_Танзими сарлавҳа..."
+
+ #~ msgid "_Next Tab"
+ #~ msgstr "_Варақаи навбатӣ"
+diff --git a/po/th.po b/po/th.po
+index 63263749..496da331 100644
+--- a/po/th.po
++++ b/po/th.po
+@@ -2308,23 +2308,23 @@ msgstr "ปิ_ดหน้าต่าง"
+ #~ msgid "Default size:"
+ #~ msgstr "ขนาดปริยาย:"
+
+-#~ msgid "Title"
+-#~ msgstr "หัวเรื่อง"
++msgid "Title"
++msgstr "หัวเรื่อง"
+
+-#~ msgid "_Title:"
+-#~ msgstr "_หัวเรื่อง:"
++msgid "_Title:"
++msgstr "_หัวเรื่อง:"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "หัวเรื่องและคำสั่ง"
+
+-#~ msgid "Set Title"
+-#~ msgstr "ตั้งหัวเรื่อง"
++msgid "Set Title"
++msgstr "ตั้งหัวเรื่อง"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "ตามโลแคลปัจจุบัน"
+
+-#~ msgid "_Set Title…"
+-#~ msgstr "ตั้งป้าย_ชื่อ…"
++msgid "_Set Title…"
++msgstr "ตั้งป้าย_ชื่อ…"
+
+ #~ msgid "_Next Tab"
+ #~ 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 e5bb0082..851e7f97 100644
+--- a/po/tr.po
++++ b/po/tr.po
+@@ -2759,3 +2759,15 @@ msgstr "Bağımsız değişkenler ayrıştırılamadı: %s\n"
+
+ #~ msgid "_Same as text color"
+ #~ msgstr "_Metin rengiyle aynı"
++
++msgid "Transparent background"
++msgstr "Şeffaf arkaplan"
++
++msgid "_Title:"
++msgstr "_Başlık:"
++
++msgid "Set Title"
++msgstr "Başlığı Düzenle"
++
++msgid "_Set Title…"
++msgstr "_Başlığı Ata..."
+diff --git a/po/ug.po b/po/ug.po
+index 313f76b9..be608976 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 6a7c02e5..6fa50f40 100644
+--- a/po/uk.po
++++ b/po/uk.po
+@@ -2453,3 +2453,18 @@ msgstr "Закр_ити вікно"
+ #, c-format
+ msgid "Failed to parse arguments: %s\n"
+ msgstr "Не вдається визначити аргументи: %s\n"
++
++msgid "Title"
++msgstr "Заголовок"
++
++msgid "_Title:"
++msgstr "За_головок:"
++
++msgid "Set Title"
++msgstr "Встановлення заголовка"
++
++msgid "_Set Title…"
++msgstr "_Встановити заголовок…"
++
++msgid "Transparent background"
++msgstr "Прозоре тло"
+diff --git a/po/vi.po b/po/vi.po
+index 5304429b..af014ff2 100644
+--- a/po/vi.po
++++ b/po/vi.po
+@@ -2852,8 +2852,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:"
+@@ -2864,8 +2864,8 @@ msgstr "Đón_g cửa sổ"
+ #~ msgid "_Unlimited"
+ #~ msgstr "_Không hạn chế"
+
+-#~ msgid "Set Title"
+-#~ msgstr "Đặt tựa đề"
++msgid "Set Title"
++msgstr "Đặt tựa đề"
+
+ #~ msgid "Switch to Tab 3"
+ #~ msgstr "Chuyển sang Thanh 3"
+@@ -2906,8 +2906,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"
+@@ -3292,3 +3292,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 2a29945b..4f1c57c7 100644
+--- a/po/wa.po
++++ b/po/wa.po
+@@ -224,8 +224,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Fond</b>"
+
+ #: ../src/gnome-terminal.glade2.h:3
+-msgid "<b>Command</b>"
+-msgstr "<b>Comande</b>"
++msgid "Command"
++msgstr "Comande"
+
+ #: ../src/gnome-terminal.glade2.h:4
+ msgid "<b>Compatibility</b>"
+@@ -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"
+@@ -2227,8 +2227,8 @@ msgid "Change _Profile"
+ msgstr "Candjî _profil"
+
+ #: ../src/terminal-window.c:1013
+-msgid "_Set Title..."
+-msgstr "_Candjî l' tite..."
++msgid "_Set Title…"
++msgstr "_Candjî l' tite…"
+
+ #: ../src/terminal-window.c:1020
+ msgid "Set _Character Encoding"
+diff --git a/po/xh.po b/po/xh.po
+index cb78ec67..a4f3b4dd 100644
+--- a/po/xh.po
++++ b/po/xh.po
+@@ -217,8 +217,8 @@ msgid "<b>Background</b>"
+ msgstr "<b>Okungasemva</b>"
+
+ #: ../src/gnome-terminal.glade2.h:2
+-msgid "<b>Command</b>"
+-msgstr "<b>Umyalelo</b>"
++msgid "Command"
++msgstr "Umyalelo"
+
+ #: ../src/gnome-terminal.glade2.h:3
+ msgid "<b>Compatibility</b>"
+@@ -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"
+@@ -2265,8 +2265,8 @@ msgid "Change _Profile"
+ msgstr "Tsintsha i_Nkangeleko"
+
+ #: ../src/terminal-window.c:979
+-msgid "_Set Title..."
+-msgstr "_Misela..."
++msgid "_Set Title…"
++msgstr "_Misela…"
+
+ #: ../src/terminal-window.c:986
+ msgid "Set _Character Encoding"
+diff --git a/po/zh_CN.po b/po/zh_CN.po
+index 4fa6ce25..05203670 100644
+--- a/po/zh_CN.po
++++ b/po/zh_CN.po
+@@ -2783,17 +2783,17 @@ msgstr "无法处理参数:%s\n"
+ #~ msgid "Default size:"
+ #~ msgstr "默认大小:"
+
+-#~ msgid "Title"
+-#~ msgstr "标题"
++msgid "Title"
++msgstr "标题"
+
+-#~ msgid "_Title:"
+-#~ msgstr "标题(_T):"
++msgid "_Title:"
++msgstr "标题(_T):"
+
+ #~ msgid "Title and Command"
+ #~ msgstr "标题和命令"
+
+-#~ msgid "Set Title"
+-#~ msgstr "设置标题"
++msgid "Set Title"
++msgstr "设置标题"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "当前区域"
+@@ -2906,3 +2906,6 @@ msgstr "无法处理参数:%s\n"
+
+ #~ msgid "_Find..."
+ #~ msgstr "查找(_F)..."
++
++msgid "Transparent background"
++msgstr "透明背景"
+diff --git a/po/zh_HK.po b/po/zh_HK.po
+index 61153529..c366abdd 100644
+--- a/po/zh_HK.po
++++ b/po/zh_HK.po
+@@ -2114,17 +2114,17 @@ 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 "標題及指令"
+
+-#~ msgid "Set Title"
+-#~ msgstr "設定標題"
++msgid "Set Title"
++msgstr "設定標題"
+
+ #~ msgid "Current Locale"
+ #~ 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 80cb2343..20e2a93c 100644
+--- a/po/zh_TW.po
++++ b/po/zh_TW.po
+@@ -2735,17 +2735,17 @@ 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 "標題及指令"
+
+-#~ msgid "Set Title"
+-#~ msgstr "設定標題"
++msgid "Set Title"
++msgstr "設定標題"
+
+ #~ msgid "Current Locale"
+ #~ msgstr "目前的地區設定"
+@@ -2957,3 +2957,6 @@ msgstr "關閉視窗(_L)"
+
+ #~ msgid "Show session management options"
+ #~ msgstr "顯示作業階段管理選項"
++
++msgid "Transparent background"
++msgstr "透明背景"
+--
+2.35.1
+
+
+From 6cce8c2a6344c4eda524727f72b958a2a8e2e0fb Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Wed, 25 May 2016 13:47:36 +0200
+Subject: [PATCH 14/18] Restore the action and shortcut to set a static title
+ from the menus
+
+This reverts 9bbe19e98f62aa3c9020913a3a5a8080a5177505 with various
+minor adjustments to keep up with later changes.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/org.gnome.Terminal.gschema.xml | 4 ++
+ src/terminal-accels.cc | 2 +
+ src/terminal-window.cc | 76 ++++++++++++++++++++++++++++++
+ 3 files changed, 82 insertions(+)
+
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index 3ef53b8b..3d28d5fd 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -429,6 +429,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.cc b/src/terminal-accels.cc
+index 66298100..b2b4e442 100644
+--- a/src/terminal-accels.cc
++++ b/src/terminal-accels.cc
+@@ -76,6 +76,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"
+@@ -165,6 +166,7 @@ static KeyEntry terminal_entries[] = {
+ ENTRY (N_("Read-Only"), KEY_READ_ONLY, "read-only", nullptr, nullptr ),
+ 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", nullptr, nullptr ),
+ };
+
+ static KeyEntry tabs_entries[] = {
+diff --git a/src/terminal-window.cc b/src/terminal-window.cc
+index be8533e6..b46cd89b 100644
+--- a/src/terminal-window.cc
++++ b/src/terminal-window.cc
+@@ -763,6 +763,81 @@ action_select_all_cb (GSimpleAction *action,
+ vte_terminal_select_all (VTE_TERMINAL (priv->active_screen));
+ }
+
++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 = (TerminalWindow*)user_data;
++ TerminalWindowPrivate *priv = window->priv;
++ GtkWidget *dialog, *message_area, *hbox, *label, *entry;
++
++ if (priv->active_screen == nullptr)
++ return;
++
++ /* FIXME: hook the screen up so this dialogue closes if the terminal screen closes */
++
++ dialog = gtk_message_dialog_new (GTK_WINDOW (window),
++ GtkDialogFlags(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), nullptr);
++
++ message_area = gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (dialog));
++ gtk_container_foreach (GTK_CONTAINER (message_area), (GtkCallback) gtk_widget_hide, nullptr);
++
++ 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
+ action_reset_cb (GSimpleAction *action,
+ GVariant *parameter,
+@@ -2125,6 +2200,7 @@ terminal_window_init (TerminalWindow *window)
+ { "paste-uris", action_paste_uris_cb, nullptr, nullptr, nullptr },
+ { "reset", action_reset_cb, "b", nullptr, nullptr },
+ { "select-all", action_select_all_cb, nullptr, nullptr, nullptr },
++ { "set-title", action_set_title_cb, nullptr, nullptr, nullptr },
+ { "size-to", action_size_to_cb, "(uu)", nullptr, nullptr },
+ { "tab-detach", action_tab_detach_cb, nullptr, nullptr, nullptr },
+ { "tab-move-left", action_tab_move_left_cb, nullptr, nullptr, nullptr },
+--
+2.35.1
+
+
+From 0f60451b48cd76511e32703383be5854100dc014 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 18:14:36 +0200
+Subject: [PATCH 15/18] screen: Style fix
+
+This brings the code in line with how it was before
+de0dc7c2649c42e2aa02a66e4be27d262b34452d
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1296110
+---
+ src/terminal-screen.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index f95a545c..815aff77 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -815,7 +815,7 @@ terminal_screen_new (GSettings *profile,
+ /* If given an initial title, strip it of control characters and
+ * feed it to the terminal.
+ */
+- if (title != nullptr) {
++ if (title) {
+ GString *seq;
+ const char *p;
+
+--
+2.35.1
+
+
+From 9a717c25e907dbd24f9044cb77e6c5cb92142f92 Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 30 Jun 2016 16:58:15 +0200
+Subject: [PATCH 16/18] Restore the rest of the title handling options and make
+ 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/org.gnome.Terminal.gschema.xml | 12 ++
+ src/preferences.ui | 33 +++-
+ src/profile-editor.cc | 10 ++
+ src/terminal-enums.hh | 8 +
+ src/terminal-schemas.hh | 1 +
+ src/terminal-screen.cc | 258 +++++++++++++++++++++--------
+ src/terminal-screen.hh | 8 +-
+ src/terminal-window.cc | 9 +-
+ 8 files changed, 264 insertions(+), 75 deletions(-)
+
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index 3d28d5fd..d67da299 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'/>
+@@ -209,6 +216,11 @@
+ <summary>Whether to enable SIXEL images</summary>
+ <description>If true, SIXEL sequences are parsed and images are rendered.</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/preferences.ui b/src/preferences.ui
+index f86f8c98..c45366ae 100644
+--- a/src/preferences.ui
++++ b/src/preferences.ui
+@@ -2002,7 +2002,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="mnemonic_widget">title-entry</property>
+ </object>
+@@ -2022,6 +2022,37 @@
+ <property name="left_attach">1</property>
+ </packing>
+ </child>
++ <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="mnemonic_widget">title-mode-combobox</property>
++ </object>
++ <packing>
++ <property name="top_attach">1</property>
++ <property name="left_attach">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"/>
++ <attributes>
++ <attribute name="text">0</attribute>
++ </attributes>
++ </child>
++ </object>
++ <packing>
++ <property name="top_attach">1</property>
++ <property name="left_attach">1</property>
++ </packing>
++ </child>
+ </object>
+ </child>
+ </object>
+diff --git a/src/profile-editor.cc b/src/profile-editor.cc
+index 1a4ab30d..9488480e 100644
+--- a/src/profile-editor.cc
++++ b/src/profile-editor.cc
+@@ -1423,6 +1423,16 @@ profile_prefs_load (const char *uuid, GSettings *profile)
+ "text",
+ GSettingsBindFlags(G_SETTINGS_BIND_GET |
+ G_SETTINGS_BIND_SET));
++ profile_prefs_settings_bind_with_mapping (profile,
++ TERMINAL_PROFILE_TITLE_MODE_KEY,
++ gtk_builder_get_object (builder,
++ "title-mode-combobox"),
++ "active",
++ GSettingsBindFlags(G_SETTINGS_BIND_GET |
++ G_SETTINGS_BIND_SET),
++ (GSettingsBindGetMapping) string_to_enum,
++ (GSettingsBindSetMapping) enum_to_string,
++ terminal_title_mode_get_type, nullptr);
+ profile_prefs_settings_bind (profile, TERMINAL_PROFILE_USE_CUSTOM_COMMAND_KEY,
+ gtk_builder_get_object (builder,
+ "use-custom-command-checkbutton"),
+diff --git a/src/terminal-enums.hh b/src/terminal-enums.hh
+index 93f1460c..5e816f71 100644
+--- a/src/terminal-enums.hh
++++ b/src/terminal-enums.hh
+@@ -34,6 +34,14 @@ typedef enum {
+ TERMINAL_NEW_TAB_POSITION_NEXT
+ } TerminalNewTabPosition;
+
++typedef enum
++{
++ TERMINAL_TITLE_REPLACE,
++ TERMINAL_TITLE_BEFORE,
++ TERMINAL_TITLE_AFTER,
++ TERMINAL_TITLE_IGNORE
++} TerminalTitleMode;
++
+ typedef enum
+ {
+ TERMINAL_EXIT_CLOSE,
+diff --git a/src/terminal-schemas.hh b/src/terminal-schemas.hh
+index 16e5c326..bb3048fa 100644
+--- a/src/terminal-schemas.hh
++++ b/src/terminal-schemas.hh
+@@ -71,6 +71,7 @@ G_BEGIN_DECLS
+ #define TERMINAL_PROFILE_SCROLL_ON_KEYSTROKE_KEY "scroll-on-keystroke"
+ #define TERMINAL_PROFILE_SCROLL_ON_OUTPUT_KEY "scroll-on-output"
+ #define TERMINAL_PROFILE_TEXT_BLINK_MODE_KEY "text-blink-mode"
++#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.cc b/src/terminal-screen.cc
+index 815aff77..f0111829 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -111,8 +111,11 @@ struct _TerminalScreenPrivate
+ ExecData *exec_data;
+
+ gboolean between_preexec_and_precmd;
++ gboolean user_title; /* title was manually set */
+ char *current_cmdline;
+- char *title;
++ char *raw_title;
++ char *cooked_title;
++ char *override_title;
+ guint contents_changed_source_id;
+ guint shell_preexec_source_id;
+ };
+@@ -129,8 +132,7 @@ enum
+ enum {
+ PROP_0,
+ PROP_PROFILE,
+- PROP_TITLE,
+- PROP_DESCRIPTION
++ PROP_TITLE
+ };
+
+ enum
+@@ -180,8 +182,13 @@ static void terminal_screen_window_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 char* terminal_screen_check_hyperlink (TerminalScreen *screen,
+ GdkEvent *event);
++
+ static void terminal_screen_check_extra (TerminalScreen *screen,
+ GdkEvent *event,
+ char **number_info,
+@@ -543,6 +550,9 @@ terminal_screen_init (TerminalScreen *screen)
+ gtk_target_table_free (targets, n_targets);
+ gtk_target_list_unref (target_list);
+
++ priv->override_title = nullptr;
++ priv->user_title = FALSE;
++
+ g_signal_connect (screen, "window-title-changed",
+ G_CALLBACK (terminal_screen_window_title_changed),
+ screen);
+@@ -569,9 +579,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;
+@@ -592,7 +599,6 @@ terminal_screen_set_property (GObject *object,
+ terminal_screen_set_profile (screen, (GSettings*)g_value_get_object (value));
+ break;
+ case PROP_TITLE:
+- case PROP_DESCRIPTION:
+ /* not writable */
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+@@ -688,14 +694,6 @@ terminal_screen_class_init (TerminalScreenClass *klass)
+ G_PARAM_STATIC_NICK |
+ G_PARAM_STATIC_BLURB)));
+
+- g_object_class_install_property
+- (object_class,
+- PROP_DESCRIPTION,
+- g_param_spec_string ("description", nullptr, nullptr,
+- nullptr,
+- GParamFlags(G_PARAM_READABLE |
+- G_PARAM_STATIC_STRINGS)));
+-
+ g_type_class_add_private (object_class, sizeof (TerminalScreenPrivate));
+
+ n_url_regexes = G_N_ELEMENTS (url_regex_patterns);
+@@ -792,7 +790,9 @@ terminal_screen_finalize (GObject *object)
+
+ g_free (priv->uuid);
+ g_free (priv->current_cmdline);
+- g_free (priv->title);
++ g_free (priv->raw_title);
++ g_free (priv->cooked_title);
++ g_free (priv->override_title);
+
+ G_OBJECT_CLASS (terminal_screen_parent_class)->finalize (object);
+ }
+@@ -812,28 +812,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);
+
+ vte_terminal_set_font_scale (VTE_TERMINAL (screen), zoom);
+ terminal_screen_set_font (screen);
+@@ -1045,28 +1025,139 @@ terminal_screen_exec (TerminalScreen *screen,
+ return TRUE;
+ }
+
++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 == nullptr)
++ terminal_screen_cook_title (screen);
++
++ /* cooked_title may still be nullptr */
++ if (priv->cooked_title != nullptr)
++ return priv->cooked_title;
++ else
++ return "";
+ }
+
+-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 = nullptr;
+- 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-nullptr.
++ *
++ * 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 = nullptr;
++ const char *format, *arg;
++ const char *static_title = nullptr;
++ 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 = nullptr;
++
++ g_assert (arg[0] == '%');
+
+- return g_strdup_printf ("%s — %d",
+- title && title[0] ? title : _("Terminal"),
+- screen->priv->child_pid);
++ 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 = nullptr;
++ 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 == nullptr || 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
+@@ -1109,9 +1200,10 @@ 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);
+ }
+
+ if (gtk_widget_get_realized (GTK_WIDGET (screen)) &&
+@@ -1403,7 +1495,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*
+@@ -1672,8 +1763,6 @@ spawn_result_cb (VteTerminal *terminal,
+
+ priv->child_pid = pid;
+
+- g_object_notify (G_OBJECT (screen), "description");
+-
+ if (error) {
+ // FIXMEchpe should be unnecessary, vte already does this internally
+ vte_terminal_set_pty (terminal, nullptr);
+@@ -1965,33 +2054,45 @@ 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 (g_strcmp0 (priv->title, title) == 0)
++ if ((priv->user_title && !userset) ||
++ (priv->raw_title && title &&
++ strcmp (priv->raw_title, title) == 0))
+ return;
+
+- g_free (priv->title);
+- priv->title = title && title[0] ? g_strdup (title) : nullptr;
++ g_free (priv->raw_title);
++ priv->raw_title = g_strdup (title);
++ terminal_screen_cook_title (screen);
++}
++
++void
++terminal_screen_set_override_title (TerminalScreen *screen,
++ const char *title)
++{
++ TerminalScreenPrivate *priv = screen->priv;
++ char *old_title;
++
++ old_title = priv->override_title;
++ priv->override_title = g_strdup (title);
++ g_free (old_title);
+
+- g_object_notify (G_OBJECT (screen), "description");
++ terminal_screen_set_dynamic_title (screen, title, FALSE);
+ }
+
+ const char*
+-terminal_screen_get_user_title (TerminalScreen *screen)
++terminal_screen_get_dynamic_title (TerminalScreen *screen)
+ {
+- TerminalScreenPrivate *priv;
+-
+ g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), nullptr);
+
+- priv = screen->priv;
+-
+- return priv->title ? priv->title : _("Terminal");
++ return screen->priv->raw_title;
+ }
+
+ /**
+@@ -2024,7 +2125,9 @@ 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
+@@ -2047,8 +2150,6 @@ terminal_screen_child_exited (VteTerminal *terminal,
+
+ priv->child_pid = -1;
+
+- g_object_notify (G_OBJECT (screen), "description");
+-
+ action = TerminalExitAction(g_settings_get_enum (priv->profile, TERMINAL_PROFILE_EXIT_ACTION_KEY));
+
+ switch (action)
+@@ -2092,6 +2193,23 @@ 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);
++ }
++}
++
+ static gboolean
+ terminal_screen_contents_changed_cb (TerminalScreen *screen)
+ {
+diff --git a/src/terminal-screen.hh b/src/terminal-screen.hh
+index f4ec9047..feeab852 100644
+--- a/src/terminal-screen.hh
++++ b/src/terminal-screen.hh
+@@ -113,13 +113,17 @@ void terminal_screen_set_profile (TerminalScreen *screen,
+ GSettings* terminal_screen_get_profile (TerminalScreen *screen);
+ GSettings* terminal_screen_ref_profile (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);
+-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);
++
+ char *terminal_screen_get_current_dir (TerminalScreen *screen);
+
+ void terminal_screen_get_size (TerminalScreen *screen,
+diff --git a/src/terminal-window.cc b/src/terminal-window.cc
+index b46cd89b..662f8c79 100644
+--- a/src/terminal-window.cc
++++ b/src/terminal-window.cc
+@@ -781,6 +781,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,
+@@ -2556,8 +2562,7 @@ sync_screen_title (TerminalScreen *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), title);
+ }
+
+ static void
+--
+2.35.1
+
+
+From 87ef0c3c562f9ab132de300f697bd57067f6794f Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Wed, 3 Apr 2019 15:38:09 +0200
+Subject: [PATCH 17/18] Update the title with the current foreground process
+
+Some changes by:
+ Bill Nottingham <notting@splat.cc>
+ Ting-Wei Lan <lantw44@gmail.com>
+
+https://bugzilla.gnome.org/show_bug.cgi?id=711060
+---
+ src/org.gnome.Terminal.gschema.xml | 5 ++++
+ src/terminal-schemas.hh | 1 +
+ src/terminal-screen.cc | 45 +++++++++++++++++++++++++++++-
+ 3 files changed, 50 insertions(+), 1 deletion(-)
+
+diff --git a/src/org.gnome.Terminal.gschema.xml b/src/org.gnome.Terminal.gschema.xml
+index d67da299..09394717 100644
+--- a/src/org.gnome.Terminal.gschema.xml
++++ b/src/org.gnome.Terminal.gschema.xml
+@@ -275,6 +275,11 @@
+ <summary>Whether to scroll to the bottom when there’s new output</summary>
+ <description>If true, whenever there’s new output the terminal will scroll to the bottom.</description>
+ </key>
++ <key name="show-foreground-process-in-title" type="b">
++ <default>true</default>
++ <summary>Whether to show the current foreground process in the title</summary>
++ <description>If true, the current foreground process will be shown in the window and tab titles.</description>
++ </key>
+ <key name="exit-action" enum="org.gnome.Terminal.ExitAction">
+ <default>'close'</default>
+ <summary>What to do with the terminal when the child command exits</summary>
+diff --git a/src/terminal-schemas.hh b/src/terminal-schemas.hh
+index bb3048fa..d5ee2a88 100644
+--- a/src/terminal-schemas.hh
++++ b/src/terminal-schemas.hh
+@@ -70,6 +70,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_SHOW_FOREGROUND_PROCESS_IN_TITLE "show-foreground-process-in-title"
+ #define TERMINAL_PROFILE_TEXT_BLINK_MODE_KEY "text-blink-mode"
+ #define TERMINAL_PROFILE_TITLE_MODE_KEY "title-mode"
+ #define TERMINAL_PROFILE_TITLE_KEY "title"
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index f0111829..4dd9a183 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -110,7 +110,9 @@ struct _TerminalScreenPrivate
+ guint idle_exec_source;
+ ExecData *exec_data;
+
++ gboolean application_title; /* title was set by an application */
+ gboolean between_preexec_and_precmd;
++ gboolean show_foreground_process;
+ gboolean user_title; /* title was manually set */
+ char *current_cmdline;
+ char *raw_title;
+@@ -1140,6 +1142,26 @@ terminal_screen_format_title (TerminalScreen *screen,
+ add_sep = FALSE;
+ }
+
++ if (priv->show_foreground_process &&
++ !priv->application_title &&
++ !priv->user_title &&
++ priv->current_cmdline != nullptr &&
++ priv->current_cmdline[0] != '\0')
++ {
++ gs_free char *current_cmdline_truncated = nullptr;
++ gs_free char *current_cmdline_valid = nullptr;
++ glong len_truncated;
++ glong len_valid;
++
++ current_cmdline_valid = g_utf8_make_valid (priv->current_cmdline, -1);
++ len_valid = g_utf8_strlen (current_cmdline_valid, -1);
++
++ len_truncated = len_valid > 1024 ? 1024 : len_valid;
++ current_cmdline_truncated = g_utf8_substring (current_cmdline_valid, 0, len_truncated);
++
++ g_string_append_printf (title, " — %s", current_cmdline_truncated);
++ }
++
+ if (*titleptr == nullptr || strcmp (title->str, *titleptr) != 0)
+ {
+ g_free (*titleptr);
+@@ -1169,6 +1191,7 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ GObject *object = G_OBJECT (screen);
+ VteTerminal *vte_terminal = VTE_TERMINAL (screen);
+ TerminalWindow *window;
++ gboolean cook_title = FALSE;
+
+ g_object_freeze_notify (object);
+
+@@ -1203,7 +1226,7 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ prop_name == I_(TERMINAL_PROFILE_TITLE_MODE_KEY) ||
+ prop_name == I_(TERMINAL_PROFILE_TITLE_KEY))
+ {
+- terminal_screen_cook_title (screen);
++ cook_title = TRUE;
+ }
+
+ if (gtk_widget_get_realized (GTK_WIDGET (screen)) &&
+@@ -1231,6 +1254,13 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ prop_name == I_(TERMINAL_PROFILE_BACKGROUND_TRANSPARENCY_PERCENT))
+ update_color_scheme (screen);
+
++ if (!prop_name || prop_name == I_(TERMINAL_PROFILE_SHOW_FOREGROUND_PROCESS_IN_TITLE))
++ {
++ priv->show_foreground_process = g_settings_get_boolean (profile,
++ TERMINAL_PROFILE_SHOW_FOREGROUND_PROCESS_IN_TITLE);
++ cook_title = TRUE;
++ }
++
+ if (!prop_name || prop_name == I_(TERMINAL_PROFILE_AUDIBLE_BELL_KEY))
+ vte_terminal_set_audible_bell (vte_terminal, g_settings_get_boolean (profile, TERMINAL_PROFILE_AUDIBLE_BELL_KEY));
+
+@@ -1295,6 +1325,9 @@ terminal_screen_profile_changed_cb (GSettings *profile,
+ vte_terminal_set_word_char_exceptions (vte_terminal, word_char_exceptions);
+ }
+
++ if (cook_title)
++ terminal_screen_cook_title (screen);
++
+ g_object_thaw_notify (object);
+ }
+
+@@ -2125,6 +2158,9 @@ static void
+ terminal_screen_window_title_changed (VteTerminal *vte_terminal,
+ TerminalScreen *screen)
+ {
++ TerminalScreenPrivate *priv = screen->priv;
++
++ priv->application_title = priv->between_preexec_and_precmd;
+ terminal_screen_set_dynamic_title (screen,
+ vte_terminal_get_window_title (vte_terminal),
+ FALSE);
+@@ -2232,6 +2268,8 @@ terminal_screen_contents_changed_cb (TerminalScreen *screen)
+ cmdline = nullptr;
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
+
++ terminal_screen_cook_title (screen);
++
+ out:
+ priv->contents_changed_source_id = 0;
+ return G_SOURCE_REMOVE;
+@@ -2324,6 +2362,7 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
+
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Shell precmd\n");
+
++ priv->application_title = FALSE;
+ priv->between_preexec_and_precmd = FALSE;
+
+ if (priv->contents_changed_source_id != 0)
+@@ -2343,6 +2382,8 @@ terminal_screen_shell_precmd (VteTerminal *terminal)
+
+ g_clear_pointer (&priv->current_cmdline, g_free);
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: (none)\n");
++
++ terminal_screen_cook_title (screen);
+ }
+
+ static gboolean
+@@ -2364,6 +2405,8 @@ terminal_screen_shell_preexec_cb (TerminalScreen *screen)
+ cmdline = nullptr;
+ _terminal_debug_print (TERMINAL_DEBUG_SHELL_COMMAND, "Current foreground command-line: %s\n", priv->current_cmdline);
+
++ terminal_screen_cook_title (screen);
++
+ priv->shell_preexec_source_id = 0;
+ retval = G_SOURCE_REMOVE;
+
+--
+2.35.1
+
+
+From 7da88b7f28bddf57194b38c6277366845eb6e5bf Mon Sep 17 00:00:00 2001
+From: Debarshi Ray <debarshir@gnome.org>
+Date: Thu, 27 Feb 2020 19:32:08 +0100
+Subject: [PATCH 18/18] screen, window: Preserve current toolbox, if any
+
+This relies on toolbox(1) emitting a terminal escape sequence that
+advertises the name of the current toolbox container.
+
+https://gitlab.freedesktop.org/terminal-wg/specifications/issues/17
+---
+ src/terminal-screen.cc | 33 ++++++++++++++++++++++++++++++++-
+ src/terminal-screen.hh | 6 ++++++
+ src/terminal-window.cc | 26 ++++++++++++++++++++++++--
+ 3 files changed, 62 insertions(+), 3 deletions(-)
+
+diff --git a/src/terminal-screen.cc b/src/terminal-screen.cc
+index 4dd9a183..6295eaae 100644
+--- a/src/terminal-screen.cc
++++ b/src/terminal-screen.cc
+@@ -858,6 +858,25 @@ terminal_screen_reexec_from_screen (TerminalScreen *screen,
+ TerminalScreen *parent_screen,
+ GCancellable *cancellable,
+ GError **error)
++{
++ _terminal_debug_print (TERMINAL_DEBUG_PROCESSES,
++ "[screen %p] reexec_from_screen: parent:%p\n",
++ screen,
++ parent_screen);
++
++ return terminal_screen_reexec_from_screen_with_override_command (screen,
++ parent_screen,
++ nullptr,
++ cancellable,
++ error);
++}
++
++gboolean
++terminal_screen_reexec_from_screen_with_override_command (TerminalScreen *screen,
++ TerminalScreen *parent_screen,
++ char **override_command,
++ GCancellable *cancellable,
++ GError **error)
+ {
+ g_return_val_if_fail (TERMINAL_IS_SCREEN (screen), FALSE);
+
+@@ -869,8 +888,20 @@ terminal_screen_reexec_from_screen (TerminalScreen *screen,
+ terminal_unref_exec_data ExecData* data = exec_data_clone (parent_screen->priv->exec_data, FALSE);
+ gs_free char* cwd = terminal_screen_get_current_dir (parent_screen);
+
++ if (override_command != nullptr)
++ {
++ g_return_val_if_fail (parent_screen->priv->exec_data != nullptr, FALSE);
++ g_return_val_if_fail (data != nullptr, FALSE);
++
++ g_strfreev (data->argv);
++ data->argv = g_strdupv (override_command);
++
++ g_free (data->cwd);
++ data->cwd = g_strdup (cwd);
++ }
++
+ _terminal_debug_print (TERMINAL_DEBUG_PROCESSES,
+- "[screen %p] reexec_from_screen: parent:%p cwd:%s\n",
++ "[screen %p] reexec_from_screen_with_override_command: parent:%p cwd:%s\n",
+ screen,
+ parent_screen,
+ cwd);
+diff --git a/src/terminal-screen.hh b/src/terminal-screen.hh
+index feeab852..b5ab7908 100644
+--- a/src/terminal-screen.hh
++++ b/src/terminal-screen.hh
+@@ -108,6 +108,12 @@ gboolean terminal_screen_reexec_from_screen (TerminalScreen *screen,
+ GCancellable *cancellable,
+ GError **error);
+
++gboolean terminal_screen_reexec_from_screen_with_override_command (TerminalScreen *screen,
++ TerminalScreen *parent_screen,
++ char **override_command,
++ GCancellable *cancellable,
++ GError **error);
++
+ void terminal_screen_set_profile (TerminalScreen *screen,
+ GSettings *profile);
+ GSettings* terminal_screen_get_profile (TerminalScreen *screen);
+diff --git a/src/terminal-window.cc b/src/terminal-window.cc
+index 662f8c79..1569bf1e 100644
+--- a/src/terminal-window.cc
++++ b/src/terminal-window.cc
+@@ -416,8 +416,30 @@ action_new_terminal_cb (GSimpleAction *action,
+ terminal_window_switch_screen (window, screen);
+ gtk_widget_grab_focus (GTK_WIDGET (screen));
+
+- /* Start child process, if possible by using the same args as the parent screen */
+- terminal_screen_reexec_from_screen (screen, parent_screen, nullptr, nullptr);
++ const char *container_name = vte_terminal_get_current_container_name (VTE_TERMINAL (parent_screen));
++ const char *container_runtime = vte_terminal_get_current_container_runtime (VTE_TERMINAL (parent_screen));
++ if (g_strcmp0 (container_runtime, "toolbox") == 0 && container_name != nullptr && container_name[0] != '\0')
++ {
++ gs_free_error GError *error = nullptr;
++ gs_free char *override_command_str = nullptr;
++ gs_strfreev char **override_command = nullptr;
++
++ override_command_str = g_strdup_printf ("toolbox enter --container %s", container_name);
++ if (!g_shell_parse_argv (override_command_str, nullptr, &override_command, &error))
++ g_printerr ("Failed to parse '%s': %s\n", override_command_str, error->message);
++
++ /* Start child process, if possible by using the same args as the parent screen */
++ terminal_screen_reexec_from_screen_with_override_command (screen,
++ parent_screen,
++ override_command,
++ nullptr,
++ nullptr);
++ }
++ else
++ {
++ /* Start child process, if possible by using the same args as the parent screen */
++ terminal_screen_reexec_from_screen (screen, parent_screen, nullptr, nullptr);
++ }
+
+ if (mode == TERMINAL_NEW_TERMINAL_MODE_WINDOW)
+ gtk_window_present (GTK_WINDOW (window));
+--
+2.35.1