mirror of
https://github.com/fairyglade/ly.git
synced 2025-12-20 19:24:53 +00:00
Handle termbox2 outside of authentication
Signed-off-by: AnErrupTion <anerruption@disroot.org>
This commit is contained in:
@@ -117,10 +117,6 @@ pub fn authenticate(config: Config, current_environment: Session.Environment, lo
|
|||||||
|
|
||||||
removeUtmpEntry(&entry);
|
removeUtmpEntry(&entry);
|
||||||
|
|
||||||
// Take back control of the TTY
|
|
||||||
_ = interop.termbox.tb_init();
|
|
||||||
_ = interop.termbox.tb_set_output_mode(interop.termbox.TB_OUTPUT_NORMAL);
|
|
||||||
|
|
||||||
if (shared_err.readError()) |err| return err;
|
if (shared_err.readError()) |err| return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -159,9 +155,6 @@ fn startSession(
|
|||||||
// Execute what the user requested
|
// Execute what the user requested
|
||||||
std.posix.chdirZ(pwd.pw_dir.?) catch return error.ChangeDirectoryFailed;
|
std.posix.chdirZ(pwd.pw_dir.?) catch return error.ChangeDirectoryFailed;
|
||||||
|
|
||||||
// Give up control on the TTY
|
|
||||||
_ = interop.termbox.tb_shutdown();
|
|
||||||
|
|
||||||
switch (current_environment.display_server) {
|
switch (current_environment.display_server) {
|
||||||
.wayland => try executeWaylandCmd(pwd.pw_shell.?, config.wayland_cmd, current_environment.cmd),
|
.wayland => try executeWaylandCmd(pwd.pw_shell.?, config.wayland_cmd, current_environment.cmd),
|
||||||
.shell => try executeShellCmd(pwd.pw_shell.?),
|
.shell => try executeShellCmd(pwd.pw_shell.?),
|
||||||
|
|||||||
15
src/main.zig
15
src/main.zig
@@ -648,6 +648,11 @@ pub fn main() !void {
|
|||||||
update = true;
|
update = true;
|
||||||
},
|
},
|
||||||
termbox.TB_KEY_ENTER => {
|
termbox.TB_KEY_ENTER => {
|
||||||
|
try info_line.addMessage(lang.authenticating, config.bg, config.fg);
|
||||||
|
InfoLine.clearRendered(allocator, buffer) catch {};
|
||||||
|
info_line.label.draw();
|
||||||
|
_ = termbox.tb_present();
|
||||||
|
|
||||||
if (config.save) save_last_settings: {
|
if (config.save) save_last_settings: {
|
||||||
var file = std.fs.cwd().createFile(save_path, .{}) catch break :save_last_settings;
|
var file = std.fs.cwd().createFile(save_path, .{}) catch break :save_last_settings;
|
||||||
defer file.close();
|
defer file.close();
|
||||||
@@ -671,10 +676,8 @@ pub fn main() !void {
|
|||||||
const password_text = try allocator.dupeZ(u8, password.text.items);
|
const password_text = try allocator.dupeZ(u8, password.text.items);
|
||||||
defer allocator.free(password_text);
|
defer allocator.free(password_text);
|
||||||
|
|
||||||
try info_line.addMessage(lang.authenticating, config.bg, config.fg);
|
// Give up control on the TTY
|
||||||
InfoLine.clearRendered(allocator, buffer) catch {};
|
_ = termbox.tb_shutdown();
|
||||||
info_line.label.draw();
|
|
||||||
_ = termbox.tb_present();
|
|
||||||
|
|
||||||
session_pid = try std.posix.fork();
|
session_pid = try std.posix.fork();
|
||||||
if (session_pid == 0) {
|
if (session_pid == 0) {
|
||||||
@@ -690,6 +693,10 @@ pub fn main() !void {
|
|||||||
session_pid = -1;
|
session_pid = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Take back control of the TTY
|
||||||
|
_ = termbox.tb_init();
|
||||||
|
_ = termbox.tb_set_output_mode(termbox.TB_OUTPUT_NORMAL);
|
||||||
|
|
||||||
const auth_err = shared_err.readError();
|
const auth_err = shared_err.readError();
|
||||||
if (auth_err) |err| {
|
if (auth_err) |err| {
|
||||||
auth_fails += 1;
|
auth_fails += 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user