Ponowne podłączenie ekranu (po uruchomieniu irssi) wymusza zmianę rozmiaru okna

9

Ilekroć ponownie podłączam się do mojego odłączonego ekranu (zawierającego Irssi), mój ekran Putty jest zmieniany na coś, co było podczas uruchamiania. Jeśli po tym zmienię rozmiar okna, odłącz ekran i zmień jego rozmiar z powrotem, okno zostanie ponownie przeskalowane do oryginalnego rozmiaru. Przez okno rozumiem okno Putty na moim oknie. Jak mogę wyłączyć tę funkcję?

Używanie Windows XP jako mojego lokalnego i CentOS 6.0 jako zdalnego systemu operacyjnego. Szpachlówka 0,61.

eis
źródło

Odpowiedzi:

10

Możesz także uniemożliwić zmianę rozmiaru ekranu na zdalnych sesjach. Druga odpowiedź zapobiega temu w twojej lokalnej instalacji szpachlowej - ale co, jeśli przejdziesz na inną stację roboczą?

W każdym razie, aby zapobiec zmianie rozmiaru xterms ekranu, musisz:

  • Edytować /etc/screenrc
  • Znajdź ten fragment tekstu

# Long time I had this in my private screenrc file. But many people
# seem to want it (jw):
# we do not want the width to change to 80 characters on startup:
# on suns, /etc/termcap has :is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l:

#termcap xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
#terminfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

  • Odkomentuj te dwie linie termcap, a ekran będzie się odtąd zachowywał.

Właśnie natrafiłem na ten problem, googlowałem, znalazłem tutaj odpowiedź , przetestowałem i pomyślałem, że może być przydatny dla innych.

Zauważ, że jeśli nie możesz lub nie chcesz edytować globalnej konfiguracji screenrc, ~/.screenrcwystarczy dla bieżącego użytkownika.

Zlatko
źródło
Kusiłbym się, aby zaznaczyć to jako zaakceptowaną odpowiedź, ale wygląda na to, że nie jestem w stanie przetestować tego, ponieważ zachowanie się skończyło ... Muszę przynajmniej głosować :)
eis
Tak! udało mi się go teraz przetestować i działa dokładnie tak, jak opisano.
eis
cieszę się, że ci się udało :)
Zlatko,
Komentarz pmodin na oryginalnej stronie naprawił tę odpowiedź w moim przypadku: musiałem ustawić ją jako „xterm *”, ponieważ moja konfiguracja szpachli używa xterm-color jako TERM.
Mikuz
nie działa dla mnie. nie mogę zmienić rozmiaru, używając 4.02.01 im również próbuję uruchomić z ekranem -AR lub dowolną kombinacją ekranu -Ar, i początkowe uruchomienie z ekranem działa dobrze, a początkowe uruchomienie ekranu -A działa dobrze, każdy odłamek go psuje. też mam to na .screenrc, który ma go sfałszować, i nie idź. escape ^aa następnie bindkey ^ad detach
Brian Thomas
12

Znalazłem odpowiedź. Ta funkcja nazywa się „zdalnym zmienianiem rozmiaru terminala” i można ją wyłączyć w Konfiguracja -> Terminal -> Funkcje -> Wyłącz zdalnie sterowane zmiany rozmiaru terminala, jak opisano w konfiguracji PuTTY .

Ale tak naprawdę nie wiem, dlaczego ponowne podłączenie ekranu zmienia rozmiar zdalnego żądania.

eis
źródło
1
To działało dla mnie dobrze. Mam linię termcapinfo w moim .screenrc, która przesyła bufor przewijania wstecz. Nie rozumiem, w jaki sposób linia termcapinfo jest analizowana i nie chcę z tym zadzierać.
Morphit,
2

W przyjętej odpowiedzi brakuje wyjaśnienia tego zjawiska. Tutaj jest jeden:

  • Długi ciąg dla isjest ciągiem inicjującym dla terminala, który zwykle jest taki sam jak rs(używany przez reset).
  • Podany przykład zawiera sekwencję kontrolną, która resetuje terminal od 132 do 80 kolumn. Tą częścią jest „3” \E[?1;3;4;6l, które można podzielić na cztery elementy sterujące. Ten, który ma wpływ na szerokość \E[?3l(patrz xterm sekwencje kontrolne dla "132 Column Mode (DECCOLM)").
  • Tak się składa, że ​​jest to sekwencja VT100, która została wykorzystana w opisie terminala Xterm X11R5 .
  • Gdy ekran się uruchamia (lub dołącza), na wszelki wypadek inicjuje terminal. To zmienia szerokość terminala.
  • CentOS 6 jest już trochę stary; w obecnym xtermopisie od dłuższego czasu używana jest krótsza sekwencja, która inicjuje więcej rzeczy.
  • Nowsza / krótsza sekwencja wygląda następująco: is2=\E[!p\E[?3;4l\E[4l\E>(zdefiniowana w xterm-basic). \E[!pJest to DECSTR, co kasuje zestawy znaków, kolor i atrybuty wideo. Starsza sekwencja tego nie zrobiła; kazanie screenjej używać działa, ale nie jest tak czyste.
  • Jeśli użyjesz innego TERMustawienia, dostosowanie w nie .screenrcprzyniesie żadnego efektu (ponieważ używa TERMdopasowania do konkretnego ustawienia).
  • W szczególności, jeśli używasz czegoś podobnego xterm-256color, możesz ponownie zauważyć to samo zachowanie.
Thomas Dickey
źródło