pinnacle/api/lua/msg.lua

67 lines
2.4 KiB
Lua
Raw Normal View History

-- This Source Code Form is subject to the terms of the Mozilla Public
-- License, v. 2.0. If a copy of the MPL was not distributed with this
-- file, You can obtain one at https://mozilla.org/MPL/2.0/.
--
-- SPDX-License-Identifier: MPL-2.0
2023-06-27 04:05:29 +02:00
---@meta _
---@class _Msg
2023-07-11 18:59:38 +02:00
---@field SetKeybind { key: Keys, modifiers: Modifier[], callback_id: integer }
2023-06-27 04:05:29 +02:00
---@field SetMousebind { button: integer }
--Windows
2023-07-18 22:12:23 +02:00
---@field CloseWindow { window_id: integer }
---@field ToggleFloating { window_id: integer }
---@field SetWindowSize { window_id: integer, size: integer[] }
---@field MoveWindowToTag { window_id: integer, tag_id: string }
---@field ToggleTagOnWindow { window_id: integer, tag_id: string }
--
2023-06-27 04:05:29 +02:00
---@field Spawn { command: string[], callback_id: integer? }
---@field Request Request
2023-07-01 04:34:07 +02:00
--Tags
---@field ToggleTag { output_name: string, tag_name: string }
---@field SwitchToTag { output_name: string, tag_name: string }
2023-07-18 22:12:23 +02:00
---@field AddTags { output_name: string, tag_names: string[] }
---@field RemoveTags { output_name: string, tag_names: string[] }
2023-07-13 01:50:41 +02:00
---@field SetLayout { output_name: string, tag_name: string, layout: Layout }
2023-07-11 18:59:38 +02:00
--Outputs
---@field ConnectForAllOutputs { callback_id: integer }
2023-06-27 04:05:29 +02:00
---@alias Msg _Msg | "Quit"
2023-07-11 18:59:38 +02:00
--------------------------------------------------------------------------------------------
---@class _Request
--Windows
---@field GetWindowByAppId { app_id: string }
---@field GetWindowByTitle { title: string }
--Outputs
2023-07-18 22:12:23 +02:00
---@field GetOutputByName { output_name: OutputName }
2023-07-11 18:59:38 +02:00
---@field GetOutputsByModel { model: string }
---@field GetOutputsByRes { res: integer[] }
2023-07-18 22:12:23 +02:00
---@field GetTagsByOutput { output_name: string }
---@field GetTagActive { tag_id: TagId }
---@field GetTagName { tag_id: TagId }
2023-07-11 18:59:38 +02:00
---@alias Request _Request | "GetWindowByFocus" | "GetAllWindows" | "GetOutputByFocus"
2023-06-27 04:05:29 +02:00
---@class IncomingMsg
---@field CallCallback { callback_id: integer, args: Args }
2023-07-11 18:59:38 +02:00
---@field RequestResponse { response: RequestResponse }
2023-06-27 04:05:29 +02:00
---@class Args
---@field Spawn { stdout: string?, stderr: string?, exit_code: integer?, exit_msg: string? }
2023-07-11 18:59:38 +02:00
---@field ConnectForAllOutputs { output_name: string }
2023-06-27 04:05:29 +02:00
2023-07-18 22:12:23 +02:00
---@alias WindowId integer
---@alias TagId integer
---@alias OutputName string
2023-06-27 04:05:29 +02:00
---@class RequestResponse
2023-07-18 22:12:23 +02:00
---@field Window { window_id: WindowId|nil }
---@field Windows { window_ids: WindowId[] }
---@field Outputs { output_names: OutputName[] }
---@field Tags { tag_ids: TagId[] }
2023-07-18 19:37:40 +02:00
---@field TagActive { active: boolean }
---@field TagName { name: string }