터미널 창 크기를 조정하는 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
중인 작업이 아님).