TODO: compare sizes of glibc and musl installations need xdg menu maker? adjust required USB stick and RAM size in README do not rely on the RTC - change the message when configuring UTC/localtime to reflect that this is only for offline usage - use ntp to get time - only fall back to using rtc if offline - do not set the RTC make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes - potentially interesting packages - ckbcomp - kbd-data vkpurge old stuff - only keep 2 vkpurgeable kernels - change kernel pre-install hook overview of the installation process at the start overall progress indication (step x out of y) exclude optical drives add bash completion along the line somewhere replace OpenBox with something lighter allow unprivileged users to mount / unmount disks in GUI sessions look into roxterm as an alternative terminal add a zram swap option to package_selections include arandr or something similar in fully featured desktop utils deal with the entropy thing that runs after rc.shutdown add firewall option to package_selections first run message in xinitrc - auto-disables itself - displays README.txt on root dir of the F2FS partition put a README.txt on root dir of F2FS partition add online check to all the selections that need internet sort out /etc/resolv.conf for the chroot set keyboard layout for initramfs refer to creating a new system image as such instead of "backing up" need some sort of notification handler? when installing GUI also install elogind xdg-utils dbus-elogind dbus-elogind-libs dbus-elogind-x11 allow backgrounds only for icewm-fancy when pre-configuring desktop -> check if pipewire installed -> add pipewire, pipewire-pulse, wireplumber -> run IceWM directly if the lighter setup was selected musl downsides: - no nvidia drivers - may be janky in regards to running some Minecraft versions musl upsides: - ?? Stage 1: -> select kb layout -> select installation type (x86_32/x86_64/aarch64, glibc/musl) -> configure time zone -> selection dialog? -> symlink /etc/localtime Stage 2: -> set up user -> ask for username -> run useradd (non-interactively) -> useradd --groups "comma,separated,groups" --create-home --shell /bin/bash $USERNAME -> groups: dialout users wheel -> ?? groups: -> video - Can use GUI? Can use webcam? -> cdrom optical - can listen to CDs? Can watch DVDs? Can mount / unmount CDs/DVDs? -> storage - can mount / unmount disks from GUI? -> scanner - can scan things (for example using XSane?) -> network - can interface with NetworkManager? -> kvm - can run QEMU? -> run passwd (interactively) -> clean up -> mv /mnt/target/etc/sv/agetty-tty1/conf.bak /mnt/target/etc/sv/agetty-tty1/conf -> if [ -f /mnt/target/root/.profile.bak ]; then mv /mnt/target/root/.profile.bak /mnt/target/root/.profile; else rm /mnt/target/root/.profile; fi -> rm -r /opt/void-usb/installer -> build new squashfs image and reboot