3

Мне интересно, есть ли какой-нибудь способ создать иерархию / дерево терминалов в сеансе экрана в Linux?

Я не против взломать это, так что если есть проект, который работает над этим, я бы хотел принять участие в этом.


Объяснение:

Я хотел бы иметь что-то вроде

1 bash
  1.1 bash
  1.2 bash 2 bash 3 bash
  3.1 bash
    3.1.1 bash
    3.1.2 bash

Было бы хорошо, если бы терминалы могли быть помечены вместо того, чтобы перемещаться по некоторому соглашению, которое, как я подозреваю, не существует. Итак, вы можете перейти к нему, используя, например, ^A:goto happydays или ^A:goto dykstra.angry .

Каждый браузер предлагает возможность создавать плоский набор вкладок, содержащих документы идентичной природы. GNU- screen реализует ту же функциональность без использования вкладок. Диспетчеры окон Linux и OS/X предоставляют возможность организовать окна в массив рабочих пространств, что опять-таки означает то же самое.

Я хотел бы иметь возможность не только группировать вещи в древовидную структуру, но и создавать ссылки (так называемые символические ссылки, так же как указатели) из одной части структуры в другую, а также применять свойства (например, каталог по умолчанию, colorscheme) , ...) рекурсивно вниз от данного узла.

3 ответа3

1

Янно, это звучит очень похоже на то, что может сделать Бёбу

1

только что нашел этот вопрос.

Вы можете делать то, что, я полагаю, вы ищете прямо в GNU-Screen. В .screenrc добавьте:

screen -t 1.1 0 # just a shell

screen -t 1.2 1 screen -m -e ^ xx -c ${HOME}/.screenrc-1.2 #new session inside accessed by Ctrl-x

screen -t 1.3 2 screen -m -e '^xx' -c ${HOME}/.screenrc-1.3 #yet another new session

Тогда ~/.screenrc-1.2 и ~/.screenrc-1.3 могут быть отдельными установками для подсессий; например, .screenrc-1.3 может определять больше подсессий. Оказавшись внутри всего сеанса, вы можете переключаться между ними, и внутренние сеансы имеют свои собственные последовательности управления (ctrl-x), вы можете перейти к названию или номеру: select 1.2 .

0

Сеансы вложенного экрана (как предлагает Archege) позволят добиться того, что вы хотите сделать, но управление несколькими уровнями вложенности (особенно когда речь идет об отправке команд на правильный сеанс экрана) может быть трудной задачей. Более поздние версии экрана (я использую 4.1.0) поддерживают группы окон, которые могут сделать большую часть того, что вы хотите достичь. Похоже, что группы окон не способны на что-либо аналогичное жесткой связи, а функция имеет лишь минимальную интеграцию и документацию (предположительно, из-за того, что она сравнительно новая и относительно неясная). Однако заметным преимуществом групп окон является то, что они работают в течение одного сеанса экрана; следовательно, управление вложенным расположением менее проблематично.

Блок кода ниже - это закомментированная копия / вставка разделов моего .screenrc, которые имеют отношение к группам окон:

# first, make a root group that all of the other groups will go into
# note that the "//group" is *NOT* a comment; without it, only a
#  standard window will be spawned
screen -t root    0 //group

# select the root window to make sure that the next created group will
#  end up there, and make another group nested inside of it
select 0
screen -t shells  1 //group

# rinse and repeat for more groups
select 0
screen -t editors 2 //group
select 0
screen -t SSH     3 //group
select 0
screen -t scratch 4 //group
select 0
screen -t scripts 5 //group

# to add windows into first group, select it and then create windows
#  as normal
select 1
screen 6
screen 7

# rinse and repeat as desired for the other groups
select 2
screen 8
# and so on...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .