Spec-Zone.ru › Hammerspoon

hs.layout

Управляющий макетом окна

Это расширение позволяет вам одновременно изменять расположение/размер нескольких окон.

Обзор API

  • Константы - полезные значения, которые нельзя изменить
    • left25
    • left30
    • left50
    • left70
    • left75
    • максимизированное
    • right25
    • right30
    • right50
    • right70
    • right75
  • Функции - вызовы API, предлагаемые напрямую расширением
    • применить

Документация API

Константы

left25
Подпись hs.layout.left25
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в левой части экрана на 25%.

Источник extensions/layout/layout.lua строка 14
left30
Подпись hs.layout.left30
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в левой части экрана на 30%.

Источник extensions/layout/layout.lua строка 19
left50
Подпись hs.layout.left50
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в левой части экрана на 50%.

Источник extensions/layout/layout.lua строка 24
left70
Подпись hs.layout.left70
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в левой части экрана на 70%.

Источник extensions/layout/layout.lua строка 29
left75
Подпись hs.layout.left75
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в левой части экрана на 75%.

Источник extensions/layout/layout.lua строка 34
максимизированное
Подпись hs.layout.maximized
Тип Константа
Описание

Прямоугольник единицы, который разместит окно на весь экран.

Источник extensions/layout/layout.lua строка 64
right25
Подпись hs.layout.right25
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в правой части экрана на 25%.

Источник extensions/layout/layout.lua строка 39
right30
Подпись hs.layout.right30
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в правой части экрана на 30%.

Источник extensions/layout/layout.lua строка 44
right50
Подпись hs.layout.right50
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в правой части экрана на 50%.

Источник extensions/layout/layout.lua строка 49
right70
Подпись hs.layout.right70
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в правой части экрана на 70%.

Источник extensions/layout/layout.lua строка 54
right75
Подпись hs.layout.right75
Тип Константа
Описание

Прямоугольник единицы, который разместит окно в правой части экрана на 75%.

Источник extensions/layout/layout.lua строка 59

Функции

применить
Подпись hs.layout.apply(table[, windowTitleComparator])
Тип Функция
Описание

Применяет макет к приложениям/окнам

Параметры
  • таблица - Таблица, описывающая желаемый макет. Каждый элемент в таблице должен быть другой таблицей, описывающей набор окон для сопоставления и их желаемого размера/позиции. Поля в каждой из этих таблиц:
    • Строка, содержащая имя приложения, или объект hs.application, или nil
    • Строка, содержащая заголовок окна, или объект hs.window, или функция, или nil
    • Строка, содержащая имя экрана, или объект hs.screen, или функция, которая не принимает параметров и возвращает объект hs.screen, или nil для выбора первого доступного экрана
    • Прямоугольник единицы или функция, которая вызывается для каждого окна и возвращает прямоугольник единицы (см. hs.window.moveToUnit()). Функция должна принимать один параметр, который является объектом окна.
    • Прямоугольник кадра или функция, которая вызывается для каждого окна и возвращает прямоугольник кадра (см. hs.screen:frame()). Функция должна принимать один параметр, который является объектом окна.
    • Прямоугольник полноэкранного кадра или функция, которая вызывается для каждого окна и возвращает прямоугольник полноэкранного кадра (см. hs.screen:fullFrame()). Функция должна принимать один параметр, который является объектом окна.
  • windowTitleComparator - (необязательно) Функция для использования при сравнении заголовков окон. Она вызывается с двумя строковыми аргументами (ниже) и ее возвращаемое значение оценивается как логическое значение. Если компаратор не указан, используется оператор '=='
    • windowTitle: :title() объекта окна, которое проверяется
    • layoutWindowTitle: Строка заголовка окна (второе поле), указанная в каждом элементе таблицы макета
    • Необязательный конечный элемент, ключ "options" и значение таблицы, которое может содержать следующие ключи: * absolute_x: логическое значение, указывающее, что значение x в прямоугольнике кадра выше является абсолютной координатой (полезно для отрицательных абсолютных координат) * absolute_y: логическое значение, указывающее, что значение y в прямоугольнике кадра выше является абсолютной координатой (полезно для отрицательных абсолютных координат)
Возвращает
  • Ничего
Примечания
  • Если аргумент имени приложения имеет значение nil, заголовки окон будут сопоставляться независимо от приложения, к которому они относятся.

  • Если аргумент заголовка окна имеет значение nil, будут сопоставляться все окна указанного приложения.

  • Если аргумент заголовка окна является функцией, функция будет вызываться с аргументом имени приложения (который может иметь значение nil) и должна возвращать таблицу объектов hs.window (даже если окно только одно, оно должно быть в таблице).

  • Можно указать как имя приложения, так и заголовок окна, если нужно сопоставить только одно окно определенного приложения.

  • Если не указано ни имя приложения, ни заголовок окна, окна сопоставляться не будут :)

  • Имя монитора - строка, как в hs.screen:name() или hs.screen:getUUID(). Можно также передать объект hs.screen, или функцию, которая возвращает объект hs.screen . Если передать nil, будет выбран первый экран.

  • Последние три аргумента используют объекты hs.geometry.rect() для описания желаемой позиции и размера сопоставленных окон:

    • Прямоугольник единицы будет передан в hs.window.moveToUnit()
    • Прямоугольник кадра будет передан в hs.window.setFrame() (включая строку меню и док-панель)
    • Прямоугольник полноэкранного кадра будет передан в hs.window.setFrame() (без учета строки меню и док-панели)
  • Если компоненты x или y прямоугольника кадра/полноэкранного кадра отрицательны, они будут применены как смещения относительно противоположного края экрана (например, если x равен -100, то левый край окна будет на 100 пикселей от правого края экрана).

  • Для любого сопоставленного окна будет применено только одно из аргументов прямоугольника. Если указано несколько аргументов, то будет применено первое.

  • Пример использования:

    layout1 = {
        {"Mail", nil, "Color LCD", hs.layout.maximized, nil, nil},
        {"Safari", nil, "Thunderbolt Display", hs.layout.maximized, nil, nil},
        {"iTunes", "iTunes", "Color LCD", hs.layout.maximized, nil, nil},
        {"iTunes", "MiniPlayer", "Color LCD", nil, nil, hs.geometry.rect(0, -48, 400, 48)},
      }```
    
  • Пример функции, которая хорошо подходит в качестве windowTitleComparator - это встроенная в Lua функция string.match, использующая Lua-шаблоны для сопоставления строк.

Источник extensions/layout/layout.lua строка 69

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.layout.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API