summaryrefslogtreecommitdiff
path: root/core/lua/astal/application.lua
diff options
context:
space:
mode:
authorAylur <[email protected]>2024-10-15 01:26:32 +0200
committerAylur <[email protected]>2024-10-15 01:26:32 +0200
commit2f71cd4c08bb4514efe43533e6a5d03535204c29 (patch)
treefc991a12e159ad645187862c90f40731794d6e47 /core/lua/astal/application.lua
parent9fab13452a26ed55c01047d4225f699f43bba20d (diff)
refactor lua and gjs lib
Diffstat (limited to 'core/lua/astal/application.lua')
-rw-r--r--core/lua/astal/application.lua94
1 files changed, 0 insertions, 94 deletions
diff --git a/core/lua/astal/application.lua b/core/lua/astal/application.lua
deleted file mode 100644
index 663a457..0000000
--- a/core/lua/astal/application.lua
+++ /dev/null
@@ -1,94 +0,0 @@
-local lgi = require("lgi")
-local Astal = lgi.require("Astal", "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)
- Astal.write_sock(conn, tostring(response), function(_, res)
- Astal.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
-
- if not app:acquire_socket() then
- return config.client(function(msg)
- return Astal.Application.send_message(self.instance_name, msg)
- end, table.unpack(arg))
- end
-
- self:run(nil)
-end
-
-return app