Предоставляет Hammerspoon возможность создавать локальные и удалённые порты сообщений для межпроцессного взаимодействия.
Наиболее распространённое использование этого модуля — предоставление поддержки командной строки hs, которую можно добавить в вашу оболочку терминала с помощью hs.ipc.cliInstall. Командная строка не будет работать, если модуль hs.ipc не загружен предварительно, поэтому рекомендуется добавить require("hs.ipc") в ваш файл Hammerspoon init.lua (обычно расположенный в ~/.hammerspoon/init.lua), чтобы он всегда был доступен при запуске Hammerspoon.
Этот модуль сильно основан на коде из Mjolnir от Steven Degutis.
Обзор API
Устаревшие - функции API, которые будут удалены в будущих версиях
Получение или установка кодов эскейпа терминала, используемых для создания цветного вывода в командной строке hs.
Параметры
colors - необязательная таблица или явное nil, определяющая цвета для использования при раскрашивании вывода для командной строки. Если вы укажете явное nil, цвета вернутся к значениям по умолчанию. Если вы укажете таблицу, она должна содержать один или несколько из следующих ключей со строкой последовательности ключей терминала в качестве значения:
initial - этот цвет используется для начального заголовка при запуске командной строки и для вывода в консоль Hammerspoon, перенаправляемого на экземпляр. По умолчанию "\27[35m" (передний цвет пурпурный).
input - этот цвет используется для ввода, набираемого пользователем в экземпляр командной строки. По умолчанию "\27[33m" (передний цвет жёлтый).
output - этот цвет используется для вывода, генерируемого командами, выполняемыми внутри экземпляра, и возвращаемых результатов. По умолчанию "\27[36m" (передний цвет голубой).
error - этот цвет используется для ошибок lua, генерируемых командами, выполняемыми внутри экземпляра. По умолчанию "\27[31m" (передний цвет красный).
Возвращаемое значение
таблица, описывающая цвета, используемые при раскрашивании вывода в командной строке hs.
Lua не поддерживает восьмеричные экранирования в строках, поэтому используйте \x1b или \27 для обозначения символа escape, например ipc.cliSetColors{ initial = "", input = "\27[33m", output = "\27[38;5;11m" }
Внесённые изменения с помощью этой функции сохраняются с hs.settings с соответствующими метками и будут сохраняться при перезагрузке или перезапуске Hammerspoon: "ipc.cli.color_initial", "ipc.cli.color_input", "ipc.cli.color_output" и "ipc.cli.color_error"
path - необязательная строка, содержащая путь для установки инструмента. По умолчанию /usr/local
silent - необязательный булевый тип, указывающий, следует ли отображать ошибки в консоли Hammerspoon
Возвращаемое значение
Булево значение, true, если инструмент был успешно установлен, иначе false
Примечания
Если эта функция завершается неудачно, вероятно, у вас есть устаревшие/некорректные символические ссылки. Вы можете использовать hs.ipc.cliUninstall() для принудительной их очистки
Вам может потребоваться предварительно создать /usr/local/bin и /usr/local/share/man/man1 в терминале с помощью sudo и настроить разрешения, чтобы ваш пользовательский аккаунт мог записывать в них
Получение или установка того, сохраняет ли командная строка историю введённых команд.
Параметры
state - необязательный булевый параметр (по умолчанию false), определяющий, должна ли история команд, введённых в командную строку, сохраняться между сеансами.
Возвращаемое значение
текущее, возможно изменённое, значение
Примечания
Если это включено, ваша история сохраняется в hs.configDir .. ".cli.history", что обычно "~/.hammerspoon/.cli.history".
Если у вас несколько запусков командной строки одновременно, сохраняется только история последнего, корректно завершившего работу; это ограничение, связанное с оболочкой readline, предоставленной Apple для libedit, и на данный момент нет известного обходного пути.
Внесённые изменения с помощью этой функции сохраняются с hs.settings с меткой "ipc.cli.saveHistory" и сохраняются при перезагрузке или перезапуске Hammerspoon.
Получение или установка максимального количества команд, сохраняемых при включённом сохранении истории команд в командной строке.
Параметры
size - необязательное целое число (по умолчанию 1000), определяющее максимальное количество команд для сохранения, когда hs.ipc.cliSaveHistory установлено в true.
Возвращаемое значение
текущее, возможно изменённое, значение
Примечания
Если hs.ipc.cliSaveHistory включено, история сохраняется в hs.configDir .. ".cli.history", что обычно "~/.hammerspoon/.cli.history".
Если у вас несколько запусков командной строки одновременно, сохраняется только история последнего, корректно завершившего работу; это ограничение, связанное с оболочкой readline, предоставленной Apple для libedit, и на данный момент нет известного обходного пути.
Внесённые изменения с помощью этой функции сохраняются с hs.settings с меткой "ipc.cli.historyLimit" и сохраняются при перезагрузке или перезапуске Hammerspoon.
path - Необязательная строка, содержащая путь для удаления утилиты. По умолчанию /usr/local
silent - Необязательный булевый параметр, указывающий, нужно ли выводить ошибки в консоль Hammerspoon
Возвращает
Булевое значение, true, если утилита была успешно удалена, иначе false
Примечания
Эта функция раньше была очень осторожной и отказывалась удалять символические ссылки, о которых она не была уверена, но теперь она безусловно удаляет всё, что она находит по пути path/bin/hs и path/share/man/man1/hs.1. Это скорее всего будет полезно в ситуациях, когда эта команда действительно необходима (пожалуйста, откройте вопрос на GitHub, если вы не согласны!)
Отправляет сообщение с удаленного порта на локальный порт
Параметры
data - любой тип данных, который необходимо отправить на локальный порт. Данные будут преобразованы в строковое представление
msgID - целочисленный идентификатор сообщения
waitTimeout - необязательное число, по умолчанию 2.0, представляющее количество секунд, которое метод будет ждать для отправки сообщения, а затем ожидать ответа. Метод *может* блокироваться до дважды этого числа секунд, хотя обычно это будет короче.
oneWay - необязательный булевый параметр, по умолчанию false, указывающий, нужно ли ждать ответа. Если это true, второй возвращаемый аргумент будет nil.
Возвращает
status - булевое значение, указывающее, ответил ли локальный порт до истечения срока ожидания (true) или произошла ошибка или истечение срока ожидания при ожидании ответа (false)
response - ответ с локального порта, обычно строка, но может быть nil, если ответа не было. Если статус false, будет содержать сообщение об ошибке, описывающее ошибку.