I believe the primary mechanism for programs to determine the terminal size these days is the TIOCGWINSZ
ioctl and there is also a SIGWINCH
signal that provides a notification when the size changes. If I remember right the terminal emulator is supposed to use another ioctl, TIOCSWINSZ
to set the correct size on the pty.
You could try running stty -a
to see what the pty thinks its size is. You could also try running the resize
command in the shell to see if that displays the correct size and if it sets the correct size on the pty. I believe this works by sending an escape sequence to the terminal to query the size and then uses the ioctl to set it. This shouldn't be necessary thoguh and even if it works it's not a real solution but might help to narrow down where the issue might be.