2

Я ищу универсальную встроенную команду, которая изменяет размеры терминалов на базе Xterm.

Это какая-то команда, которая не создаст новое окно, и мне не нужно будет включать ее в файл, с которого запускаются эти терминалы.

Я хочу сделать приложение, которое будет открываться в кадре 60x30, но только после запуска команды

myapp run

Я не хочу, чтобы мой терминал всегда открывался с разрешением 30x60, я просто хочу, чтобы он менялся при запуске myapp.

3 ответа3

2

У меня нет Mac, поэтому я не могу попробовать это, но wmctrl - это приложение UNIX, поэтому оно должно работать и для OSX. Попробуйте что-то вроде:

 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

Гравитация может быть одной из (источник):

  • Северо-Запад (1)
  • Север (2),
  • Северо-Восток (3),
  • Запад (4),
  • Центр (5),
  • Восток (6),
  • Юго-Запад (7),
  • Юг (8),
  • Юго-Восток (9)
  • Статический (10).

Гравитация 0 указывает, что оконный менеджер должен использовать гравитацию, указанную в WM_SIZE_HINTS.win_gravity .

2

Существует escape-последовательность ANSI, которую большинство терминалов (включая Terminal.app) должны принимать:

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

При этом размер вашего терминала изменится на 30 строк и 60 столбцов (поменяйте местами 30 и 60, если я неправильно понял размеры, которые вы хотите).

Пока эта строка записывается в терминал, вы можете использовать ее из любого места. Вы можете сделать его частью myapp или создать функцию оболочки в качестве оболочки:

myapp () {
    echo -e "\e[8;30;60t"
    command myapp "$@"
}
0

Вы можете попробовать AppleScript. Вот пример для настройки 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 $@

Это встроенная функция, но вам, возможно, придется выяснить, как провести различие между терминалом и iTerm2. Либо вы знаете, что ваши пользователи хотят использовать, либо вы позволяете им выбирать (или что-то более умное :-)).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .