Як я можу разом відкривати програми на певному розмірі вікна?


1

Я знайшов це досить жорстким для Google.

Я хочу мати команду (або програму), яка відкриває ці 2 програми саме так я хочу . У цьому випадку я хочу відкрити їх з цими розмірами екрану - більш-менш. Якщо вона повинна бути командою терміналу, чи можна створити ярлик для нього? Я буду створювати більше ярликів для декількох комбінацій розміру app / screen.

My browser and text editor


Ви шукаєте щось на зразок Slate, тут пояснення, як його використовувати: apple.stackexchange.com/a/125674/146294
enzo

Відповіді:


2

Розташуйте вікна так, як ви захочете, а потім запустіть наступний AppleScript для кожного додатка.

tell application "Terminal" to tell window 1 to get bounds

Це поверне межі вікна, наприклад:

{200, 200, 700, 700}

Після того, як ви визначите межі кожного вікна, яке ви бажаєте включити до певного набору вікон, скористайтеся наведеними нижче параметрами.

tell application "Terminal" to tell window 1 to set bounds to {200, 200, 700, 700}

Ви можете використовувати кілька рядків для встановлення кількох меж вікон одночасно.

Як тільки ви задоволені вашим макетом, редактор сценаріїв може зберегти скрипт як додаток (Файл → Експортувати і вибрати Формат файлу: Програма). Це може бути додано до Dock для легкого доступу.


Якщо програма, яку ви намагаєтеся маніпулювати, не є скриптовою, наприклад Sublime Text, ви можете використовувати системні події, щоб повідомити програму. Для цього потрібно ввімкнути керування доступністю в Системних налаштуваннях → Безпека & amp; Конфіденційність → Конфіденційність → Доступність.

Щоб отримати межі вікна програми, яка не є сценарієм, можна використовувати:

tell application "System Events" to tell application process "Sublime Text" to ¬
    get {size, position} of window 1

Це поверне розмір і положення вікна, наприклад:

{{500, 500}, {200, 200}}

Щоб встановити межі не-сценарію, використовуючи результат попереднього коду:

tell application "System Events" to tell application process "Sublime Text" to ¬
    tell window 1 to set {size, position} to {{500, 500}, {200, 200}}

Якщо програма, вікна якої ви намагаєтеся маніпулювати, не відкрита перед запуском цього сценарію, виконайте наведені нижче дії.

tell application "Terminal" to activate

Це можна поєднати з встановленням меж:

tell application "Terminal"
    activate
    tell window 1 to set bounds to {200, 200, 700, 700}
end tell

Затримка не потрібна, оскільки AppleScript буде чекати відкриття програми.


У моєму сценарії те, що мені також потрібно було: do shell script "open -a 'Sublime Text'" (і для Google Chrome) і delay 0.2 щоб активувати вікна (або відкрити програми). Якщо я цього не зробив, я отримаю помилку, що він не міг змінити розмір програми / процесу, оскільки він не був запущений. Мені потрібно було зробити затримку, щоб переконатися, що сценарії оболонки закінчуються, перш ніж змінювати розміри вікон.
Melvin Roest

1
@Melvin Кращий спосіб - сказати програмі "активувати". Для цього не потрібно запускати окремий скрипт, а AppleScript очікує відкриття програми, тому затримка не потрібна, і вона буде чекати стільки часу, скільки потрібно, ніж певна затримка, яка може бути занадто короткою. Див. Редаговану відповідь
grg

Це також працює для не-сценаріїв додатків?
Melvin Roest
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.