tmux: sesión compartida, un usuario en un panel, otro en otro panel, dos cursores diferentes

17

He decidido probar tmux: he estado leyendo los documentos y buscando en Google, tratando de encontrar la manera de que dos usuarios compartan una sesión, cada uno con un cursor diferente.

Sin embargo, otorgar permisos 777 al socket, o crear un grupo, chgrpincorporar el socket y agregarle a ambos usuarios, parece permitir que ese mismo socket se use para compartir una sesión con un solo cursor: ambos usuarios pueden escribir, pero siempre en el misma posición del cursor.

En este momento, ambos usuarios están en el mismo servidor doméstico a través de ssh, y la idea es poder tener:

  • Un terminal en un panel izquierdo, digamos, donde puedo escribir comandos
  • Otro terminal en un panel derecho, donde puedo ver a otro usuario escribiendo comandos en su propio terminal
  • Lo mismo para el otro usuario.

Lo que estoy haciendo en este momento es el uso de dos sesiones (no compartidas) y una script -fy tail -fcombinación que algo funciona para leer el uno al otro de pulsaciones de teclas, pero creo que es probable que haya alguna manera de hacer esto utilizando TMux capacidad de compartir.

¿Hay alguna manera de hacer que esta idea funcione con soporte de escritura en el terminal del otro?

¿Cuál es la mejor manera de hacer esto?

ferhtgoldaraz
fuente
Esto debería ayudar a unix.stackexchange.com/questions/2523/…
clemente el
@clement No, eso hace que dos usuarios vean exactamente lo mismo; es decir, solo hay un cursor y ambos están en el panel derecho o ambos están en el panel izquierdo. Pero gracias de todos modos
ferhtgoldaraz

Respuestas:

20

Esta pregunta es un poco vieja, pero estaba buscando algo similar y la encontré aquí . Crea una segunda sesión que comparte ventanas con la primera, pero tiene su propia vista y cursor.

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

Si el intercambio está ocurriendo entre dos cuentas de usuario, es posible que aún tenga que meterse con los permisos (que parece que ya estaba trabajando).

Editar: como se sugiere, una cita de otra respuesta :

Primero, agregue un grupo para usuarios de tmux

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

Cree un directorio con el grupo establecido en $ TMUX_GROUP y use el bit setgid para que los archivos creados dentro del directorio tengan automáticamente el grupo establecido en $ TMUX_GROUP.

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

A continuación, asegúrese de que los usuarios que desean compartir la sesión sean miembros de $ TMUX_GROUP

usermod -aG $TMUX_GROUP user1
usermod -aG $TMUX_GROUP user2
kmac
fuente
Bienvenido a * nix.SE! Esta es una primera respuesta bastante buena, aunque recomendaría que considere agregar algunos de los bits más útiles de los dos segundos enlaces en línea (para ayudar a evitar la descomposición de enlaces). :)
HalosGhost
44
Esto permite que dos usuarios ingresen a diferentes ventanas, pero no a diferentes paneles dentro de la misma ventana. (tmux 1.6)
estrena
2

Puede intentar ejecutar dos sesiones de tmux separadas a la vez, una para usted y la otra para el otro usuario. Luego, use el sistema de ventanas de su sistema operativo para organizar dos terminales una al lado de la otra, una para usted y otra para él. Si necesita escribir en su terminal, simplemente elíjalo como entrada.

Ejecutas (cada comando en su propia terminal):

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

Y luego Bob ejecuta (nuevamente, cada comando en su propia terminal):

tmux attach -t Alice
tmux attach -t Bob

Si no tiene un sistema de ventanas que admita la visualización de lado a lado o detesta el mouse, cada uno (con cuidado) puede configurar esto en una sesión de pantalla / envoltura tmux no compartida.

fwip
fuente
Gracias, pero necesitaba esto en un entorno de servidor, así que no hay ventanas (estábamos jugando con el funcionamiento de los servidores)
ferhtgoldaraz
1
@ferhtgoldaraz: ¡podría usar una sesión dividida de tmux para contener las dos subsesiones!
Ashe
@ Yuki: Interesante, lo investigaré
ferhtgoldaraz
@Ashe ¿Qué quieres decir con sesión dividida tmux y dos subsesiones? ¿Puedes elaborar por favor?
elquimista
@elquimista hola desde hace más de 4 años! Lo que quise decir fue ejecutar tmux, luego dividir la ventana en dos paneles (por ejemplo, con ctrl-b% o ctrl-b "), luego ejecutar tmux (nuevamente) en cada panel, compartiendo sesiones como se sugiere en la respuesta.
Ashe