From bafd48d3df9b43a1d49ec015eff30619d595468b Mon Sep 17 00:00:00 2001 From: Aylur Date: Tue, 15 Oct 2024 13:25:45 +0000 Subject: update lua and gjs layout installing the gjs package through meson or npm now results in the same exposed structure lua: fix rockspec docs: aur package --- lang/lua/astal/gtk3/app.lua | 96 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 lang/lua/astal/gtk3/app.lua (limited to 'lang/lua/astal/gtk3/app.lua') diff --git a/lang/lua/astal/gtk3/app.lua b/lang/lua/astal/gtk3/app.lua new file mode 100644 index 0000000..7895f69 --- /dev/null +++ b/lang/lua/astal/gtk3/app.lua @@ -0,0 +1,96 @@ +local lgi = require("lgi") +local Astal = lgi.require("Astal", "3.0") +local AstalIO = lgi.require("AstalIO", "0.1") + +local AstalLua = Astal.Application:derive("AstalLua") +local request_handler + +function AstalLua:do_request(msg, conn) + if type(request_handler) == "function" then + request_handler(msg, function(response) + AstalIO.write_sock(conn, tostring(response), function(_, res) + AstalIO.write_sock_finish(res) + end) + end) + else + Astal.Application.do_request(self, msg, conn) + end +end + +function AstalLua:quit(code) + Astal.Application.quit(self) + os.exit(code) +end + +local app = AstalLua() + +---@class StartConfig +---@field icons? string +---@field instance_name? string +---@field gtk_theme? string +---@field icon_theme? string +---@field cursor_theme? string +---@field css? string +---@field hold? boolean +---@field request_handler? fun(msg: string, response: fun(res: any)) +---@field main? fun(...): unknown +---@field client? fun(message: fun(msg: string): string, ...): unknown + +---@param config StartConfig | nil +function Astal.Application:start(config) + if config == nil then + config = {} + end + + if config.client == nil then + config.client = function() + print('Astal instance "' .. app.instance_name .. '" is already running') + os.exit(1) + end + end + + if config.hold == nil then + config.hold = true + end + + request_handler = config.request_handler + + if config.css then + self:apply_css(config.css) + end + if config.icons then + self:add_icons(config.icons) + end + if config.instance_name then + self.instance_name = config.instance_name + end + if config.gtk_theme then + self.gtk_theme = config.gtk_theme + end + if config.icon_theme then + self.icon_theme = config.icon_theme + end + if config.cursor_theme then + self.cursor_theme = config.cursor_theme + end + + app.on_activate = function() + if type(config.main) == "function" then + config.main(table.unpack(arg)) + end + if config.hold then + self:hold() + end + end + + local _, err = app:acquire_socket() + if err ~= nil then + return config.client(function(msg) + return AstalIO.send_message(self.instance_name, msg) + end, table.unpack(arg)) + end + + self:run(nil) +end + +return app -- cgit v1.2.3 From 4dd0b1840d343dc65f1c781c3d6b8731b6e79eda Mon Sep 17 00:00:00 2001 From: Kevin Date: Sun, 13 Oct 2024 12:57:37 -0300 Subject: core: lua compat 5.1/5.4/luajit --- lang/lua/astal/gtk3/app.lua | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'lang/lua/astal/gtk3/app.lua') diff --git a/lang/lua/astal/gtk3/app.lua b/lang/lua/astal/gtk3/app.lua index 7895f69..13347c3 100644 --- a/lang/lua/astal/gtk3/app.lua +++ b/lang/lua/astal/gtk3/app.lua @@ -5,6 +5,15 @@ local AstalIO = lgi.require("AstalIO", "0.1") local AstalLua = Astal.Application:derive("AstalLua") local request_handler +local function unpack(t, i) + i = i or 1 + if t[i] == nil then + return nil + else + return t[i], unpack(t, i + 1) + end +end + function AstalLua:do_request(msg, conn) if type(request_handler) == "function" then request_handler(msg, function(response) @@ -76,7 +85,7 @@ function Astal.Application:start(config) app.on_activate = function() if type(config.main) == "function" then - config.main(table.unpack(arg)) + config.main(unpack(arg)) end if config.hold then self:hold() @@ -86,8 +95,13 @@ function Astal.Application:start(config) local _, err = app:acquire_socket() if err ~= nil then return config.client(function(msg) +<<<<<<< HEAD:lang/lua/astal/gtk3/app.lua return AstalIO.send_message(self.instance_name, msg) end, table.unpack(arg)) +======= + return Astal.Application.send_message(self.instance_name, msg) + end, unpack(arg)) +>>>>>>> 18df91b (core: lua compat 5.1/5.4/luajit):core/lua/astal/application.lua end self:run(nil) -- cgit v1.2.3 From 9e255738f835c0e47cc6ae4d0cfbb96a261b4a2f Mon Sep 17 00:00:00 2001 From: Kevin Date: Mon, 14 Oct 2024 10:27:57 -0300 Subject: core: table.unpack compat in lua, fix typo in astal/init.lua --- lang/lua/astal/gtk3/app.lua | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) (limited to 'lang/lua/astal/gtk3/app.lua') diff --git a/lang/lua/astal/gtk3/app.lua b/lang/lua/astal/gtk3/app.lua index 13347c3..7895f69 100644 --- a/lang/lua/astal/gtk3/app.lua +++ b/lang/lua/astal/gtk3/app.lua @@ -5,15 +5,6 @@ local AstalIO = lgi.require("AstalIO", "0.1") local AstalLua = Astal.Application:derive("AstalLua") local request_handler -local function unpack(t, i) - i = i or 1 - if t[i] == nil then - return nil - else - return t[i], unpack(t, i + 1) - end -end - function AstalLua:do_request(msg, conn) if type(request_handler) == "function" then request_handler(msg, function(response) @@ -85,7 +76,7 @@ function Astal.Application:start(config) app.on_activate = function() if type(config.main) == "function" then - config.main(unpack(arg)) + config.main(table.unpack(arg)) end if config.hold then self:hold() @@ -95,13 +86,8 @@ function Astal.Application:start(config) local _, err = app:acquire_socket() if err ~= nil then return config.client(function(msg) -<<<<<<< HEAD:lang/lua/astal/gtk3/app.lua return AstalIO.send_message(self.instance_name, msg) end, table.unpack(arg)) -======= - return Astal.Application.send_message(self.instance_name, msg) - end, unpack(arg)) ->>>>>>> 18df91b (core: lua compat 5.1/5.4/luajit):core/lua/astal/application.lua end self:run(nil) -- cgit v1.2.3