make it bootable with UEFI and BIOS? compare sizes of glibc and musl installations try running multiple MC versions on musl need xdg menu maker? ideas: use shell script for init, call real init via exec system lives on squashfs -> overlayfs with tmpfs set up at boot -> new system image generated and written back on shutdown -> user-selectable ("Do you want to save changes to the system? This will take some time.") -> fstrim (if applicable) swap on zram f2fs for home tmpfs for package cache, /tmp, logs? when backing up - do not cross file system boundaries - exclude /tmp, package cache, logs Steps to install: - (user does this:) boot Void installer -> log in as root -> connect to the internet -> download and run install script - preparations: -> update xbps -> install xmirror squashfs-tools -> make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes - select kb layout - set up disk -> select disk from a list -> warn user about formatting and making the USB stick unusable with Windows -> allow user to double check that it’s the USB drive -> wipe and partition disk (new gpt) -> 2M BIOS GRUB -> 268M ESP -> 1G /boot -> rest /container -> format partitions -> ESP FAT32 -> /boot and /container F2FS - mount them things -> set up plain tmpfs as / for now - install base system -> select mirror -> just use xmirror and get the result from the file -> if musl repo, remove that bit from repo url -> select installation type (x86_32/x86_64/aarch64, glibc/musl) -> if musl, add that bit to repo url -> install packages -> linux bash shadow f2fs-tools dosfstools dbus NetworkManager iana-etc iw wpa_supplicant util-linux which tar man-pages iproute2 iputils wifi-firmware traceroute grep gzip file sed gawk less coreutils findutils diffutils pciutils usbutils tzdata base-files ncurses mdocml procps-ng kbd xbps sudo ethtool kmod eudev runit-void removed-packages nano acpid squashfs-tools -> configure XBPS mirror -> configure sudo -> drop a file with "%wheel ALL=(ALL:ALL) ALL" in /etc/sudoers.d/sudo_group -> configure overlayfs setup -> startup script -> shutdown squashfs updater -> rc.shutdown? -> configure fstab -> /boot, /boot/efi -> /home (bind mount) -> NOT /, /container -> configure rc.conf -> keyboard layout -> hardware clock set to UTC? -> configure time zone while we’re at it -> selection dialog? -> symlink /etc/localtime -> configure host name -> configure and install bootloader -> if x86 install for both UEFI and BIOS -> Is there a way we can make this work with 32-bit AND 64-bit EFI at the same time? -> if ARM install only UEFI -> xbps-reconfigure -fa -> prepare 2nd stage installation -> auto login root -> put script in .bashrc -> build squashfs -> (if needed) set up an initramfs with busybox to mount the squashfs/overlayfs at boot time - prompt user to reboot to finish installation - second stage installation -> configure services -> dbus -> NetworkManager -> acpid -> ask user to connect to network using nmtui -> install packages -> setxkbmap xauth xorg-video-drivers mesa mesa-dri xorg-server elogind xorg-input-drivers xrandr acpilight xhost xinit xrdb xinput xgamma xset iceauth sessreg transset xcmsdb xkbutils xmodmap dejavu-fonts-ttf -> terminal? -> browser? -> prism launcher -> java (multiple versions?) -> pipewire (pulsemixer?) -> ask about nvidia driver -> install if needed -> ask whether to use CTWM or IceWM -> short description of up and downsides -> if CTWM, also install -> xclock -> if IceWM, also install -> network-manager-applet -> sound applet -> configure zram swap -> passwd -l root -> populate /etc/skel -> ultimate bashrc bc why not -> first run message in xinitrc -> auto-deletes itself -> displays README.txt on root dir of the F2FS partition -> if using CTWM -> put xclock in xinitrc -> configure more sane defaults -> prepend bashrc with a thing that checks of xorg is running -> if not, run startx and ask user whether to shut down, reboot, or do nothing afterwards -> set up user -> ask for username -> run useradd (non-interactively) -> run passwd (interactively) -> add to groups -> including sudo group -> build new squashfs image and reboot