diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index 9bf058c96..f9a5aaeb0 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -2810,6 +2810,7 @@ The following placeholders are defined: * `{host}`: The host of the current web page. * `{backend}`: Either ''webkit'' or ''webengine'' * `{private}` : Indicates when private mode is enabled. +* `{current_url}` : The url of the current web page. Type: <> @@ -2946,6 +2947,7 @@ The following placeholders are defined: * `{host}`: The host of the current web page. * `{backend}`: Either ''webkit'' or ''webengine'' * `{private}` : Indicates when private mode is enabled. +* `{current_url}` : The url of the current web page. Type: <> diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 2a8c4c32b..f4b484dbc 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -1224,6 +1224,7 @@ tabs.title.format: - scroll_pos - host - private + - current_url none_ok: true desc: | The format to use for the tab title. @@ -1239,6 +1240,7 @@ tabs.title.format: * `{host}`: The host of the current web page. * `{backend}`: Either ''webkit'' or ''webengine'' * `{private}` : Indicates when private mode is enabled. + * `{current_url}` : The url of the current web page. tabs.title.format_pinned: default: '{index}' @@ -1254,6 +1256,7 @@ tabs.title.format_pinned: - scroll_pos - host - private + - current_url none_ok: true desc: The format to use for the tab title for pinned tabs. The same placeholders like for `tabs.title.format` are defined. @@ -1371,6 +1374,7 @@ window.title_format: - host - backend - private + - current_url default: '{perc}{title}{title_sep}qutebrowser' desc: | The format to use for the window title. @@ -1385,6 +1389,7 @@ window.title_format: * `{host}`: The host of the current web page. * `{backend}`: Either ''webkit'' or ''webengine'' * `{private}` : Indicates when private mode is enabled. + * `{current_url}` : The url of the current web page. ## zoom diff --git a/qutebrowser/mainwindow/tabwidget.py b/qutebrowser/mainwindow/tabwidget.py index c5566f877..a8bc45cc0 100644 --- a/qutebrowser/mainwindow/tabwidget.py +++ b/qutebrowser/mainwindow/tabwidget.py @@ -164,6 +164,11 @@ class TabWidget(QTabWidget): except qtutils.QtValueError: fields['host'] = '' + try: + fields['current_url'] = self.tab_url(idx).url() + except qtutils.QtValueError: + fields['current_url'] = '' + y = tab.scroller.pos_perc()[1] if y is None: scroll_pos = '???' diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py index 15d2ce8a0..1313649bc 100644 --- a/tests/helpers/stubs.py +++ b/tests/helpers/stubs.py @@ -131,10 +131,11 @@ class FakeUrl: """QUrl stub which provides .path(), isValid() and host().""" - def __init__(self, path=None, valid=True, host=None): + def __init__(self, path=None, valid=True, host=None, url=None): self.path = mock.Mock(return_value=path) self.isValid = mock.Mock(returl_value=valid) self.host = mock.Mock(returl_value=host) + self.url = mock.Mock(return_value=url) class FakeNetworkReply: