tmux: sessione condivisa, un utente in un riquadro, un altro in un altro riquadro, due cursori diversi


17

Ho deciso di provare tmux: ho letto i documenti e ho cercato su Google, cercando di trovare un modo in cui due utenti condividessero una sessione, ognuno con un cursore diverso.

Tuttavia, dare 777 autorizzazioni al socket o creare un gruppo, chgrpinserire il socket e aggiungere entrambi gli utenti, sembra consentire a quello stesso socket di essere utilizzato per condividere una sessione con un solo cursore: entrambi gli utenti possono scrivere, ma sempre nel stessa posizione del cursore.

In questo momento entrambi gli utenti si trovano nello stesso server principale su ssh e l'idea è quella di poter avere:

  • Un terminale in un, diciamo, riquadro sinistro, dove posso digitare i comandi
  • Un altro terminale nel riquadro a destra, dove posso vedere un altro utente che digita i comandi nel suo terminale
  • La stessa cosa per l'altro utente

Quello che sto facendo in questo momento sta usando due sessioni (non condivise) e una script -fe tail -fcombinazione che funziona un po per la lettura di ogni altro di colpi di chiave, ma mi sa v'è probabilmente un modo di fare questo usando tmux capacità di condivisione.

C'è un modo per far funzionare questa idea con il supporto di scrittura nel terminale dell'altro?

Qual è il modo migliore per farlo?



@clement No, questo fa sì che due utenti vedano esattamente lo stesso; vale a dire, c'è solo un cursore ed entrambi sono nel riquadro destro o entrambi sono nel riquadro sinistro. Ma grazie comunque
ferhtgoldaraz

Risposte:


20

Questa domanda è un po 'vecchia, ma stavo cercando qualcosa di simile, e l'ho trovata qui . Crea una seconda sessione che condivide Windows con la prima, ma ha una propria vista e cursore.

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

Se la condivisione sta avvenendo tra due account utente, potresti comunque dover fare confusione con le autorizzazioni (che sembra avere già funzionato).

Modifica: come suggerito, una citazione da un'altra risposta :

Innanzitutto, aggiungi un gruppo per gli utenti di tmux

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

Creare una directory con il gruppo impostato su $ TMUX_GROUP e utilizzare il bit setgid in modo che i file creati all'interno della directory abbiano automaticamente il gruppo impostato su $ TMUX_GROUP.

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

Quindi assicurati che gli utenti che desiderano condividere la sessione siano membri di $ TMUX_GROUP

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

Benvenuto in * nix.SE! Questa è una buona prima risposta, anche se consiglierei di aggiungere alcuni dei bit più utili dai secondi due collegamenti in linea (per aiutare a evitare il rot-link). :)
HalosGhost

4
Ciò consente a due utenti di inserire finestre diverse, ma non riquadri diversi all'interno della stessa finestra. (tmux 1.6)
risale

2

Potresti provare a eseguire due sessioni tmux separate contemporaneamente, una per te e la seconda per l'altro utente. Quindi, utilizza il sistema di finestre del tuo sistema operativo per disporre due terminali uno accanto all'altro, uno per te e uno per lui. Se devi scrivere nel suo terminale, basta sceglierlo per l'input.

Si esegue (ogni comando nel proprio terminale):

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

E poi Bob esegue (di nuovo, ogni comando nel proprio terminale):

tmux attach -t Alice
tmux attach -t Bob

Se non si dispone di un sistema a finestre che supporta la visualizzazione side-by-side o si detesta il mouse, è possibile configurarlo (con attenzione) ciascuno in una sessione dello schermo / tmux wrapper non condivisa.


Grazie, ma ne avevo bisogno in un ambiente server, quindi niente finestre (stavamo scherzando su come funzionano i server)
ferhtgoldaraz

1
@ferhtgoldaraz: potresti semplicemente usare una sessione di tmux divisa per contenere le due sottosessioni!
Ashe,

@Yuki: Interessante, lo esaminerò
ferhtgoldaraz,

@Ashe Cosa intendi per split tmux session e due sottosessioni? Puoi elaborare per favore?
elquimista,

@elquimista ciao da oltre 4 anni fa! Quello che intendevo era eseguire tmux, quindi dividere la finestra in due riquadri (ad esempio con ctrl-b% o ctrl-b "), quindi eseguire tmux (di nuovo) in ciascun riquadro, condividendo le sessioni come suggerito nella risposta.
Ashe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.