feat: restore session
This commit is contained in:
@@ -3,7 +3,7 @@ import { dirname } from "node:path";
|
||||
import { type CanvasRenderingContext2D } from "@napi-rs/canvas";
|
||||
|
||||
import { createBootSequenceUI } from "../bootsequence/questions";
|
||||
import { GREETD_SOCKET, handoffToGreetd } from "../desktop";
|
||||
import { GREETD_SOCKET, handoffToGreetd, KNOWN_SESSIONS_FRIENDLY } from "../desktop";
|
||||
import type { BootsequenceAnswers } from "../types";
|
||||
import { loadImageAsset } from "../renderer/assets";
|
||||
import { parseCli } from "../renderer/cli";
|
||||
@@ -14,6 +14,7 @@ import { createRenderer } from "../renderer/index";
|
||||
import { SDLWindow } from "../renderer/window";
|
||||
import { createRendererRegistry } from "../renderers";
|
||||
import type { RendererInstance, RendererProps } from "../renderers/types";
|
||||
import { clearLock, readLock } from "./lock";
|
||||
|
||||
const BUNVERS = `Bun ${Bun.version} ${process.platform} ${process.arch}`;
|
||||
const DEFAULT_DEBUG_LOG_FILE = "/tmp/device_contact.debug.log";
|
||||
@@ -43,7 +44,10 @@ export async function runDeviceContactUI(argv: string[] = process.argv) {
|
||||
console.debug("[debug] ESTABLISHING CONNECTION");
|
||||
console.debug("[debug]", BUNVERS);
|
||||
|
||||
const isCrashRecovery = !!(cli.crashRecoverySession ?? process.env.CRASH_RECOVERY_SESSION);
|
||||
const crashLock = readLock();
|
||||
|
||||
const crashDesktop = crashLock?.answers?.desktop;
|
||||
const isCrashRecovery = !!(cli.crashRecoverySession ?? process.env.CRASH_RECOVERY_SESSION ?? crashDesktop);
|
||||
const forcedErrorScreen = Boolean(cli.errorScreenRequested);
|
||||
const requestedRenderer = cli.rendererId ?? "device_contact";
|
||||
const defaultRendererId = forcedErrorScreen
|
||||
@@ -98,7 +102,12 @@ export async function runDeviceContactUI(argv: string[] = process.argv) {
|
||||
const viewWidth = 1280;
|
||||
const viewHeight = 960;
|
||||
const uiScale = 0.6;
|
||||
const crashRecoverySession = cli.crashRecoverySession ?? process.env.CRASH_RECOVERY_SESSION;
|
||||
const crashRecoverySession =
|
||||
cli.crashRecoverySession ??
|
||||
process.env.CRASH_RECOVERY_SESSION ??
|
||||
(crashDesktop
|
||||
? KNOWN_SESSIONS_FRIENDLY[crashDesktop] ?? crashDesktop
|
||||
: undefined);
|
||||
|
||||
const renderer = createRenderer({ window });
|
||||
renderer.ctx.imageSmoothingEnabled = false;
|
||||
@@ -110,7 +119,8 @@ export async function runDeviceContactUI(argv: string[] = process.argv) {
|
||||
: "?????",
|
||||
yesLabel: "Yes",
|
||||
noLabel: "No",
|
||||
session: crashRecoverySession
|
||||
session: crashRecoverySession,
|
||||
restoreSession: crashLock ?? undefined
|
||||
},
|
||||
errormessage: {
|
||||
title: cli.errorScreenTitle ?? process.env.ERROR_TITLE ?? "ERROR",
|
||||
@@ -312,6 +322,7 @@ Options:
|
||||
const desktopHint = typeof desktopHintRaw === "string" ? desktopHintRaw : undefined;
|
||||
try {
|
||||
await handoffToGreetd(desktopHint);
|
||||
// clearLock();
|
||||
} catch (error) {
|
||||
console.error("[ui/app] greetd handoff failed\n", error);
|
||||
console.error("[ui/app] Press CTRL+ALT+F[0-9] to switch to a different VT");
|
||||
|
||||
Reference in New Issue
Block a user