Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix: show boot animation + W install prompt in Wayland (cage) mode

Previously the boot animation and install prompt were skipped entirely
when running under cage. Now USB boots always show the install option.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

+21 -4
+21 -4
fedac/native/src/ac-native.c
··· 1306 1306 // Show install option whenever booting from USB (even if already installed — 1307 1307 // user may want to update). Detect USB by checking if boot device is removable. 1308 1308 int show_install = 0; 1309 - if (getpid() == 1 && log_dev[0]) { 1309 + if (log_dev[0]) { 1310 1310 char boot_blk[32] = ""; 1311 1311 get_parent_block(log_dev + 5, boot_blk, sizeof(boot_blk)); 1312 1312 show_install = (boot_blk[0] && is_removable(boot_blk) == 1) ? 1 : 0; 1313 1313 ac_log("[boot-anim] boot_dev=%s parent=%s removable=%d show_install=%d\n", 1314 1314 log_dev, boot_blk, is_removable(boot_blk), show_install); 1315 - } else if (getpid() == 1) { 1315 + } else { 1316 1316 // No log_dev yet — always show install option (user can update or fresh install) 1317 1317 show_install = 1; 1318 1318 ac_log("[boot-anim] no log_dev, show_install=1 (always offer)\n"); ··· 1969 1969 1970 1970 #ifdef USE_WAYLAND 1971 1971 if (is_wayland) { 1972 - // ── Cage session: skip boot animation, install, wifi (parent did all that) ── 1973 - ac_log("[ac-native] Wayland session — skipping boot sequence\n"); 1972 + // ── Cage session ── 1973 + ac_log("[ac-native] Wayland session\n"); 1974 1974 1975 1975 // Input (Wayland path) 1976 1976 if (!headless) 1977 1977 input = input_init_wayland(wayland_display, display->width, display->height, pixel_scale); 1978 + 1979 + // Boot animation with install prompt (same as DRM path) 1980 + audio_boot_beep(audio); 1981 + tts = tts_init(audio); 1982 + int want_install = 0; 1983 + if (!headless) { 1984 + want_install = draw_startup_fade(&graph, screen, display, tts, audio, pixel_scale); 1985 + if (!want_install) 1986 + draw_boot_status(&graph, screen, display, "starting...", pixel_scale); 1987 + } 1988 + if (want_install) { 1989 + int install_ok = auto_install_to_hd(&graph, screen, display, pixel_scale); 1990 + if (display) { 1991 + int should_reboot = draw_install_reboot_prompt(&graph, screen, display, input, tts, audio, install_ok, pixel_scale); 1992 + if (should_reboot) { system("reboot -f"); _exit(0); } 1993 + } 1994 + } 1978 1995 1979 1996 // WiFi is already running from parent — just connect to it 1980 1997 if (!wifi_disabled)