tmux: sesi bersama, satu pengguna di panel, yang lain di panel lain, dua kursor berbeda

17

Saya telah memutuskan untuk mencoba tmux: telah membaca dokumen dan mencari-cari di sekitar, mencoba menemukan cara agar dua pengguna berbagi sesi, masing-masing dengan kursor berbeda.

Namun, memberikan 777 izin ke soket, atau membuat grup, chgrpmemasukkan soket dan menambahkan kedua pengguna ke soket, tampaknya membiarkan soket yang sama digunakan untuk berbagi sesi dengan hanya satu kursor: kedua pengguna dapat menulis, tetapi selalu di posisi kursor yang sama.

Saat ini kedua pengguna berada di server rumah yang sama di atas ssh, dan idenya adalah untuk dapat memiliki:

  • Terminal di a, katakanlah, panel kiri, tempat saya bisa mengetik perintah
  • Terminal lain di panel kanan, di mana saya bisa melihat pengguna lain mengetik perintah di terminalnya sendiri
  • Hal yang sama untuk pengguna lain

Apa yang saya lakukan saat ini adalah menggunakan dua sesi (tidak dibagikan) dan kombinasi script -fdan tail -fyang agak bekerja untuk membaca stroke kunci masing-masing, tapi saya rasa mungkin ada beberapa cara untuk melakukan ini menggunakan kemampuan berbagi tmux.

Apakah ada cara agar ide ini bekerja dengan dukungan tulis di terminal masing-masing?

Apa cara yang lebih baik untuk melakukan ini?

ferhtgoldaraz
sumber
Hal ini akan membantu unix.stackexchange.com/questions/2523/...
clement
@clement Tidak, yang membuat dua pengguna melihat persis sama; yaitu, hanya ada satu kursor, dan keduanya berada di panel kanan atau keduanya di panel kiri. Tapi terima kasih
ferhtgoldaraz

Jawaban:

20

Pertanyaan ini agak lama, tetapi saya mencari sesuatu yang serupa, dan menemukannya di sini . Ini membuat sesi kedua yang berbagi windows dengan yang pertama, tetapi memiliki tampilan dan kursor sendiri.

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

Jika berbagi yang terjadi antara dua akun pengguna, Anda mungkin masih harus berantakan dengan izin (yang sepertinya Anda telah bekerja sudah).

Sunting: Seperti yang disarankan, kutipan dari jawaban lain :

Pertama, tambahkan grup untuk pengguna tmux

export TMUX_GROUP=tmux
addgroup $TMUX_GROUP

Buat direktori dengan grup yang disetel ke $ TMUX_GROUP dan gunakan bit setgid sehingga file yang dibuat dalam direktori secara otomatis membuat grup diatur ke $ TMUX_GROUP.

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

Selanjutnya pastikan pengguna yang ingin berbagi sesi adalah anggota $ TMUX_GROUP

usermod -aG $TMUX_GROUP user1
usermod -aG $TMUX_GROUP user2
kmac
sumber
Selamat datang di * nix.SE! Ini adalah jawaban pertama yang cukup bagus, meskipun saya akan merekomendasikan Anda mempertimbangkan untuk menambahkan beberapa bit yang paling membantu dari dua tautan kedua secara online (untuk membantu menghindari tautan yang membusuk). :)
HalosGhost
4
Ini memungkinkan dua pengguna untuk memasukkan ke jendela yang berbeda, tetapi bukan panel yang berbeda di dalam jendela yang sama. (tmux 1.6)
awatts
2

Anda dapat mencoba menjalankan dua sesi tmux terpisah sekaligus - satu untuk Anda, dan yang kedua untuk pengguna lain. Kemudian, gunakan sistem windowing OS Anda untuk mengatur dua terminal berdampingan, satu untuk Anda dan satu untuknya. Jika Anda perlu menulis di terminalnya, pilih saja untuk input.

Anda menjalankan (setiap perintah di terminalnya sendiri):

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

Dan kemudian Bob menjalankan (sekali lagi, setiap perintah di terminalnya sendiri):

tmux attach -t Alice
tmux attach -t Bob

Jika Anda tidak memiliki sistem windowing yang mendukung tampilan berdampingan atau Anda tidak suka mouse, Anda masing-masing dapat (dengan hati-hati) mengaturnya dalam sesi pembungkus layar / tmux yang tidak dibagikan.

fwip
sumber
Terima kasih, tetapi saya membutuhkan ini di lingkungan server, jadi tidak ada jendela (kami mengacaukan cara kerja server)
ferhtgoldaraz
1
@ferhtgoldaraz: Anda bisa menggunakan sesi split tmux untuk memuat dua subsession!
Ashe
@Yuki: Menarik, saya akan melihatnya
ferhtgoldaraz
@ Ashe Apa maksudmu dengan sesi split tmux dan dua subsession? Bisakah Anda menjelaskan lebih lanjut?
elquimista
@elquimista halo dari lebih dari 4 tahun yang lalu! Apa yang saya maksudkan adalah menjalankan tmux, kemudian membagi jendela menjadi dua panel (misalnya dengan ctrl-b% atau ctrl-b "), kemudian jalankan tmux (lagi) di setiap panel, berbagi sesi seperti yang disarankan dalam jawaban.
Ashe