Cover Image

Hvordan hindre screen i å endre terminalvindustørrelsen

 Fri 2024-11-29    

Hver gang jeg kobler meg til en kjørende screen-session eller starter en ny, blir terminalvinduet mitt resizet til 80 kolonners bredde. Dette er irriterende og jeg vil ikke ha det sånn.

Fix:

Legg til følgende i /etc/screenrc eller $HOME/.screenrc:

# Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm* 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'

Det kan være du må endre "xterm" til å matche det du har satt i $TERM.

Forklaring:

termcapinfo-linjen setter is (initialization string) for enhver terminal som starter med "xterm", til en sekvens av escape-koder. \E representerer escape og kodene er som følger:

\E[r       - set scrolling region to default (full size of window)
\E[m       - reset all resources (keyboard) to their initial values
\E[2J      - Erase in Display (ED). 2 -> Erase All.
\E[H       - set cursor position to default (1, 1)
\E[?7h     - DEC Private Mode Set. 7 -> Wraparound Mode
\E[?1;4;6l - DEC Private Mode Reset. 1 -> Normal Cursor Keys; 4  -> Jump (Fast) Scroll; 6 -> Normal Cursor Mode

Den erstattede linjen hadde følgende koder:

\E[!p      - Soft terminal reset
\E[?3;4l   - DEC Private Mode Reset. 3 -> 80 Column Mode; 4 -> Jump (Fast) Scroll
\E[4l      - Reset Mode. 4 -> Replace Mode
\E>        - Normal keypad

Lagre filen, resize terminalvinduet til den størrelsen du ønsker og start deretter screen.