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

筆記: 正如這在綁定,這將在互動式命令環境中工作(也稱為不在vimnor下lessread任何正在進行的工作)

相關內容