Spec-Zone.ru › Hammerspoon

hs.grid

Перемещение/изменение размера окон в сетке

Сетка разделяет ваши экраны для управления окнами. По умолчанию сетка имеет 3 столбца и 3 строки. Вы можете задавать разные сетки для разных экранов и/или разрешений.

Окна, которые выровнены с сеткой, описываются как cell. Каждая ячейка - это hs.geometry прямоугольник со следующими полями:

  • x - Столбец левого края окна
  • y - Строка верхнего края окна
  • w - Количество столбцов, занимаемых окном
  • h - Количество строк, занимаемых окном

Для сетки 3x3:

  • ячейка '0,0 1x1' будет в верхнем левом углу
  • ячейка '2,0 1x1' будет в верхнем правом углу
  • и так далее...

Кроме того, предоставляется модальный интерфейс управления с клавиатурой для интерактивного изменения размера с помощью hs.grid.show(); сетка будет наложена на экран фокусированного или активного окна с подсказками для клавиатуры. Чтобы изменить размер/переместить окно, вы можете выбрать угловые ячейки желаемого положения. Для только перемещения вы можете выбрать ячейку и подтвердить нажатием клавиши «return». Выбранная ячейка станет новым верхним левым углом окна. Вы также можете использовать стрелки для перемещения окна на смежные экраны, а клавиши Tab/Shift+Tab для переключения на следующее/предыдущее окно. После выбора ячейки вы можете использовать стрелки для навигации по сетке. В этом случае сетка выделит выбранные ячейки. После выделения достаточного количества ячеек нажмите Enter, чтобы переместить/изменить размер окна на выделенную область.

Обзор API

  • Переменные - Настраиваемые значения
    • HINTS
    • ui
  • Функции - API-вызовы, предлагаемые непосредственно расширением
    • adjustWindow
    • get
    • getCell
    • getGrid
    • getGridFrame
    • hide
    • maximizeWindow
    • pushWindowDown
    • pushWindowLeft
    • pushWindowRight
    • pushWindowUp
    • resizeWindowShorter
    • resizeWindowTaller
    • resizeWindowThinner
    • resizeWindowWider
    • set
    • setGrid
    • setMargins
    • show
    • snap
    • toggleShow

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

Переменные

HINTS
Подпись hs.grid.HINTS
Тип Переменная
Описание

Двумерный массив (таблица таблиц строк), содержащий подсказки для клавиатуры (согласно hs.keycodes.map) для использования в интерактивном интерфейсе изменения размера.

Примечания
  • hs.inspect(hs.grid.HINTS) из консоли покажет вам, как построена таблица
  • hs.grid.show() При отображении интерактивной сетки, если размеры сетки (hs.grid.setGrid()) больше размеров HINTS, Hammerspoon объединяет несколько ячеек таким образом, чтобы размеры интерактивной сетки не превышали размеры HINTS. Это делается для того, чтобы предотвратить исчерпание подсказок для ячеек интерактивной сетки. Интерактивная сетка в итоге имеет ячейки с различной высотой и шириной. Фактическая сетка не затрагивается. Если вы используете API-методы, такие как hs.grid.pushWindowDown(), у вас не возникнет этой проблемы. Если у вас есть сетка с большими размерами и вам нужна интерактивная сетка, точно моделирующая базовую сетку, установите переменную HINTS в таблицу с теми же размерами, что и ваша сетка. Ниже приведён пример сетки с 16 столбцами
