
После случайного нажатия ctrl+alt+t мои сеансы tmux теперь автоматически именуются раздражающе высокими числами:
llama@llama:~$ tmux ls
124: 1 windows (created Mon Jan 5 16:45:55 2015) [80x24] (attached)
Как мне сбросить этот номер на 1
? Я пробовал tmux rename-session
изменить номер сеанса на меньший, но после его закрытия и открытия нового сеанса нумерация возобновляется с исходного номера.
Есть ли способ исправить это без перезапуска tmux?
решение1
Нет, в настоящее время это невозможно.
Единственное, что вы можете сделать с этим, не перезапуская сервер, — это вручную переопределить имя при создании нового сеанса, выполнив tmux new -s 5
, например:
$ tmux new -d -P
10:
$ tmux ls
10: 1 windows (created Wed Jan 7 15:50:29 2015) [107x89]
$ tmux new -s 5 -d -P
5:
$ tmux ls
10: 1 windows (created Wed Jan 7 15:50:29 2015) [107x89]
5: 1 windows (created Wed Jan 7 15:50:40 2015) [107x89]
$ tmux new -s 5 -d -P
duplicate session: 5
Автоматический номер сеанса регулируется глобальной переменной u_int next_session_id
вsession.c
к которому невозможно получить доступ из командной строки, как показывает анализ исходного кода.
tmux new-session
звонит session_create()
вsession.c
(строка 88) и next_session_id
увеличивается всякий раз, когда вы создаете новый сеанс. Аргумент -s
flag to new-session
(short new
) устанавливает name
, в противном случае next_session_id
используется.
if (name != NULL) {
s->name = xstrdup(name);
s->id = next_session_id++;
} else {
s->name = NULL;
do {
s->id = next_session_id++;
free(s->name);
xasprintf(&s->name, "%u", s->id);
} while (RB_FIND(sessions, &sessions, s) != NULL);
}
решение2
пытаться:
tmux kill-server && tmux