Автоматически переименовывать вкладки терминала с помощью команды

Я пытаюсь переименовать открытые вкладки терминала в OSX, но могу изменить название терминала только с помощью приведенного ниже кода. Есть ли способ изменить заголовок вкладки с помощью команды? Я использую osascript с python 2.7.

name = """osascript -e 'tell application "Terminal" to set custom title in selected tab of the front window to "script_1"'"""
os.system(name)

Вручную: «Оболочка» > «Редактировать заголовок» (SHIFT+COMMAND+I) > «Заголовок вкладки».


person hzleonardo    schedule 07.06.2016    source источник


Ответы (4)


использование $title у меня не сработало, но это сработало:

>>> t = 'echo -n -e "\033]0;%s\007"' % title
>>> t
'echo -n -e "\x1b]0;Customized title for TAB\x07"'
>>> os.system(t)
-e 0
>>> 
person joel goldstick    schedule 07.06.2016
comment
Он делает то же самое, что и мой код. Он изменяет заголовок терминала, а не заголовок вкладки. - person hzleonardo; 08.06.2016
comment
Я на lubuntu linux (LXTerminal 0.1.11), поменял вкладку и заголовок на активной вкладке. OSX использует другой терминал. Я не эксперт в этом деле, но я повозился и заставил его работать. Я думаю, что может возникнуть проблема с установкой переменной в python, а затем ожиданием, что оболочка узнает, что это переменная среды. - person joel goldstick; 08.06.2016
comment
Я предполагаю, что это проблема Osx, а не Python, я пробовал это с Ubuntu, и это работает. Но я думаю, что пока нет возможности изменить название вкладки на Osx. - person hzleonardo; 08.06.2016
comment
Узнайте, что такое ваша терминальная программа, и поищите волшебные строки, которые могут ею управлять. - person joel goldstick; 08.06.2016
comment
Можно было бы ожидать, что оба делают одно и то же... \033 (восьмеричное число 33, 27l) точно такое же, как \x1b (шестнадцатеричное число, также 27). Оба означают, что это escape-код. За ним следует команда 0, заголовок и затем завершается символом 7. Возможно, некоторые оболочки не интерпретируют восьмеричные, а некоторые не интерпретируют шестнадцатеричные? - person Blizz; 28.01.2018

Я нашел это очень полезным, потому что он не выводит ненужный вывод на стандартный вывод, в отличие от моих экспериментов с подпроцессом или os.system, которые привели к нежелательному появлению «-e» в консоли.

import sys
sys.stdout.write("\x1b]2;%s\x07" % 'TAB name')
person Matúš Košút    schedule 13.07.2017

Это должно сделать:

title='Customized title for TAB'
os.system('echo -n -e "\033]0;{}\007"'.format(title))
person j4hangir    schedule 07.06.2016
comment
Просто измените заголовок, а не заголовок вкладки. Оба различны в терминале Mac. - person misteeque; 11.12.2019

Вот решение с использованием клавиш для открытия инспектора, изменения заголовка и закрытия инспектора. Потому что, согласно моим исследованиям, нет возможности изменить заголовок вкладки в OSX с помощью готового скрипта Apple.

Он отлично работает, поэтому не нужно ждать, пока Apple выпустит эту опцию.

tabinspector = """osascript -e 'tell application "System Events" to keystroke "i" using {shift down,command down}'"""
pressstab = """osascript -e 'tell application "System Events" to keystroke Tab'""" 
title = """osascript -e 'tell application "System Events" to keystroke "yourtitlehere"'"""
pressesc = """osascript -e 'tell application "System Events" to key code 53'"""

os.system(tabinspector)
os.system(pressstab)
os.system(title)
os.system(pressesc)
person hzleonardo    schedule 07.06.2016