tmux: спільний сеанс, один користувач на панелі, інший в іншій області, два різні курсори


17

Я вирішив спробувати tmux: читав документи та гуглював, намагаючись знайти спосіб, щоб два користувачі мали спільний сеанс, кожен з іншим курсором.

Однак надання 777 дозволу на сокет або створення групи, chgrpвключення сокета та додавання до нього обох користувачів, здається, дозволяє цьому самому сокету використовувати спільний доступ до сеансу лише з одним курсором: обидва користувачі можуть писати, але завжди в те саме положення курсору.

Зараз обидва користувачі перебувають на одному домашньому сервері через ssh, і ідея полягає в тому, щоб мати можливість:

  • Термінал на, скажімо, лівій панелі, де я можу вводити команди
  • Ще один термінал на правій панелі, де я бачу іншого користувача, який набирає команди у своєму власному терміналі
  • Те ж саме для іншого користувача

Те , що я роблю в даний момент з допомогою двох сесій (не загальні) і script -fі tail -fкомбінації , які начебто працює для читання один одного натискань клавіш, але я думаю , є, ймовірно , який - то спосіб зробити це , використовуючи tmux можливості спільного використання.

Чи є спосіб змусити цю ідею працювати з підтримкою запису в терміналі один одного?

Який кращий спосіб зробити це?



@clement Ні, завдяки чому два користувачі бачать саме те саме; тобто є лише один курсор, і обидва знаходяться в правій області, або обидва знаходяться в лівій області. Але все-таки спасибі
ferhtgoldaraz

Відповіді:


20

Це питання трохи старе, але я шукав щось подібне, і знайшов його тут . Він створює другий сеанс, який розділяє вікна з першим, але має власний вигляд і курсор.

tmux new-session -s alice
tmux new-session -t alice -s bob

Якщо обмін даними відбувається між двома обліковими записами користувачів, вам, можливо, доведеться возитися з дозволами (це, здається, ви вже працювали).

Редагувати: Як пропонується, цитата з іншої відповіді :

Спочатку додайте групу для користувачів tmux

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

Створіть каталог із групою, встановленою на $ TMUX_GROUP, і використовуйте встановлений біт, щоб у файлах, створених у каталозі, автоматично було встановлено групу $ TMUX_GROUP.

mkdir /var/tmux
chgrp $TMUX_GROUP /var/tmux
chmod g+ws /var/tmux

Далі переконайтеся, що користувачі, які хочуть поділитися сеансом, є членами $ TMUX_GROUP

usermod -aG $TMUX_GROUP user1
usermod -aG $TMUX_GROUP user2

Ласкаво просимо до * nix.SE! Це досить гарна перша відповідь, хоча я б рекомендував вам розглянути можливість додавання декількох корисних бітів із двох інших посилань в рядок (щоб уникнути гниття посилань). :)
HalosGhost

4
Це дозволяє двом користувачам вводити в різні вікна, але не різні панелі в одному вікні. (tmux 1.6)
awatts

2

Ви можете спробувати запустити дві окремі сесії tmux одночасно - один для вас, а другий для іншого користувача. Потім скористайтеся системою вікон Вашої ОС, щоб розташувати два термінали поруч, один для вас і один для нього. Якщо вам потрібно написати в його терміналі, просто виберіть його для введення.

Ви запускаєте (кожна команда у своєму власному терміналі):

tmux new-session -s Alice
tmux new-session -s Bob

І тоді Боб запускається (знову ж, кожна команда у своєму терміналі):

tmux attach -t Alice
tmux attach -t Bob

Якщо у вас немає системи вікон, яка підтримує бічний бік дисплея або ви ненавидите мишу, ви можете кожен (обережно) налаштувати це під час сеансу непогашеного екрана / tmux обгортки.


Дякую, але мені це було потрібно в серверному середовищі, так що жодних вікон (ми
псували,

1
@ferhtgoldaraz: ви могли просто використовувати розділений tmux сеанс, щоб містити два підпункти!
Еш

@Yuki: Цікаво, я
розберуся

@Ashe Що ви маєте на увазі під розділеним сеансом tmux та двома підсесіями? Чи можете ви докладно уточнити?
elquimista

@elquimista привіт, більше 4 років тому! Я мав на увазі запустити tmux, потім розділити вікно на дві області (наприклад, з ctrl-b% або ctrl-b "), потім запустити tmux (знову) на кожній панелі, обмінюючись сеансами, як запропоновано у відповіді.
Ashe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.