Compare commits
	
		
			3 Commits 
		
	
	
		
			d7629049d6
			...
			782cabf545
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  BodgeMaster | 782cabf545 | |
|  BodgeMaster | 6b620664df | |
|  BodgeMaster | c4441aab07 | 
|  | @ -1,6 +1,7 @@ | ||||||
| #!/usr/bin/env bash | #!/usr/bin/env bash | ||||||
| 
 | 
 | ||||||
| LOGFILE=/tmp/void-usb-install-log | LOGFILE=/tmp/void-usb-install-log | ||||||
|  | GIT_REPO_BASE="https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master" | ||||||
| 
 | 
 | ||||||
| function press_any_key { | function press_any_key { | ||||||
|   echo "Press any key to continue or Ctrl+c to abort..." |   echo "Press any key to continue or Ctrl+c to abort..." | ||||||
|  | @ -213,6 +214,7 @@ mkdir -p /mnt/target/var/db/xbps/keys >> $LOGFILE 2>&1 | ||||||
| cp /var/db/xbps/keys/* /mnt/target/var/db/xbps/keys/ >> $LOGFILE 2>&1 | cp /var/db/xbps/keys/* /mnt/target/var/db/xbps/keys/ >> $LOGFILE 2>&1 | ||||||
| echo "done" | echo "done" | ||||||
| 
 | 
 | ||||||
|  | clear | ||||||
| echo "The next step is installing packages for base system components. | echo "The next step is installing packages for base system components. | ||||||
| Depending on your internet connection, your USB stick, and the phase of the moon, this may take a while. | Depending on your internet connection, your USB stick, and the phase of the moon, this may take a while. | ||||||
| The XBPS log will be displayed for this step. | The XBPS log will be displayed for this step. | ||||||
|  | @ -247,20 +249,20 @@ omit_dracutmodules+=" nvdimm resume "' > /mnt/target/etc/dracut.conf.d/99-void-u | ||||||
| echo -n "Adding dracut module void-usb... " | echo -n "Adding dracut module void-usb... " | ||||||
| mkdir -p /mnt/target/lib/dracut/modules.d/90void-usb >> $LOGFILE 2>&1 | mkdir -p /mnt/target/lib/dracut/modules.d/90void-usb >> $LOGFILE 2>&1 | ||||||
| chmod 755 /mnt/target/lib/dracut/modules.d/90void-usb >> $LOGFILE 2>&1 | chmod 755 /mnt/target/lib/dracut/modules.d/90void-usb >> $LOGFILE 2>&1 | ||||||
| wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/module-setup.sh https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/dracut-modules/90void-usb/module-setup.sh >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/module-setup.sh "$GIT_REPO_BASE/dracut-modules/90void-usb/module-setup.sh" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/module-setup.sh >> $LOGFILE 2>&1 | chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/module-setup.sh >> $LOGFILE 2>&1 | ||||||
| wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/create-loop0.sh https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/dracut-modules/90void-usb/create-loop0.sh >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/create-loop0.sh "$GIT_REPO_BASE/dracut-modules/90void-usb/create-loop0.sh" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/create-loop0.sh >> $LOGFILE 2>&1 | chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/create-loop0.sh >> $LOGFILE 2>&1 | ||||||
| wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/squashfs-img.sh https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/dracut-modules/90void-usb/squashfs-img.sh >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/squashfs-img.sh "$GIT_REPO_BASE/dracut-modules/90void-usb/squashfs-img.sh" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/squashfs-img.sh >> $LOGFILE 2>&1 | chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/squashfs-img.sh >> $LOGFILE 2>&1 | ||||||
| wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/overlay.sh https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/dracut-modules/90void-usb/overlay.sh >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/lib/dracut/modules.d/90void-usb/overlay.sh "$GIT_REPO_BASE/dracut-modules/90void-usb/overlay.sh" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/overlay.sh >> $LOGFILE 2>&1 | chmod 744 /mnt/target/lib/dracut/modules.d/90void-usb/overlay.sh >> $LOGFILE 2>&1 | ||||||
| echo "done" | echo "done" | ||||||
| 
 | 
 | ||||||
| echo -n "Adding file system helper... " | echo -n "Adding file system helper... " | ||||||
| mkdir -p /mnt/target/opt/void-usb >> $LOGFILE 2>&1 | mkdir -p /mnt/target/opt/void-usb >> $LOGFILE 2>&1 | ||||||
| chmod 755 /mnt/target/opt/void-usb >> $LOGFILE 2>&1 | chmod 755 /mnt/target/opt/void-usb >> $LOGFILE 2>&1 | ||||||
| wget --output-document=/mnt/target/opt/void-usb/backup-fs https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/opt/backup-fs >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/opt/void-usb/backup-fs "$GIT_REPO_BASE/opt/backup-fs" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/opt/void-usb/backup-fs >> $LOGFILE 2>&1 | chmod 744 /mnt/target/opt/void-usb/backup-fs >> $LOGFILE 2>&1 | ||||||
| echo " | echo " | ||||||
| /opt/void-usb/backup-fs" >> /mnt/target/etc/rc.shutdown | /opt/void-usb/backup-fs" >> /mnt/target/etc/rc.shutdown | ||||||
|  | @ -369,16 +371,16 @@ run_in_target grub-install --target=x86_64-efi --boot-directory=/boot/efi/LOADER | ||||||
| echo "done" | echo "done" | ||||||
| 
 | 
 | ||||||
| echo -n "Adding grub-config helper... " | echo -n "Adding grub-config helper... " | ||||||
| wget --output-document=/mnt/target/opt/void-usb/grub-config https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/opt/grub-config >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/opt/void-usb/grub-config "$GIT_REPO_BASE/opt/grub-config" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/opt/void-usb/grub-config >> $LOGFILE 2>&1 | chmod 744 /mnt/target/opt/void-usb/grub-config >> $LOGFILE 2>&1 | ||||||
| echo "done" | echo "done" | ||||||
| 
 | 
 | ||||||
| echo -n "Adding kernel hooks... " | echo -n "Adding kernel hooks... " | ||||||
| wget --output-document=/mnt/target/etc/kernel.d/pre-install/99-void-usb https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/kernel.d/pre-install/99-void-usb >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/etc/kernel.d/pre-install/99-void-usb "$GIT_REPO_BASE/kernel.d/pre-install/99-void-usb" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/etc/kernel.d/pre-install/99-void-usb >> $LOGFILE 2>&1 | chmod 744 /mnt/target/etc/kernel.d/pre-install/99-void-usb >> $LOGFILE 2>&1 | ||||||
| wget --output-document=/mnt/target/etc/kernel.d/post-install/99-void-usb https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/kernel.d/post-install/99-void-usb >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/etc/kernel.d/post-install/99-void-usb "$GIT_REPO_BASE/kernel.d/post-install/99-void-usb" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/etc/kernel.d/post-install/99-void-usb >> $LOGFILE 2>&1 | chmod 744 /mnt/target/etc/kernel.d/post-install/99-void-usb >> $LOGFILE 2>&1 | ||||||
| wget --output-document=/mnt/target/etc/kernel.d/post-remove/99-void-usb https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/kernel.d/post-remove/99-void-usb >> $LOGFILE 2>&1 | wget --output-document=/mnt/target/etc/kernel.d/post-remove/99-void-usb "$GIT_REPO_BASE/kernel.d/post-remove/99-void-usb" >> $LOGFILE 2>&1 | ||||||
| chmod 744 /mnt/target/etc/kernel.d/post-remove/99-void-usb >> $LOGFILE 2>&1 | chmod 744 /mnt/target/etc/kernel.d/post-remove/99-void-usb >> $LOGFILE 2>&1 | ||||||
| echo "done" | echo "done" | ||||||
| 
 | 
 | ||||||
|  | @ -387,14 +389,29 @@ run_in_target xbps-reconfigure -fa >> $LOGFILE 2>&1 | ||||||
| echo "done" | echo "done" | ||||||
| 
 | 
 | ||||||
| echo -n "Adding stage 2 installer... " | echo -n "Adding stage 2 installer... " | ||||||
| wget --output-document=/mnt/target/install-stage2.sh https://lostcave.ddnss.de/git/BodgeMaster/void-minecraft-usb/raw/branch/master/install-stage2.sh >> $LOGFILE 2>&1 | 
 | ||||||
| chmod 744 /mnt/target/install-stage2.sh >> $LOGFILE 2>&1 | STAGE2_DIR="/mnt/target/opt/void-usb/installer" | ||||||
| echo "menuentry 'Continue Void-USB Installation' { | function get_stage2_file { | ||||||
|   echo    'Loading Linux...' |   [ -d "$STAGE2_DIR/$(dirname $1)" ] || mkdir -p "$STAGE2_DIR/$(dirname $1)" | ||||||
|   linux   $(run_in_target find /boot -type l -name "vmlinu*") quiet root=/dev/loop0 ro void-usb-container=UUID=$(lsblk --raw --noheadings --output UUID "$TARGET_PART_BIG") init=/install-stage2.sh |   wget --output-document="$STAGE2_DIR/$1" "$GIT_REPO_BASE/$1" >> $LOGFILE 2>&1 | ||||||
|   echo    'Loading initial ramdisk...' | } | ||||||
|   initrd  $(run_in_target find /boot -type l -name "init*") | 
 | ||||||
| }" >> /mnt/target/boot/efi/LOADER/grub/custom_before.cfg | get_stage2_file install-stage2.sh >> $LOGFILE 2>&1 | ||||||
|  | chmod 744 "$STAGE2_DIR/install-stage2.sh" >> $LOGFILE 2>&1 | ||||||
|  | 
 | ||||||
|  | get_stage2_file package_selections/sections.lst | ||||||
|  | readarray -t SECTIONS < "$STAGE2_DIR/package_selections/sections.lst" | ||||||
|  | for I in ${!SECTIONS[@]}; do | ||||||
|  |   get_stage2_file "package_selections/${SECTIONS[$I]}/description.txt" | ||||||
|  | 
 | ||||||
|  |   get_stage2_file "package_selections/${SECTIONS[$I]}/options.lst" | ||||||
|  |   readarray -t OPTIONS < "$STAGE2_DIR/package_selections/${SECTIONS[$I]}/options.lst" | ||||||
|  |   for J in ${!OPTIONS[@]}; do | ||||||
|  |     get_stage2_file "package_selections/${SECTIONS[$I]}/${OPTIONS[$J]}" | ||||||
|  |   done | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | #TODO: auto-login root and run install stage 2 | ||||||
| echo "done" | echo "done" | ||||||
| 
 | 
 | ||||||
| echo "Creating system image..." | echo "Creating system image..." | ||||||
|  |  | ||||||
|  | @ -9,12 +9,20 @@ do not rely on the RTC | ||||||
|     - only fall back to using rtc if offline |     - only fall back to using rtc if offline | ||||||
|   - do not set the RTC |   - do not set the RTC | ||||||
| show user-friendly status instead of scrolling output from all sorts of tools | show user-friendly status instead of scrolling output from all sorts of tools | ||||||
| shutdown squashfs updater can’t get user input!? |  | ||||||
| make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes | make our own or extract (if feasible) kb selection and time zone selection to hijack them for our purposes | ||||||
| vkpurge old stuff - only keep 2 vkpurgeable kernels | vkpurge old stuff - only keep 2 vkpurgeable kernels | ||||||
|   - should probably not be done in a kernel hook |   - change kernel pre-install hook | ||||||
| overview of the installation process at the start | overview of the installation process at the start | ||||||
| overall progress indication (step x out of y) | overall progress indication (step x out of y) | ||||||
|  | exclude optical drives | ||||||
|  | add newline after yesno (also in backup script) | ||||||
|  | add bash completion along the line somewhere | ||||||
|  | test that OpenBox is actually lighter than IceWM - or replace it with something that is | ||||||
|  | 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 | ||||||
| 
 | 
 | ||||||
| musl downsides: | musl downsides: | ||||||
|   - no nvidia drivers |   - no nvidia drivers | ||||||
|  | @ -23,17 +31,11 @@ musl upsides: | ||||||
|   - ?? |   - ?? | ||||||
| 
 | 
 | ||||||
| Stage 1: | Stage 1: | ||||||
|   - select kb layout |   -> select kb layout | ||||||
|   - install base system |   -> select installation type (x86_32/x86_64/aarch64, glibc/musl) | ||||||
|     -> select installation type (x86_32/x86_64/aarch64, glibc/musl) |   -> configure time zone | ||||||
|       -> if musl, add that bit to repo url |     -> selection dialog? | ||||||
|     -> configure time zone |     -> symlink /etc/localtime | ||||||
|       -> selection dialog? |  | ||||||
|       -> symlink /etc/localtime |  | ||||||
|     -> prepare 2nd stage installation |  | ||||||
|       -> auto login root and put stage 2 script in .bashrc |  | ||||||
|     -> build squashfs |  | ||||||
|   - prompt user to reboot to finish installation |  | ||||||
| 
 | 
 | ||||||
| Stage 2: | Stage 2: | ||||||
|   -> configure services |   -> configure services | ||||||
|  | @ -42,23 +44,9 @@ Stage 2: | ||||||
|     -> acpid |     -> acpid | ||||||
|   -> ask user to connect to network using nmtui |   -> ask user to connect to network using nmtui | ||||||
|   -> install packages |   -> 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 |   -> go through the list of choices for what the user can install | ||||||
|     -> terminal? |     -> Minimum viable Xorg setup: 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 | ||||||
|     -> browser? |     -> don’t ask the user if there is only one option | ||||||
|     -> prism launcher |  | ||||||
|     -> java (multiple versions?) |  | ||||||
|     -> pipewire (pulsemixer?) |  | ||||||
|     -> ask about nvidia driver |  | ||||||
|       -> install if needed |  | ||||||
|       -> find out when and where to set `nvidia-drm.modeset=1` |  | ||||||
|     -> 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 |   -> passwd -l root | ||||||
|   -> populate /etc/skel |   -> populate /etc/skel | ||||||
|     -> ultimate bashrc bc why not |     -> ultimate bashrc bc why not | ||||||
|  | @ -77,3 +65,4 @@ Stage 2: | ||||||
|     -> add to groups |     -> add to groups | ||||||
|       -> including sudo group |       -> including sudo group | ||||||
|   -> build new squashfs image and reboot |   -> build new squashfs image and reboot | ||||||
|  |   -> rm -r /opt/void-usb/installer | ||||||
|  |  | ||||||
|  | @ -0,0 +1,19 @@ | ||||||
|  | # Package Selections | ||||||
|  | 
 | ||||||
|  | These are intended to give the user a bunch of choices when installing the | ||||||
|  | system. For example whether to use XFE or a more fully featured set of applications. | ||||||
|  | 
 | ||||||
|  | ## Sections | ||||||
|  | 
 | ||||||
|  | Sections contain choices of a specific category. The sections are stored in | ||||||
|  | folders containing the section’s description and its options. | ||||||
|  | For each section, only one of the options can be chosen. | ||||||
|  | The file `sections.lst` holds a list of all available sections in the order | ||||||
|  | in which the user will be asked about them. | ||||||
|  | 
 | ||||||
|  | ## Options | ||||||
|  | 
 | ||||||
|  | Options are shell scripts that are sourced by the stage 2 installer. | ||||||
|  | They hold variables for description, package list, pre-install checks, | ||||||
|  | and additional post-install actions. | ||||||
|  | Options are shown in the order in which they appear in `options.lst`. | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Choose which audio packages to install | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="No audio" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "audio/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | pipewire | ||||||
|  | pipewire-slim | ||||||
|  | none | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Pipewire with GUI settings (Pavucontrol)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="pipewire pavucontrol" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "audio/pipewire" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Pipewire with text-based settings (pulsemixer)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="pipewire pulsemixer" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "audio/pipewire-slim" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Choose a desktop setup to install | ||||||
|  | @ -0,0 +1,12 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="BodgeMaster’s IceWM setup (recommended)" | ||||||
|  | 
 | ||||||
|  | # TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "desktop/icewm-fancy" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,12 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Lighter IceWM setup" | ||||||
|  | 
 | ||||||
|  | # TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "desktop/icewm-light" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="No desktop - for advanced users that want to set things up themselves" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "desktop/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,13 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | # TODO: more information for the user | ||||||
|  | DESCRIPTION="OpenBox window manager (even more lightweight???)" | ||||||
|  | 
 | ||||||
|  | # TODO also add xclock | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "desktop/openbox" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | icewm-fancy | ||||||
|  | icewm-light | ||||||
|  | openbox | ||||||
|  | none | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="All of the above" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   # TODO: configure desktop backgounds if using IceWM | ||||||
|  |   echo "extras/all" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="All of the above except Minecraft" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   # TODO: configure desktop backgounds if using IceWM | ||||||
|  |   echo "extras/all-no-minecraft" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Choose some extras to install | ||||||
|  | @ -0,0 +1,16 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/icewm" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 0 | ||||||
|  |   else | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Add some desktop backgrounds and randomly choose one on login" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   # TODO: configure | ||||||
|  |   echo "extras/desktop-backgrounds" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,16 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Prism Launcher for Minecraft" | ||||||
|  | 
 | ||||||
|  | #TODO: Java stuff | ||||||
|  | PACKAGES="PrismLauncher" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "extras/minecraft" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | DESCRIPTION="??? (Minesweeper)" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "extras/minesweeper" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="None" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "extras/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,7 @@ | ||||||
|  | desktop-backgrounds | ||||||
|  | minesweeper | ||||||
|  | snake | ||||||
|  | minecraft | ||||||
|  | all-no-minecraft | ||||||
|  | all | ||||||
|  | none | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | DESCRIPTION="nSnake" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="nSnake" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "extras/snake" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Install a media player? | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="No" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "multimedia/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,2 @@ | ||||||
|  | vlc | ||||||
|  | none | ||||||
|  | @ -0,0 +1,16 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Install VLC" | ||||||
|  | 
 | ||||||
|  | #TODO: fluidsynth MIDI stuff | ||||||
|  | PACKAGES="vlc" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "multimedia/vlc" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,9 @@ | ||||||
|  | Do you want to install the proprietary Nvidia driver? | ||||||
|  | 
 | ||||||
|  | By default, Void Linux ships with the open-source nouveau driver. | ||||||
|  | This is nice because it gets the system up and running when using an | ||||||
|  | Nvidia GPU but, due to Nvidia’s secrecy, it isn’t particularly good. | ||||||
|  | 
 | ||||||
|  | Installing the proprietary driver is recommended if you want to use Nvidia GPUs. | ||||||
|  | 
 | ||||||
|  | Different versions are available. You can only choose one. | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Don’t install." | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "nvidia/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if xbps-query glibc >/dev/null 2>&1; then | ||||||
|  |     return 0 | ||||||
|  |   else | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Latest Nvidia driver, supports GTX ??? series and up" | ||||||
|  | 
 | ||||||
|  | #TODO: optimus support? | ||||||
|  | PACKAGES="nvidia" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   #TODO: nvidia modeset kernel parameter? | ||||||
|  |   echo "nvidia/nvidia" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if xbps-query glibc >/dev/null 2>&1; then | ||||||
|  |     return 0 | ||||||
|  |   else | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Legacy Nvidia driver, version 390, supports GTX ??? series" | ||||||
|  | 
 | ||||||
|  | #TODO: Optimus support? | ||||||
|  | PACKAGES="nvidia390" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   #TODO: nvidia modeset kernel parameter? | ||||||
|  |   echo "nvidia/nvidia390" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if xbps-query glibc >/dev/null 2>&1; then | ||||||
|  |     return 0 | ||||||
|  |   else | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Legacy Nvidia driver, version 470, supports GTX ??? series" | ||||||
|  | 
 | ||||||
|  | #TODO: optimus support? | ||||||
|  | PACKAGES="nvidia470" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   #TODO: nvidia modeset kernel parameter? | ||||||
|  |   echo "nvidia/nvidia470" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,4 @@ | ||||||
|  | none | ||||||
|  | nvidia | ||||||
|  | nvidia470 | ||||||
|  | nvidia390 | ||||||
|  | @ -0,0 +1,13 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Only add custom bashrc (advanced users)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   #TODO: configure things | ||||||
|  | 
 | ||||||
|  |   echo "pre-configure/bashrc" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Do you want some quality-of-life configuration done? | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Auto-start GUI session on login and add custom bashrc (recommended)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   #TODO: configure things | ||||||
|  | 
 | ||||||
|  |   echo "pre-configure/gui-and-bashrc" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="No (advanced users)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "pre-configure/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | gui-and-bashrc | ||||||
|  | bashrc | ||||||
|  | none | ||||||
|  | @ -0,0 +1,10 @@ | ||||||
|  | nvidia | ||||||
|  | desktop | ||||||
|  | audio | ||||||
|  | systray | ||||||
|  | terminal | ||||||
|  | utilities | ||||||
|  | pre-configure | ||||||
|  | web | ||||||
|  | multimedia | ||||||
|  | extras | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Do you want to install system tray applets? | ||||||
|  | @ -0,0 +1,20 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/icewm" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     if grep "audio/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |       return 0 | ||||||
|  |     else | ||||||
|  |       return 1 | ||||||
|  |     fi | ||||||
|  |   else | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Add tray icon for network" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "systray/network" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,20 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/icewm" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     if grep "audio/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |       return 1 | ||||||
|  |     else | ||||||
|  |       return 0 | ||||||
|  |     fi | ||||||
|  |   else | ||||||
|  |     return 1 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Add tray icon for network and audio" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "systray/network-and-audio" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Don’t install additional tray icons" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "systray/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | network-and-audio | ||||||
|  | network | ||||||
|  | none | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Which GUI terminal emulator do you want to install? | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="LXDE Terminal (recommended)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="lxterminal" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "terminal/lxterminal" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="None (advanced users only)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="none" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "terminal/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,3 @@ | ||||||
|  | lxterminal | ||||||
|  | xterm | ||||||
|  | none | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Xterm" | ||||||
|  | 
 | ||||||
|  | PACKAGES="xterm" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "terminal/xterm" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Which set of desktop utilities do you want to install? | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | DESCRIPTION="Fully featured (list of things) (recommended)" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "utilities/desktop-integrated-guisysmon" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | DESCRIPTION="Fully featured (list of things with htop)" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "utilities/desktop-integrated-htop" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="None" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "utilities/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | desktop-integrated-guisysmon | ||||||
|  | xfe-guisysmon | ||||||
|  | desktop-integrated-htop | ||||||
|  | xfe-htop | ||||||
|  | none | ||||||
|  | @ -0,0 +1,17 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | DESCRIPTION="Smaller set of desktop utilities (XFE + ???)" | ||||||
|  | 
 | ||||||
|  | #TODO | ||||||
|  | PACKAGES="xfe" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "utilities/xfe-guisysmon" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Smaller set of desktop utilities (XFE + Htop)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="xfe htop" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "utilities/xfe-htop" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1 @@ | ||||||
|  | Install a web browser? | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Install ELinks (terminal-based browser)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="elinks" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "web/elinks" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Join the dark side with Chromium (Consider Firefox... You can still install Chromium later.)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="chromium" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "web/evil" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Install Firefox (recommended)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="firefox" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "web/firefox" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | function check { | ||||||
|  |   if grep "desktop/none" /tmp/stage-2-choices >/dev/null 2>&1; then | ||||||
|  |     return 1 | ||||||
|  |   else | ||||||
|  |     return 0 | ||||||
|  |   fi | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="Install Firefox - Extended Support Release (ESR)" | ||||||
|  | 
 | ||||||
|  | PACKAGES="firefox-esr" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "web/firefox-esr" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,11 @@ | ||||||
|  | function check { | ||||||
|  |   return 0 | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | DESCRIPTION="No web browser" | ||||||
|  | 
 | ||||||
|  | PACKAGES="" | ||||||
|  | 
 | ||||||
|  | function post-install { | ||||||
|  |   echo "web/none" >> /tmp/stage-2-choices | ||||||
|  | } | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | firefox | ||||||
|  | firefox-esr | ||||||
|  | evil | ||||||
|  | elinks | ||||||
|  | none | ||||||
		Loading…
	
		Reference in New Issue