diff --git a/iso/common.nix b/iso/common.nix
index 4d9988a..b179664 100644
--- a/iso/common.nix
+++ b/iso/common.nix
@@ -17,10 +17,12 @@ in
services.gnome.gnome-initial-setup.enable = false;
environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ];
+ # Allow free user to run installer commands as root without a password
+ security.sudo.wheelNeedsPassword = false;
users.users.free = {
isNormalUser = true;
description = "free";
- extraGroups = [ "networkmanager" ];
+ extraGroups = [ "networkmanager" "wheel" ];
initialPassword = "free";
};
@@ -48,11 +50,11 @@ in
environment.etc."sovran/flake".source = sovranSource;
environment.etc."xdg/autostart/sovran-installer.desktop".text = ''
- [Desktop Entry]
- Type=Application
- Name=Sovran Guided Installer
- Exec=gnome-terminal -- bash -c "${installer}/bin/sovran-install; exec bash"
- Terminal=false
- X-GNOME-Autostart-enabled=true
- '';
+[Desktop Entry]
+Type=Application
+Name=Sovran Guided Installer
+Exec=gnome-terminal -- bash -c "${installer}/bin/sovran-install; exec bash"
+Terminal=false
+X-GNOME-Autostart-enabled=true
+'';
}
diff --git a/iso/installer.sh b/iso/installer.sh
index dd13e89..837ed5b 100644
--- a/iso/installer.sh
+++ b/iso/installer.sh
@@ -17,7 +17,7 @@ human_size() {
# ── 1. WELCOME & ROLE SELECTION ──────────────────────────────────────────
ROLE=$(zenity --list --radiolist \
- --window-icon="$LOGO" \
+ --icon="$LOGO" \
--width=1000 --height=400 \
--title="Welcome to Sovran SystemsOS" \
--text="Sovran Systems\nBe Digitally Sovereign\n\nPlease select your preferred installation type:" \
@@ -28,7 +28,7 @@ ROLE=$(zenity --list --radiolist \
FALSE "₿" "Node (Bitcoin-only)" "Full Bitcoin node with Bitcoin Lightning and non-KYC buying and selling." || true)
if [ -z "$ROLE" ]; then
- zenity --error --window-icon="$LOGO" --text="Installation cancelled."
+ zenity --error --icon="$LOGO" --text="Installation cancelled."
exit 1
fi
@@ -38,7 +38,7 @@ fi
mapfile -t DISKS < <(lsblk -b -dno NAME,SIZE,TYPE,RO,TRAN -e 7,11 | awk '$3=="disk" && $4=="0" && $5!="usb" {print $1":"$2}')
if [ "${#DISKS[@]}" -eq 0 ]; then
- zenity --error --window-icon="$LOGO" --text="No valid internal drives found. (USB drives are ignored)"
+ zenity --error --icon="$LOGO" --text="No valid internal drives found. (USB drives are ignored)"
exit 1
fi
@@ -58,7 +58,7 @@ fi
# Updated to check against 2TB
if [ -n "$DATA_DISK" ] && [ "$DATA_SIZE" -lt "$BYTES_2TB" ]; then
- zenity --warning --window-icon="$LOGO" --text="Second disk detected (${DATA_DISK}), but it is smaller than 2TB.\n\nIt will NOT be used."
+ zenity --warning --icon="$LOGO" --text="Second disk detected (${DATA_DISK}), but it is smaller than 2TB.\n\nIt will NOT be used."
DATA_DISK=""
DATA_SIZE=""
fi
@@ -70,9 +70,9 @@ else
SUMMARY="${SUMMARY}\nData disk: none"
fi
-CONFIRM=$(zenity --entry --window-icon="$LOGO" --text="WARNING: This will ERASE ALL DATA on:\n\n${SUMMARY}\n\nType ERASE to continue.")
+CONFIRM=$(zenity --entry --icon="$LOGO" --text="WARNING: This will ERASE ALL DATA on:\n\n${SUMMARY}\n\nType ERASE to continue.")
if [ "$CONFIRM" != "ERASE" ]; then
- zenity --error --window-icon="$LOGO" --text="Install cancelled."
+ zenity --error --icon="$LOGO" --text="Install cancelled."
exit 1
fi
@@ -88,27 +88,27 @@ fi
# Use --arg (not --argstr) so device paths are passed as Nix string values correctly
(
if [ -n "$DATA_PATH" ]; then
- disko --mode disko /etc/sovran/flake/iso/disko.nix \
+ sudo disko --mode disko /etc/sovran/flake/iso/disko.nix \
--arg device '"'"$BOOT_PATH"'"' \
--arg dataDevice '"'"$DATA_PATH"'"'
else
- disko --mode disko /etc/sovran/flake/iso/disko.nix \
+ sudo disko --mode disko /etc/sovran/flake/iso/disko.nix \
--arg device '"'"$BOOT_PATH"'"'
fi
) 2>&1 | zenity --progress --pulsing \
- --window-icon="$LOGO" \
+ --icon="$LOGO" \
--title="Partitioning Drives" \
--text="Partitioning and formatting your drives...\n\nThis will take a moment." \
--width=500 \
--auto-close \
--no-cancel
-nixos-generate-config --root /mnt
+sudo nixos-generate-config --root /mnt
cp /mnt/etc/nixos/hardware-configuration.nix /tmp/hardware-configuration.nix
-rm -rf /mnt/etc/nixos/*
-cp -a /etc/sovran/flake/* /mnt/etc/nixos/
-cp /tmp/hardware-configuration.nix /mnt/etc/nixos/hardware-configuration.nix
+sudo rm -rf /mnt/etc/nixos/*
+sudo cp -a /etc/sovran/flake/* /mnt/etc/nixos/
+sudo cp /tmp/hardware-configuration.nix /mnt/etc/nixos/hardware-configuration.nix
# ── 4. APPLY ROLE STATE & TEMPLATE ───────────────────────────────────────
@@ -122,7 +122,7 @@ case "$ROLE" in
"Node (Bitcoin-only)") IS_NODE="true" ;;
esac
-cat > /mnt/etc/nixos/role-state.nix < /dev/null < /mnt/etc/nixos/role-state.nix <A required file is missing:\n\n${f}\n\nThe installation cannot continue. Please check the log at ${LOG} and try again."
exit 1
@@ -150,9 +150,9 @@ done
# ── 6. FINAL INSTALL & REBOOT ────────────────────────────────────────────
-nixos-install --root /mnt --flake /mnt/etc/nixos#nixos 2>&1 | \
+sudo nixos-install --root /mnt --flake /mnt/etc/nixos#nixos 2>&1 | \
zenity --progress --pulsing \
- --window-icon="$LOGO" \
+ --icon="$LOGO" \
--title="Installing Sovran SystemsOS" \
--text="Installing your system...\n\nThis may take 20–40 minutes depending on your internet speed.\nPlease do not turn off your computer." \
--width=500 \
@@ -172,4 +172,4 @@ Before you reboot, please write down your main login details:
Click OK to reboot into your new system!"
-reboot
+sudo reboot
diff --git a/result b/result
index fcf0d27..7f47e9c 120000
--- a/result
+++ b/result
@@ -1 +1 @@
-/nix/store/f8vzhhkqnyir5kjrksw39jbjcxkw0vrs-Sovran_SystemsOS.iso
\ No newline at end of file
+/nix/store/d2wsw3p539hmdhc6gaxjds8l2yw1jr4n-Sovran_SystemsOS.iso
\ No newline at end of file