Split UI code into ly-ui library

Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
AnErrupTion
2026-03-17 21:44:33 +01:00
parent 93696a6b30
commit 64539f4342
34 changed files with 159 additions and 97 deletions

View File

@@ -0,0 +1,24 @@
const ini = @import("zigini");
const Ini = ini.Ini;
const enums = @import("enums.zig");
const DisplayServer = enums.DisplayServer;
pub const DesktopEntry = struct {
Exec: []const u8 = "",
Name: []const u8 = "",
DesktopNames: ?[]u8 = null,
Terminal: ?bool = null,
};
pub const Entry = struct { @"Desktop Entry": DesktopEntry = .{} };
entry_ini: ?Ini(Entry) = null,
file_name: []const u8 = "",
name: []const u8 = "",
xdg_session_desktop: ?[]const u8 = null,
xdg_desktop_names: ?[]const u8 = null,
cmd: ?[]const u8 = null,
specifier: []const u8 = "",
display_server: DisplayServer = .wayland,
is_terminal: bool = false,

View File

@@ -0,0 +1,28 @@
const std = @import("std");
const SavedUsers = @This();
const User = struct {
username: []const u8,
session_index: usize,
first_run: bool,
allocated_username: bool,
};
user_list: std.ArrayList(User),
last_username_index: ?usize,
pub fn init() SavedUsers {
return .{
.user_list = .empty,
.last_username_index = null,
};
}
pub fn deinit(self: *SavedUsers, allocator: std.mem.Allocator) void {
for (self.user_list.items) |user| {
if (user.allocated_username) allocator.free(user.username);
}
self.user_list.deinit(allocator);
}

7
ly-core/src/enums.zig Normal file
View File

@@ -0,0 +1,7 @@
pub const DisplayServer = enum {
wayland,
shell,
xinitrc,
x11,
custom,
};

View File

@@ -1,10 +1,14 @@
const std = @import("std");
const ini = @import("zigini");
pub const ini = @import("zigini");
pub const interop = @import("interop.zig");
pub const UidRange = @import("UidRange.zig");
pub const LogFile = @import("LogFile.zig");
pub const SharedError = @import("SharedError.zig");
pub const SavedUsers = @import("SavedUsers.zig");
pub const Environment = @import("Environment.zig");
pub const DisplayServer = @import("enums.zig").DisplayServer;
pub fn IniParser(comptime Struct: type) type {
return struct {