Позволит ли какой-либо (недавний) эмулятор терминала Linux сохранить мою сессию (вкладки, историю и т. Д.)?
Со временем я стал инвестировать в свои терминальные сеансы: вкладки, историю команд, расположение окон и заголовок и т. Д. В конце концов, перезагрузка требует, чтобы я начал все сначала, что тратит мое время.
Два эмулятора терминала, с которыми я знаком, имели, по крайней мере, частичную возможность, но функциональность с тех пор была удалена: konsole потеряла эту функциональность где-то на пути к KDE4. gnome-терминал потерял опцию --save-config как "устаревшую" где-то до версии 3.10.2, то есть ответ здесь больше не применяется: Сохранить несколько макетов gnome-терминала?
Я хочу захватить текущее состояние всех сеансов терминала и восстановить их после перезагрузки. Сценарий решения будет хорошо, если он не требует ручного обновления для отслеживания изменений сеанса.
6 ответов
Это не совсем то, что вы просили, но tmux
имеет такие возможности.
Обязательно установите вместе с ним плагин tmux-resurrect, который позволит восстановить среду tmux (windows, split и некоторые запущенные программы) после перезапуска.
С другой стороны, tmux будет работать со всеми
Вот терминальная вилка xfce, с возможностью сохранить / восстановить сессию только из меню: https://github.com/repu1sion/xfce4-terminal
https://github.com/Eugeny/terminus сохраняет открытые вкладки и запоминает правильный каталог для каждой.
Отличный терминал Guake позволяет это сделать, есть возможность запоминать свой набор вкладок между перезагрузками.
В настоящее время в настройках она указана как «экспериментальная» функция, но после нескольких месяцев использования этой функции у меня ни разу не возникло проблем.
Я думаю, что это не совсем ответ на ваш вопрос, но вот как я его настроил:
Куча скриптов, которые открывают разные "пресеты Gnome-Terminal".
Например, в этом скрипте я открываю gnome-терминал с тремя вкладками и вызываю SSH с параметрами в каждой.
#!/bin/sh
PATH=/usr/bin:/bin
gnome-terminal \
--tab -t CustomTabText1 -e 'sh -c "ssh hostname.one"' \
--tab -t CustomTabText2 -e 'sh -c "ssh hostname.two"' \
--tab -t CustomTabText3 -e 'sh -c "ssh hostname.three"'
Я также использовал конфигурационный файл ssh, чтобы отразить определенные параметры SSH хоста. Конечно, если вам нужно исключение, просто передайте параметры в SSH в скрипте gnome-Terminal, который будет иметь приоритет над файлом конфигурации SSH.
Теперь с расширением vscode Terminal Keeper вы можете настроить сохраненные сеансы терминала с помощью конфигурации json, например
"default": [
[
{
"name": "docker:ros",
"commands": [
"ssh r99"
],
"autoExecuteCommands": true
},
{
"name": "docker:k8s",
"commands": [
""
]
},
{
"name": "docker:nats",
"commands": [
""
]
},
{
"name": "docker:fleet",
"commands": [
""
]
}
],
[
{
"name": "db:postgre",
"commands": [
""
]
},
{
"name": "db:redis",
"commands": [
""
]
},
{
"name": "db:hyper",
"commands": [
""
]
},
{
"name": "db:mysql",
"commands": [
""
]
}
],
[
{
"name": "api:delivery",
"commands": [
""
]
},
{
"name": "api:feedback",
"commands": [
""
]
},
{
"name": "api:service",
"commands": [
""
]
}
],
{
"name": "test",
"commands": [
""
]
},
{
"name": "debug",
"commands": [
""
]
}
],
довольно легко.