LXTerminal 및 XTerm 크기 조정 명령

LXTerminal 및 XTerm 크기 조정 명령

터미널 창 크기를 조정하는 bash 스크립트에서 명령을 실행하고 싶습니다. xterm에서

xterm -geometry=30x30

만들 것입니다새로운xterm 창 및

lxterminal --geometry=30x30

만들 것입니다새로운lx 터미널 창.

새 창을 열지 않고 터미널 크기를 조정할 수 있는 방법이 있습니까? 이는 다음과 같습니다.

if [ $TERMINALTYPE=xterm ]; then
    DASH="-"
else
    DASH="--"
endif

echo -e $TERMINALTYPE" "$DASH"geometry 30x30"

하지만:두 터미널(아마도 vt100 이스케이프 시퀀스)에서 작동하는 멋진 한 줄짜리 명령이 있다면 훨씬 더 좋습니다.

답변1

여기에는 두 가지 단계가 있습니다. 첫째, xterm이 이를 허용하도록 지시해야 합니다. 왜냐하면 기본적으로 호스트된 프로그램의 창 크기 조정 요청을 무시하기 때문입니다. ~/.Xdefaults에 다음을 추가하세요.

xterm*allowWindowOps: true

이를 적용하려면 로그아웃하거나 다음을 실행해야 합니다.

xrdb ~/.Xdefaults

그런 다음 새 xterm을 실행하고 bash 스크립트에서 다음을 실행하세요.

echo -ne "\e[8;30;30t"

답변2

공유하고 싶은 내용:

apt-get install xterm

다음 크기 조정 명령을 사용하십시오.20= 행 수,40= 열 수:

resize -s 20 40

요구 사항에 따라 행과 열의 값을 변경합니다.

답변3

게다가@Paul의 정답:

~/.Xdefaults다음을 실행하여 편집하지 않고 이를 시도해 볼 수 있습니다 .

xterm -xrm 'xterm*allowWindowOps: true'

그런 다음 새 창에서:

printf "\e[8;%d;%dt" $[LINES+5] $[COLUMNS+5]

.Xdefaults또는.Xresources

.Xresources설치에 따라 . 대신에 이를 저장해야 할 수도 있습니다 .Xdefaults.

파일

Xrdb는 자체적으로 파일을 로드하지 않지만 많은 데스크탑 환경에서는 세션 시작 시 파일을 xrdb로드하여 파일 ~/.Xresources에 대한 일반화된 대체 방법으로 리소스 데이터베이스를 초기화하는 데 사용합니다 ~/.Xdefaults.

그러고 나서

sed -e '$axterm*allowWindowOps: true' -i.bak .Xresources 
xrdb <.Xresources

그 다음에...

일부 bind샘플

이것을 실행하거나당신의.bashrc:

# Some bind for 'Shift' + <direction> key and allowWindowOps resource
bind -x '"\e[1;2C"':'printf  "\e[8;%d;%dt" $LINES $((COLUMNS+5))'
bind -x '"\e[1;2D"':'printf  "\e[8;%d;%dt" $LINES $((COLUMNS-5))'
bind -x '"\e[1;2B"':'printf  "\e[8;%d;%dt" $((LINES+3)) $COLUMNS'
bind -x '"\e[1;2A"':'printf  "\e[8;%d;%dt" $((LINES-3)) $COLUMNS'

Shift각각 + Right   ,   Shift+ Left   ,   Shift+ Down   또는   Shift+ 와 함께 사용됩니다.Up

메모: 이렇듯바인드, 이는 대화형 명령 환경에서 작동합니다(또는 아래 vim또는 less진행 read중인 작업이 아님).

관련 정보