Use Lua as a config file language (#1010)

## What are the changes about?

Adds zlua for running Lua code as the configuration file.
Missing as of this time:
- ~~Parsing custom binds and labels~~
- ~~Fix memory leaks~~
- ~~Investigate issue with animation colours~~
- ~~Add examples and default config~~

## What existing issue does this resolve?

[#976](https://codeberg.org/fairyglade/ly/issues/976)

## Pre-requisites

- [ ] I have tested & confirmed the changes work locally
- [ ] I have run `zig fmt` throughout my changes

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/1010
Reviewed-by: AnErrupTion <anerruption+codeberg@disroot.org>
This commit is contained in:
Titanium Brain
2026-08-24 15:35:01 +02:00
committed by AnErrupTion
parent 882815343f
commit b9742203ee
12 changed files with 833 additions and 39 deletions

View File

@@ -127,7 +127,7 @@ fn installLy(allocator: std.mem.Allocator, io: std.Io, patch_map: PatchMap, inst
defer config_dir.close(io);
if (install_config) {
const patched_config = try patchFile(allocator, io, "res/config.ini", patch_map);
const patched_config = try patchFile(allocator, io, "res/config.lua", patch_map);
defer allocator.free(patched_config);
try installText(io, patched_config, config_dir, ly_config_directory, "config.ini", .{});
@@ -135,10 +135,10 @@ fn installLy(allocator: std.mem.Allocator, io: std.Io, patch_map: PatchMap, inst
try installFile(io, "res/startup.sh", config_dir, ly_config_directory, "startup.sh", .{ .permissions = .fromMode(0o755) });
}
const patched_example_config = try patchFile(allocator, io, "res/config.ini", patch_map);
const patched_example_config = try patchFile(allocator, io, "res/config.lua", patch_map);
defer allocator.free(patched_example_config);
try installText(io, patched_example_config, config_dir, ly_config_directory, "config.ini.example", .{});
try installText(io, patched_example_config, config_dir, ly_config_directory, "config.lua.example", .{});
const patched_setup = try patchFile(allocator, io, "res/setup.sh", patch_map);
defer allocator.free(patched_setup);