Proksi atau layar terminal tanpa emulasi terminal

3

Bagaimana saya bisa membuat aplikasi terminal kebal terhadap emulator terminal dekat, tetapi masih dapat menggunakan semua fitur terminal virtual?

\ begin {UPDATE}

Saya ingin aplikasi terminal saya tetap hidup dan dapat diakses jika saya tidak sengaja menutup terminal emulator. Fungsi ini disediakan oleh layar dan tmux, tetapi mereka memiliki masalah dengan warna dan layar rata. Ya, saya dapat menjalankan shell di dalam layar, tetapi saya tidak ingin shell tetap hidup kecuali ada beberapa program lain yang berjalan.

\ end {UPDATE}

Saya melihat ini pasti seperti layar, tetapi tanpa emulasi terminal VT100, sesuatu yang hanya akan menerapkan aplikasi apa pun yang dilakukan dengan terminal "terminal proxy" (seperti mengeluarkan sesuatu ke stdout / stderr atau menggunakan stty untuk mengatur opsi terminal) ke terminal proxy ini berjalan di.

// Aku tahu tentang screendan altscreen on, tapi itu membuat ini ( screendengan TERM=screen):

layar dengan TERM = layar

atau ini ( screendengan TERM=rxvt-unicode):

layar dengan TERM = rxvt-unicode

sementara saya menginginkan ini ( rxvt-unicodetanpa screen):

rxvt-unicode

Saya sudah tahu bahwa semuanya terlihat baik jika saya mengkompilasi rxvt-unicodedengan USE=-xterm-color(pada kenyataannya vim terlihat seperti pada gambar kedua bahkan tanpa layar jika saya menambahkan flag USE ini) dan mengatur TERM=screen-256color, tapi saya tidak suka solusi ini karena benar-benar mengubah warna dan saya bisa yakinlah bahwa itu akan selalu mengubahnya hanya dengan cara ini:

layar dengan TERM = layar-256color

ZyX
sumber
Tidak jelas apa yang Anda coba lakukan. Apa yang Anda maksud dengan "kebal terhadap emulator terminal tutup"? Apakah Anda hanya ingin menonaktifkan kode kontrol terminal tertentu? Anda cukup menggunakan infocmp, mengedit kapabilitas dan kemudian menggunakan tic.
Dennis Williamson
Saya ingin aplikasi terminal saya tetap hidup dan dapat diakses jika saya tidak sengaja menutup terminal emulator. Fungsi ini disediakan oleh layar dan tmux, tetapi mereka memiliki masalah dengan warna dan layar rata. Ya, saya dapat menjalankan shell di dalam layar, tetapi saya tidak ingin shell tetap hidup kecuali ada beberapa program lain yang berjalan.
ZyX
Saya berhenti menggunakan rxvt-unicode karena saya tidak pernah bisa mendapatkan warna untuk bekerja dengan benar dan beberapa karakter kontrol dasar menyebabkan rxvtu untuk menampilkan karakter di semua tempat. Terminal.app dan Gnome.terminal Apple belum memberi saya masalah. Saya menggunakan set karakter en-US atau UTF8.
Stefan Lasiewski
@Stefan Lasiewski warna berfungsi dengan baik di rxvt-unicode; tetapi mereka bekerja dengan baik hanya di terminal ini dan hanya dalam kondisi tertentu. Jika saya pindah ke terminal lain saya harus melakukan sesuatu dengan mereka. Menggunakan LANG=ru_RU.UTF8. Apa yang Anda maksud dengan «karakter tampilan di semua tempat»? Jika merusak garis, coba lakukan stty onlcr.
ZyX
bagi saya masih belum jelas apa artinya "Ya, saya bisa menjalankan shell di dalam layar, tetapi saya tidak ingin shell tetap hidup kecuali ada beberapa program lain yang berjalan" artinya. katakanlah tmux: tmux meluncurkan sebuah shell dan kemudian Anda mengetikkan "yourprogramname" di sana .. dan Anda ingin proses shell menghilang, jadi bukan tmux-> shell-> program Anda lagi tetapi tmux-> program Anda? jika demikian, luncurkan program Anda dengan "exec yourprogramname".
akira

Jawaban:

3

Ada juga program yang disebut "dtach" yang melakukan hal itu, tanpa menambahkan buffer layarnya sendiri. (Saya tahu jawabannya cukup terlambat tetapi saya tetap mempostingnya untuk mereka yang mencari dan menemukan halaman)

tzervo
sumber
Tidak, bukan. Terima kasih, dtach berfungsi seperti yang saya inginkan.
ZyX
0

Ya, saya dapat menjalankan shell di dalam layar, tetapi saya tidak ingin shell tetap hidup kecuali ada beberapa program lain yang berjalan.

Salah satu solusinya adalah dengan menjalankan shell dari layar (seperti yang Anda katakan tidak Anda inginkan), tetapi kemudian tambahkan pekerjaan Cron untuk menjalankan setiap 10 menit untuk memeriksa apakah ada sesi layar untuk ditutup.

Jika semua sesi layar dilepaskan dan tidak ada program selain shell yang berjalan maka Anda dapat menutupnya.

Jarvin
sumber
Saya tidak takut menambahkan pekerjaan cron lain, tetapi ini tidak ada hubungannya dengan warna.
ZyX
0

Gunakan sakura . Ini meminta Anda jika Anda mencoba untuk menutup vterm dengan program yang sedang berjalan.

brice
sumber
0

Anda dapat menggunakan layar untuk langsung meluncurkan aplikasi Anda sehingga ketika aplikasi Anda keluar layar akan keluar:

screen <yourprog>

Lihat paragraf ke 5 dari halaman manual untuk lebih jelasnya.

pjz
sumber