Bash Resize Terminal Xterm

2

Eu estou procurando um comando embutido universal que redimensione os terminais baseados em Xterm.

Este é um tipo de comando que não cria uma nova janela, que não precisarei incluir no arquivo que estes terminais iniciam.

Eu quero criar um aplicativo que abra em um quadro de 60 x 30, mas somente depois de executar o comando

myapp run

Eu não quero que meu terminal abra sempre em 30x60, eu só quero que ele seja redimensionado quando eu executar o myapp.

    
por Blue Ice 31.03.2013 / 16:36

3 respostas

2

Eu não tenho um Mac, então não posso tentar isso, mas o wmctrl é um aplicativo do UNIX, então < em> deve funcionar para o OSX também. Tente algo como:

 wmctrl -r :ACTIVE: -e 5,-1,-1,660,540
        -----------   -- -- -- --- ---
             |         | |  |   |   |---> Window height
             |         | |  |   |-------> Window width             
             |         | |  |-----------> Window Y coordinates
             |         | |--------------> Window X coordinates
             |         |----------------> Gravity
             |--------------------------> Apply to the active window

A gravidade pode ser uma das fonte :

  • NorthWest (1)
  • North (2),
  • NorthEast (3),
  • West (4),
  • Center (5),
  • East (6),
  • SouthWest (7),
  • South (8),
  • SouthEast (9)
  • Static (10).

A gravity of 0 indicates that the Window Manager should use the gravity specified in WM_SIZE_HINTS.win_gravity.

    
por 31.03.2013 / 17:38
2

Existe uma sequência de escape ANSI que a maioria dos terminais (incluindo o Terminal.app) deve aceitar:

$ echo -e "\e[8;30;60t"

Isso redimensionará seu terminal para ter 30 linhas e 60 colunas (troque as 30 e as 60 se eu tiver entendido mal as dimensões que você quer).

Contanto que essa string seja gravada no terminal, você poderá usá-la em qualquer lugar. Você pode torná-lo parte de myapp ou criar uma função de shell como um wrapper:

myapp () {
    echo -e "\e[8;30;60t"
    command myapp "$@"
}
    
por 01.04.2013 / 20:27
0

Você pode experimentar o AppleScript. Aqui um exemplo para tun vim:

#!/bin/sh 
# Script runvim.sh
osascript  <<EOF
tell app "Terminal"
  set number of rows of first window to 34
  set number of columns of first window to 96
  set custom title of first window to "vim"
end tell
EOF
vim $@

Isso é embutido, mas você pode ter que descobrir como diferenciar entre o Terminal e o iTerm2. Ou você sabe o que seus usuários querem usar ou você os deixa escolher (ou algo mais inteligente: -)).

    
por 01.04.2013 / 15:18