用Python调整终端大小?

时间:2011-06-20 23:23:07

标签: python terminal

我无法通过快速Google搜索找到任何内容,也无法在此处找到任何内容,为this保存。但是,它没有做到这一点。那么你是如何用Python调整终端的呢?

2 个答案:

答案 0 :(得分:15)

要更改tty / pty设置,必须在stdin文件描述符上使用ioctl。

import termios
import struct
import fcntl

def set_winsize(fd, row, col, xpix=0, ypix=0):
    winsize = struct.pack("HHHH", row, col, xpix, ypix)
    fcntl.ioctl(fd, termios.TIOCSWINSZ, winsize)

但是要更改实际窗口大小,您可以使用终端转义序列,但并非所有终端都支持或启用该功能。如果你正在使用urxvt,你可以这样做:

import sys
sys.stdout.write("\x1b[8;{rows};{cols}t".format(rows=32, cols=100))

但这可能不适用于所有终端。

答案 1 :(得分:-1)

如果安装xdotool,您可以使用以下内容更改终端窗口的大小:

import subprocess
import shlex

id_cmd='xdotool getactivewindow'
resize_cmd='xdotool windowsize --usehints {id} 100 30'

proc=subprocess.Popen(shlex.split(id_cmd),stdout=subprocess.PIPE)
windowid,err=proc.communicate()
proc=subprocess.Popen(shlex.split(resize_cmd.format(id=windowid)))
proc.communicate()

PS。在Ubuntu xdotool上由一个同名的包提供。

相关问题