hs.grid.setGrid('16x4')
hs.grid.HINTS={
    {'f1', 'f2' , 'f3' , 'f4' , 'f5', 'f6', 'f7', 'f8', 'f9', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16'},
    {'1' , 'f11', 'f15', 'f19', 'f3', '=' , ']' , '2' , '3' , '4'  , '5'  , '6'  , '7'  , '8'  , '9'  , '0'  },
    {'Q' , 'f12', 'f16', 'f20', 'f4', '-' , '[' , 'W' , 'E' , 'R'  , 'T'  , 'Y'  , 'U'  , 'I'  , 'O'  , 'P'  },
    {'A' , 'f13', 'f17', 'f1' , 'f5', 'f7', '\\', 'S' , 'D' , 'F'  , 'G'  , 'H'  , 'J'  , 'K'  , 'L'  , ','  },
    {'X' , 'f14', 'f18', 'f2' , 'f6', 'f8', ';' , '/' , '.' , 'Z'  , 'X'  , 'C'  , 'V'  , 'B'  , 'N'  , 'M'  }
}
Источник extensions/grid/grid.lua строка 601
ui
Подпись hs.grid.ui
Тип Переменная
Описание

Позволяет настроить пользовательский интерфейс модальной сетки для изменения размера.

Источник extensions/grid/grid.lua строка 650

Функции

adjustWindow
Signature hs.grid.adjustWindow(fn, window) -> hs.grid
Type Function
Description

Вызывает указанную пользователем функцию для изменения ячейки окна.

Parameters
  • fn - функция, принимающая в качестве единственного аргумента объект ячейки. Функция должна изменить его по мере необходимости и не возвращать ничего
  • window - объект hs.window для обработки; если опущено, будет использовано активное или переднее окно
Returns
  • модуль hs.grid для цепочки методов
Source extensions/grid/grid.lua строка 372
get
Signature hs.grid.get(win) -> cell
Type Function
Description

Получает ячейку, описывающую окно.

Parameters
  • объект hs.window для получения ячейки
Returns
  • объект ячейки (т.е. прямоугольник hs.geometry), или nil, если произошла ошибка
Source extensions/grid/grid.lua строка 243
getCell
Signature hs.grid.getCell(cell, screen) -> hs.geometry
Type Function
Description

Получает прямоугольник hs.geometry для ячейки на определённом экране.

Parameters
  • cell - объект ячейки, т.е. прямоугольник hs.geometry или аргумент для его построения
  • screen - объект hs.screen или аргумент для hs.screen.find(), где расположена ячейка
Returns
  • прямоугольник hs.geometry для ячейки на определённом экране или nil, если экран не найден
Source extensions/grid/grid.lua строка 266
getGrid
Signature hs.grid.getGrid(screen) -> hs.geometry size
Type Function
Description

Получает заданный размер сетки для заданного экрана или разрешения экрана.

Parameters
  • screen - объект hs.screen или допустимый аргумент для hs.screen.find(), указывающий на экран, сетку которого нужно получить; если опущено или nil, получает стандартную сетку, которая используется, когда для какого-либо экрана/разрешения не найдена конкретная сетка
Returns
  • объект размера hs.geometry, указывающий на количество столбцов и строк в сетке
Notes
  • если сетка не была задана для указанного экрана или геометрии, будет возвращена стандартная сетка

Использование: local mygrid = hs.grid.getGrid('1920x1080') -- получает заданную сетку для всех экранов с разрешением 1920x1080 local defgrid=hs.grid.getGrid() defgrid.w=defgrid.w+2 -- увеличивает количество столбцов в стандартной сетке на 2

Source extensions/grid/grid.lua строка 117
getGridFrame
Signature hs.grid.getGridFrame(screen) -> hs.geometry rect
Type Function
Description

Получает заданную рамку сетки для заданного экрана или разрешения экрана.

Parameters
  • screen - объект hs.screen или допустимый аргумент для hs.screen.find(), указывающий на экран, рамку сетки которого нужно получить
Returns
  • объект прямоугольника hs.geometry , указывающий на рамку, используемую сеткой для данного экрана; если никакая пользовательская рамка не была задана с помощью hs.grid.setGrid(), возвращает рамку экрана
Source extensions/grid/grid.lua строка 154
hide
Signature hs.grid.hide()
Type Function
Description

Скрывает сетку, если она видна, и выходит из модального режима изменения размера.

Parameters
  • None
Returns
  • None
Notes
  • Вызовите эту функцию, если вам нужно убедиться, что модальное окно закрыто без ожидания нажатия пользователем esc.
  • Если при вызове модального интерфейса был предоставлен обратный вызов выхода, вызов .hide() вызовет его
Source extensions/grid/grid.lua строка 207
maximizeWindow
Signature hs.grid.maximizeWindow(window) -> hs.grid
Type Function
Description

Перемещает и изменяет размер окна, чтобы заполнить всю сетку.

Parameters
  • window - объект hs.window для обработки; если опущено, будет использовано активное или переднее окно
Returns
  • модуль hs.grid для цепочки методов
Source extensions/grid/grid.lua строка 400
pushWindowDown
Signature hs.grid.pushWindowDown(window) -> hs.grid
Type Function
Description

Перемещает окно на одну ячейку вниз по экрану или на сетку соседнего экрана при необходимости

Parameters
  • window - объект hs.window, над которым нужно произвести действие; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 515
pushWindowLeft
Signature hs.grid.pushWindowLeft(window) -> hs.grid
Type Function
Description

Перемещает окно на одну ячейку влево по сетке или на сетку соседнего экрана при необходимости

Parameters
  • window - объект hs.window, над которым нужно произвести действие; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 430
pushWindowRight
Signature hs.grid.pushWindowRight(window) -> hs.grid
Type Function
Description

Перемещает окно на одну ячейку вправо, или на сетку соседнего экрана при необходимости

Parameters
  • window - объект hs.window для обработки; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 454
pushWindowUp
Signature hs.grid.pushWindowUp(window) -> hs.grid
Type Function
Description

Перемещает окно на одну ячейку вверх по экрану, или на сетку соседнего экрана при необходимости

Parameters
  • window - объект hs.window для обработки; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 540
resizeWindowShorter
Signature hs.grid.resizeWindowShorter(window) -> hs.grid
Type Function
Description

Изменяет размер окна так, чтобы его нижний край сместился на одну ячейку выше

Parameters
  • window - объект hs.window для обработки; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 564
resizeWindowTaller
Signature hs.grid.resizeWindowTaller(window) -> hs.grid
Type Function
Description

Изменяет размер окна так, чтобы его нижний край сместился на одну ячейку ниже

Parameters
  • window - объект hs.window для обработки; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Notes
  • Если окно достигает нижнего края экрана и его просят сделать выше, его верхний край сместится ещё выше
Source extensions/grid/grid.lua строка 577
resizeWindowThinner
Signature hs.grid.resizeWindowThinner(window) -> hs.grid
Type Function
Description

Уменьшает ширину окна на одну ячейку

Parameters
  • window - объект hs.window для обработки; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 502
resizeWindowWider
Signature hs.grid.resizeWindowWider(window) -> hs.grid
Type Function
Description

Увеличивает ширину окна на одну ячейку

Parameters
  • window - объект hs.window для обработки; если опущен, будет использовано активное или верхнее окно
Returns
  • модуль hs.grid для цепочки вызовов методов
Notes
  • Если окно достигает правого края экрана и его просят сделать шире, его левый край сместится ещё левее
Source extensions/grid/grid.lua строка 479
set
Signature hs.grid.set(win, cell, screen) -> hs.grid
Type Function
Description

Устанавливает ячейку для окна на определённом экране

Parameters
  • win - объект hs.window представляющий окно для обработки
  • cell - объект ячейки, т.е. прямоугольник hs.geometry, или аргумент для его создания, применяемый к окну
  • screen - (опционально) объект hs.screen или аргумент для создания hs.screen.find() представляющий экран, на котором следует разместить окно; если опущен, используется текущий экран окна
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 295
setGrid
Signature hs.grid.setGrid(grid,screen,frame) -> hs.grid
Type Function
Description

Устанавливает размер сетки для заданного экрана или разрешения

Parameters
  • grid - размер сетки hs.geometry, или аргумент для его создания, указывающий на количество столбцов и строк в сетке
  • screen - объект hs.screen или допустимый аргумент для hs.screen.find(), указывающий на экран(ы), к которому(ым) применяется сетка; если опущен или nil, устанавливает сетку по умолчанию, которая используется, когда для любого данного экрана/разрешения не найдена специфическая сетка
  • frame - объект прямоугольника hs.geometry указывающий на рамку, которую будет занимать сетка для данного экрана; если опущен или nil, используется рамка экрана :frame(); используйте этот аргумент, если хотите, например, оставить полосу рабочего стола незакрытой при использовании GeekTool или подобных утилит. Аргумент screen обязательно должен быть не-nil при установке пользовательской рамки сетки.
Returns
  • модуль hs.grid для цепочки вызовов методов
Examples
Source extensions/grid/grid.lua строка 48
setMargins
Signature hs.grid.setMargins(margins) -> hs.grid
Type Function
Description

Устанавливает отступы между окнами

Parameters
  • margins - точка или размер hs.geometry, или аргумент для их создания, указывающий на требуемые отступы между окнами в пунктах экрана
Returns
  • модуль hs.grid для цепочки вызовов методов
Source extensions/grid/grid.lua строка 98
show
Signature hs.grid.show([exitedCallback][, multipleWindows])
Type Function
Description

Отображает сетку и запускает модальный интерактивный процесс изменения размера для активного или верхнего окна.

Parameters
  • exitedCallback - (опционально) функция, которая будет вызвана после того, как пользователь закроет модальное окно
  • multipleWindows - (опционально) если true, сетка изменения размера не будет автоматически скрываться после выбора желаемых ячеек для активного окна; вместо этого она переключится на следующее окно
Returns
  • None
Notes
  • В большинстве случаев эта функция должна вызываться через hs.hotkey.bind с некоторыми сочетаниями клавиш.
  • В модальном интерфейсе используйте стрелки для переключения на соседние экраны; пробел для максимизации/восстановления; Esc для выхода без каких-либо последствий
  • Нажатие tab или shift-tab в модальном интерфейсе переключится на следующее или предыдущее окно; если multipleWindows false или опущен, первое нажатие просто включит режим работы с несколькими окнами
  • Подсказки клавиатуры предполагают раскладку QWERTY; если вы используете другую раскладку, измените hs.grid.HINTS соответственно
  • Если размеры сетки превышают 10x10, вам, возможно, придётся изменить hs.grid.HINTS в зависимости от ваших требований. См. примечание в HINTS
Source extensions/grid/grid.lua строка 187
snap
Подпись hs.grid.snap(win) -> hs.grid
Тип Функция
Описание

Привязывает окно к ближайшим линиям сетки

Параметры
  • win - объект hs.window для привязки
Возвращает
  • модуль hs.grid для цепочки методов
Источник extensions/grid/grid.lua строка 353
toggleShow
Подпись hs.grid.toggleShow([exitedCallback][, multipleWindows])
Тип Функция
Описание

Переключает режим сетки и модальности изменения размера — см. hs.grid.show() и hs.grid.hide()

Параметры
  • exitedCallback - (необязательно) функция, которая будет вызвана после того, как пользователь закроет модальное окно
  • multipleWindows - (необязательно) если true, сетка изменения размера не будет автоматически скрываться после выбора нужных ячеек для активного окна; вместо этого она переключится на следующее окно
Возвращает
  • Ничего
Источник extensions/grid/grid.lua строка 221

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

Spec-Zone.ru

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