diff --git a/kitty/tab_bar.py b/kitty/tab_bar.py index 76429d22c..a07f8dab2 100644 --- a/kitty/tab_bar.py +++ b/kitty/tab_bar.py @@ -54,14 +54,18 @@ def draw_title(draw_data: DrawData, screen: Screen, tab: TabBarData, index: int) screen.cursor.fg = draw_data.bell_fg screen.draw('🔔 ') screen.cursor.fg = fg - layout_name = tab.layout_name - num_windows = tab.num_windows template = draw_data.title_template - title = tab.title if tab.is_active and draw_data.active_title_template is not None: template = draw_data.active_title_template try: - title = eval(f"f'{template}'") + eval_locals = { + 'index': index, + 'layout_name': tab.layout_name, + 'num_windows': tab.num_windows, + 'title': tab.title + } + compiled_template = compile('f"""' + template + '"""', '', 'eval') + title = eval(compiled_template, {'__builtins__': {}}, eval_locals) except Exception as e: if template not in template_failures: template_failures.add(template)